Skip to main content

BlockHeader

Trait BlockHeader 

Source
pub trait BlockHeader {
Show 36 methods // Required methods fn parent_hash(&self) -> B256; fn ommers_hash(&self) -> B256; fn beneficiary(&self) -> Address; fn state_root(&self) -> B256; fn transactions_root(&self) -> B256; fn receipts_root(&self) -> B256; fn withdrawals_root(&self) -> Option<B256>; fn logs_bloom(&self) -> Bloom; fn difficulty(&self) -> U256; fn number(&self) -> BlockNumber; fn gas_limit(&self) -> u64; fn gas_used(&self) -> u64; fn timestamp(&self) -> u64; fn mix_hash(&self) -> Option<B256>; fn nonce(&self) -> Option<B64>; fn base_fee_per_gas(&self) -> Option<u64>; fn blob_gas_used(&self) -> Option<u64>; fn excess_blob_gas(&self) -> Option<u64>; fn parent_beacon_block_root(&self) -> Option<B256>; fn requests_hash(&self) -> Option<B256>; fn block_access_list_hash(&self) -> Option<B256>; fn slot_number(&self) -> Option<u64>; fn extra_data(&self) -> &Bytes; // Provided methods fn header_info(&self) -> HeaderInfo { ... } fn header_roots(&self) -> HeaderRoots { ... } fn blob_fee(&self, blob_params: BlobParams) -> Option<u128> { ... } fn next_block_excess_blob_gas(&self, blob_params: BlobParams) -> Option<u64> { ... } fn maybe_next_block_excess_blob_gas( &self, blob_params: Option<BlobParams>, ) -> Option<u64> { ... } fn next_block_blob_fee(&self, blob_params: BlobParams) -> Option<u128> { ... } fn maybe_next_block_blob_fee( &self, blob_params: Option<BlobParams>, ) -> Option<u128> { ... } fn next_block_base_fee(&self, base_fee_params: BaseFeeParams) -> Option<u64> { ... } fn parent_num_hash(&self) -> BlockNumHash { ... } fn is_empty(&self) -> bool { ... } fn is_zero_difficulty(&self) -> bool { ... } fn exceeds_allowed_future_timestamp(&self, present_timestamp: u64) -> bool { ... } fn is_nonce_zero(&self) -> bool { ... }
}
Expand description

Trait for extracting specific Ethereum block data from a header

Required Methods§

Source

fn parent_hash(&self) -> B256

Retrieves the parent hash of the block

Source

fn ommers_hash(&self) -> B256

Retrieves the ommers hash of the block

Source

fn beneficiary(&self) -> Address

Retrieves the beneficiary (miner) of the block

Source

fn state_root(&self) -> B256

Retrieves the state root hash of the block

Source

fn transactions_root(&self) -> B256

Retrieves the transactions root hash of the block

Source

fn receipts_root(&self) -> B256

Retrieves the receipts root hash of the block

Source

fn withdrawals_root(&self) -> Option<B256>

Retrieves the withdrawals root hash of the block, if available

Source

fn logs_bloom(&self) -> Bloom

Retrieves the logs bloom filter of the block

Source

fn difficulty(&self) -> U256

Retrieves the difficulty of the block

Source

fn number(&self) -> BlockNumber

Retrieves the block number

Source

fn gas_limit(&self) -> u64

Retrieves the gas limit of the block

Source

fn gas_used(&self) -> u64

Retrieves the gas used by the block

Source

fn timestamp(&self) -> u64

Retrieves the timestamp of the block

Source

fn mix_hash(&self) -> Option<B256>

Retrieves the mix hash of the block, if available

Source

fn nonce(&self) -> Option<B64>

Retrieves the nonce of the block, if available

Source

fn base_fee_per_gas(&self) -> Option<u64>

Retrieves the base fee per gas of the block, if available

Source

fn blob_gas_used(&self) -> Option<u64>

Retrieves the blob gas used by the block, if available

Source

fn excess_blob_gas(&self) -> Option<u64>

Retrieves the excess blob gas of the block, if available

Source

fn parent_beacon_block_root(&self) -> Option<B256>

Retrieves the parent beacon block root of the block, if available

