referrerpolicy=no-referrer-when-downgrade

Trait polkadot_sdk_frame::traits::Header

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§

type Number: BlockNumber

Header number.

type Hash: HashOutput

Header hash type

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

Hashing algorithm

Required Methods§

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

Creates new header.

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

Returns a reference to the header number.

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

Sets the header number.

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

Returns a reference to the extrinsics root.

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

Sets the extrinsic root.

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

Returns a reference to the state root.

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

Sets the state root.

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

Returns a reference to the parent hash.

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

Sets the parent hash.

fn digest(&self) -> &Digest

Returns a reference to the digest.

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

Get a mutable reference to the digest.

Provided Methods§

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

Returns the hash of the header.

Object Safety§

This trait is not object safe.

Implementors§

§

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

§

type Number = Number

§

type Hash = <Hash as Hash>::Output

§

type Hashing = Hash