Files
reth/crates/storage/storage-api/src/noop.rs
2024-07-03 13:33:43 +00:00

45 lines
1.1 KiB
Rust

//! Various noop implementations for traits.
use crate::{BlockHashReader, BlockNumReader};
use reth_chainspec::ChainInfo;
use reth_primitives::{BlockNumber, B256};
use reth_storage_errors::provider::ProviderResult;
/// Supports various api interfaces for testing purposes.
#[derive(Debug, Clone, Default, Copy)]
#[non_exhaustive]
pub struct NoopBlockReader;
/// Noop implementation for testing purposes
impl BlockHashReader for NoopBlockReader {
fn block_hash(&self, _number: u64) -> ProviderResult<Option<B256>> {
Ok(None)
}
fn canonical_hashes_range(
&self,
_start: BlockNumber,
_end: BlockNumber,
) -> ProviderResult<Vec<B256>> {
Ok(vec![])
}
}
impl BlockNumReader for NoopBlockReader {
fn chain_info(&self) -> ProviderResult<ChainInfo> {
Ok(ChainInfo::default())
}
fn best_block_number(&self) -> ProviderResult<BlockNumber> {
Ok(0)
}
fn last_block_number(&self) -> ProviderResult<BlockNumber> {
Ok(0)
}
fn block_number(&self, _hash: B256) -> ProviderResult<Option<BlockNumber>> {
Ok(None)
}
}