Trait reth_storage_api::BlockReaderIdExt
source · pub trait BlockReaderIdExt:
BlockReader
+ BlockIdReader
+ ReceiptProviderIdExt {
Show 13 methods
// Required methods
fn block_by_id(&self, id: BlockId) -> ProviderResult<Option<Block>>;
fn sealed_header_by_id(
&self,
id: BlockId,
) -> ProviderResult<Option<SealedHeader>>;
fn header_by_id(&self, id: BlockId) -> ProviderResult<Option<Header>>;
fn ommers_by_id(&self, id: BlockId) -> ProviderResult<Option<Vec<Header>>>;
// Provided methods
fn block_by_number_or_tag(
&self,
id: BlockNumberOrTag,
) -> ProviderResult<Option<Block>> { ... }
fn pending_header(&self) -> ProviderResult<Option<SealedHeader>> { ... }
fn latest_header(&self) -> ProviderResult<Option<SealedHeader>> { ... }
fn safe_header(&self) -> ProviderResult<Option<SealedHeader>> { ... }
fn finalized_header(&self) -> ProviderResult<Option<SealedHeader>> { ... }
fn block_with_senders_by_id(
&self,
id: BlockId,
transaction_kind: TransactionVariant,
) -> ProviderResult<Option<BlockWithSenders>> { ... }
fn header_by_number_or_tag(
&self,
id: BlockNumberOrTag,
) -> ProviderResult<Option<Header>> { ... }
fn sealed_header_by_number_or_tag(
&self,
id: BlockNumberOrTag,
) -> ProviderResult<Option<SealedHeader>> { ... }
fn ommers_by_number_or_tag(
&self,
id: BlockNumberOrTag,
) -> ProviderResult<Option<Vec<Header>>> { ... }
}
Expand description
Trait extension for BlockReader
, for types that implement BlockId
conversion.
The BlockReader
trait should be implemented on types that can retrieve a block from either
a block number or hash. However, it might be desirable to fetch a block from a BlockId
type,
which can be a number, hash, or tag such as BlockNumberOrTag::Safe
.
Resolving tags requires keeping track of block hashes or block numbers associated with the tag,
so this trait can only be implemented for types that implement BlockIdReader
. The
BlockIdReader
methods should be used to resolve BlockId
s to block numbers or hashes, and
retrieving the block should be done using the type’s BlockReader
methods.
Required Methods§
sourcefn block_by_id(&self, id: BlockId) -> ProviderResult<Option<Block>>
fn block_by_id(&self, id: BlockId) -> ProviderResult<Option<Block>>
Returns the block with the matching [BlockId
] from the database.
Returns None
if block is not found.
sourcefn sealed_header_by_id(
&self,
id: BlockId,
) -> ProviderResult<Option<SealedHeader>>
fn sealed_header_by_id( &self, id: BlockId, ) -> ProviderResult<Option<SealedHeader>>
Returns the sealed header with the matching BlockId
from the database.
Returns None
if header is not found.
sourcefn header_by_id(&self, id: BlockId) -> ProviderResult<Option<Header>>
fn header_by_id(&self, id: BlockId) -> ProviderResult<Option<Header>>
Returns the header with the matching BlockId
from the database.
Returns None
if header is not found.
sourcefn ommers_by_id(&self, id: BlockId) -> ProviderResult<Option<Vec<Header>>>
fn ommers_by_id(&self, id: BlockId) -> ProviderResult<Option<Vec<Header>>>
Returns the ommers with the matching BlockId
from the database.
Returns None
if block is not found.
Provided Methods§
sourcefn block_by_number_or_tag(
&self,
id: BlockNumberOrTag,
) -> ProviderResult<Option<Block>>
fn block_by_number_or_tag( &self, id: BlockNumberOrTag, ) -> ProviderResult<Option<Block>>
Returns the block with matching tag from the database
Returns None
if block is not found.
sourcefn pending_header(&self) -> ProviderResult<Option<SealedHeader>>
fn pending_header(&self) -> ProviderResult<Option<SealedHeader>>
Returns the pending block header if available
Note: This returns a [SealedHeader
] because it’s expected that this is sealed by the
provider and the caller does not know the hash.
sourcefn latest_header(&self) -> ProviderResult<Option<SealedHeader>>
fn latest_header(&self) -> ProviderResult<Option<SealedHeader>>
Returns the latest block header if available
Note: This returns a [SealedHeader
] because it’s expected that this is sealed by the
provider and the caller does not know the hash.
sourcefn safe_header(&self) -> ProviderResult<Option<SealedHeader>>
fn safe_header(&self) -> ProviderResult<Option<SealedHeader>>
Returns the safe block header if available
Note: This returns a [SealedHeader
] because it’s expected that this is sealed by the
provider and the caller does not know the hash.
sourcefn finalized_header(&self) -> ProviderResult<Option<SealedHeader>>
fn finalized_header(&self) -> ProviderResult<Option<SealedHeader>>
Returns the finalized block header if available
Note: This returns a [SealedHeader
] because it’s expected that this is sealed by the
provider and the caller does not know the hash.
sourcefn block_with_senders_by_id(
&self,
id: BlockId,
transaction_kind: TransactionVariant,
) -> ProviderResult<Option<BlockWithSenders>>
fn block_with_senders_by_id( &self, id: BlockId, transaction_kind: TransactionVariant, ) -> ProviderResult<Option<BlockWithSenders>>
Returns the block with senders with matching [BlockId
].
Returns the block’s transactions in the requested variant.
Returns None
if block is not found.
sourcefn header_by_number_or_tag(
&self,
id: BlockNumberOrTag,
) -> ProviderResult<Option<Header>>
fn header_by_number_or_tag( &self, id: BlockNumberOrTag, ) -> ProviderResult<Option<Header>>
Returns the header with matching tag from the database
Returns None
if header is not found.
sourcefn sealed_header_by_number_or_tag(
&self,
id: BlockNumberOrTag,
) -> ProviderResult<Option<SealedHeader>>
fn sealed_header_by_number_or_tag( &self, id: BlockNumberOrTag, ) -> ProviderResult<Option<SealedHeader>>
Returns the header with matching tag from the database
Returns None
if header is not found.
sourcefn ommers_by_number_or_tag(
&self,
id: BlockNumberOrTag,
) -> ProviderResult<Option<Vec<Header>>>
fn ommers_by_number_or_tag( &self, id: BlockNumberOrTag, ) -> ProviderResult<Option<Vec<Header>>>
Returns the ommers with the matching tag from the database.