diff --git a/.github/workflows/ci-core-reusable.yml b/.github/workflows/ci-core-reusable.yml index fa8dc578d6e3..d08ed1b0fb64 100644 --- a/.github/workflows/ci-core-reusable.yml +++ b/.github/workflows/ci-core-reusable.yml @@ -63,7 +63,6 @@ jobs: - name: Install yarn run: | npm install -g yarn - - name: Check contracts hashes working-directory: contracts run: | @@ -151,7 +150,7 @@ jobs: # ---------------------------------------------- matrix: use_gateway_chain: [ "WITH_GATEWAY", "WITHOUT_GATEWAY" ] - tested_chain_type: [ "era", "validium", "custom_token"] + tested_chain_type: [ "era", "validium", "custom_token" ] # In some cases it's useful to continue one job even if another fails. fail-fast: false steps: diff --git a/.gitignore b/.gitignore index 8453b3b83c79..94224a8a01c1 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ tags *.orig .direnv .cache +cache # Yarn files .yarn/ diff --git a/bin/build_and_init_ecosystem b/bin/build_and_init_ecosystem index cba36e196cb2..59abeaca1860 100755 --- a/bin/build_and_init_ecosystem +++ b/bin/build_and_init_ecosystem @@ -19,7 +19,7 @@ initialize_ecosystem() { echo "[initialize_ecosystem] started" zkstack ecosystem init \ --deploy-paymaster --deploy-erc20 --deploy-ecosystem \ - --l1-rpc-url=http://localhost:8545 \ + --l1-rpc-url=http://127.0.0.1:8545 \ --server-db-url=postgres://postgres:notsecurepassword@localhost:5432 \ --server-db-name=zksync_server_localhost_era \ --ignore-prerequisites --verbose \ diff --git a/chains/era/ZkStack.yaml b/chains/era/ZkStack.yaml index bccb7c1ced4c..94238698433e 100644 --- a/chains/era/ZkStack.yaml +++ b/chains/era/ZkStack.yaml @@ -3,7 +3,6 @@ name: era chain_id: 271 prover_version: NoProofs l1_network: Localhost -link_to_code: . configs: ./chains/era/configs/ rocks_db_path: ./chains/era/db/ external_node_config_path: ./chains/era/configs/external_node diff --git a/contracts b/contracts index a6a51b69e545..03604a666a3b 160000 --- a/contracts +++ b/contracts @@ -1 +1 @@ -Subproject commit a6a51b69e5456841993c05d1f7f254406b6da637 +Subproject commit 03604a666a3bf3355438326aea075ef759d69112 diff --git a/core/bin/snapshots_creator/src/tests.rs b/core/bin/snapshots_creator/src/tests.rs index fd8a1f34eb41..e01c27bdf0cb 100644 --- a/core/bin/snapshots_creator/src/tests.rs +++ b/core/bin/snapshots_creator/src/tests.rs @@ -16,6 +16,7 @@ use zksync_dal::{Connection, CoreDal}; use zksync_object_store::{MockObjectStore, ObjectStore}; use zksync_types::{ block::{L1BatchHeader, L1BatchTreeData, L2BlockHeader}, + commitment::PubdataParams, snapshots::{ SnapshotFactoryDependencies, SnapshotFactoryDependency, SnapshotStorageLog, SnapshotStorageLogsChunk, SnapshotStorageLogsStorageKey, @@ -172,7 +173,7 @@ async fn create_l2_block( base_fee_per_gas: 0, gas_per_pubdata_limit: 0, batch_fee_input: Default::default(), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), base_system_contracts_hashes: Default::default(), protocol_version: Some(Default::default()), virtual_blocks: 0, diff --git a/core/bin/zksync_server/src/node_builder.rs b/core/bin/zksync_server/src/node_builder.rs index 8df68afda7a9..cab5709e6978 100644 --- a/core/bin/zksync_server/src/node_builder.rs +++ b/core/bin/zksync_server/src/node_builder.rs @@ -74,7 +74,7 @@ use zksync_state_keeper::node::{ }; use zksync_tee_proof_data_handler::node::TeeProofDataHandlerLayer; use zksync_types::{ - commitment::{L1BatchCommitmentMode, PubdataType}, + commitment::{L1BatchCommitmentMode, L2DACommitmentScheme, PubdataType}, pubdata_da::PubdataSendingMode, Address, L2ChainId, }; @@ -129,6 +129,37 @@ impl MainNodeBuilder { } } + pub fn l2_da_commitment_scheme(&self) -> L2DACommitmentScheme { + let use_dummy_inclusion_data = self + .configs + .da_dispatcher_config + .as_ref() + .map(|a| a.use_dummy_inclusion_data) + .unwrap_or_default(); + + // For DA clients we have two options verify the pubdata inclusion on SL or not. + // If we do not verify it, we can use EmptyNoDA commitment scheme in this case + // use_dummy_inclusion_data is true. + // If the DA client is not specified, we assume that we publish all data to SL + // and we have to verify it + + if use_dummy_inclusion_data { + return L2DACommitmentScheme::EmptyNoDA; + } + + match &self.configs.da_client_config { + Some(DAClientConfig::NoDA) => L2DACommitmentScheme::EmptyNoDA, + Some(DAClientConfig::ObjectStore(_)) => L2DACommitmentScheme::EmptyNoDA, + Some(DAClientConfig::Avail(_)) => L2DACommitmentScheme::PubdataKeccak256, + Some(DAClientConfig::Celestia(_)) => L2DACommitmentScheme::PubdataKeccak256, + Some(DAClientConfig::Eigen(_)) => L2DACommitmentScheme::PubdataKeccak256, + None => { + tracing::info!("DAClientConfig is not specified, setting L2DACommitmentScheme to BlobsAndPubdataKeccak256"); + L2DACommitmentScheme::BlobsAndPubdataKeccak256 + } + } + } + fn add_sigint_handler_layer(mut self) -> anyhow::Result { self.node.add_layer(SigintHandlerLayer); Ok(self) @@ -326,6 +357,7 @@ impl MainNodeBuilder { .genesis_config .l1_batch_commit_data_generator_mode, dummy_verifier: self.genesis_config.dummy_verifier, + config_l2_da_commitment_scheme: self.l2_da_commitment_scheme(), })); Ok(self) } diff --git a/core/lib/basic_types/src/commitment.rs b/core/lib/basic_types/src/commitment.rs index 9466f716b6a3..55c51e22adb3 100644 --- a/core/lib/basic_types/src/commitment.rs +++ b/core/lib/basic_types/src/commitment.rs @@ -98,8 +98,128 @@ impl FromStr for PubdataType { } } -#[derive(Default, Copy, Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Display)] +#[repr(u8)] +pub enum L2DACommitmentScheme { + None = 0, + EmptyNoDA = 1, + PubdataKeccak256 = 2, + BlobsAndPubdataKeccak256 = 3, + BlobsZKSyncOS = 4, +} + +impl TryFrom for L2DACommitmentScheme { + type Error = &'static str; + fn try_from(value: u8) -> Result { + match value { + 0 => Ok(L2DACommitmentScheme::None), + 1 => Ok(L2DACommitmentScheme::EmptyNoDA), + 2 => Ok(L2DACommitmentScheme::PubdataKeccak256), + 3 => Ok(L2DACommitmentScheme::BlobsAndPubdataKeccak256), + 4 => Ok(L2DACommitmentScheme::BlobsZKSyncOS), + _ => Err("Invalid L2DACommitmentScheme value"), + } + } +} + +impl FromStr for L2DACommitmentScheme { + type Err = &'static str; + + fn from_str(s: &str) -> Result { + match s { + "None" => Ok(Self::None), + "EmptyNoDA" => Ok(Self::EmptyNoDA), + "PubdataKeccak256" => Ok(Self::PubdataKeccak256), + "BlobsAndPubdataKeccak256" => Ok(Self::BlobsAndPubdataKeccak256), + "BlobsZKSyncOS" => Ok(Self::BlobsZKSyncOS), + _ => Err("Incorrect L2 DA commitment scheme; expected one of `None`, `EmptyNoDA`, `PubdataKeccak256`, `BlobsAndPubdataKeccak256`"), + } + } +} + +#[derive(Copy, Debug, Clone, PartialEq, Serialize, Deserialize)] +pub enum L2PubdataValidator { + Address(Address), + CommitmentScheme(L2DACommitmentScheme), +} + +impl TryFrom<(Option
, Option)> for L2PubdataValidator { + type Error = anyhow::Error; + + fn try_from( + value: (Option
, Option), + ) -> Result { + match value { + (None, Some(scheme)) => Ok(L2PubdataValidator::CommitmentScheme(scheme)), + (Some(address), None) => Ok(L2PubdataValidator::Address(address)), + (Some(_), Some(_)) => anyhow::bail!( + "Address and L2DACommitmentScheme are specified, should be chosen only one" + ), + (None, None) => anyhow::bail!( + "Address and L2DACommitmentScheme are not specified, should be chosen at least one" + ), + } + } +} + +impl L2PubdataValidator { + pub fn l2_da_validator(&self) -> Option
{ + match self { + L2PubdataValidator::Address(addr) => Some(*addr), + L2PubdataValidator::CommitmentScheme(_) => None, + } + } + + pub fn l2_da_commitment_scheme(&self) -> Option { + match self { + L2PubdataValidator::Address(_) => None, + L2PubdataValidator::CommitmentScheme(scheme) => Some(*scheme), + } + } +} + +#[derive(Copy, Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct PubdataParams { - pub l2_da_validator_address: Address, - pub pubdata_type: PubdataType, + pubdata_validator: L2PubdataValidator, + pubdata_type: PubdataType, +} + +impl PubdataParams { + pub fn new( + pubdata_validator: L2PubdataValidator, + pubdata_type: PubdataType, + ) -> anyhow::Result { + if L2PubdataValidator::CommitmentScheme(L2DACommitmentScheme::None) == pubdata_validator { + anyhow::bail!("L2DACommitmentScheme::None is not allowed as a legit pubdata parameter"); + }; + + Ok(PubdataParams { + pubdata_validator, + pubdata_type, + }) + } + + pub fn pubdata_validator(&self) -> L2PubdataValidator { + self.pubdata_validator + } + + pub fn pubdata_type(&self) -> PubdataType { + self.pubdata_type + } + + pub fn genesis() -> Self { + PubdataParams { + pubdata_validator: L2PubdataValidator::CommitmentScheme( + L2DACommitmentScheme::BlobsAndPubdataKeccak256, + ), + pubdata_type: PubdataType::Rollup, + } + } + + pub fn pre_gateway() -> Self { + PubdataParams { + pubdata_validator: L2PubdataValidator::Address(Address::zero()), + pubdata_type: Default::default(), + } + } } diff --git a/core/lib/basic_types/src/protocol_version.rs b/core/lib/basic_types/src/protocol_version.rs index 698d4ce3fc16..37ce62163cf5 100644 --- a/core/lib/basic_types/src/protocol_version.rs +++ b/core/lib/basic_types/src/protocol_version.rs @@ -74,15 +74,16 @@ pub enum ProtocolVersionId { Version28, Version29, Version30, + Version31, } impl ProtocolVersionId { pub const fn latest() -> Self { - Self::Version29 + Self::Version30 } pub const fn next() -> Self { - Self::Version30 + Self::Version31 } pub fn try_from_packed_semver(packed_semver: U256) -> Result { @@ -130,9 +131,9 @@ impl ProtocolVersionId { ProtocolVersionId::Version27 => VmVersion::VmEvmEmulator, ProtocolVersionId::Version28 => VmVersion::VmEcPrecompiles, ProtocolVersionId::Version29 => VmVersion::VmInterop, - - // Speculative VM version for the next protocol version to be used in the upgrade integration test etc. ProtocolVersionId::Version30 => VmVersion::VmInterop, + // Speculative VM version for the next protocol version to be used in the upgrade integration test etc. + ProtocolVersionId::Version31 => VmVersion::VmInterop, } } @@ -206,6 +207,10 @@ impl ProtocolVersionId { self >= &ProtocolVersionId::Version23 } + pub fn is_pre_medium_interop(&self) -> bool { + self < &ProtocolVersionId::Version30 + } + pub const fn gateway_upgrade() -> Self { ProtocolVersionId::Version26 } @@ -317,8 +322,9 @@ impl From for VmVersion { ProtocolVersionId::Version27 => VmVersion::VmEvmEmulator, ProtocolVersionId::Version28 => VmVersion::VmEcPrecompiles, ProtocolVersionId::Version29 => VmVersion::VmInterop, - // Speculative VM version for the next protocol version to be used in the upgrade integration test etc. ProtocolVersionId::Version30 => VmVersion::VmInterop, + // Speculative VM version for the next protocol version to be used in the upgrade integration test etc. + ProtocolVersionId::Version31 => VmVersion::VmInterop, } } } diff --git a/core/lib/basic_types/src/web3/contract.rs b/core/lib/basic_types/src/web3/contract.rs index 1f24034c974b..48f5ac891207 100644 --- a/core/lib/basic_types/src/web3/contract.rs +++ b/core/lib/basic_types/src/web3/contract.rs @@ -20,12 +20,11 @@ pub trait Detokenize: Sized { impl Detokenize for T { fn from_tokens(mut tokens: Vec) -> Result { - if tokens.len() != 1 { - return Err(Error::InvalidOutputType(format!( - "expected array with 1 token, got {tokens:?}" - ))); + if tokens.len() == 1 { + Self::from_token(tokens.pop().unwrap()) + } else { + Self::from_token(ethabi::Token::Tuple(tokens)) } - Self::from_token(tokens.pop().unwrap()) } } diff --git a/core/lib/config/src/configs/contracts/chain.rs b/core/lib/config/src/configs/contracts/chain.rs index 42f5a5a531ec..f9fd0c21d003 100644 --- a/core/lib/config/src/configs/contracts/chain.rs +++ b/core/lib/config/src/configs/contracts/chain.rs @@ -1,5 +1,5 @@ use smart_config::{ConfigSchema, DescribeConfig, DeserializeConfig}; -use zksync_basic_types::{Address, H256}; +use zksync_basic_types::{commitment::L2DACommitmentScheme, Address, H256}; use super::{ ecosystem::L1SpecificContracts, EcosystemCommonContracts, SettlementLayerSpecificContracts, @@ -74,6 +74,12 @@ pub struct L2Contracts { pub multicall3: Option
, } +/// Configuration for the ZKChain from on chain parameters. +#[derive(Debug, Clone, PartialEq)] +pub struct ZkChainOnChainConfig { + pub l2_da_commitment_scheme: Option, +} + #[derive(Debug, Clone, PartialEq, DescribeConfig, DeserializeConfig)] pub struct L2ContractsConfig { pub testnet_paymaster_addr: Option
, diff --git a/core/lib/constants/src/contracts.rs b/core/lib/constants/src/contracts.rs index a12fb0730140..ac5b15c9ade1 100644 --- a/core/lib/constants/src/contracts.rs +++ b/core/lib/constants/src/contracts.rs @@ -206,6 +206,33 @@ pub const L2_CHAIN_ASSET_HANDLER_ADDRESS: Address = H160([ 0x00, 0x01, 0x00, 0x0a, ]); +pub const UPGRADEABLE_BEACON_DEPLOYER_ADDRESS: Address = H160([ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x0b, +]); + +// todo FIXME, deploy normally instead using DUMMY_ADDRESS and deploying on genesis + +pub const DUMMY_ADDRESS_1: Address = H160([ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x0b, +]); + +pub const DUMMY_ADDRESS_2: Address = H160([ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x02, 0x01, 0x00, 0x0b, +]); + +pub const DUMMY_ADDRESS_3: Address = H160([ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x03, 0x01, 0x00, 0x0b, +]); + +pub const DUMMY_ADDRESS_4: Address = H160([ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x04, 0x01, 0x00, 0x0b, +]); + pub const ERC20_TRANSFER_TOPIC: H256 = H256([ 221, 242, 82, 173, 27, 226, 200, 155, 105, 194, 176, 104, 252, 55, 141, 170, 149, 43, 167, 241, 99, 196, 161, 22, 40, 245, 90, 77, 245, 35, 179, 239, diff --git a/core/lib/contracts/src/lib.rs b/core/lib/contracts/src/lib.rs index b47047aea0ea..c2aa0325b590 100644 --- a/core/lib/contracts/src/lib.rs +++ b/core/lib/contracts/src/lib.rs @@ -39,7 +39,8 @@ const FORGE_PATH_PREFIX: &str = "contracts/l1-contracts/out"; const HARDHAT_PROOF_MANAGER_PATH_PREFIX: &str = "proof-manager-contracts/out"; const FORGE_PROOF_MANAGER_PATH_PREFIX: &str = "proof-manager-contracts/out"; -const BRIDGEHUB_CONTRACT_FILE: (&str, &str) = ("bridgehub", "IBridgehub.sol/IBridgehub.json"); +const BRIDGEHUB_CONTRACT_FILE: (&str, &str) = + ("bridgehub", "IBridgehubBase.sol/IBridgehubBase.json"); const STATE_TRANSITION_CONTRACT_FILE: (&str, &str) = ( "state-transition", "ChainTypeManager.sol/ChainTypeManager.json", @@ -82,7 +83,7 @@ const L2_WRAPPED_BASE_TOKEN_STORE: (&str, &str) = ( const VERIFIER_CONTRACT_FILE: (&str, &str) = ("state-transition", "Verifier.sol/Verifier.json"); const DUAL_VERIFIER_CONTRACT_FILE: (&str, &str) = ( "state-transition/verifiers", - "DualVerifier.sol/DualVerifier.json", + "EraDualVerifier.sol/EraDualVerifier.json", ); const PROOF_MANAGER_CONTRACT_FILE: (&str, &str) = ("", "ProofManagerV1.sol/ProofManagerV1.json"); @@ -271,7 +272,7 @@ pub fn l1_messenger_contract() -> Contract { } pub fn l2_message_root() -> Contract { - load_l1_zk_contract("MessageRoot") + load_l1_zk_contract("L2MessageRoot") } pub fn l2_asset_router() -> Contract { diff --git a/core/lib/dal/.sqlx/query-9c909e9e814a8141c4a2f9548ba7487f125d538b092bae8fd8013be3f8dc8f44.json b/core/lib/dal/.sqlx/query-03098c49c4095306306e3389bdce37b570bcd59178836c49bee915d78f4e5d0a.json similarity index 87% rename from core/lib/dal/.sqlx/query-9c909e9e814a8141c4a2f9548ba7487f125d538b092bae8fd8013be3f8dc8f44.json rename to core/lib/dal/.sqlx/query-03098c49c4095306306e3389bdce37b570bcd59178836c49bee915d78f4e5d0a.json index b1d618f03ea4..a14a4667d1e4 100644 --- a/core/lib/dal/.sqlx/query-9c909e9e814a8141c4a2f9548ba7487f125d538b092bae8fd8013be3f8dc8f44.json +++ b/core/lib/dal/.sqlx/query-03098c49c4095306306e3389bdce37b570bcd59178836c49bee915d78f4e5d0a.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address AS \"fee_account_address!\",\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom,\n l2_da_validator_address,\n pubdata_type,\n rolling_txs_hash\n FROM\n miniblocks\n ORDER BY\n number DESC\n LIMIT\n 1\n ", + "query": "\n SELECT\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address AS \"fee_account_address!\",\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom,\n l2_da_validator_address,\n l2_da_commitment_scheme,\n pubdata_type,\n rolling_txs_hash\n FROM\n miniblocks\n ORDER BY\n number DESC\n LIMIT\n 1\n ", "describe": { "columns": [ { @@ -100,11 +100,16 @@ }, { "ordinal": 19, + "name": "l2_da_commitment_scheme", + "type_info": "Int4" + }, + { + "ordinal": 20, "name": "pubdata_type", "type_info": "Text" }, { - "ordinal": 20, + "ordinal": 21, "name": "rolling_txs_hash", "type_info": "Bytea" } @@ -131,10 +136,11 @@ true, true, true, - false, + true, + true, false, true ] }, - "hash": "9c909e9e814a8141c4a2f9548ba7487f125d538b092bae8fd8013be3f8dc8f44" + "hash": "03098c49c4095306306e3389bdce37b570bcd59178836c49bee915d78f4e5d0a" } diff --git a/core/lib/dal/.sqlx/query-4dddfbce49ccfdd3230a41726e6c8cacd3be7ad135ef913bfabd20ba3d61d9cd.json b/core/lib/dal/.sqlx/query-4dddfbce49ccfdd3230a41726e6c8cacd3be7ad135ef913bfabd20ba3d61d9cd.json new file mode 100644 index 000000000000..c010767762c9 --- /dev/null +++ b/core/lib/dal/.sqlx/query-4dddfbce49ccfdd3230a41726e6c8cacd3be7ad135ef913bfabd20ba3d61d9cd.json @@ -0,0 +1,34 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n l2_da_validator_address,\n l2_da_commitment_scheme,\n pubdata_type\n FROM\n miniblocks\n WHERE\n l1_batch_number = $1\n ORDER BY number ASC\n LIMIT 1\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "l2_da_validator_address", + "type_info": "Bytea" + }, + { + "ordinal": 1, + "name": "l2_da_commitment_scheme", + "type_info": "Int4" + }, + { + "ordinal": 2, + "name": "pubdata_type", + "type_info": "Text" + } + ], + "parameters": { + "Left": [ + "Int8" + ] + }, + "nullable": [ + true, + true, + false + ] + }, + "hash": "4dddfbce49ccfdd3230a41726e6c8cacd3be7ad135ef913bfabd20ba3d61d9cd" +} diff --git a/core/lib/dal/.sqlx/query-e2c931ef564c61e7085ec6bf4d975949b0a37a89c70f7de5fa410007ce895598.json b/core/lib/dal/.sqlx/query-5e02b5147b1e383b59b9626449f8b1e4622bbd30154db7f9df393b3b92e51413.json similarity index 63% rename from core/lib/dal/.sqlx/query-e2c931ef564c61e7085ec6bf4d975949b0a37a89c70f7de5fa410007ce895598.json rename to core/lib/dal/.sqlx/query-5e02b5147b1e383b59b9626449f8b1e4622bbd30154db7f9df393b3b92e51413.json index e16fa29b3ab8..957ffc5625fb 100644 --- a/core/lib/dal/.sqlx/query-e2c931ef564c61e7085ec6bf4d975949b0a37a89c70f7de5fa410007ce895598.json +++ b/core/lib/dal/.sqlx/query-5e02b5147b1e383b59b9626449f8b1e4622bbd30154db7f9df393b3b92e51413.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n INSERT INTO\n miniblocks (\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address,\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom,\n l2_da_validator_address,\n pubdata_type,\n rolling_txs_hash,\n created_at,\n updated_at\n )\n VALUES\n (\n $1,\n $2,\n $3,\n $4,\n $5,\n $6,\n $7,\n $8,\n $9,\n $10,\n $11,\n $12,\n $13,\n $14,\n $15,\n $16,\n $17,\n $18,\n $19,\n $20,\n $21,\n NOW(),\n NOW()\n )\n ", + "query": "\n INSERT INTO\n miniblocks (\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address,\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom,\n l2_da_validator_address,\n pubdata_type,\n rolling_txs_hash,\n l2_da_commitment_scheme,\n created_at,\n updated_at\n )\n VALUES\n (\n $1,\n $2,\n $3,\n $4,\n $5,\n $6,\n $7,\n $8,\n $9,\n $10,\n $11,\n $12,\n $13,\n $14,\n $15,\n $16,\n $17,\n $18,\n $19,\n $20,\n $21,\n $22,\n NOW(),\n NOW()\n )\n ", "describe": { "columns": [], "parameters": { @@ -25,10 +25,11 @@ "Bytea", "Bytea", "Text", - "Bytea" + "Bytea", + "Int4" ] }, "nullable": [] }, - "hash": "e2c931ef564c61e7085ec6bf4d975949b0a37a89c70f7de5fa410007ce895598" + "hash": "5e02b5147b1e383b59b9626449f8b1e4622bbd30154db7f9df393b3b92e51413" } diff --git a/core/lib/dal/.sqlx/query-75a1e12ee9ac51f322f8862b6edc963cedc30668f5fcc35c0ea7638a58146f2f.json b/core/lib/dal/.sqlx/query-6299e20b3582b152972d6bce74fc3704016fc50a2838cd2394456908434bbd27.json similarity index 84% rename from core/lib/dal/.sqlx/query-75a1e12ee9ac51f322f8862b6edc963cedc30668f5fcc35c0ea7638a58146f2f.json rename to core/lib/dal/.sqlx/query-6299e20b3582b152972d6bce74fc3704016fc50a2838cd2394456908434bbd27.json index 33a10df6fe4d..56ff860f3579 100644 --- a/core/lib/dal/.sqlx/query-75a1e12ee9ac51f322f8862b6edc963cedc30668f5fcc35c0ea7638a58146f2f.json +++ b/core/lib/dal/.sqlx/query-6299e20b3582b152972d6bce74fc3704016fc50a2838cd2394456908434bbd27.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n WITH l1_batch AS (\n SELECT COALESCE(\n (\n SELECT miniblocks.l1_batch_number\n FROM miniblocks\n WHERE number = $1\n ),\n (\n SELECT\n (MAX(number) + 1)\n FROM\n l1_batches\n WHERE\n is_sealed\n ),\n (\n SELECT\n MAX(l1_batch_number) + 1\n FROM\n snapshot_recovery\n )\n ) AS number\n )\n \n SELECT\n miniblocks.number,\n l1_batch.number AS \"l1_batch_number!\",\n (miniblocks.l1_tx_count + miniblocks.l2_tx_count) AS \"tx_count!\",\n miniblocks.timestamp,\n miniblocks.l1_gas_price,\n miniblocks.l2_fair_gas_price,\n miniblocks.fair_pubdata_price,\n miniblocks.bootloader_code_hash,\n miniblocks.default_aa_code_hash,\n miniblocks.evm_emulator_code_hash,\n miniblocks.virtual_blocks,\n miniblocks.hash,\n miniblocks.protocol_version AS \"protocol_version!\",\n miniblocks.fee_account_address AS \"fee_account_address!\",\n miniblocks.l2_da_validator_address AS \"l2_da_validator_address!\",\n miniblocks.pubdata_type AS \"pubdata_type!\",\n l1_batches.pubdata_limit\n FROM\n miniblocks\n INNER JOIN l1_batch ON true\n INNER JOIN l1_batches ON l1_batches.number = l1_batch.number\n WHERE\n miniblocks.number BETWEEN $1 AND $2\n ", + "query": "\n WITH l1_batch AS (\n SELECT COALESCE(\n (\n SELECT miniblocks.l1_batch_number\n FROM miniblocks\n WHERE number = $1\n ),\n (\n SELECT\n (MAX(number) + 1)\n FROM\n l1_batches\n WHERE\n is_sealed\n ),\n (\n SELECT\n MAX(l1_batch_number) + 1\n FROM\n snapshot_recovery\n )\n ) AS number\n )\n \n SELECT\n miniblocks.number,\n l1_batch.number AS \"l1_batch_number!\",\n (miniblocks.l1_tx_count + miniblocks.l2_tx_count) AS \"tx_count!\",\n miniblocks.timestamp,\n miniblocks.l1_gas_price,\n miniblocks.l2_fair_gas_price,\n miniblocks.fair_pubdata_price,\n miniblocks.bootloader_code_hash,\n miniblocks.default_aa_code_hash,\n miniblocks.evm_emulator_code_hash,\n miniblocks.virtual_blocks,\n miniblocks.hash,\n miniblocks.protocol_version AS \"protocol_version!\",\n miniblocks.fee_account_address AS \"fee_account_address!\",\n miniblocks.l2_da_validator_address,\n miniblocks.l2_da_commitment_scheme,\n miniblocks.pubdata_type AS \"pubdata_type!\",\n l1_batches.pubdata_limit\n FROM\n miniblocks\n INNER JOIN l1_batch ON true\n INNER JOIN l1_batches ON l1_batches.number = l1_batch.number\n WHERE\n miniblocks.number BETWEEN $1 AND $2\n ", "describe": { "columns": [ { @@ -75,16 +75,21 @@ }, { "ordinal": 14, - "name": "l2_da_validator_address!", + "name": "l2_da_validator_address", "type_info": "Bytea" }, { "ordinal": 15, + "name": "l2_da_commitment_scheme", + "type_info": "Int4" + }, + { + "ordinal": 16, "name": "pubdata_type!", "type_info": "Text" }, { - "ordinal": 16, + "ordinal": 17, "name": "pubdata_limit", "type_info": "Int8" } @@ -110,10 +115,11 @@ false, true, false, - false, + true, + true, false, true ] }, - "hash": "75a1e12ee9ac51f322f8862b6edc963cedc30668f5fcc35c0ea7638a58146f2f" + "hash": "6299e20b3582b152972d6bce74fc3704016fc50a2838cd2394456908434bbd27" } diff --git a/core/lib/dal/.sqlx/query-7bcc94d0fdc105bb7f307bfe23c3f732f3682e2e1cd1751f88b95eff295359bd.json b/core/lib/dal/.sqlx/query-7bcc94d0fdc105bb7f307bfe23c3f732f3682e2e1cd1751f88b95eff295359bd.json deleted file mode 100644 index 34a0038b8b4d..000000000000 --- a/core/lib/dal/.sqlx/query-7bcc94d0fdc105bb7f307bfe23c3f732f3682e2e1cd1751f88b95eff295359bd.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "\n SELECT\n l2_da_validator_address, pubdata_type\n FROM\n miniblocks\n WHERE\n l1_batch_number = $1\n ORDER BY number ASC\n LIMIT 1\n ", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "l2_da_validator_address", - "type_info": "Bytea" - }, - { - "ordinal": 1, - "name": "pubdata_type", - "type_info": "Text" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - false, - false - ] - }, - "hash": "7bcc94d0fdc105bb7f307bfe23c3f732f3682e2e1cd1751f88b95eff295359bd" -} diff --git a/core/lib/dal/.sqlx/query-1c7ada2cffaedeadea6fb403331b85911e0a6993b5aee0e4375e05935dfdc0eb.json b/core/lib/dal/.sqlx/query-865e4b842522293dbcf921b4acba869d0e21344ac2c9f68b824789e14c9399bf.json similarity index 87% rename from core/lib/dal/.sqlx/query-1c7ada2cffaedeadea6fb403331b85911e0a6993b5aee0e4375e05935dfdc0eb.json rename to core/lib/dal/.sqlx/query-865e4b842522293dbcf921b4acba869d0e21344ac2c9f68b824789e14c9399bf.json index 7107fb320a9b..248ce383a2b0 100644 --- a/core/lib/dal/.sqlx/query-1c7ada2cffaedeadea6fb403331b85911e0a6993b5aee0e4375e05935dfdc0eb.json +++ b/core/lib/dal/.sqlx/query-865e4b842522293dbcf921b4acba869d0e21344ac2c9f68b824789e14c9399bf.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address AS \"fee_account_address!\",\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom,\n l2_da_validator_address,\n pubdata_type,\n rolling_txs_hash\n FROM\n miniblocks\n WHERE\n number = $1\n ", + "query": "\n SELECT\n number,\n timestamp,\n hash,\n l1_tx_count,\n l2_tx_count,\n fee_account_address AS \"fee_account_address!\",\n base_fee_per_gas,\n l1_gas_price,\n l2_fair_gas_price,\n gas_per_pubdata_limit,\n bootloader_code_hash,\n default_aa_code_hash,\n evm_emulator_code_hash,\n protocol_version,\n virtual_blocks,\n fair_pubdata_price,\n gas_limit,\n logs_bloom,\n l2_da_validator_address,\n rolling_txs_hash,\n l2_da_commitment_scheme,\n pubdata_type\n FROM\n miniblocks\n WHERE\n number = $1\n ", "describe": { "columns": [ { @@ -100,13 +100,18 @@ }, { "ordinal": 19, - "name": "pubdata_type", - "type_info": "Text" + "name": "rolling_txs_hash", + "type_info": "Bytea" }, { "ordinal": 20, - "name": "rolling_txs_hash", - "type_info": "Bytea" + "name": "l2_da_commitment_scheme", + "type_info": "Int4" + }, + { + "ordinal": 21, + "name": "pubdata_type", + "type_info": "Text" } ], "parameters": { @@ -133,10 +138,11 @@ true, true, true, - false, - false, - true + true, + true, + true, + false ] }, - "hash": "1c7ada2cffaedeadea6fb403331b85911e0a6993b5aee0e4375e05935dfdc0eb" + "hash": "865e4b842522293dbcf921b4acba869d0e21344ac2c9f68b824789e14c9399bf" } diff --git a/core/lib/dal/Cargo.toml b/core/lib/dal/Cargo.toml index 83903456645c..bdddefd804d5 100644 --- a/core/lib/dal/Cargo.toml +++ b/core/lib/dal/Cargo.toml @@ -40,16 +40,16 @@ prost.workspace = true rand.workspace = true tokio = { workspace = true, features = ["full"] } sqlx = { workspace = true, features = [ - "runtime-tokio", - "tls-native-tls", - "macros", - "postgres", - "bigdecimal", - "rust_decimal", - "chrono", - "json", - "migrate", - "ipnetwork", + "runtime-tokio", + "tls-native-tls", + "macros", + "postgres", + "bigdecimal", + "rust_decimal", + "chrono", + "json", + "migrate", + "ipnetwork", ] } serde = { workspace = true, features = ["derive"] } serde_json.workspace = true diff --git a/core/lib/dal/migrations/20250715114324_da-commitment-schema.down.sql b/core/lib/dal/migrations/20250715114324_da-commitment-schema.down.sql new file mode 100644 index 000000000000..33e9725c6be5 --- /dev/null +++ b/core/lib/dal/migrations/20250715114324_da-commitment-schema.down.sql @@ -0,0 +1 @@ +ALTER TABLE miniblocks DROP COLUMN l2_da_commitment_scheme; diff --git a/core/lib/dal/migrations/20250715114324_da-commitment-schema.up.sql b/core/lib/dal/migrations/20250715114324_da-commitment-schema.up.sql new file mode 100644 index 000000000000..7d3fd1f9c285 --- /dev/null +++ b/core/lib/dal/migrations/20250715114324_da-commitment-schema.up.sql @@ -0,0 +1,3 @@ +ALTER TABLE miniblocks ADD COLUMN IF NOT EXISTS l2_da_commitment_scheme INTEGER; +ALTER TABLE miniblocks ALTER COLUMN l2_da_validator_address DROP NOT NULL; + diff --git a/core/lib/dal/src/blocks_dal.rs b/core/lib/dal/src/blocks_dal.rs index 1a37e6f1843f..60cacc5f5900 100644 --- a/core/lib/dal/src/blocks_dal.rs +++ b/core/lib/dal/src/blocks_dal.rs @@ -1366,6 +1366,7 @@ impl BlocksDal<'_, '_> { l2_da_validator_address, pubdata_type, rolling_txs_hash, + l2_da_commitment_scheme, created_at, updated_at ) @@ -1392,6 +1393,7 @@ impl BlocksDal<'_, '_> { $19, $20, $21, + $22, NOW(), NOW() ) @@ -1426,12 +1428,18 @@ impl BlocksDal<'_, '_> { l2_block_header.logs_bloom.as_bytes(), l2_block_header .pubdata_params - .l2_da_validator_address - .as_bytes(), - l2_block_header.pubdata_params.pubdata_type.to_string(), + .pubdata_validator() + .l2_da_validator() + .map(|addr| addr.as_bytes().to_vec()), + l2_block_header.pubdata_params.pubdata_type().to_string(), l2_block_header .rolling_txs_hash - .map(|h| h.as_bytes().to_vec()) + .map(|h| h.as_bytes().to_vec()), + l2_block_header + .pubdata_params + .pubdata_validator() + .l2_da_commitment_scheme() + .map(|l2_da_commitment_scheme| l2_da_commitment_scheme as i32) ); instrumentation.with(query).execute(self.storage).await?; @@ -1462,6 +1470,7 @@ impl BlocksDal<'_, '_> { gas_limit, logs_bloom, l2_da_validator_address, + l2_da_commitment_scheme, pubdata_type, rolling_txs_hash FROM @@ -1506,8 +1515,9 @@ impl BlocksDal<'_, '_> { gas_limit, logs_bloom, l2_da_validator_address, - pubdata_type, - rolling_txs_hash + rolling_txs_hash, + l2_da_commitment_scheme, + pubdata_type FROM miniblocks WHERE @@ -1939,7 +1949,7 @@ impl BlocksDal<'_, '_> { number FROM l1_batches - WHERE "#, + WHERE "#, _, r#" ORDER BY number DESC @@ -2756,7 +2766,9 @@ impl BlocksDal<'_, '_> { StoragePubdataParams, r#" SELECT - l2_da_validator_address, pubdata_type + l2_da_validator_address, + l2_da_commitment_scheme, + pubdata_type FROM miniblocks WHERE diff --git a/core/lib/dal/src/consensus/conv.rs b/core/lib/dal/src/consensus/conv.rs index 68e7f05dfc86..2bf276735268 100644 --- a/core/lib/dal/src/consensus/conv.rs +++ b/core/lib/dal/src/consensus/conv.rs @@ -5,7 +5,7 @@ use zksync_consensus_roles::node; use zksync_protobuf::{read_optional_repr, read_required, required, ProtoFmt, ProtoRepr}; use zksync_types::{ abi, - commitment::{PubdataParams, PubdataType}, + commitment::{L2DACommitmentScheme, PubdataParams, PubdataType}, ethabi, fee::Fee, h256_to_u256, @@ -112,21 +112,41 @@ impl ProtoRepr for proto::PubdataParams { type Type = PubdataParams; fn read(&self) -> anyhow::Result { - Ok(Self::Type { - l2_da_validator_address: required(&self.l2_da_validator_address) - .and_then(|a| parse_h160(a)) - .context("l2_da_validator_address")?, - pubdata_type: required(&self.pubdata_info) + Self::Type::new( + ( + self.l2_da_validator_address + .as_ref() + .map(|a| parse_h160(a)) + .transpose() + .context("l2_da_validator_address")?, + self.l2_da_commitment_scheme + .as_ref() + .map(|a| L2DACommitmentScheme::try_from(*a as u8)) + .transpose() + .unwrap(), + ) + .try_into()?, + required(&self.pubdata_info) .and_then(|x| Ok(proto::PubdataType::try_from(*x)?)) .context("pubdata_type")? .parse(), - }) + ) } fn build(this: &Self::Type) -> Self { Self { - l2_da_validator_address: Some(this.l2_da_validator_address.as_bytes().into()), - pubdata_info: Some(this.pubdata_type as i32), + l2_da_validator_address: this + .pubdata_validator() + .l2_da_validator() + .as_ref() + .map(|addr| addr.as_bytes().to_vec()), + l2_da_commitment_scheme: this + .pubdata_validator() + .l2_da_commitment_scheme() + .as_ref() + .map(|addr| *addr as u32), + + pubdata_info: Some(this.pubdata_type() as i32), } } } @@ -219,17 +239,17 @@ impl ProtoFmt for Payload { last_in_batch: *required(&r.last_in_batch).context("last_in_batch")?, pubdata_params: read_optional_repr(&r.pubdata_params) .context("pubdata_params")? - .unwrap_or_default(), + .unwrap_or_else(PubdataParams::pre_gateway), pubdata_limit: r.pubdata_limit, interop_roots, }; if this.protocol_version.is_pre_gateway() { anyhow::ensure!( - this.pubdata_params == PubdataParams::default(), + this.pubdata_params == PubdataParams::pre_gateway(), "pubdata_params should have the default value in pre-gateway protocol_version" ); } - if this.pubdata_params == PubdataParams::default() { + if this.pubdata_params == PubdataParams::pre_gateway() { anyhow::ensure!( r.pubdata_params.is_none(), "default pubdata_params should be encoded as None" @@ -252,7 +272,7 @@ impl ProtoFmt for Payload { fn build(&self) -> Self::Proto { if self.protocol_version.is_pre_gateway() { assert_eq!( - self.pubdata_params, PubdataParams::default(), + self.pubdata_params, PubdataParams::pre_gateway(), "BUG DETECTED: pubdata_params should have the default value in pre-gateway protocol_version" ); } @@ -281,7 +301,7 @@ impl ProtoFmt for Payload { transactions: vec![], transactions_v25: vec![], last_in_batch: Some(self.last_in_batch), - pubdata_params: if self.pubdata_params == PubdataParams::default() { + pubdata_params: if self.pubdata_params == PubdataParams::pre_gateway() { None } else { Some(ProtoRepr::build(&self.pubdata_params)) diff --git a/core/lib/dal/src/consensus/proto/mod.proto b/core/lib/dal/src/consensus/proto/mod.proto index 1df2ec91b5be..a37068a45949 100644 --- a/core/lib/dal/src/consensus/proto/mod.proto +++ b/core/lib/dal/src/consensus/proto/mod.proto @@ -45,7 +45,8 @@ message Payload { } message PubdataParams { - optional bytes l2_da_validator_address = 1; // required; H160 + optional bytes l2_da_validator_address = 1; // optional; H160 + optional uint32 l2_da_commitment_scheme = 4; // optional optional PubdataType pubdata_info = 3; // required reserved 2; reserved "pubdata_type"; } diff --git a/core/lib/dal/src/consensus/tests.rs b/core/lib/dal/src/consensus/tests.rs index aa46692da893..1c3e15c55302 100644 --- a/core/lib/dal/src/consensus/tests.rs +++ b/core/lib/dal/src/consensus/tests.rs @@ -9,7 +9,7 @@ use zksync_protobuf::{ }; use zksync_test_contracts::Account; use zksync_types::{ - commitment::{PubdataParams, PubdataType}, + commitment::{L2DACommitmentScheme, L2PubdataValidator, PubdataParams, PubdataType}, web3::Bytes, Execute, ExecuteTransactionCommon, L1BatchNumber, L2ChainId, ProtocolVersionId, Transaction, }; @@ -54,10 +54,16 @@ fn payload(rng: &mut impl Rng, protocol_version: ProtocolVersionId) -> Payload { .collect(), last_in_batch: rng.gen(), pubdata_params: if protocol_version.is_pre_gateway() { - PubdataParams::default() + PubdataParams::pre_gateway() } else { - PubdataParams { - pubdata_type: match rng.gen_range(0..2) { + PubdataParams::new( + L2PubdataValidator::CommitmentScheme(match rng.gen_range(1..3) { + 1 => L2DACommitmentScheme::BlobsAndPubdataKeccak256, + 2 => L2DACommitmentScheme::EmptyNoDA, + 3 => L2DACommitmentScheme::PubdataKeccak256, + _ => unreachable!("Invalid L2DACommitmentScheme value"), + }), + match rng.gen_range(0..4) { 0 => PubdataType::Rollup, 1 => PubdataType::NoDA, 2 => PubdataType::Avail, @@ -65,8 +71,8 @@ fn payload(rng: &mut impl Rng, protocol_version: ProtocolVersionId) -> Payload { 4 => PubdataType::Eigen, _ => PubdataType::ObjectStore, }, - l2_da_validator_address: rng.gen(), - } + ) + .unwrap() }, pubdata_limit: if protocol_version < ProtocolVersionId::Version29 { None diff --git a/core/lib/dal/src/models/storage_block.rs b/core/lib/dal/src/models/storage_block.rs index 8829c55f4098..76b71fc88504 100644 --- a/core/lib/dal/src/models/storage_block.rs +++ b/core/lib/dal/src/models/storage_block.rs @@ -7,7 +7,9 @@ use zksync_contracts::BaseSystemContractsHashes; use zksync_types::{ api, block::{CommonL1BatchHeader, L1BatchHeader, L2BlockHeader, UnsealedL1BatchHeader}, - commitment::{L1BatchMetaParameters, L1BatchMetadata, PubdataParams, PubdataType}, + commitment::{ + L1BatchMetaParameters, L1BatchMetadata, L2DACommitmentScheme, PubdataParams, PubdataType, + }, eth_sender::EthTxFinalityStatus, fee_model::BatchFeeInput, l2_to_l1_log::{L2ToL1Log, SystemL2ToL1Log, UserL2ToL1Log}, @@ -636,7 +638,8 @@ pub(crate) struct StorageL2BlockHeader { /// This value should bound the maximal amount of gas that can be spent by transactions in the miniblock. pub gas_limit: Option, pub logs_bloom: Option>, - pub l2_da_validator_address: Vec, + pub l2_da_validator_address: Option>, + pub l2_da_commitment_scheme: Option, pub pubdata_type: String, pub rolling_txs_hash: Option>, } @@ -673,10 +676,19 @@ impl From for L2BlockHeader { .logs_bloom .map(|b| Bloom::from_slice(&b)) .unwrap_or_default(), - pubdata_params: PubdataParams { - l2_da_validator_address: Address::from_slice(&row.l2_da_validator_address), - pubdata_type: PubdataType::from_str(&row.pubdata_type).unwrap(), - }, + pubdata_params: PubdataParams::new( + ( + row.l2_da_validator_address.map(|a| Address::from_slice(&a)), + row.l2_da_commitment_scheme + .map(|a| L2DACommitmentScheme::try_from(a as u8)) + .transpose() + .expect("wrong l2_da_commitment_scheme"), + ) + .try_into() + .unwrap(), + PubdataType::from_str(&row.pubdata_type).unwrap(), + ) + .expect("invalid pubdata params"), rolling_txs_hash: row.rolling_txs_hash.as_deref().map(H256::from_slice), } } @@ -701,15 +713,24 @@ impl ResolvedL1BatchForL2Block { } pub(crate) struct StoragePubdataParams { - pub l2_da_validator_address: Vec, + pub l2_da_validator_address: Option>, + pub l2_da_commitment_scheme: Option, pub pubdata_type: String, } impl From for PubdataParams { fn from(row: StoragePubdataParams) -> Self { - Self { - l2_da_validator_address: Address::from_slice(&row.l2_da_validator_address), - pubdata_type: PubdataType::from_str(&row.pubdata_type).unwrap(), - } + Self::new( + ( + row.l2_da_validator_address.map(|a| Address::from_slice(&a)), + row.l2_da_commitment_scheme.map(|a| { + L2DACommitmentScheme::try_from(a as u8).expect("wrong l2_da_commitment_scheme") + }), + ) + .try_into() + .unwrap(), + PubdataType::from_str(&row.pubdata_type).unwrap(), + ) + .unwrap() } } diff --git a/core/lib/dal/src/models/storage_sync.rs b/core/lib/dal/src/models/storage_sync.rs index f89478a5d382..1c13909ad105 100644 --- a/core/lib/dal/src/models/storage_sync.rs +++ b/core/lib/dal/src/models/storage_sync.rs @@ -4,7 +4,7 @@ use zksync_contracts::BaseSystemContractsHashes; use zksync_db_connection::error::SqlxContext; use zksync_types::{ api::en, - commitment::{PubdataParams, PubdataType}, + commitment::{L2DACommitmentScheme, PubdataParams, PubdataType}, parse_h160, parse_h256, parse_h256_opt, Address, InteropRoot, L1BatchNumber, L2BlockNumber, ProtocolVersionId, Transaction, H256, }; @@ -29,7 +29,8 @@ pub(crate) struct StorageSyncBlock { pub protocol_version: i32, pub virtual_blocks: i64, pub hash: Vec, - pub l2_da_validator_address: Vec, + pub l2_da_validator_address: Option>, + pub l2_da_commitment_scheme: Option, pub pubdata_type: String, pub pubdata_limit: Option, } @@ -100,12 +101,25 @@ impl SyncBlock { .decode_column("virtual_blocks")?, hash: parse_h256(&block.hash).decode_column("hash")?, protocol_version: parse_protocol_version(block.protocol_version)?, - pubdata_params: PubdataParams { - pubdata_type: PubdataType::from_str(&block.pubdata_type) - .decode_column("Invalid pubdata type")?, - l2_da_validator_address: parse_h160(&block.l2_da_validator_address) - .decode_column("l2_da_validator_address")?, - }, + pubdata_params: PubdataParams::new( + ( + block + .l2_da_validator_address + .map(|a| parse_h160(&a).decode_column("l2_da_validator_address")) + .transpose()?, + block + .l2_da_commitment_scheme + .map(|a| { + L2DACommitmentScheme::try_from(a as u8) + .decode_column("l2_da_commitment_scheme") + }) + .transpose()?, + ) + .try_into() + .decode_column("Invalid pubdata validator")?, + PubdataType::from_str(&block.pubdata_type).decode_column("Invalid pubdata type")?, + ) + .decode_column("pubdata_params")?, pubdata_limit: block.pubdata_limit.map(|l| l as u64), interop_roots, }) diff --git a/core/lib/dal/src/sync_dal.rs b/core/lib/dal/src/sync_dal.rs index 675e3bfebced..49778d88797a 100644 --- a/core/lib/dal/src/sync_dal.rs +++ b/core/lib/dal/src/sync_dal.rs @@ -65,7 +65,8 @@ impl SyncDal<'_, '_> { miniblocks.hash, miniblocks.protocol_version AS "protocol_version!", miniblocks.fee_account_address AS "fee_account_address!", - miniblocks.l2_da_validator_address AS "l2_da_validator_address!", + miniblocks.l2_da_validator_address, + miniblocks.l2_da_commitment_scheme, miniblocks.pubdata_type AS "pubdata_type!", l1_batches.pubdata_limit FROM diff --git a/core/lib/dal/src/tests/mod.rs b/core/lib/dal/src/tests/mod.rs index 7f99279869a6..c6819dd57851 100644 --- a/core/lib/dal/src/tests/mod.rs +++ b/core/lib/dal/src/tests/mod.rs @@ -54,7 +54,7 @@ pub(crate) fn create_l2_block_header(number: u32) -> L2BlockHeader { virtual_blocks: 1, gas_limit: 0, logs_bloom: Default::default(), - pubdata_params: PubdataParams::default(), + pubdata_params: PubdataParams::genesis(), rolling_txs_hash: Some(H256::zero()), } } diff --git a/core/lib/eth_client/src/contracts_loader.rs b/core/lib/eth_client/src/contracts_loader.rs index 90bdf2ac455f..2d46f679fcfb 100644 --- a/core/lib/eth_client/src/contracts_loader.rs +++ b/core/lib/eth_client/src/contracts_loader.rs @@ -1,11 +1,14 @@ use zksync_config::configs::contracts::{ - chain::ChainContracts, ecosystem::EcosystemCommonContracts, SettlementLayerSpecificContracts, + chain::{ChainContracts, ZkChainOnChainConfig}, + ecosystem::EcosystemCommonContracts, + SettlementLayerSpecificContracts, }; use zksync_contracts::{ bridgehub_contract, getters_facet_contract, hyperchain_contract, state_transition_manager_contract, }; use zksync_types::{ + commitment::L2DACommitmentScheme, ethabi::{Contract, Token}, protocol_version::ProtocolSemanticVersion, settlement::SettlementLayer, @@ -177,3 +180,33 @@ pub async fn is_settlement_layer( .await?; Ok(is_settlement_layer) } + +pub async fn get_zk_chain_on_chain_params( + eth_client: &dyn EthInterface, + diamond_proxy_addr: Address, +) -> Result { + let abi = getters_facet_contract(); + let l2_da_commitment_scheme: Token = CallFunctionArgs::new("getDAValidatorPair", ()) + .for_contract(diamond_proxy_addr, &abi) + .call(eth_client) + .await?; + let l2_da_commitment_scheme = + if let Token::Tuple(l2_da_commitment_scheme) = l2_da_commitment_scheme { + if let [Token::Address(_), Token::Uint(l2_da_commitment_scheme)] = + l2_da_commitment_scheme.as_slice() + { + Some( + L2DACommitmentScheme::try_from(l2_da_commitment_scheme.as_u64() as u8) + .expect("wrong l2_da_commitment_scheme"), + ) + } else { + None + } + } else { + None + }; + + Ok(ZkChainOnChainConfig { + l2_da_commitment_scheme, + }) +} diff --git a/core/lib/multivm/src/pubdata_builders/full_builder.rs b/core/lib/multivm/src/pubdata_builders/full_builder.rs index 40a260314a0a..96e10a1a3120 100644 --- a/core/lib/multivm/src/pubdata_builders/full_builder.rs +++ b/core/lib/multivm/src/pubdata_builders/full_builder.rs @@ -1,4 +1,5 @@ use zksync_types::{ + commitment::{L2DACommitmentScheme, L2PubdataValidator}, ethabi, ethabi::{ParamType, Token}, l2_to_l1_log::l2_to_l1_logs_tree_size, @@ -13,18 +14,24 @@ use crate::interface::pubdata::{PubdataBuilder, PubdataInput}; #[derive(Debug, Clone, Copy)] pub struct FullPubdataBuilder { - pub l2_da_validator: Address, + l2_pubdata_validator: L2PubdataValidator, } impl FullPubdataBuilder { - pub fn new(l2_da_validator: Address) -> Self { - Self { l2_da_validator } + pub fn new(l2_pubdata_validator: L2PubdataValidator) -> Self { + Self { + l2_pubdata_validator, + } } } impl PubdataBuilder for FullPubdataBuilder { - fn l2_da_validator(&self) -> Address { - self.l2_da_validator + fn l2_da_validator(&self) -> Option
{ + self.l2_pubdata_validator.l2_da_validator() + } + + fn l2_da_commitment_scheme(&self) -> Option { + self.l2_pubdata_validator.l2_da_commitment_scheme() } fn l1_messenger_operator_input( diff --git a/core/lib/multivm/src/pubdata_builders/hashed_builder.rs b/core/lib/multivm/src/pubdata_builders/hashed_builder.rs index d779e0172d5a..93956158b4ac 100644 --- a/core/lib/multivm/src/pubdata_builders/hashed_builder.rs +++ b/core/lib/multivm/src/pubdata_builders/hashed_builder.rs @@ -1,4 +1,5 @@ use zksync_types::{ + commitment::{L2DACommitmentScheme, L2PubdataValidator}, ethabi, ethabi::{ParamType, Token}, l2_to_l1_log::l2_to_l1_logs_tree_size, @@ -14,18 +15,30 @@ use crate::interface::pubdata::{PubdataBuilder, PubdataInput}; #[derive(Debug, Clone, Copy)] pub struct HashedPubdataBuilder { - pub l2_da_validator: Address, + l2_pubdata_validator: L2PubdataValidator, } impl HashedPubdataBuilder { - pub fn new(l2_da_validator: Address) -> Self { - Self { l2_da_validator } + pub fn new(l2_pubdata_validator: L2PubdataValidator) -> Self { + Self { + l2_pubdata_validator, + } } } impl PubdataBuilder for HashedPubdataBuilder { - fn l2_da_validator(&self) -> Address { - self.l2_da_validator + fn l2_da_validator(&self) -> Option
{ + match self.l2_pubdata_validator { + L2PubdataValidator::Address(addr) => Some(addr), + L2PubdataValidator::CommitmentScheme(_) => None, + } + } + + fn l2_da_commitment_scheme(&self) -> Option { + match self.l2_pubdata_validator { + L2PubdataValidator::Address(_) => None, + L2PubdataValidator::CommitmentScheme(scheme) => Some(scheme), + } } fn l1_messenger_operator_input( diff --git a/core/lib/multivm/src/pubdata_builders/mod.rs b/core/lib/multivm/src/pubdata_builders/mod.rs index 624387882d70..112cb7185c27 100644 --- a/core/lib/multivm/src/pubdata_builders/mod.rs +++ b/core/lib/multivm/src/pubdata_builders/mod.rs @@ -20,17 +20,15 @@ pub fn pubdata_params_to_builder( protocol_version: ProtocolVersionId, ) -> Rc { if protocol_version.is_pre_gateway() { - return Rc::new(FullPubdataBuilder::new(params.l2_da_validator_address)); + return Rc::new(FullPubdataBuilder::new(params.pubdata_validator())); } - match params.pubdata_type { - PubdataType::NoDA => Rc::new(HashedPubdataBuilder::new(params.l2_da_validator_address)), + match params.pubdata_type() { + PubdataType::NoDA => Rc::new(HashedPubdataBuilder::new(params.pubdata_validator())), PubdataType::Rollup | PubdataType::Avail | PubdataType::Celestia | PubdataType::Eigen - | PubdataType::ObjectStore => { - Rc::new(FullPubdataBuilder::new(params.l2_da_validator_address)) - } + | PubdataType::ObjectStore => Rc::new(FullPubdataBuilder::new(params.pubdata_validator())), } } diff --git a/core/lib/multivm/src/pubdata_builders/tests.rs b/core/lib/multivm/src/pubdata_builders/tests.rs index a3894110c8a1..86a141af3140 100644 --- a/core/lib/multivm/src/pubdata_builders/tests.rs +++ b/core/lib/multivm/src/pubdata_builders/tests.rs @@ -1,6 +1,8 @@ use zksync_types::{ - u256_to_h256, writes::StateDiffRecord, Address, ProtocolVersionId, - ACCOUNT_CODE_STORAGE_ADDRESS, BOOTLOADER_ADDRESS, + commitment::{L2DACommitmentScheme, L2PubdataValidator}, + u256_to_h256, + writes::StateDiffRecord, + Address, ProtocolVersionId, ACCOUNT_CODE_STORAGE_ADDRESS, BOOTLOADER_ADDRESS, }; use super::{full_builder::FullPubdataBuilder, hashed_builder::HashedPubdataBuilder}; @@ -57,7 +59,8 @@ fn mock_input() -> PubdataInput { fn test_full_pubdata_building() { let input = mock_input(); - let full_pubdata_builder = FullPubdataBuilder::new(Address::zero()); + let full_pubdata_builder = + FullPubdataBuilder::new(L2PubdataValidator::Address(Address::zero())); let actual = full_pubdata_builder.l1_messenger_operator_input(&input, ProtocolVersionId::Version24); @@ -94,13 +97,27 @@ fn test_full_pubdata_building() { expected, "mismatch for `settlement_layer_pubdata` (post gateway)" ); + + let full_pubdata_builder = FullPubdataBuilder::new(L2PubdataValidator::CommitmentScheme( + L2DACommitmentScheme::BlobsAndPubdataKeccak256, + )); + + let actual = + full_pubdata_builder.settlement_layer_pubdata(&input, ProtocolVersionId::Version30); + let expected = "00000001000000000000000000000000000000000000000000008001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000100000004deadbeef0000000100000060bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0100002a040001000000000000000000000000000000000000000000000000000000000000007e090e0000000c0901"; + assert_eq!( + &hex::encode(actual), + expected, + "mismatch for `BlobsAndPubdataKeccak256` (post gateway)" + ); } #[test] fn test_hashed_pubdata_building() { let input = mock_input(); - let hashed_pubdata_builder = HashedPubdataBuilder::new(Address::zero()); + let hashed_pubdata_builder = + HashedPubdataBuilder::new(L2PubdataValidator::Address(Address::zero())); let actual = hashed_pubdata_builder.l1_messenger_operator_input(&input, ProtocolVersionId::Version27); @@ -119,4 +136,16 @@ fn test_hashed_pubdata_building() { expected, "mismatch for `settlement_layer_pubdata`" ); + + let hashed_pubdata_builder = HashedPubdataBuilder::new(L2PubdataValidator::CommitmentScheme( + L2DACommitmentScheme::BlobsAndPubdataKeccak256, + )); + let actual = + hashed_pubdata_builder.settlement_layer_pubdata(&input, ProtocolVersionId::Version30); + let expected = "fa96e2436e6fb4d668f5a06681a7c53fcb199b2747ee624ee52a13e85aac5f1e"; + assert_eq!( + &hex::encode(actual), + expected, + "mismatch for `settlement_layer_pubdata`" + ); } diff --git a/core/lib/multivm/src/versions/testonly/l1_messenger.rs b/core/lib/multivm/src/versions/testonly/l1_messenger.rs index 1b9a60bf5042..9c8e1629e71f 100644 --- a/core/lib/multivm/src/versions/testonly/l1_messenger.rs +++ b/core/lib/multivm/src/versions/testonly/l1_messenger.rs @@ -1,14 +1,16 @@ use std::rc::Rc; use ethabi::Token; -use zksync_contracts::{l1_messenger_contract, l2_rollup_da_validator_bytecode}; +use zksync_contracts::l1_messenger_contract; use zksync_test_contracts::{TestContract, TxType}; use zksync_types::{ - address_to_h256, u256_to_h256, web3::keccak256, Address, Execute, ProtocolVersionId, - L1_MESSENGER_ADDRESS, U256, + commitment::{L2DACommitmentScheme, L2PubdataValidator}, + u256_to_h256, + web3::keccak256, + Address, Execute, ProtocolVersionId, H256, L1_MESSENGER_ADDRESS, U256, }; -use super::{ContractToDeploy, TestedVm, VmTesterBuilder}; +use super::{TestedVm, VmTesterBuilder}; use crate::{ interface::{ pubdata::{PubdataBuilder, PubdataInput}, @@ -41,8 +43,8 @@ fn compose_header_for_l1_commit_rollup(input: PubdataInput) -> Vec { let uncompressed_state_diffs = encoded_uncompressed_state_diffs(&input); let uncompressed_state_diffs_hash = keccak256(&uncompressed_state_diffs); full_header.extend(uncompressed_state_diffs_hash); + let pubdata_builder = FullPubdataBuilder::new(L2PubdataValidator::Address(Address::zero())); - let pubdata_builder = FullPubdataBuilder::new(Address::zero()); let mut full_pubdata = pubdata_builder.settlement_layer_pubdata(&input, ProtocolVersionId::latest()); let full_pubdata_hash = keccak256(&full_pubdata); @@ -71,16 +73,9 @@ fn compose_header_for_l1_commit_rollup(input: PubdataInput) -> Vec { pub(crate) fn test_rollup_da_output_hash_match() { // In this test, we check whether the L2 DA output hash is as expected. - let l2_da_validator_address = Address::repeat_byte(0x12); let mut vm = VmTesterBuilder::new() .with_execution_mode(TxExecutionMode::VerifyExecute) .with_rich_accounts(1) - .with_custom_contracts(vec![ContractToDeploy { - bytecode: l2_rollup_da_validator_bytecode(), - address: l2_da_validator_address, - is_account: false, - is_funded: false, - }]) .build::(); let account = &mut vm.rich_accounts[0]; @@ -115,7 +110,9 @@ pub(crate) fn test_rollup_da_output_hash_match() { let result = vm.vm.execute(InspectExecutionMode::OneTx); assert!(!result.result.is_failed(), "Transaction wasn't successful"); - let pubdata_builder = FullPubdataBuilder::new(l2_da_validator_address); + let pubdata_builder = FullPubdataBuilder::new(L2PubdataValidator::CommitmentScheme( + L2DACommitmentScheme::BlobsAndPubdataKeccak256, + )); let batch_result = vm.vm.finish_batch(Rc::new(pubdata_builder)); assert!( !batch_result.block_tip_execution_result.result.is_failed(), @@ -147,7 +144,7 @@ pub(crate) fn test_rollup_da_output_hash_match() { keccak256(&expected_header).into() ); - let l2_used_da_validator_address = batch_result + let da_commitment_scheme = batch_result .block_tip_execution_result .logs .system_l2_to_l1_logs @@ -158,7 +155,7 @@ pub(crate) fn test_rollup_da_output_hash_match() { .value; assert_eq!( - l2_used_da_validator_address, - address_to_h256(&l2_da_validator_address) + da_commitment_scheme, + H256::from_low_u64_be(L2DACommitmentScheme::BlobsAndPubdataKeccak256 as u64) ); } diff --git a/core/lib/multivm/src/versions/testonly/mod.rs b/core/lib/multivm/src/versions/testonly/mod.rs index fed544bdb622..f4efa6961727 100644 --- a/core/lib/multivm/src/versions/testonly/mod.rs +++ b/core/lib/multivm/src/versions/testonly/mod.rs @@ -21,6 +21,7 @@ use zksync_system_constants::{ use zksync_types::{ block::L2BlockHasher, bytecode::{pad_evm_bytecode, BytecodeHash}, + commitment::{L2DACommitmentScheme, L2PubdataValidator}, fee_model::BatchFeeInput, get_code_key, get_evm_code_hash_key, get_is_account_key, get_known_code_key, h256_to_address, h256_to_u256, u256_to_h256, @@ -200,7 +201,9 @@ pub(super) fn default_l1_batch(number: L1BatchNumber) -> L1BatchEnv { } pub(super) fn default_pubdata_builder() -> Rc { - Rc::new(FullPubdataBuilder::new(Address::zero())) + Rc::new(FullPubdataBuilder::new( + L2PubdataValidator::CommitmentScheme(L2DACommitmentScheme::BlobsAndPubdataKeccak256), + )) } pub(super) fn make_address_rich(storage: &mut InMemoryStorage, address: Address) { diff --git a/core/lib/multivm/src/versions/testonly/refunds.rs b/core/lib/multivm/src/versions/testonly/refunds.rs index 9ef439809dbf..028627a5ef9e 100644 --- a/core/lib/multivm/src/versions/testonly/refunds.rs +++ b/core/lib/multivm/src/versions/testonly/refunds.rs @@ -137,7 +137,7 @@ pub(crate) fn test_predetermined_refunded_gas() { current_state_without_predefined_refunds.user_l2_to_l1_logs ); - assert_eq!( + assert_ne!( current_state_with_changed_predefined_refunds.system_logs, current_state_without_predefined_refunds.system_logs ); diff --git a/core/lib/multivm/src/versions/testonly/upgrade.rs b/core/lib/multivm/src/versions/testonly/upgrade.rs index 323abf280c7f..16762d198abb 100644 --- a/core/lib/multivm/src/versions/testonly/upgrade.rs +++ b/core/lib/multivm/src/versions/testonly/upgrade.rs @@ -1,4 +1,4 @@ -use zksync_contracts::{deployer_contract, load_sys_contract}; +use zksync_contracts::{deployer_contract, load_l1_zk_contract}; use zksync_test_contracts::{TestContract, TxType}; use zksync_types::{ bytecode::BytecodeHash, @@ -318,5 +318,5 @@ fn get_complex_upgrade_tx( } fn get_complex_upgrader_abi() -> Contract { - load_sys_contract("ComplexUpgrader") + load_l1_zk_contract("L2ComplexUpgrader") } diff --git a/core/lib/multivm/src/versions/vm_latest/bootloader/utils.rs b/core/lib/multivm/src/versions/vm_latest/bootloader/utils.rs index 1800d1af8e8d..ec1ee999f94c 100644 --- a/core/lib/multivm/src/versions/vm_latest/bootloader/utils.rs +++ b/core/lib/multivm/src/versions/vm_latest/bootloader/utils.rs @@ -220,13 +220,29 @@ fn bootloader_memory_input( input: &PubdataInput, protocol_version: ProtocolVersionId, ) -> Vec { - let l2_da_validator_address = pubdata_builder.l2_da_validator(); let operator_input = pubdata_builder.l1_messenger_operator_input(input, protocol_version); - ethabi::encode(&[ - ethabi::Token::Address(l2_da_validator_address), - ethabi::Token::Bytes(operator_input), - ]) + if protocol_version.is_pre_medium_interop() { + ethabi::encode(&[ + ethabi::Token::Address( + pubdata_builder + .l2_da_validator() + .expect("For pre-interop, L2 DA validator must be set"), + ), + ethabi::Token::Bytes(operator_input), + ]) + } else { + ethabi::encode(&[ + ethabi::Token::Uint( + (pubdata_builder + .l2_da_commitment_scheme() + .expect("For post-interop, L2 DA commitment scheme must be set") + as u64) + .into(), + ), + ethabi::Token::Bytes(operator_input), + ]) + } } pub(crate) fn apply_pubdata_to_memory( diff --git a/core/lib/settlement_layer_data/src/node.rs b/core/lib/settlement_layer_data/src/node.rs index 558c697143b9..8788f17de7b1 100644 --- a/core/lib/settlement_layer_data/src/node.rs +++ b/core/lib/settlement_layer_data/src/node.rs @@ -1,6 +1,6 @@ use anyhow::Context; use zksync_basic_types::{ - commitment::L1BatchCommitmentMode, + commitment::{L1BatchCommitmentMode, L2DACommitmentScheme}, settlement::{SettlementLayer, WorkingSettlementLayer}, url::SensitiveUrl, Address, L2ChainId, @@ -18,7 +18,8 @@ use zksync_dal::{ }; use zksync_eth_client::{ contracts_loader::{ - get_server_notifier_addr, get_settlement_layer_from_l1, load_settlement_layer_contracts, + get_server_notifier_addr, get_settlement_layer_from_l1, get_zk_chain_on_chain_params, + load_settlement_layer_contracts, }, node::SenderConfigResource, EthInterface, @@ -27,7 +28,7 @@ use zksync_node_framework::{FromContext, IntoContext, WiringError, WiringLayer}; use zksync_shared_resources::{ contracts::{ L1ChainContractsResource, L1EcosystemContractsResource, L2ContractsResource, - SettlementLayerContractsResource, + SettlementLayerContractsResource, ZkChainOnChainConfigResource, }, DummyVerifierResource, L1BatchCommitmentModeResource, PubdataSendingModeResource, }; @@ -54,6 +55,7 @@ pub struct MainNodeConfig { pub eth_sender_config: SenderConfig, pub l1_batch_commit_data_generator_mode: L1BatchCommitmentMode, pub dummy_verifier: bool, + pub config_l2_da_commitment_scheme: L2DACommitmentScheme, } /// Wiring layer for [`SettlementLayerData`]. @@ -84,6 +86,7 @@ pub struct Output { l1_ecosystem_contracts: L1EcosystemContractsResource, l1_contracts: L1ChainContractsResource, l2_contracts: L2ContractsResource, + zk_chain_on_chain_config: Option, eth_sender_config: Option, pubdata_sending_mode: Option, dummy_verifier: DummyVerifierResource, @@ -162,15 +165,23 @@ impl WiringLayer for SettlementLayerData { } }; - let mut sl_chain_contracts = match &sl_client { - SettlementLayerClient::L1(_) => sl_l1_contracts.clone(), + let (mut sl_chain_contracts, mut zkchain_on_chain_config) = match &sl_client { + SettlementLayerClient::L1(client) => { + let zkchain_on_chain_config = get_zk_chain_on_chain_params( + client, + sl_l1_contracts.chain_contracts_config.diamond_proxy_addr, + ) + .await + .context("Chain config loading error")?; + (sl_l1_contracts.clone(), zkchain_on_chain_config) + } SettlementLayerClient::Gateway(client) => { let l2_multicall3 = client .get_l2_multicall3() .await .context("Failed to fecth multicall3")?; - load_settlement_layer_contracts( + let contracts = load_settlement_layer_contracts( client, L2_BRIDGEHUB_ADDRESS, self.config.l2_chain_id, @@ -179,7 +190,15 @@ impl WiringLayer for SettlementLayerData { .await? // This unwrap is safe we have already verified it. Or it is supposed to be gateway, // but no gateway has been deployed - .unwrap() + .unwrap(); + + let zkchain_on_chain_config = get_zk_chain_on_chain_params( + client, + contracts.chain_contracts_config.diamond_proxy_addr, + ) + .await + .context("Chain config loading error")?; + (contracts, zkchain_on_chain_config) } }; @@ -197,6 +216,16 @@ impl WiringLayer for SettlementLayerData { final_settlement_mode.settlement_layer(), ); + if let Some(l2_da_commitment_scheme) = zkchain_on_chain_config.l2_da_commitment_scheme { + if l2_da_commitment_scheme == L2DACommitmentScheme::None { + tracing::warn!("L2 DA commitment scheme from on-chain config is None, falling back to the config value"); + zkchain_on_chain_config.l2_da_commitment_scheme = + Some(self.config.config_l2_da_commitment_scheme) + } else if l2_da_commitment_scheme != self.config.config_l2_da_commitment_scheme { + tracing::warn!("L2 DA commitment scheme from on-chain config ({l2_da_commitment_scheme:?}) does not match the config value ({:?}), using the on-chain value", self.config.config_l2_da_commitment_scheme); + } + } + Ok(Output { initial_settlement_mode: SettlementModeResource::new(final_settlement_mode.clone()), contracts: SettlementLayerContractsResource(sl_chain_contracts), @@ -210,6 +239,7 @@ impl WiringLayer for SettlementLayerData { eth_sender_config: Some(SenderConfigResource(eth_sender_config)), sl_client, gateway_client: l2_eth_client.map(GatewayClientResource), + zk_chain_on_chain_config: Some(ZkChainOnChainConfigResource(zkchain_on_chain_config)), l1_batch_commit_data_generator_mode: L1BatchCommitmentModeResource( self.config.l1_batch_commit_data_generator_mode, ), @@ -352,9 +382,10 @@ impl WiringLayer for SettlementLayerData { ), l2_contracts: L2ContractsResource(remote_config.l2_contracts()), gateway_client: l2_eth_client.map(GatewayClientResource), + dummy_verifier: DummyVerifierResource(remote_config.dummy_verifier), eth_sender_config: None, pubdata_sending_mode: None, - dummy_verifier: DummyVerifierResource(remote_config.dummy_verifier), + zk_chain_on_chain_config: None, l1_batch_commit_data_generator_mode: L1BatchCommitmentModeResource( remote_config.l1_batch_commit_data_generator_mode, ), diff --git a/core/lib/shared_resources/src/contracts.rs b/core/lib/shared_resources/src/contracts.rs index f3e6b23bd02f..3c9992ded1cc 100644 --- a/core/lib/shared_resources/src/contracts.rs +++ b/core/lib/shared_resources/src/contracts.rs @@ -1,7 +1,9 @@ //! Contract info injected into various ZKsync components. use zksync_config::configs::contracts::{ - chain::L2Contracts, ecosystem::L1SpecificContracts, SettlementLayerSpecificContracts, + chain::{L2Contracts, ZkChainOnChainConfig}, + ecosystem::L1SpecificContracts, + SettlementLayerSpecificContracts, }; use zksync_node_framework::Resource; @@ -40,3 +42,12 @@ impl Resource for L1ChainContractsResource { "common/l1_contracts".into() } } + +#[derive(Debug, Clone)] +pub struct ZkChainOnChainConfigResource(pub ZkChainOnChainConfig); + +impl Resource for ZkChainOnChainConfigResource { + fn name() -> String { + "common/zk_chain_on_chain_config".into() + } +} diff --git a/core/lib/snapshots_applier/src/tests/utils.rs b/core/lib/snapshots_applier/src/tests/utils.rs index e43c762c63c0..5c989ad76585 100644 --- a/core/lib/snapshots_applier/src/tests/utils.rs +++ b/core/lib/snapshots_applier/src/tests/utils.rs @@ -13,6 +13,7 @@ use zksync_types::{ api, block::L2BlockHeader, bytecode::{BytecodeHash, BytecodeMarker}, + commitment::PubdataParams, snapshots::{ SnapshotFactoryDependencies, SnapshotFactoryDependency, SnapshotHeader, SnapshotRecoveryStatus, SnapshotStorageLog, SnapshotStorageLogsChunk, @@ -183,7 +184,7 @@ pub(super) fn mock_l2_block_header(l2_block_number: L2BlockNumber) -> L2BlockHea virtual_blocks: 0, gas_limit: 0, logs_bloom: Default::default(), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), rolling_txs_hash: Some(H256::zero()), } } diff --git a/core/lib/state/src/test_utils.rs b/core/lib/state/src/test_utils.rs index 3f9d8e09c415..6e3412560276 100644 --- a/core/lib/state/src/test_utils.rs +++ b/core/lib/state/src/test_utils.rs @@ -5,6 +5,7 @@ use std::ops; use zksync_dal::{pruning_dal::HardPruningStats, Connection, ConnectionPool, Core, CoreDal}; use zksync_types::{ block::{L1BatchHeader, L2BlockHeader}, + commitment::PubdataParams, snapshots::SnapshotRecoveryStatus, AccountTreeId, Address, L1BatchNumber, L2BlockNumber, ProtocolVersion, ProtocolVersionId, StorageKey, StorageLog, H256, @@ -78,7 +79,7 @@ pub(crate) async fn create_l2_block( virtual_blocks: 0, gas_limit: 0, logs_bloom: Default::default(), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), rolling_txs_hash: Some(H256::zero()), }; diff --git a/core/lib/tee_verifier/src/lib.rs b/core/lib/tee_verifier/src/lib.rs index 63a4a4665320..17b517a4a8ad 100644 --- a/core/lib/tee_verifier/src/lib.rs +++ b/core/lib/tee_verifier/src/lib.rs @@ -310,6 +310,7 @@ mod tests { use zksync_multivm::interface::{L1BatchEnv, SystemEnv, TxExecutionMode}; use zksync_prover_interface::inputs::VMRunWitnessInputData; use zksync_tee_prover_interface::inputs::TeeVerifierInput; + use zksync_types::commitment::{L2DACommitmentScheme, L2PubdataValidator}; use super::*; @@ -364,7 +365,13 @@ mod tests { default_validation_computational_gas_limit: 0, chain_id: Default::default(), }, - Default::default(), + PubdataParams::new( + L2PubdataValidator::CommitmentScheme( + L2DACommitmentScheme::BlobsAndPubdataKeccak256, + ), + Default::default(), + ) + .unwrap(), ); let tvi = TeeVerifierInput::new(tvi); let serialized = bincode::serialize(&tvi).expect("Failed to serialize TeeVerifierInput."); diff --git a/core/lib/types/src/abi.rs b/core/lib/types/src/abi.rs index 3b5d6ce9526f..5cfc50b54070 100644 --- a/core/lib/types/src/abi.rs +++ b/core/lib/types/src/abi.rs @@ -491,7 +491,24 @@ impl Transaction { .iter() .map(|b| BytecodeHash::for_bytecode(b).value_u256()) .collect(); - anyhow::ensure!(tx.factory_deps == factory_deps_hashes); + + // Check factory dependencies with detailed error output + if tx.factory_deps != factory_deps_hashes { + anyhow::bail!( + "ABI Factory dependencies mismatch!\n\ + Transaction expects {} deps: {:?}\n\ + But provided {} deps: {:?}\n\ + Count match: {}\n\ + Content match: {}", + tx.factory_deps.len(), + tx.factory_deps, + factory_deps_hashes.len(), + factory_deps_hashes, + tx.factory_deps.len() == factory_deps_hashes.len(), + tx.factory_deps == factory_deps_hashes + ); + } + tx.hash() } Self::L2(raw) => TransactionRequest::from_bytes_unverified(raw)?.1, diff --git a/core/lib/types/src/commitment/mod.rs b/core/lib/types/src/commitment/mod.rs index 45a4181fcec5..5bd08c02ad2c 100644 --- a/core/lib/types/src/commitment/mod.rs +++ b/core/lib/types/src/commitment/mod.rs @@ -10,7 +10,9 @@ use std::{collections::HashMap, convert::TryFrom}; use serde::{Deserialize, Serialize}; use thiserror::Error; -pub use zksync_basic_types::commitment::{L1BatchCommitmentMode, PubdataParams, PubdataType}; +pub use zksync_basic_types::commitment::{ + L1BatchCommitmentMode, L2DACommitmentScheme, L2PubdataValidator, PubdataParams, PubdataType, +}; use zksync_contracts::BaseSystemContractsHashes; use zksync_crypto_primitives::hasher::{keccak::KeccakHasher, Hasher}; use zksync_mini_merkle_tree::MiniMerkleTree; diff --git a/core/lib/types/src/lib.rs b/core/lib/types/src/lib.rs index cbe2775e04c9..e905e0fcb4f9 100644 --- a/core/lib/types/src/lib.rs +++ b/core/lib/types/src/lib.rs @@ -359,7 +359,23 @@ impl Transaction { .iter() .map(|b| BytecodeHash::for_bytecode(b).value_u256()) .collect(); - anyhow::ensure!(tx.factory_deps == factory_deps_hashes); + + // Check factory dependencies with detailed error output + if tx.factory_deps != factory_deps_hashes { + anyhow::bail!( + "Factory dependencies mismatch!\n\ + Transaction expects {} deps: {:?}\n\ + But provided {} deps: {:?}\n\ + Count match: {}\n\ + Content match: {}", + tx.factory_deps.len(), + tx.factory_deps, + factory_deps_hashes.len(), + factory_deps_hashes, + tx.factory_deps.len() == factory_deps_hashes.len(), + tx.factory_deps == factory_deps_hashes + ); + } for item in &tx.reserved[2..] { anyhow::ensure!(item == &U256::zero()); } diff --git a/core/lib/types/src/system_contracts.rs b/core/lib/types/src/system_contracts.rs index bd763e3ba87f..6f877c959540 100644 --- a/core/lib/types/src/system_contracts.rs +++ b/core/lib/types/src/system_contracts.rs @@ -4,12 +4,14 @@ use zksync_basic_types::{AccountTreeId, Address, U256}; use zksync_contracts::{read_sys_contract_bytecode, ContractLanguage, SystemContractsRepo}; use zksync_system_constants::{ BOOTLOADER_UTILITIES_ADDRESS, CODE_ORACLE_ADDRESS, COMPRESSOR_ADDRESS, CREATE2_FACTORY_ADDRESS, - EVENT_WRITER_ADDRESS, EVM_GAS_MANAGER_ADDRESS, EVM_HASHES_STORAGE_ADDRESS, - EVM_PREDEPLOYS_MANAGER_ADDRESS, IDENTITY_ADDRESS, L2_ASSET_ROUTER_ADDRESS, - L2_BRIDGEHUB_ADDRESS, L2_CHAIN_ASSET_HANDLER_ADDRESS, L2_GENESIS_UPGRADE_ADDRESS, - L2_INTEROP_ROOT_STORAGE_ADDRESS, L2_MESSAGE_ROOT_ADDRESS, L2_MESSAGE_VERIFICATION_ADDRESS, - L2_NATIVE_TOKEN_VAULT_ADDRESS, L2_WRAPPED_BASE_TOKEN_IMPL, MODEXP_PRECOMPILE_ADDRESS, - PUBDATA_CHUNK_PUBLISHER_ADDRESS, SECP256R1_VERIFY_PRECOMPILE_ADDRESS, SLOAD_CONTRACT_ADDRESS, + DUMMY_ADDRESS_1, DUMMY_ADDRESS_2, DUMMY_ADDRESS_3, DUMMY_ADDRESS_4, EVENT_WRITER_ADDRESS, + EVM_GAS_MANAGER_ADDRESS, EVM_HASHES_STORAGE_ADDRESS, EVM_PREDEPLOYS_MANAGER_ADDRESS, + IDENTITY_ADDRESS, L2_ASSET_ROUTER_ADDRESS, L2_BRIDGEHUB_ADDRESS, + L2_CHAIN_ASSET_HANDLER_ADDRESS, L2_GENESIS_UPGRADE_ADDRESS, L2_INTEROP_ROOT_STORAGE_ADDRESS, + L2_MESSAGE_ROOT_ADDRESS, L2_MESSAGE_VERIFICATION_ADDRESS, L2_NATIVE_TOKEN_VAULT_ADDRESS, + L2_WRAPPED_BASE_TOKEN_IMPL, MODEXP_PRECOMPILE_ADDRESS, PUBDATA_CHUNK_PUBLISHER_ADDRESS, + SECP256R1_VERIFY_PRECOMPILE_ADDRESS, SLOAD_CONTRACT_ADDRESS, + UPGRADEABLE_BEACON_DEPLOYER_ADDRESS, }; use crate::{ @@ -29,7 +31,7 @@ use crate::{ pub const TX_NONCE_INCREMENT: U256 = U256([1, 0, 0, 0]); // 1 pub const DEPLOYMENT_NONCE_INCREMENT: U256 = U256([0, 0, 1, 0]); // 2^128 -static SYSTEM_CONTRACT_LIST: [(&str, &str, Address, ContractLanguage); 40] = [ +static SYSTEM_CONTRACT_LIST: [(&str, &str, Address, ContractLanguage); 45] = [ ( "", "AccountCodeStorage", @@ -158,8 +160,8 @@ static SYSTEM_CONTRACT_LIST: [(&str, &str, Address, ContractLanguage); 40] = [ ), ("", "Compressor", COMPRESSOR_ADDRESS, ContractLanguage::Sol), ( - "", - "ComplexUpgrader", + "../../l1-contracts/zkout/", + "L2ComplexUpgrader", COMPLEX_UPGRADER_ADDRESS, ContractLanguage::Sol, ), @@ -203,20 +205,20 @@ static SYSTEM_CONTRACT_LIST: [(&str, &str, Address, ContractLanguage); 40] = [ ContractLanguage::Sol, ), ( - "", + "../../l1-contracts/zkout/", "L2GenesisUpgrade", L2_GENESIS_UPGRADE_ADDRESS, ContractLanguage::Sol, ), ( "../../l1-contracts/zkout/", - "Bridgehub", + "L2Bridgehub", L2_BRIDGEHUB_ADDRESS, ContractLanguage::Sol, ), ( "../../l1-contracts/zkout/", - "MessageRoot", + "L2MessageRoot", L2_MESSAGE_ROOT_ADDRESS, ContractLanguage::Sol, ), @@ -258,10 +260,41 @@ static SYSTEM_CONTRACT_LIST: [(&str, &str, Address, ContractLanguage); 40] = [ ), ( "../../l1-contracts/zkout/", - "ChainAssetHandler", + "L2ChainAssetHandler", L2_CHAIN_ASSET_HANDLER_ADDRESS, ContractLanguage::Sol, ), + ( + "../../l1-contracts/zkout/", + "UpgradeableBeaconDeployer", + UPGRADEABLE_BEACON_DEPLOYER_ADDRESS, + ContractLanguage::Sol, + ), + // todo FIXME, deploy normally instead using DUMMY_ADDRESS and deploying on genesis + ( + "../../l1-contracts/zkout/", + "TransparentUpgradeableProxy", + DUMMY_ADDRESS_1, + ContractLanguage::Sol, + ), + ( + "../../l1-contracts/zkout/", + "BridgedStandardERC20", + DUMMY_ADDRESS_2, + ContractLanguage::Sol, + ), + ( + "../../l1-contracts/zkout/", + "UpgradeableBeacon", + DUMMY_ADDRESS_3, + ContractLanguage::Sol, + ), + ( + "../../l1-contracts/zkout/", + "BeaconProxy", + DUMMY_ADDRESS_4, + ContractLanguage::Sol, + ), ]; /// Gets default set of system contracts, based on Cargo workspace location. diff --git a/core/lib/vm_executor/src/oneshot/contracts.rs b/core/lib/vm_executor/src/oneshot/contracts.rs index bd33cc955597..4d116320be55 100644 --- a/core/lib/vm_executor/src/oneshot/contracts.rs +++ b/core/lib/vm_executor/src/oneshot/contracts.rs @@ -113,8 +113,9 @@ impl MultiVmBaseSystemContracts { ProtocolVersionId::Version27 => &self.vm_evm_emulator, ProtocolVersionId::Version28 => &self.vm_precompiles, ProtocolVersionId::Version29 => &self.interop, - // Speculative base system contracts for the next protocol version to be used in the upgrade integration test etc. ProtocolVersionId::Version30 => &self.interop, + // Speculative base system contracts for the next protocol version to be used in the upgrade integration test etc. + ProtocolVersionId::Version31 => &self.interop, }; base.clone() } diff --git a/core/lib/vm_interface/src/pubdata/mod.rs b/core/lib/vm_interface/src/pubdata/mod.rs index 54d7ebf5e1b0..2d1a31fe1fa8 100644 --- a/core/lib/vm_interface/src/pubdata/mod.rs +++ b/core/lib/vm_interface/src/pubdata/mod.rs @@ -1,5 +1,6 @@ use zksync_types::{ - l2_to_l1_log::L2ToL1Log, writes::StateDiffRecord, Address, ProtocolVersionId, H256, U256, + commitment::L2DACommitmentScheme, l2_to_l1_log::L2ToL1Log, writes::StateDiffRecord, Address, + ProtocolVersionId, H256, U256, }; /// Corresponds to the following solidity event: @@ -74,7 +75,8 @@ pub struct PubdataInput { /// Trait that encapsulates pubdata building logic. It is implemented for rollup and validium cases. /// If chains needs custom pubdata format then another implementation should be added. pub trait PubdataBuilder: std::fmt::Debug { - fn l2_da_validator(&self) -> Address; + fn l2_da_validator(&self) -> Option
; + fn l2_da_commitment_scheme(&self) -> Option; fn l1_messenger_operator_input( &self, diff --git a/core/node/api_server/src/testonly.rs b/core/node/api_server/src/testonly.rs index f01a960234b1..17a482079697 100644 --- a/core/node/api_server/src/testonly.rs +++ b/core/node/api_server/src/testonly.rs @@ -675,7 +675,7 @@ pub(crate) async fn persist_block_with_transactions( executor_storage, l1_batch_env, system_env, - PubdataParams::default(), + PubdataParams::genesis(), ); let mut all_events = vec![]; diff --git a/core/node/block_reverter/src/tests.rs b/core/node/block_reverter/src/tests.rs index 1e2b657817e9..6f24790a6328 100644 --- a/core/node/block_reverter/src/tests.rs +++ b/core/node/block_reverter/src/tests.rs @@ -12,6 +12,7 @@ use zksync_object_store::{Bucket, MockObjectStore}; use zksync_state::interface::ReadStorage; use zksync_types::{ block::{L1BatchHeader, L2BlockHeader}, + commitment::PubdataParams, fee_model::BatchFeeInput, snapshots::SnapshotVersion, AccountTreeId, L2BlockNumber, ProtocolVersion, ProtocolVersionId, StorageKey, StorageLog, @@ -68,7 +69,7 @@ async fn setup_storage(storage: &mut Connection<'_, Core>, storage_logs: &[Stora virtual_blocks: 1, gas_limit: 0, logs_bloom: Default::default(), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), rolling_txs_hash: Some(H256::zero()), }; storage diff --git a/core/node/commitment_generator/src/lib.rs b/core/node/commitment_generator/src/lib.rs index dbdab4cea370..518392d6f81c 100644 --- a/core/node/commitment_generator/src/lib.rs +++ b/core/node/commitment_generator/src/lib.rs @@ -362,7 +362,7 @@ impl CommitmentGenerator { .get_l1_batch_pubdata_params(l1_batch_number) .await? .context("pubdata params are missing for L1 batch")?; - Ok(pubdata_params.pubdata_type.into()) + Ok(pubdata_params.pubdata_type().into()) } #[tracing::instrument(skip(self))] diff --git a/core/node/consensus/src/testonly.rs b/core/node/consensus/src/testonly.rs index ef7ed7384870..720222e05aec 100644 --- a/core/node/consensus/src/testonly.rs +++ b/core/node/consensus/src/testonly.rs @@ -39,6 +39,7 @@ use zksync_state_keeper::{ }; use zksync_test_contracts::Account; use zksync_types::{ + commitment::PubdataParams, ethabi, fee_model::{BatchFeeInput, L1PeggedBatchFeeModelInput}, settlement::SettlementLayer, @@ -261,7 +262,7 @@ impl StateKeeper { l1_gas_price: 100, }), first_l2_block: L2BlockParams::new(self.last_timestamp * 1000), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), pubdata_limit: (self.protocol_version >= ProtocolVersionId::Version29) .then_some(100_000), }, diff --git a/core/node/consistency_checker/src/lib.rs b/core/node/consistency_checker/src/lib.rs index 651296af7268..9c03a604acaf 100644 --- a/core/node/consistency_checker/src/lib.rs +++ b/core/node/consistency_checker/src/lib.rs @@ -200,7 +200,7 @@ impl LocalL1BatchCommitData { let this = Self { l1_batch, commit_tx_hash, - commitment_mode: pubdata_params.pubdata_type.into(), + commitment_mode: pubdata_params.pubdata_type().into(), commit_chain_id, }; let metadata = &this.l1_batch.metadata; diff --git a/core/node/consistency_checker/src/tests/mod.rs b/core/node/consistency_checker/src/tests/mod.rs index 98ca1477c8fb..35abd3e3bbba 100644 --- a/core/node/consistency_checker/src/tests/mod.rs +++ b/core/node/consistency_checker/src/tests/mod.rs @@ -18,7 +18,7 @@ use zksync_node_test_utils::{ use zksync_types::{ aggregated_operations::L1BatchAggregatedActionType, block::L2BlockHeader, - commitment::{L1BatchWithMetadata, PubdataType}, + commitment::{L1BatchWithMetadata, PubdataParams, PubdataType}, eth_sender::EthTxFinalityStatus, protocol_version::ProtocolSemanticVersion, web3::Log, @@ -350,7 +350,7 @@ impl SaveAction<'_> { .await .unwrap(); - if L1BatchCommitmentMode::from(l2_block.pubdata_params.pubdata_type) + if L1BatchCommitmentMode::from(l2_block.pubdata_params.pubdata_type()) == L1BatchCommitmentMode::Validium { storage @@ -557,7 +557,11 @@ async fn normal_checker_function( .map(|batch| { let mut l2_block = create_l2_block(batch_to_block_number(batch)); if commitment_mode == L1BatchCommitmentMode::Validium { - l2_block.pubdata_params.pubdata_type = PubdataType::NoDA; + l2_block.pubdata_params = PubdataParams::new( + l2_block.pubdata_params.pubdata_validator(), + PubdataType::NoDA, + ) + .unwrap() } (batch.to_owned(), l2_block) }) @@ -655,7 +659,11 @@ async fn checker_processes_pre_boojum_batches( .map(|batch| { let mut l2_block = create_l2_block(batch_to_block_number(batch)); if commitment_mode == L1BatchCommitmentMode::Validium { - l2_block.pubdata_params.pubdata_type = PubdataType::NoDA; + l2_block.pubdata_params = PubdataParams::new( + l2_block.pubdata_params.pubdata_validator(), + PubdataType::NoDA, + ) + .unwrap() } (batch.to_owned(), l2_block) }) @@ -703,7 +711,11 @@ async fn checker_functions_after_snapshot_recovery( let l1_batch = create_l1_batch_with_metadata(99); let mut l2_block = create_l2_block(batch_to_block_number(&l1_batch)); if commitment_mode == L1BatchCommitmentMode::Validium { - l2_block.pubdata_params.pubdata_type = PubdataType::NoDA; + l2_block.pubdata_params = PubdataParams::new( + l2_block.pubdata_params.pubdata_validator(), + PubdataType::NoDA, + ) + .unwrap() } let commit_tx_input_data = @@ -922,7 +934,11 @@ async fn checker_detects_incorrect_tx_data( let l1_batch = create_l1_batch_with_metadata(if snapshot_recovery { 99 } else { 1 }); let mut l2_block = create_l2_block(batch_to_block_number(&l1_batch)); if commitment_mode == L1BatchCommitmentMode::Validium { - l2_block.pubdata_params.pubdata_type = PubdataType::NoDA; + l2_block.pubdata_params = PubdataParams::new( + l2_block.pubdata_params.pubdata_validator(), + PubdataType::NoDA, + ) + .unwrap() } let client = create_mock_ethereum(); diff --git a/core/node/eth_sender/src/aggregator.rs b/core/node/eth_sender/src/aggregator.rs index 74bcd3fb6f84..ebbfc660207b 100644 --- a/core/node/eth_sender/src/aggregator.rs +++ b/core/node/eth_sender/src/aggregator.rs @@ -611,7 +611,7 @@ impl Aggregator { match pubdata_params { Some(p) => { - let commitment_mode = L1BatchCommitmentMode::from(p.pubdata_type); + let commitment_mode = L1BatchCommitmentMode::from(p.pubdata_type()); if commitment_mode == L1BatchCommitmentMode::Rollup && self.pubdata_da == PubdataSendingMode::Custom diff --git a/core/node/eth_sender/src/eth_tx_aggregator.rs b/core/node/eth_sender/src/eth_tx_aggregator.rs index 9c12b9ed6fc7..9fe22c243796 100644 --- a/core/node/eth_sender/src/eth_tx_aggregator.rs +++ b/core/node/eth_sender/src/eth_tx_aggregator.rs @@ -22,7 +22,7 @@ use zksync_types::{ aggregated_operations::{ AggregatedActionType, L1BatchAggregatedActionType, L2BlockAggregatedActionType, }, - commitment::{L1BatchWithMetadata, SerializeCommitment}, + commitment::{L1BatchWithMetadata, L2DACommitmentScheme, SerializeCommitment}, eth_sender::{ EthTx, EthTxBlobSidecar, EthTxBlobSidecarV1, EthTxBlobSidecarV2, EthTxFinalityStatus, SidecarBlobV1, @@ -51,8 +51,9 @@ use crate::{ #[derive(Debug)] pub struct DAValidatorPair { - l1_validator: Address, - l2_validator: Address, + pub l1_validator: Address, + pub l2_da_commitment_scheme: Option, + pub l2_validator: Option
, } #[derive(Debug, PartialEq, Eq)] @@ -479,6 +480,7 @@ impl EthTxAggregator { let da_validator_pair = Self::parse_da_validator_pair( call_results_iterator.next().unwrap(), "contract DA validator pair", + chain_protocol_version_id, )?; let execution_delay = Self::parse_execution_delay( @@ -561,6 +563,7 @@ impl EthTxAggregator { fn parse_da_validator_pair( data: Token, name: &'static str, + protocol_version_id: ProtocolVersionId, ) -> Result { // In the first word of the output, the L1 DA validator is present const L1_DA_VALIDATOR_OFFSET: usize = 12; @@ -577,11 +580,34 @@ impl EthTxAggregator { ))); } - let pair = DAValidatorPair { - l1_validator: Address::from_slice(&multicall_data[L1_DA_VALIDATOR_OFFSET..32]), - l2_validator: Address::from_slice(&multicall_data[L2_DA_VALIDATOR_OFFSET..64]), - }; + let l1_validator = Address::from_slice(&multicall_data[L1_DA_VALIDATOR_OFFSET..32]); + let pair = if protocol_version_id.is_pre_medium_interop() { + DAValidatorPair { + l1_validator, + l2_validator: Some(Address::from_slice( + &multicall_data[L2_DA_VALIDATOR_OFFSET..64], + )), + l2_da_commitment_scheme: None, + } + } else { + DAValidatorPair { + l1_validator, + l2_da_commitment_scheme: Some( + L2DACommitmentScheme::try_from( + U256::from_big_endian(&multicall_data[L2_DA_VALIDATOR_OFFSET..64]).as_u64() + as u8, + ) + .map_err(|_| { + EthSenderError::Parse(Web3ContractError::InvalidOutputType(format!( + "Invalid L2DACommitmentScheme value in {name}: {:?}", + multicall_data + ))) + })?, + ), + l2_validator: None, + } + }; Ok(pair) } @@ -757,10 +783,19 @@ impl EthTxAggregator { precommit_restriction: commit_restriction, }; - // When migrating to or from gateway, the DA validator pair will be reset and so the chain should not - // send new commit transactions before the da validator pair is updated - if da_validator_pair.l1_validator == Address::zero() - || da_validator_pair.l2_validator == Address::zero() + // // When migrating to or from gateway, the DA validator pair will be reset and so the chain should not + // // send new commit transactions before the da validator pair is updated + + if chain_protocol_version_id.is_pre_medium_interop() { + if da_validator_pair.l1_validator == Address::zero() + || da_validator_pair.l2_validator == Some(Address::zero()) + { + let reason = Some("DA validator pair is not set on the settlement layer"); + op_restrictions.commit_restriction = reason; + // We only disable commit operations, the rest are allowed + } + } else if da_validator_pair.l1_validator == Address::zero() + || da_validator_pair.l2_da_commitment_scheme == Some(L2DACommitmentScheme::None) { let reason = Some("DA validator pair is not set on the settlement layer"); op_restrictions.commit_restriction = reason; diff --git a/core/node/eth_sender/src/tester.rs b/core/node/eth_sender/src/tester.rs index ded48f8e6c91..aef593df8a0e 100644 --- a/core/node/eth_sender/src/tester.rs +++ b/core/node/eth_sender/src/tester.rs @@ -18,6 +18,7 @@ use zksync_types::{ block::L1BatchHeader, commitment::L1BatchCommitmentMode, eth_sender::{EthTx, EthTxFinalityStatus, L1BlockNumbers}, + protocol_version::{ProtocolSemanticVersion, VersionPatch}, pubdata_da::PubdataSendingMode, settlement::SettlementLayer, Address, L1BatchNumber, ProtocolVersion, ProtocolVersionId, SLChainId, H256, @@ -156,6 +157,27 @@ impl EthSenderTester { aggregator_operate_4844_mode: bool, commitment_mode: L1BatchCommitmentMode, settlement_layer: SettlementLayer, + ) -> Self { + Self::new_with_protocol_version( + connection_pool, + history, + non_ordering_confirmations, + aggregator_operate_4844_mode, + commitment_mode, + settlement_layer, + ProtocolVersionId::latest(), + ) + .await + } + + pub async fn new_with_protocol_version( + connection_pool: ConnectionPool, + history: Vec, + non_ordering_confirmations: bool, + aggregator_operate_4844_mode: bool, + commitment_mode: L1BatchCommitmentMode, + settlement_layer: SettlementLayer, + protocol_version_id: ProtocolVersionId, ) -> Self { let eth_sender_config = EthConfig::for_tests(); let contracts_config = ContractsConfig::for_tests(); @@ -195,7 +217,7 @@ impl EthSenderTester { .with_non_ordering_confirmation(non_ordering_confirmations) .with_call_handler(move |call, _| { assert_eq!(call.to, Some(contracts_config.l1.multicall3_addr)); - crate::tests::mock_multicall_response(call) + crate::tests::mock_multicall_response(call, protocol_version_id) }) .build(); gateway.advance_block_number(Self::WAIT_CONFIRMATIONS, EthTxFinalityStatus::Finalized); @@ -216,7 +238,7 @@ impl EthSenderTester { .with_non_ordering_confirmation(non_ordering_confirmations) .with_call_handler(move |call, _| { assert_eq!(call.to, Some(contracts_config.l1.multicall3_addr)); - crate::tests::mock_multicall_response(call) + crate::tests::mock_multicall_response(call, protocol_version_id) }) .build(); l2_gateway.advance_block_number(Self::WAIT_CONFIRMATIONS, EthTxFinalityStatus::Finalized); @@ -236,7 +258,7 @@ impl EthSenderTester { .with_non_ordering_confirmation(non_ordering_confirmations) .with_call_handler(move |call, _| { assert_eq!(call.to, Some(contracts_config.l1.multicall3_addr)); - crate::tests::mock_multicall_response(call) + crate::tests::mock_multicall_response(call, protocol_version_id) }) .with_sender(Address::from_str("0xb10b000000000000000000000000000000000000").unwrap()) .build(); @@ -310,9 +332,16 @@ impl EthSenderTester { let connection_pool_clone = connection_pool.clone(); let mut storage = connection_pool_clone.connection().await.unwrap(); + let protocol_version = ProtocolVersion { + version: ProtocolSemanticVersion { + minor: protocol_version_id, + patch: VersionPatch(0), + }, + ..Default::default() + }; storage .protocol_versions_dal() - .save_protocol_version_with_tx(&ProtocolVersion::default()) + .save_protocol_version_with_tx(&protocol_version) .await .unwrap(); diff --git a/core/node/eth_sender/src/tests.rs b/core/node/eth_sender/src/tests.rs index bea15fe03c9b..68ff7750a290 100644 --- a/core/node/eth_sender/src/tests.rs +++ b/core/node/eth_sender/src/tests.rs @@ -19,6 +19,7 @@ use zksync_types::{ block::L1BatchHeader, commitment::{ L1BatchCommitmentMode, L1BatchMetaParameters, L1BatchMetadata, L1BatchWithMetadata, + L2DACommitmentScheme, }, eth_sender::EthTxFinalityStatus, ethabi::{self, Token}, @@ -57,7 +58,10 @@ const COMMITMENT_MODES: [L1BatchCommitmentMode; 2] = [ L1BatchCommitmentMode::Validium, ]; -pub(crate) fn mock_multicall_response(call: &web3::CallRequest) -> Token { +pub(crate) fn mock_multicall_response( + call: &web3::CallRequest, + protocol_version_id: ProtocolVersionId, +) -> Token { let functions = ZkSyncFunctions::default(); let evm_emulator_getter_signature = functions .get_evm_emulator_bytecode_hash @@ -129,9 +133,7 @@ pub(crate) fn mock_multicall_response(call: &web3::CallRequest) -> Token { } selector if selector == functions.get_protocol_version.short_signature() => { assert!(call.target == STATE_TRANSITION_CONTRACT_ADDRESS); - H256::from_low_u64_be(ProtocolVersionId::default() as u64) - .0 - .to_vec() + H256::from_low_u64_be(protocol_version_id as u64).0.to_vec() } selector if selector == validator_timelock_short_selector => { assert!(call.target == STATE_TRANSITION_MANAGER_CONTRACT_ADDRESS); @@ -139,15 +141,25 @@ pub(crate) fn mock_multicall_response(call: &web3::CallRequest) -> Token { } selector if selector == prototol_version_short_selector => { assert!(call.target == STATE_TRANSITION_MANAGER_CONTRACT_ADDRESS); - H256::from_low_u64_be(ProtocolVersionId::default() as u64) - .0 - .to_vec() + H256::from_low_u64_be(protocol_version_id as u64).0.to_vec() } selector if selector == get_da_validator_pair_selector => { assert!(call.target == STATE_TRANSITION_CONTRACT_ADDRESS); let non_zero_address = vec![6u8; 32]; - [non_zero_address.clone(), non_zero_address].concat() + if protocol_version_id.is_pre_medium_interop() { + [non_zero_address.clone(), non_zero_address].concat() + } else { + [ + non_zero_address.clone(), + H256::from_low_u64_be( + L2DACommitmentScheme::BlobsAndPubdataKeccak256 as u64, + ) + .0 + .to_vec(), + ] + .concat() + } } selector if selector == execution_delay_selector => { // The target is config_timelock_contract_address which is a random address in tests @@ -860,7 +872,18 @@ async fn parsing_multicall_data(with_evm_emulator: bool) { ), ]), Token::Tuple(vec![Token::Bool(true), Token::Bytes(vec![6u8; 32])]), - Token::Tuple(vec![Token::Bool(true), Token::Bytes(vec![7u8; 64])]), + Token::Tuple(vec![ + Token::Bool(true), + Token::Bytes( + [ + vec![7u8; 32], + H256::from_low_u64_be(L2DACommitmentScheme::BlobsAndPubdataKeccak256 as u64) + .0 + .to_vec(), + ] + .concat(), + ), + ]), // Execution delay response (3600 seconds = 0xe10, padded to 32 bytes) Token::Tuple(vec![ Token::Bool(true), @@ -981,13 +1004,14 @@ async fn parsing_multicall_data_errors() { #[test_casing(2, COMMITMENT_MODES)] #[test_log::test(tokio::test)] async fn get_multicall_data(commitment_mode: L1BatchCommitmentMode) { - let mut tester = EthSenderTester::new( + let mut tester = EthSenderTester::new_with_protocol_version( ConnectionPool::::test_pool().await, vec![100; 100], false, true, commitment_mode, SettlementLayer::L1(10.into()), + ProtocolVersionId::Version28, ) .await; @@ -1002,6 +1026,36 @@ async fn get_multicall_data(commitment_mode: L1BatchCommitmentMode) { ); assert_eq!(data.base_system_contracts_hashes.evm_emulator, None); assert_eq!(data.verifier_address, Address::repeat_byte(5)); + assert_eq!(data.chain_protocol_version_id, ProtocolVersionId::Version28); + assert!(data.da_validator_pair.l2_validator.is_some()); + + let commitment_mode = L1BatchCommitmentMode::Rollup; + let mut tester = EthSenderTester::new_with_protocol_version( + ConnectionPool::::test_pool().await, + vec![100; 100], + false, + true, + commitment_mode, + SettlementLayer::L1(10.into()), + ProtocolVersionId::default(), + ) + .await; + + let data = tester.aggregator.get_multicall_data().await.unwrap(); + assert_eq!( + data.base_system_contracts_hashes.bootloader, + H256::repeat_byte(1) + ); + assert_eq!( + data.base_system_contracts_hashes.default_aa, + H256::repeat_byte(2) + ); + assert_eq!(data.base_system_contracts_hashes.evm_emulator, None); + assert_eq!(data.verifier_address, Address::repeat_byte(5)); + assert_eq!( + data.da_validator_pair.l2_da_commitment_scheme.unwrap(), + L2DACommitmentScheme::BlobsAndPubdataKeccak256 + ); assert_eq!(data.chain_protocol_version_id, ProtocolVersionId::latest()); } diff --git a/core/node/genesis/src/lib.rs b/core/node/genesis/src/lib.rs index 3e2d7663977f..175b2a3f96cb 100644 --- a/core/node/genesis/src/lib.rs +++ b/core/node/genesis/src/lib.rs @@ -18,7 +18,7 @@ use zksync_multivm::utils::get_max_gas_per_pubdata_byte; use zksync_types::{ block::{DeployedContract, L1BatchHeader, L2BlockHasher, L2BlockHeader}, bytecode::BytecodeHash, - commitment::{CommitmentInput, L1BatchCommitment}, + commitment::{CommitmentInput, L1BatchCommitment, PubdataParams}, fee_model::BatchFeeInput, protocol_upgrade::decode_genesis_upgrade_event, protocol_version::{L1VerifierConfig, ProtocolSemanticVersion}, @@ -505,7 +505,7 @@ pub(crate) async fn create_genesis_l1_batch_from_storage_logs_and_factory_deps( virtual_blocks: 0, gas_limit: 0, logs_bloom: Bloom::zero(), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), rolling_txs_hash: Some(H256::zero()), }; diff --git a/core/node/logs_bloom_backfill/src/lib.rs b/core/node/logs_bloom_backfill/src/lib.rs index 87ab8ecc97e4..af474907b0d7 100644 --- a/core/node/logs_bloom_backfill/src/lib.rs +++ b/core/node/logs_bloom_backfill/src/lib.rs @@ -134,7 +134,8 @@ impl LogsBloomBackfill { #[cfg(test)] mod tests { use zksync_types::{ - block::L2BlockHeader, tx::IncludedTxLocation, Address, L1BatchNumber, H256, + block::L2BlockHeader, commitment::PubdataParams, tx::IncludedTxLocation, Address, + L1BatchNumber, H256, }; use zksync_vm_interface::VmEvent; @@ -160,7 +161,7 @@ mod tests { virtual_blocks: 0, gas_limit: 0, logs_bloom: Default::default(), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), rolling_txs_hash: Some(H256::zero()), }; diff --git a/core/node/node_sync/src/external_io.rs b/core/node/node_sync/src/external_io.rs index a8dc0ecccbf2..f90c8dbdc798 100644 --- a/core/node/node_sync/src/external_io.rs +++ b/core/node/node_sync/src/external_io.rs @@ -499,8 +499,8 @@ mod tests { use zksync_node_genesis::{insert_genesis_batch, GenesisParams}; use zksync_state_keeper::{io::L1BatchParams, L2BlockParams, StateKeeperIO}; use zksync_types::{ - api, fee_model::BatchFeeInput, L1BatchNumber, L2BlockNumber, L2ChainId, ProtocolVersionId, - H256, + api, commitment::PubdataParams, fee_model::BatchFeeInput, L1BatchNumber, L2BlockNumber, + L2ChainId, ProtocolVersionId, H256, }; use crate::{sync_action::SyncAction, testonly::MockMainNodeClient, ActionQueue, ExternalIO}; @@ -540,7 +540,7 @@ mod tests { operator_address: Default::default(), fee_input: BatchFeeInput::pubdata_independent(2, 3, 4), first_l2_block: L2BlockParams::new(1000), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), pubdata_limit: Some(100_000), }; actions_sender diff --git a/core/node/node_sync/src/fetcher.rs b/core/node/node_sync/src/fetcher.rs index 0f6e2b4802bf..a042e0deb7db 100644 --- a/core/node/node_sync/src/fetcher.rs +++ b/core/node/node_sync/src/fetcher.rs @@ -84,7 +84,9 @@ impl TryFrom for FetchedBlock { } let pubdata_params = if block.protocol_version.is_pre_gateway() { - block.pubdata_params.unwrap_or_default() + block + .pubdata_params + .unwrap_or_else(PubdataParams::pre_gateway) } else { block .pubdata_params diff --git a/core/node/node_sync/src/sync_action.rs b/core/node/node_sync/src/sync_action.rs index 7fd986d6b22a..55a5d1c8f059 100644 --- a/core/node/node_sync/src/sync_action.rs +++ b/core/node/node_sync/src/sync_action.rs @@ -187,7 +187,10 @@ impl From for SyncAction { #[cfg(test)] mod tests { - use zksync_types::{fee_model::BatchFeeInput, l2::L2Tx, Address, ProtocolVersionId, H256}; + use zksync_types::{ + commitment::PubdataParams, fee_model::BatchFeeInput, l2::L2Tx, Address, ProtocolVersionId, + H256, + }; use super::*; @@ -199,7 +202,7 @@ mod tests { operator_address: Address::default(), fee_input: BatchFeeInput::default(), first_l2_block: L2BlockParams::new(1000), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), pubdata_limit: Some(100_000), }, number: L1BatchNumber(1), diff --git a/core/node/node_sync/src/tests.rs b/core/node/node_sync/src/tests.rs index d9f39766854d..a84700e9ca98 100644 --- a/core/node/node_sync/src/tests.rs +++ b/core/node/node_sync/src/tests.rs @@ -21,6 +21,7 @@ use zksync_state_keeper::{ use zksync_types::{ api, block::{L2BlockHasher, UnsealedL1BatchHeader}, + commitment::PubdataParams, fee_model::{BatchFeeInput, PubdataIndependentBatchFeeModelInput}, snapshots::SnapshotRecoveryStatus, Address, L1BatchNumber, L2BlockNumber, L2ChainId, ProtocolVersionId, Transaction, H256, @@ -42,7 +43,7 @@ fn open_l1_batch(number: u32, timestamp: u64, first_l2_block_number: u32) -> Syn operator_address: OPERATOR_ADDRESS, fee_input: BatchFeeInput::pubdata_independent(2, 3, 4), first_l2_block: L2BlockParams::new(timestamp * 1000), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), pubdata_limit: Some(100_000), }, number: L1BatchNumber(number), @@ -67,7 +68,7 @@ impl MockMainNodeClient { virtual_blocks: Some(0), hash: Some(snapshot.l2_block_hash), protocol_version: ProtocolVersionId::latest(), - pubdata_params: Default::default(), + pubdata_params: Some(PubdataParams::genesis()), pubdata_limit: Some(100_000), interop_roots: Some(vec![]), }; diff --git a/core/node/proof_data_handler/src/processor.rs b/core/node/proof_data_handler/src/processor.rs index 9d5bf6b19c26..ce565d4d520c 100644 --- a/core/node/proof_data_handler/src/processor.rs +++ b/core/node/proof_data_handler/src/processor.rs @@ -130,7 +130,7 @@ impl Processor { .await? .unwrap_or_else(|| panic!("Missing header for {}", l1_batch_number)); - let eip_4844_blobs = match pubdata_params.pubdata_type.into() { + let eip_4844_blobs = match pubdata_params.pubdata_type().into() { L1BatchCommitmentMode::Validium => Eip4844Blobs::empty(), L1BatchCommitmentMode::Rollup => { let blobs = batch_header.pubdata_input.as_deref().unwrap_or_else(|| { diff --git a/core/node/state_keeper/src/executor/tests/tester.rs b/core/node/state_keeper/src/executor/tests/tester.rs index a26fe2a25b15..10712e1dd3ff 100644 --- a/core/node/state_keeper/src/executor/tests/tester.rs +++ b/core/node/state_keeper/src/executor/tests/tester.rs @@ -7,8 +7,7 @@ use assert_matches::assert_matches; use tempfile::TempDir; use tokio::{sync::watch, task::JoinHandle}; use zksync_config::configs::chain::StateKeeperConfig; -use zksync_contracts::l2_rollup_da_validator_bytecode; -use zksync_dal::{Connection, ConnectionPool, Core, CoreDal}; +use zksync_dal::{ConnectionPool, Core, CoreDal}; use zksync_multivm::{ interface::{ executor::{BatchExecutor, BatchExecutorFactory}, @@ -25,10 +24,8 @@ use zksync_test_contracts::{ }; use zksync_types::{ block::L2BlockHasher, - bytecode::BytecodeHash, - commitment::PubdataParams, + commitment::{L2DACommitmentScheme, L2PubdataValidator, PubdataParams}, ethabi::Token, - get_code_key, get_known_code_key, protocol_version::ProtocolSemanticVersion, snapshots::{SnapshotRecoveryStatus, SnapshotStorageLog}, system_contracts::get_system_smart_contracts, @@ -42,7 +39,7 @@ use zksync_vm_executor::batch::{MainBatchExecutorFactory, TraceCalls}; use super::{read_storage_factory::RocksdbStorageFactory, StorageType}; use crate::{ - testonly::{self, apply_genesis_logs, BASE_SYSTEM_CONTRACTS}, + testonly::{self, BASE_SYSTEM_CONTRACTS}, AsyncRocksdbCache, }; @@ -270,7 +267,17 @@ impl Tester { self.config.validation_computational_gas_limit; let mut batch_params = default_l1_batch_env(l1_batch_number.0, timestamp, self.fee_account); batch_params.previous_batch_hash = Some(H256::zero()); // Not important in this context. - (batch_params, system_params, PubdataParams::default()) + ( + batch_params, + system_params, + PubdataParams::new( + L2PubdataValidator::CommitmentScheme( + L2DACommitmentScheme::BlobsAndPubdataKeccak256, + ), + Default::default(), + ) + .unwrap(), + ) } /// Performs the genesis in the storage. @@ -289,9 +296,6 @@ impl Tester { ) .await .unwrap(); - - // Also setting up the DA for tests - Self::setup_da(&mut storage).await; } } @@ -330,33 +334,6 @@ impl Tester { } } - async fn setup_contract(conn: &mut Connection<'_, Core>, address: Address, code: Vec) { - let hash: H256 = BytecodeHash::for_bytecode(&code).value(); - let known_code_key = get_known_code_key(&hash); - let code_key = get_code_key(&address); - - let logs = [ - StorageLog::new_write_log(known_code_key, H256::from_low_u64_be(1)), - StorageLog::new_write_log(code_key, hash), - ]; - apply_genesis_logs(conn, &logs).await; - - let factory_deps = HashMap::from([(hash, code)]); - conn.factory_deps_dal() - .insert_factory_deps(L2BlockNumber(0), &factory_deps) - .await - .unwrap(); - } - - async fn setup_da(conn: &mut Connection<'_, Core>) { - Self::setup_contract( - conn, - Address::repeat_byte(0x23), - l2_rollup_da_validator_bytecode(), - ) - .await; - } - pub(super) async fn wait_for_tasks(&mut self) { for task in self.tasks.drain(..) { task.await.expect("Failed to join a task"); diff --git a/core/node/state_keeper/src/io/mempool.rs b/core/node/state_keeper/src/io/mempool.rs index eb7cc8c5d301..b85280d39a73 100644 --- a/core/node/state_keeper/src/io/mempool.rs +++ b/core/node/state_keeper/src/io/mempool.rs @@ -18,7 +18,7 @@ use zksync_multivm::{ use zksync_node_fee_model::BatchFeeModelInputProvider; use zksync_types::{ block::UnsealedL1BatchHeader, - commitment::{PubdataParams, PubdataType}, + commitment::{L2DACommitmentScheme, L2PubdataValidator, PubdataParams, PubdataType}, l2::TransactionType, protocol_upgrade::ProtocolUpgradeTx, server_notification::GatewayMigrationState, @@ -68,6 +68,7 @@ pub struct MempoolIO { batch_fee_input_provider: Arc, chain_id: L2ChainId, l2_da_validator_address: Option
, + l2_da_commitment_scheme: Option, pubdata_type: PubdataType, pubdata_limit: u64, last_batch_protocol_version: Option, @@ -505,6 +506,7 @@ impl MempoolIO { delay_interval: Duration, chain_id: L2ChainId, l2_da_validator_address: Option
, + l2_da_commitment_scheme: Option, pubdata_type: PubdataType, settlement_layer: Option, ) -> anyhow::Result { @@ -524,6 +526,7 @@ impl MempoolIO { batch_fee_input_provider, chain_id, l2_da_validator_address, + l2_da_commitment_scheme, pubdata_type, pubdata_limit: config.seal_criteria.max_pubdata_per_batch.0, last_batch_protocol_version: None, @@ -532,16 +535,27 @@ impl MempoolIO { } fn pubdata_params(&self, protocol_version: ProtocolVersionId) -> anyhow::Result { + // Starting from v30 we have to use commitment schema instead of address let pubdata_params = match ( - protocol_version.is_pre_gateway(), + protocol_version.is_pre_medium_interop(), self.l2_da_validator_address, + self.l2_da_commitment_scheme, ) { - (true, _) => PubdataParams::default(), - (false, Some(l2_da_validator_address)) => PubdataParams { - l2_da_validator_address, - pubdata_type: self.pubdata_type, - }, - (false, None) => anyhow::bail!("L2 DA validator address not found"), + (true, Some(l2_da_validator_address), _) => PubdataParams::new( + L2PubdataValidator::Address(l2_da_validator_address), + self.pubdata_type, + )?, + (false, _, Some(l2_da_commitment_scheme)) => PubdataParams::new( + L2PubdataValidator::CommitmentScheme(l2_da_commitment_scheme), + self.pubdata_type, + )?, + (_, _, _) => anyhow::bail!( + "Inconsistent pubdata parameters: \ + l2_da_validator_address: {:?}, l2_da_commitment_scheme: {:?}, protocol_version: {:?}", + self.l2_da_validator_address, + self.l2_da_commitment_scheme, + protocol_version + ), }; Ok(pubdata_params) diff --git a/core/node/state_keeper/src/io/persistence.rs b/core/node/state_keeper/src/io/persistence.rs index 94debc1b1cc6..8074507e7523 100644 --- a/core/node/state_keeper/src/io/persistence.rs +++ b/core/node/state_keeper/src/io/persistence.rs @@ -438,8 +438,8 @@ mod tests { use zksync_node_genesis::{insert_genesis_batch, GenesisParams}; use zksync_node_test_utils::{default_l1_batch_env, default_system_env}; use zksync_types::{ - api::TransactionStatus, h256_to_u256, writes::StateDiffRecord, L1BatchNumber, - L2BlockNumber, StorageLogKind, H256, U256, + api::TransactionStatus, commitment::PubdataParams, h256_to_u256, writes::StateDiffRecord, + L1BatchNumber, L2BlockNumber, StorageLogKind, H256, U256, }; use super::*; @@ -549,7 +549,7 @@ mod tests { &BatchInitParams { l1_batch_env: l1_batch_env.clone(), system_env: default_system_env(), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), pubdata_limit, timestamp_ms, }, @@ -791,7 +791,7 @@ mod tests { &BatchInitParams { l1_batch_env: l1_batch_env.clone(), system_env: default_system_env(), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), timestamp_ms, pubdata_limit, }, diff --git a/core/node/state_keeper/src/io/seal_logic/l2_block_seal_subtasks.rs b/core/node/state_keeper/src/io/seal_logic/l2_block_seal_subtasks.rs index eb91ccb5dbd1..be927204b673 100644 --- a/core/node/state_keeper/src/io/seal_logic/l2_block_seal_subtasks.rs +++ b/core/node/state_keeper/src/io/seal_logic/l2_block_seal_subtasks.rs @@ -592,7 +592,7 @@ mod tests { protocol_version: Some(ProtocolVersionId::latest()), l2_legacy_shared_bridge_addr: Default::default(), pre_insert_data: false, - pubdata_params: PubdataParams::default(), + pubdata_params: PubdataParams::genesis(), insert_header: false, // Doesn't matter for this test. rolling_txs_hash: Default::default(), }; diff --git a/core/node/state_keeper/src/io/tests/mod.rs b/core/node/state_keeper/src/io/tests/mod.rs index 383fcd9fc86f..1f905e901bb2 100644 --- a/core/node/state_keeper/src/io/tests/mod.rs +++ b/core/node/state_keeper/src/io/tests/mod.rs @@ -283,7 +283,7 @@ fn create_block_seal_command( protocol_version: Some(ProtocolVersionId::latest()), l2_legacy_shared_bridge_addr: Some(Address::default()), pre_insert_data: false, - pubdata_params: PubdataParams::default(), + pubdata_params: PubdataParams::genesis(), insert_header: true, rolling_txs_hash: Default::default(), } diff --git a/core/node/state_keeper/src/io/tests/tester.rs b/core/node/state_keeper/src/io/tests/tester.rs index 9186a1a213e4..64e38158d2cf 100644 --- a/core/node/state_keeper/src/io/tests/tester.rs +++ b/core/node/state_keeper/src/io/tests/tester.rs @@ -28,7 +28,7 @@ use zksync_node_test_utils::{ }; use zksync_types::{ block::L2BlockHeader, - commitment::L1BatchCommitmentMode, + commitment::{L1BatchCommitmentMode, L2DACommitmentScheme}, fee_model::{BaseTokenConversionRatio, BatchFeeInput, FeeModelConfig, FeeModelConfigV2}, l2::L2Tx, protocol_version::{L1VerifierConfig, ProtocolSemanticVersion}, @@ -159,6 +159,7 @@ impl Tester { Duration::from_secs(1), L2ChainId::from(270), Some(Default::default()), + Some(L2DACommitmentScheme::BlobsAndPubdataKeccak256), Default::default(), Some(SettlementLayer::L1(chain_id)), ) diff --git a/core/node/state_keeper/src/node/mempool_io.rs b/core/node/state_keeper/src/node/mempool_io.rs index 33025fbd8bca..baaf6e5c5ff5 100644 --- a/core/node/state_keeper/src/node/mempool_io.rs +++ b/core/node/state_keeper/src/node/mempool_io.rs @@ -14,7 +14,7 @@ use zksync_node_framework::{ wiring_layer::{WiringError, WiringLayer}, FromContext, IntoContext, }; -use zksync_shared_resources::contracts::L2ContractsResource; +use zksync_shared_resources::contracts::{L2ContractsResource, ZkChainOnChainConfigResource}; use zksync_types::{commitment::PubdataType, L2ChainId}; use zksync_vm_executor::node::ApiTransactionFilter; @@ -53,6 +53,7 @@ pub struct Input { master_pool: PoolResource, l2_contracts: L2ContractsResource, settlement_mode: SettlementModeResource, + zk_chain_on_chain_config: ZkChainOnChainConfigResource, } #[derive(Debug, IntoContext)] @@ -138,6 +139,7 @@ impl WiringLayer for MempoolIOLayer { .get_singleton() .await .context("Get master pool")?; + let io = MempoolIO::new( mempool_guard, batch_fee_input_provider, @@ -147,6 +149,7 @@ impl WiringLayer for MempoolIOLayer { self.mempool_config.delay_interval, self.zksync_network_id, input.l2_contracts.0.da_validator_addr, + input.zk_chain_on_chain_config.0.l2_da_commitment_scheme, self.pubdata_type, input.settlement_mode.settlement_layer_for_sending_txs(), )?; diff --git a/core/node/state_keeper/src/seal_criteria/io_criteria.rs b/core/node/state_keeper/src/seal_criteria/io_criteria.rs index da2ca9d3be8a..456c3a3ded08 100644 --- a/core/node/state_keeper/src/seal_criteria/io_criteria.rs +++ b/core/node/state_keeper/src/seal_criteria/io_criteria.rs @@ -174,8 +174,8 @@ mod tests { use zksync_node_test_utils::default_l1_batch_env; use zksync_system_constants::ZKPORTER_IS_AVAILABLE; use zksync_types::{ - protocol_version::ProtocolSemanticVersion, L2ChainId, ProtocolVersion, ProtocolVersionId, - Transaction, + commitment::PubdataParams, protocol_version::ProtocolSemanticVersion, L2ChainId, + ProtocolVersion, ProtocolVersionId, Transaction, }; use super::*; @@ -331,7 +331,7 @@ mod tests { &BatchInitParams { l1_batch_env, system_env, - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), pubdata_limit: Some(100_000), timestamp_ms, }, diff --git a/core/node/state_keeper/src/testonly/test_batch_executor.rs b/core/node/state_keeper/src/testonly/test_batch_executor.rs index 0ff8b477d8ac..a4b581f9e156 100644 --- a/core/node/state_keeper/src/testonly/test_batch_executor.rs +++ b/core/node/state_keeper/src/testonly/test_batch_executor.rs @@ -817,7 +817,7 @@ impl StateKeeperIO for TestIO { operator_address: self.fee_account, fee_input: self.fee_input, first_l2_block: L2BlockParams::new(self.timestamp * 1000), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), pubdata_limit: Some(100_000), }; self.l2_block_number += 1; diff --git a/core/node/state_keeper/src/tests/mod.rs b/core/node/state_keeper/src/tests/mod.rs index e08a5df69bf5..01e3efaaadcd 100644 --- a/core/node/state_keeper/src/tests/mod.rs +++ b/core/node/state_keeper/src/tests/mod.rs @@ -18,6 +18,7 @@ use zksync_multivm::{ use zksync_node_test_utils::{create_l2_transaction, default_l1_batch_env, default_system_env}; use zksync_types::{ block::{L2BlockExecutionData, L2BlockHasher}, + commitment::PubdataParams, u256_to_h256, AccountTreeId, Address, L1BatchNumber, L2BlockNumber, L2ChainId, ProtocolVersionId, StorageKey, StorageLog, StorageLogKind, StorageLogWithPreviousValue, Transaction, H256, U256, @@ -62,7 +63,7 @@ pub(crate) fn pending_batch_data(pending_l2_blocks: Vec) - default_validation_computational_gas_limit: BATCH_COMPUTATIONAL_GAS_LIMIT, chain_id: L2ChainId::from(270), }, - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), pubdata_limit: Some(100_000), pending_l2_blocks, } @@ -76,7 +77,7 @@ pub(super) fn create_updates_manager() -> UpdatesManager { &BatchInitParams { l1_batch_env, system_env: default_system_env(), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), pubdata_limit: Some(100_000), timestamp_ms, }, diff --git a/core/node/test_utils/src/lib.rs b/core/node/test_utils/src/lib.rs index 271d683bd39b..caa59a4c8807 100644 --- a/core/node/test_utils/src/lib.rs +++ b/core/node/test_utils/src/lib.rs @@ -10,7 +10,7 @@ use zksync_types::{ block::{L1BatchHeader, L2BlockHasher, L2BlockHeader}, commitment::{ AuxCommitments, L1BatchCommitmentArtifacts, L1BatchCommitmentHash, L1BatchMetaParameters, - L1BatchMetadata, + L1BatchMetadata, PubdataParams, }, fee::Fee, fee_model::{BatchFeeInput, PubdataIndependentBatchFeeModelInput}, @@ -87,7 +87,7 @@ pub fn create_l2_block(number: u32) -> L2BlockHeader { virtual_blocks: 1, gas_limit: 0, logs_bloom: Default::default(), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), rolling_txs_hash: Some(fake_rolling_txs_hash_for_block(number)), } } @@ -260,7 +260,7 @@ impl Snapshot { virtual_blocks: 1, gas_limit: 0, logs_bloom: Default::default(), - pubdata_params: Default::default(), + pubdata_params: PubdataParams::genesis(), rolling_txs_hash: Some(H256::zero()), }; Snapshot { diff --git a/core/tests/ts-integration/src/constants.ts b/core/tests/ts-integration/src/constants.ts index b814013e8772..8d2588a8d3ea 100644 --- a/core/tests/ts-integration/src/constants.ts +++ b/core/tests/ts-integration/src/constants.ts @@ -31,7 +31,7 @@ function readContract(path: string, fileName: string, contractName?: string) { contractName = contractName || fileName; return JSON.parse(fs.readFileSync(`${path}/${fileName}.sol/${contractName}.json`, { encoding: 'utf-8' })); } -export const ArtifactBridgeHub = readContract(`${ARTIFACTS_PATH}`, 'Bridgehub'); +export const ArtifactL1BridgeHub = readContract(`${ARTIFACTS_PATH}`, 'L1Bridgehub'); export const ArtifactL2InteropRootStorage = readContract(`${SYSTEM_ARTIFACTS_PATH}`, 'L2InteropRootStorage'); export const ArtifactL2MessageVerification = readContract(`${ARTIFACTS_PATH}`, 'L2MessageVerification'); export const ArtifactNativeTokenVault = readContract(`${ARTIFACTS_PATH}`, 'L2NativeTokenVault'); diff --git a/core/tests/ts-integration/tests/interop.test.ts b/core/tests/ts-integration/tests/interop.test.ts index 597cfff9b126..7c35451b60f4 100644 --- a/core/tests/ts-integration/tests/interop.test.ts +++ b/core/tests/ts-integration/tests/interop.test.ts @@ -15,7 +15,7 @@ import { L2_INTEROP_ROOT_STORAGE_ADDRESS, ArtifactL2MessageVerification, ArtifactL2InteropRootStorage, - ArtifactBridgeHub, + ArtifactL1BridgeHub, GATEWAY_CHAIN_ID } from '../src/constants'; import { FinalizeWithdrawalParams } from 'zksync-ethers/build/types'; @@ -37,7 +37,7 @@ describe('Interop behavior checks', () => { // Skip interop tests if the SL is the same as the L1. const bridgehub = new ethers.Contract( await alice.provider.getBridgehubContractAddress(), - ArtifactBridgeHub.abi, + ArtifactL1BridgeHub.abi, alice.providerL1 ); diff --git a/core/tests/upgrade-test/tests/utils.ts b/core/tests/upgrade-test/tests/utils.ts index 9d29bcda4045..fabc62205639 100644 --- a/core/tests/upgrade-test/tests/utils.ts +++ b/core/tests/upgrade-test/tests/utils.ts @@ -63,7 +63,7 @@ export function initContracts(pathToHome: string, zkStack: boolean): Contracts { require(`${CONTRACTS_FOLDER}/l2-contracts/zkout/ForceDeployUpgrader.sol/ForceDeployUpgrader.json`).abi ), complexUpgraderAbi: new ethers.Interface( - require(`${CONTRACTS_FOLDER}/system-contracts/zkout/ComplexUpgrader.sol/ComplexUpgrader.json`).abi + require(`${CONTRACTS_FOLDER}/l1-contracts/zkout/L2ComplexUpgrader.sol/L2ComplexUpgrader.json`).abi ), counterBytecode: require( `${pathToHome}/core/tests/ts-integration/artifacts-zk/contracts/counter/counter.sol/Counter.json` @@ -93,7 +93,7 @@ export function initContracts(pathToHome: string, zkStack: boolean): Contracts { ).abi ), complexUpgraderAbi: new ethers.Interface( - require(`${pathToHome}/contracts/system-contracts/zkout/ComplexUpgrader.sol/ComplexUpgrader.json`).abi + require(`${pathToHome}/contracts/l1-contracts/zkout/L2ComplexUpgrader.sol/L2ComplexUpgrader.json`).abi ), counterBytecode: require(`${pathToHome}/core/tests/ts-integration/zkout/counter.sol/Counter.json`) .deployedBytecode, diff --git a/etc/env/file_based/genesis.yaml b/etc/env/file_based/genesis.yaml index 9650069533a4..0918c49a461d 100644 --- a/etc/env/file_based/genesis.yaml +++ b/etc/env/file_based/genesis.yaml @@ -1,10 +1,10 @@ -genesis_protocol_semantic_version: 0.29.2 +genesis_protocol_semantic_version: 0.30.0 genesis_protocol_version: null -genesis_root: 0x934d46a331e4c617767cade322bc4d262899c0dc5568d2019d4e11301c0cc032 -genesis_rollup_leaf_index: 84 -genesis_batch_commitment: 0x4df2f475a7b24cf76a9bafca7b39a081028537c6f01993ceb5cf394eda16cca1 -bootloader_hash: 0x01000911c4db4fe62c98e180cfa7e9b3a22fb15f505905d4bf36192f481551e6 -default_aa_hash: 0x010005f73e7c299ed73db937843643bdc276cbc2cc8596287e1e0cf3afc60252 +genesis_root: 0xba3ab211944676593a7c0a99b8a7fd4a23cda91a1c46179addbfae1391ffd55b +genesis_rollup_leaf_index: 94 +genesis_batch_commitment: 0x678a7ca6085e3724ebb201316944ee3ec43ac83140400d21a5e772ec9e060f90 +bootloader_hash: 0x0100091118d2d6c46d8e646b67026ef848826845d0aff1cb72cddb6b98e4e90c +default_aa_hash: 0x010005f7fc2bd2320582602ba8e850df381b4ada8c613b4efc7883be575083e9 evm_emulator_hash: 0x01000d8bae37b82f311186426184866498b357f41d7a02ced11f3e3fbfbacd63 l1_chain_id: 9 l2_chain_id: 270 diff --git a/etc/upgrades/v30-zksync-os-blobs/localhost.yaml b/etc/upgrades/v30-zksync-os-blobs/localhost.yaml new file mode 100644 index 000000000000..f27364bf1a61 --- /dev/null +++ b/etc/upgrades/v30-zksync-os-blobs/localhost.yaml @@ -0,0 +1,149 @@ +chain_upgrade_diamond_cut: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000e85f4e47a5b2a709a145c683e54addc947bb0a5f0000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000ea0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb50000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b898748000000000000000000000000000000000000000000000000000000006223258e0000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000e6285aaf8fc30b344dcf01a75c8121b6f87253a200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000003c939a743774225b21df8bb441e0f67ec2d69b7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d000000000000000000000000000000000000000000000000000000000000000000000000000000008c6c4e2c2a79e6e3a610f139d87e6080594b1294000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000965220d9769edd7d5bd334e68db172a81f4cf08100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000136416ef1303000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003bf1177fa7d2fad2efb1790baee273a4079eede10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000800f00000000000000000000000000000000000000000000000000000000044aa2000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000e6405a3341400000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c9000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c90000000000000000000000000000000000000000000000000000000000000060be636bbc212bcbbd2025325500a5cc26feac124d2a7799edcc46accd07b06ce10000000000000000000000000000000000000000000000000000000000000d96b311b4bb5bbc9a82e50737a8980a64e56e2c3187ab5e54f02544f45a4e305fe20000000000000000000000000000000000000000000000000000000000000ca41bb0274700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000db3f5967a421ef02939781908f0cf7c51fff5b93010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a64110000000000000000000000009c74490c900d861fb8e02bd75dfaa2c652b68d5d000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000060357ffa5d3e1f0e747881961e754730dc5a2f457c1c6fb813f87f7067ee798c9b000000000000000000000000000000000000000000000000000000000000094664d1dd713907aac96fe464854e0864aa4f149d975e7fe7332f00e1a6b1a15d960000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000607418dfd4de3ed453eb1e31d297dd728a77d7506e96ab514848f883a886a49d4f00000000000000000000000000000000000000000000000000000000000012fc4b1838dcd9461c7fef64e95a2ccda7da902c26b578c03e2efbb6d455dcf8357f0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +create2_factory_addr: "0x4e59b44847b379578588920cA78FbF26c0B4956C" +create2_factory_salt: "0x65de3677ffea74c9815331db7f4c737a32c161db4cae7d47504a336c4c5bcfb5" +deployer_addr: "0x36615Cf349d7F6344891B1e7CA7C72883F5dc049" +era_chain_id: 270 +gateway_chain_id: 123 +governance_upgrade_timer_initial_delay: 0 +l1_chain_id: 31337 +max_expected_l1_gas_price: 50000000000 +owner_address: "0x8B63490c900d861fB8e02BD75DFAA2C652B67c4C" +priority_txs_l2_gas_limit: 2000000 +transparent_proxy_admin: "0xc1746A535ae5Ed01A984B0313F6d956c8d1f747d" +v29: 0x +test_upgrade_calls: + test_create_chain: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000faf7f9079efe7e9b681aab926e7ca9801af4f993000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001c84f113c88b000000000000000000000000000000000000000000000000000000000000022b00000000000000000000000057c793abb0f8e582faeaeca8094313e33258d79f8df3463b1850eb1d8d1847743ea155aef6b16074db8ba81d897dc30554fb2085000000000000000000000000000000000000000000000000000000000000000500000000000000000000000036615cf349d7f6344891b1e7ca7c72883f5dc04900000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000010a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000009523e6263c42b40db98e59e8ca9476bb8028c4f20000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000e6285aaf8fc30b344dcf01a75c8121b6f87253a200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000008c6c4e2c2a79e6e3a610f139d87e6080594b1294000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000003c939a743774225b21df8bb441e0f67ec2d69b7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000965220d9769edd7d5bd334e68db172a81f4cf08100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000003bf1177fa7d2fad2efb1790baee273a4079eede100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000db3f5967a421ef02939781908f0cf7c51fff5b93010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a64110000000000000000000000009c74490c900d861fb8e02bd75dfaa2c652b68d5d000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_create_chain_caller: "0xad12c58e950Ac6416adF588963e5AB0dbBD9DaD7" + test_upgrade_chain: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000057756741be2a08223454ae7898a0b932907d7e280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000030a4fc57565f0000000000000000000000000000000000000000000000000000001d0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000e85f4e47a5b2a709a145c683e54addc947bb0a5f0000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000ea0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb50000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b898748000000000000000000000000000000000000000000000000000000006223258e0000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000e6285aaf8fc30b344dcf01a75c8121b6f87253a200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000003c939a743774225b21df8bb441e0f67ec2d69b7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d000000000000000000000000000000000000000000000000000000000000000000000000000000008c6c4e2c2a79e6e3a610f139d87e6080594b1294000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000965220d9769edd7d5bd334e68db172a81f4cf08100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000136416ef1303000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003bf1177fa7d2fad2efb1790baee273a4079eede10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000800f00000000000000000000000000000000000000000000000000000000044aa2000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000e6405a3341400000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c9000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c90000000000000000000000000000000000000000000000000000000000000060be636bbc212bcbbd2025325500a5cc26feac124d2a7799edcc46accd07b06ce10000000000000000000000000000000000000000000000000000000000000d96b311b4bb5bbc9a82e50737a8980a64e56e2c3187ab5e54f02544f45a4e305fe20000000000000000000000000000000000000000000000000000000000000ca41bb0274700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000db3f5967a421ef02939781908f0cf7c51fff5b93010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a64110000000000000000000000009c74490c900d861fb8e02bd75dfaa2c652b68d5d000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000060357ffa5d3e1f0e747881961e754730dc5a2f457c1c6fb813f87f7067ee798c9b000000000000000000000000000000000000000000000000000000000000094664d1dd713907aac96fe464854e0864aa4f149d975e7fe7332f00e1a6b1a15d960000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000607418dfd4de3ed453eb1e31d297dd728a77d7506e96ab514848f883a886a49d4f00000000000000000000000000000000000000000000000000000000000012fc4b1838dcd9461c7fef64e95a2ccda7da902c26b578c03e2efbb6d455dcf8357f0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_upgrade_chain_caller: "0xe75084C531F852155315Fa9D80e752c900562e22" +ecosystem_admin_calls: + server_notifier_upgrade: "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000009a2c6551974fedf1f6a9cfdd7eac5b572d39471d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec400000000000000000000000009a537e80aa714a4c6bfee0ea9d2936245cc5b9c0000000000000000000000001e8a2602dee310f61bda287022ac62d7b30e867000000000000000000000000000000000000000000000000000000000" +governance_calls: + stage0_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" + stage1_calls: "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000001ee000000000000000000000000000000000000000000000000000000000000050600000000000000000000000000000000000000000000000000000000000005100000000000000000000000000c1746a535ae5ed01a984b0313f6d956c8d1f747d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec400000000000000000000000057c793abb0f8e582faeaeca8094313e33258d79f00000000000000000000000090d57ea342732500b1172876bfb4f1cc7563048300000000000000000000000000000000000000000000000000000000000000000000000000000000c1746a535ae5ed01a984b0313f6d956c8d1f747d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec4000000000000000000000000c63383b329b145e8166eb9d45cf02dfbee108d17000000000000000000000000dbf7e3e1873c14d2090f3b9cec4abc32f0fd02810000000000000000000000000000000000000000000000000000000000000000000000000000000057c793abb0f8e582faeaeca8094313e33258d79f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001bc49b016b8b0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000ac111a02da402dcaf19ece8d8b0857a3067878806ef70107782e23150da78ff573ce332747a988e77518739723924e4f5593be220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000000600000000000000000000000009523e6263c42b40db98e59e8ca9476bb8028c4f20000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000e6285aaf8fc30b344dcf01a75c8121b6f87253a200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000008c6c4e2c2a79e6e3a610f139d87e6080594b1294000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000003c939a743774225b21df8bb441e0f67ec2d69b7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000965220d9769edd7d5bd334e68db172a81f4cf08100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000003bf1177fa7d2fad2efb1790baee273a4079eede100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000db3f5967a421ef02939781908f0cf7c51fff5b93010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a64110000000000000000000000009c74490c900d861fb8e02bd75dfaa2c652b68d5d000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000000000000000000000057c793abb0f8e582faeaeca8094313e33258d79f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000030e42e52285100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000001d00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000e85f4e47a5b2a709a145c683e54addc947bb0a5f0000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000ea0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb50000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b898748000000000000000000000000000000000000000000000000000000006223258e0000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000e6285aaf8fc30b344dcf01a75c8121b6f87253a200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000003c939a743774225b21df8bb441e0f67ec2d69b7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d000000000000000000000000000000000000000000000000000000000000000000000000000000008c6c4e2c2a79e6e3a610f139d87e6080594b1294000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000965220d9769edd7d5bd334e68db172a81f4cf08100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000136416ef1303000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003bf1177fa7d2fad2efb1790baee273a4079eede10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000800f00000000000000000000000000000000000000000000000000000000044aa2000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000e6405a3341400000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c9000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c90000000000000000000000000000000000000000000000000000000000000060be636bbc212bcbbd2025325500a5cc26feac124d2a7799edcc46accd07b06ce10000000000000000000000000000000000000000000000000000000000000d96b311b4bb5bbc9a82e50737a8980a64e56e2c3187ab5e54f02544f45a4e305fe20000000000000000000000000000000000000000000000000000000000000ca41bb0274700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000db3f5967a421ef02939781908f0cf7c51fff5b93010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a64110000000000000000000000009c74490c900d861fb8e02bd75dfaa2c652b68d5d000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000060357ffa5d3e1f0e747881961e754730dc5a2f457c1c6fb813f87f7067ee798c9b000000000000000000000000000000000000000000000000000000000000094664d1dd713907aac96fe464854e0864aa4f149d975e7fe7332f00e1a6b1a15d960000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000607418dfd4de3ed453eb1e31d297dd728a77d7506e96ab514848f883a886a49d4f00000000000000000000000000000000000000000000000000000000000012fc4b1838dcd9461c7fef64e95a2ccda7da902c26b578c03e2efbb6d455dcf8357f0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007ef785fa7902b767ee71015a0477c9dcc079de4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000479ba5097000000000000000000000000000000000000000000000000000000000000000000000000000000003bf1177fa7d2fad2efb1790baee273a4079eede100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000479ba509700000000000000000000000000000000000000000000000000000000" + stage2_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" +contracts_config: + diamond_cut_data: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000009523e6263c42b40db98e59e8ca9476bb8028c4f20000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000e6285aaf8fc30b344dcf01a75c8121b6f87253a200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000008c6c4e2c2a79e6e3a610f139d87e6080594b1294000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000003c939a743774225b21df8bb441e0f67ec2d69b7f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000965220d9769edd7d5bd334e68db172a81f4cf08100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000003bf1177fa7d2fad2efb1790baee273a4079eede100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b280" + diamond_init_batch_overhead_l1_gas: 1000000 + diamond_init_max_l2_gas_per_batch: 80000000 + diamond_init_max_pubdata_per_batch: 120000 + diamond_init_minimal_l2_gas_price: 250000000 + diamond_init_priority_tx_max_pubdata: 99000 + diamond_init_pubdata_pricing_mode: 0 + force_deployments_data: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000db3f5967a421ef02939781908f0cf7c51fff5b93010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a64110000000000000000000000009c74490c900d861fb8e02bd75dfaa2c652b68d5d000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3" + l1_legacy_shared_bridge: "0xdB3f5967A421ef02939781908f0cF7C51fFF5B93" + new_protocol_version: 128849018880 + old_protocol_version: 124554051584 + old_validator_timelock: "0x0000000000000000000000000000000000000000" + priority_tx_max_gas_limit: 72000000 + recursion_circuits_set_vks_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_leaf_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_node_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" +deployed_addresses: + access_control_restriction_addr: "0x0000000000000000000000000000000000000000" + blobs_zksync_os_l1_da_validator_addr: "0xEEC5ceB0784a4894AA2A61A5480921bcb5cc2660" + chain_admin: "0x0000000000000000000000000000000000000000" + l1_bytecodes_supplier_addr: "0x662B8fE285BB3aab483e75Ec46136e01aaa154f9" + l1_gateway_upgrade: "0x0000000000000000000000000000000000000000" + l1_governance_upgrade_timer: "0x4fe5eda319EA4757B4B2DE616CbB8Fd843c70192" + l1_rollup_da_manager: "0x7Ef785fA7902b767eE71015A0477C9DCc079dE48" + l1_transitionary_owner: "0x0000000000000000000000000000000000000000" + l2_wrapped_base_token_store_addr: "0x0000000000000000000000000000000000000000" + native_token_vault_addr: "0x1ae9d78fa0F02FD4F302733FF5dA53c481DE8DCC" + native_token_vault_implementation_addr: "0x516797E224f1084984885DDD2376106E184b28Cf" + rollup_l1_da_validator_addr: "0x405f42B49CC3d2599655F3e24ab21a2D7f0Ec86d" + upgrade_stage_validator: "0x111AaD8B48Eb14E839247403401d83643d056bbf" + validator_timelock_addr: "0xc63383B329B145e8166eb9D45CF02dFBee108d17" + validator_timelock_implementation_addr: "0xdBF7E3E1873C14d2090F3b9Cec4ABC32f0FD0281" + validium_l1_da_validator_addr: "0x1a3a408AeD9A1C5429877cA876BE1f6fC2b8b454" + bridgehub: + bridgehub_implementation_addr: "0xA92C9614e167cAf9B326039417e37da3d5E74204" + bridgehub_proxy_addr: "0xfaf7f9079Efe7E9B681aaB926E7cA9801af4f993" + chain_asset_handler_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_asset_handler_proxy_addr: "0xe765bffF20d0548420BbEf4EB46704D0F2b1C41b" + ctm_deployment_tracker_implementation_addr: "0x93e1428b51b66f1c11068056507C6b5c3C86C977" + ctm_deployment_tracker_proxy_addr: "0x0C7A49AAc835e1f10A23C287AEcbd0441827cD6a" + message_root_implementation_addr: "0x2EcfD6ed407EF21277FDbD1c970Afff6c76F1e36" + message_root_proxy_addr: "0xd538B9408BfdF29cBb3C9bdb574F8c2664c71969" + bridges: + bridged_standard_erc20_impl: "0xa5d2D220534F97938a5eed054C71288D0437c86e" + bridged_token_beacon: "0x0000000000000000000000000000000000000000" + erc20_bridge_implementation_addr: "0xD4275fF0bF98917FFe1277dc45E9555C6D35dB30" + erc20_bridge_proxy_addr: "0x56AE9FFB2EEa83E9B260C5791a25f68C414d8102" + l1_asset_router_implementation_addr: "0x5Ed4C2d07257a8bb0462E6AABe01bCDBE3a038AF" + l1_asset_router_proxy_addr: "0xdB3f5967A421ef02939781908f0cF7C51fFF5B93" + l1_nullifier_implementation_addr: "0xC584794E3BF46086A9301047edea7c76B5B45Ac6" + l1_nullifier_proxy_addr: "0xc44349c4D318d8981156557380c5894E492D86F4" + shared_bridge_implementation_addr: "0x5Ed4C2d07257a8bb0462E6AABe01bCDBE3a038AF" + state_transition: + admin_facet_addr: "0xe6285aaf8fc30b344Dcf01a75C8121B6F87253A2" + chain_type_manager_implementation_addr: "0x90d57EA342732500B1172876BfB4F1cc75630483" + default_upgrade_addr: "0xe85F4e47A5B2a709A145C683e54adDC947bB0A5f" + diamond_init_addr: "0x9523e6263c42B40DB98e59E8CA9476bB8028c4F2" + executor_facet_addr: "0x965220d9769EDd7d5bD334E68DB172A81F4CF081" + genesis_upgrade_addr: "0xaC111A02dA402dcAf19eCe8d8b0857a306787880" + getters_facet_addr: "0x8c6c4e2c2a79e6E3A610F139D87e6080594B1294" + mailbox_facet_addr: "0x3C939a743774225B21dF8bB441e0F67EC2D69b7f" + state_transition_implementation_addr: "0x90d57EA342732500B1172876BfB4F1cc75630483" + verifier_addr: "0x3BF1177fA7D2fAd2EFb1790BAEe273A4079eedE1" + verifier_fflonk_addr: "0x937815251191b5834bF6444F938aee4Fe6B64d2C" + verifier_plonk_addr: "0x77df487797215763284d8eCa3427E880d2bAF5Eb" +gateway: + diamond_cut_data: 0x + upgrade_cut_data: 0x + gateway_state_transition: + admin_facet_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_proxy: "0x018389676b80E677C9FAc34d04408A1F8489Bd66" + chain_type_manager_proxy_admin: "0x9F52dB4AEa9277517c6779D65F90FE03d7533730" + default_upgrade_addr: "0x0000000000000000000000000000000000000000" + diamond_init_addr: "0x0000000000000000000000000000000000000000" + executor_facet_addr: "0x0000000000000000000000000000000000000000" + genesis_upgrade_addr: "0x0000000000000000000000000000000000000000" + getters_facet_addr: "0x0000000000000000000000000000000000000000" + mailbox_facet_addr: "0x0000000000000000000000000000000000000000" + rollup_da_manager: "0x5bbEbcB4f6fa0b6E05902402ED080FB4C44EC5D3" + rollup_l2_da_validator: "0x931661BAdBc221bd686446F17A0EA40aa5196779" + validator_timelock_addr: "0x0000000000000000000000000000000000000000" + validator_timelock_implementation_addr: "0x0000000000000000000000000000000000000000" + verifier_addr: "0x0000000000000000000000000000000000000000" + verifier_fflonk_addr: "0x0000000000000000000000000000000000000000" + verifier_plonk_addr: "0x0000000000000000000000000000000000000000" +transactions: + - "0x62f496fd51e296c2117fd1c76aaafb44f79fa172045d087e8aed1e4e9d7ec1ab" + - "0xab0607ab36f3eedecc088b297720f71a9463812d781fd3b0737522961f2f923f" + - "0x77ca384a014f2193271c7619573c6510b8807f04a1b82a5ec0e2d660cf42d670" + - "0x4697034d81c307723b5556edab5799dacd70bc5bfdf962c1e66589de3743d136" + - "0x78b4b05ac31b59e463a65e89989c1a261abea27dd095f5b3d2776f6bc4c66c89" + - "0x950d04fda2399bf90b3357626d9bbd2aa0e71000b20abe1732aaff039e852ec3" + - "0x905618467434f6f0fbdae9ef84b937573eceba51559d5aa92f0d7804d2a7081f" + - "0xa9512d29e95c8175aa05b5ee2e9811b26dd8ff283b8de1b19f3e114e4fc5bea9" + - "0xb77c4cfe1672543f109416fda7cd6ce7e28d64273165e4b33d10ccbcd633abc7" + - "0x0c882110e3c1525a07ac9196f7eb844c3a6d1c141c0566b87e7df223ba6da739" + - "0xa25df51f8adc98496bdc81faac06efa8c4c2c082c5675d3409410fd4913bc3e5" + - "0x45e6aa2d90d1896bd58d2b4500c972ed83693162f3ea973734521980ebbdd060" + - "0x2e46e6d8a5c57f2c518ae661082f2619953bb8e22951f47d7ff081f975b3cfb3" + - "0x5c7061b360cb11e9da95b6911a5862ec403706216c7d25bd81ccd02f776ca02b" + - "0x2c3b06724d02d48687102bc37bd81e40079a9911726cd4f6cc5c55faa45df8b6" + - "0xc5e1d0e2a9c46bc015884d50e2a3f9aae442d8359415a6c52052e14252ff4fd8" + - "0x4d2ec4778deb6925262a8ad02f3c6b6a2231bf45fa98a88d1fad1114a9decc63" + - "0x4bbc09da640773ac11789e0a1831301c10a1846f7af4c22cd4915abcc5a4ee38" + - "0xc51793696cb305a3a22848f9ef0ff0c5d2d2f2157a6354fd2f89d0e4f57c5d03" + - "0x77f94034165f2ee84c94d9adb02536e8411aed704b9acb53fb867e1f0d5ed734" + - "0x4e5383a757e3addc068a454743c502717ffd1b97d3b6c1b4b9dcb99e3ed55884" + - "0xb49d312d21f9cde5898036d4af26295b497627c5991c947458afa6dddb2a71d0" + - "0xd49569a829456ecc52bf4e6151bde4adbb01eeb65d8a63e06963f8560a11f477" + - "0x66d04ad97b2739b71e46644e5a041f4cb890ddd740060b817b85f6edac390c56" + - "0x3b1122fe6a07a45b845eb8a0e775cec02ffd4b6da80d33961df372dbec1f1835" + - "0x1e625508a14b63654d4f8f95c331462a6f7bc44f002c3a85177fce595b31b420" + - "0x0b57dd5883cb96e4c7caf89769855c0a05d5ac24908b25957fbf0010144c90a1" + - "0xfc87e18959af72a3e687ffd43c6e58881e1228901aa7f34fd8f9121b2d0eabdf" + - "0x8939f01f0b5a4beb4193601a76a30f1cf9614ebe6dba014811f376a200d883cb" + - "0x636c666f43e0ccb6548994ac82aff9127a124cb6c4d8a4be05e5e0440609b7dd" + - "0x1627012d9cae8ec137c34893d13c18c6f2deb65eb810db5a229a97364c28410d" + - "0xcee8fd62787815d10086f8312f0d3a0ad061c0f02f4c5b5bf7181dbaa998e6e3" + - "0x72e5c8232db94946f72ba850a6287764cd6a0d9acc921f1d9d804dea9f8171ad" + - "0x1b50f07f3afea1190554cc520c9cce5734d72ca51ff6f01e4f89b6420a517372" + - "0xa43f3ce057d36e485e05663d561b78cd392615ca4e0ee82c65e4099eef4b9383" + - "0x7772469d9f8165fd876d08b05ed00653e96572e97f15a7d6d17ee995cdc426ee" + - "0x4f377bf826565c68b2e049fcd2a53634970a884b4141c403ea01cb4dae0a09f2" diff --git a/etc/upgrades/v30-zksync-os-blobs/mainnet.yaml b/etc/upgrades/v30-zksync-os-blobs/mainnet.yaml new file mode 100644 index 000000000000..028ef4b3e62b --- /dev/null +++ b/etc/upgrades/v30-zksync-os-blobs/mainnet.yaml @@ -0,0 +1,149 @@ +chain_upgrade_diamond_cut: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d60c49a229c58197090665ab73305d36fe909dc30000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000a8af3cff5c286f07f148b9c5d4a7b3fc358b1a5e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db86500000000000000000000000000000000000000000000000000000000000000000000000000000000883e3226558c7e0a1a6586003975dbcc226e7274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000a433fcf5b1d6e9a74633fcd2391d71b49b20f4f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000d9232796ee7ad3d8eb38bef3a0c1eaf30de9d29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000136416ef1303000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b4b58a5e65a0c4a054e0f4b67277a1bc6425bd20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000800f00000000000000000000000000000000000000000000000000000000044aa2000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000e6405a3341400000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c9000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c90000000000000000000000000000000000000000000000000000000000000060be636bbc212bcbbd2025325500a5cc26feac124d2a7799edcc46accd07b06ce10000000000000000000000000000000000000000000000000000000000000d96b311b4bb5bbc9a82e50737a8980a64e56e2c3187ab5e54f02544f45a4e305fe20000000000000000000000000000000000000000000000000000000000000ca41bb0274700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001440000000000000000000000008829ad80e425c646dab305381ff105169feece56010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000060357ffa5d3e1f0e747881961e754730dc5a2f457c1c6fb813f87f7067ee798c9b000000000000000000000000000000000000000000000000000000000000094664d1dd713907aac96fe464854e0864aa4f149d975e7fe7332f00e1a6b1a15d960000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000607418dfd4de3ed453eb1e31d297dd728a77d7506e96ab514848f883a886a49d4f00000000000000000000000000000000000000000000000000000000000012fc4b1838dcd9461c7fef64e95a2ccda7da902c26b578c03e2efbb6d455dcf8357f0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +create2_factory_addr: "0x4e59b44847b379578588920cA78FbF26c0B4956C" +create2_factory_salt: "0x95de5677ffea74c9815331db7f5c737a33c161db4cae7d47504a336c4c5bcfdc" +deployer_addr: "0x043DA37F21c4C83b97b546724c75600c2D0C9E16" +era_chain_id: 324 +gateway_chain_id: 9075 +governance_upgrade_timer_initial_delay: 0 +l1_chain_id: 1 +max_expected_l1_gas_price: 30000000000 +owner_address: "0xC66f0B45c05cF654eeC093650FD67865E85E8566" +priority_txs_l2_gas_limit: 2000000 +transparent_proxy_admin: "0xff3582a0310916cd62442A4CA88Bf1C757D68938" +v29: 0x +test_upgrade_calls: + test_create_chain: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000303a465b659cbb0ab36ee643ea362c509eeb5213000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001c84f113c88b000000000000000000000000000000000000000000000000000000000000022b0000000000000000000000001adf137f59949c9081157d5de1e002d1c992071f83e2fbc0a739b3c765de4c2b4bf8072a71ea8fbb09c8cf579c71425d8bc8804a0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000043da37f21c4c83b97b546724c75600c2d0c9e1600000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000010a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000077e0eaf7220783b372eb694cecd68d2663797a440000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000a8af3cff5c286f07f148b9c5d4a7b3fc358b1a5e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db86500000000000000000000000000000000000000000000000000000000000000000000000000000000a433fcf5b1d6e9a74633fcd2391d71b49b20f4f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000883e3226558c7e0a1a6586003975dbcc226e7274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000d9232796ee7ad3d8eb38bef3a0c1eaf30de9d29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000005b4b58a5e65a0c4a054e0f4b67277a1bc6425bd200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001440000000000000000000000008829ad80e425c646dab305381ff105169feece56010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_create_chain_caller: "0x2cf3bD6a9056b39999F3883955E183F655345063" + test_upgrade_chain: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" + test_upgrade_chain_caller: "0x0000000000000000000000000000000000000000" +ecosystem_admin_calls: + server_notifier_upgrade: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e5f57e8791281920c1e1ffbb0bd70e3bd4c18a4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec4000000000000000000000000bfaa733261500101996a10a231794263567d52ab0000000000000000000000008561ed76062ef9ed51a7685b6271b6ceaee5525400000000000000000000000000000000000000000000000000000000" +governance_calls: + stage0_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" + stage1_calls: "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000001ee0000000000000000000000000000000000000000000000000000000000000424000000000000000000000000000000000000000000000000000000000000042e0000000000000000000000000ff3582a0310916cd62442a4ca88bf1c757d6893800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec40000000000000000000000001adf137f59949c9081157d5de1e002d1c992071f0000000000000000000000006908e3ef1417e16c126dbaec5b8c9a097bbc7f5800000000000000000000000000000000000000000000000000000000000000000000000000000000ff3582a0310916cd62442a4ca88bf1c757d6893800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec400000000000000000000000018cc381705761aa2d2e8ea62888a4029a0fad3ab000000000000000000000000369cb91a7d4de15071734b99ed924545aad82eb4000000000000000000000000000000000000000000000000000000000000000000000000000000001adf137f59949c9081157d5de1e002d1c992071f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001bc49b016b8b00000000000000000000000000000000000000000000000000000000000000200000000000000000000000002bf9b0b72573af5471c4f035271616139392acd8423c107626aff95d3d086eabd92132dc9485e021ae3cb4c7735d5e963578e3d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000001140000000000000000000000000000000000000000000000000000000000000006000000000000000000000000077e0eaf7220783b372eb694cecd68d2663797a440000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000a8af3cff5c286f07f148b9c5d4a7b3fc358b1a5e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db86500000000000000000000000000000000000000000000000000000000000000000000000000000000a433fcf5b1d6e9a74633fcd2391d71b49b20f4f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000883e3226558c7e0a1a6586003975dbcc226e7274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000d9232796ee7ad3d8eb38bef3a0c1eaf30de9d29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000005b4b58a5e65a0c4a054e0f4b67277a1bc6425bd200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001440000000000000000000000008829ad80e425c646dab305381ff105169feece56010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000001adf137f59949c9081157d5de1e002d1c992071f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000022c42e52285100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000001d00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d60c49a229c58197090665ab73305d36fe909dc30000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000a8af3cff5c286f07f148b9c5d4a7b3fc358b1a5e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db86500000000000000000000000000000000000000000000000000000000000000000000000000000000883e3226558c7e0a1a6586003975dbcc226e7274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000a433fcf5b1d6e9a74633fcd2391d71b49b20f4f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000d9232796ee7ad3d8eb38bef3a0c1eaf30de9d29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000136416ef1303000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005b4b58a5e65a0c4a054e0f4b67277a1bc6425bd20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000800f00000000000000000000000000000000000000000000000000000000044aa2000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000e6405a3341400000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c9000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c90000000000000000000000000000000000000000000000000000000000000060be636bbc212bcbbd2025325500a5cc26feac124d2a7799edcc46accd07b06ce10000000000000000000000000000000000000000000000000000000000000d96b311b4bb5bbc9a82e50737a8980a64e56e2c3187ab5e54f02544f45a4e305fe20000000000000000000000000000000000000000000000000000000000000ca41bb0274700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001440000000000000000000000008829ad80e425c646dab305381ff105169feece56010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000060357ffa5d3e1f0e747881961e754730dc5a2f457c1c6fb813f87f7067ee798c9b000000000000000000000000000000000000000000000000000000000000094664d1dd713907aac96fe464854e0864aa4f149d975e7fe7332f00e1a6b1a15d960000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000607418dfd4de3ed453eb1e31d297dd728a77d7506e96ab514848f883a886a49d4f00000000000000000000000000000000000000000000000000000000000012fc4b1838dcd9461c7fef64e95a2ccda7da902c26b578c03e2efbb6d455dcf8357f0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003f54a35a979fe576159002b05be2edf9b455faaa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000479ba5097000000000000000000000000000000000000000000000000000000000000000000000000000000005b4b58a5e65a0c4a054e0f4b67277a1bc6425bd200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000479ba509700000000000000000000000000000000000000000000000000000000" + stage2_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" +contracts_config: + diamond_cut_data: "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000077e0eaf7220783b372eb694cecd68d2663797a440000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000a8af3cff5c286f07f148b9c5d4a7b3fc358b1a5e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db86500000000000000000000000000000000000000000000000000000000000000000000000000000000a433fcf5b1d6e9a74633fcd2391d71b49b20f4f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000883e3226558c7e0a1a6586003975dbcc226e7274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000d9232796ee7ad3d8eb38bef3a0c1eaf30de9d29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000005b4b58a5e65a0c4a054e0f4b67277a1bc6425bd200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b280" + diamond_init_batch_overhead_l1_gas: 1000000 + diamond_init_max_l2_gas_per_batch: 80000000 + diamond_init_max_pubdata_per_batch: 120000 + diamond_init_minimal_l2_gas_price: 250000000 + diamond_init_priority_tx_max_pubdata: 99000 + diamond_init_pubdata_pricing_mode: 0 + force_deployments_data: "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001440000000000000000000000008829ad80e425c646dab305381ff105169feece56010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3" + l1_legacy_shared_bridge: "0x8829AD80E425C646DAB305381ff105169FeEcE56" + new_protocol_version: 128849018880 + old_protocol_version: 124554051585 + old_validator_timelock: "0x0000000000000000000000000000000000000000" + priority_tx_max_gas_limit: 72000000 + recursion_circuits_set_vks_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_leaf_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_node_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" +deployed_addresses: + access_control_restriction_addr: "0x0000000000000000000000000000000000000000" + blobs_zksync_os_l1_da_validator_addr: "0x5Ec30C00e7bB93114372946D648fa324A12e28dE" + chain_admin: "0x0000000000000000000000000000000000000000" + l1_bytecodes_supplier_addr: "0xC9F20FC268Fc3e0e597660550033Bf2C24218fd8" + l1_gateway_upgrade: "0x0000000000000000000000000000000000000000" + l1_governance_upgrade_timer: "0xa6445727A34dC83f0De446016B9Dd8BeA518e111" + l1_rollup_da_manager: "0x3F54A35a979Fe576159002B05bE2eDf9b455FAAA" + l1_transitionary_owner: "0x0000000000000000000000000000000000000000" + l2_wrapped_base_token_store_addr: "0x0000000000000000000000000000000000000000" + native_token_vault_addr: "0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6" + native_token_vault_implementation_addr: "0xA0D9CeBD5Bc273Aa718121aBd26743760468Cc81" + rollup_l1_da_validator_addr: "0x90D9d6201e258B478432Ab357772490B98DAFf4B" + upgrade_stage_validator: "0x42A134429B2E55CCb77E8700901968935d033d96" + validator_timelock_addr: "0x18cC381705761aa2d2e8ea62888a4029A0fAd3aB" + validator_timelock_implementation_addr: "0x369cb91A7D4de15071734B99eD924545aad82eb4" + validium_l1_da_validator_addr: "0xaC0f6BF73d1609A3B8eB14250AABc5c866363012" + bridgehub: + bridgehub_implementation_addr: "0xBf9750b218f8381d2C8cFed4785Bd9B5633a97E3" + bridgehub_proxy_addr: "0x303a465B659cBB0ab36eE643eA362c509EEb5213" + chain_asset_handler_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_asset_handler_proxy_addr: "0xDd5CB8B9037357B4cD37391A073798f8aaB61076" + ctm_deployment_tracker_implementation_addr: "0xa220Fca0b4cFd23c1A676e8417F4ED3353bB9131" + ctm_deployment_tracker_proxy_addr: "0x6078F6B379f103de1Aa912dc46bb8Df0c8809860" + message_root_implementation_addr: "0x3346e4b929B30cdDb6b850835af9F34B41b00B6b" + message_root_proxy_addr: "0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD" + bridges: + bridged_standard_erc20_impl: "0x1e4F2fD3F9E0083a97C10119144Ed42Fb7CCe04d" + bridged_token_beacon: "0x0000000000000000000000000000000000000000" + erc20_bridge_implementation_addr: "0xBb30037A051C2714e23d37C4f7fBE80F492Cd3Fa" + erc20_bridge_proxy_addr: "0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063" + l1_asset_router_implementation_addr: "0xFc53F8A4014d9Ab0408758a12544fB4A3464948D" + l1_asset_router_proxy_addr: "0x8829AD80E425C646DAB305381ff105169FeEcE56" + l1_nullifier_implementation_addr: "0x27d3AD019493f3e2e3F3bACc9B389b84C20e518C" + l1_nullifier_proxy_addr: "0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB" + shared_bridge_implementation_addr: "0xFc53F8A4014d9Ab0408758a12544fB4A3464948D" + state_transition: + admin_facet_addr: "0xa8AF3cfF5c286F07f148b9C5d4A7b3fC358b1A5E" + chain_type_manager_implementation_addr: "0x6908e3ef1417e16c126dbaec5b8c9A097bBc7F58" + default_upgrade_addr: "0xD60c49A229C58197090665aB73305d36fe909DC3" + diamond_init_addr: "0x77E0EAf7220783b372eB694ceCd68d2663797A44" + executor_facet_addr: "0xd9232796Ee7AD3d8eB38BeF3a0c1eAF30De9d292" + genesis_upgrade_addr: "0x2bf9B0B72573af5471c4f035271616139392Acd8" + getters_facet_addr: "0xa433FcF5b1d6E9a74633fcd2391D71B49B20F4F3" + mailbox_facet_addr: "0x883E3226558C7e0A1A6586003975DBcc226E7274" + state_transition_implementation_addr: "0x6908e3ef1417e16c126dbaec5b8c9A097bBc7F58" + verifier_addr: "0x5B4b58a5e65a0C4A054E0f4B67277a1bc6425bD2" + verifier_fflonk_addr: "0x72a0982AC0bd5810F7DbA07788f885Ea6BC84627" + verifier_plonk_addr: "0xd30b8da73667c02e172D38dbcDF0B45250925a12" +gateway: + diamond_cut_data: 0x + upgrade_cut_data: 0x + gateway_state_transition: + admin_facet_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_proxy: "0x912B84EEEEBeca74d307b9a2b09c68332aa5426C" + chain_type_manager_proxy_admin: "0x0A8a176B6F5962122C6E8F8815278f873D74021f" + default_upgrade_addr: "0x0000000000000000000000000000000000000000" + diamond_init_addr: "0x0000000000000000000000000000000000000000" + executor_facet_addr: "0x0000000000000000000000000000000000000000" + genesis_upgrade_addr: "0x0000000000000000000000000000000000000000" + getters_facet_addr: "0x0000000000000000000000000000000000000000" + mailbox_facet_addr: "0x0000000000000000000000000000000000000000" + rollup_da_manager: "0x5E12D7E0bB68029afbeC83ccB9E8eDE6019ef073" + rollup_l2_da_validator: "0x595b8C88B9e5f3a4c596C3e81BE6e11D53Bb9200" + validator_timelock_addr: "0x0000000000000000000000000000000000000000" + validator_timelock_implementation_addr: "0x0000000000000000000000000000000000000000" + verifier_addr: "0x0000000000000000000000000000000000000000" + verifier_fflonk_addr: "0x0000000000000000000000000000000000000000" + verifier_plonk_addr: "0x0000000000000000000000000000000000000000" +transactions: + - "0xf6d65efb10c98c3ad734447e96af726f309a402c4a27781b8323fd2acea7f27d" + - "0xbd51a486b939d8c4a6f4bbe5213ba826fbd77ccf78202fba29bcdb3d0a83ebfa" + - "0xc4c5bc1ef32d8fd7beee4f657870a4f9840e060d0a03e37372b985e8ec009a71" + - "0xbd990bf652fe3d85a00d2da595d7e37934e10b8f03fa2d5f0d0cb21af884716d" + - "0x608a213bf917138c78bf37eba2068a1f57dc4746893fec1d881fa5b99b2e9750" + - "0xb2c58e7d167ca09e2ef2bc17ca85c3eab143790ca5cf3e604dc4ceca61b6621c" + - "0xac0ba7a2cc15eace572a2fee3dd0ffba63a5c58d018f992e39024d0ab8449e7a" + - "0xc52a2ef897936e5c4534344e3a7d26fdc0bebaa54803f433305ae5b1b4a933d8" + - "0x6235cb49720121d58ff75941658744b641c76bcb6ae5ae6c8980b4d7c3a7eb49" + - "0x22c033d78c261404f7455988b20afae73d7c48c80ab6bc757c184563660b6c76" + - "0x066d349fb75d39ca9eecbedeee66d8dac1295ff8671a3bb3100508e06d034463" + - "0x28fb286f934f73bde9a4a64fd6ad2c0e4191bac8d2b415c64d85c4a50782361d" + - "0xd94f9129e8aa70c5f3ab2c6ce6c962d0f9bed0f1465ca2db846e7e0a7f167c23" + - "0xe71d8dc3007a42608362c9f80265aa7db0320040d19fd5e59400b96a1017d61f" + - "0x5b13fbcd1b19efcc87e6c6467ff83209209bed128a9d3cf6fc2c1c409fc3f16c" + - "0x604d41fb4199ae16bbb46c4bae776b433e6fcfffeb421f7c1018c6c0342b7aea" + - "0x475cf725821484361a0711ee6ce2ed3b9727a6f89f62fbff1e5422f895288fad" + - "0x3df1f31f40014577c9ce50353a70d9f0a6e450e3f37e2c31702ce425c4b33482" + - "0x8520dba83fafacd6fdc432e5863186388d9451372e7584dfe399a9a22cb29463" + - "0x350a04b99769380bbbe48f49ca00a8cc3597f6abbf8680f830d66b11b0467008" + - "0x9448a273fe6f7c988ca2a2dadf9fecff80bffabe93ae91a6fa7e4151f0bbb893" + - "0x079672522ace2368a7f6ef63b9679d90be37c327f7f5c4006e4153d724a018f6" + - "0x3f41c9234810ef0631be08bbc1c6ce225576450158b75b3e7d032040a2ad7298" + - "0x001f92c276b234ba351513293168e379c577a47bad3953cbc5272c045174d1a0" + - "0x48b4bca6181ff1098b5ebfa1394df539c56c787669bf20bbd1fcf5e580c6411f" + - "0xd9da031ca5c610f83e9d8e687e7624b66d3a89eb1bf85ddc017b2dbd78f48f86" + - "0x8be1871e3194911ee6dda8fa9f0b943b0adc902d63cef1b569cc00094652368a" + - "0x2dbb0067c425c0bf44acb18598fca30a099b89a874d9eb180959ca33a07dd853" + - "0x09111ca4d1c2732cdf74dcddef8af541a872d0f48e5c4eeaadbd299256337585" + - "0x50d0e17a5bdbf961ac31cd75dbaf7ecd08393d0d6aec422518d51978069ae391" + - "0x1422d3f6bfb5bb6296d0bc8184c2608aff341a10840584f9b8e99b5a6ec17196" + - "0xa801bb49cf274276e0b49d10d57979bac624ac08314817207f86bf188f6aa261" + - "0xaa188d7cf86f1a51f006cf2bcd73c168be7c6de89aae784acd403090591c9944" + - "0x35f188776f301119eb3e2e95c9f4f3800c7c12d551892d6b144503e2de504e4a" + - "0xb5a8ddd6f591f45b036d3eef6eb7bf43a7728ef984b5f8ef597030740161349e" + - "0xb79628baaf3df08133a4392a0799ddc251aeace6c1e44bb28cb6ef75e6b6adda" + - "0x22a51b6d5208aae0c69002c66be5f4c90234c1be5c2273cd0a4e91bec9e2933f" diff --git a/etc/upgrades/v30-zksync-os-blobs/stage.yaml b/etc/upgrades/v30-zksync-os-blobs/stage.yaml new file mode 100644 index 000000000000..945b92d05b2f --- /dev/null +++ b/etc/upgrades/v30-zksync-os-blobs/stage.yaml @@ -0,0 +1,148 @@ +chain_upgrade_diamond_cut: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000001946fa11f1f076091bd1e2ebe09c0cc1a21925e00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000ea0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb50000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b898748000000000000000000000000000000000000000000000000000000006223258e0000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e450000000000000000000000000000000000000000000000000000000000000000000000000000000003ad10d7b8b0e12aa9e5784c4101667b792c0bb2700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000005086f3ed0b425df0bedf64dee4472e35c3ffbea2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d0000000000000000000000000000000000000000000000000000000000000000000000000000000099e00fecc2a83affc2614c5816451f0e2e6c969b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000777eeeefcbc804604c852cdc9db485d96a9b6f2e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000136416ef1303000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005d5fedcd93377ca6d4a1eb458c0340f86e8062550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000800f00000000000000000000000000000000000000000000000000000000044aa2000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000e6405a3341400000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c9000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c90000000000000000000000000000000000000000000000000000000000000060be636bbc212bcbbd2025325500a5cc26feac124d2a7799edcc46accd07b06ce10000000000000000000000000000000000000000000000000000000000000d96b311b4bb5bbc9a82e50737a8980a64e56e2c3187ab5e54f02544f45a4e305fe20000000000000000000000000000000000000000000000000000000000000ca41bb0274700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000fd3130ea0e8b7dd61ac3663328a66d97eb02f84b010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000060357ffa5d3e1f0e747881961e754730dc5a2f457c1c6fb813f87f7067ee798c9b000000000000000000000000000000000000000000000000000000000000094664d1dd713907aac96fe464854e0864aa4f149d975e7fe7332f00e1a6b1a15d960000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000607418dfd4de3ed453eb1e31d297dd728a77d7506e96ab514848f883a886a49d4f00000000000000000000000000000000000000000000000000000000000012fc4b1838dcd9461c7fef64e95a2ccda7da902c26b578c03e2efbb6d455dcf8357f0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +create2_factory_addr: "0x4e59b44847b379578588920cA78FbF26c0B4956C" +create2_factory_salt: "0x85de5677ffea74c9815331db7f5c737a33c161db4cae7d47504a336c4c5bcfdc" +deployer_addr: "0x7921F9F70B754A014922Aca94947e23F1A424164" +era_chain_id: 270 +gateway_chain_id: 123 +governance_upgrade_timer_initial_delay: 1200 +l1_chain_id: 11155111 +max_expected_l1_gas_price: 50000000000 +owner_address: "0xC66f0B45c05cF654eeC093650FD67865E85E8566" +priority_txs_l2_gas_limit: 2000000 +transparent_proxy_admin: "0xff3582a0310916cd62442A4CA88Bf1C757D68938" +v29: 0x +test_upgrade_calls: + test_create_chain: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000236d1c3ff32bd0ca26b72af287e895627c0478ce000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001c84f113c88b000000000000000000000000000000000000000000000000000000000000022b00000000000000000000000073bee414c6e006525f3cceedf6d8004c0370502e6337a96bd2cd359fa0bae3bbedfca736753213c95037ae158c5fa7c048ae211200000000000000000000000000000000000000000000000000000000000000050000000000000000000000007921f9f70b754a014922aca94947e23f1a42416400000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000010a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c10e1baa5dce84435bcce73496454c3eb790b7950000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000003ad10d7b8b0e12aa9e5784c4101667b792c0bb2700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db8650000000000000000000000000000000000000000000000000000000000000000000000000000000099e00fecc2a83affc2614c5816451f0e2e6c969b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000005086f3ed0b425df0bedf64dee4472e35c3ffbea2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000777eeeefcbc804604c852cdc9db485d96a9b6f2e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000005d5fedcd93377ca6d4a1eb458c0340f86e80625500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000fd3130ea0e8b7dd61ac3663328a66d97eb02f84b010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_create_chain_caller: "0xa6ED12b87D2e6Ea039d27e1FFbDC24915FFd3042" + test_upgrade_chain: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000098a0d85435a0e2834142bfd24a30e0c0b6866de20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000030a4fc57565f0000000000000000000000000000000000000000000000000000001d00000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000600000000000000000000000001946fa11f1f076091bd1e2ebe09c0cc1a21925e00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000ea0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb50000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b898748000000000000000000000000000000000000000000000000000000006223258e0000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e450000000000000000000000000000000000000000000000000000000000000000000000000000000003ad10d7b8b0e12aa9e5784c4101667b792c0bb2700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000005086f3ed0b425df0bedf64dee4472e35c3ffbea2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d0000000000000000000000000000000000000000000000000000000000000000000000000000000099e00fecc2a83affc2614c5816451f0e2e6c969b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000777eeeefcbc804604c852cdc9db485d96a9b6f2e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000136416ef1303000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005d5fedcd93377ca6d4a1eb458c0340f86e8062550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000800f00000000000000000000000000000000000000000000000000000000044aa2000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000e6405a3341400000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c9000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c90000000000000000000000000000000000000000000000000000000000000060be636bbc212bcbbd2025325500a5cc26feac124d2a7799edcc46accd07b06ce10000000000000000000000000000000000000000000000000000000000000d96b311b4bb5bbc9a82e50737a8980a64e56e2c3187ab5e54f02544f45a4e305fe20000000000000000000000000000000000000000000000000000000000000ca41bb0274700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000fd3130ea0e8b7dd61ac3663328a66d97eb02f84b010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000060357ffa5d3e1f0e747881961e754730dc5a2f457c1c6fb813f87f7067ee798c9b000000000000000000000000000000000000000000000000000000000000094664d1dd713907aac96fe464854e0864aa4f149d975e7fe7332f00e1a6b1a15d960000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000607418dfd4de3ed453eb1e31d297dd728a77d7506e96ab514848f883a886a49d4f00000000000000000000000000000000000000000000000000000000000012fc4b1838dcd9461c7fef64e95a2ccda7da902c26b578c03e2efbb6d455dcf8357f0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_upgrade_chain_caller: "0xaDa529f4C9c385b97067B2c437009B825E8945DD" +ecosystem_admin_calls: + server_notifier_upgrade: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e5f57e8791281920c1e1ffbb0bd70e3bd4c18a4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec4000000000000000000000000bfaa733261500101996a10a231794263567d52ab000000000000000000000000766801cb8dcfaeeed1de7995d1b2b0f3f3131ffb00000000000000000000000000000000000000000000000000000000" +governance_calls: + stage0_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" + stage1_calls: "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000001ee000000000000000000000000000000000000000000000000000000000000050600000000000000000000000000000000000000000000000000000000000005100000000000000000000000000ff3582a0310916cd62442a4ca88bf1c757d6893800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec400000000000000000000000073bee414c6e006525f3cceedf6d8004c0370502e000000000000000000000000790128f34c116a3d0466beac85d6ae3a168bf63f00000000000000000000000000000000000000000000000000000000000000000000000000000000ff3582a0310916cd62442a4ca88bf1c757d6893800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec40000000000000000000000001e4299f7a19597e09bd8593ab7b68277183e9778000000000000000000000000e2aab3b3532caa81e7a4b37fd4c2a8053dec0ee20000000000000000000000000000000000000000000000000000000000000000000000000000000073bee414c6e006525f3cceedf6d8004c0370502e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001bc49b016b8b00000000000000000000000000000000000000000000000000000000000000200000000000000000000000006b9eb97d2dc791977bbb952d4e9933785c3aaad0423c107626aff95d3d086eabd92132dc9485e021ae3cb4c7735d5e963578e3d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000011400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c10e1baa5dce84435bcce73496454c3eb790b7950000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000003ad10d7b8b0e12aa9e5784c4101667b792c0bb2700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db8650000000000000000000000000000000000000000000000000000000000000000000000000000000099e00fecc2a83affc2614c5816451f0e2e6c969b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000005086f3ed0b425df0bedf64dee4472e35c3ffbea2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000777eeeefcbc804604c852cdc9db485d96a9b6f2e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000005d5fedcd93377ca6d4a1eb458c0340f86e80625500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000fd3130ea0e8b7dd61ac3663328a66d97eb02f84b010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000000000000000000000073bee414c6e006525f3cceedf6d8004c0370502e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000030e42e52285100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000001d00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000001946fa11f1f076091bd1e2ebe09c0cc1a21925e00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000ea0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb50000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b898748000000000000000000000000000000000000000000000000000000006223258e0000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e450000000000000000000000000000000000000000000000000000000000000000000000000000000003ad10d7b8b0e12aa9e5784c4101667b792c0bb2700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000005086f3ed0b425df0bedf64dee4472e35c3ffbea2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d0000000000000000000000000000000000000000000000000000000000000000000000000000000099e00fecc2a83affc2614c5816451f0e2e6c969b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000777eeeefcbc804604c852cdc9db485d96a9b6f2e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000136416ef1303000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005d5fedcd93377ca6d4a1eb458c0340f86e8062550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000800f00000000000000000000000000000000000000000000000000000000044aa2000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000e6405a3341400000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c9000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c90000000000000000000000000000000000000000000000000000000000000060be636bbc212bcbbd2025325500a5cc26feac124d2a7799edcc46accd07b06ce10000000000000000000000000000000000000000000000000000000000000d96b311b4bb5bbc9a82e50737a8980a64e56e2c3187ab5e54f02544f45a4e305fe20000000000000000000000000000000000000000000000000000000000000ca41bb0274700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000fd3130ea0e8b7dd61ac3663328a66d97eb02f84b010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000060357ffa5d3e1f0e747881961e754730dc5a2f457c1c6fb813f87f7067ee798c9b000000000000000000000000000000000000000000000000000000000000094664d1dd713907aac96fe464854e0864aa4f149d975e7fe7332f00e1a6b1a15d960000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000607418dfd4de3ed453eb1e31d297dd728a77d7506e96ab514848f883a886a49d4f00000000000000000000000000000000000000000000000000000000000012fc4b1838dcd9461c7fef64e95a2ccda7da902c26b578c03e2efbb6d455dcf8357f0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000461099b710c3bd538fff0bb0f817eda52b5a532b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000479ba5097000000000000000000000000000000000000000000000000000000000000000000000000000000005d5fedcd93377ca6d4a1eb458c0340f86e80625500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000479ba509700000000000000000000000000000000000000000000000000000000" + stage2_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" +contracts_config: + diamond_cut_data: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c10e1baa5dce84435bcce73496454c3eb790b7950000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000003ad10d7b8b0e12aa9e5784c4101667b792c0bb2700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db8650000000000000000000000000000000000000000000000000000000000000000000000000000000099e00fecc2a83affc2614c5816451f0e2e6c969b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000005086f3ed0b425df0bedf64dee4472e35c3ffbea2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000777eeeefcbc804604c852cdc9db485d96a9b6f2e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000005d5fedcd93377ca6d4a1eb458c0340f86e80625500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b280" + diamond_init_batch_overhead_l1_gas: 1000000 + diamond_init_max_l2_gas_per_batch: 80000000 + diamond_init_max_pubdata_per_batch: 120000 + diamond_init_minimal_l2_gas_price: 250000000 + diamond_init_priority_tx_max_pubdata: 99000 + diamond_init_pubdata_pricing_mode: 0 + force_deployments_data: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000fd3130ea0e8b7dd61ac3663328a66d97eb02f84b010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3" + l1_legacy_shared_bridge: "0xfD3130Ea0e8B7Dd61Ac3663328a66d97eb02f84b" + new_protocol_version: 128849018880 + old_protocol_version: 124554051585 + old_validator_timelock: "0x0000000000000000000000000000000000000000" + priority_tx_max_gas_limit: 72000000 + recursion_circuits_set_vks_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_leaf_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_node_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" +deployed_addresses: + access_control_restriction_addr: "0x0000000000000000000000000000000000000000" + blobs_zksync_os_l1_da_validator_addr: "0x6324B03F44b0Cb6C95298d18c69E3ba6ec76c264" + chain_admin: "0x0000000000000000000000000000000000000000" + l1_bytecodes_supplier_addr: "0x662B8fE285BB3aab483e75Ec46136e01aaa154f9" + l1_gateway_upgrade: "0x0000000000000000000000000000000000000000" + l1_governance_upgrade_timer: "0xb3425C1104B375d537996bB900eEa1e063D81f60" + l1_rollup_da_manager: "0x461099b710C3Bd538FFF0bB0F817EDA52B5A532b" + l1_transitionary_owner: "0x0000000000000000000000000000000000000000" + l2_wrapped_base_token_store_addr: "0x0000000000000000000000000000000000000000" + native_token_vault_addr: "0x257CE1e946c9C6531E2C9deBF7fcf821F9467f73" + native_token_vault_implementation_addr: "0xce905c182eEeE02e41Eb41F78279422a4B1DFB97" + rollup_l1_da_validator_addr: "0x58f075ab4e75A610c0753e64094B76e318914322" + upgrade_stage_validator: "0x43Bf82A1f2aD79C09eA1a51d39aec944E74EA33e" + validator_timelock_addr: "0x1E4299F7a19597E09bD8593AB7B68277183e9778" + validator_timelock_implementation_addr: "0xE2Aab3b3532caA81E7a4B37fD4c2a8053DEC0EE2" + validium_l1_da_validator_addr: "0x3Be8822cD3Ee384AD0ffD04e91e59F042354DAc2" + bridgehub: + bridgehub_implementation_addr: "0xdA7548FCFf3c20A9e0B51ad0AC58fD2dB34998A7" + bridgehub_proxy_addr: "0x236D1c3Ff32Bd0Ca26b72Af287E895627c0478cE" + chain_asset_handler_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_asset_handler_proxy_addr: "0xCEe1A9d2FE1c587B72F115974d33296C1F9ac35d" + ctm_deployment_tracker_implementation_addr: "0xd73eDb0457D5a2b892e5AF65De13521230B15Be0" + ctm_deployment_tracker_proxy_addr: "0x25E04b7d1fC963aB8e5fEB0797f7a943E260e8b6" + message_root_implementation_addr: "0xF43D2Bf724Bc7C341F69F8Af169de54dab7C10C2" + message_root_proxy_addr: "0x280D3AD9fbDE5daAaA8A5Df0EB7bA6E2bd5bc39f" + bridges: + bridged_standard_erc20_impl: "0x357593574CFC70f3F3795154F22C49567f846db9" + bridged_token_beacon: "0x0000000000000000000000000000000000000000" + erc20_bridge_implementation_addr: "0x01E49E5CEE42Fd8b678d04089952290416eA8CEe" + erc20_bridge_proxy_addr: "0x7303B5Ce64f1ADB0558572611a0b90620b6dd5F4" + l1_asset_router_implementation_addr: "0x21C8b1419D84AD8E1B24b74E2af6bd99D4e6817f" + l1_asset_router_proxy_addr: "0xfD3130Ea0e8B7Dd61Ac3663328a66d97eb02f84b" + l1_nullifier_implementation_addr: "0xa45c7A8DaE3a37A7b26972207C69c161b370531e" + l1_nullifier_proxy_addr: "0x6F03861D12E6401623854E494beACd66BC46e6F0" + shared_bridge_implementation_addr: "0x21C8b1419D84AD8E1B24b74E2af6bd99D4e6817f" + state_transition: + admin_facet_addr: "0x3aD10d7B8B0E12aa9E5784C4101667B792c0bb27" + chain_type_manager_implementation_addr: "0x790128F34C116a3d0466BEac85D6ae3A168BF63f" + default_upgrade_addr: "0x1946fa11F1F076091Bd1E2ebE09c0cc1A21925E0" + diamond_init_addr: "0xc10e1baA5DCE84435BCcE73496454c3eb790b795" + executor_facet_addr: "0x777eEEEfcBc804604C852cdc9db485d96A9b6F2e" + genesis_upgrade_addr: "0x6b9Eb97d2dC791977bbB952D4e9933785c3aAAd0" + getters_facet_addr: "0x99E00FeCc2a83AfFc2614c5816451F0E2e6C969B" + mailbox_facet_addr: "0x5086f3ED0b425DF0bedf64dEe4472E35c3FFBeA2" + state_transition_implementation_addr: "0x790128F34C116a3d0466BEac85D6ae3A168BF63f" + verifier_addr: "0x5d5FEDcd93377cA6D4a1eb458c0340f86E806255" + verifier_fflonk_addr: "0xd9d54dFd248D24c5c7b3c4c8B70AD18916a9aA94" + verifier_plonk_addr: "0x6CbBB4dCf06263B27e9b10e669A043b695bDC25b" +gateway: + diamond_cut_data: 0x + upgrade_cut_data: 0x + gateway_state_transition: + admin_facet_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_proxy: "0x018389676b80E677C9FAc34d04408A1F8489Bd66" + chain_type_manager_proxy_admin: "0x9F52dB4AEa9277517c6779D65F90FE03d7533730" + default_upgrade_addr: "0x0000000000000000000000000000000000000000" + diamond_init_addr: "0x0000000000000000000000000000000000000000" + executor_facet_addr: "0x0000000000000000000000000000000000000000" + genesis_upgrade_addr: "0x0000000000000000000000000000000000000000" + getters_facet_addr: "0x0000000000000000000000000000000000000000" + mailbox_facet_addr: "0x0000000000000000000000000000000000000000" + rollup_da_manager: "0x5bbEbcB4f6fa0b6E05902402ED080FB4C44EC5D3" + rollup_l2_da_validator: "0x931661BAdBc221bd686446F17A0EA40aa5196779" + validator_timelock_addr: "0x0000000000000000000000000000000000000000" + validator_timelock_implementation_addr: "0x0000000000000000000000000000000000000000" + verifier_addr: "0x0000000000000000000000000000000000000000" + verifier_fflonk_addr: "0x0000000000000000000000000000000000000000" + verifier_plonk_addr: "0x0000000000000000000000000000000000000000" +transactions: + - "0xa3d50d815d134ccfcef23d045c98aa93cad6fe343e216478199a1d633616aaf8" + - "0x951730a772dcab3f7809cf3512d5f205835b94fb1cf1e5576da210568a4ee5f5" + - "0x9da999c25a268ca62b70fabdfb2b33e1bd8284583767a23321f0c332f3660cce" + - "0x3b20f550a6edf6ece9a8aeaa21aa837a561eb071830548f9719f8d5ee999766a" + - "0x0f67f7d49469e630f535e466b597b38705e97f1df298e3dadc0aae634db9fe08" + - "0x9c9584354a0a27b2201db925a3ddbcba11dc8de1012198f703452d92a46ab59a" + - "0xfb27e57099cc520bac1166a13198dcff2b8ab191fa33abe941c1fdf6a31dfc48" + - "0x0030d56a99d34bc6e085fe144c3c4619d004648a63d710905d495ce610890324" + - "0x6a23e643a2455afc2ecf330d00d3ebdd540333aa11d94d0b07f77f1fd13a4c2e" + - "0x33ebe7081128bd575b3a2548338790eabb48c3f604d5a18258792ebccf18b71f" + - "0x963b130fb1769b32762b3f86f5e03d43cbc822806aba696f103bd8985ebf14a5" + - "0x78741b661c1fbe8ba5248e72ab28f98c6907523b9e60b0e6e3baae7fdf055f12" + - "0x50cbd2186222b76aa2b924f0c80645630cd23645c7a95403134b439ca914affe" + - "0x005f33d2db7a3e536e9fbba30b34f3c9300c4869b04c0007700685e9d2ce55a0" + - "0x4976fe7e07a2093d26bae7df6e377e70ef10a1e6b3821416e0cee345c5a61384" + - "0xbd4330674de56baccf3d890a28be481a34fc851e216c9b91163e1ec44edc12b8" + - "0xfefa7855ccbd059cd87d3da137dd9ddec81272527202457236e6ee751a3ba67e" + - "0xc58f11a0c2a285c6e6c224d5a1a047285eafef3ca760e838753686c40f869aee" + - "0xd1e5d7f9134542b85c51e099ea22607698c5f3ede471a1361a264e480eeec5a6" + - "0x3046494e0b53a9278a74d2114aafa3649e1172e7481bd096dc29771e671765bb" + - "0xac61fdb1cc74c87b41fb4ee8919e25bd53a6f73b894803b9d7a04c7abc597028" + - "0x3eef0ef64ef3506bf4a5397cd0b2e300a7aaefe3cf21355e63bfdbaca8ef4381" + - "0x0ecf41eca1a0b42e8835558de9e2293c4e133b423d22c8b88c108324e0250f83" + - "0x331cac91bb653e4386fd4dcdf6fc31d5eff70338ba103461dd9b128375fc636a" + - "0x7f41ce119a25a94b1de3ef52133c513a6cc722d3036af4fe19393fd0f6a16f59" + - "0x601bd0a213e81be913fd9a33771a7043a5294c19119c19f141ff4fcbe5777d38" + - "0x5bfc6e283f6b32b721e16058fa450d171ca87ecd95d9ebbb2ba52283e7d91aea" + - "0x59bc844c1c775a5a51a56491dfcd9a940b5c719f9448255735ea5cf83980c540" + - "0xedf8c2e1859e31a67e5724be5c59cff04613c275d5c5282cc91ceb141fc59f38" + - "0x1101ce7b76bd4c53ed2e24df1c950922a5088c8a5cd584635e73707a6903fa94" + - "0xa565acb7e310ac1454805354e581d20ab94608de8fd89a3c5f88ab35adaab8ac" + - "0x04eddf21f2fecf14bafafe6cde04b4c70ab64465ba64aed0e5c933ca25852da5" + - "0xe5a10a2c72912dec7831d7c160f85cbad6fb9222668b2d1cdb776d2d4cb8f102" + - "0x800899c833bd964012f98bdde641dfb4379a6c888dc1551d808db98e9420b45d" + - "0x138d026df9928230a245a7d5de92cc4179ce95ef9fed92e4ec459a0e94218be1" + - "0x4b94bf041a11b3f2bfbcdf75278ff26211301b49709a0f90f017034a8b3b3b28" diff --git a/etc/upgrades/v30-zksync-os-blobs/testnet.yaml b/etc/upgrades/v30-zksync-os-blobs/testnet.yaml new file mode 100644 index 000000000000..ee06821cbcb8 --- /dev/null +++ b/etc/upgrades/v30-zksync-os-blobs/testnet.yaml @@ -0,0 +1,151 @@ +chain_upgrade_diamond_cut: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000007b267129c2fe9bc2ae40319df4bedb3357290c340000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000ea0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb50000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b898748000000000000000000000000000000000000000000000000000000006223258e0000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000792bf045fd7eed1f442c161d72d4bfaf260ed81c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000008024e9305ee26e1c0d4bec0b3d0f6980458585a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000a55b19dcfde8d2a2f81e74009250d72143d5da92000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000bda6008a2211eb61aa6e8a70d55928065822300a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000136416ef130300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be953765e45fe69a6fb9abcc263c6ed564e6b0b90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000800f00000000000000000000000000000000000000000000000000000000044aa2000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000e6405a3341400000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c9000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c90000000000000000000000000000000000000000000000000000000000000060be636bbc212bcbbd2025325500a5cc26feac124d2a7799edcc46accd07b06ce10000000000000000000000000000000000000000000000000000000000000d96b311b4bb5bbc9a82e50737a8980a64e56e2c3187ab5e54f02544f45a4e305fe20000000000000000000000000000000000000000000000000000000000000ca41bb0274700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000b5d9c3f41e434b91295bd7962db5c873cecce2be010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000e0a7aab01347ba96050f39ff6dcbc6138b463c69000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000060357ffa5d3e1f0e747881961e754730dc5a2f457c1c6fb813f87f7067ee798c9b000000000000000000000000000000000000000000000000000000000000094664d1dd713907aac96fe464854e0864aa4f149d975e7fe7332f00e1a6b1a15d960000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000607418dfd4de3ed453eb1e31d297dd728a77d7506e96ab514848f883a886a49d4f00000000000000000000000000000000000000000000000000000000000012fc4b1838dcd9461c7fef64e95a2ccda7da902c26b578c03e2efbb6d455dcf8357f0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +create2_factory_addr: "0x4e59b44847b379578588920cA78FbF26c0B4956C" +create2_factory_salt: "0x96de9677ffea74c9815331db7f5c737a33c161db4cae7d47504a336c4c5bcfdc" +deployer_addr: "0x7921F9F70B754A014922Aca94947e23F1A424164" +era_chain_id: 270 +gateway_chain_id: 32657 +governance_upgrade_timer_initial_delay: 0 +l1_chain_id: 11155111 +max_expected_l1_gas_price: 50000000000 +owner_address: "0xcf96aAb01347BA96050F39Ff6dcbC6138b462b58" +priority_txs_l2_gas_limit: 2000000 +transparent_proxy_admin: "0xE00456791Da489418355B0a6b27965A54c7C01d2" +v29: 0x +test_upgrade_calls: + test_create_chain: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000c4fd2580c3487bba18d63f50301020132342fdbd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001c84f113c88b000000000000000000000000000000000000000000000000000000000000022b00000000000000000000000054d55e74de9c6003e7a68a1fe70e633f05761eb56337a96bd2cd359fa0bae3bbedfca736753213c95037ae158c5fa7c048ae211200000000000000000000000000000000000000000000000000000000000000050000000000000000000000007921f9f70b754a014922aca94947e23f1a42416400000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000010a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000e2ff98d89a95f98c89db6ac89c33aa679192a4310000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000792bf045fd7eed1f442c161d72d4bfaf260ed81c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db86500000000000000000000000000000000000000000000000000000000000000000000000000000000a55b19dcfde8d2a2f81e74009250d72143d5da92000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000008024e9305ee26e1c0d4bec0b3d0f6980458585a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000bda6008a2211eb61aa6e8a70d55928065822300a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000be953765e45fe69a6fb9abcc263c6ed564e6b0b900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000b5d9c3f41e434b91295bd7962db5c873cecce2be010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000e0a7aab01347ba96050f39ff6dcbc6138b463c69000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_create_chain_caller: "0x7cbdDA00285de05a1353803db38770043e359B6d" + test_upgrade_chain: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000002b1ac1cf0a592aefd3c2246b2431388365db2720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000030a4fc57565f0000000000000000000000000000000000000000000000000000001d00000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000600000000000000000000000007b267129c2fe9bc2ae40319df4bedb3357290c340000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000ea0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb50000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b898748000000000000000000000000000000000000000000000000000000006223258e0000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000792bf045fd7eed1f442c161d72d4bfaf260ed81c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000008024e9305ee26e1c0d4bec0b3d0f6980458585a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000a55b19dcfde8d2a2f81e74009250d72143d5da92000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000bda6008a2211eb61aa6e8a70d55928065822300a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000136416ef130300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be953765e45fe69a6fb9abcc263c6ed564e6b0b90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000800f00000000000000000000000000000000000000000000000000000000044aa2000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000e6405a3341400000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c9000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c90000000000000000000000000000000000000000000000000000000000000060be636bbc212bcbbd2025325500a5cc26feac124d2a7799edcc46accd07b06ce10000000000000000000000000000000000000000000000000000000000000d96b311b4bb5bbc9a82e50737a8980a64e56e2c3187ab5e54f02544f45a4e305fe20000000000000000000000000000000000000000000000000000000000000ca41bb0274700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000b5d9c3f41e434b91295bd7962db5c873cecce2be010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000e0a7aab01347ba96050f39ff6dcbc6138b463c69000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000060357ffa5d3e1f0e747881961e754730dc5a2f457c1c6fb813f87f7067ee798c9b000000000000000000000000000000000000000000000000000000000000094664d1dd713907aac96fe464854e0864aa4f149d975e7fe7332f00e1a6b1a15d960000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000607418dfd4de3ed453eb1e31d297dd728a77d7506e96ab514848f883a886a49d4f00000000000000000000000000000000000000000000000000000000000012fc4b1838dcd9461c7fef64e95a2ccda7da902c26b578c03e2efbb6d455dcf8357f0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_upgrade_chain_caller: "0x3b7a24e583867ab85694CF55941734653bdfaB9c" +ecosystem_admin_calls: + server_notifier_upgrade: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000fa181338785bf9427a367ffce6bfe2c81586b3d900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec4000000000000000000000000d9a3c35f2dc092e6cd390a01aa9ffb3c23533c96000000000000000000000000256a2f273a36775d5ef69ded64ff8d2a63ec5be900000000000000000000000000000000000000000000000000000000" +governance_calls: + stage0_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" + stage1_calls: "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000001ee000000000000000000000000000000000000000000000000000000000000050600000000000000000000000000000000000000000000000000000000000005100000000000000000000000000e00456791da489418355b0a6b27965a54c7c01d200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec400000000000000000000000054d55e74de9c6003e7a68a1fe70e633f05761eb50000000000000000000000007b1d031beb039705743371231196020825ed1e6300000000000000000000000000000000000000000000000000000000000000000000000000000000e00456791da489418355b0a6b27965a54c7c01d200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec400000000000000000000000073b668d8374ddb42c9e2f46fd5b754ac215495bc0000000000000000000000006d8b914be789a7c25c63dbd8e7a1a9f92d5b016a0000000000000000000000000000000000000000000000000000000000000000000000000000000054d55e74de9c6003e7a68a1fe70e633f05761eb5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001bc49b016b8b0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000bab7ff0d9313232a67fda32fd338720640419f3e423c107626aff95d3d086eabd92132dc9485e021ae3cb4c7735d5e963578e3d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000011400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000e2ff98d89a95f98c89db6ac89c33aa679192a4310000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000792bf045fd7eed1f442c161d72d4bfaf260ed81c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db86500000000000000000000000000000000000000000000000000000000000000000000000000000000a55b19dcfde8d2a2f81e74009250d72143d5da92000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000008024e9305ee26e1c0d4bec0b3d0f6980458585a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000bda6008a2211eb61aa6e8a70d55928065822300a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000be953765e45fe69a6fb9abcc263c6ed564e6b0b900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000b5d9c3f41e434b91295bd7962db5c873cecce2be010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000e0a7aab01347ba96050f39ff6dcbc6138b463c69000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000000000000000000000054d55e74de9c6003e7a68a1fe70e633f05761eb50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000030e42e52285100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000001d00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000007b267129c2fe9bc2ae40319df4bedb3357290c340000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000ea0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000001b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb50000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b898748000000000000000000000000000000000000000000000000000000006223258e0000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000792bf045fd7eed1f442c161d72d4bfaf260ed81c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db865000000000000000000000000000000000000000000000000000000000000000000000000000000008024e9305ee26e1c0d4bec0b3d0f6980458585a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000a55b19dcfde8d2a2f81e74009250d72143d5da92000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000bda6008a2211eb61aa6e8a70d55928065822300a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000136416ef130300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be953765e45fe69a6fb9abcc263c6ed564e6b0b90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000000000000000000000000000000000000008007000000000000000000000000000000000000000000000000000000000000800f00000000000000000000000000000000000000000000000000000000044aa2000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001120000000000000000000000000000000000000000000000000000000000000114000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000e6405a3341400000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c9000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000001180696ea7fcbf28eaf5833976abb6b2083569c90000000000000000000000000000000000000000000000000000000000000060be636bbc212bcbbd2025325500a5cc26feac124d2a7799edcc46accd07b06ce10000000000000000000000000000000000000000000000000000000000000d96b311b4bb5bbc9a82e50737a8980a64e56e2c3187ab5e54f02544f45a4e305fe20000000000000000000000000000000000000000000000000000000000000ca41bb0274700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000b5d9c3f41e434b91295bd7962db5c873cecce2be010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000e0a7aab01347ba96050f39ff6dcbc6138b463c69000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000060357ffa5d3e1f0e747881961e754730dc5a2f457c1c6fb813f87f7067ee798c9b000000000000000000000000000000000000000000000000000000000000094664d1dd713907aac96fe464854e0864aa4f149d975e7fe7332f00e1a6b1a15d960000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000607418dfd4de3ed453eb1e31d297dd728a77d7506e96ab514848f883a886a49d4f00000000000000000000000000000000000000000000000000000000000012fc4b1838dcd9461c7fef64e95a2ccda7da902c26b578c03e2efbb6d455dcf8357f0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c90e4e4897421e9380d734b72221f5485c3fd11600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000479ba509700000000000000000000000000000000000000000000000000000000000000000000000000000000be953765e45fe69a6fb9abcc263c6ed564e6b0b900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000479ba509700000000000000000000000000000000000000000000000000000000" + stage2_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" +contracts_config: + diamond_cut_data: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000e2ff98d89a95f98c89db6ac89c33aa679192a4310000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000792bf045fd7eed1f442c161d72d4bfaf260ed81c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db86500000000000000000000000000000000000000000000000000000000000000000000000000000000a55b19dcfde8d2a2f81e74009250d72143d5da92000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c000000000000000000000000000000000000000000000000000000000000000000000000000000008024e9305ee26e1c0d4bec0b3d0f6980458585a9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000bda6008a2211eb61aa6e8a70d55928065822300a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000be953765e45fe69a6fb9abcc263c6ed564e6b0b900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b280" + diamond_init_batch_overhead_l1_gas: 1000000 + diamond_init_max_l2_gas_per_batch: 80000000 + diamond_init_max_pubdata_per_batch: 120000 + diamond_init_minimal_l2_gas_price: 250000000 + diamond_init_priority_tx_max_pubdata: 99000 + diamond_init_pubdata_pricing_mode: 0 + force_deployments_data: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000010e000000000000000000000000b5d9c3f41e434b91295bd7962db5c873cecce2be010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000e0a7aab01347ba96050f39ff6dcbc6138b463c69000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3" + l1_legacy_shared_bridge: "0xB5d9C3F41E434b91295BD7962db5c873cEcCE2be" + new_protocol_version: 128849018880 + old_protocol_version: 124554051585 + old_validator_timelock: "0x0000000000000000000000000000000000000000" + priority_tx_max_gas_limit: 72000000 + recursion_circuits_set_vks_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_leaf_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_node_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" +deployed_addresses: + access_control_restriction_addr: "0x0000000000000000000000000000000000000000" + blobs_zksync_os_l1_da_validator_addr: "0x625D05e3B76a6b132952b0Db286b2066F3a8caa4" + chain_admin: "0x0000000000000000000000000000000000000000" + l1_bytecodes_supplier_addr: "0x662B8fE285BB3aab483e75Ec46136e01aaa154f9" + l1_gateway_upgrade: "0x0000000000000000000000000000000000000000" + l1_governance_upgrade_timer: "0x7EaF3E1906f0022c71540b8a7EA2bB1e88E3472B" + l1_rollup_da_manager: "0xC90E4E4897421E9380d734b72221f5485C3fd116" + l1_transitionary_owner: "0x0000000000000000000000000000000000000000" + l2_wrapped_base_token_store_addr: "0x0000000000000000000000000000000000000000" + native_token_vault_addr: "0xF8d4A5195737043f45F998539D5C62Eee02E3426" + native_token_vault_implementation_addr: "0xd55E5C6584c44c69b68dB1d5952875e498c05a93" + rollup_l1_da_validator_addr: "0x9C46AB3fE6b8C9D56bB0A379395F1575ba94F8C9" + upgrade_stage_validator: "0x838Fdfcc9B5c48E1d3BC52a749e62460955F9383" + validator_timelock_addr: "0x73B668d8374DDB42c9e2f46fd5B754Ac215495bc" + validator_timelock_implementation_addr: "0x6D8b914BE789a7c25C63dBd8e7a1A9f92d5B016a" + validium_l1_da_validator_addr: "0x5DF2dB3EAf761f2FB5C1ba045222310b9CD1457F" + bridgehub: + bridgehub_implementation_addr: "0x48038d8f2cA01A706166bAcb514a7687814334b6" + bridgehub_proxy_addr: "0xc4FD2580C3487bba18D63f50301020132342fdbD" + chain_asset_handler_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_asset_handler_proxy_addr: "0xDfA2193b161d7bd45FC81b4E80225eebDc3CF96C" + ctm_deployment_tracker_implementation_addr: "0xad590A92b7C147976490F54EA792dF1FE20560Df" + ctm_deployment_tracker_proxy_addr: "0x6FCe8BB8480feBe1a8f3F5Ed083cF54703975477" + message_root_implementation_addr: "0x8833d86F92DBC47a3b485500DC71c428B3Db685E" + message_root_proxy_addr: "0xe7047cD9979D053ceb6dB637bc0383b87A3C7f58" + bridges: + bridged_standard_erc20_impl: "0xcdA829cF47a058f6C49EB2E3F09FF193f53b39dD" + bridged_token_beacon: "0x0000000000000000000000000000000000000000" + erc20_bridge_implementation_addr: "0xcEDEC45FF89a97AEB3A47cfaD75f0cB61Aa448fb" + erc20_bridge_proxy_addr: "0xDfe40B8Cd61DbC7a2E69a17664E508628920f663" + l1_asset_router_implementation_addr: "0x909C7F631851E30a63e035509f14376d242ec6EF" + l1_asset_router_proxy_addr: "0xB5d9C3F41E434b91295BD7962db5c873cEcCE2be" + l1_nullifier_implementation_addr: "0x099a416Aecd5ABc81942fad9da578c136955d8FE" + l1_nullifier_proxy_addr: "0x9e24E2c23933d30eF2DEB70A0D977Fb1Ca20AbEa" + shared_bridge_implementation_addr: "0x909C7F631851E30a63e035509f14376d242ec6EF" + state_transition: + admin_facet_addr: "0x792BF045Fd7eED1f442C161d72d4bFaF260Ed81C" + chain_type_manager_implementation_addr: "0x7b1D031BEb039705743371231196020825ED1e63" + default_upgrade_addr: "0x7b267129C2fE9BC2Ae40319df4BEDb3357290c34" + diamond_init_addr: "0xE2FF98d89a95f98c89db6Ac89c33aa679192A431" + executor_facet_addr: "0xBda6008A2211Eb61aA6e8a70d55928065822300A" + genesis_upgrade_addr: "0xbAb7fF0d9313232A67fdA32FD338720640419F3E" + getters_facet_addr: "0xa55B19DCFDe8d2a2F81E74009250d72143D5dA92" + mailbox_facet_addr: "0x8024E9305ee26E1C0d4bec0B3D0F6980458585a9" + state_transition_implementation_addr: "0x7b1D031BEb039705743371231196020825ED1e63" + verifier_addr: "0xBe953765e45FE69A6Fb9Abcc263c6Ed564e6B0b9" + verifier_fflonk_addr: "0xbEc00bB9F1BA69C3f7A20050fC373dD4e259eDe5" + verifier_plonk_addr: "0x348f02A9cE6517796F92782a5863F83d1ecDd32d" + constructor_verifier_fflonk_addr: "0xbEc00bB9F1BA69C3f7A20050fC373dD4e259eDe5" + constructor_verifier_plonk_addr: "0x70387e1Aef27eDAAe42700B8B2bd126A7c91164F" +gateway: + diamond_cut_data: 0x + upgrade_cut_data: 0x + gateway_state_transition: + admin_facet_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_proxy: "0x018389676b80E677C9FAc34d04408A1F8489Bd66" + chain_type_manager_proxy_admin: "0x9F52dB4AEa9277517c6779D65F90FE03d7533730" + default_upgrade_addr: "0x0000000000000000000000000000000000000000" + diamond_init_addr: "0x0000000000000000000000000000000000000000" + executor_facet_addr: "0x0000000000000000000000000000000000000000" + genesis_upgrade_addr: "0x0000000000000000000000000000000000000000" + getters_facet_addr: "0x0000000000000000000000000000000000000000" + mailbox_facet_addr: "0x0000000000000000000000000000000000000000" + rollup_da_manager: "0x5bbEbcB4f6fa0b6E05902402ED080FB4C44EC5D3" + rollup_l2_da_validator: "0x931661BAdBc221bd686446F17A0EA40aa5196779" + validator_timelock_addr: "0x0000000000000000000000000000000000000000" + validator_timelock_implementation_addr: "0x0000000000000000000000000000000000000000" + verifier_addr: "0x0000000000000000000000000000000000000000" + verifier_fflonk_addr: "0x0000000000000000000000000000000000000000" + verifier_plonk_addr: "0x0000000000000000000000000000000000000000" +transactions: + - "0x889cb35f66a6ccaed038b4f2d518b7065e9ec4a09bbd1168b811150df6349a8d" + - "0x3037af5af440b6de2edb5ae0148fd8e3f54a8efdf1d7356d2406b490463fc258" + - "0x5c93b29e4947f549d5102cc0cfd53986e43eb942799801d5be13efc9cb508a44" + - "0xf7f198cb968f0c153d657920d121a25c1cae64f8884d64072ee82a05048022dd" + - "0x32b3a096c781744ddc1475d3cfaff107fb013d24df3edd29f13acaa54223546f" + - "0xd8402187a16576664538aacfe40f52a85c4ef3d3cce3131e5832816329f20837" + - "0x209db4a2b69a9aedcfdca022c99d74165a5fcd78c8c798a573bafdc785cabd51" + - "0xbb0caf688122c9ad37f557e5c39145b0f7373f4a50b72c212af3d0a9a28e8cdd" + - "0x1f442d1a1ec9d8c7495016b25b541d0d922087b63670be5743c500778c484161" + - "0xf7e9e227bdf31ec94ba94efaa13d6e1009ca379a4b16244e4111dd9ea7631ca4" + - "0x053ed9b6c729899e1d63e6d20b206bd616beb82a1f19d61e7569b296cc78f0ed" + - "0xb4f119d1a67fbab45fab6184fb651015713f2f92656292a3cd8ab822dc5fb997" + - "0xf75460ba670ae0627124189bb97eded5f4e9db1d5c5c433d93ffb058b62620c5" + - "0x26fd74ca9a53998fe589b54445e82b7515f37e213427a3bd70c58c01aa62f4d7" + - "0x18993c6a89b6051da595500a290a43de5432de9b920971f910630e6fa4e436a5" + - "0xab9e276eea2424fbce911d1f99624031502d75f720845dfd9923f8991244bb9a" + - "0xe96fe500738c8a34e7d86762275882ad49a37693a63bc4e587c5c965ec483299" + - "0x0bda382828275c17ba130ef270095c2e06b6ca43b1dbd73fc17a49305a1aa8fa" + - "0x7ac9eaac5d597b50083749bf32e8277a860e96461f5fdc92c258d60065936907" + - "0xbfae26531498a3aed0f66dcdd4dbdfd59810dc58e96cbf7cdadbfd14ae1af79b" + - "0x75b810c171c6a2675c93c3fe68d5a6a0a71fc18e87364491f9dd3deeb8073f44" + - "0xd091350ac3ce32bb31aea2b77145c43c7cc5768f3c4d1e9d5c95ee0fd7755e17" + - "0xc286af2dded976f9d04a62fe6276fa1f4cfbfa4c7869ccad0f579d5943b1930f" + - "0x55644d34e823fd09dd92155bb51ba2c7e8f71cca6838ab39b3000e490eefaddd" + - "0xbd48d6f0ba927e6aa64849a59ebb5ea7606e25599c9fb7a74c99eae3a1f8e839" + - "0x8372a005e84bf8d0ff3db1abdad049ca83e1cbff685f90f444336a70a06380a8" + - "0x229ca744816e6b145e7e3f22de348b20dbe40a70701092b98b411423c34ec935" + - "0x176ea0ed47aea6b0e15e838c17702e3b3191a0e23393c3d752eb150c87aabb14" + - "0x2f0f98bf24a2388ea7ce33c66cdab909f6daf318c8bb7f782738c82aa106aa17" + - "0x3d5c5d914b193c074a124f74f8ccc2c64588f82ecfbe8f535782a61998a0d567" + - "0x9170f4995bffe979ca0e58a7c92aece7032087269b4e3dbf399763eab2f72ff9" + - "0x1bd7823ee223757472a4a806163d0e722216217bd8b5307f445ba47e50deb836" + - "0x276196a1e92858d101eceebd5ead7867a9b11a4f75082cbee71bff24bfcebebd" + - "0xf9791b3dba441a9e71867b6f78ec7175f7f524979c9af785fc4cf3996988f8e8" + - "0xa0ab69c397b04df4b90eb94a16a252e69b25a0362cd124151cfddb417845fa14" + - "0x3c6a74b976541faec4b57617549543219774082a3fd649f2423053dfcd4bd4bf" + - "0xef0a861b8e15d8222b5183c340f5d09487846de37bd300a1dd3aee84ab94f3b8" diff --git a/etc/upgrades/v31.1-airbender-fix/mainnet.yaml b/etc/upgrades/v31.1-airbender-fix/mainnet.yaml new file mode 100644 index 000000000000..f6b4caaf8bbe --- /dev/null +++ b/etc/upgrades/v31.1-airbender-fix/mainnet.yaml @@ -0,0 +1,119 @@ +chain_upgrade_diamond_cut: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000175a48b7d2d596d66d7b0dada23cf8909d8cfa2300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050416ef130300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da5e793b8ae713241d5cb681fd987704e59f745900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +create2_factory_addr: "0x4e59b44847b379578588920cA78FbF26c0B4956C" +create2_factory_salt: "0x3000000000000000000000000000000000000000000000000000001e00000001" +deployer_addr: "0x5555555590930f501c88B73Ea43B3EEb5A71643c" +era_chain_id: 324 +gateway_chain_id: 9075 +governance_upgrade_timer_initial_delay: 0 +l1_chain_id: 1 +max_expected_l1_gas_price: 30000000000 +owner_address: "0xC66f0B45c05cF654eeC093650FD67865E85E8566" +priority_txs_l2_gas_limit: 2000000 +transparent_proxy_admin: "0xC2a36181fB524a6bEfE639aFEd37A67e77d62cf1" +v29: 0x +test_upgrade_calls: + test_create_chain: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000303a465b659cbb0ab36ee643ea362c509eeb5213000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001244f113c88b000000000000000000000000000000000000000000000000000000000000022b0000000000000000000000001adf137f59949c9081157d5de1e002d1c992071f83e2fbc0a739b3c765de4c2b4bf8072a71ea8fbb09c8cf579c71425d8bc8804a00000000000000000000000000000000000000000000000000000000000000050000000000000000000000005555555590930f501c88b73ea43b3eeb5a71643c00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000122000000000000000000000000000000000000000000000000000000000000011200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000010a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000077e0eaf7220783b372eb694cecd68d2663797a440000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000a8af3cff5c286f07f148b9c5d4a7b3fc358b1a5e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db86500000000000000000000000000000000000000000000000000000000000000000000000000000000a433fcf5b1d6e9a74633fcd2391d71b49b20f4f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000883e3226558c7e0a1a6586003975dbcc226e7274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000d9232796ee7ad3d8eb38bef3a0c1eaf30de9d29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000da5e793b8ae713241d5cb681fd987704e59f745900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_create_chain_caller: "0x2cf3bD6a9056b39999F3883955E183F655345063" + test_upgrade_chain: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000b6d615084d7a72bf98c2bd35dd6abe824feb2dc7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000604fc57565f0000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000175a48b7d2d596d66d7b0dada23cf8909d8cfa2300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050416ef130300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da5e793b8ae713241d5cb681fd987704e59f745900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_upgrade_chain_caller: "0x6aED6A0aCaAa8E434d5d98e31D01175d08F409d2" +ecosystem_admin_calls: + server_notifier_upgrade: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e5f57e8791281920c1e1ffbb0bd70e3bd4c18a4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec4000000000000000000000000bfaa733261500101996a10a231794263567d52ab000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +governance_calls: + stage0_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" + stage1_calls: "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001cc000000000000000000000000000000000000000000000000000000000000023a00000000000000000000000001adf137f59949c9081157d5de1e002d1c992071f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001bc49b016b8b00000000000000000000000000000000000000000000000000000000000000200000000000000000000000002bf9b0b72573af5471c4f035271616139392acd8423c107626aff95d3d086eabd92132dc9485e021ae3cb4c7735d5e963578e3d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000001140000000000000000000000000000000000000000000000000000000000000006000000000000000000000000077e0eaf7220783b372eb694cecd68d2663797a440000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000a8af3cff5c286f07f148b9c5d4a7b3fc358b1a5e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db86500000000000000000000000000000000000000000000000000000000000000000000000000000000a433fcf5b1d6e9a74633fcd2391d71b49b20f4f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000883e3226558c7e0a1a6586003975dbcc226e7274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000d9232796ee7ad3d8eb38bef3a0c1eaf30de9d29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000da5e793b8ae713241d5cb681fd987704e59f745900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001440000000000000000000000008829ad80e425c646dab305381ff105169feece56010000f1477ebc7355591c664c501757b31e9cd0025d565546fc0054f28a6411000000000000000000000000d7800b45c05cf654eec093650fd67865e85e9677000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000076000000000000000000000000000000000000000000000000000000000000008c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000604cdf52a9a78024a7b5b1d31faa6de33eb6159ee71f02733c27de62106cb3d9ee00000000000000000000000000000000000000000000000000000000000030831dc8d8d6c1eb16ade1b790365a9007a3ca7247ee7de00b576b43e21d28918f9d0000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601c085665f2a51715c66b88f52f86f081e01bb941faf55d5fa9dbd6fe97cd683a0000000000000000000000000000000000000000000000000000000000002c5b5ad3d9403af0d911ee4aeadbbde9c353814fdbc7679c20c99f5f944c43f1dee00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000606dac35ffb85d51f76e2de0febb2b0f92ee424e38d51f8401773c17687a595d1c0000000000000000000000000000000000000000000000000000000000004580346683d96f68106a10b9f36edea22e1189e45255e05dd465c6d101ea2a360ab90000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000609df14aba83ab80ad0df8cd4146b743788f4fcf00d4c8e636040081d44497e639000000000000000000000000000000000000000000000000000000000000183d5865ccbc7d551fc1802e091886ffa94586436778d22ce646d4bcb392360df5c00000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000601a36318670b6ab973e68178a10d6107227fde6d027573d7668e61760d22a867a00000000000000000000000000000000000000000000000000000000000020064d5c32f28646ef26d746e078bd9d9c5797178e9959013bc13ec4ed42122d60220000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c30000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000060c49018245ed5bebb0e9124546c1716a564864c451ec6e65931cc80bbe5400cc60000000000000000000000000000000000000000000000000000000000003a13db0d981bf1867108c27f2c52334c4f31d8bb88e17f6955ce85930568086974600000000000000000000000000000000000000000000000000000000000000060b09a95cb43a3f5d388e945b68f8b8a814681d60e8252ed08cba7a3d591a152df0000000000000000000000000000000000000000000000000000000000000e0b09301da5bbb08e078e7a51cdb957dd25945efd0ec3b056137d344c929ecdc9c3000000000000000000000000000000000000000000000000000000000000000000000000000000001adf137f59949c9081157d5de1e002d1c992071f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000006442e52285100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000001e00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000001e000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000175a48b7d2d596d66d7b0dada23cf8909d8cfa2300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050416ef130300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da5e793b8ae713241d5cb681fd987704e59f745900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da5e793b8ae713241d5cb681fd987704e59f745900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000479ba509700000000000000000000000000000000000000000000000000000000" + stage2_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" +contracts_config: + diamond_cut_data: "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000077e0eaf7220783b372eb694cecd68d2663797a440000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000ce0000000000000000000000000a8af3cff5c286f07f148b9c5d4a7b3fc358b1a5e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000160e18b681000000000000000000000000000000000000000000000000000000001733894500000000000000000000000000000000000000000000000000000000fc57565f000000000000000000000000000000000000000000000000000000001cc5d1030000000000000000000000000000000000000000000000000000000021f603d700000000000000000000000000000000000000000000000000000000235d9eb5000000000000000000000000000000000000000000000000000000002765d0790000000000000000000000000000000000000000000000000000000027ae4c16000000000000000000000000000000000000000000000000000000002878fe74000000000000000000000000000000000000000000000000000000003f42d5dd0000000000000000000000000000000000000000000000000000000041cf49bb000000000000000000000000000000000000000000000000000000004623c91d000000000000000000000000000000000000000000000000000000004dd18bf5000000000000000000000000000000000000000000000000000000005b8987480000000000000000000000000000000000000000000000000000000064b554ad0000000000000000000000000000000000000000000000000000000064bf8d66000000000000000000000000000000000000000000000000000000006e762e9800000000000000000000000000000000000000000000000000000000a9f6d94100000000000000000000000000000000000000000000000000000000b4fcb57700000000000000000000000000000000000000000000000000000000b784610700000000000000000000000000000000000000000000000000000000be6f11cf00000000000000000000000000000000000000000000000000000000e76db86500000000000000000000000000000000000000000000000000000000000000000000000000000000a433fcf5b1d6e9a74633fcd2391d71b49b20f4f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000003006d49e5b000000000000000000000000000000000000000000000000000000000ec6b0b700000000000000000000000000000000000000000000000000000000fe26699e0000000000000000000000000000000000000000000000000000000018e3a941000000000000000000000000000000000000000000000000000000001de72e340000000000000000000000000000000000000000000000000000000022c5cf230000000000000000000000000000000000000000000000000000000029b98c670000000000000000000000000000000000000000000000000000000033ce93fe000000000000000000000000000000000000000000000000000000003408e470000000000000000000000000000000000000000000000000000000003591c1a000000000000000000000000000000000000000000000000000000000396073820000000000000000000000000000000000000000000000000000000039d7d4aa0000000000000000000000000000000000000000000000000000000046657fe90000000000000000000000000000000000000000000000000000000052ef6b2c000000000000000000000000000000000000000000000000000000005a59033500000000000000000000000000000000000000000000000000000000631f4bac000000000000000000000000000000000000000000000000000000006a27e8b5000000000000000000000000000000000000000000000000000000006e9960c30000000000000000000000000000000000000000000000000000000074f4d30d0000000000000000000000000000000000000000000000000000000079823c9a000000000000000000000000000000000000000000000000000000007a0ed627000000000000000000000000000000000000000000000000000000007b30c8da000000000000000000000000000000000000000000000000000000008708474e00000000000000000000000000000000000000000000000000000000946ebad100000000000000000000000000000000000000000000000000000000960dcf240000000000000000000000000000000000000000000000000000000098acd7a6000000000000000000000000000000000000000000000000000000009cd939e4000000000000000000000000000000000000000000000000000000009d1b5a8100000000000000000000000000000000000000000000000000000000a1954fc500000000000000000000000000000000000000000000000000000000adfca15e00000000000000000000000000000000000000000000000000000000af6a2dcd00000000000000000000000000000000000000000000000000000000b22dd78e00000000000000000000000000000000000000000000000000000000b8c2f66f00000000000000000000000000000000000000000000000000000000bd7c541200000000000000000000000000000000000000000000000000000000c3bbd2d700000000000000000000000000000000000000000000000000000000cdffacc600000000000000000000000000000000000000000000000000000000d046815600000000000000000000000000000000000000000000000000000000d86970d800000000000000000000000000000000000000000000000000000000db1f0bf900000000000000000000000000000000000000000000000000000000dd655bb000000000000000000000000000000000000000000000000000000000e5355c7500000000000000000000000000000000000000000000000000000000e81e0ba100000000000000000000000000000000000000000000000000000000ea6c029c00000000000000000000000000000000000000000000000000000000ef3f0bae00000000000000000000000000000000000000000000000000000000f4ff5e2e00000000000000000000000000000000000000000000000000000000f5c1182c00000000000000000000000000000000000000000000000000000000facd743b00000000000000000000000000000000000000000000000000000000fd791f3c00000000000000000000000000000000000000000000000000000000000000000000000000000000883e3226558c7e0a1a6586003975dbcc226e7274000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e042901c70000000000000000000000000000000000000000000000000000000012f43dab00000000000000000000000000000000000000000000000000000000eb6724190000000000000000000000000000000000000000000000000000000018b7fc2200000000000000000000000000000000000000000000000000000000263b7f8e000000000000000000000000000000000000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000079cf6165000000000000000000000000000000000000000000000000000000007efda2ae00000000000000000000000000000000000000000000000000000000b473318e00000000000000000000000000000000000000000000000000000000d077255100000000000000000000000000000000000000000000000000000000d07b90d100000000000000000000000000000000000000000000000000000000ddcc9eec00000000000000000000000000000000000000000000000000000000e4948f4300000000000000000000000000000000000000000000000000000000e896760d00000000000000000000000000000000000000000000000000000000000000000000000000000000d9232796ee7ad3d8eb38bef3a0c1eaf30de9d29200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000050b6db820000000000000000000000000000000000000000000000000000000000db9eb8700000000000000000000000000000000000000000000000000000000a085344d000000000000000000000000000000000000000000000000000000007ca4eff7000000000000000000000000000000000000000000000000000000009271e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000da5e793b8ae713241d5cb681fd987704e59f745900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000044aa200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000182b8000000000000000000000000000000000000000000000000000000000ee6b280" + diamond_init_batch_overhead_l1_gas: 1000000 + diamond_init_max_l2_gas_per_batch: 80000000 + diamond_init_max_pubdata_per_batch: 120000 + diamond_init_minimal_l2_gas_price: 250000000 + diamond_init_priority_tx_max_pubdata: 99000 + diamond_init_pubdata_pricing_mode: 0 + force_deployments_data: 0x + l1_legacy_shared_bridge: "0x8829AD80E425C646DAB305381ff105169FeEcE56" + new_protocol_version: 128849018881 + old_protocol_version: 128849018880 + old_validator_timelock: "0x0000000000000000000000000000000000000000" + priority_tx_max_gas_limit: 72000000 + recursion_circuits_set_vks_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_leaf_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_node_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" +deployed_addresses: + access_control_restriction_addr: "0x0000000000000000000000000000000000000000" + blobs_zksync_os_l1_da_validator_addr: "0x0000000000000000000000000000000000000000" + chain_admin: "0x0000000000000000000000000000000000000000" + l1_bytecodes_supplier_addr: "0xC9F20FC268Fc3e0e597660550033Bf2C24218fd8" + l1_gateway_upgrade: "0x0000000000000000000000000000000000000000" + l1_governance_upgrade_timer: "0x0000000000000000000000000000000000000000" + l1_rollup_da_manager: "0xE689e79a06D3D09f99C21E534cCF6a8b7C9b3C45" + l1_transitionary_owner: "0x0000000000000000000000000000000000000000" + l2_wrapped_base_token_store_addr: "0x0000000000000000000000000000000000000000" + native_token_vault_addr: "0xbeD1EB542f9a5aA6419Ff3deb921A372681111f6" + native_token_vault_implementation_addr: "0x0000000000000000000000000000000000000000" + rollup_l1_da_validator_addr: "0x0000000000000000000000000000000000000000" + upgrade_stage_validator: "0x0000000000000000000000000000000000000000" + validator_timelock_addr: "0x18cC381705761aa2d2e8ea62888a4029A0fAd3aB" + validator_timelock_implementation_addr: "0x0000000000000000000000000000000000000000" + validium_l1_da_validator_addr: "0x0000000000000000000000000000000000000000" + bridgehub: + bridgehub_implementation_addr: "0x0000000000000000000000000000000000000000" + bridgehub_proxy_addr: "0x303a465B659cBB0ab36eE643eA362c509EEb5213" + chain_asset_handler_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_asset_handler_proxy_addr: "0xDd5CB8B9037357B4cD37391A073798f8aaB61076" + ctm_deployment_tracker_implementation_addr: "0x0000000000000000000000000000000000000000" + ctm_deployment_tracker_proxy_addr: "0x6078F6B379f103de1Aa912dc46bb8Df0c8809860" + message_root_implementation_addr: "0x0000000000000000000000000000000000000000" + message_root_proxy_addr: "0x5Ce9257755391D1509cD4eC1899d3F88A57BB4aD" + bridges: + bridged_standard_erc20_impl: "0x0000000000000000000000000000000000000000" + bridged_token_beacon: "0x0000000000000000000000000000000000000000" + erc20_bridge_implementation_addr: "0x0000000000000000000000000000000000000000" + erc20_bridge_proxy_addr: "0x57891966931Eb4Bb6FB81430E6cE0A03AAbDe063" + l1_asset_router_implementation_addr: "0x0000000000000000000000000000000000000000" + l1_asset_router_proxy_addr: "0x8829AD80E425C646DAB305381ff105169FeEcE56" + l1_nullifier_implementation_addr: "0x0000000000000000000000000000000000000000" + l1_nullifier_proxy_addr: "0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB" + shared_bridge_implementation_addr: "0x0000000000000000000000000000000000000000" + state_transition: + admin_facet_addr: "0xa8AF3cfF5c286F07f148b9C5d4A7b3fC358b1A5E" + chain_type_manager_implementation_addr: "0x0000000000000000000000000000000000000000" + default_upgrade_addr: "0x175A48b7d2d596D66D7b0DaDA23cf8909D8cfA23" + diamond_init_addr: "0x77E0EAf7220783b372eB694ceCd68d2663797A44" + executor_facet_addr: "0xd9232796Ee7AD3d8eB38BeF3a0c1eAF30De9d292" + genesis_upgrade_addr: "0x2bf9B0B72573af5471c4f035271616139392Acd8" + getters_facet_addr: "0xa433FcF5b1d6E9a74633fcd2391D71B49B20F4F3" + mailbox_facet_addr: "0x883E3226558C7e0A1A6586003975DBcc226E7274" + state_transition_implementation_addr: "0x0000000000000000000000000000000000000000" + verifier_addr: "0xDa5e793b8ae713241D5CB681fD987704e59F7459" + verifier_fflonk_addr: "0x254a8bCff6D4458A87894d138EAF2F1Adb2e454a" + verifier_plonk_addr: "0x433fE66eeB710a6A0f5C70D4CD2a815A078002b1" +gateway: + diamond_cut_data: 0x + upgrade_cut_data: 0x + gateway_state_transition: + admin_facet_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_proxy: "0x912B84EEEEBeca74d307b9a2b09c68332aa5426C" + chain_type_manager_proxy_admin: "0x0A8a176B6F5962122C6E8F8815278f873D74021f" + default_upgrade_addr: "0x0000000000000000000000000000000000000000" + diamond_init_addr: "0x0000000000000000000000000000000000000000" + executor_facet_addr: "0x0000000000000000000000000000000000000000" + genesis_upgrade_addr: "0x0000000000000000000000000000000000000000" + getters_facet_addr: "0x0000000000000000000000000000000000000000" + mailbox_facet_addr: "0x0000000000000000000000000000000000000000" + rollup_da_manager: "0x5E12D7E0bB68029afbeC83ccB9E8eDE6019ef073" + rollup_l2_da_validator: "0x595b8C88B9e5f3a4c596C3e81BE6e11D53Bb9200" + validator_timelock_addr: "0x0000000000000000000000000000000000000000" + validator_timelock_implementation_addr: "0x0000000000000000000000000000000000000000" + verifier_addr: "0x0000000000000000000000000000000000000000" + verifier_fflonk_addr: "0x0000000000000000000000000000000000000000" + verifier_plonk_addr: "0x0000000000000000000000000000000000000000" +transactions: + - "0x13f02cf1c0e705b3665ba145f41acff367537bb6975151ca823eb1128ebf63e1" + - "0xafe49395fe46ed2d188316b6dc6df39302539bbd46f5889e4dc9cb0dfadbc2b5" + - "0x914b01b618650edc47db9355a2d206f21fa89d2409fcfe7957a4806c4410c262" + - "0x659667a58a4ac54ae48b20f7dcf2aea14e14a51116a2ef9f42a8f7d6f03f71ec" + - "0xd9a72fe880a5361f147c2b7b21cb3cb2f144f0485a230df21f2ce12adde646f1" + - "0x268e829eeb41f759a3c65c989c777ecd6eca43b4825362c9a149db948a8e0759" + - "0x9dc8be5b4ac5cf690abf7b41a45498022e27e779add131764ea7a83e4f323ed7" diff --git a/etc/upgrades/v31.1-airbender-fix/stage.yaml b/etc/upgrades/v31.1-airbender-fix/stage.yaml new file mode 100644 index 000000000000..e7ce8804f52c --- /dev/null +++ b/etc/upgrades/v31.1-airbender-fix/stage.yaml @@ -0,0 +1,118 @@ +chain_upgrade_diamond_cut: "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000072d872a8360d9195d35a69374302e311d15da61700000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050416ef1303000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000001fa37a45b7b999dee86ec738e6e1c7f0d09e513e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +create2_factory_addr: "0x4e59b44847b379578588920cA78FbF26c0B4956C" +create2_factory_salt: "0x1000000000000000000000000000000000000000000000000000001e00000001" +deployer_addr: "0xF378708B88841Abb63e2316E4Fc8f29469beE885" +era_chain_id: 270 +gateway_chain_id: 123 +governance_upgrade_timer_initial_delay: 1200 +l1_chain_id: 11155111 +max_expected_l1_gas_price: 50000000000 +owner_address: "0xC66f0B45c05cF654eeC093650FD67865E85E8566" +priority_txs_l2_gas_limit: 2000000 +transparent_proxy_admin: "0xCb7F8e556Ef02771eA32F54e767D6F9742ED31c2" +v29: 0x +test_upgrade_calls: + test_create_chain: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000236d1c3ff32bd0ca26b72af287e895627c0478ce0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4f113c88b000000000000000000000000000000000000000000000000000000000000022b00000000000000000000000073bee414c6e006525f3cceedf6d8004c0370502e6337a96bd2cd359fa0bae3bbedfca736753213c95037ae158c5fa7c048ae21120000000000000000000000000000000000000000000000000000000000000005000000000000000000000000f378708b88841abb63e2316e4fc8f29469bee88500000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_create_chain_caller: "0xa6ED12b87D2e6Ea039d27e1FFbDC24915FFd3042" + test_upgrade_chain: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000098a0d85435a0e2834142bfd24a30e0c0b6866de2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000604fc57565f0000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000072d872a8360d9195d35a69374302e311d15da61700000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050416ef1303000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000001fa37a45b7b999dee86ec738e6e1c7f0d09e513e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_upgrade_chain_caller: "0xaDa529f4C9c385b97067B2c437009B825E8945DD" +ecosystem_admin_calls: + server_notifier_upgrade: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e5f57e8791281920c1e1ffbb0bd70e3bd4c18a4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec4000000000000000000000000bfaa733261500101996a10a231794263567d52ab000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +governance_calls: + stage0_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" + stage1_calls: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000072000000000000000000000000073bee414c6e006525f3cceedf6d8004c0370502e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000006442e52285100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000001e00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000001e00000001000000000000000000000000000000000000000000000000000000000000006000000000000000000000000072d872a8360d9195d35a69374302e311d15da61700000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050416ef1303000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000001fa37a45b7b999dee86ec738e6e1c7f0d09e513e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001fa37a45b7b999dee86ec738e6e1c7f0d09e513e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000479ba509700000000000000000000000000000000000000000000000000000000" + stage2_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" +contracts_config: + diamond_cut_data: 0x + diamond_init_batch_overhead_l1_gas: 1000000 + diamond_init_max_l2_gas_per_batch: 80000000 + diamond_init_max_pubdata_per_batch: 120000 + diamond_init_minimal_l2_gas_price: 250000000 + diamond_init_priority_tx_max_pubdata: 99000 + diamond_init_pubdata_pricing_mode: 0 + force_deployments_data: 0x + l1_legacy_shared_bridge: "0xfD3130Ea0e8B7Dd61Ac3663328a66d97eb02f84b" + new_protocol_version: 128849018881 + old_protocol_version: 128849018880 + old_validator_timelock: "0x0000000000000000000000000000000000000000" + priority_tx_max_gas_limit: 72000000 + recursion_circuits_set_vks_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_leaf_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_node_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" +deployed_addresses: + access_control_restriction_addr: "0x0000000000000000000000000000000000000000" + blobs_zksync_os_l1_da_validator_addr: "0x0000000000000000000000000000000000000000" + chain_admin: "0x0000000000000000000000000000000000000000" + l1_bytecodes_supplier_addr: "0x662B8fE285BB3aab483e75Ec46136e01aaa154f9" + l1_gateway_upgrade: "0x0000000000000000000000000000000000000000" + l1_governance_upgrade_timer: "0x0000000000000000000000000000000000000000" + l1_rollup_da_manager: "0xeb7c0DAAdDFb52AFa05400b489e7497b271d6122" + l1_transitionary_owner: "0x0000000000000000000000000000000000000000" + l2_wrapped_base_token_store_addr: "0x0000000000000000000000000000000000000000" + native_token_vault_addr: "0x257CE1e946c9C6531E2C9deBF7fcf821F9467f73" + native_token_vault_implementation_addr: "0x0000000000000000000000000000000000000000" + rollup_l1_da_validator_addr: "0x0000000000000000000000000000000000000000" + upgrade_stage_validator: "0x0000000000000000000000000000000000000000" + validator_timelock_addr: "0x1E4299F7a19597E09bD8593AB7B68277183e9778" + validator_timelock_implementation_addr: "0x0000000000000000000000000000000000000000" + validium_l1_da_validator_addr: "0x0000000000000000000000000000000000000000" + bridgehub: + bridgehub_implementation_addr: "0x0000000000000000000000000000000000000000" + bridgehub_proxy_addr: "0x236D1c3Ff32Bd0Ca26b72Af287E895627c0478cE" + chain_asset_handler_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_asset_handler_proxy_addr: "0xCEe1A9d2FE1c587B72F115974d33296C1F9ac35d" + ctm_deployment_tracker_implementation_addr: "0x0000000000000000000000000000000000000000" + ctm_deployment_tracker_proxy_addr: "0x25E04b7d1fC963aB8e5fEB0797f7a943E260e8b6" + message_root_implementation_addr: "0x0000000000000000000000000000000000000000" + message_root_proxy_addr: "0x280D3AD9fbDE5daAaA8A5Df0EB7bA6E2bd5bc39f" + bridges: + bridged_standard_erc20_impl: "0x0000000000000000000000000000000000000000" + bridged_token_beacon: "0x0000000000000000000000000000000000000000" + erc20_bridge_implementation_addr: "0x0000000000000000000000000000000000000000" + erc20_bridge_proxy_addr: "0x7303B5Ce64f1ADB0558572611a0b90620b6dd5F4" + l1_asset_router_implementation_addr: "0x0000000000000000000000000000000000000000" + l1_asset_router_proxy_addr: "0xfD3130Ea0e8B7Dd61Ac3663328a66d97eb02f84b" + l1_nullifier_implementation_addr: "0x0000000000000000000000000000000000000000" + l1_nullifier_proxy_addr: "0x6F03861D12E6401623854E494beACd66BC46e6F0" + shared_bridge_implementation_addr: "0x0000000000000000000000000000000000000000" + state_transition: + admin_facet_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_implementation_addr: "0x0000000000000000000000000000000000000000" + default_upgrade_addr: "0x72D872A8360D9195d35A69374302E311D15Da617" + diamond_init_addr: "0x0000000000000000000000000000000000000000" + executor_facet_addr: "0x0000000000000000000000000000000000000000" + genesis_upgrade_addr: "0x6b9Eb97d2dC791977bbB952D4e9933785c3aAAd0" + getters_facet_addr: "0x0000000000000000000000000000000000000000" + mailbox_facet_addr: "0x0000000000000000000000000000000000000000" + state_transition_implementation_addr: "0x0000000000000000000000000000000000000000" + verifier_addr: "0x1Fa37a45B7B999DEe86eC738E6E1C7f0D09e513E" + verifier_fflonk_addr: "0x506816f7f282F66184a63c5BD06829A25fe224F7" + verifier_plonk_addr: "0x2d1Ee78AD2B56330e4B43FEC43F09AE98c07501a" +gateway: + diamond_cut_data: 0x + upgrade_cut_data: 0x + gateway_state_transition: + admin_facet_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_proxy: "0x018389676b80E677C9FAc34d04408A1F8489Bd66" + chain_type_manager_proxy_admin: "0x9F52dB4AEa9277517c6779D65F90FE03d7533730" + default_upgrade_addr: "0x0000000000000000000000000000000000000000" + diamond_init_addr: "0x0000000000000000000000000000000000000000" + executor_facet_addr: "0x0000000000000000000000000000000000000000" + genesis_upgrade_addr: "0x0000000000000000000000000000000000000000" + getters_facet_addr: "0x0000000000000000000000000000000000000000" + mailbox_facet_addr: "0x0000000000000000000000000000000000000000" + rollup_da_manager: "0x5bbEbcB4f6fa0b6E05902402ED080FB4C44EC5D3" + rollup_l2_da_validator: "0x931661BAdBc221bd686446F17A0EA40aa5196779" + validator_timelock_addr: "0x0000000000000000000000000000000000000000" + validator_timelock_implementation_addr: "0x0000000000000000000000000000000000000000" + verifier_addr: "0x0000000000000000000000000000000000000000" + verifier_fflonk_addr: "0x0000000000000000000000000000000000000000" + verifier_plonk_addr: "0x0000000000000000000000000000000000000000" +transactions: + - "0xb97a384a41dd0a807f3bbb9b4bb9a141b1aaf55a6a66daa265b9f7b7a49508b0" + - "0x6ec846ea896a3fb71e52660de26d5f7cf0dbf4996c122c01086c18ee89f575f7" + - "0xf5610f863848d28b9730d47ffb9ab33b0e82cbbee5668d95b89d9fb70b7a169b" + - "0xeca81c6deecab311c4fa863d55c0b4e33a6812b4a36ea1e1de49b9951fb1b03c" + - "0x3eee9d019947f5b0b908b9053edd265a76602d3958aaba17f84afb8f6366c204" + - "0xcd938178947c2123e544e6c882007863829fb8d4ad72451489fac8ee6998318e" diff --git a/etc/upgrades/v31.1-airbender-fix/testnet.yaml b/etc/upgrades/v31.1-airbender-fix/testnet.yaml new file mode 100644 index 000000000000..8dfbfb2da27b --- /dev/null +++ b/etc/upgrades/v31.1-airbender-fix/testnet.yaml @@ -0,0 +1,118 @@ +chain_upgrade_diamond_cut: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000175a48b7d2d596d66d7b0dada23cf8909d8cfa2300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050416ef130300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000af288d3c1a2cee6f1eec5873fc66c43fa539fe6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +create2_factory_addr: "0x4e59b44847b379578588920cA78FbF26c0B4956C" +create2_factory_salt: "0x3000000000000000000000000000000000000000000000000000001e00000001" +deployer_addr: "0xF378708B88841Abb63e2316E4Fc8f29469beE885" +era_chain_id: 531050204 +gateway_chain_id: 531050204 +governance_upgrade_timer_initial_delay: 1200 +l1_chain_id: 11155111 +max_expected_l1_gas_price: 50000000000 +owner_address: "0xcf96aAb01347BA96050F39Ff6dcbC6138b462b58" +priority_txs_l2_gas_limit: 2000000 +transparent_proxy_admin: "0xE00456791Da489418355B0a6b27965A54c7C01d2" +v29: 0x +test_upgrade_calls: + test_create_chain: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000c4fd2580c3487bba18d63f50301020132342fdbd0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4f113c88b000000000000000000000000000000000000000000000000000000000000022b00000000000000000000000054d55e74de9c6003e7a68a1fe70e633f05761eb593c12866ad3d6463b48117548684daafedf2f41186eb2f10fa7ee3836062aa010000000000000000000000000000000000000000000000000000000000000005000000000000000000000000f378708b88841abb63e2316e4fc8f29469bee88500000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_create_chain_caller: "0x7cbdDA00285de05a1353803db38770043e359B6d" + test_upgrade_chain: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000096082fc0d815955795531a435c16ffbea5690720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000604fc57565f0000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000175a48b7d2d596d66d7b0dada23cf8909d8cfa2300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050416ef130300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000af288d3c1a2cee6f1eec5873fc66c43fa539fe6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + test_upgrade_chain_caller: "0x88cBedcda9b0D412c0A1Ae91572D1C18C7A5d328" +ecosystem_admin_calls: + server_notifier_upgrade: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000fa181338785bf9427a367ffce6bfe2c81586b3d900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004499a88ec4000000000000000000000000d9a3c35f2dc092e6cd390a01aa9ffb3c23533c96000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +governance_calls: + stage0_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" + stage1_calls: "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000072000000000000000000000000054d55e74de9c6003e7a68a1fe70e633f05761eb50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000006442e52285100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000001e00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000001e000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000175a48b7d2d596d66d7b0dada23cf8909d8cfa2300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050416ef130300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000af288d3c1a2cee6f1eec5873fc66c43fa539fe6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000af288d3c1a2cee6f1eec5873fc66c43fa539fe6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000479ba509700000000000000000000000000000000000000000000000000000000" + stage2_calls: "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000" +contracts_config: + diamond_cut_data: 0x + diamond_init_batch_overhead_l1_gas: 1000000 + diamond_init_max_l2_gas_per_batch: 80000000 + diamond_init_max_pubdata_per_batch: 120000 + diamond_init_minimal_l2_gas_price: 250000000 + diamond_init_priority_tx_max_pubdata: 99000 + diamond_init_pubdata_pricing_mode: 0 + force_deployments_data: 0x + l1_legacy_shared_bridge: "0xB5d9C3F41E434b91295BD7962db5c873cEcCE2be" + new_protocol_version: 128849018881 + old_protocol_version: 128849018880 + old_validator_timelock: "0x0000000000000000000000000000000000000000" + priority_tx_max_gas_limit: 72000000 + recursion_circuits_set_vks_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_leaf_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" + recursion_node_level_vk_hash: "0x0000000000000000000000000000000000000000000000000000000000000000" +deployed_addresses: + access_control_restriction_addr: "0x0000000000000000000000000000000000000000" + blobs_zksync_os_l1_da_validator_addr: "0x0000000000000000000000000000000000000000" + chain_admin: "0x0000000000000000000000000000000000000000" + l1_bytecodes_supplier_addr: "0x3ad11E8BAAa24708086EEdaEE28722B8c1489e3b" + l1_gateway_upgrade: "0x0000000000000000000000000000000000000000" + l1_governance_upgrade_timer: "0x0000000000000000000000000000000000000000" + l1_rollup_da_manager: "0xB168490e38E5E7e1B8eB256a701Ee8314Cbf0E15" + l1_transitionary_owner: "0x0000000000000000000000000000000000000000" + l2_wrapped_base_token_store_addr: "0x0000000000000000000000000000000000000000" + native_token_vault_addr: "0xF8d4A5195737043f45F998539D5C62Eee02E3426" + native_token_vault_implementation_addr: "0x0000000000000000000000000000000000000000" + rollup_l1_da_validator_addr: "0x0000000000000000000000000000000000000000" + upgrade_stage_validator: "0x0000000000000000000000000000000000000000" + validator_timelock_addr: "0x73B668d8374DDB42c9e2f46fd5B754Ac215495bc" + validator_timelock_implementation_addr: "0x0000000000000000000000000000000000000000" + validium_l1_da_validator_addr: "0x0000000000000000000000000000000000000000" + bridgehub: + bridgehub_implementation_addr: "0x0000000000000000000000000000000000000000" + bridgehub_proxy_addr: "0xc4FD2580C3487bba18D63f50301020132342fdbD" + chain_asset_handler_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_asset_handler_proxy_addr: "0xDfA2193b161d7bd45FC81b4E80225eebDc3CF96C" + ctm_deployment_tracker_implementation_addr: "0x0000000000000000000000000000000000000000" + ctm_deployment_tracker_proxy_addr: "0x6FCe8BB8480feBe1a8f3F5Ed083cF54703975477" + message_root_implementation_addr: "0x0000000000000000000000000000000000000000" + message_root_proxy_addr: "0xe7047cD9979D053ceb6dB637bc0383b87A3C7f58" + bridges: + bridged_standard_erc20_impl: "0x0000000000000000000000000000000000000000" + bridged_token_beacon: "0x0000000000000000000000000000000000000000" + erc20_bridge_implementation_addr: "0x0000000000000000000000000000000000000000" + erc20_bridge_proxy_addr: "0xDfe40B8Cd61DbC7a2E69a17664E508628920f663" + l1_asset_router_implementation_addr: "0x0000000000000000000000000000000000000000" + l1_asset_router_proxy_addr: "0xB5d9C3F41E434b91295BD7962db5c873cEcCE2be" + l1_nullifier_implementation_addr: "0x0000000000000000000000000000000000000000" + l1_nullifier_proxy_addr: "0x9e24E2c23933d30eF2DEB70A0D977Fb1Ca20AbEa" + shared_bridge_implementation_addr: "0x0000000000000000000000000000000000000000" + state_transition: + admin_facet_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_implementation_addr: "0x0000000000000000000000000000000000000000" + default_upgrade_addr: "0x175A48b7d2d596D66D7b0DaDA23cf8909D8cfA23" + diamond_init_addr: "0x0000000000000000000000000000000000000000" + executor_facet_addr: "0x0000000000000000000000000000000000000000" + genesis_upgrade_addr: "0xbAb7fF0d9313232A67fdA32FD338720640419F3E" + getters_facet_addr: "0x0000000000000000000000000000000000000000" + mailbox_facet_addr: "0x0000000000000000000000000000000000000000" + state_transition_implementation_addr: "0x0000000000000000000000000000000000000000" + verifier_addr: "0xaF288D3c1A2CEe6f1EEc5873fc66C43Fa539Fe69" + verifier_fflonk_addr: "0x254a8bCff6D4458A87894d138EAF2F1Adb2e454a" + verifier_plonk_addr: "0x433fE66eeB710a6A0f5C70D4CD2a815A078002b1" +gateway: + diamond_cut_data: 0x + upgrade_cut_data: 0x + gateway_state_transition: + admin_facet_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_implementation_addr: "0x0000000000000000000000000000000000000000" + chain_type_manager_proxy: "0x018389676b80E677C9FAc34d04408A1F8489Bd66" + chain_type_manager_proxy_admin: "0x9F52dB4AEa9277517c6779D65F90FE03d7533730" + default_upgrade_addr: "0x0000000000000000000000000000000000000000" + diamond_init_addr: "0x0000000000000000000000000000000000000000" + executor_facet_addr: "0x0000000000000000000000000000000000000000" + genesis_upgrade_addr: "0x0000000000000000000000000000000000000000" + getters_facet_addr: "0x0000000000000000000000000000000000000000" + mailbox_facet_addr: "0x0000000000000000000000000000000000000000" + rollup_da_manager: "0x5bbEbcB4f6fa0b6E05902402ED080FB4C44EC5D3" + rollup_l2_da_validator: "0x931661BAdBc221bd686446F17A0EA40aa5196779" + validator_timelock_addr: "0x0000000000000000000000000000000000000000" + validator_timelock_implementation_addr: "0x0000000000000000000000000000000000000000" + verifier_addr: "0x0000000000000000000000000000000000000000" + verifier_fflonk_addr: "0x0000000000000000000000000000000000000000" + verifier_plonk_addr: "0x0000000000000000000000000000000000000000" +transactions: + - "0xd17bbd9258a260415a21393237c69c85cdd63b3df693dc812f62234e7e26dc68" + - "0x22ce3ebd5d6bff2c82d3896e418f839f5e74e9f2f6c054459ed51485d1dabedd" + - "0xf76338a4c052f272573105861fbd6dfafbbfd804cbc102afc0eebe9ac51f517b" + - "0x96171f786afb3346592c9f7c792cbf35765cb798a0ba848a9284eca44cf4a816" + - "0x5f0ec345615a4400bdb8ee9b4907e7570bc150c67bcd7d25d697e348d0dc8d9b" + - "0xc75c7c36b17ce3e30866ff69fc8056732a001ba696a2387f36d10afeeb58a5c6" diff --git a/infrastructure/scripts/interop.sh b/infrastructure/scripts/interop.sh index 24eabb0c14d5..ab769ecdd3b8 100755 --- a/infrastructure/scripts/interop.sh +++ b/infrastructure/scripts/interop.sh @@ -4,17 +4,17 @@ zkstack dev clean containers && zkstack up -o false zkstack dev contracts zkstack ecosystem init --deploy-paymaster --deploy-erc20 \ - --deploy-ecosystem --l1-rpc-url=http://localhost:8545 \ + --deploy-ecosystem --l1-rpc-url=http://127.0.0.1:8545 \ --server-db-url=postgres://postgres:notsecurepassword@localhost:5432 \ --server-db-name=zksync_server_localhost_era \ --ignore-prerequisites --observability=false \ --chain era \ --update-submodules false - + zkstack dev generate-genesis zkstack ecosystem init --deploy-paymaster --deploy-erc20 \ - --deploy-ecosystem --l1-rpc-url=http://localhost:8545 \ + --deploy-ecosystem --l1-rpc-url=http://127.0.0.1:8545 \ --server-db-url=postgres://postgres:notsecurepassword@localhost:5432 \ --server-db-name=zksync_server_localhost_era \ --ignore-prerequisites --observability=false \ @@ -36,7 +36,7 @@ zkstack chain create \ zkstack chain init \ --deploy-paymaster \ - --l1-rpc-url=http://localhost:8545 \ + --l1-rpc-url=http://127.0.0.1:8545 \ --server-db-url=postgres://postgres:notsecurepassword@localhost:5432 \ --server-db-name=zksync_server_localhost_validium \ --chain validium --update-submodules false \ @@ -57,7 +57,7 @@ zkstack chain create \ zkstack chain init \ --deploy-paymaster \ - --l1-rpc-url=http://localhost:8545 \ + --l1-rpc-url=http://127.0.0.1:8545 \ --server-db-url=postgres://postgres:notsecurepassword@localhost:5432 \ --server-db-name=zksync_server_localhost_gateway \ --chain gateway --update-submodules false diff --git a/yarn.lock b/yarn.lock index 5228a6c1e09d..617a6784f28f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4609,7 +4609,7 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -blakejs@^1.1.0: +blakejs@^1.1.0, blakejs@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== diff --git a/zkstack_cli/crates/config/src/contracts.rs b/zkstack_cli/crates/config/src/contracts.rs index 88a6545c59c0..ad4afb5d5afb 100644 --- a/zkstack_cli/crates/config/src/contracts.rs +++ b/zkstack_cli/crates/config/src/contracts.rs @@ -13,8 +13,8 @@ use crate::{ forge_interface::{ deploy_ecosystem::output::{DeployCTMOutput, DeployL1CoreContractsOutput}, deploy_l2_contracts::output::{ - ConsensusRegistryOutput, DefaultL2UpgradeOutput, InitializeBridgeOutput, - L2DAValidatorAddressOutput, Multicall3Output, TimestampAsserterOutput, + ConsensusRegistryOutput, DefaultL2UpgradeOutput, Multicall3Output, + TimestampAsserterOutput, }, register_chain::output::RegisterChainOutput, }, @@ -94,6 +94,7 @@ impl CoreContractsConfig { multicall3_addr: self.multicall3_addr, avail_l1_da_validator_addr: Some(ctm.avail_l1_da_validator_addr), no_da_validium_l1_validator_addr: Some(ctm.no_da_validium_l1_validator_addr), + blobs_zksync_os_l1_da_validator_addr: ctm.blobs_zksync_os_l1_da_validator_addr, }, proof_manager_contracts: self.proof_manager_contracts.clone(), // L2 fields will be set later, after L2 deployment @@ -260,7 +261,6 @@ impl CoreContractsConfig { .deployed_addresses .state_transition .bytecodes_supplier_addr, - expected_rollup_l2_da_validator: deploy_ctm_output.expected_rollup_l2_da_validator_addr, l1_wrapped_base_token_store: None, server_notifier_proxy_addr: deploy_ctm_output .deployed_addresses @@ -289,6 +289,9 @@ impl CoreContractsConfig { no_da_validium_l1_validator_addr: deploy_ctm_output .deployed_addresses .no_da_validium_l1_validator_addr, + blobs_zksync_os_l1_da_validator_addr: deploy_ctm_output + .deployed_addresses + .blobs_zksync_os_l1_da_validator_addr, avail_l1_da_validator_addr: deploy_ctm_output .deployed_addresses .avail_l1_da_validator_addr, @@ -342,14 +345,10 @@ impl ContractsConfig { Ok(()) } - pub fn set_l2_shared_bridge( - &mut self, - initialize_bridges_output: &InitializeBridgeOutput, - ) -> anyhow::Result<()> { + pub fn set_l2_shared_bridge(&mut self) -> anyhow::Result<()> { self.bridges.shared.l2_address = Some(L2_ASSET_ROUTER_ADDRESS); self.bridges.erc20.l2_address = Some(L2_ASSET_ROUTER_ADDRESS); self.l2.l2_native_token_vault_proxy_addr = Some(L2_NATIVE_TOKEN_VAULT_ADDRESS); - self.l2.da_validator_addr = Some(initialize_bridges_output.l2_da_validator_address); Ok(()) } @@ -385,14 +384,6 @@ impl ContractsConfig { self.l2.timestamp_asserter_addr = Some(timestamp_asserter_output.timestamp_asserter); Ok(()) } - - pub fn set_l2_da_validator_address( - &mut self, - output: &L2DAValidatorAddressOutput, - ) -> anyhow::Result<()> { - self.l2.da_validator_addr = Some(output.l2_da_validator_address); - Ok(()) - } } impl FileConfigWithDefaultName for ContractsConfig { @@ -442,7 +433,6 @@ pub struct ChainTransitionManagerContracts { pub diamond_cut_data: String, pub force_deployments_data: Option, pub l1_bytecodes_supplier_addr: Address, - pub expected_rollup_l2_da_validator: Address, pub l1_wrapped_base_token_store: Option
, pub server_notifier_proxy_addr: Address, pub default_upgrade_addr: Address, @@ -450,6 +440,7 @@ pub struct ChainTransitionManagerContracts { pub verifier_addr: Address, pub rollup_l1_da_validator_addr: Address, pub no_da_validium_l1_validator_addr: Address, + pub blobs_zksync_os_l1_da_validator_addr: Option
, pub avail_l1_da_validator_addr: Address, pub l1_rollup_da_manager: Address, } @@ -519,6 +510,9 @@ pub struct L1Contracts { pub no_da_validium_l1_validator_addr: Option
, // `Option` to be able to parse configs from pre-gateway protocol version. #[serde(skip_serializing_if = "Option::is_none")] + pub blobs_zksync_os_l1_da_validator_addr: Option
, + // `Option` to be able to parse configs from pre-gateway protocol version. + #[serde(skip_serializing_if = "Option::is_none")] pub transaction_filterer_addr: Option
, } diff --git a/zkstack_cli/crates/config/src/forge_interface/deploy_ecosystem/input.rs b/zkstack_cli/crates/config/src/forge_interface/deploy_ecosystem/input.rs index 27f953d6c8d9..f8e93e1b8962 100644 --- a/zkstack_cli/crates/config/src/forge_interface/deploy_ecosystem/input.rs +++ b/zkstack_cli/crates/config/src/forge_interface/deploy_ecosystem/input.rs @@ -7,7 +7,10 @@ use ethers::{ use rand::Rng; use serde::{Deserialize, Serialize}; use zkstack_cli_types::{L1Network, VMOption}; -use zksync_basic_types::{protocol_version::ProtocolSemanticVersion, u256_to_h256, L2ChainId}; +use zksync_basic_types::{ + protocol_version::{ProtocolSemanticVersion, ProtocolVersionId}, + u256_to_h256, L2ChainId, +}; use crate::{ consts::INITIAL_DEPLOYMENT_FILE, @@ -52,7 +55,11 @@ impl GenesisInput { default_aa_hash: one, evm_emulator_hash: one, rollup_last_leaf_index: 0, - protocol_version: Default::default(), + // TODO get it from genesis file + protocol_version: ProtocolSemanticVersion::new( + ProtocolVersionId::Version30, + 1.into(), + ), }) } } diff --git a/zkstack_cli/crates/config/src/forge_interface/deploy_ecosystem/output.rs b/zkstack_cli/crates/config/src/forge_interface/deploy_ecosystem/output.rs index fab86b2312d7..c4fd3bc17c5b 100644 --- a/zkstack_cli/crates/config/src/forge_interface/deploy_ecosystem/output.rs +++ b/zkstack_cli/crates/config/src/forge_interface/deploy_ecosystem/output.rs @@ -36,7 +36,6 @@ impl FileConfigTrait for DeployL1CoreContractsOutput {} pub struct DeployCTMOutput { pub contracts_config: DeployCTMContractsConfigOutput, pub deployed_addresses: DeployCTMDeployedAddressesOutput, - pub expected_rollup_l2_da_validator_addr: Address, pub multicall3_addr: Address, } @@ -49,6 +48,7 @@ pub struct DeployCTMDeployedAddressesOutput { pub state_transition: L1StateTransitionOutput, pub rollup_l1_da_validator_addr: Address, pub no_da_validium_l1_validator_addr: Address, + pub blobs_zksync_os_l1_da_validator_addr: Option
, pub avail_l1_da_validator_addr: Address, pub l1_rollup_da_manager: Address, pub native_token_vault_addr: Address, diff --git a/zkstack_cli/crates/config/src/forge_interface/deploy_l2_contracts/input.rs b/zkstack_cli/crates/config/src/forge_interface/deploy_l2_contracts/input.rs index f6b4f7f1fb86..9acc0497a135 100644 --- a/zkstack_cli/crates/config/src/forge_interface/deploy_l2_contracts/input.rs +++ b/zkstack_cli/crates/config/src/forge_interface/deploy_l2_contracts/input.rs @@ -44,11 +44,15 @@ impl DeployL2ContractsInput { } async fn get_da_validator_type(config: &ChainConfig) -> anyhow::Result { - let general = config.get_general_config().await?; + let da_client_type = config + .get_general_config() + .await + .map(|c| c.da_client_type()) + .unwrap_or_default(); match ( config.l1_batch_commit_data_generator_mode, - general.da_client_type().as_deref(), + da_client_type.as_deref(), ) { (L1BatchCommitmentMode::Rollup, _) => Ok(DAValidatorType::Rollup), (L1BatchCommitmentMode::Validium, None | Some("NoDA")) => Ok(DAValidatorType::NoDA), diff --git a/zkstack_cli/crates/config/src/forge_interface/deploy_l2_contracts/output.rs b/zkstack_cli/crates/config/src/forge_interface/deploy_l2_contracts/output.rs index 796e70b0d3c5..e4535cc8093b 100644 --- a/zkstack_cli/crates/config/src/forge_interface/deploy_l2_contracts/output.rs +++ b/zkstack_cli/crates/config/src/forge_interface/deploy_l2_contracts/output.rs @@ -10,8 +10,6 @@ impl FileConfigTrait for Multicall3Output {} impl FileConfigTrait for TimestampAsserterOutput {} -impl FileConfigTrait for L2DAValidatorAddressOutput {} - #[derive(Debug, Clone, Serialize, Deserialize)] pub struct InitializeBridgeOutput { pub l2_da_validator_address: Address, @@ -37,8 +35,3 @@ pub struct Multicall3Output { pub struct TimestampAsserterOutput { pub timestamp_asserter: Address, } - -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct L2DAValidatorAddressOutput { - pub l2_da_validator_address: Address, -} diff --git a/zkstack_cli/crates/config/src/forge_interface/gateway_ecosystem_upgrade/output.rs b/zkstack_cli/crates/config/src/forge_interface/gateway_ecosystem_upgrade/output.rs index 2aab8a1e5422..87683475e1dd 100644 --- a/zkstack_cli/crates/config/src/forge_interface/gateway_ecosystem_upgrade/output.rs +++ b/zkstack_cli/crates/config/src/forge_interface/gateway_ecosystem_upgrade/output.rs @@ -37,9 +37,9 @@ pub struct GatewayEcosystemUpgradeContractsOutput { pub diamond_init_max_pubdata_per_batch: u64, pub diamond_init_minimal_l2_gas_price: u64, pub diamond_init_priority_tx_max_pubdata: u64, - pub expected_rollup_l2_da_validator: Address, pub expected_validium_l2_da_validator: Address, + // Probably gonna need it to add new chains pub force_deployments_data: Bytes, diff --git a/zkstack_cli/crates/config/src/forge_interface/gateway_vote_preparation/input.rs b/zkstack_cli/crates/config/src/forge_interface/gateway_vote_preparation/input.rs index a94333fc910e..886503f68530 100644 --- a/zkstack_cli/crates/config/src/forge_interface/gateway_vote_preparation/input.rs +++ b/zkstack_cli/crates/config/src/forge_interface/gateway_vote_preparation/input.rs @@ -47,11 +47,10 @@ pub struct GatewayVotePreparationConfig { pub owner_address: Address, pub testnet_verifier: bool, pub support_l2_legacy_shared_bridge_test: bool, + pub is_zk_sync_os: bool, pub contracts: GatewayContractsConfig, pub tokens: TokensConfig, pub refund_recipient: Address, - pub rollup_l2_da_validator: Address, - pub old_rollup_l2_da_validator: Address, pub gateway_chain_id: U256, pub force_deployments_data: String, } @@ -68,9 +67,8 @@ impl GatewayVotePreparationConfig { gateway_chain_id: U256, owner_address: Address, testnet_verifier: bool, + is_zk_sync_os: bool, refund_recipient: Address, - rollup_l2_da_validator: Address, - old_rollup_l2_da_validator: Address, ) -> Self { let contracts = GatewayContractsConfig { governance_security_council_address: Address::zero(), @@ -127,11 +125,10 @@ impl GatewayVotePreparationConfig { owner_address, testnet_verifier, support_l2_legacy_shared_bridge_test: false, + is_zk_sync_os, contracts, tokens, refund_recipient, - rollup_l2_da_validator, - old_rollup_l2_da_validator, gateway_chain_id, force_deployments_data: external_contracts_config .ecosystem_contracts diff --git a/zkstack_cli/crates/config/src/forge_interface/register_chain/input.rs b/zkstack_cli/crates/config/src/forge_interface/register_chain/input.rs index c83fc7265016..568689047177 100644 --- a/zkstack_cli/crates/config/src/forge_interface/register_chain/input.rs +++ b/zkstack_cli/crates/config/src/forge_interface/register_chain/input.rs @@ -57,7 +57,7 @@ pub struct ChainL1Config { pub base_token_addr: Address, pub bridgehub_create_new_chain_salt: u64, pub validium_mode: bool, - pub validator_sender_operator_commit_eth: Address, + pub validator_sender_operator_eth: Address, pub validator_sender_operator_blobs_eth: Address, /// Additional validators that can be used for prove & execute (when these are handled by different entities). #[serde(skip_serializing_if = "Option::is_none")] @@ -128,7 +128,7 @@ impl RegisterChainL1Config { bridgehub_create_new_chain_salt: rand::thread_rng().gen_range(0..=i64::MAX) as u64, validium_mode: chain_config.l1_batch_commit_data_generator_mode == L1BatchCommitmentMode::Validium, - validator_sender_operator_commit_eth: wallets_config.operator.address, + validator_sender_operator_eth: wallets_config.operator.address, validator_sender_operator_blobs_eth: wallets_config.blob_operator.address, validator_sender_operator_prove: wallets_config .prove_operator diff --git a/zkstack_cli/crates/config/src/forge_interface/script_params.rs b/zkstack_cli/crates/config/src/forge_interface/script_params.rs index 2bdcb6218b25..698eced998fb 100644 --- a/zkstack_cli/crates/config/src/forge_interface/script_params.rs +++ b/zkstack_cli/crates/config/src/forge_interface/script_params.rs @@ -119,6 +119,12 @@ pub const V29_UPGRADE_CHAIN_PARAMS: ForgeScriptParams = ForgeScriptParams { script_path: "deploy-scripts/upgrade/ChainUpgrade_v29.s.sol", }; +pub const ZK_OS_V30_BLOBS_UPGRADE_ECOSYSTEM_PARAMS: ForgeScriptParams = ForgeScriptParams { + input: "script-config/zk-os-v30-blobs-upgrade-ecosystem.toml", + output: "script-out/zk-os-v30-blobs-upgrade-ecosystem.toml", + script_path: "deploy-scripts/upgrade/EcosystemUpgrade_v30_blobs_zk_os.s.sol", +}; + pub const ZK_OS_V28_1_UPGRADE_ECOSYSTEM_PARAMS: ForgeScriptParams = ForgeScriptParams { input: "script-config/zk-os-v28-1-upgrade-ecosystem.toml", output: "script-out/zk-os-v28-1-upgrade-ecosystem.toml", diff --git a/zkstack_cli/crates/config/src/forge_interface/upgrade_ecosystem/output.rs b/zkstack_cli/crates/config/src/forge_interface/upgrade_ecosystem/output.rs index e03cb71e0b64..2f4a06e1b292 100644 --- a/zkstack_cli/crates/config/src/forge_interface/upgrade_ecosystem/output.rs +++ b/zkstack_cli/crates/config/src/forge_interface/upgrade_ecosystem/output.rs @@ -42,7 +42,6 @@ pub struct EcosystemUpgradeContractsOutput { pub diamond_init_max_pubdata_per_batch: u64, pub diamond_init_minimal_l2_gas_price: u64, pub diamond_init_priority_tx_max_pubdata: u64, - pub expected_rollup_l2_da_validator: Address, pub expected_validium_l2_da_validator: Address, // Probably gonna need it to add new chains @@ -65,6 +64,7 @@ pub struct EcosystemUpgradeContractsOutput { pub struct EcosystemUpgradeDeployedAddresses { pub native_token_vault_addr: Address, pub rollup_l1_da_validator_addr: Address, + pub blobs_zksync_os_l1_da_validator_addr: Option
, pub validator_timelock_addr: Address, pub validium_l1_da_validator_addr: Address, pub l1_bytecodes_supplier_addr: Address, diff --git a/zkstack_cli/crates/zkstack/src/abi.rs b/zkstack_cli/crates/zkstack/src/abi.rs index ed7699ce3d1f..3eb4391471dd 100644 --- a/zkstack_cli/crates/zkstack/src/abi.rs +++ b/zkstack_cli/crates/zkstack/src/abi.rs @@ -18,7 +18,7 @@ abigen!( abigen!( ZkChainAbi, r"[ - function getDAValidatorPair()(address,address) + function getDAValidatorPair()(address,uint8) function getAdmin()(address) function getProtocolVersion()(uint256) function getTotalBatchesCommitted()(uint256) diff --git a/zkstack_cli/crates/zkstack/src/admin_functions.rs b/zkstack_cli/crates/zkstack/src/admin_functions.rs index 1ff8da28114a..41028f03a68f 100644 --- a/zkstack_cli/crates/zkstack/src/admin_functions.rs +++ b/zkstack_cli/crates/zkstack/src/admin_functions.rs @@ -21,7 +21,7 @@ use zkstack_cli_config::{ ChainConfig, ContractsConfig, EcosystemConfig, }; use zkstack_cli_types::VMOption; -use zksync_basic_types::U256; +use zksync_basic_types::{commitment::L2DACommitmentScheme, U256}; use crate::{ commands::chain::admin_call_builder::{decode_admin_calls, AdminCall}, @@ -34,8 +34,8 @@ lazy_static! { parse_abi(&[ "function governanceAcceptOwner(address governor, address target) public", "function chainAdminAcceptAdmin(address admin, address target) public", - "function setDAValidatorPair(address _bridgehub, uint256 _chainId, address _l1DaValidator, address _l2DaValidator, bool _shouldSend) public", - "function setDAValidatorPairWithGateway(address bridgehub, uint256 l1GasPrice, uint256 l2ChainId, uint256 gatewayChainId, address l1DAValidator, address l2DAValidator, address chainDiamondProxyOnGateway, address refundRecipient, bool _shouldSend)", + "function setDAValidatorPair(address _bridgehub, uint256 _chainId, address _l1DaValidator, uint8 _l2DaCommitmentScheme, bool _shouldSend) public", + "function setDAValidatorPairWithGateway(address bridgehub, uint256 l1GasPrice, uint256 l2ChainId, uint256 gatewayChainId, address l1DAValidator, uint8 _l2DaCommitmentScheme, address chainDiamondProxyOnGateway, address refundRecipient, bool _shouldSend)", "function makePermanentRollup(address chainAdmin, address target) public", "function governanceExecuteCalls(bytes calldata callsToExecute, address target) public", "function adminExecuteUpgrade(bytes memory diamondCut, address adminAddr, address accessControlRestriction, address chainDiamondProxy)", @@ -499,7 +499,7 @@ pub async fn set_da_validator_pair( chain_id: u64, bridgehub: Address, l1_da_validator_address: Address, - l2_da_validator_address: Address, + l2_da_commitment_scheme: L2DACommitmentScheme, l1_rpc_url: String, ) -> anyhow::Result { let calldata = ADMIN_FUNCTIONS @@ -509,7 +509,7 @@ pub async fn set_da_validator_pair( bridgehub, U256::from(chain_id), l1_da_validator_address, - l2_da_validator_address, + l2_da_commitment_scheme as u8, mode.should_send(), ), ) @@ -524,7 +524,7 @@ pub async fn set_da_validator_pair( l1_rpc_url, &format!( "setting data availability validator pair ({:#?}, {:#?}) for chain {}", - l1_da_validator_address, l2_da_validator_address, chain_id + l1_da_validator_address, l2_da_commitment_scheme, chain_id ), ) .await @@ -611,7 +611,7 @@ pub(crate) async fn set_da_validator_pair_via_gateway( l2_chain_id: u64, gateway_chain_id: u64, l1_da_validator: Address, - l2_da_validator: Address, + l2_da_validator_commitment_scheme: L2DACommitmentScheme, chain_diamond_proxy_on_gateway: Address, refund_recipient: Address, l1_rpc_url: String, @@ -625,7 +625,7 @@ pub(crate) async fn set_da_validator_pair_via_gateway( U256::from(l2_chain_id), U256::from(gateway_chain_id), l1_da_validator, - l2_da_validator, + l2_da_validator_commitment_scheme as u8, chain_diamond_proxy_on_gateway, refund_recipient, mode.should_send(), @@ -642,7 +642,7 @@ pub(crate) async fn set_da_validator_pair_via_gateway( l1_rpc_url, &format!( "setting DA validator pair (SL = {:#?}, L2 = {:#?}) via gateway", - l1_da_validator, l2_da_validator + l1_da_validator, l2_da_validator_commitment_scheme ), ) .await diff --git a/zkstack_cli/crates/zkstack/src/commands/chain/args/init/configs.rs b/zkstack_cli/crates/zkstack/src/commands/chain/args/init/configs.rs index b38d67acc366..07d6a88daa21 100644 --- a/zkstack_cli/crates/zkstack/src/commands/chain/args/init/configs.rs +++ b/zkstack_cli/crates/zkstack/src/commands/chain/args/init/configs.rs @@ -39,6 +39,10 @@ pub struct InitConfigsArgsFinal { impl InitConfigsArgs { pub fn fill_values_with_prompt(self, config: &ChainConfig) -> InitConfigsArgsFinal { let l1_rpc_url = self.l1_rpc_url.unwrap_or_else(|| { + if self.genesis_args.dev && config.l1_network == L1Network::Localhost { + return LOCAL_RPC_URL.to_string(); + } + let mut prompt = Prompt::new(MSG_L1_RPC_URL_PROMPT); if config.l1_network == L1Network::Localhost { prompt = prompt.default(LOCAL_RPC_URL); @@ -52,11 +56,17 @@ impl InitConfigsArgs { .ask() }); + let validium_config = if self.genesis_args.dev { + ValidiumType::NoDA + } else { + ValidiumType::read() + }; + InitConfigsArgsFinal { genesis_args: Some(self.genesis_args.fill_values_with_prompt(config)), l1_rpc_url, no_port_reallocation: self.no_port_reallocation, - validium_config: Some(ValidiumType::read()), + validium_config: Some(validium_config), } } } diff --git a/zkstack_cli/crates/zkstack/src/commands/chain/args/init/mod.rs b/zkstack_cli/crates/zkstack/src/commands/chain/args/init/mod.rs index 1e64b74f3705..9e10be99058a 100644 --- a/zkstack_cli/crates/zkstack/src/commands/chain/args/init/mod.rs +++ b/zkstack_cli/crates/zkstack/src/commands/chain/args/init/mod.rs @@ -102,7 +102,13 @@ impl InitArgs { let validium_config = match config.l1_batch_commit_data_generator_mode { L1BatchCommitmentMode::Validium => match self.validium_args.validium_type { - None => Some(ValidiumType::read()), + None => { + if self.dev { + Some(ValidiumType::NoDA) + } else { + Some(ValidiumType::read()) + } + } Some(da_configs::ValidiumTypeInternal::NoDA) => Some(ValidiumType::NoDA), Some(da_configs::ValidiumTypeInternal::Avail) => panic!( "Avail is not supported via CLI args, use interactive mode" // TODO: Add support for configuration via CLI args diff --git a/zkstack_cli/crates/zkstack/src/commands/chain/deploy_l2_contracts.rs b/zkstack_cli/crates/zkstack/src/commands/chain/deploy_l2_contracts.rs index ce29bf93753b..e1b38f700e65 100644 --- a/zkstack_cli/crates/zkstack/src/commands/chain/deploy_l2_contracts.rs +++ b/zkstack_cli/crates/zkstack/src/commands/chain/deploy_l2_contracts.rs @@ -12,8 +12,8 @@ use zkstack_cli_config::{ deploy_l2_contracts::{ input::DeployL2ContractsInput, output::{ - ConsensusRegistryOutput, DefaultL2UpgradeOutput, InitializeBridgeOutput, - L2DAValidatorAddressOutput, Multicall3Output, TimestampAsserterOutput, + ConsensusRegistryOutput, DefaultL2UpgradeOutput, Multicall3Output, + TimestampAsserterOutput, }, }, script_params::DEPLOY_L2_CONTRACTS_SCRIPT_PARAMS, @@ -51,6 +51,7 @@ pub async fn run( let spinner = Spinner::new(MSG_DEPLOYING_L2_CONTRACT_SPINNER); + let l1_rpc_url = chain_config.get_secrets_config().await?.l1_rpc_url()?; match deploy_option { Deploy2ContractsOption::All => { deploy_l2_contracts( @@ -60,6 +61,7 @@ pub async fn run( &mut contracts, args, true, + l1_rpc_url, ) .await?; } @@ -70,6 +72,7 @@ pub async fn run( &ecosystem_config, &mut contracts, args, + l1_rpc_url, ) .await?; } @@ -80,6 +83,7 @@ pub async fn run( &ecosystem_config, &mut contracts, args, + l1_rpc_url, ) .await?; } @@ -90,6 +94,7 @@ pub async fn run( &ecosystem_config, &mut contracts, args, + l1_rpc_url, ) .await?; } @@ -100,6 +105,7 @@ pub async fn run( &ecosystem_config, &mut contracts, args, + l1_rpc_url, ) .await?; } @@ -110,6 +116,7 @@ pub async fn run( &ecosystem_config, &mut contracts, args, + l1_rpc_url, ) .await? } @@ -123,6 +130,7 @@ pub async fn run( /// Build the L2 contracts, deploy one or all of them with `forge`, then update the config /// by reading one or all outputs written by the deploy scripts. +#[allow(clippy::too_many_arguments)] async fn build_and_deploy( shell: &Shell, chain_config: &ChainConfig, @@ -131,6 +139,7 @@ async fn build_and_deploy( signature: Option<&str>, mut update_config: impl FnMut(&Shell, &Path) -> anyhow::Result<()>, with_broadcast: bool, + l1_rpc_url: String, ) -> anyhow::Result<()> { build_l2_contracts(shell.clone(), &chain_config.contracts_path())?; call_forge( @@ -140,6 +149,7 @@ async fn build_and_deploy( forge_args, signature, with_broadcast, + l1_rpc_url, ) .await?; update_config( @@ -155,6 +165,7 @@ pub async fn deploy_upgrader( ecosystem_config: &EcosystemConfig, contracts_config: &mut ContractsConfig, forge_args: ForgeScriptArgs, + l1_rpc_url: String, ) -> anyhow::Result<()> { build_and_deploy( shell, @@ -166,6 +177,7 @@ pub async fn deploy_upgrader( contracts_config.set_default_l2_upgrade(&DefaultL2UpgradeOutput::read(shell, out)?) }, true, + l1_rpc_url, ) .await } @@ -176,6 +188,7 @@ pub async fn deploy_consensus_registry( ecosystem_config: &EcosystemConfig, contracts_config: &mut ContractsConfig, forge_args: ForgeScriptArgs, + l1_rpc_url: String, ) -> anyhow::Result<()> { build_and_deploy( shell, @@ -187,6 +200,7 @@ pub async fn deploy_consensus_registry( contracts_config.set_consensus_registry(&ConsensusRegistryOutput::read(shell, out)?) }, true, + l1_rpc_url, ) .await } @@ -197,6 +211,7 @@ pub async fn deploy_multicall3( ecosystem_config: &EcosystemConfig, contracts_config: &mut ContractsConfig, forge_args: ForgeScriptArgs, + l1_rpc_url: String, ) -> anyhow::Result<()> { build_and_deploy( shell, @@ -206,6 +221,7 @@ pub async fn deploy_multicall3( Some("runDeployMulticall3"), |shell, out| contracts_config.set_multicall3(&Multicall3Output::read(shell, out)?), true, + l1_rpc_url, ) .await } @@ -216,6 +232,7 @@ pub async fn deploy_timestamp_asserter( ecosystem_config: &EcosystemConfig, contracts_config: &mut ContractsConfig, forge_args: ForgeScriptArgs, + l1_rpc_url: String, ) -> anyhow::Result<()> { build_and_deploy( shell, @@ -228,6 +245,7 @@ pub async fn deploy_timestamp_asserter( .set_timestamp_asserter_addr(&TimestampAsserterOutput::read(shell, out)?) }, true, + l1_rpc_url, ) .await } @@ -236,8 +254,9 @@ pub async fn deploy_l2_da_validator( shell: &Shell, chain_config: &ChainConfig, ecosystem_config: &EcosystemConfig, - contracts_config: &mut ContractsConfig, + _contracts_config: &mut ContractsConfig, forge_args: ForgeScriptArgs, + l1_rpc_url: String, ) -> anyhow::Result<()> { build_and_deploy( shell, @@ -245,11 +264,12 @@ pub async fn deploy_l2_da_validator( ecosystem_config, forge_args, Some("runDeployL2DAValidator"), - |shell, out| { - contracts_config - .set_l2_da_validator_address(&L2DAValidatorAddressOutput::read(shell, out)?) + |_shell, _out| { + // Now, we don't have a specific l2 da validator address + Ok(()) }, true, + l1_rpc_url, ) .await } @@ -261,6 +281,7 @@ pub async fn deploy_l2_contracts( contracts_config: &mut ContractsConfig, forge_args: ForgeScriptArgs, with_broadcast: bool, + l1_rpc_url: String, ) -> anyhow::Result<()> { build_and_deploy( shell, @@ -269,7 +290,7 @@ pub async fn deploy_l2_contracts( forge_args, None, |shell, out| { - contracts_config.set_l2_shared_bridge(&InitializeBridgeOutput::read(shell, out)?)?; + contracts_config.set_l2_shared_bridge()?; contracts_config.set_default_l2_upgrade(&DefaultL2UpgradeOutput::read(shell, out)?)?; contracts_config.set_consensus_registry(&ConsensusRegistryOutput::read(shell, out)?)?; contracts_config.set_multicall3(&Multicall3Output::read(shell, out)?)?; @@ -278,6 +299,7 @@ pub async fn deploy_l2_contracts( Ok(()) }, with_broadcast, + l1_rpc_url, ) .await } @@ -289,6 +311,7 @@ async fn call_forge( forge_args: ForgeScriptArgs, signature: Option<&str>, with_broadcast: bool, + l1_rpc_url: String, ) -> anyhow::Result<()> { let input = DeployL2ContractsInput::new( chain_config, @@ -298,7 +321,6 @@ async fn call_forge( .await?; let foundry_contracts_path = chain_config.path_to_foundry_scripts(); - let secrets = chain_config.get_secrets_config().await?; input.save( shell, DEPLOY_L2_CONTRACTS_SCRIPT_PARAMS.input(&chain_config.path_to_foundry_scripts()), @@ -310,7 +332,7 @@ async fn call_forge( forge_args.clone(), ) .with_ffi() - .with_rpc_url(secrets.l1_rpc_url()?); + .with_rpc_url(l1_rpc_url); if with_broadcast { forge = forge.with_broadcast(); } diff --git a/zkstack_cli/crates/zkstack/src/commands/chain/deploy_paymaster.rs b/zkstack_cli/crates/zkstack/src/commands/chain/deploy_paymaster.rs index 9f19153f2891..c1230eb250a1 100644 --- a/zkstack_cli/crates/zkstack/src/commands/chain/deploy_paymaster.rs +++ b/zkstack_cli/crates/zkstack/src/commands/chain/deploy_paymaster.rs @@ -14,7 +14,17 @@ use crate::utils::forge::{check_the_balance, fill_forge_private_key, WalletOwner pub async fn run(args: ForgeScriptArgs, shell: &Shell) -> anyhow::Result<()> { let chain_config = ZkStackConfig::current_chain(shell)?; let mut contracts = chain_config.get_contracts_config()?; - deploy_paymaster(shell, &chain_config, &mut contracts, args, None, true).await?; + let l1_rpc_url = chain_config.get_secrets_config().await?.l1_rpc_url()?; + deploy_paymaster( + shell, + &chain_config, + &mut contracts, + args, + None, + true, + l1_rpc_url, + ) + .await?; contracts.save_with_base_path(shell, chain_config.configs) } @@ -25,6 +35,7 @@ pub async fn deploy_paymaster( forge_args: ForgeScriptArgs, sender: Option, broadcast: bool, + l1_rpc_url: String, ) -> anyhow::Result<()> { let input = DeployPaymasterInput::new(chain_config)?; let foundry_contracts_path = chain_config.path_to_foundry_scripts(); @@ -32,12 +43,11 @@ pub async fn deploy_paymaster( shell, DEPLOY_PAYMASTER_SCRIPT_PARAMS.input(&foundry_contracts_path), )?; - let secrets = chain_config.get_secrets_config().await?; let mut forge = Forge::new(&foundry_contracts_path) .script(&DEPLOY_PAYMASTER_SCRIPT_PARAMS.script(), forge_args.clone()) .with_ffi() - .with_rpc_url(secrets.l1_rpc_url()?); + .with_rpc_url(l1_rpc_url); if let Some(address) = sender { forge = forge.with_sender(address); diff --git a/zkstack_cli/crates/zkstack/src/commands/chain/gateway/convert_to_gateway.rs b/zkstack_cli/crates/zkstack/src/commands/chain/gateway/convert_to_gateway.rs index 3f0ab8062ee9..37644f139812 100644 --- a/zkstack_cli/crates/zkstack/src/commands/chain/gateway/convert_to_gateway.rs +++ b/zkstack_cli/crates/zkstack/src/commands/chain/gateway/convert_to_gateway.rs @@ -161,15 +161,8 @@ pub async fn run(convert_to_gw_args: ConvertToGatewayArgs, shell: &Shell) -> any chain_config.chain_id.as_u64().into(), ecosystem_config.get_contracts_config()?.l1.governance_addr, ecosystem_config.prover_version == ProverMode::NoProofs, + chain_config.vm_option.is_zksync_os(), chain_deployer_wallet.address, - // Safe to unwrap, because the chain is always post gateway - chain_config - .get_contracts_config()? - .l2 - .da_validator_addr - .unwrap(), - // This address is not present on local deployments - Address::zero(), ), l1_url.clone(), convert_to_gw_args diff --git a/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_from_gateway.rs b/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_from_gateway.rs index e72746c7d0a0..81ad327a5d1c 100644 --- a/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_from_gateway.rs +++ b/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_from_gateway.rs @@ -25,14 +25,15 @@ use zkstack_cli_common::{ use zkstack_cli_config::{ forge_interface::script_params::GATEWAY_UTILS_SCRIPT_PATH, ZkStackConfig, ZkStackConfigTrait, }; -use zksync_basic_types::{H256, U256}; +use zksync_basic_types::{commitment::L2DACommitmentScheme, H256, U256}; +use zksync_system_constants::L2_BRIDGEHUB_ADDRESS; use zksync_web3_decl::{ client::{Client, L2}, namespaces::EthNamespaceClient, }; use crate::{ - abi::ZkChainAbi, + abi::{BridgehubAbi, ZkChainAbi}, admin_functions::{set_da_validator_pair, start_migrate_chain_from_gateway}, commands::chain::{ admin_call_builder::AdminCallBuilder, @@ -142,7 +143,7 @@ pub async fn run(args: MigrateFromGatewayArgs, shell: &Shell) -> anyhow::Result< .get_contracts_config()? .l1 .diamond_proxy_addr, - gateway_provider, + gateway_provider.clone(), ) .await?; @@ -190,8 +191,12 @@ pub async fn run(args: MigrateFromGatewayArgs, shell: &Shell) -> anyhow::Result< let l1_da_validator_addr = get_l1_da_validator(&chain_config) .await .context("l1_da_validator_addr")?; - let spinner = Spinner::new(MSG_DA_PAIR_REGISTRATION_SPINNER); + let (_, l2_da_validator_commitment_scheme) = + get_zkchain_da_validator_pair(gateway_provider.clone(), chain_config.chain_id.as_u64()) + .await + .context("Fetching the DA validator pair from Gateway failed")?; + set_da_validator_pair( shell, &args.forge_args, @@ -204,13 +209,11 @@ pub async fn run(args: MigrateFromGatewayArgs, shell: &Shell) -> anyhow::Result< .ecosystem_contracts .bridgehub_proxy_addr, l1_da_validator_addr, - chain_contracts_config - .l2 - .da_validator_addr - .context("da_validator_addr")?, + l2_da_validator_commitment_scheme, l1_url.clone(), ) .await?; + spinner.finish(); Ok(()) } @@ -313,3 +316,22 @@ pub(crate) async fn finish_migrate_chain_from_gateway( Ok(()) } + +pub async fn get_zkchain_da_validator_pair( + gateway_provider: Arc>, + chain_id: u64, +) -> anyhow::Result<(Address, L2DACommitmentScheme)> { + let bridgehub = BridgehubAbi::new(L2_BRIDGEHUB_ADDRESS, gateway_provider.clone()); + let diamond_proxy = bridgehub.get_zk_chain(chain_id.into()).await?; + if diamond_proxy.is_zero() { + anyhow::bail!("The chain does not settle on GW yet, the address is unknown"); + } + let zk_chain = ZkChainAbi::new(diamond_proxy, gateway_provider); + let (l1_da_validator, l2_da_validator_commitment_scheme) = + zk_chain.get_da_validator_pair().await?; + + let l2_da_validator_commitment_scheme = + L2DACommitmentScheme::try_from(l2_da_validator_commitment_scheme).unwrap(); + + Ok((l1_da_validator, l2_da_validator_commitment_scheme)) +} diff --git a/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_from_gateway_calldata.rs b/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_from_gateway_calldata.rs index 75f962a55963..140df9e78ccd 100644 --- a/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_from_gateway_calldata.rs +++ b/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_from_gateway_calldata.rs @@ -9,6 +9,7 @@ use lazy_static::lazy_static; use xshell::Shell; use zkstack_cli_common::{ethereum::get_ethers_provider, logger}; use zkstack_cli_config::{traits::ReadConfig, ContractsConfig, ZkStackConfig, ZkStackConfigTrait}; +use zksync_basic_types::commitment::L2DACommitmentScheme; use super::{ gateway_common::{ @@ -103,7 +104,10 @@ pub async fn run(shell: &Shell, params: MigrateFromGatewayCalldataArgs) -> anyho } let zk_chain = ZkChainAbi::new(zk_chain_address, l1_provider); - let (l1_da_validator, l2_da_validator) = zk_chain.get_da_validator_pair().await?; + let (l1_da_validator, l2_da_validator_commitment_scheme) = + zk_chain.get_da_validator_pair().await?; + let l2_da_validator_commitment_scheme = + L2DACommitmentScheme::try_from(l2_da_validator_commitment_scheme).unwrap(); // We always output the original message, but we provide additional helper log in case // the DA validator is not yet set @@ -113,7 +117,9 @@ pub async fn run(shell: &Shell, params: MigrateFromGatewayCalldataArgs) -> anyho ); logger::info(&basic_message); - if l1_da_validator == Address::zero() || l2_da_validator == Address::zero() { + if l1_da_validator == Address::zero() + || l2_da_validator_commitment_scheme == L2DACommitmentScheme::None + { logger::warn("The DA validators are not yet set on the diamond proxy."); logger::info(USE_SET_DA_VALIDATOR_COMMAND_INFO); } diff --git a/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_to_gateway_calldata.rs b/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_to_gateway_calldata.rs index 3a053fa9d7af..a0c07d57d61b 100644 --- a/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_to_gateway_calldata.rs +++ b/zkstack_cli/crates/zkstack/src/commands/chain/gateway/migrate_to_gateway_calldata.rs @@ -2,16 +2,12 @@ use std::path::Path; use anyhow::Context; use clap::Parser; -use ethers::{ - abi::{encode, Token}, - providers::{Middleware, Provider}, -}; +use ethers::providers::Middleware; use xshell::Shell; use zkstack_cli_common::{ethereum::get_ethers_provider, forge::ForgeScriptArgs, logger}; use zkstack_cli_config::{traits::ReadConfig, GatewayConfig, ZkStackConfig, ZkStackConfigTrait}; -use zksync_basic_types::{Address, H256, U256}; -use zksync_system_constants::{L2_BRIDGEHUB_ADDRESS, L2_CHAIN_ASSET_HANDLER_ADDRESS}; -use zksync_types::ProtocolVersionId; +use zksync_basic_types::{commitment::L2DACommitmentScheme, Address, H256, U256}; +use zksync_system_constants::L2_BRIDGEHUB_ADDRESS; use super::{ gateway_common::{ @@ -26,43 +22,12 @@ use crate::{ set_da_validator_pair_via_gateway, AdminScriptOutput, }, commands::chain::{admin_call_builder::AdminCall, utils::display_admin_script_output}, - utils::addresses::apply_l1_to_l2_alias, + utils::{ + addresses::{apply_l1_to_l2_alias, precompute_chain_address_on_gateway}, + protocol_version::get_minor_protocol_version, + }, }; -fn get_minor_protocol_version(protocol_version: U256) -> anyhow::Result { - ProtocolVersionId::try_from_packed_semver(protocol_version) - .map_err(|err| anyhow::format_err!("Failed to unpack semver for protocol version: {err}")) -} - -// The most reliable way to precompute the address is to simulate `createNewChain` function -async fn precompute_chain_address_on_gateway( - l2_chain_id: u64, - base_token_asset_id: H256, - new_l2_admin: Address, - protocol_version: U256, - gateway_diamond_cut: Vec, - gw_ctm: ChainTypeManagerAbi>, -) -> anyhow::Result
{ - let ctm_data = encode(&[ - Token::FixedBytes(base_token_asset_id.0.into()), - Token::Address(new_l2_admin), - Token::Uint(protocol_version), - Token::Bytes(gateway_diamond_cut), - ]); - - let caller = if get_minor_protocol_version(protocol_version)?.is_pre_interop_fast_blocks() { - L2_BRIDGEHUB_ADDRESS - } else { - L2_CHAIN_ASSET_HANDLER_ADDRESS - }; - let result = gw_ctm - .forwarded_bridge_mint(l2_chain_id.into(), ctm_data.into()) - .from(caller) - .await?; - - Ok(result) -} - #[derive(Parser, Debug)] pub(crate) struct MigrateToGatewayParams { pub(crate) l1_rpc_url: String, @@ -140,6 +105,7 @@ pub(crate) async fn get_migrate_to_gateway_calls( ValidatorTimelockAbi::new(gw_validator_timelock_addr, gw_provider.clone()); let chain_admin_address = l1_zk_chain.get_admin().await?; + let zk_chain_gw_address = { let recorded_zk_chain_gw_address = gw_bridgehub.get_zk_chain(params.l2_chain_id.into()).await?; @@ -176,12 +142,14 @@ pub(crate) async fn get_migrate_to_gateway_calls( params.l1_rpc_url.clone(), ) .await?; + // Changing L2 DA validator while migrating to gateway is not recommended; we allow changing only the settlement layer one + let (_, l2_da_validator_commitment_scheme) = l1_zk_chain.get_da_validator_pair().await?; + let l2_da_validator_commitment_scheme = + L2DACommitmentScheme::try_from(l2_da_validator_commitment_scheme) + .map_err(|err| anyhow::format_err!("Failed to parse L2 DA commitment schema: {err}"))?; result.extend(finalize_migrate_to_gateway_output.calls); - // Changing L2 DA validator while migrating to gateway is not recommended; we allow changing only the settlement layer one - let (_, l2_da_validator) = l1_zk_chain.get_da_validator_pair().await?; - // Unfortunately, there is no getter for whether a chain is a permanent rollup, we have to // read storage here. let is_permanent_rollup_slot = l1_provider @@ -202,7 +170,7 @@ pub(crate) async fn get_migrate_to_gateway_calls( params.l2_chain_id, params.gateway_chain_id, params.new_sl_da_validator, - l2_da_validator, + l2_da_validator_commitment_scheme, zk_chain_gw_address, refund_recipient, params.l1_rpc_url.clone(), diff --git a/zkstack_cli/crates/zkstack/src/commands/chain/init/mod.rs b/zkstack_cli/crates/zkstack/src/commands/chain/init/mod.rs index 7ab8a4eefbd1..45cda01b98b3 100644 --- a/zkstack_cli/crates/zkstack/src/commands/chain/init/mod.rs +++ b/zkstack_cli/crates/zkstack/src/commands/chain/init/mod.rs @@ -6,7 +6,7 @@ use zkstack_cli_config::{ traits::SaveConfigWithBasePath, ChainConfig, EcosystemConfig, ZkStackConfig, ZkStackConfigTrait, }; use zkstack_cli_types::{BaseToken, L1BatchCommitmentMode}; -use zksync_basic_types::Address; +use zksync_basic_types::{commitment::L2DACommitmentScheme, Address}; use crate::{ admin_functions::{accept_admin, make_permanent_rollup, set_da_validator_pair}, @@ -168,6 +168,7 @@ pub async fn init( &mut contracts_config, init_args.forge_args.clone(), true, + init_args.l1_rpc_url.clone(), ) .await?; contracts_config.save_with_base_path(shell, &chain_config.configs)?; @@ -176,6 +177,24 @@ pub async fn init( .await .context("l1_da_validator_addr")?; + let commitment_scheme = + if chain_config.l1_batch_commit_data_generator_mode == L1BatchCommitmentMode::Rollup { + if chain_config.vm_option.is_zksync_os() { + L2DACommitmentScheme::BlobsZKSyncOS + } else { + L2DACommitmentScheme::BlobsAndPubdataKeccak256 + } + } else { + let da_client_type = chain_config.get_general_config().await?.da_client_type(); + + match da_client_type.as_deref() { + Some("Avail") | Some("Eigen") => L2DACommitmentScheme::PubdataKeccak256, + Some("NoDA") | None => L2DACommitmentScheme::EmptyNoDA, + Some(unsupported) => { + anyhow::bail!("DA client config is not supported: {unsupported:?}"); + } + } + }; let spinner = Spinner::new(MSG_DA_PAIR_REGISTRATION_SPINNER); set_da_validator_pair( shell, @@ -187,10 +206,7 @@ pub async fn init( chain_config.chain_id.as_u64(), contracts_config.ecosystem_contracts.bridgehub_proxy_addr, l1_da_validator_addr, - contracts_config - .l2 - .da_validator_addr - .context("da_validator_addr")?, + commitment_scheme, init_args.l1_rpc_url.clone(), ) .await?; @@ -233,6 +249,7 @@ pub async fn init( init_args.forge_args.clone(), None, true, + init_args.l1_rpc_url.clone(), ) .await?; contracts_config.save_with_base_path(shell, &chain_config.configs)?; @@ -252,7 +269,13 @@ pub(crate) async fn get_l1_da_validator(chain_config: &ChainConfig) -> anyhow::R let contracts_config = chain_config.get_contracts_config()?; let l1_da_validator_contract = match chain_config.l1_batch_commit_data_generator_mode { - L1BatchCommitmentMode::Rollup => contracts_config.l1.rollup_l1_da_validator_addr, + L1BatchCommitmentMode::Rollup => { + if chain_config.vm_option.is_zksync_os() { + contracts_config.l1.blobs_zksync_os_l1_da_validator_addr + } else { + contracts_config.l1.rollup_l1_da_validator_addr + } + } L1BatchCommitmentMode::Validium => { let general_config = chain_config.get_general_config().await?; match general_config.da_client_type().as_deref() { diff --git a/zkstack_cli/crates/zkstack/src/commands/chain/set_da_validator_pair.rs b/zkstack_cli/crates/zkstack/src/commands/chain/set_da_validator_pair.rs index 873a601b3098..fdcee99f1d57 100644 --- a/zkstack_cli/crates/zkstack/src/commands/chain/set_da_validator_pair.rs +++ b/zkstack_cli/crates/zkstack/src/commands/chain/set_da_validator_pair.rs @@ -7,7 +7,7 @@ use zkstack_cli_common::{ ethereum::get_ethers_provider, forge::ForgeScriptArgs, logger, spinner::Spinner, }; use zkstack_cli_config::{ZkStackConfig, ZkStackConfigTrait}; -use zksync_basic_types::Address; +use zksync_basic_types::{commitment::L2DACommitmentScheme, Address}; use zksync_system_constants::L2_BRIDGEHUB_ADDRESS; use zksync_web3_decl::jsonrpsee::core::Serialize; @@ -32,6 +32,8 @@ pub struct SetDAValidatorPairArgs { /// It is a contract that is deployed on the corresponding settlement layer (either L1 or GW). pub l1_da_validator: Address, + pub l2_da_commitment_scheme: L2DACommitmentScheme, + /// Max L1 gas price to be used for L1->GW transaction (in case the chain is settling on top of ZK Gateway) pub max_l1_gas_price: Option, #[clap(long, help = MSG_USE_GATEWAY_HELP)] @@ -98,7 +100,7 @@ pub async fn run(args: SetDAValidatorPairArgs, shell: &Shell) -> anyhow::Result< chain_id, gw_chain_id, args.l1_da_validator, - l2_da_validator_address, + args.l2_da_commitment_scheme, chain_diamond_proxy_on_gateway, refund_recipient, l1_rpc_url, @@ -116,11 +118,7 @@ pub async fn run(args: SetDAValidatorPairArgs, shell: &Shell) -> anyhow::Result< logger::note( "DA validator pair on Gateway:", - format!( - "L1: {}, L2: {}", - hex::encode(l1_da_validator), - hex::encode(l2_da_validator) - ), + format!("L1: {:?}, L2: {:?}", l1_da_validator, l2_da_validator), ); } else { let diamond_proxy_address = contracts_config.ecosystem_contracts.bridgehub_proxy_addr; @@ -133,7 +131,7 @@ pub async fn run(args: SetDAValidatorPairArgs, shell: &Shell) -> anyhow::Result< chain_id, diamond_proxy_address, args.l1_da_validator, - l2_da_validator_address, + args.l2_da_commitment_scheme, l1_rpc_url, ) .await?; diff --git a/zkstack_cli/crates/zkstack/src/commands/chain/set_da_validator_pair_calldata.rs b/zkstack_cli/crates/zkstack/src/commands/chain/set_da_validator_pair_calldata.rs index 5ad959d8fbd9..8da742ce31be 100644 --- a/zkstack_cli/crates/zkstack/src/commands/chain/set_da_validator_pair_calldata.rs +++ b/zkstack_cli/crates/zkstack/src/commands/chain/set_da_validator_pair_calldata.rs @@ -5,6 +5,7 @@ use serde::{Deserialize, Serialize}; use xshell::Shell; use zkstack_cli_common::{ethereum::get_ethers_provider, logger}; use zkstack_cli_config::{ZkStackConfig, ZkStackConfigTrait}; +use zksync_basic_types::commitment::L2DACommitmentScheme; use zksync_types::{Address, L2_BRIDGEHUB_ADDRESS}; use super::utils::display_admin_script_output; @@ -20,7 +21,7 @@ pub struct SetDAValidatorPairCalldataArgs { pub sl_da_validator: Address, /// Gateway transaction filterer - pub l2_da_validator: Address, + pub l2_da_validator_commitment_scheme: L2DACommitmentScheme, /// Bridgehub address pub bridgehub_address: Address, @@ -88,7 +89,7 @@ pub async fn run(shell: &Shell, args: SetDAValidatorPairCalldataArgs) -> anyhow: args.chain_id, args.bridgehub_address, args.sl_da_validator, - args.l2_da_validator, + args.l2_da_validator_commitment_scheme, args.l1_rpc_url, ) .await? @@ -118,7 +119,7 @@ pub async fn run(shell: &Shell, args: SetDAValidatorPairCalldataArgs) -> anyhow: args.chain_id, used_settlement_layer, args.sl_da_validator, - args.l2_da_validator, + args.l2_da_validator_commitment_scheme, chain_diamond_proxy_on_gateway, args.refund_recipient .context("Must provide `--refund-recipient` when preparing L1->GW transaction")?, diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/clean/mod.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/clean/mod.rs index 5c752c540182..1049b0e34726 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/clean/mod.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/clean/mod.rs @@ -23,14 +23,14 @@ pub enum CleanCommands { pub fn run(shell: &Shell, args: CleanCommands) -> anyhow::Result<()> { let config = ZkStackConfig::from_file(shell)?; let path_to_foundry = config.path_to_foundry_scripts(); - let link_to_code = config.link_to_code(); + let contracts_path = config.contracts_path(); match args { CleanCommands::All => { containers(shell)?; - contracts(shell, path_to_foundry, link_to_code)?; + contracts(shell, path_to_foundry, contracts_path)?; } CleanCommands::Containers => containers(shell)?, - CleanCommands::ContractsCache => contracts(shell, path_to_foundry, link_to_code)?, + CleanCommands::ContractsCache => contracts(shell, path_to_foundry, contracts_path)?, } Ok(()) } diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/genesis.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/genesis.rs index 952ea60a4c15..e890c6a851cd 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/genesis.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/genesis.rs @@ -1,18 +1,44 @@ use xshell::{cmd, Shell}; -use zkstack_cli_common::{cmd::Cmd, spinner::Spinner}; -use zkstack_cli_config::{ZkStackConfig, ZkStackConfigTrait}; +use zkstack_cli_common::{cmd::Cmd, db::DatabaseConfig, spinner::Spinner}; +use zkstack_cli_config::{SecretsConfig, ZkStackConfig, ZkStackConfigTrait, SECRETS_FILE}; -use crate::commands::dev::{ - commands::database::reset::reset_database, dals::get_core_dal, - messages::MSG_GENESIS_FILE_GENERATION_STARTED, +use crate::{ + commands::dev::{ + commands::database::reset::reset_database, dals::get_core_dal, + messages::MSG_GENESIS_FILE_GENERATION_STARTED, + }, + defaults::{generate_db_names, DBNames, DATABASE_SERVER_URL}, }; pub(crate) async fn run(shell: &Shell) -> anyhow::Result<()> { let chain = ZkStackConfig::current_chain(shell)?; let spinner = Spinner::new(MSG_GENESIS_FILE_GENERATION_STARTED); - let secrets_path = chain.path_to_secrets_config().canonicalize().unwrap(); - let dal = get_core_dal(shell, None).await?; - reset_database(shell, chain.link_to_code(), dal).await?; + let tmp_dir = shell.create_temp_dir()?; + let secrets_path = match chain.path_to_secrets_config().canonicalize() { + Ok(path) => path, + Err(_) => { + // If secrets file does not exist, create a temporary one. + let tmp_path = tmp_dir.path().to_path_buf(); + let _data = shell.push_dir(tmp_path.clone()); + shell.write_file(SECRETS_FILE, "db: \n")?; + let mut secrets = SecretsConfig::read(shell, &tmp_path.join(SECRETS_FILE)) + .await? + .patched(); + let DBNames { server_name, .. } = generate_db_names(&chain); + let db_config = DatabaseConfig::new(DATABASE_SERVER_URL.clone(), server_name); + secrets.set_server_database(&db_config)?; + secrets.save().await?; + tmp_path.join(SECRETS_FILE) + } + }; + let secrets = SecretsConfig::read(shell, &secrets_path).await?; + let dal = get_core_dal( + shell, + Some(secrets.core_database_url()?.unwrap().to_string()), + ) + .await?; + reset_database(shell, chain.link_to_code().clone(), dal).await?; + shell.change_dir(chain.link_to_code()); let _dir = shell.push_dir("core"); Cmd::new(cmd!(shell,"cargo run --package genesis_generator --bin genesis_generator -- --config-path={secrets_path}")).run()?; spinner.finish(); diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/gateway_migration.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/gateway_migration.rs index 3725184b38b8..5ea3ab69a5c4 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/gateway_migration.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/gateway_migration.rs @@ -12,7 +12,6 @@ const GATEWAY_SWITCH_TESTS_PATH: &str = "core/tests/gateway-migration-test"; pub fn run(shell: &Shell, args: GatewayMigrationArgs) -> anyhow::Result<()> { let chain_config = ZkStackConfig::current_chain(shell)?; - shell.change_dir(chain_config.link_to_code().join(GATEWAY_SWITCH_TESTS_PATH)); logger::info(MSG_GATEWAY_UPGRADE_TEST_RUN_INFO); @@ -20,6 +19,7 @@ pub fn run(shell: &Shell, args: GatewayMigrationArgs) -> anyhow::Result<()> { install_and_build_dependencies(shell, &chain_config.link_to_code())?; } + shell.change_dir(chain_config.link_to_code().join(GATEWAY_SWITCH_TESTS_PATH)); run_test( shell, &chain_config, diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/integration.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/integration.rs index 4850e4b8458f..cf8b4d53bb70 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/integration.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/integration.rs @@ -63,13 +63,13 @@ impl<'a> IntegrationTestRunner<'a> { pub async fn build_command(self) -> anyhow::Result> { let ecosystem_config = self.ecosystem_config; - self.shell - .change_dir(ecosystem_config.link_to_code().join(TS_INTEGRATION_PATH)); if !self.no_deps { install_and_build_dependencies(self.shell, &ecosystem_config.link_to_code())?; build_contracts(self.shell, &ecosystem_config.link_to_code())?; } + self.shell + .change_dir(ecosystem_config.link_to_code().join(TS_INTEGRATION_PATH)); let test_pattern: &[_] = if let Some(pattern) = self.test_pattern { &["-t", pattern] diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/recovery.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/recovery.rs index 4dcc3eea82d6..49a638c38fa0 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/recovery.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/recovery.rs @@ -9,7 +9,6 @@ const RECOVERY_TESTS_PATH: &str = "core/tests/recovery-test"; pub async fn run(shell: &Shell, args: RecoveryArgs) -> anyhow::Result<()> { let config = ZkStackConfig::ecosystem(shell)?; - shell.change_dir(config.link_to_code().join(RECOVERY_TESTS_PATH)); logger::info(MSG_RECOVERY_TEST_RUN_INFO); Server::new(None, None, config.link_to_code().clone(), false).build(shell)?; @@ -18,6 +17,7 @@ pub async fn run(shell: &Shell, args: RecoveryArgs) -> anyhow::Result<()> { install_and_build_dependencies(shell, &config.link_to_code())?; } + shell.change_dir(config.link_to_code().join(RECOVERY_TESTS_PATH)); run_test(shell, &args, &config).await?; logger::outro(MSG_RECOVERY_TEST_RUN_SUCCESS); diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/revert.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/revert.rs index bdf44dbd2ab3..da7059b90ee7 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/revert.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/test/revert.rs @@ -9,7 +9,6 @@ const REVERT_TESTS_PATH: &str = "core/tests/revert-test"; pub async fn run(shell: &Shell, args: RevertArgs) -> anyhow::Result<()> { let ecosystem_config = ZkStackConfig::ecosystem(shell)?; - shell.change_dir(ecosystem_config.link_to_code().join(REVERT_TESTS_PATH)); logger::info(MSG_REVERT_TEST_RUN_INFO); @@ -17,6 +16,7 @@ pub async fn run(shell: &Shell, args: RevertArgs) -> anyhow::Result<()> { install_and_build_dependencies(shell, &ecosystem_config.link_to_code())?; } + shell.change_dir(ecosystem_config.link_to_code().join(REVERT_TESTS_PATH)); run_test(shell, &args, &ecosystem_config).await?; logger::outro(MSG_REVERT_TEST_RUN_SUCCESS); diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/args/mod.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/args/mod.rs index 7cdce0c44b94..7af382dfc8cd 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/args/mod.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/args/mod.rs @@ -1,3 +1,4 @@ pub mod chain; pub mod ecosystem; pub mod v29_chain; +pub mod v30_chain; diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/args/v30_chain.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/args/v30_chain.rs new file mode 100644 index 000000000000..7441514eb3ef --- /dev/null +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/args/v30_chain.rs @@ -0,0 +1,38 @@ +use clap::{Parser, ValueEnum}; +use serde::{Deserialize, Serialize}; +use strum::EnumIter; +use xshell::Shell; + +use super::chain::ChainUpgradeParams; + +#[derive( + Debug, Serialize, Deserialize, Clone, Copy, ValueEnum, EnumIter, strum::Display, PartialEq, Eq, +)] +pub enum SupportedPair { + Validium, + RollupBlobs, + RollupCalldata, +} + +#[derive(Parser, Debug, Clone)] +pub struct V30ChainUpgradeArgs { + #[clap(flatten)] + pub base: ChainUpgradeParams, + #[clap(long)] + pub da_mode: SupportedPair, +} + +impl V30ChainUpgradeArgs { + pub async fn fill_if_empty(mut self, shell: &Shell) -> anyhow::Result { + self.base = self.base.fill_if_empty(shell).await?; + Ok(self) + } +} + +use super::chain::UpgradeArgsInner; + +impl From for UpgradeArgsInner { + fn from(value: V30ChainUpgradeArgs) -> Self { + UpgradeArgsInner::from(value.base) + } +} diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/default_chain_upgrade.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/default_chain_upgrade.rs index e90b2834a650..216056625b41 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/default_chain_upgrade.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/default_chain_upgrade.rs @@ -13,7 +13,7 @@ use zkstack_cli_config::{ use zksync_basic_types::{ protocol_version::ProtocolVersionId, web3::Bytes, Address, L1BatchNumber, L2BlockNumber, U256, }; -use zksync_types::L2_BRIDGEHUB_ADDRESS; +use zksync_types::{commitment::L2DACommitmentScheme, L2_BRIDGEHUB_ADDRESS}; use zksync_web3_decl::{ client::{DynClient, L2}, namespaces::ZksNamespaceClient, @@ -211,6 +211,10 @@ pub struct ContractsConfig { pub struct DeployedAddresses { pub(crate) bridgehub: BridgehubAddresses, pub(crate) validator_timelock_addr: Address, + // Present only on zksync os chains + pub(crate) blobs_zksync_os_l1_da_validator_addr: Option
, + pub(crate) validium_l1_da_validator_addr: Option
, + pub(crate) rollup_l1_da_validator_addr: Option
, } #[derive(Debug, Serialize, Deserialize, Clone)] @@ -235,23 +239,24 @@ pub struct UpdatedValidators { pub blob_operator: Option
, } +pub struct NewDAValidators { + pub new_l1_da_validator: Address, + pub new_l2_commitment_scheme: L2DACommitmentScheme, +} + #[derive(Default)] pub struct AdditionalUpgradeParams { pub updated_validators: Option, + pub updated_da_validators: Option, } -pub(crate) async fn run_chain_upgrade( +pub(crate) async fn get_full_chain_upgrade_params( shell: &Shell, args_input: ChainUpgradeParams, - additional: AdditionalUpgradeParams, - run_upgrade: bool, upgrade_version: UpgradeVersion, -) -> anyhow::Result<()> { - let forge_args = &Default::default(); - let contracts_foundry_path = ZkStackConfig::from_file(shell)?.path_to_foundry_scripts(); +) -> anyhow::Result { let chain_config = ZkStackConfig::current_chain(shell)?; - - let mut args = args_input.clone().fill_if_empty(shell).await?; + let mut args = args_input.fill_if_empty(shell).await?; if args.upgrade_description_path.is_none() { args.upgrade_description_path = Some( chain_config @@ -261,6 +266,20 @@ pub(crate) async fn run_chain_upgrade( .to_string(), ); } + Ok(args) +} + +pub(crate) async fn run_chain_upgrade( + shell: &Shell, + args_input: ChainUpgradeParams, + additional: AdditionalUpgradeParams, + run_upgrade: bool, + upgrade_version: UpgradeVersion, +) -> anyhow::Result<()> { + let forge_args = &Default::default(); + let contracts_foundry_path = ZkStackConfig::from_file(shell)?.path_to_foundry_scripts(); + + let args = get_full_chain_upgrade_params(shell, args_input.clone(), upgrade_version).await?; // 0. Read the GatewayUpgradeInfo let upgrade_info = UpgradeInfo::read( @@ -369,12 +388,18 @@ pub(crate) async fn run_chain_upgrade( admin_calls_gw.extend_with_calls(enable_validator_calls.calls); } + // v30 is never supposed to be ran on a chain that settles on Gateway + if upgrade_version == UpgradeVersion::V30ZkSyncOsBlobs { + anyhow::bail!("V30ZkSyncOsBlobs upgrade is not supported on Gateway-settled chains"); + } + admin_calls_gw.display(); let (gw_chain_admin_calldata, total_value) = admin_calls_gw.compile_full_calldata(); logger::info(format!( - "Full calldata to call `ChainAdmin` with : {}\nTotal value: {}", + "Full calldata to call `ChainAdmin` with : chain_admin_addr: {}\n{}\nTotal value: {}", + chain_info.chain_admin_addr, hex::encode(&gw_chain_admin_calldata), total_value, )); @@ -415,12 +440,32 @@ pub(crate) async fn run_chain_upgrade( } } + if let Some(new_da_validators) = &additional.updated_da_validators { + let set_da_validator_calls = crate::admin_functions::set_da_validator_pair( + shell, + forge_args, + &contracts_foundry_path, + crate::admin_functions::AdminScriptMode::OnlySave, + args.chain_id.expect("chain_id is required"), + upgrade_info + .deployed_addresses + .bridgehub + .bridgehub_proxy_addr, + new_da_validators.new_l1_da_validator, + new_da_validators.new_l2_commitment_scheme, + args.l1_rpc_url.clone().expect("l1_rpc_url is required"), + ) + .await?; + admin_calls_finalize.extend_with_calls(set_da_validator_calls.calls); + } + admin_calls_finalize.display(); let (chain_admin_calldata, total_value) = admin_calls_finalize.compile_full_calldata(); logger::info(format!( - "Full calldata to call `ChainAdmin` with : {}\nTotal value: {}", + "Full calldata to call `ChainAdmin` with : chain_admin_addr: {}\n{}\nTotal value: {}", + chain_info.chain_admin_addr, hex::encode(&chain_admin_calldata), total_value, )); diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/default_ecosystem_upgrade.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/default_ecosystem_upgrade.rs index 59428e1eafeb..174d964b0ec1 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/default_ecosystem_upgrade.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/default_ecosystem_upgrade.rs @@ -15,6 +15,7 @@ use zkstack_cli_config::{ script_params::{ ForgeScriptParams, ERA_V28_1_UPGRADE_ECOSYSTEM_PARAMS, FINALIZE_UPGRADE_SCRIPT_PARAMS, V29_UPGRADE_ECOSYSTEM_PARAMS, ZK_OS_V28_1_UPGRADE_ECOSYSTEM_PARAMS, + ZK_OS_V30_BLOBS_UPGRADE_ECOSYSTEM_PARAMS, }, upgrade_ecosystem::{ input::{ @@ -221,6 +222,11 @@ async fn no_governance_prepare( }) } UpgradeVersion::V28_1VkEra => EcosystemUpgradeSpecificConfig::V28, + UpgradeVersion::V30ZkSyncOsBlobs => { + // zkstack cli is not expected to be called to generate the upgrade's content for v30 zksync os upgrade. + // It may be implemetned in the future if needed. + unimplemented!() + } }; let ecosystem_upgrade = EcosystemUpgradeInput::new( @@ -456,6 +462,9 @@ fn update_contracts_config_from_output( )); ctm.rollup_l1_da_validator_addr = output.deployed_addresses.rollup_l1_da_validator_addr; ctm.no_da_validium_l1_validator_addr = output.deployed_addresses.validium_l1_da_validator_addr; + ctm.blobs_zksync_os_l1_da_validator_addr = output + .deployed_addresses + .blobs_zksync_os_l1_da_validator_addr; } // Governance has approved the proposal, now it will insert the new protocol version into our STM (CTM) @@ -629,6 +638,7 @@ fn get_ecosystem_upgrade_params(upgrade_version: &UpgradeVersion) -> ForgeScript UpgradeVersion::V28_1Vk => ZK_OS_V28_1_UPGRADE_ECOSYSTEM_PARAMS, UpgradeVersion::V29InteropAFf => V29_UPGRADE_ECOSYSTEM_PARAMS, UpgradeVersion::V28_1VkEra => ERA_V28_1_UPGRADE_ECOSYSTEM_PARAMS, + UpgradeVersion::V30ZkSyncOsBlobs => ZK_OS_V30_BLOBS_UPGRADE_ECOSYSTEM_PARAMS, } } diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/mod.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/mod.rs index 995c0d2b6fa1..e82616173f80 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/mod.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/mod.rs @@ -6,3 +6,4 @@ pub mod utils; pub mod v27_evm_eq; pub mod v28_precompiles; pub mod v29_upgrade; +pub mod v30_upgrade; diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/types.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/types.rs index e06d75cbee8f..b6c0ecf6bc6d 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/types.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/types.rs @@ -7,6 +7,7 @@ use zksync_web3_decl::jsonrpsee::core::Serialize; Debug, Serialize, Deserialize, Clone, Copy, ValueEnum, EnumIter, strum::Display, PartialEq, Eq, )] pub enum UpgradeVersion { + V30ZkSyncOsBlobs, V29InteropAFf, V28_1Vk, V28_1VkEra, @@ -15,6 +16,9 @@ pub enum UpgradeVersion { impl UpgradeVersion { pub const fn get_default_upgrade_description_path(&self) -> &'static str { match self { + UpgradeVersion::V30ZkSyncOsBlobs => { + "./l1-contracts/script-out/zk-os-v30-upgrade-ecosystem.toml" + } UpgradeVersion::V29InteropAFf => "./l1-contracts/script-out/v29-upgrade-ecosystem.toml", UpgradeVersion::V28_1Vk => { "./l1-contracts/script-out/zk-os-v28-1-upgrade-ecosystem.toml" diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/v29_upgrade.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/v29_upgrade.rs index 0b4b07d15c3f..8bead8b12029 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/v29_upgrade.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/v29_upgrade.rs @@ -18,6 +18,7 @@ pub(crate) async fn run( operator: args_input.operator, blob_operator: args_input.blob_operator, }), + updated_da_validators: None, }, run_upgrade, crate::commands::dev::commands::upgrades::types::UpgradeVersion::V29InteropAFf, diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/v30_upgrade.rs b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/v30_upgrade.rs new file mode 100644 index 000000000000..ad996f976306 --- /dev/null +++ b/zkstack_cli/crates/zkstack/src/commands/dev/commands/upgrades/v30_upgrade.rs @@ -0,0 +1,65 @@ +use xshell::Shell; +use zkstack_cli_config::traits::ReadConfig; +use zksync_types::commitment::L2DACommitmentScheme; + +use crate::commands::dev::commands::upgrades::{ + args::v30_chain::V30ChainUpgradeArgs, + default_chain_upgrade::{ + get_full_chain_upgrade_params, run_chain_upgrade, AdditionalUpgradeParams, NewDAValidators, + UpgradeInfo, + }, + types::UpgradeVersion, +}; + +const V30_UPGRADE_VERSION: UpgradeVersion = UpgradeVersion::V30ZkSyncOsBlobs; + +pub(crate) async fn run( + shell: &Shell, + args_input: V30ChainUpgradeArgs, + run_upgrade: bool, +) -> anyhow::Result<()> { + let upgrade_info = UpgradeInfo::read( + shell, + get_full_chain_upgrade_params(shell, args_input.base.clone(), V30_UPGRADE_VERSION) + .await? + .upgrade_description_path + .unwrap(), + )?; + + run_chain_upgrade( + shell, + args_input.base.clone(), + AdditionalUpgradeParams { + updated_validators: None, + updated_da_validators: Some(match args_input.da_mode { + crate::commands::dev::commands::upgrades::args::v30_chain::SupportedPair::Validium => { + NewDAValidators { + new_l1_da_validator: upgrade_info.deployed_addresses.validium_l1_da_validator_addr.ok_or_else(|| { + anyhow::anyhow!("Validium L1 DA validator address is not set for this chain") + })?, + new_l2_commitment_scheme: L2DACommitmentScheme::EmptyNoDA, + } + } + crate::commands::dev::commands::upgrades::args::v30_chain::SupportedPair::RollupBlobs => { + NewDAValidators { + new_l1_da_validator: upgrade_info.deployed_addresses.blobs_zksync_os_l1_da_validator_addr.ok_or_else(|| { + anyhow::anyhow!("Blobs ZkSync OS L1 DA validator address is not set for this chain") + })?, + new_l2_commitment_scheme: L2DACommitmentScheme::BlobsZKSyncOS, + } + } + crate::commands::dev::commands::upgrades::args::v30_chain::SupportedPair::RollupCalldata => { + NewDAValidators { + new_l1_da_validator: upgrade_info.deployed_addresses.rollup_l1_da_validator_addr.ok_or_else(|| { + anyhow::anyhow!("Rollup Calldata L1 DA validator address is not set for this chain") + })?, + new_l2_commitment_scheme: L2DACommitmentScheme::BlobsAndPubdataKeccak256, + } + } + }) + }, + run_upgrade, + V30_UPGRADE_VERSION, + ) + .await +} diff --git a/zkstack_cli/crates/zkstack/src/commands/dev/mod.rs b/zkstack_cli/crates/zkstack/src/commands/dev/mod.rs index fb61104a4ac0..d1545c694b84 100644 --- a/zkstack_cli/crates/zkstack/src/commands/dev/mod.rs +++ b/zkstack_cli/crates/zkstack/src/commands/dev/mod.rs @@ -77,6 +77,10 @@ pub enum DevCommands { RunV29ChainUpgrade(commands::upgrades::args::v29_chain::V29ChainUpgradeArgs), #[command(about = V29_CHAIN_UPGRADE)] GenerateV29ChainUpgrade(commands::upgrades::args::v29_chain::V29ChainUpgradeArgs), + #[command(about = V29_CHAIN_UPGRADE)] + RunV30ZZksyncOSChainUpgrade(commands::upgrades::args::v30_chain::V30ChainUpgradeArgs), + #[command(about = V29_CHAIN_UPGRADE)] + GenerateV30ZksyncOSChainUpgrade(commands::upgrades::args::v30_chain::V30ChainUpgradeArgs), } pub async fn run(shell: &Shell, args: DevCommands) -> anyhow::Result<()> { @@ -123,6 +127,12 @@ pub async fn run(shell: &Shell, args: DevCommands) -> anyhow::Result<()> { DevCommands::RunV29ChainUpgrade(args) => { commands::upgrades::v29_upgrade::run(shell, args, true).await? } + DevCommands::GenerateV30ZksyncOSChainUpgrade(args) => { + commands::upgrades::v30_upgrade::run(shell, args, false).await? + } + DevCommands::RunV30ZZksyncOSChainUpgrade(args) => { + commands::upgrades::v30_upgrade::run(shell, args, true).await? + } } Ok(()) } diff --git a/zkstack_cli/crates/zkstack/src/commands/ecosystem/common.rs b/zkstack_cli/crates/zkstack/src/commands/ecosystem/common.rs index 25d1cfa54fcf..11cbb142216e 100644 --- a/zkstack_cli/crates/zkstack/src/commands/ecosystem/common.rs +++ b/zkstack_cli/crates/zkstack/src/commands/ecosystem/common.rs @@ -169,7 +169,7 @@ pub async fn init_chains( let mut deploy_paymaster = args.deploy_paymaster; let genesis_args = &mut args.genesis_args; if args.dev { - deploy_paymaster = Some(true); + deploy_paymaster = Some(deploy_paymaster.unwrap_or(true)); if let Some(genesis) = genesis_args { genesis.dev = true; } diff --git a/zkstack_cli/crates/zkstack/src/utils/addresses.rs b/zkstack_cli/crates/zkstack/src/utils/addresses.rs index 99effbd00382..28d3d20eeb92 100644 --- a/zkstack_cli/crates/zkstack/src/utils/addresses.rs +++ b/zkstack_cli/crates/zkstack/src/utils/addresses.rs @@ -1,4 +1,12 @@ -use zksync_basic_types::{address_to_u256, u256_to_address, Address}; +use ethers::prelude::Provider; +use zksync_basic_types::{ + address_to_u256, + ethabi::{encode, Token}, + u256_to_address, Address, H256, U256, +}; +use zksync_system_constants::{L2_BRIDGEHUB_ADDRESS, L2_CHAIN_ASSET_HANDLER_ADDRESS}; + +use crate::{abi::ChainTypeManagerAbi, utils::protocol_version::get_minor_protocol_version}; pub(crate) fn apply_l1_to_l2_alias(addr: Address) -> Address { let offset: Address = "1111000000000000000000000000000000001111".parse().unwrap(); @@ -6,3 +14,32 @@ pub(crate) fn apply_l1_to_l2_alias(addr: Address) -> Address { u256_to_address(&addr_with_offset) } + +// The most reliable way to precompute the address is to simulate `createNewChain` function +pub(crate) async fn precompute_chain_address_on_gateway( + l2_chain_id: u64, + base_token_asset_id: H256, + new_l2_admin: Address, + protocol_version: U256, + gateway_diamond_cut: Vec, + gw_ctm: ChainTypeManagerAbi>, +) -> anyhow::Result
{ + let ctm_data = encode(&[ + Token::FixedBytes(base_token_asset_id.0.into()), + Token::Address(new_l2_admin), + Token::Uint(protocol_version), + Token::Bytes(gateway_diamond_cut), + ]); + + let caller = if get_minor_protocol_version(protocol_version)?.is_pre_interop_fast_blocks() { + L2_BRIDGEHUB_ADDRESS + } else { + L2_CHAIN_ASSET_HANDLER_ADDRESS + }; + let result = gw_ctm + .forwarded_bridge_mint(l2_chain_id.into(), ctm_data.into()) + .from(caller) + .await?; + + Ok(result) +} diff --git a/zkstack_cli/crates/zkstack/src/utils/mod.rs b/zkstack_cli/crates/zkstack/src/utils/mod.rs index da0a43ab45f4..75cf6b0df48c 100644 --- a/zkstack_cli/crates/zkstack/src/utils/mod.rs +++ b/zkstack_cli/crates/zkstack/src/utils/mod.rs @@ -3,4 +3,5 @@ pub mod consensus; pub mod forge; pub mod link_to_code; pub mod ports; +pub mod protocol_version; pub mod rocks_db; diff --git a/zkstack_cli/crates/zkstack/src/utils/protocol_version.rs b/zkstack_cli/crates/zkstack/src/utils/protocol_version.rs new file mode 100644 index 000000000000..e43c8378c9b7 --- /dev/null +++ b/zkstack_cli/crates/zkstack/src/utils/protocol_version.rs @@ -0,0 +1,6 @@ +use zksync_basic_types::{protocol_version::ProtocolVersionId, U256}; + +pub fn get_minor_protocol_version(protocol_version: U256) -> anyhow::Result { + ProtocolVersionId::try_from_packed_semver(protocol_version) + .map_err(|err| anyhow::format_err!("Failed to unpack semver for protocol version: {err}")) +}