reth::rpc::api::servers::eth::helpers::fee

Trait LoadFee

Source
pub trait LoadFee: LoadBlock {
    // Required methods
    fn gas_oracle(&self) -> &GasPriceOracle<Self::Provider>;
    fn fee_history_cache(&self) -> &FeeHistoryCache;

    // Provided methods
    fn legacy_gas_price(
        &self,
        gas_price: Option<Uint<256, 4>>,
    ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send { ... }
    fn eip1559_fees(
        &self,
        base_fee: Option<Uint<256, 4>>,
        max_priority_fee_per_gas: Option<Uint<256, 4>>,
    ) -> impl Future<Output = Result<(Uint<256, 4>, Uint<256, 4>), Self::Error>> + Send { ... }
    fn eip4844_blob_fee(
        &self,
        blob_fee: Option<Uint<256, 4>>,
    ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send { ... }
    fn gas_price(
        &self,
    ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send { ... }
    fn blob_base_fee(
        &self,
    ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send { ... }
    fn suggested_priority_fee(
        &self,
    ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send
       where Self: 'static { ... }
}
Expand description

Loads fee from database.

Behaviour shared by several eth_ RPC methods, not exclusive to eth_ fees RPC methods.

Required Methods§

Source

fn gas_oracle(&self) -> &GasPriceOracle<Self::Provider>

Returns a handle for reading gas price.

Data access in default (L1) trait method implementations.

Source

fn fee_history_cache(&self) -> &FeeHistoryCache

Returns a handle for reading fee history data from memory.

Data access in default (L1) trait method implementations.

Provided Methods§

Source

fn legacy_gas_price( &self, gas_price: Option<Uint<256, 4>>, ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send

Returns the gas price if it is set, otherwise fetches a suggested gas price for legacy transactions.

Source

fn eip1559_fees( &self, base_fee: Option<Uint<256, 4>>, max_priority_fee_per_gas: Option<Uint<256, 4>>, ) -> impl Future<Output = Result<(Uint<256, 4>, Uint<256, 4>), Self::Error>> + Send

Returns the EIP-1559 fees if they are set, otherwise fetches a suggested gas price for EIP-1559 transactions.

Returns (base_fee, priority_fee)

Source

fn eip4844_blob_fee( &self, blob_fee: Option<Uint<256, 4>>, ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send

Returns the EIP-4844 blob fee if it is set, otherwise fetches a blob fee.

Source

fn gas_price( &self, ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send

Returns a suggestion for a gas price for legacy transactions.

See also: https://github.com/ethereum/pm/issues/328#issuecomment-853234014

Source

fn blob_base_fee( &self, ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send

Returns a suggestion for a base fee for blob transactions.

Source

fn suggested_priority_fee( &self, ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send
where Self: 'static,

Returns a suggestion for the priority fee (the tip)

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<Provider, Pool, Network, EvmConfig> LoadFee for EthApi<Provider, Pool, Network, EvmConfig>
where EthApi<Provider, Pool, Network, EvmConfig>: LoadBlock<Provider = Provider>, Provider: BlockReaderIdExt + EvmEnvProvider + ChainSpecProvider + StateProviderFactory, <Provider as ChainSpecProvider>::ChainSpec: EthChainSpec + EthereumHardforks,