Trait reth_evm::provider::EvmEnvProvider

source ·
pub trait EvmEnvProvider: Send + Sync {
    // Required methods
    fn fill_env_at<EvmConfig>(
        &self,
        cfg: &mut CfgEnvWithHandlerCfg,
        block_env: &mut BlockEnv,
        at: BlockHashOrNumber,
        evm_config: EvmConfig,
    ) -> ProviderResult<()>
       where EvmConfig: ConfigureEvmEnv<Header = Header>;
    fn fill_env_with_header<EvmConfig>(
        &self,
        cfg: &mut CfgEnvWithHandlerCfg,
        block_env: &mut BlockEnv,
        header: &Header,
        evm_config: EvmConfig,
    ) -> ProviderResult<()>
       where EvmConfig: ConfigureEvmEnv<Header = Header>;
    fn fill_cfg_env_at<EvmConfig>(
        &self,
        cfg: &mut CfgEnvWithHandlerCfg,
        at: BlockHashOrNumber,
        evm_config: EvmConfig,
    ) -> ProviderResult<()>
       where EvmConfig: ConfigureEvmEnv<Header = Header>;
    fn fill_cfg_env_with_header<EvmConfig>(
        &self,
        cfg: &mut CfgEnvWithHandlerCfg,
        header: &Header,
        evm_config: EvmConfig,
    ) -> ProviderResult<()>
       where EvmConfig: ConfigureEvmEnv<Header = Header>;

    // Provided method
    fn env_with_header<EvmConfig>(
        &self,
        header: &Header,
        evm_config: EvmConfig,
    ) -> ProviderResult<(CfgEnvWithHandlerCfg, BlockEnv)>
       where EvmConfig: ConfigureEvmEnv<Header = Header> { ... }
}
Expand description

A provider type that knows chain specific information required to configure a [CfgEnvWithHandlerCfg].

This type is mainly used to provide required data to configure the EVM environment that is usually stored on disk.

Required Methods§

source

fn fill_env_at<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, block_env: &mut BlockEnv, at: BlockHashOrNumber, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

Fills the [CfgEnvWithHandlerCfg] and [BlockEnv] fields with values specific to the given [BlockHashOrNumber].

source

fn fill_env_with_header<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, block_env: &mut BlockEnv, header: &Header, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

Fills the [CfgEnvWithHandlerCfg] and [BlockEnv] fields with values specific to the given [Header].

source

fn fill_cfg_env_at<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, at: BlockHashOrNumber, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

Fills the [CfgEnvWithHandlerCfg] fields with values specific to the given [BlockHashOrNumber].

source

fn fill_cfg_env_with_header<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, header: &Header, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

Fills the [CfgEnvWithHandlerCfg] fields with values specific to the given [Header].

Provided Methods§

source

fn env_with_header<EvmConfig>( &self, header: &Header, evm_config: EvmConfig, ) -> ProviderResult<(CfgEnvWithHandlerCfg, BlockEnv)>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

Fills the default [CfgEnvWithHandlerCfg] and [BlockEnv] fields with values specific to the given [Header].

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a, T: 'a + EvmEnvProvider + ?Sized> EvmEnvProvider for &'a T
where &'a T: Send + Sync,

source§

fn fill_env_at<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, block_env: &mut BlockEnv, at: BlockHashOrNumber, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

source§

fn env_with_header<EvmConfig>( &self, header: &Header, evm_config: EvmConfig, ) -> ProviderResult<(CfgEnvWithHandlerCfg, BlockEnv)>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

source§

fn fill_env_with_header<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, block_env: &mut BlockEnv, header: &Header, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

source§

fn fill_cfg_env_at<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, at: BlockHashOrNumber, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

source§

fn fill_cfg_env_with_header<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, header: &Header, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

source§

impl<T: EvmEnvProvider + ?Sized> EvmEnvProvider for Arc<T>
where Arc<T>: Send + Sync,

source§

fn fill_env_at<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, block_env: &mut BlockEnv, at: BlockHashOrNumber, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

source§

fn env_with_header<EvmConfig>( &self, header: &Header, evm_config: EvmConfig, ) -> ProviderResult<(CfgEnvWithHandlerCfg, BlockEnv)>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

source§

fn fill_env_with_header<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, block_env: &mut BlockEnv, header: &Header, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

source§

fn fill_cfg_env_at<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, at: BlockHashOrNumber, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

source§

fn fill_cfg_env_with_header<EvmConfig>( &self, cfg: &mut CfgEnvWithHandlerCfg, header: &Header, evm_config: EvmConfig, ) -> ProviderResult<()>
where EvmConfig: ConfigureEvmEnv<Header = Header>,

Implementors§