Trait Header

Source
pub trait Header:
    Clone
    + Send
    + Sync
    + Codec
    + 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", so this trait is not object safe.

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