Skip to main content

AlloyBlockHeader

Trait AlloyBlockHeader 

pub trait AlloyBlockHeader {
Show 36 methods // Required methods fn parent_hash(&self) -> FixedBytes<32>; fn ommers_hash(&self) -> FixedBytes<32>; fn beneficiary(&self) -> Address; fn state_root(&self) -> FixedBytes<32>; fn transactions_root(&self) -> FixedBytes<32>; fn receipts_root(&self) -> FixedBytes<32>; fn withdrawals_root(&self) -> Option<FixedBytes<32>>; fn logs_bloom(&self) -> Bloom; fn difficulty(&self) -> Uint<256, 4>; fn number(&self) -> u64; fn gas_limit(&self) -> u64; fn gas_used(&self) -> u64; fn timestamp(&self) -> u64; fn mix_hash(&self) -> Option<FixedBytes<32>>; fn nonce(&self) -> Option<FixedBytes<8>>; 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<FixedBytes<32>>; fn requests_hash(&self) -> Option<FixedBytes<32>>; fn block_access_list_hash(&self) -> Option<FixedBytes<32>>; 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) -> NumHash { ... } 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§

fn parent_hash(&self) -> FixedBytes<32>

Retrieves the parent hash of the block

fn ommers_hash(&self) -> FixedBytes<32>

Retrieves the ommers hash of the block

fn beneficiary(&self) -> Address

Retrieves the beneficiary (miner) of the block

fn state_root(&self) -> FixedBytes<32>

Retrieves the state root hash of the block

fn transactions_root(&self) -> FixedBytes<32>

Retrieves the transactions root hash of the block

fn receipts_root(&self) -> FixedBytes<32>

Retrieves the receipts root hash of the block

fn withdrawals_root(&self) -> Option<FixedBytes<32>>

Retrieves the withdrawals root hash of the block, if available

fn logs_bloom(&self) -> Bloom

Retrieves the logs bloom filter of the block

fn difficulty(&self) -> Uint<256, 4>

Retrieves the difficulty of the block

fn number(&self) -> u64

Retrieves the block number

fn gas_limit(&self) -> u64

Retrieves the gas limit of the block

fn gas_used(&self) -> u64

Retrieves the gas used by the block

fn timestamp(&self) -> u64

Retrieves the timestamp of the block

fn mix_hash(&self) -> Option<FixedBytes<32>>

Retrieves the mix hash of the block, if available

fn nonce(&self) -> Option<FixedBytes<8>>

Retrieves the nonce of the block, if available

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

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

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

Retrieves the blob gas used by the block, if available

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

Retrieves the excess blob gas of the block, if available

fn parent_beacon_block_root(&self) -> Option<FixedBytes<32>>

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

fn requests_hash(&self) -> Option<FixedBytes<32>>

Retrieves the requests hash of the block, if available

fn block_access_list_hash(&self) -> Option<FixedBytes<32>>

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

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

Retrieves the slot number of the block, if available

fn extra_data(&self) -> &Bytes

Retrieves the block’s extra data field

Provided Methods§

fn header_info(&self) -> HeaderInfo

Extracts essential information into one container type.

fn header_roots(&self) -> HeaderRoots

Returns all roots contained in the header.

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

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

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.

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

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.

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

fn parent_num_hash(&self) -> NumHash

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.

fn is_empty(&self) -> bool

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

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.

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.

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§

§

impl BlockHeader for AnyHeader

§

fn parent_hash(&self) -> FixedBytes<32>

§

fn ommers_hash(&self) -> FixedBytes<32>

§

fn beneficiary(&self) -> Address

§

fn state_root(&self) -> FixedBytes<32>

§

fn transactions_root(&self) -> FixedBytes<32>

§

fn receipts_root(&self) -> FixedBytes<32>

§

fn withdrawals_root(&self) -> Option<FixedBytes<32>>

§

fn logs_bloom(&self) -> Bloom

§

fn difficulty(&self) -> Uint<256, 4>

§

fn number(&self) -> u64

§

fn gas_limit(&self) -> u64

§

fn gas_used(&self) -> u64

§

fn timestamp(&self) -> u64

§

fn mix_hash(&self) -> Option<FixedBytes<32>>

§

fn nonce(&self) -> Option<FixedBytes<8>>

§

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<FixedBytes<32>>

§

fn requests_hash(&self) -> Option<FixedBytes<32>>

§

fn block_access_list_hash(&self) -> Option<FixedBytes<32>>

§

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

§

fn extra_data(&self) -> &Bytes

§

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

§

fn header_info(&self) -> HeaderInfo

§

fn header_roots(&self) -> HeaderRoots

§

fn parent_hash(&self) -> FixedBytes<32>

§

fn ommers_hash(&self) -> FixedBytes<32>

§

fn beneficiary(&self) -> Address

§

fn state_root(&self) -> FixedBytes<32>

§

fn transactions_root(&self) -> FixedBytes<32>

§

fn receipts_root(&self) -> FixedBytes<32>

§

fn withdrawals_root(&self) -> Option<FixedBytes<32>>

§

fn logs_bloom(&self) -> Bloom

§

fn difficulty(&self) -> Uint<256, 4>

§

fn number(&self) -> u64

§

fn gas_limit(&self) -> u64

§

fn gas_used(&self) -> u64

§

fn timestamp(&self) -> u64

§

fn mix_hash(&self) -> Option<FixedBytes<32>>

§

fn nonce(&self) -> Option<FixedBytes<8>>

§

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<FixedBytes<32>>

§

fn requests_hash(&self) -> Option<FixedBytes<32>>

§

fn block_access_list_hash(&self) -> Option<FixedBytes<32>>

§

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

§

fn extra_data(&self) -> &Bytes

§

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) -> NumHash

