mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
feat: add Block AT to BlockReader (#12837)
This commit is contained in:
@ -19,9 +19,9 @@ use reth_db::{init_db, mdbx::DatabaseArguments, DatabaseEnv};
|
||||
use reth_db_api::{database::Database, models::StoredBlockBodyIndices};
|
||||
use reth_errors::{RethError, RethResult};
|
||||
use reth_evm::ConfigureEvmEnv;
|
||||
use reth_node_types::{NodeTypesWithDB, TxTy};
|
||||
use reth_node_types::{BlockTy, NodeTypesWithDB, TxTy};
|
||||
use reth_primitives::{
|
||||
Block, BlockWithSenders, Receipt, SealedBlock, SealedBlockWithSenders, SealedHeader,
|
||||
BlockWithSenders, Receipt, SealedBlockFor, SealedBlockWithSenders, SealedHeader,
|
||||
StaticFileSegment, TransactionMeta,
|
||||
};
|
||||
use reth_prune_types::{PruneCheckpoint, PruneModes, PruneSegment};
|
||||
@ -353,23 +353,33 @@ impl<N: ProviderNodeTypes> BlockNumReader for ProviderFactory<N> {
|
||||
}
|
||||
|
||||
impl<N: ProviderNodeTypes> BlockReader for ProviderFactory<N> {
|
||||
fn find_block_by_hash(&self, hash: B256, source: BlockSource) -> ProviderResult<Option<Block>> {
|
||||
type Block = BlockTy<N>;
|
||||
|
||||
fn find_block_by_hash(
|
||||
&self,
|
||||
hash: B256,
|
||||
source: BlockSource,
|
||||
) -> ProviderResult<Option<Self::Block>> {
|
||||
self.provider()?.find_block_by_hash(hash, source)
|
||||
}
|
||||
|
||||
fn block(&self, id: BlockHashOrNumber) -> ProviderResult<Option<Block>> {
|
||||
fn block(&self, id: BlockHashOrNumber) -> ProviderResult<Option<Self::Block>> {
|
||||
self.provider()?.block(id)
|
||||
}
|
||||
|
||||
fn pending_block(&self) -> ProviderResult<Option<SealedBlock>> {
|
||||
fn pending_block(&self) -> ProviderResult<Option<SealedBlockFor<Self::Block>>> {
|
||||
self.provider()?.pending_block()
|
||||
}
|
||||
|
||||
fn pending_block_with_senders(&self) -> ProviderResult<Option<SealedBlockWithSenders>> {
|
||||
fn pending_block_with_senders(
|
||||
&self,
|
||||
) -> ProviderResult<Option<SealedBlockWithSenders<Self::Block>>> {
|
||||
self.provider()?.pending_block_with_senders()
|
||||
}
|
||||
|
||||
fn pending_block_and_receipts(&self) -> ProviderResult<Option<(SealedBlock, Vec<Receipt>)>> {
|
||||
fn pending_block_and_receipts(
|
||||
&self,
|
||||
) -> ProviderResult<Option<(SealedBlockFor<Self::Block>, Vec<Receipt>)>> {
|
||||
self.provider()?.pending_block_and_receipts()
|
||||
}
|
||||
|
||||
@ -388,7 +398,7 @@ impl<N: ProviderNodeTypes> BlockReader for ProviderFactory<N> {
|
||||
&self,
|
||||
id: BlockHashOrNumber,
|
||||
transaction_kind: TransactionVariant,
|
||||
) -> ProviderResult<Option<BlockWithSenders>> {
|
||||
) -> ProviderResult<Option<BlockWithSenders<Self::Block>>> {
|
||||
self.provider()?.block_with_senders(id, transaction_kind)
|
||||
}
|
||||
|
||||
@ -396,25 +406,25 @@ impl<N: ProviderNodeTypes> BlockReader for ProviderFactory<N> {
|
||||
&self,
|
||||
id: BlockHashOrNumber,
|
||||
transaction_kind: TransactionVariant,
|
||||
) -> ProviderResult<Option<SealedBlockWithSenders>> {
|
||||
) -> ProviderResult<Option<SealedBlockWithSenders<Self::Block>>> {
|
||||
self.provider()?.sealed_block_with_senders(id, transaction_kind)
|
||||
}
|
||||
|
||||
fn block_range(&self, range: RangeInclusive<BlockNumber>) -> ProviderResult<Vec<Block>> {
|
||||
fn block_range(&self, range: RangeInclusive<BlockNumber>) -> ProviderResult<Vec<Self::Block>> {
|
||||
self.provider()?.block_range(range)
|
||||
}
|
||||
|
||||
fn block_with_senders_range(
|
||||
&self,
|
||||
range: RangeInclusive<BlockNumber>,
|
||||
) -> ProviderResult<Vec<BlockWithSenders>> {
|
||||
) -> ProviderResult<Vec<BlockWithSenders<Self::Block>>> {
|
||||
self.provider()?.block_with_senders_range(range)
|
||||
}
|
||||
|
||||
fn sealed_block_with_senders_range(
|
||||
&self,
|
||||
range: RangeInclusive<BlockNumber>,
|
||||
) -> ProviderResult<Vec<SealedBlockWithSenders>> {
|
||||
) -> ProviderResult<Vec<SealedBlockWithSenders<Self::Block>>> {
|
||||
self.provider()?.sealed_block_with_senders_range(range)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user