Source

fn requests_hash(&self) -> Option<B256>

Retrieves the requests hash of the block, if available

Source

fn block_access_list_hash(&self) -> Option<B256>

Retrieves the block access list hash of the block, if available

Source

fn slot_number(&self) -> Option<u64>

Retrieves the slot number of the block, if available

Source

fn extra_data(&self) -> &Bytes

Retrieves the block’s extra data field

Provided Methods§

Source

fn header_info(&self) -> HeaderInfo

Extracts essential information into one container type.

Source

fn header_roots(&self) -> HeaderRoots

Returns all roots contained in the header.

Source

fn blob_fee(&self, blob_params: BlobParams) -> Option<u128>

Returns the blob fee for this block according to the EIP-4844 spec.

Returns None if excess_blob_gas is None

Source

fn next_block_excess_blob_gas(&self, blob_params: BlobParams) -> Option<u64>

Calculate excess blob gas for the next block according to the EIP-4844 spec.

Returns a None if no excess blob gas is set, no EIP-4844 support

Source

fn maybe_next_block_excess_blob_gas( &self, blob_params: Option<BlobParams>, ) -> Option<u64>

Convenience function for Self::next_block_excess_blob_gas with an optional BlobParams argument.

Returns None if the blob_params are None.

Source

fn next_block_blob_fee(&self, blob_params: BlobParams) -> Option<u128>

Returns the blob fee for the next block according to the EIP-4844 spec.

Returns None if excess_blob_gas is None.

See also BlockHeader::next_block_excess_blob_gas

Source

fn maybe_next_block_blob_fee( &self, blob_params: Option<BlobParams>, ) -> Option<u128>

Convenience function for Self::next_block_blob_fee with an optional BlobParams argument.

Returns None if the blob_params are None.

Source

fn next_block_base_fee(&self, base_fee_params: BaseFeeParams) -> Option<u64>

Calculate base fee for next block according to the EIP-1559 spec.

Returns a None if no base fee is set, no EIP-1559 support

Source

fn parent_num_hash(&self) -> BlockNumHash

Returns the parent block’s number and hash

Note: for the genesis block the parent number is 0 and the parent hash is the zero hash.

Source

fn is_empty(&self) -> bool

Checks if the header is considered empty - has no transactions, no ommers or withdrawals

Source

fn is_zero_difficulty(&self) -> bool

Checks if the block’s difficulty is set to zero, indicating a Proof-of-Stake header.

This function is linked to EIP-3675, proposing the consensus upgrade to Proof-of-Stake: EIP-3675

Verifies whether, as per the EIP, the block’s difficulty is updated to zero, signifying the transition to a Proof-of-Stake mechanism.

Returns true if the block’s difficulty matches the constant zero set by the EIP.

Source

fn exceeds_allowed_future_timestamp(&self, present_timestamp: u64) -> bool

Checks if the block’s timestamp is in the future based on the present timestamp.

Clock can drift but this can be consensus issue.

Note: This check is relevant only pre-merge.

Source

fn is_nonce_zero(&self) -> bool

Checks if the nonce exists, and if it exists, if it’s zero.

If the nonce is None, then this returns false.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'a, T: 'a + BlockHeader + ?Sized> BlockHeader for &'a T

Source§

fn header_info(&self) -> HeaderInfo

Source§

fn header_roots(&self) -> HeaderRoots

Source§

fn parent_hash(&self) -> B256

Source§

fn ommers_hash(&self) -> B256

Source§

fn beneficiary(&self) -> Address

Source§

fn state_root(&self) -> B256

Source§

fn transactions_root(&self) -> B256

Source§

fn receipts_root(&self) -> B256

Source§

fn withdrawals_root(&self) -> Option<B256>

Source§

fn logs_bloom(&self) -> Bloom

Source§

fn difficulty(&self) -> U256

Source§

fn number(&self) -> BlockNumber

Source§

fn gas_limit(&self) -> u64

Source§

fn gas_used(&self) -> u64

Source§

fn timestamp(&self) -> u64

Source§

fn mix_hash(&self) -> Option<B256>

Source§

fn nonce(&self) -> Option<B64>

