Trait TransactionsProvider
pub trait TransactionsProvider:
BlockNumReader
+ Send
+ Sync {
// Required methods
fn transaction_id(
&self,
tx_hash: FixedBytes<32>,
) -> Result<Option<u64>, ProviderError>;
fn transaction_by_id(
&self,
id: u64,
) -> Result<Option<TransactionSigned>, ProviderError>;
fn transaction_by_id_no_hash(
&self,
id: u64,
) -> Result<Option<TransactionSignedNoHash>, ProviderError>;
fn transaction_by_hash(
&self,
hash: FixedBytes<32>,
) -> Result<Option<TransactionSigned>, ProviderError>;
fn transaction_by_hash_with_meta(
&self,
hash: FixedBytes<32>,
) -> Result<Option<(TransactionSigned, TransactionMeta)>, ProviderError>;
fn transaction_block(&self, id: u64) -> Result<Option<u64>, ProviderError>;
fn transactions_by_block(
&self,
block: HashOrNumber,
) -> Result<Option<Vec<TransactionSigned>>, ProviderError>;
fn transactions_by_block_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Vec<TransactionSigned>>, ProviderError>;
fn transactions_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<TransactionSignedNoHash>, ProviderError>;
fn senders_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Address>, ProviderError>;
fn transaction_sender(
&self,
id: u64,
) -> Result<Option<Address>, ProviderError>;
}
Expand description
Client trait for fetching TransactionSigned related data.
Required Methods§
fn transaction_id(
&self,
tx_hash: FixedBytes<32>,
) -> Result<Option<u64>, ProviderError>
fn transaction_id( &self, tx_hash: FixedBytes<32>, ) -> Result<Option<u64>, ProviderError>
Get internal transaction identifier by transaction hash.
This is the inverse of TransactionsProvider::transaction_by_id. Returns None if the transaction is not found.
fn transaction_by_id(
&self,
id: u64,
) -> Result<Option<TransactionSigned>, ProviderError>
fn transaction_by_id( &self, id: u64, ) -> Result<Option<TransactionSigned>, ProviderError>
Get transaction by id, computes hash every time so more expensive.
fn transaction_by_id_no_hash(
&self,
id: u64,
) -> Result<Option<TransactionSignedNoHash>, ProviderError>
fn transaction_by_id_no_hash( &self, id: u64, ) -> Result<Option<TransactionSignedNoHash>, ProviderError>
Get transaction by id without computing the hash.
fn transaction_by_hash(
&self,
hash: FixedBytes<32>,
) -> Result<Option<TransactionSigned>, ProviderError>
fn transaction_by_hash( &self, hash: FixedBytes<32>, ) -> Result<Option<TransactionSigned>, ProviderError>
Get transaction by transaction hash.
fn transaction_by_hash_with_meta(
&self,
hash: FixedBytes<32>,
) -> Result<Option<(TransactionSigned, TransactionMeta)>, ProviderError>
fn transaction_by_hash_with_meta( &self, hash: FixedBytes<32>, ) -> Result<Option<(TransactionSigned, TransactionMeta)>, ProviderError>
Get transaction by transaction hash and additional metadata of the block the transaction was mined in
fn transaction_block(&self, id: u64) -> Result<Option<u64>, ProviderError>
fn transaction_block(&self, id: u64) -> Result<Option<u64>, ProviderError>
Get transaction block number
fn transactions_by_block(
&self,
block: HashOrNumber,
) -> Result<Option<Vec<TransactionSigned>>, ProviderError>
fn transactions_by_block( &self, block: HashOrNumber, ) -> Result<Option<Vec<TransactionSigned>>, ProviderError>
Get transactions by block id.
fn transactions_by_block_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Vec<TransactionSigned>>, ProviderError>
fn transactions_by_block_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<Vec<TransactionSigned>>, ProviderError>
Get transactions by block range.
fn transactions_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<TransactionSignedNoHash>, ProviderError>
fn transactions_by_tx_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<TransactionSignedNoHash>, ProviderError>
Get transactions by tx range.
fn senders_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Address>, ProviderError>
fn senders_by_tx_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<Address>, ProviderError>
Get Senders from a tx range.
fn transaction_sender(&self, id: u64) -> Result<Option<Address>, ProviderError>
fn transaction_sender(&self, id: u64) -> Result<Option<Address>, ProviderError>
Get transaction sender.
Returns None if the transaction is not found.
Object Safety§
This trait is not object safe.