Trait ReceiptProvider
pub trait ReceiptProvider: Send + Sync {
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>;
}
Expand description
Client trait for fetching receipt data.
Required Associated Types§
Required Methods§
fn 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.
fn 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.
fn 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.
fn 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.
fn 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", so this trait is not object safe.