pub struct BlockHeader {
Show 18 fields pub parent_hash: Vec<u8, Global>, pub uncle_hash: Vec<u8, Global>, pub coinbase: Vec<u8, Global>, pub state_root: Vec<u8, Global>, pub transactions_root: Vec<u8, Global>, pub receipt_root: Vec<u8, Global>, pub logs_bloom: Vec<u8, Global>, pub difficulty: Option<BigInt>, pub total_difficulty: Option<BigInt>, pub number: u64, pub gas_limit: u64, pub gas_used: u64, pub timestamp: Option<Timestamp>, pub extra_data: Vec<u8, Global>, pub mix_hash: Vec<u8, Global>, pub nonce: u64, pub hash: Vec<u8, Global>, pub base_fee_per_gas: Option<BigInt>,
}

Fields

parent_hash: Vec<u8, Global>uncle_hash: Vec<u8, Global>

Uncle hash of the block, some reference it as sha3Uncles, but sha3`` is badly worded, so we prefer uncle_hash, also referred as ommers` in EIP specification.

If the Block containing this BlockHeader has been produced using the Proof of Stake consensus algorithm, this field will actually be constant and set to 0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347.

coinbase: Vec<u8, Global>state_root: Vec<u8, Global>transactions_root: Vec<u8, Global>receipt_root: Vec<u8, Global>logs_bloom: Vec<u8, Global>difficulty: Option<BigInt>

Difficulty is the difficulty of the Proof of Work algorithm that was required to compute a solution.

If the Block containing this BlockHeader has been produced using the Proof of Stake consensus algorithm, this field will actually be constant and set to 0x00.

total_difficulty: Option<BigInt>

TotalDifficulty is the sum of all previous blocks difficulty including this block difficulty.

If the Block containing this BlockHeader has been produced using the Proof of Stake consensus algorithm, this field will actually be constant and set to the terminal total difficulty that was required to transition to Proof of Stake algorithm, which varies per network. It is set to 58 750 000 000 000 000 000 000 on Ethereum Mainnet and to 10 790 000 on Ethereum Testnet Goerli.

number: u64gas_limit: u64gas_used: u64timestamp: Option<Timestamp>extra_data: Vec<u8, Global>

ExtraData is free-form bytes included in the block by the “miner”. While on Yellow paper of Ethereum this value is maxed to 32 bytes, other consensus algorithm like Clique and some other forks are using bigger values to carry special consensus data.

If the Block containing this BlockHeader has been produced using the Proof of Stake consensus algorithm, this field is strictly enforced to be <= 32 bytes.

mix_hash: Vec<u8, Global>

MixHash is used to prove, when combined with the nonce that sufficient amount of computation has been achieved and that the solution found is valid.

nonce: u64

Nonce is used to prove, when combined with the mix_hash that sufficient amount of computation has been achieved and that the solution found is valid.

If the Block containing this BlockHeader has been produced using the Proof of Stake consensus algorithm, this field will actually be constant and set to 0.

hash: Vec<u8, Global>

Hash is the hash of the block which is actually the computation:

Keccak256(rlp([ parent_hash, uncle_hash, coinbase, state_root, transactions_root, receipt_root, logs_bloom, difficulty, number, gas_limit, gas_used, timestamp, extra_data, mix_hash, nonce, base_fee_per_gas ]))

base_fee_per_gas: Option<BigInt>

Base fee per gas according to EIP-1559 (e.g. London Fork) rules, only set if London is present/active on the chain.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Returns the encoded length of the message without a length delimiter.

Clears the message, resetting all fields to their default.

Encodes the message to a buffer. Read more

Encodes the message to a newly allocated buffer.

Encodes the message with a length-delimiter to a buffer. Read more

Encodes the message with a length-delimiter to a newly allocated buffer.

Decodes an instance of the message from a buffer. Read more

Decodes a length-delimited instance of the message from the buffer.

Decodes an instance of the message from a buffer, and merges it into self. Read more

Decodes a length-delimited instance of the message from buffer, and merges it into self. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.