Skip to main content

Header

Trait Header 

Source
pub trait Header:
    Clone
    + Send
    + Sync
    + Codec
    + DecodeWithMemTracking
    + Eq
    + MaybeSerialize
    + Debug
    + TypeInfo
    + 'static {
    type Number: BlockNumber;
    type Hash: HashOutput;
    type Hashing: Hash<Output = Self::Hash>;

    // Required methods
    fn new(
        number: Self::Number,
        extrinsics_root: Self::Hash,
        state_root: Self::Hash,
        parent_hash: Self::Hash,
        digest: Digest,
    ) -> Self;
    fn number(&self) -> &Self::Number;
    fn set_number(&mut self, number: Self::Number);
    fn extrinsics_root(&self) -> &Self::Hash;
    fn set_extrinsics_root(&mut self, root: Self::Hash);
    fn state_root(&self) -> &Self::Hash;
    fn set_state_root(&mut self, root: Self::Hash);
    fn parent_hash(&self) -> &Self::Hash;
    fn set_parent_hash(&mut self, hash: Self::Hash);
    fn digest(&self) -> &Digest;
    fn digest_mut(&mut self) -> &mut Digest;

    // Provided method
    fn hash(&self) -> Self::Hash { ... }
}
Expand description

Something which fulfills the abstract idea of a Substrate header. It has types for a Number, a Hash and a Hashing. It provides access to an extrinsics_root, state_root and parent_hash, as well as a digest and a block number.

You can also create a new one from those fields.

Required Associated Types§

Source

type Number: BlockNumber

Header number.

Source

type Hash: HashOutput

Header hash type

Source

type Hashing: Hash<Output = Self::Hash>

Hashing algorithm

Required Methods§

Source

fn new( number: Self::Number, extrinsics_root: Self::Hash, state_root: Self::Hash, parent_hash: Self::Hash, digest: Digest, ) -> Self

Creates new header.

Source

fn number(&self) -> &Self::Number

Returns a reference to the header number.

Source

fn set_number(&mut self, number: Self::Number)

Sets the header number.

Source

fn extrinsics_root(&self) -> &Self::Hash

Returns a reference to the extrinsics root.

Source

fn set_extrinsics_root(&mut self, root: Self::Hash)

Sets the extrinsic root.

Source

fn state_root(&self) -> &Self::Hash

Returns a reference to the state root.

Source

fn set_state_root(&mut self, root: Self::Hash)

Sets the state root.

Source

fn parent_hash(&self) -> &Self::Hash

Returns a reference to the parent hash.

Source

fn set_parent_hash(&mut self, hash: Self::Hash)

Sets the parent hash.

Source

fn digest(&self) -> &Digest

Returns a reference to the digest.

Source

fn digest_mut(&mut self) -> &mut Digest

Get a mutable reference to the digest.

Provided Methods§

Source

fn hash(&self) -> Self::Hash

Returns the hash of the header.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<Number, Hash> Header for Header<Number, Hash>
where Number: BlockNumber, Hash: HashT,

Source§

type Number = Number

Source§

type Hash = <Hash as Hash>::Output

Source§

type Hashing = Hash