mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
chore: add BlockBodyIndicesProvider trait (#13347)
This commit is contained in:
@ -1,10 +1,9 @@
|
||||
use crate::{
|
||||
BlockNumReader, HeaderProvider, OmmersProvider, ReceiptProvider, ReceiptProviderIdExt,
|
||||
TransactionVariant, TransactionsProvider, WithdrawalsProvider,
|
||||
BlockBodyIndicesProvider, BlockNumReader, HeaderProvider, OmmersProvider, ReceiptProvider,
|
||||
ReceiptProviderIdExt, TransactionVariant, TransactionsProvider, WithdrawalsProvider,
|
||||
};
|
||||
use alloy_eips::{BlockHashOrNumber, BlockId, BlockNumberOrTag};
|
||||
use alloy_primitives::{BlockNumber, B256};
|
||||
use reth_db_models::StoredBlockBodyIndices;
|
||||
use reth_primitives::{BlockWithSenders, SealedBlockFor, SealedBlockWithSenders, SealedHeader};
|
||||
use reth_storage_errors::provider::ProviderResult;
|
||||
use std::ops::RangeInclusive;
|
||||
@ -50,6 +49,7 @@ pub type ProviderBlock<P> = <P as BlockReader>::Block;
|
||||
pub trait BlockReader:
|
||||
BlockNumReader
|
||||
+ HeaderProvider
|
||||
+ BlockBodyIndicesProvider
|
||||
+ TransactionsProvider
|
||||
+ ReceiptProvider
|
||||
+ WithdrawalsProvider
|
||||
@ -113,11 +113,6 @@ pub trait BlockReader:
|
||||
self.block(num.into())
|
||||
}
|
||||
|
||||
/// Returns the block body indices with matching number from database.
|
||||
///
|
||||
/// Returns `None` if block is not found.
|
||||
fn block_body_indices(&self, num: u64) -> ProviderResult<Option<StoredBlockBodyIndices>>;
|
||||
|
||||
/// Returns the block with senders with matching number or hash from database.
|
||||
///
|
||||
/// Returns the block's transactions in the requested variant.
|
||||
@ -192,9 +187,6 @@ impl<T: BlockReader> BlockReader for std::sync::Arc<T> {
|
||||
fn block_by_number(&self, num: u64) -> ProviderResult<Option<Self::Block>> {
|
||||
T::block_by_number(self, num)
|
||||
}
|
||||
fn block_body_indices(&self, num: u64) -> ProviderResult<Option<StoredBlockBodyIndices>> {
|
||||
T::block_body_indices(self, num)
|
||||
}
|
||||
fn block_with_senders(
|
||||
&self,
|
||||
id: BlockHashOrNumber,
|
||||
@ -258,9 +250,6 @@ impl<T: BlockReader> BlockReader for &T {
|
||||
fn block_by_number(&self, num: u64) -> ProviderResult<Option<Self::Block>> {
|
||||
T::block_by_number(self, num)
|
||||
}
|
||||
fn block_body_indices(&self, num: u64) -> ProviderResult<Option<StoredBlockBodyIndices>> {
|
||||
T::block_body_indices(self, num)
|
||||
}
|
||||
fn block_with_senders(
|
||||
&self,
|
||||
id: BlockHashOrNumber,
|
||||
|
||||
11
crates/storage/storage-api/src/block_indices.rs
Normal file
11
crates/storage/storage-api/src/block_indices.rs
Normal file
@ -0,0 +1,11 @@
|
||||
use reth_db_models::StoredBlockBodyIndices;
|
||||
use reth_storage_errors::provider::ProviderResult;
|
||||
|
||||
/// Client trait for fetching block body indices related data.
|
||||
#[auto_impl::auto_impl(&, Arc)]
|
||||
pub trait BlockBodyIndicesProvider: Send + Sync {
|
||||
/// Returns the block body indices with matching number from database.
|
||||
///
|
||||
/// Returns `None` if block is not found.
|
||||
fn block_body_indices(&self, num: u64) -> ProviderResult<Option<StoredBlockBodyIndices>>;
|
||||
}
|
||||
@ -76,3 +76,6 @@ pub use legacy::*;
|
||||
|
||||
mod primitives;
|
||||
pub use primitives::*;
|
||||
|
||||
mod block_indices;
|
||||
pub use block_indices::*;
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
//! Various noop implementations for traits.
|
||||
|
||||
use crate::{
|
||||
AccountReader, BlockHashReader, BlockIdReader, BlockNumReader, BlockReader, BlockReaderIdExt,
|
||||
BlockSource, ChangeSetReader, HashedPostStateProvider, HeaderProvider, NodePrimitivesProvider,
|
||||
OmmersProvider, PruneCheckpointReader, ReceiptProvider, ReceiptProviderIdExt,
|
||||
StageCheckpointReader, StateProofProvider, StateProvider, StateProviderBox,
|
||||
StateProviderFactory, StateRootProvider, StorageRootProvider, TransactionVariant,
|
||||
TransactionsProvider, WithdrawalsProvider,
|
||||
AccountReader, BlockBodyIndicesProvider, BlockHashReader, BlockIdReader, BlockNumReader,
|
||||
BlockReader, BlockReaderIdExt, BlockSource, ChangeSetReader, HashedPostStateProvider,
|
||||
HeaderProvider, NodePrimitivesProvider, OmmersProvider, PruneCheckpointReader, ReceiptProvider,
|
||||
ReceiptProviderIdExt, StageCheckpointReader, StateProofProvider, StateProvider,
|
||||
StateProviderBox, StateProviderFactory, StateRootProvider, StorageRootProvider,
|
||||
TransactionVariant, TransactionsProvider, WithdrawalsProvider,
|
||||
};
|
||||
use alloy_eips::{
|
||||
eip4895::{Withdrawal, Withdrawals},
|
||||
@ -185,10 +185,6 @@ impl<C: Send + Sync, N: NodePrimitives> BlockReader for NoopProvider<C, N> {
|
||||
Ok(None)
|
||||
}
|
||||
|
||||
fn block_body_indices(&self, _num: u64) -> ProviderResult<Option<StoredBlockBodyIndices>> {
|
||||
Ok(None)
|
||||
}
|
||||
|
||||
fn block_with_senders(
|
||||
&self,
|
||||
_id: BlockHashOrNumber,
|
||||
@ -575,3 +571,9 @@ impl<C: Send + Sync, N: NodePrimitives> PruneCheckpointReader for NoopProvider<C
|
||||
impl<C: Send + Sync, N: NodePrimitives> NodePrimitivesProvider for NoopProvider<C, N> {
|
||||
type Primitives = N;
|
||||
}
|
||||
|
||||
impl<C: Send + Sync, N: Send + Sync> BlockBodyIndicesProvider for NoopProvider<C, N> {
|
||||
fn block_body_indices(&self, _num: u64) -> ProviderResult<Option<StoredBlockBodyIndices>> {
|
||||
Ok(None)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user