pub trait ReceiptProvider {
type Receipt: Receipt;
// Required methods
fn receipt(&self, id: u64) -> Result<Option<Self::Receipt>, ProviderError>;
fn receipt_by_hash(
&self,
hash: FixedBytes<32>,
) -> Result<Option<Self::Receipt>, ProviderError>;
fn receipts_by_block(
&self,
block: HashOrNumber,
) -> Result<Option<Vec<Self::Receipt>>, ProviderError>;
fn receipts_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Self::Receipt>, ProviderError>;
fn receipts_by_block_range(
&self,
block_range: RangeInclusive<u64>,
) -> Result<Vec<Vec<Self::Receipt>>, ProviderError>;
}provider only.Expand description
Client trait for fetching receipt data.
Required Associated Types§
Required Methods§
Sourcefn receipt(&self, id: u64) -> Result<Option<Self::Receipt>, ProviderError>
fn receipt(&self, id: u64) -> Result<Option<Self::Receipt>, ProviderError>
Get receipt by transaction number
Returns None if the transaction is not found.
Sourcefn receipt_by_hash(
&self,
hash: FixedBytes<32>,
) -> Result<Option<Self::Receipt>, ProviderError>
fn receipt_by_hash( &self, hash: FixedBytes<32>, ) -> Result<Option<Self::Receipt>, ProviderError>
Get receipt by transaction hash.
Returns None if the transaction is not found.
Sourcefn receipts_by_block(
&self,
block: HashOrNumber,
) -> Result<Option<Vec<Self::Receipt>>, ProviderError>
fn receipts_by_block( &self, block: HashOrNumber, ) -> Result<Option<Vec<Self::Receipt>>, ProviderError>
Get receipts by block num or hash.
Returns None if the block is not found.
Sourcefn receipts_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Self::Receipt>, ProviderError>
fn receipts_by_tx_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<Self::Receipt>, ProviderError>
Get receipts by tx range.
Sourcefn receipts_by_block_range(
&self,
block_range: RangeInclusive<u64>,
) -> Result<Vec<Vec<Self::Receipt>>, ProviderError>
fn receipts_by_block_range( &self, block_range: RangeInclusive<u64>, ) -> Result<Vec<Vec<Self::Receipt>>, ProviderError>
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".