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>
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>
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>
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 BlockHashReader for MemoryOverlayStateProvider
impl BlockHashReader for MemoryOverlayStateProvider
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 BlockHashReader for StateProviderTest
impl BlockHashReader for StateProviderTest
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<'a> BlockHashReader for MemoryOverlayStateProviderRef<'a>
impl<'a> BlockHashReader for MemoryOverlayStateProviderRef<'a>
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<'a, T> BlockHashReader for &'a T
impl<'a, T> BlockHashReader for &'a T
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 Box<T>
impl<T> BlockHashReader for Box<T>
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>
impl<T> BlockHashReader for Arc<T>
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 StaticFileJarProvider<'_>
impl BlockHashReader for StaticFileProvider
impl BlockHashReader for MockEthProvider
Available on crate feature
test-utils
only.impl BlockHashReader for NoopProvider
Available on crate feature
test-utils
only.Noop implementation for testing purposes
impl<'a, Provider: DBProvider + BlockNumReader + BlockHashReader> BlockHashReader for HistoricalStateProvider<Provider>
impl<'a, TX: DbTx> BlockHashReader for LatestStateProvider<TX>
impl<ChainSpec> BlockHashReader for NoopBlockReader<ChainSpec>
Noop implementation for testing purposes