Source§

fn base_fee_per_gas(&self) -> Option<u64>

Source§

fn blob_gas_used(&self) -> Option<u64>

Source§

fn excess_blob_gas(&self) -> Option<u64>

Source§

fn parent_beacon_block_root(&self) -> Option<B256>

Source§

fn requests_hash(&self) -> Option<B256>

Source§

fn block_access_list_hash(&self) -> Option<B256>

Source§

fn slot_number(&self) -> Option<u64>

Source§

fn extra_data(&self) -> &Bytes

Source§

fn blob_fee(&self, blob_params: BlobParams) -> Option<u128>

Source§

fn next_block_excess_blob_gas(&self, blob_params: BlobParams) -> Option<u64>

Source§

fn maybe_next_block_excess_blob_gas( &self, blob_params: Option<BlobParams>, ) -> Option<u64>

Source§

fn next_block_blob_fee(&self, blob_params: BlobParams) -> Option<u128>

Source§

fn maybe_next_block_blob_fee( &self, blob_params: Option<BlobParams>, ) -> Option<u128>

Source§

fn next_block_base_fee(&self, base_fee_params: BaseFeeParams) -> Option<u64>

Source§

fn parent_num_hash(&self) -> BlockNumHash

Source§

fn is_empty(&self) -> bool

Source§

fn is_zero_difficulty(&self) -> bool

Source§

fn exceeds_allowed_future_timestamp(&self, present_timestamp: u64) -> bool

Source§

fn is_nonce_zero(&self) -> bool

Source§

impl<T: BlockHeader + ?Sized> BlockHeader for Arc<T>

Source§

fn header_info(&self) -> HeaderInfo

Source§

fn header_roots(&self) -> HeaderRoots

Source§

fn parent_hash(&self) -> B256

Source§

fn ommers_hash(&self) -> B256

Source§

fn beneficiary(&self) -> Address

Source§

fn state_root(&self) -> B256

Source§

fn transactions_root(&self) -> B256

Source§

fn receipts_root(&self) -> B256

Source§

fn withdrawals_root(&self) -> Option<B256>

Source§

fn logs_bloom(&self) -> Bloom

Source§

fn difficulty(&self) -> U256

Source§

fn number(&self) -> BlockNumber

Source§

fn gas_limit(&self) -> u64

Source§

fn gas_used(&self) -> u64

Source§

fn timestamp(&self) -> u64

Source§

fn mix_hash(&self) -> Option<B256>

Source§

fn nonce(&self) -> Option<B64>

Source§

fn base_fee_per_gas(&self) -> Option<u64>

Source§

fn blob_gas_used(&self) -> Option<u64>

Source§

fn excess_blob_gas(&self) -> Option<u64>

Source§

fn parent_beacon_block_root(&self) -> Option<B256>

Source§

fn requests_hash(&self) -> Option<B256>

Source§

fn block_access_list_hash(&self) -> Option<B256>

Source§

fn slot_number(&self) -> Option<u64>

Source§

fn extra_data(&self) -> &Bytes

Source§

fn blob_fee(&self, blob_params: BlobParams) -> Option<u128>

Source§

fn next_block_excess_blob_gas(&self, blob_params: BlobParams) -> Option<u64>

Source§

fn maybe_next_block_excess_blob_gas( &self, blob_params: Option<BlobParams>, ) -> Option<u64>

Source§

fn next_block_blob_fee(&self, blob_params: BlobParams) -> Option<u128>

Source§

fn maybe_next_block_blob_fee( &self, blob_params: Option<BlobParams>, ) -> Option<u128>

Source§

fn next_block_base_fee(&self, base_fee_params: BaseFeeParams) -> Option<u64>

Source§

fn parent_num_hash(&self) -> BlockNumHash

Source§

fn is_empty(&self) -> bool

Source§

fn is_zero_difficulty(&self) -> bool

Source§

fn exceeds_allowed_future_timestamp(&self, present_timestamp: u64) -> bool

Source§

fn is_nonce_zero(&self) -> bool

Source§

impl<T: BlockHeader> BlockHeader for WithOtherFields<T>

Available on crate feature serde only.

Implementors§