anvil/eth/backend/
env.rs
1use alloy_evm::EvmEnv;
2use foundry_evm::EnvMut;
3use foundry_evm_core::AsEnvMut;
4use op_revm::OpTransaction;
5use revm::context::{BlockEnv, CfgEnv, TxEnv};
6
7#[derive(Clone, Debug, Default)]
9pub struct Env {
10 pub evm_env: EvmEnv,
11 pub tx: OpTransaction<TxEnv>,
12 pub is_optimism: bool,
13}
14
15impl Env {
17 pub fn new(cfg: CfgEnv, block: BlockEnv, tx: OpTransaction<TxEnv>, is_optimism: bool) -> Self {
18 Self { evm_env: EvmEnv { cfg_env: cfg, block_env: block }, tx, is_optimism }
19 }
20}
21
22impl AsEnvMut for Env {
23 fn as_env_mut(&mut self) -> EnvMut<'_> {
24 EnvMut {
25 block: &mut self.evm_env.block_env,
26 cfg: &mut self.evm_env.cfg_env,
27 tx: &mut self.tx.base,
28 }
29 }
30}