Trait ethers_middleware::gas_oracle::GasOracle [−][src]
pub trait GasOracle: Send + Sync + Debug {
fn fetch<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<U256, GasOracleError>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn estimate_eip1559_fees<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<(U256, U256), GasOracleError>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
}
Expand description
GasOracle
is a trait that an underlying gas oracle needs to implement.
Example
use ethers_middleware::{
gas_oracle::{EthGasStation, Etherscan, GasCategory, GasOracle},
};
let eth_gas_station_oracle = EthGasStation::new(Some("my-api-key"));
let etherscan_oracle = EthGasStation::new(None).category(GasCategory::SafeLow);
let data_1 = eth_gas_station_oracle.fetch().await?;
let data_2 = etherscan_oracle.fetch().await?;
Required methods
Makes an asynchronous HTTP query to the underlying GasOracle
Example
use ethers_middleware::{
gas_oracle::{Etherchain, GasCategory, GasOracle},
};
let etherchain_oracle = Etherchain::new().category(GasCategory::Fastest);
let data = etherchain_oracle.fetch().await?;