pub trait TxEnvConverter<TxReq, Evm: ConfigureEvm>:
Debug
+ Send
+ Sync
+ Unpin
+ Clone
+ 'static {
type Error;
// Required method
fn convert_tx_env(
&self,
tx_req: TxReq,
evm_env: &EvmEnvFor<Evm>,
) -> Result<TxEnvFor<Evm>, Self::Error>;
}Expand description
Converts TxReq into TxEnv.
Where:
TxReqis a transaction request received from an RPC APITxEnvis the corresponding transaction environment for execution
The TxEnvConverter has two blanket implementations:
()assumingTxReqimplementsTryIntoTxEnvand is used as default forRpcConverter.Fn(TxReq, &CfgEnv<Spec>, &BlockEnv) -> Result<TxEnv, E>and can be applied usingRpcConverter::with_tx_env_converter.
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§
Required Methods§
Sourcefn convert_tx_env(
&self,
tx_req: TxReq,
evm_env: &EvmEnvFor<Evm>,
) -> Result<TxEnvFor<Evm>, Self::Error>
fn convert_tx_env( &self, tx_req: TxReq, evm_env: &EvmEnvFor<Evm>, ) -> Result<TxEnvFor<Evm>, 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<TxEnvFor<Evm>, BlockEnvFor<Evm>>,
Evm: ConfigureEvm,
impl<TxReq, Evm> TxEnvConverter<TxReq, Evm> for ()where
TxReq: TryIntoTxEnv<TxEnvFor<Evm>, BlockEnvFor<Evm>>,
Evm: ConfigureEvm,
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
fn convert_tx_env( &self, tx_req: TxReq, evm_env: &EvmEnvFor<Evm>, ) -> Result<TxEnvFor<Evm>, Self::Error>
Implementors§
Source§impl<F, TxReq, E, Evm> TxEnvConverter<TxReq, Evm> for F
Converts rpc transaction requests into transaction environment using a closure.
impl<F, TxReq, E, Evm> TxEnvConverter<TxReq, Evm> for F
Converts rpc transaction requests into transaction environment using a closure.