pub struct Provider<P> { /* private fields */ }Expand description
An abstract provider for interacting with the Ethereum JSON RPC
API. Must be instantiated
with a data transport which implements the JsonRpcClient trait
(e.g. HTTP, Websockets etc.)
§Example
use ethers_providers::{Middleware, Provider, Http};
use std::convert::TryFrom;
let provider = Provider::<Http>::try_from(
"https://eth.llamarpc.com"
).expect("could not instantiate HTTP Provider");
let block = provider.get_block(100u64).await?;
println!("Got block: {}", serde_json::to_string(&block)?);Implementations§
Source§impl<P> Provider<P>where
P: JsonRpcClient,
impl<P> Provider<P>where
P: JsonRpcClient,
Sourcepub async fn node_client(&self) -> Result<NodeClient, ProviderError>
pub async fn node_client(&self) -> Result<NodeClient, ProviderError>
Returns the type of node we’re connected to, while also caching the value for use in other node-specific API calls, such as the get_block_receipts call.
Sourcepub fn with_sender(self, address: impl Into<H160>) -> Provider<P>
pub fn with_sender(self, address: impl Into<H160>) -> Provider<P>
Set the default sender on the provider
Sourcepub async fn request<T, R>(
&self,
method: &str,
params: T,
) -> Result<R, ProviderError>
pub async fn request<T, R>( &self, method: &str, params: T, ) -> Result<R, ProviderError>
Make an RPC request via the internal connection, and return the result.
Sourcepub fn call_raw<'a>(&'a self, tx: &'a TypedTransaction) -> CallBuilder<'a, P> ⓘ
pub fn call_raw<'a>(&'a self, tx: &'a TypedTransaction) -> CallBuilder<'a, P> ⓘ
Analogous to Middleware::call, but returns a CallBuilder that can either be
.awaitd or used to override the parameters sent to eth_call.
See the ethers_core::types::spoof for functions to construct state override
parameters.
Note: this method does not send a transaction from your account
§Example
let geth = Geth::new().spawn();
let provider = Provider::<Http>::try_from(geth.endpoint()).unwrap();
let adr1: Address = "0x6fC21092DA55B392b045eD78F4732bff3C580e2c".parse()?;
let adr2: Address = "0x295a70b2de5e3953354a6a8344e616ed314d7251".parse()?;
let pay_amt = parse_ether(1u64)?;
// Not enough ether to pay for the transaction
let tx = TransactionRequest::pay(adr2, pay_amt).from(adr1).into();
// override the sender's balance for the call
let mut state = spoof::balance(adr1, pay_amt * 2);
provider.call_raw(&tx).state(&state).await?;Source§impl<P> Provider<P>where
P: JsonRpcClient,
impl<P> Provider<P>where
P: JsonRpcClient,
Sourcepub fn set_interval<T>(&mut self, interval: T) -> &mut Provider<P>
pub fn set_interval<T>(&mut self, interval: T) -> &mut Provider<P>
Sets the default polling interval for event filters and pending transactions (default: 7 seconds)
Sourcepub fn interval<T>(self, interval: T) -> Provider<P>
pub fn interval<T>(self, interval: T) -> Provider<P>
Sets the default polling interval for event filters and pending transactions (default: 7 seconds)
Sourcepub fn get_interval(&self) -> Duration
pub fn get_interval(&self) -> Duration
Gets the polling interval which the provider currently uses for event filters and pending transactions (default: 7 seconds)
Source§impl Provider<Ipc>
impl Provider<Ipc>
Sourcepub async fn connect_ipc(
path: impl AsRef<Path>,
) -> Result<Provider<Ipc>, ProviderError>
pub async fn connect_ipc( path: impl AsRef<Path>, ) -> Result<Provider<Ipc>, ProviderError>
Connects to the Unix socket at the provided path.
Source§impl<Read, Write> Provider<RwClient<Read, Write>>where
Read: JsonRpcClient + 'static,
<Read as JsonRpcClient>::Error: Sync + Send + 'static,
Write: JsonRpcClient + 'static,
<Write as JsonRpcClient>::Error: Sync + Send + 'static,
impl<Read, Write> Provider<RwClient<Read, Write>>where
Read: JsonRpcClient + 'static,
<Read as JsonRpcClient>::Error: Sync + Send + 'static,
Write: JsonRpcClient + 'static,
<Write as JsonRpcClient>::Error: Sync + Send + 'static,
Source§impl<T> Provider<QuorumProvider<T>>where
T: JsonRpcClientWrapper,
impl<T> Provider<QuorumProvider<T>>where
T: JsonRpcClientWrapper,
Sourcepub fn quorum(inner: QuorumProvider<T>) -> Provider<QuorumProvider<T>>
pub fn quorum(inner: QuorumProvider<T>) -> Provider<QuorumProvider<T>>
Provider that uses a quorum
Source§impl Provider<MockProvider>
impl Provider<MockProvider>
Sourcepub fn mocked() -> (Provider<MockProvider>, MockProvider)
pub fn mocked() -> (Provider<MockProvider>, MockProvider)
Returns a Provider instantiated with an internal “mock” transport.
§Example
use ethers_core::types::U64;
use ethers_providers::{Middleware, Provider};
// Instantiate the provider
let (provider, mock) = Provider::mocked();
// Push the mock response
mock.push(U64::from(12))?;
// Make the call
let blk = provider.get_block_number().await.unwrap();
// The response matches
assert_eq!(blk.as_u64(), 12);
// and the request as well!
mock.assert_request("eth_blockNumber", ()).unwrap();Source§impl Provider<RetryClient<Provider>>
impl Provider<RetryClient<Provider>>
Sourcepub fn new_client(
src: &str,
max_retry: u32,
initial_backoff: u64,
) -> Result<Provider<RetryClient<Provider>>, ParseError>
pub fn new_client( src: &str, max_retry: u32, initial_backoff: u64, ) -> Result<Provider<RetryClient<Provider>>, ParseError>
Create a new RetryClient by connecting to the provided URL. Errors
if src is not a valid URL
Source§impl Provider<Ws>
impl Provider<Ws>
Sourcepub async fn connect(
url: impl IntoClientRequest + Unpin,
) -> Result<Provider<Ws>, ProviderError>
pub async fn connect( url: impl IntoClientRequest + Unpin, ) -> Result<Provider<Ws>, ProviderError>
Direct connection to a websocket endpoint
Sourcepub async fn connect_with_auth(
url: impl IntoClientRequest + Unpin,
auth: Authorization,
) -> Result<Provider<Ws>, ProviderError>
pub async fn connect_with_auth( url: impl IntoClientRequest + Unpin, auth: Authorization, ) -> Result<Provider<Ws>, ProviderError>
Connect to a WS RPC provider with authentication details
Trait Implementations§
Source§impl<P> Middleware for Provider<P>where
P: JsonRpcClient,
impl<P> Middleware for Provider<P>where
P: JsonRpcClient,
Source§fn sign_transaction<'life0, 'life1, 'async_trait>(
&'life0 self,
_tx: &'life1 TypedTransaction,
_from: H160,
) -> Pin<Box<dyn Future<Output = Result<Signature, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
fn sign_transaction<'life0, 'life1, 'async_trait>(
&'life0 self,
_tx: &'life1 TypedTransaction,
_from: H160,
) -> Pin<Box<dyn Future<Output = Result<Signature, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
Sign a transaction via RPC call
Source§fn watch_pending_transactions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<FilterWatcher<'life0, P, H256>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn watch_pending_transactions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<FilterWatcher<'life0, P, H256>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Streams pending transactions
Source§fn mining<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn mining<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Returns an indication if this node is currently mining.
Source§type Error = ProviderError
type Error = ProviderError
Source§fn inner(&self) -> &<Provider<P> as Middleware>::Inner
fn inner(&self) -> &<Provider<P> as Middleware>::Inner
Source§fn provider(&self) -> &Provider<<Provider<P> as Middleware>::Provider>
fn provider(&self) -> &Provider<<Provider<P> as Middleware>::Provider>
Source§fn convert_err(p: ProviderError) -> <Provider<P> as Middleware>::Error
fn convert_err(p: ProviderError) -> <Provider<P> as Middleware>::Error
Source§fn default_sender(&self) -> Option<H160>
fn default_sender(&self) -> Option<H160>
Source§fn client_version<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<String, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn client_version<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<String, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
web3_clientVersion RPC.Source§fn fill_transaction<'life0, 'life1, 'async_trait>(
&'life0 self,
tx: &'life1 mut TypedTransaction,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<(), <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
fn fill_transaction<'life0, 'life1, 'async_trait>(
&'life0 self,
tx: &'life1 mut TypedTransaction,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<(), <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
Source§fn get_block_number<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<U64, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn get_block_number<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<U64, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn get_block<'life0, 'async_trait, T>(
&'life0 self,
block_hash_or_number: T,
) -> Pin<Box<dyn Future<Output = Result<Option<Block<H256>>, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>
fn get_block<'life0, 'async_trait, T>( &'life0 self, block_hash_or_number: T, ) -> Pin<Box<dyn Future<Output = Result<Option<Block<H256>>, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>
block_hash_or_number (transaction hashes only)Source§fn get_header<'life0, 'async_trait, T>(
&'life0 self,
block_hash_or_number: T,
) -> Pin<Box<dyn Future<Output = Result<Option<Block<Transaction>>, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>
fn get_header<'life0, 'async_trait, T>( &'life0 self, block_hash_or_number: T, ) -> Pin<Box<dyn Future<Output = Result<Option<Block<Transaction>>, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>
Source§fn get_block_with_txs<'life0, 'async_trait, T>(
&'life0 self,
block_hash_or_number: T,
) -> Pin<Box<dyn Future<Output = Result<Option<Block<Transaction>>, ProviderError>> + Send + 'async_trait>>
fn get_block_with_txs<'life0, 'async_trait, T>( &'life0 self, block_hash_or_number: T, ) -> Pin<Box<dyn Future<Output = Result<Option<Block<Transaction>>, ProviderError>> + Send + 'async_trait>>
block_hash_or_number (full transactions included)Source§fn get_uncle_count<'life0, 'async_trait, T>(
&'life0 self,
block_hash_or_number: T,
) -> Pin<Box<dyn Future<Output = Result<U256, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>
fn get_uncle_count<'life0, 'async_trait, T>( &'life0 self, block_hash_or_number: T, ) -> Pin<Box<dyn Future<Output = Result<U256, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>
block_hash_or_numberSource§fn get_uncle<'life0, 'async_trait, T>(
&'life0 self,
block_hash_or_number: T,
idx: U64,
) -> Pin<Box<dyn Future<Output = Result<Option<Block<H256>>, ProviderError>> + Send + 'async_trait>>
fn get_uncle<'life0, 'async_trait, T>( &'life0 self, block_hash_or_number: T, idx: U64, ) -> Pin<Box<dyn Future<Output = Result<Option<Block<H256>>, ProviderError>> + Send + 'async_trait>>
block_hash_or_number and idxSource§fn get_transaction<'life0, 'async_trait, T>(
&'life0 self,
transaction_hash: T,
) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ProviderError>> + Send + 'async_trait>>
fn get_transaction<'life0, 'async_trait, T>( &'life0 self, transaction_hash: T, ) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ProviderError>> + Send + 'async_trait>>
transaction_hashSource§fn get_transaction_by_block_and_index<'life0, 'async_trait, T>(
&'life0 self,
block_hash_or_number: T,
idx: U64,
) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ProviderError>> + Send + 'async_trait>>
fn get_transaction_by_block_and_index<'life0, 'async_trait, T>( &'life0 self, block_hash_or_number: T, idx: U64, ) -> Pin<Box<dyn Future<Output = Result<Option<Transaction>, ProviderError>> + Send + 'async_trait>>
Source§fn get_transaction_receipt<'life0, 'async_trait, T>(
&'life0 self,
transaction_hash: T,
) -> Pin<Box<dyn Future<Output = Result<Option<TransactionReceipt>, ProviderError>> + Send + 'async_trait>>
fn get_transaction_receipt<'life0, 'async_trait, T>( &'life0 self, transaction_hash: T, ) -> Pin<Box<dyn Future<Output = Result<Option<TransactionReceipt>, ProviderError>> + Send + 'async_trait>>
transaction_hashSource§fn get_block_receipts<'life0, 'async_trait, T>(
&'life0 self,
block: T,
) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionReceipt>, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<BlockNumber> + Send + Sync,
Provider<P>: 'async_trait,
fn get_block_receipts<'life0, 'async_trait, T>(
&'life0 self,
block: T,
) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionReceipt>, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<BlockNumber> + Send + Sync,
Provider<P>: 'async_trait,
Source§fn parity_block_receipts<'life0, 'async_trait, T>(
&'life0 self,
block: T,
) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionReceipt>, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<BlockNumber> + Send + Sync,
Provider<P>: 'async_trait,
fn parity_block_receipts<'life0, 'async_trait, T>(
&'life0 self,
block: T,
) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionReceipt>, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<BlockNumber> + Send + Sync,
Provider<P>: 'async_trait,
Source§fn get_gas_price<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<U256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn get_gas_price<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<U256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn estimate_eip1559_fees<'life0, 'async_trait>(
&'life0 self,
estimator: Option<fn(U256, Vec<Vec<U256>>) -> (U256, U256)>,
) -> Pin<Box<dyn Future<Output = Result<(U256, U256), <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn estimate_eip1559_fees<'life0, 'async_trait>(
&'life0 self,
estimator: Option<fn(U256, Vec<Vec<U256>>) -> (U256, U256)>,
) -> Pin<Box<dyn Future<Output = Result<(U256, U256), <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn get_accounts<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<H160>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn get_accounts<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<H160>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn get_transaction_count<'life0, 'async_trait, T>(
&'life0 self,
from: T,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<U256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<NameOrAddress> + Send + Sync,
Provider<P>: 'async_trait,
fn get_transaction_count<'life0, 'async_trait, T>(
&'life0 self,
from: T,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<U256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<NameOrAddress> + Send + Sync,
Provider<P>: 'async_trait,
Source§fn get_balance<'life0, 'async_trait, T>(
&'life0 self,
from: T,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<U256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<NameOrAddress> + Send + Sync,
Provider<P>: 'async_trait,
fn get_balance<'life0, 'async_trait, T>(
&'life0 self,
from: T,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<U256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<NameOrAddress> + Send + Sync,
Provider<P>: 'async_trait,
Source§fn get_chainid<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<U256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn get_chainid<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<U256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn syncing<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<SyncingStatus, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn syncing<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<SyncingStatus, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn get_net_version<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<String, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn get_net_version<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<String, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn call<'life0, 'life1, 'async_trait>(
&'life0 self,
tx: &'life1 TypedTransaction,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<Bytes, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
fn call<'life0, 'life1, 'async_trait>(
&'life0 self,
tx: &'life1 TypedTransaction,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<Bytes, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
Source§fn estimate_gas<'life0, 'life1, 'async_trait>(
&'life0 self,
tx: &'life1 TypedTransaction,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<U256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
fn estimate_gas<'life0, 'life1, 'async_trait>(
&'life0 self,
tx: &'life1 TypedTransaction,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<U256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
Source§fn create_access_list<'life0, 'life1, 'async_trait>(
&'life0 self,
tx: &'life1 TypedTransaction,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<AccessListWithGasUsed, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
fn create_access_list<'life0, 'life1, 'async_trait>(
&'life0 self,
tx: &'life1 TypedTransaction,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<AccessListWithGasUsed, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
Source§fn send_transaction<'life0, 'async_trait, T>(
&'life0 self,
tx: T,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<PendingTransaction<'life0, P>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<TypedTransaction> + Send + Sync,
Provider<P>: 'async_trait,
fn send_transaction<'life0, 'async_trait, T>(
&'life0 self,
tx: T,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<PendingTransaction<'life0, P>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<TypedTransaction> + Send + Sync,
Provider<P>: 'async_trait,
Source§fn send_raw_transaction<'a, 'async_trait>(
&'a self,
tx: Bytes,
) -> Pin<Box<dyn Future<Output = Result<PendingTransaction<'a, P>, ProviderError>> + Send + 'async_trait>>where
'a: 'async_trait,
Provider<P>: 'async_trait,
fn send_raw_transaction<'a, 'async_trait>(
&'a self,
tx: Bytes,
) -> Pin<Box<dyn Future<Output = Result<PendingTransaction<'a, P>, ProviderError>> + Send + 'async_trait>>where
'a: 'async_trait,
Provider<P>: 'async_trait,
Source§fn is_signer<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn is_signer<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
SignerMiddleware, or the
JSON-RPC provider has an unlocked key that can sign using the eth_sign call. If none of
the above conditions are met, then the middleware stack is not capable of signing data.Source§fn sign<'life0, 'life1, 'async_trait, T>(
&'life0 self,
data: T,
from: &'life1 H160,
) -> Pin<Box<dyn Future<Output = Result<Signature, ProviderError>> + Send + 'async_trait>>
fn sign<'life0, 'life1, 'async_trait, T>( &'life0 self, data: T, from: &'life1 H160, ) -> Pin<Box<dyn Future<Output = Result<Signature, ProviderError>> + Send + 'async_trait>>
SignerMiddlewareSource§fn get_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 Filter,
) -> Pin<Box<dyn Future<Output = Result<Vec<Log>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
fn get_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 Filter,
) -> Pin<Box<dyn Future<Output = Result<Vec<Log>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
Source§fn get_logs_paginated<'a>(
&'a self,
filter: &Filter,
page_size: u64,
) -> LogQuery<'a, P>
fn get_logs_paginated<'a>( &'a self, filter: &Filter, page_size: u64, ) -> LogQuery<'a, P>
Source§fn watch<'a, 'life0, 'async_trait>(
&'a self,
filter: &'life0 Filter,
) -> Pin<Box<dyn Future<Output = Result<FilterWatcher<'a, P, Log>, ProviderError>> + Send + 'async_trait>>where
'a: 'async_trait,
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn watch<'a, 'life0, 'async_trait>(
&'a self,
filter: &'life0 Filter,
) -> Pin<Box<dyn Future<Output = Result<FilterWatcher<'a, P, Log>, ProviderError>> + Send + 'async_trait>>where
'a: 'async_trait,
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn watch_blocks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<FilterWatcher<'life0, P, H256>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn watch_blocks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<FilterWatcher<'life0, P, H256>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn get_storage_at<'life0, 'async_trait, T>(
&'life0 self,
from: T,
location: H256,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<H256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<NameOrAddress> + Send + Sync,
Provider<P>: 'async_trait,
fn get_storage_at<'life0, 'async_trait, T>(
&'life0 self,
from: T,
location: H256,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<H256, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<NameOrAddress> + Send + Sync,
Provider<P>: 'async_trait,
Source§fn get_code<'life0, 'async_trait, T>(
&'life0 self,
at: T,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<Bytes, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<NameOrAddress> + Send + Sync,
Provider<P>: 'async_trait,
fn get_code<'life0, 'async_trait, T>(
&'life0 self,
at: T,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<Bytes, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<NameOrAddress> + Send + Sync,
Provider<P>: 'async_trait,
Source§fn get_proof<'life0, 'async_trait, T>(
&'life0 self,
from: T,
locations: Vec<H256>,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<EIP1186ProofResponse, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<NameOrAddress> + Send + Sync,
Provider<P>: 'async_trait,
fn get_proof<'life0, 'async_trait, T>(
&'life0 self,
from: T,
locations: Vec<H256>,
block: Option<BlockId>,
) -> Pin<Box<dyn Future<Output = Result<EIP1186ProofResponse, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<NameOrAddress> + Send + Sync,
Provider<P>: 'async_trait,
Source§fn import_raw_key<'life0, 'async_trait>(
&'life0 self,
private_key: Bytes,
passphrase: String,
) -> Pin<Box<dyn Future<Output = Result<H160, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn import_raw_key<'life0, 'async_trait>(
&'life0 self,
private_key: Bytes,
passphrase: String,
) -> Pin<Box<dyn Future<Output = Result<H160, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn unlock_account<'life0, 'async_trait, T>(
&'life0 self,
account: T,
passphrase: String,
duration: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<bool, ProviderError>> + Send + 'async_trait>>
fn unlock_account<'life0, 'async_trait, T>( &'life0 self, account: T, passphrase: String, duration: Option<u64>, ) -> Pin<Box<dyn Future<Output = Result<bool, ProviderError>> + Send + 'async_trait>>
Source§fn add_peer<'life0, 'async_trait>(
&'life0 self,
enode_url: String,
) -> Pin<Box<dyn Future<Output = Result<bool, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn add_peer<'life0, 'async_trait>(
&'life0 self,
enode_url: String,
) -> Pin<Box<dyn Future<Output = Result<bool, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn add_trusted_peer<'life0, 'async_trait>(
&'life0 self,
enode_url: String,
) -> Pin<Box<dyn Future<Output = Result<bool, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn add_trusted_peer<'life0, 'async_trait>(
&'life0 self,
enode_url: String,
) -> Pin<Box<dyn Future<Output = Result<bool, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn node_info<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<NodeInfo, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn node_info<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<NodeInfo, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
eth, snap).Source§fn peers<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<PeerInfo>, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn peers<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<PeerInfo>, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn remove_peer<'life0, 'async_trait>(
&'life0 self,
enode_url: String,
) -> Pin<Box<dyn Future<Output = Result<bool, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn remove_peer<'life0, 'async_trait>(
&'life0 self,
enode_url: String,
) -> Pin<Box<dyn Future<Output = Result<bool, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn remove_trusted_peer<'life0, 'async_trait>(
&'life0 self,
enode_url: String,
) -> Pin<Box<dyn Future<Output = Result<bool, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn remove_trusted_peer<'life0, 'async_trait>(
&'life0 self,
enode_url: String,
) -> Pin<Box<dyn Future<Output = Result<bool, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
true does not necessarily mean that the
peer was disconnected.Source§fn start_mining<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn start_mining<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn stop_mining<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn stop_mining<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn resolve_name<'life0, 'life1, 'async_trait>(
&'life0 self,
ens_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<H160, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
fn resolve_name<'life0, 'life1, 'async_trait>(
&'life0 self,
ens_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<H160, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
ens_name resolves to (or None if not configured). Read moreSource§fn lookup_address<'life0, 'async_trait>(
&'life0 self,
address: H160,
) -> Pin<Box<dyn Future<Output = Result<String, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn lookup_address<'life0, 'async_trait>(
&'life0 self,
address: H160,
) -> Pin<Box<dyn Future<Output = Result<String, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
address resolves to (or None if not configured). Read moreSource§fn resolve_avatar<'life0, 'life1, 'async_trait>(
&'life0 self,
ens_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Url, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
fn resolve_avatar<'life0, 'life1, 'async_trait>(
&'life0 self,
ens_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Url, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Provider<P>: 'async_trait,
ens_name resolves to (or None
if not configured) Read moreSource§fn resolve_nft<'life0, 'async_trait>(
&'life0 self,
token: ERCNFT,
) -> Pin<Box<dyn Future<Output = Result<Url, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn resolve_nft<'life0, 'async_trait>(
&'life0 self,
token: ERCNFT,
) -> Pin<Box<dyn Future<Output = Result<Url, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn resolve_field<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ens_name: &'life1 str,
field: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<String, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Provider<P>: 'async_trait,
fn resolve_field<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ens_name: &'life1 str,
field: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<String, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Provider<P>: 'async_trait,
ens_name (no None if not configured). Read moreSource§fn txpool_content<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TxpoolContent, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn txpool_content<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TxpoolContent, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn txpool_inspect<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TxpoolInspect, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn txpool_inspect<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TxpoolInspect, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn txpool_status<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TxpoolStatus, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn txpool_status<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<TxpoolStatus, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn debug_trace_transaction<'life0, 'async_trait>(
&'life0 self,
tx_hash: H256,
trace_options: GethDebugTracingOptions,
) -> Pin<Box<dyn Future<Output = Result<GethTrace, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn debug_trace_transaction<'life0, 'async_trait>(
&'life0 self,
tx_hash: H256,
trace_options: GethDebugTracingOptions,
) -> Pin<Box<dyn Future<Output = Result<GethTrace, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn debug_trace_call<'life0, 'async_trait, T>(
&'life0 self,
req: T,
block: Option<BlockId>,
trace_options: GethDebugTracingCallOptions,
) -> Pin<Box<dyn Future<Output = Result<GethTrace, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<TypedTransaction> + Send + Sync,
Provider<P>: 'async_trait,
fn debug_trace_call<'life0, 'async_trait, T>(
&'life0 self,
req: T,
block: Option<BlockId>,
trace_options: GethDebugTracingCallOptions,
) -> Pin<Box<dyn Future<Output = Result<GethTrace, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<TypedTransaction> + Send + Sync,
Provider<P>: 'async_trait,
Source§fn debug_trace_block_by_number<'life0, 'async_trait>(
&'life0 self,
block: Option<BlockNumber>,
trace_options: GethDebugTracingOptions,
) -> Pin<Box<dyn Future<Output = Result<Vec<GethTrace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn debug_trace_block_by_number<'life0, 'async_trait>(
&'life0 self,
block: Option<BlockNumber>,
trace_options: GethDebugTracingOptions,
) -> Pin<Box<dyn Future<Output = Result<Vec<GethTrace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn debug_trace_block_by_hash<'life0, 'async_trait>(
&'life0 self,
block: H256,
trace_options: GethDebugTracingOptions,
) -> Pin<Box<dyn Future<Output = Result<Vec<GethTrace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn debug_trace_block_by_hash<'life0, 'async_trait>(
&'life0 self,
block: H256,
trace_options: GethDebugTracingOptions,
) -> Pin<Box<dyn Future<Output = Result<Vec<GethTrace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn trace_call<'life0, 'async_trait, T>(
&'life0 self,
req: T,
trace_type: Vec<TraceType>,
block: Option<BlockNumber>,
) -> Pin<Box<dyn Future<Output = Result<BlockTrace, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<TypedTransaction> + Send + Sync,
Provider<P>: 'async_trait,
fn trace_call<'life0, 'async_trait, T>(
&'life0 self,
req: T,
trace_type: Vec<TraceType>,
block: Option<BlockNumber>,
) -> Pin<Box<dyn Future<Output = Result<BlockTrace, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<TypedTransaction> + Send + Sync,
Provider<P>: 'async_trait,
Source§fn trace_call_many<'life0, 'async_trait, T>(
&'life0 self,
req: Vec<(T, Vec<TraceType>)>,
block: Option<BlockNumber>,
) -> Pin<Box<dyn Future<Output = Result<Vec<BlockTrace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<TypedTransaction> + Send + Sync,
Provider<P>: 'async_trait,
fn trace_call_many<'life0, 'async_trait, T>(
&'life0 self,
req: Vec<(T, Vec<TraceType>)>,
block: Option<BlockNumber>,
) -> Pin<Box<dyn Future<Output = Result<Vec<BlockTrace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait + Into<TypedTransaction> + Send + Sync,
Provider<P>: 'async_trait,
Source§fn trace_raw_transaction<'life0, 'async_trait>(
&'life0 self,
data: Bytes,
trace_type: Vec<TraceType>,
) -> Pin<Box<dyn Future<Output = Result<BlockTrace, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn trace_raw_transaction<'life0, 'async_trait>(
&'life0 self,
data: Bytes,
trace_type: Vec<TraceType>,
) -> Pin<Box<dyn Future<Output = Result<BlockTrace, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
eth_sendRawTransaction without making the call, returning the tracesSource§fn trace_replay_transaction<'life0, 'async_trait>(
&'life0 self,
hash: H256,
trace_type: Vec<TraceType>,
) -> Pin<Box<dyn Future<Output = Result<BlockTrace, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn trace_replay_transaction<'life0, 'async_trait>(
&'life0 self,
hash: H256,
trace_type: Vec<TraceType>,
) -> Pin<Box<dyn Future<Output = Result<BlockTrace, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn trace_replay_block_transactions<'life0, 'async_trait>(
&'life0 self,
block: BlockNumber,
trace_type: Vec<TraceType>,
) -> Pin<Box<dyn Future<Output = Result<Vec<BlockTrace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn trace_replay_block_transactions<'life0, 'async_trait>(
&'life0 self,
block: BlockNumber,
trace_type: Vec<TraceType>,
) -> Pin<Box<dyn Future<Output = Result<Vec<BlockTrace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn trace_block<'life0, 'async_trait>(
&'life0 self,
block: BlockNumber,
) -> Pin<Box<dyn Future<Output = Result<Vec<Trace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn trace_block<'life0, 'async_trait>(
&'life0 self,
block: BlockNumber,
) -> Pin<Box<dyn Future<Output = Result<Vec<Trace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn trace_filter<'life0, 'async_trait>(
&'life0 self,
filter: TraceFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<Trace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn trace_filter<'life0, 'async_trait>(
&'life0 self,
filter: TraceFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<Trace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn trace_get<'life0, 'async_trait, T>(
&'life0 self,
hash: H256,
index: Vec<T>,
) -> Pin<Box<dyn Future<Output = Result<Trace, ProviderError>> + Send + 'async_trait>>
fn trace_get<'life0, 'async_trait, T>( &'life0 self, hash: H256, index: Vec<T>, ) -> Pin<Box<dyn Future<Output = Result<Trace, ProviderError>> + Send + 'async_trait>>
Source§fn trace_transaction<'life0, 'async_trait>(
&'life0 self,
hash: H256,
) -> Pin<Box<dyn Future<Output = Result<Vec<Trace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
fn trace_transaction<'life0, 'async_trait>(
&'life0 self,
hash: H256,
) -> Pin<Box<dyn Future<Output = Result<Vec<Trace>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Provider<P>: 'async_trait,
Source§fn subscribe_blocks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionStream<'life0, P, Block<H256>>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
P: PubsubClient,
Provider<P>: 'async_trait,
fn subscribe_blocks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionStream<'life0, P, Block<H256>>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
P: PubsubClient,
Provider<P>: 'async_trait,
Source§fn subscribe_pending_txs<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionStream<'life0, P, H256>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
P: PubsubClient,
Provider<P>: 'async_trait,
fn subscribe_pending_txs<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionStream<'life0, P, H256>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
P: PubsubClient,
Provider<P>: 'async_trait,
Source§fn subscribe_full_pending_txs<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionStream<'life0, P, Transaction>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
P: PubsubClient,
Provider<P>: 'async_trait,
fn subscribe_full_pending_txs<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionStream<'life0, P, Transaction>, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
P: PubsubClient,
Provider<P>: 'async_trait,
Source§fn subscribe_logs<'a, 'life0, 'async_trait>(
&'a self,
filter: &'life0 Filter,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionStream<'a, P, Log>, ProviderError>> + Send + 'async_trait>>where
'a: 'async_trait,
'life0: 'async_trait,
P: PubsubClient,
Provider<P>: 'async_trait,
fn subscribe_logs<'a, 'life0, 'async_trait>(
&'a self,
filter: &'life0 Filter,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionStream<'a, P, Log>, ProviderError>> + Send + 'async_trait>>where
'a: 'async_trait,
'life0: 'async_trait,
P: PubsubClient,
Provider<P>: 'async_trait,
Source§fn fee_history<'life0, 'life1, 'async_trait, T>(
&'life0 self,
block_count: T,
last_block: BlockNumber,
reward_percentiles: &'life1 [f64],
) -> Pin<Box<dyn Future<Output = Result<FeeHistory, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>
fn fee_history<'life0, 'life1, 'async_trait, T>( &'life0 self, block_count: T, last_block: BlockNumber, reward_percentiles: &'life1 [f64], ) -> Pin<Box<dyn Future<Output = Result<FeeHistory, <Provider<P> as Middleware>::Error>> + Send + 'async_trait>>
FeeHistory object. This objct contains
information about the EIP-1559 base fee in past blocks, as well as gas
utilization within those blocks. Read moreSource§fn send_escalating<'a, 'life0, 'async_trait>(
&'a self,
tx: &'life0 TypedTransaction,
escalations: usize,
policy: Box<dyn Fn(U256, usize) -> U256 + Send + Sync>,
) -> Pin<Box<dyn Future<Output = Result<EscalatingPending<'a, Self::Provider>, Self::Error>> + Send + 'async_trait>>where
'a: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
fn send_escalating<'a, 'life0, 'async_trait>(
&'a self,
tx: &'life0 TypedTransaction,
escalations: usize,
policy: Box<dyn Fn(U256, usize) -> U256 + Send + Sync>,
) -> Pin<Box<dyn Future<Output = Result<EscalatingPending<'a, Self::Provider>, Self::Error>> + Send + 'async_trait>>where
'a: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
Source§impl ProviderExt for Provider<Provider>
impl ProviderExt for Provider<Provider>
Source§type Error = ParseError
type Error = ParseError
Source§fn try_connect<'life0, 'async_trait>(
url: &'life0 str,
) -> Pin<Box<dyn Future<Output = Result<Provider<Provider>, <Provider<Provider> as ProviderExt>::Error>> + Send + 'async_trait>>
fn try_connect<'life0, 'async_trait>( url: &'life0 str, ) -> Pin<Box<dyn Future<Output = Result<Provider<Provider>, <Provider<Provider> as ProviderExt>::Error>> + Send + 'async_trait>>
ProviderSource§fn set_chain(&mut self, chain: impl Into<Chain>) -> &mut Provider<Provider>
fn set_chain(&mut self, chain: impl Into<Chain>) -> &mut Provider<Provider>
Provider settings for chainAuto Trait Implementations§
impl<P> Freeze for Provider<P>where
P: Freeze,
impl<P> !RefUnwindSafe for Provider<P>
impl<P> Send for Provider<P>where
P: Send,
impl<P> Sync for Provider<P>where
P: Sync,
impl<P> Unpin for Provider<P>where
P: Unpin,
impl<P> !UnwindSafe for Provider<P>
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
Source§impl<T> CeloMiddleware for Twhere
T: Middleware,
impl<T> CeloMiddleware for Twhere
T: Middleware,
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,
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,
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,
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,
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,
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,
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,
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,
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> 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>
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>
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<M> MiddlewareBuilder for Mwhere
M: Middleware + 'static,
impl<M> MiddlewareBuilder for Mwhere
M: Middleware + 'static,
Source§fn wrap_into<F, T>(self, f: F) -> Twhere
F: FnOnce(Self) -> T,
T: Middleware,
fn wrap_into<F, T>(self, f: F) -> Twhere
F: FnOnce(Self) -> T,
T: Middleware,
Source§fn with_signer<S>(self, s: S) -> SignerMiddleware<Self, S>where
S: Signer,
fn with_signer<S>(self, s: S) -> SignerMiddleware<Self, S>where
S: Signer,
self inside a SignerMiddleware.Source§fn nonce_manager(self, address: H160) -> NonceManagerMiddleware<Self>
fn nonce_manager(self, address: H160) -> NonceManagerMiddleware<Self>
self inside a NonceManagerMiddleware.Source§fn gas_oracle<G>(self, gas_oracle: G) -> GasOracleMiddleware<Self, G>where
G: GasOracle,
fn gas_oracle<G>(self, gas_oracle: G) -> GasOracleMiddleware<Self, G>where
G: GasOracle,
self inside a GasOracleMiddleware.Source§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,
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,
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,
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
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
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
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
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
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
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
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
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
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
.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
.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
.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
.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
.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
.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
.tap_deref() only in debug builds, and is erased in release
builds.