Trait sp_runtime::traits::Header

source ·
pub trait Header: Clone + Send + Sync + Codec + Eq + MaybeSerialize + Debug + TypeInfo + 'static {
    type Number: Member + MaybeSerializeDeserialize + MaybeFromStr + Debug + Hash + Copy + MaybeDisplay + AtLeast32BitUnsigned + Default + TypeInfo + MaxEncodedLen + FullCodec;
    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: Member + MaybeSerializeDeserialize + MaybeFromStr + Debug + Hash + Copy + MaybeDisplay + AtLeast32BitUnsigned + Default + TypeInfo + MaxEncodedLen + FullCodec

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.

Implementors§

source§

impl<Number, Hash> Header for Header<Number, Hash>where Number: Member + MaybeSerializeDeserialize + MaybeFromStr + Debug + Default + Hash + MaybeDisplay + AtLeast32BitUnsigned + FullCodec + Copy + MaxEncodedLen + Into<U256> + TryFrom<U256> + TypeInfo, Hash: HashT,

§

type Number = Number

§

type Hash = <Hash as Hash>::Output

§

type Hashing = Hash