§

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

§

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

§

fn header_info(&self) -> HeaderInfo

§

fn header_roots(&self) -> HeaderRoots

§

fn parent_hash(&self) -> FixedBytes<32>

§

fn ommers_hash(&self) -> FixedBytes<32>

§

fn beneficiary(&self) -> Address

§

fn state_root(&self) -> FixedBytes<32>

§

fn transactions_root(&self) -> FixedBytes<32>

§

fn receipts_root(&self) -> FixedBytes<32>

§

fn withdrawals_root(&self) -> Option<FixedBytes<32>>

§

fn logs_bloom(&self) -> Bloom

§

fn difficulty(&self) -> Uint<256, 4>

§

fn number(&self) -> u64

§

fn gas_limit(&self) -> u64

§

fn gas_used(&self) -> u64

§

fn timestamp(&self) -> u64

§

fn mix_hash(&self) -> Option<FixedBytes<32>>

§

fn nonce(&self) -> Option<FixedBytes<8>>

§

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<FixedBytes<32>>

§

fn requests_hash(&self) -> Option<FixedBytes<32>>

§

fn block_access_list_hash(&self) -> Option<FixedBytes<32>>

§

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

§

fn extra_data(&self) -> &Bytes

§

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) -> NumHash

§

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

§

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

Available on crate feature serde only.
§

fn parent_hash(&self) -> FixedBytes<32>

§

fn ommers_hash(&self) -> FixedBytes<32>

§

fn beneficiary(&self) -> Address

§

fn state_root(&self) -> FixedBytes<32>

§

fn transactions_root(&self) -> FixedBytes<32>

§

fn receipts_root(&self) -> FixedBytes<32>

§

fn withdrawals_root(&self) -> Option<FixedBytes<32>>

§

fn logs_bloom(&self) -> Bloom

§

fn difficulty(&self) -> Uint<256, 4>

§

fn number(&self) -> u64

§

fn gas_limit(&self) -> u64

§

fn gas_used(&self) -> u64

§

fn timestamp(&self) -> u64

§

fn mix_hash(&self) -> Option<FixedBytes<32>>

§

fn nonce(&self) -> Option<FixedBytes<8>>

§

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<FixedBytes<32>>

§

fn requests_hash(&self) -> Option<FixedBytes<32>>

§

fn block_access_list_hash(&self) -> Option<FixedBytes<32>>

§

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

§

fn extra_data(&self) -> &Bytes

§

fn is_empty(&self) -> bool

Implementors§

§

impl BlockHeader for reth_ethereum::primitives::Header

§

impl<B> BlockHeader for RecoveredBlock<B>
where B: Block,

§

impl<H> BlockHeader for reth_ethereum::rpc::eth::primitives::Header<H>
where H: BlockHeader,