diff --git a/crates/cheatcodes/src/test.rs b/crates/cheatcodes/src/test.rs index 89fd72906..69d52126e 100644 --- a/crates/cheatcodes/src/test.rs +++ b/crates/cheatcodes/src/test.rs @@ -38,6 +38,7 @@ impl Cheatcode for zkRegisterContractCall { name: name.clone(), zk_bytecode_hash: zkBytecodeHash.0.into(), zk_deployed_bytecode: zkDeployedBytecode.clone(), + //TODO: add argument to cheatcode zk_factory_deps: vec![], evm_bytecode_hash: *evmBytecodeHash, evm_deployed_bytecode: evmDeployedBytecode.clone(), diff --git a/crates/forge/bin/cmd/create.rs b/crates/forge/bin/cmd/create.rs index f8c5dc0a1..dbbe05b13 100644 --- a/crates/forge/bin/cmd/create.rs +++ b/crates/forge/bin/cmd/create.rs @@ -14,7 +14,6 @@ use ethers_core::{ use ethers_middleware::SignerMiddleware; use ethers_providers::Middleware; use eyre::{Context, Result}; -use forge::revm::primitives::bitvec::vec; use foundry_cli::{ opts::{CoreBuildArgs, EthereumOpts, EtherscanOpts, TransactionOpts}, utils::{self, read_constructor_args_file, remove_contract, LoadConfig}, @@ -26,7 +25,7 @@ use foundry_common::{ types::{ToAlloy, ToEthers}, }; use foundry_compilers::{ - artifacts::{contract, BytecodeObject, CompactBytecode}, + artifacts::{BytecodeObject, CompactBytecode}, info::ContractInfo, utils::canonicalized, }; @@ -37,7 +36,6 @@ use foundry_zksync_compiler::{ use serde_json::json; use std::{ borrow::Borrow, - collections::{HashSet, VecDeque}, marker::PhantomData, path::PathBuf, sync::Arc, @@ -157,12 +155,13 @@ impl CreateArgs { source_map: Default::default(), }; + //TODO: restore `--factory-deps` handling? (+ lookup) + // or remove flag entirely? let factory_deps = dual_compiled_contracts - .fetch_all_factory_deps(&contract) + .fetch_all_factory_deps(contract) .into_iter() .collect::>(); - println!("Total Factory Deps: {:?}", factory_deps.len()); (abi, zk_bin, Some((contract, factory_deps))) } else { (abi, bin, None) diff --git a/crates/forge/tests/it/config.rs b/crates/forge/tests/it/config.rs index 342b0d462..a18fdfae6 100644 --- a/crates/forge/tests/it/config.rs +++ b/crates/forge/tests/it/config.rs @@ -240,6 +240,7 @@ pub async fn runner_with_config_and_zk(mut config: Config) -> MultiContractRunne name: contract_name, zk_bytecode_hash: packed_bytecode.bytecode_hash(), zk_deployed_bytecode: packed_bytecode.bytecode(), + zk_factory_deps: packed_bytecode.factory_deps(), evm_bytecode_hash: keccak256(solc_deployed_bytecode), evm_bytecode: solc_bytecode.to_vec(), evm_deployed_bytecode: solc_deployed_bytecode.to_vec(), diff --git a/crates/zksync/core/src/vm/runner.rs b/crates/zksync/core/src/vm/runner.rs index a58e3df90..9e4d46ef5 100644 --- a/crates/zksync/core/src/vm/runner.rs +++ b/crates/zksync/core/src/vm/runner.rs @@ -179,7 +179,7 @@ where let caller = env.tx.caller; let calldata = encode_create_params(&call.scheme, contract.zk_bytecode_hash, constructor_input); let factory_deps = - dual_compiled_contracts.fetch_all_factory_deps(&contract).into_iter().collect(); + dual_compiled_contracts.fetch_all_factory_deps(contract).into_iter().collect(); let nonce = ZKVMData::new(db, journaled_state).get_tx_nonce(caller); let (gas_limit, max_fee_per_gas) = gas_params(env, db, journaled_state, caller);