pub struct CacheProvider<P, N> { /* private fields */ }Expand description
The CacheProvider holds the underlying in-memory LRU cache and overrides methods
from the Provider trait. It attempts to fetch from the cache and fallbacks to
the RPC in case of a cache miss.
Most importantly, the CacheProvider adds save_cache and load_cache methods
to the provider interface, allowing users to save the cache to disk and load it
from there on demand.
Implementations§
Source§impl<P, N> CacheProvider<P, N>
impl<P, N> CacheProvider<P, N>
Sourcepub const fn new(inner: P, cache: SharedCache) -> Self
pub const fn new(inner: P, cache: SharedCache) -> Self
Instantiate a new cache provider.
Trait Implementations§
Source§impl<P: Clone, N: Clone> Clone for CacheProvider<P, N>
impl<P: Clone, N: Clone> Clone for CacheProvider<P, N>
Source§fn clone(&self) -> CacheProvider<P, N>
fn clone(&self) -> CacheProvider<P, N>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<P, N> Provider<N> for CacheProvider<P, N>
impl<P, N> Provider<N> for CacheProvider<P, N>
Source§fn root(&self) -> &RootProvider<N>
fn root(&self) -> &RootProvider<N>
Returns the root provider.
Source§fn get_block_receipts(
&self,
block: BlockId,
) -> ProviderCall<(BlockId,), Option<Vec<N::ReceiptResponse>>> ⓘ
fn get_block_receipts( &self, block: BlockId, ) -> ProviderCall<(BlockId,), Option<Vec<N::ReceiptResponse>>> ⓘ
Gets the selected block BlockId receipts.
Source§fn get_code_at(&self, address: Address) -> RpcWithBlock<Address, Bytes>
fn get_code_at(&self, address: Address) -> RpcWithBlock<Address, Bytes>
Gets the bytecode located at the corresponding Address.
Source§fn get_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 Filter,
) -> Pin<Box<dyn Future<Output = TransportResult<Vec<Log>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 Filter,
) -> Pin<Box<dyn Future<Output = TransportResult<Vec<Log>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_proof(
&self,
address: Address,
keys: Vec<StorageKey>,
) -> RpcWithBlock<(Address, Vec<StorageKey>), EIP1186AccountProofResponse>
fn get_proof( &self, address: Address, keys: Vec<StorageKey>, ) -> RpcWithBlock<(Address, Vec<StorageKey>), EIP1186AccountProofResponse>
Get the account and storage values of the specified account including the merkle proofs. Read more
Source§fn get_storage_at(
&self,
address: Address,
key: U256,
) -> RpcWithBlock<(Address, U256), StorageValue>
fn get_storage_at( &self, address: Address, key: U256, ) -> RpcWithBlock<(Address, U256), StorageValue>
Gets the specified storage value from Address.
Source§fn get_transaction_by_hash(
&self,
hash: TxHash,
) -> ProviderCall<(TxHash,), Option<N::TransactionResponse>> ⓘ
fn get_transaction_by_hash( &self, hash: TxHash, ) -> ProviderCall<(TxHash,), Option<N::TransactionResponse>> ⓘ
Gets a transaction by its TxHash.
Source§fn get_raw_transaction_by_hash(
&self,
hash: TxHash,
) -> ProviderCall<(TxHash,), Option<Bytes>> ⓘ
fn get_raw_transaction_by_hash( &self, hash: TxHash, ) -> ProviderCall<(TxHash,), Option<Bytes>> ⓘ
Returns the EIP-2718 encoded transaction if it exists, see also
Decodable2718. Read more
Source§fn get_transaction_receipt(
&self,
hash: TxHash,
) -> ProviderCall<(TxHash,), Option<N::ReceiptResponse>> ⓘ
fn get_transaction_receipt( &self, hash: TxHash, ) -> ProviderCall<(TxHash,), Option<N::ReceiptResponse>> ⓘ
Gets a transaction receipt if it exists, by its TxHash.
Source§fn builder() -> ProviderBuilder<Identity, Identity, N>where
Self: Sized,
fn builder() -> ProviderBuilder<Identity, Identity, N>where
Self: Sized,
Returns the
ProviderBuilder to build on.Source§fn weak_client(&self) -> WeakClient
fn weak_client(&self) -> WeakClient
Source§fn erased(self) -> DynProvider<N>where
Self: Sized + 'static,
fn erased(self) -> DynProvider<N>where
Self: Sized + 'static,
Returns a type erased provider wrapped in Arc. See
DynProvider. Read moreSource§fn get_accounts(&self) -> ProviderCall<NoParams, Vec<Address>> ⓘ
fn get_accounts(&self) -> ProviderCall<NoParams, Vec<Address>> ⓘ
Gets the accounts in the remote node. This is usually empty unless you’re using a local
node.
Source§fn get_blob_base_fee(&self) -> ProviderCall<NoParams, U128, u128> ⓘ
fn get_blob_base_fee(&self) -> ProviderCall<NoParams, U128, u128> ⓘ
Returns the base fee per blob gas (blob gas price) in wei.
Source§fn get_block_number(&self) -> ProviderCall<NoParams, U64, BlockNumber> ⓘ
fn get_block_number(&self) -> ProviderCall<NoParams, U64, BlockNumber> ⓘ
Get the last block number available.
Source§fn get_block_number_by_id<'life0, 'async_trait>(
&'life0 self,
block_id: BlockId,
) -> Pin<Box<dyn Future<Output = TransportResult<Option<BlockNumber>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_block_number_by_id<'life0, 'async_trait>(
&'life0 self,
block_id: BlockId,
) -> Pin<Box<dyn Future<Output = TransportResult<Option<BlockNumber>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get the block number for a given block identifier. Read more
Source§fn call(&self, tx: N::TransactionRequest) -> EthCall<N, Bytes>
fn call(&self, tx: N::TransactionRequest) -> EthCall<N, Bytes>
Execute a smart contract call with a transaction request and state
overrides, without publishing a transaction. Read more
Source§fn call_many<'req>(
&self,
bundles: &'req [Bundle],
) -> EthCallMany<'req, N, Vec<Vec<EthCallResponse>>>
fn call_many<'req>( &self, bundles: &'req [Bundle], ) -> EthCallMany<'req, N, Vec<Vec<EthCallResponse>>>
Execute a list of
Bundle against the provided StateContext and StateOverride,
without publishing a transaction. Read moreSource§fn multicall(&self) -> MulticallBuilder<Empty, &Self, N>where
Self: Sized,
fn multicall(&self) -> MulticallBuilder<Empty, &Self, N>where
Self: Sized,
Execute a multicall by leveraging the
MulticallBuilder. Read moreSource§fn simulate<'req>(
&self,
payload: &'req SimulatePayload,
) -> RpcWithBlock<&'req SimulatePayload, Vec<SimulatedBlock<N::BlockResponse>>>
fn simulate<'req>( &self, payload: &'req SimulatePayload, ) -> RpcWithBlock<&'req SimulatePayload, Vec<SimulatedBlock<N::BlockResponse>>>
Executes an arbitrary number of transactions on top of the requested state. Read more
Source§fn get_chain_id(&self) -> ProviderCall<NoParams, U64, u64> ⓘ
fn get_chain_id(&self) -> ProviderCall<NoParams, U64, u64> ⓘ
Gets the chain ID.
Source§fn create_access_list<'a>(
&self,
request: &'a N::TransactionRequest,
) -> RpcWithBlock<&'a N::TransactionRequest, AccessListResult>
fn create_access_list<'a>( &self, request: &'a N::TransactionRequest, ) -> RpcWithBlock<&'a N::TransactionRequest, AccessListResult>
Create an EIP-2930 access list.
Source§fn estimate_gas(&self, tx: N::TransactionRequest) -> EthCall<N, U64, u64>
fn estimate_gas(&self, tx: N::TransactionRequest) -> EthCall<N, U64, u64>
Source§fn estimate_eip1559_fees_with<'life0, 'async_trait>(
&'life0 self,
estimator: Eip1559Estimator,
) -> Pin<Box<dyn Future<Output = TransportResult<Eip1559Estimation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn estimate_eip1559_fees_with<'life0, 'async_trait>(
&'life0 self,
estimator: Eip1559Estimator,
) -> Pin<Box<dyn Future<Output = TransportResult<Eip1559Estimation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn estimate_eip1559_fees<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<Eip1559Estimation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn estimate_eip1559_fees<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<Eip1559Estimation>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_fee_history<'life0, 'life1, 'async_trait>(
&'life0 self,
block_count: u64,
last_block: BlockNumberOrTag,
reward_percentiles: &'life1 [f64],
) -> Pin<Box<dyn Future<Output = TransportResult<FeeHistory>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_fee_history<'life0, 'life1, 'async_trait>(
&'life0 self,
block_count: u64,
last_block: BlockNumberOrTag,
reward_percentiles: &'life1 [f64],
) -> Pin<Box<dyn Future<Output = TransportResult<FeeHistory>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Returns a collection of historical gas information FeeHistory which
can be used to calculate the EIP1559 fields
maxFeePerGas and maxPriorityFeePerGas.
block_count can range from 1 to 1024 blocks in a single request.Source§fn get_gas_price(&self) -> ProviderCall<NoParams, U128, u128> ⓘ
fn get_gas_price(&self) -> ProviderCall<NoParams, U128, u128> ⓘ
Gets the current gas price in wei.
Source§fn get_account_info(
&self,
address: Address,
) -> RpcWithBlock<Address, AccountInfo>
fn get_account_info( &self, address: Address, ) -> RpcWithBlock<Address, AccountInfo>
Source§fn get_account(&self, address: Address) -> RpcWithBlock<Address, Account>
fn get_account(&self, address: Address) -> RpcWithBlock<Address, Account>
Source§fn get_balance(&self, address: Address) -> RpcWithBlock<Address, U256, U256>
fn get_balance(&self, address: Address) -> RpcWithBlock<Address, U256, U256>
Gets the balance of the account. Read more
Source§fn get_block(&self, block: BlockId) -> EthGetBlock<N::BlockResponse>
fn get_block(&self, block: BlockId) -> EthGetBlock<N::BlockResponse>
Gets a block by either its hash, tag, or number Read more
Source§fn get_block_by_hash(&self, hash: BlockHash) -> EthGetBlock<N::BlockResponse>
fn get_block_by_hash(&self, hash: BlockHash) -> EthGetBlock<N::BlockResponse>
Source§fn get_block_by_number(
&self,
number: BlockNumberOrTag,
) -> EthGetBlock<N::BlockResponse>
fn get_block_by_number( &self, number: BlockNumberOrTag, ) -> EthGetBlock<N::BlockResponse>
Gets a block by its BlockNumberOrTag Read more
Source§fn get_block_transaction_count_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: BlockHash,
) -> Pin<Box<dyn Future<Output = TransportResult<Option<u64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_block_transaction_count_by_hash<'life0, 'async_trait>(
&'life0 self,
hash: BlockHash,
) -> Pin<Box<dyn Future<Output = TransportResult<Option<u64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the number of transactions in a block from a block matching the given block hash.
Source§fn get_block_transaction_count_by_number<'life0, 'async_trait>(
&'life0 self,
block_number: BlockNumberOrTag,
) -> Pin<Box<dyn Future<Output = TransportResult<Option<u64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_block_transaction_count_by_number<'life0, 'async_trait>(
&'life0 self,
block_number: BlockNumberOrTag,
) -> Pin<Box<dyn Future<Output = TransportResult<Option<u64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the number of transactions in a block matching the given block number.
Source§fn watch_blocks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<FilterPollerBuilder<B256>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn watch_blocks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<FilterPollerBuilder<B256>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Watch for new blocks by polling the provider with
eth_getFilterChanges. Read moreSource§fn watch_full_blocks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<WatchBlocks<N::BlockResponse>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn watch_full_blocks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<WatchBlocks<N::BlockResponse>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Watch for new blocks by polling the provider with
eth_getFilterChanges and transforming the returned block
hashes into full blocks bodies. Read moreSource§fn watch_pending_transactions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<FilterPollerBuilder<B256>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn watch_pending_transactions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<FilterPollerBuilder<B256>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Watch for new pending transaction by polling the provider with
eth_getFilterChanges. Read moreSource§fn watch_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 Filter,
) -> Pin<Box<dyn Future<Output = TransportResult<FilterPollerBuilder<Log>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn watch_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 Filter,
) -> Pin<Box<dyn Future<Output = TransportResult<FilterPollerBuilder<Log>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Watch for new logs using the given filter by polling the provider with
eth_getFilterChanges. Read moreSource§fn watch_full_pending_transactions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<FilterPollerBuilder<N::TransactionResponse>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn watch_full_pending_transactions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<FilterPollerBuilder<N::TransactionResponse>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Watch for new pending transaction bodies by polling the provider with
eth_getFilterChanges. Read moreSource§fn get_filter_changes<'life0, 'async_trait, R>(
&'life0 self,
id: U256,
) -> Pin<Box<dyn Future<Output = TransportResult<Vec<R>>> + Send + 'async_trait>>
fn get_filter_changes<'life0, 'async_trait, R>( &'life0 self, id: U256, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<R>>> + Send + 'async_trait>>
Get a list of values that have been added since the last poll. Read more
Source§fn get_filter_changes_dyn<'life0, 'async_trait>(
&'life0 self,
id: U256,
) -> Pin<Box<dyn Future<Output = TransportResult<FilterChanges>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_filter_changes_dyn<'life0, 'async_trait>(
&'life0 self,
id: U256,
) -> Pin<Box<dyn Future<Output = TransportResult<FilterChanges>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get a list of values that have been added since the last poll. Read more
Source§fn get_filter_logs<'life0, 'async_trait>(
&'life0 self,
id: U256,
) -> Pin<Box<dyn Future<Output = TransportResult<Vec<Log>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_filter_logs<'life0, 'async_trait>(
&'life0 self,
id: U256,
) -> Pin<Box<dyn Future<Output = TransportResult<Vec<Log>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Retrieves a
Vec<Log> for the given filter ID.Source§fn uninstall_filter<'life0, 'async_trait>(
&'life0 self,
id: U256,
) -> Pin<Box<dyn Future<Output = TransportResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn uninstall_filter<'life0, 'async_trait>(
&'life0 self,
id: U256,
) -> Pin<Box<dyn Future<Output = TransportResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Request provider to uninstall the filter with the given ID.
Source§fn watch_pending_transaction<'life0, 'async_trait>(
&'life0 self,
config: PendingTransactionConfig,
) -> Pin<Box<dyn Future<Output = Result<PendingTransaction, PendingTransactionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn watch_pending_transaction<'life0, 'async_trait>(
&'life0 self,
config: PendingTransactionConfig,
) -> Pin<Box<dyn Future<Output = Result<PendingTransaction, PendingTransactionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Watch for the confirmation of a single pending transaction with the given configuration. Read more
Source§fn get_transaction_by_sender_nonce(
&self,
sender: Address,
nonce: u64,
) -> ProviderCall<(Address, U64), Option<N::TransactionResponse>> ⓘ
fn get_transaction_by_sender_nonce( &self, sender: Address, nonce: u64, ) -> ProviderCall<(Address, U64), Option<N::TransactionResponse>> ⓘ
Gets a transaction by its sender and nonce. Read more
Source§fn get_transaction_by_block_hash_and_index(
&self,
block_hash: B256,
index: usize,
) -> ProviderCall<(B256, Index), Option<N::TransactionResponse>> ⓘ
fn get_transaction_by_block_hash_and_index( &self, block_hash: B256, index: usize, ) -> ProviderCall<(B256, Index), Option<N::TransactionResponse>> ⓘ
Gets a transaction by block hash and transaction index position.
Source§fn get_raw_transaction_by_block_hash_and_index(
&self,
block_hash: B256,
index: usize,
) -> ProviderCall<(B256, Index), Option<Bytes>> ⓘ
fn get_raw_transaction_by_block_hash_and_index( &self, block_hash: B256, index: usize, ) -> ProviderCall<(B256, Index), Option<Bytes>> ⓘ
Gets a raw transaction by block hash and transaction index position.
Source§fn get_transaction_by_block_number_and_index(
&self,
block_number: BlockNumberOrTag,
index: usize,
) -> ProviderCall<(BlockNumberOrTag, Index), Option<N::TransactionResponse>> ⓘ
fn get_transaction_by_block_number_and_index( &self, block_number: BlockNumberOrTag, index: usize, ) -> ProviderCall<(BlockNumberOrTag, Index), Option<N::TransactionResponse>> ⓘ
Gets a transaction by block number and transaction index position.
Source§fn get_raw_transaction_by_block_number_and_index(
&self,
block_number: BlockNumberOrTag,
index: usize,
) -> ProviderCall<(BlockNumberOrTag, Index), Option<Bytes>> ⓘ
fn get_raw_transaction_by_block_number_and_index( &self, block_number: BlockNumberOrTag, index: usize, ) -> ProviderCall<(BlockNumberOrTag, Index), Option<Bytes>> ⓘ
Gets a raw transaction by block number and transaction index position.
Source§fn get_transaction_count(
&self,
address: Address,
) -> RpcWithBlock<Address, U64, u64, fn(U64) -> u64>
fn get_transaction_count( &self, address: Address, ) -> RpcWithBlock<Address, U64, u64, fn(U64) -> u64>
Gets the transaction count (AKA “nonce”) of the corresponding address.
Source§fn get_uncle<'life0, 'async_trait>(
&'life0 self,
tag: BlockId,
idx: u64,
) -> Pin<Box<dyn Future<Output = TransportResult<Option<N::BlockResponse>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_uncle<'life0, 'async_trait>(
&'life0 self,
tag: BlockId,
idx: u64,
) -> Pin<Box<dyn Future<Output = TransportResult<Option<N::BlockResponse>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_uncle_count<'life0, 'async_trait>(
&'life0 self,
tag: BlockId,
) -> Pin<Box<dyn Future<Output = TransportResult<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_uncle_count<'life0, 'async_trait>(
&'life0 self,
tag: BlockId,
) -> Pin<Box<dyn Future<Output = TransportResult<u64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Gets the number of uncles for the block specified by the tag BlockId.
Source§fn get_max_priority_fee_per_gas(&self) -> ProviderCall<NoParams, U128, u128> ⓘ
fn get_max_priority_fee_per_gas(&self) -> ProviderCall<NoParams, U128, u128> ⓘ
Returns a suggestion for the current
maxPriorityFeePerGas in wei.Source§fn new_block_filter<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<U256>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn new_block_filter<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = TransportResult<U256>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Notify the provider that we are interested in new blocks. Read more
Source§fn new_filter<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 Filter,
) -> Pin<Box<dyn Future<Output = TransportResult<U256>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn new_filter<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 Filter,
) -> Pin<Box<dyn Future<Output = TransportResult<U256>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Notify the provider that we are interested in logs that match the given filter. Read more
Source§fn new_pending_transactions_filter<'life0, 'async_trait>(
&'life0 self,
full: bool,
) -> Pin<Box<dyn Future<Output = TransportResult<U256>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn new_pending_transactions_filter<'life0, 'async_trait>(
&'life0 self,
full: bool,
) -> Pin<Box<dyn Future<Output = TransportResult<U256>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Notify the provider that we are interested in new pending transactions. Read more
Source§fn send_raw_transaction<'life0, 'life1, 'async_trait>(
&'life0 self,
encoded_tx: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = TransportResult<PendingTransactionBuilder<N>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn send_raw_transaction<'life0, 'life1, 'async_trait>(
&'life0 self,
encoded_tx: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = TransportResult<PendingTransactionBuilder<N>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Broadcasts a raw transaction RLP bytes to the network. Read more
Source§fn send_raw_transaction_sync<'life0, 'life1, 'async_trait>(
&'life0 self,
encoded_tx: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = TransportResult<N::ReceiptResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn send_raw_transaction_sync<'life0, 'life1, 'async_trait>(
&'life0 self,
encoded_tx: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = TransportResult<N::ReceiptResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Broadcasts a raw transaction RLP bytes to the network and returns the transaction receipt
after it has been mined. Read more
Source§fn send_raw_transaction_conditional<'life0, 'life1, 'async_trait>(
&'life0 self,
encoded_tx: &'life1 [u8],
conditional: TransactionConditional,
) -> Pin<Box<dyn Future<Output = TransportResult<PendingTransactionBuilder<N>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn send_raw_transaction_conditional<'life0, 'life1, 'async_trait>(
&'life0 self,
encoded_tx: &'life1 [u8],
conditional: TransactionConditional,
) -> Pin<Box<dyn Future<Output = TransportResult<PendingTransactionBuilder<N>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Broadcasts a raw transaction RLP bytes with a conditional
TransactionConditional to the
network. Read moreSource§fn send_transaction<'life0, 'async_trait>(
&'life0 self,
tx: N::TransactionRequest,
) -> Pin<Box<dyn Future<Output = TransportResult<PendingTransactionBuilder<N>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn send_transaction<'life0, 'async_trait>(
&'life0 self,
tx: N::TransactionRequest,
) -> Pin<Box<dyn Future<Output = TransportResult<PendingTransactionBuilder<N>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Broadcasts a transaction to the network. Read more
Source§fn send_tx_envelope<'life0, 'async_trait>(
&'life0 self,
tx: N::TxEnvelope,
) -> Pin<Box<dyn Future<Output = TransportResult<PendingTransactionBuilder<N>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn send_tx_envelope<'life0, 'async_trait>(
&'life0 self,
tx: N::TxEnvelope,
) -> Pin<Box<dyn Future<Output = TransportResult<PendingTransactionBuilder<N>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Broadcasts a transaction envelope to the network. Read more
Source§fn send_transaction_sync<'life0, 'async_trait>(
&'life0 self,
tx: N::TransactionRequest,
) -> Pin<Box<dyn Future<Output = TransportResult<N::ReceiptResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn send_transaction_sync<'life0, 'async_trait>(
&'life0 self,
tx: N::TransactionRequest,
) -> Pin<Box<dyn Future<Output = TransportResult<N::ReceiptResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Sends a transaction and waits for its receipt in a single call. Read more
Source§fn sign_transaction<'life0, 'async_trait>(
&'life0 self,
tx: N::TransactionRequest,
) -> Pin<Box<dyn Future<Output = TransportResult<Bytes>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn sign_transaction<'life0, 'async_trait>(
&'life0 self,
tx: N::TransactionRequest,
) -> Pin<Box<dyn Future<Output = TransportResult<Bytes>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Signs a transaction that can be submitted to the network later using
Provider::send_raw_transaction. Read moreSource§fn syncing(&self) -> ProviderCall<NoParams, SyncStatus> ⓘ
fn syncing(&self) -> ProviderCall<NoParams, SyncStatus> ⓘ
Gets syncing info.
Source§fn get_client_version(&self) -> ProviderCall<NoParams, String> ⓘ
fn get_client_version(&self) -> ProviderCall<NoParams, String> ⓘ
Gets the client version.
Source§fn get_sha3(&self, data: &[u8]) -> ProviderCall<(String,), B256> ⓘ
fn get_sha3(&self, data: &[u8]) -> ProviderCall<(String,), B256> ⓘ
Gets the
Keccak-256 hash of the given data.Source§fn get_net_version(&self) -> ProviderCall<NoParams, U64, u64> ⓘ
fn get_net_version(&self) -> ProviderCall<NoParams, U64, u64> ⓘ
Gets the network ID. Same as
eth_chainId.Source§fn raw_request<'life0, 'async_trait, P, R>(
&'life0 self,
method: Cow<'static, str>,
params: P,
) -> Pin<Box<dyn Future<Output = TransportResult<R>> + Send + 'async_trait>>
fn raw_request<'life0, 'async_trait, P, R>( &'life0 self, method: Cow<'static, str>, params: P, ) -> Pin<Box<dyn Future<Output = TransportResult<R>> + Send + 'async_trait>>
Sends a raw JSON-RPC request. Read more
Source§fn raw_request_dyn<'life0, 'life1, 'async_trait>(
&'life0 self,
method: Cow<'static, str>,
params: &'life1 RawValue,
) -> Pin<Box<dyn Future<Output = TransportResult<Box<RawValue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn raw_request_dyn<'life0, 'life1, 'async_trait>(
&'life0 self,
method: Cow<'static, str>,
params: &'life1 RawValue,
) -> Pin<Box<dyn Future<Output = TransportResult<Box<RawValue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Sends a raw JSON-RPC request with type-erased parameters and return. Read more
Source§fn transaction_request(&self) -> N::TransactionRequest
fn transaction_request(&self) -> N::TransactionRequest
Creates a new
TransactionRequest.Auto Trait Implementations§
impl<P, N> Freeze for CacheProvider<P, N>where
P: Freeze,
impl<P, N> !RefUnwindSafe for CacheProvider<P, N>
impl<P, N> Send for CacheProvider<P, N>
impl<P, N> Sync for CacheProvider<P, N>
impl<P, N> Unpin for CacheProvider<P, N>
impl<P, N> !UnwindSafe for CacheProvider<P, N>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.