Trait BlockHashReader

Source
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> { ... }
}
Available on crate feature provider only.
Expand description

Client trait for fetching block hashes by number.

Required Methods§

Source

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.

Source

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§

Source

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§

Source§

impl BlockHashReader for StateProviderTest

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Implementors§

Source§

impl BlockHashReader for StateProviderTraitObjWrapper<'_>

Source§

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

Source§

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

Source§

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

Noop implementation for testing purposes

Source§

impl<N> BlockHashReader for BlockchainProvider<N>

Source§

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

Source§

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

Source§

impl<N> BlockHashReader for ProviderFactory<N>

Source§

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

Source§

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

Source§

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

Source§

impl<T, ChainSpec> BlockHashReader for MockEthProvider<T, ChainSpec>
where T: Transaction, ChainSpec: EthChainSpec,

Source§

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