reth_rpc/eth/helpers/
call.rs

1//! Contains RPC handler implementations specific to endpoints that call/execute within evm.
2
3use crate::EthApi;
4use alloy_consensus::Header;
5use reth_evm::ConfigureEvm;
6use reth_provider::{BlockReader, ProviderHeader};
7use reth_rpc_eth_api::{
8    helpers::{estimate::EstimateCall, Call, EthCall, LoadPendingBlock, LoadState, SpawnBlocking},
9    FullEthApiTypes,
10};
11
12impl<Provider, Pool, Network, EvmConfig> EthCall for EthApi<Provider, Pool, Network, EvmConfig>
13where
14    Self: EstimateCall + LoadPendingBlock + FullEthApiTypes,
15    Provider: BlockReader,
16{
17}
18
19impl<Provider, Pool, Network, EvmConfig> Call for EthApi<Provider, Pool, Network, EvmConfig>
20where
21    Self: LoadState<Evm: ConfigureEvm<Header = ProviderHeader<Self::Provider>>> + SpawnBlocking,
22    EvmConfig: ConfigureEvm<Header = Header>,
23    Provider: BlockReader,
24{
25    #[inline]
26    fn call_gas_limit(&self) -> u64 {
27        self.inner.gas_cap()
28    }
29
30    #[inline]
31    fn max_simulate_blocks(&self) -> u64 {
32        self.inner.max_simulate_blocks()
33    }
34}
35
36impl<Provider, Pool, Network, EvmConfig> EstimateCall for EthApi<Provider, Pool, Network, EvmConfig>
37where
38    Self: Call,
39    Provider: BlockReader,
40{
41}