pub trait TxEnvConverter<TxReq, Evm>:
Debug
+ Send
+ Sync
+ Unpin
+ Clone
+ 'staticwhere
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:
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: &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>
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,
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,
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: &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 Fwhere
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.
impl<F, TxReq, E, Evm> TxEnvConverter<TxReq, Evm> for Fwhere
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.