Trait EthCall
pub trait EthCall:
    EstimateCall
    + Call
    + LoadPendingBlock
    + LoadBlock
    + FullEthApiTypes {
    // Provided methods
    fn estimate_gas_at(
        &self,
        request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest,
        at: BlockId,
        state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>,
    ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send { ... }
    fn simulate_v1(
        &self,
        payload: SimulatePayload<<<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest>,
        block: Option<BlockId>,
    ) -> impl Future<Output = Result<Vec<SimulatedBlock<Block<<Self::NetworkTypes as RpcTypes>::TransactionResponse, <Self::NetworkTypes as RpcTypes>::Header>>>, Self::Error>> + Send { ... }
    fn call(
        &self,
        request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest,
        block_number: Option<BlockId>,
        overrides: EvmOverrides,
    ) -> impl Future<Output = Result<Bytes, Self::Error>> + Send { ... }
    fn call_many(
        &self,
        bundles: Vec<Bundle<<<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest>>,
        state_context: Option<StateContext>,
        state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>,
    ) -> impl Future<Output = Result<Vec<Vec<EthCallResponse>>, Self::Error>> + Send { ... }
    fn create_access_list_at(
        &self,
        request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest,
        block_number: Option<BlockId>,
        state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>,
    ) -> impl Future<Output = Result<AccessListResult, Self::Error>> + Send
       where Self: Trace { ... }
    fn create_access_list_with(
        &self,
        evm_env: EvmEnv<<<<Self::Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Spec, <<<Self::Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::BlockEnv>,
        at: BlockId,
        request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest,
        state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>,
    ) -> impl Future<Output = Result<AccessListResult, Self::Error>> + Send
       where Self: Trace { ... }
}rpc only.Expand description
Execution related functions for the EthApiServer trait in
the eth_ namespace.
Provided Methods§
fn estimate_gas_at(
    &self,
    request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest,
    at: BlockId,
    state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>,
) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send
fn estimate_gas_at( &self, request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest, at: BlockId, state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>, ) -> impl Future<Output = Result<Uint<256, 4>, Self::Error>> + Send
Estimate gas needed for execution of the request at the [BlockId].
fn simulate_v1(
    &self,
    payload: SimulatePayload<<<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest>,
    block: Option<BlockId>,
) -> impl Future<Output = Result<Vec<SimulatedBlock<Block<<Self::NetworkTypes as RpcTypes>::TransactionResponse, <Self::NetworkTypes as RpcTypes>::Header>>>, Self::Error>> + Send
fn simulate_v1( &self, payload: SimulatePayload<<<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest>, block: Option<BlockId>, ) -> impl Future<Output = Result<Vec<SimulatedBlock<Block<<Self::NetworkTypes as RpcTypes>::TransactionResponse, <Self::NetworkTypes as RpcTypes>::Header>>>, Self::Error>> + Send
eth_simulateV1 executes an arbitrary number of transactions on top of the requested state.
The transactions are packed into individual blocks. Overrides can be provided.
See also: https://github.com/ethereum/go-ethereum/pull/27720
fn call(
    &self,
    request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest,
    block_number: Option<BlockId>,
    overrides: EvmOverrides,
) -> impl Future<Output = Result<Bytes, Self::Error>> + Send
fn call( &self, request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest, block_number: Option<BlockId>, overrides: EvmOverrides, ) -> impl Future<Output = Result<Bytes, Self::Error>> + Send
Executes the call request (eth_call) and returns the output
fn call_many(
    &self,
    bundles: Vec<Bundle<<<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest>>,
    state_context: Option<StateContext>,
    state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>,
) -> impl Future<Output = Result<Vec<Vec<EthCallResponse>>, Self::Error>> + Send
fn call_many( &self, bundles: Vec<Bundle<<<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest>>, state_context: Option<StateContext>, state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>, ) -> impl Future<Output = Result<Vec<Vec<EthCallResponse>>, Self::Error>> + Send
Simulate arbitrary number of transactions at an arbitrary blockchain index, with the optionality of state overrides
fn create_access_list_at(
    &self,
    request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest,
    block_number: Option<BlockId>,
    state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>,
) -> impl Future<Output = Result<AccessListResult, Self::Error>> + Sendwhere
    Self: Trace,
fn create_access_list_at(
    &self,
    request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest,
    block_number: Option<BlockId>,
    state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>,
) -> impl Future<Output = Result<AccessListResult, Self::Error>> + Sendwhere
    Self: Trace,
Creates [AccessListResult] for the RpcTxReq at the given
[BlockId], or latest block.
fn create_access_list_with(
    &self,
    evm_env: EvmEnv<<<<Self::Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Spec, <<<Self::Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::BlockEnv>,
    at: BlockId,
    request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest,
    state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>,
) -> impl Future<Output = Result<AccessListResult, Self::Error>> + Sendwhere
    Self: Trace,
fn create_access_list_with(
    &self,
    evm_env: EvmEnv<<<<Self::Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Spec, <<<Self::Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::BlockEnv>,
    at: BlockId,
    request: <<Self::RpcConvert as RpcConvert>::Network as RpcTypes>::TransactionRequest,
    state_override: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>,
) -> impl Future<Output = Result<AccessListResult, Self::Error>> + Sendwhere
    Self: Trace,
Creates [AccessListResult] for the RpcTxReq at the given
[BlockId].
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.