@@ -46,8 +46,9 @@ use foundry_wallets::multi_wallet::MultiWallet;
4646use foundry_zksync_compiler:: { DualCompiledContract , DualCompiledContracts } ;
4747use foundry_zksync_core:: {
4848 convert:: { ConvertAddress , ConvertH160 , ConvertH256 , ConvertRU256 , ConvertU256 } ,
49- get_account_code_key, get_balance_key, get_nonce_key, Call , ZkPaymasterData ,
50- ZkTransactionMetadata , DEFAULT_CREATE2_DEPLOYER_ZKSYNC ,
49+ get_account_code_key, get_balance_key, get_nonce_key,
50+ vm:: ZkEnv ,
51+ Call , ZkPaymasterData , ZkTransactionMetadata , DEFAULT_CREATE2_DEPLOYER_ZKSYNC ,
5152} ;
5253use foundry_zksync_inspectors:: TraceCollector ;
5354use itertools:: Itertools ;
@@ -650,6 +651,8 @@ pub struct Cheatcodes {
650651
651652 /// Nonce update persistence behavior in zkEVM for the tx caller.
652653 pub zk_persist_nonce_update : ZkPersistNonceUpdate ,
654+
655+ pub zk_env : ZkEnv ,
653656}
654657
655658// This is not derived because calling this in `fn new` with `..Default::default()` creates a second
@@ -703,6 +706,7 @@ impl Cheatcodes {
703706 persisted_factory_deps. insert ( zk_bytecode_hash, zk_deployed_bytecode) ;
704707
705708 let zk_startup_migration = config. use_zk . then_some ( ZkStartupMigration :: Defer ) ;
709+ let zk_env = config. zk_env . clone ( ) . unwrap_or_default ( ) ;
706710
707711 Self {
708712 fs_commit : true ,
@@ -750,6 +754,7 @@ impl Cheatcodes {
750754 paymaster_params : None ,
751755 zk_use_factory_deps : Default :: default ( ) ,
752756 zk_persist_nonce_update : Default :: default ( ) ,
757+ zk_env,
753758 }
754759 }
755760
@@ -1304,6 +1309,7 @@ impl Cheatcodes {
13041309 persisted_factory_deps : Some ( & mut self . persisted_factory_deps ) ,
13051310 paymaster_data : self . paymaster_params . take ( ) ,
13061311 persist_nonce_update : self . broadcast . is_some ( ) || zk_persist_nonce_update,
1312+ zk_env : self . zk_env . clone ( ) ,
13071313 } ;
13081314
13091315 let zk_create = foundry_zksync_core:: vm:: ZkCreateInputs {
@@ -1968,6 +1974,7 @@ where {
19681974 persisted_factory_deps : Some ( & mut self . persisted_factory_deps ) ,
19691975 paymaster_data : self . paymaster_params . take ( ) ,
19701976 persist_nonce_update : self . broadcast . is_some ( ) || zk_persist_nonce_update,
1977+ zk_env : self . zk_env . clone ( ) ,
19711978 } ;
19721979
19731980 let mut gas = Gas :: new ( call. gas_limit ) ;
0 commit comments