pub trait ReceiptProvider {
type Receipt: Receipt;
// Required methods
fn receipt(&self, id: TxNumber) -> ProviderResult<Option<Self::Receipt>>;
fn receipt_by_hash(
&self,
hash: TxHash,
) -> ProviderResult<Option<Self::Receipt>>;
fn receipts_by_block(
&self,
block: BlockHashOrNumber,
) -> ProviderResult<Option<Vec<Self::Receipt>>>;
fn receipts_by_tx_range(
&self,
range: impl RangeBounds<TxNumber>,
) -> ProviderResult<Vec<Self::Receipt>>;
fn receipts_by_block_range(
&self,
block_range: RangeInclusive<BlockNumber>,
) -> ProviderResult<Vec<Vec<Self::Receipt>>>;
}Expand description
Client trait for fetching receipt data.
Required Associated Types§
Required Methods§
Sourcefn receipt(&self, id: TxNumber) -> ProviderResult<Option<Self::Receipt>>
fn receipt(&self, id: TxNumber) -> ProviderResult<Option<Self::Receipt>>
Get receipt by transaction number
Returns None if the transaction is not found.
Sourcefn receipt_by_hash(&self, hash: TxHash) -> ProviderResult<Option<Self::Receipt>>
fn receipt_by_hash(&self, hash: TxHash) -> ProviderResult<Option<Self::Receipt>>
Get receipt by transaction hash.
Returns None if the transaction is not found.
Sourcefn receipts_by_block(
&self,
block: BlockHashOrNumber,
) -> ProviderResult<Option<Vec<Self::Receipt>>>
fn receipts_by_block( &self, block: BlockHashOrNumber, ) -> ProviderResult<Option<Vec<Self::Receipt>>>
Get receipts by block num or hash.
Returns None if the block is not found.
Sourcefn receipts_by_tx_range(
&self,
range: impl RangeBounds<TxNumber>,
) -> ProviderResult<Vec<Self::Receipt>>
fn receipts_by_tx_range( &self, range: impl RangeBounds<TxNumber>, ) -> ProviderResult<Vec<Self::Receipt>>
Get receipts by tx range.
Sourcefn receipts_by_block_range(
&self,
block_range: RangeInclusive<BlockNumber>,
) -> ProviderResult<Vec<Vec<Self::Receipt>>>
fn receipts_by_block_range( &self, block_range: RangeInclusive<BlockNumber>, ) -> ProviderResult<Vec<Vec<Self::Receipt>>>
Get receipts by block range.
Returns a vector where each element contains all receipts for a block in the range.
The outer vector index corresponds to blocks in the range (block_range.start() + index).
Empty blocks will have empty inner vectors.
This is more efficient than calling receipts_by_block multiple times for contiguous ranges
because it can leverage the underlying receipts_by_tx_range for the entire transaction
span.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".