gclient::ext::sp_runtime::traits

Trait 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.

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§

§

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