Struct substreams_ethereum::pb::eth::v2::BlockHeader
source · [−]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: u64Nonce 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
sourceimpl Clone for BlockHeader
impl Clone for BlockHeader
sourcefn clone(&self) -> BlockHeader
fn clone(&self) -> BlockHeader
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Debug for BlockHeader
impl Debug for BlockHeader
sourceimpl Default for BlockHeader
impl Default for BlockHeader
sourcefn default() -> BlockHeader
fn default() -> BlockHeader
Returns the “default value” for a type. Read more
sourceimpl Message for BlockHeader
impl Message for BlockHeader
sourcefn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the message without a length delimiter.
sourcefn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
Encodes the message to a buffer. Read more
sourcefn encode_to_vec(&self) -> Vec<u8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn encode_to_vec(&self) -> Vec<u8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Encodes the message to a newly allocated buffer.
sourcefn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
Encodes the message with a length-delimiter to a buffer. Read more
sourcefn encode_length_delimited_to_vec(&self) -> Vec<u8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn encode_length_delimited_to_vec(&self) -> Vec<u8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Encodes the message with a length-delimiter to a newly allocated buffer.
sourcefn decode<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
fn decode<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
Decodes an instance of the message from a buffer. Read more
sourcefn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
Decodes a length-delimited instance of the message from the buffer.
sourcefn merge<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
Decodes an instance of the message from a buffer, and merges it into self. Read more
sourcefn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
Decodes a length-delimited instance of the message from buffer, and
merges it into self. Read more
sourceimpl PartialEq<BlockHeader> for BlockHeader
impl PartialEq<BlockHeader> for BlockHeader
sourcefn eq(&self, other: &BlockHeader) -> bool
fn eq(&self, other: &BlockHeader) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
impl StructuralPartialEq for BlockHeader
Auto Trait Implementations
impl RefUnwindSafe for BlockHeader
impl Send for BlockHeader
impl Sync for BlockHeader
impl Unpin for BlockHeader
impl UnwindSafe for BlockHeader
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more