TxEnvConverter

Trait TxEnvConverter 

Source
pub trait TxEnvConverter<TxReq, Evm>:
    Debug
    + Send
    + Sync
    + Unpin
    + Clone
    + 'static
where Evm: ConfigureEvm,
{ type Error; // Required method fn convert_tx_env( &self, tx_req: TxReq, evm_env: &EvmEnv<<<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Spec, <<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::BlockEnv>, ) -> Result<<<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Tx, Self::Error>; }
Expand description

Converts TxReq into TxEnv.

Where:

  • TxReq is a transaction request received from an RPC API
  • TxEnv is the corresponding transaction environment for execution

The TxEnvConverter has two blanket implementations:

One should prefer to implement TryIntoTxEnv for TxReq to get the TxEnvConverter implementation for free, thanks to the blanket implementation, unless the conversion requires more context. For example, some configuration parameters or access handles to database, network, etc.

Required Associated Types§

Source

type Error

An associated error that can occur during conversion.

Required Methods§

Source

fn convert_tx_env( &self, tx_req: TxReq, evm_env: &EvmEnv<<<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Spec, <<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::BlockEnv>, ) -> Result<<<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Tx, Self::Error>

Converts a rpc transaction request into a transaction environment.

See TxEnvConverter for more information.

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.

Implementations on Foreign Types§

Source§

impl<TxReq, Evm> TxEnvConverter<TxReq, Evm> for ()
where TxReq: TryIntoTxEnv<<<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Tx, <<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::BlockEnv>, Evm: ConfigureEvm,

Source§

type Error = <TxReq as TryIntoTxEnv<<<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Tx, <<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::BlockEnv>>::Err

Source§

fn convert_tx_env( &self, tx_req: TxReq, evm_env: &EvmEnv<<<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Spec, <<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::BlockEnv>, ) -> Result<<<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Tx, <() as TxEnvConverter<TxReq, Evm>>::Error>

Implementors§

Source§

impl<F, TxReq, E, Evm> TxEnvConverter<TxReq, Evm> for F
where F: Fn(TxReq, &EvmEnv<<<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Spec, <<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::BlockEnv>) -> Result<<<<Evm as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory as EvmFactory>::Tx, E> + Debug + Send + Sync + Unpin + Clone + 'static, TxReq: Clone, Evm: ConfigureEvm, E: Error + Send + Sync + 'static,

Converts rpc transaction requests into transaction environment using a closure.

Source§

type Error = E