reth::providers

Trait BlockHashReader

pub trait BlockHashReader: Send + Sync {
    // Required methods
    fn block_hash(
        &self,
        number: u64,
    ) -> Result<Option<FixedBytes<32>>, ProviderError>;
    fn canonical_hashes_range(
        &self,
        start: u64,
        end: u64,
    ) -> Result<Vec<FixedBytes<32>>, ProviderError>;

    // Provided method
    fn convert_block_hash(
        &self,
        hash_or_number: HashOrNumber,
    ) -> Result<Option<FixedBytes<32>>, ProviderError> { ... }
}
Expand description

Client trait for fetching block hashes by number.

Required Methods§

fn block_hash( &self, number: u64, ) -> Result<Option<FixedBytes<32>>, ProviderError>

Get the hash of the block with the given number. Returns None if no block with this number exists.

fn canonical_hashes_range( &self, start: u64, end: u64, ) -> Result<Vec<FixedBytes<32>>, ProviderError>

Get headers in range of block hashes or numbers

Returns the available hashes of that range.

Note: The range is start..end, so the expected result is [start..end)

Provided Methods§

fn convert_block_hash( &self, hash_or_number: HashOrNumber, ) -> Result<Option<FixedBytes<32>>, ProviderError>

Get the hash of the block with the given number. Returns None if no block with this number exists.

Implementations on Foreign Types§

§

impl<'a, T> BlockHashReader for &'a T
where T: 'a + BlockHashReader + ?Sized, &'a T: Send + Sync,

§

fn block_hash( &self, number: u64, ) -> Result<Option<FixedBytes<32>>, ProviderError>

§

fn convert_block_hash( &self, hash_or_number: HashOrNumber, ) -> Result<Option<FixedBytes<32>>, ProviderError>

§

fn canonical_hashes_range( &self, start: u64, end: u64, ) -> Result<Vec<FixedBytes<32>>, ProviderError>

§

impl<N> BlockHashReader for MemoryOverlayStateProviderRef<'_, N>
where N: NodePrimitives,

§

fn block_hash( &self, number: u64, ) -> Result<Option<FixedBytes<32>>, ProviderError>

§

fn canonical_hashes_range( &self, start: u64, end: u64, ) -> Result<Vec<FixedBytes<32>>, ProviderError>

§

impl<T> BlockHashReader for Box<T>
where T: BlockHashReader + ?Sized, Box<T>: Send + Sync,

§

fn block_hash( &self, number: u64, ) -> Result<Option<FixedBytes<32>>, ProviderError>

§

fn convert_block_hash( &self, hash_or_number: HashOrNumber, ) -> Result<Option<FixedBytes<32>>, ProviderError>

§

fn canonical_hashes_range( &self, start: u64, end: u64, ) -> Result<Vec<FixedBytes<32>>, ProviderError>

§

impl<T> BlockHashReader for Arc<T>
where T: BlockHashReader + ?Sized, Arc<T>: Send + Sync,

§

fn block_hash( &self, number: u64, ) -> Result<Option<FixedBytes<32>>, ProviderError>

§

fn convert_block_hash( &self, hash_or_number: HashOrNumber, ) -> Result<Option<FixedBytes<32>>, ProviderError>

§

fn canonical_hashes_range( &self, start: u64, end: u64, ) -> Result<Vec<FixedBytes<32>>, ProviderError>

Implementors§

§

impl BlockHashReader for StateProviderTest

Source§

impl BlockHashReader for StateProviderTraitObjWrapper<'_>

§

impl BlockHashReader for MockEthProvider

§

impl<'a, Provider> BlockHashReader for HistoricalStateProvider<Provider>

§

impl<'a, Provider> BlockHashReader for LatestStateProvider<Provider>

§

impl<ChainSpec, N> BlockHashReader for NoopProvider<ChainSpec, N>
where ChainSpec: Send + Sync, N: Send + Sync,

Noop implementation for testing purposes

§

impl<N> BlockHashReader for BlockchainProvider2<N>

§

impl<N> BlockHashReader for BlockchainProvider<N>

§

impl<N> BlockHashReader for StaticFileJarProvider<'_, N>
where N: NodePrimitives,

§

impl<N> BlockHashReader for StaticFileProvider<N>
where N: NodePrimitives,

§

impl<N> BlockHashReader for ProviderFactory<N>

§

impl<Provider> BlockHashReader for HistoricalStateProviderRef<'_, Provider>

§

impl<Provider> BlockHashReader for LatestStateProviderRef<'_, Provider>
where Provider: BlockHashReader,

§

impl<SP, EDP> BlockHashReader for BundleStateProvider<SP, EDP>

§

impl<TX, N> BlockHashReader for DatabaseProvider<TX, N>
where TX: DbTx + 'static, N: NodeTypes,