anvil_zksync_l1_sidecar/zkstack_config/
contracts.rs1#![allow(dead_code)]
2use serde::Deserialize;
5use zksync_types::{Address, H256};
6
7#[derive(Debug, Deserialize, Clone, Default)]
8pub struct ContractsConfig {
9 pub create2_factory_addr: Address,
10 pub create2_factory_salt: H256,
11 pub ecosystem_contracts: EcosystemContracts,
12 pub bridges: BridgesContracts,
13 pub l1: L1Contracts,
14 pub l2: L2Contracts,
15}
16
17#[derive(Debug, Deserialize, Clone, PartialEq, Default)]
18pub struct EcosystemContracts {
19 pub bridgehub_proxy_addr: Address,
20 pub state_transition_proxy_addr: Address,
21 pub transparent_proxy_admin_addr: Address,
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub stm_deployment_tracker_proxy_addr: Option<Address>,
25 pub validator_timelock_addr: Address,
26 pub diamond_cut_data: String,
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub force_deployments_data: Option<String>,
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub native_token_vault_addr: Option<Address>,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 pub l1_bytecodes_supplier_addr: Option<Address>,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub expected_rollup_l2_da_validator: Option<Address>,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub l1_wrapped_base_token_store: Option<Address>,
42}
43
44#[derive(Debug, Deserialize, Clone, Default)]
45pub struct BridgesContracts {
46 pub erc20: BridgeContractsDefinition,
47 pub shared: BridgeContractsDefinition,
48 #[serde(skip_serializing_if = "Option::is_none")]
50 pub l1_nullifier_addr: Option<Address>,
51}
52
53#[derive(Debug, Deserialize, Clone, Default)]
54pub struct BridgeContractsDefinition {
55 pub l1_address: Address,
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub l2_address: Option<Address>,
58}
59
60#[derive(Debug, Deserialize, Clone, Default)]
61pub struct L1Contracts {
62 pub default_upgrade_addr: Address,
63 pub diamond_proxy_addr: Address,
64 pub governance_addr: Address,
65 #[serde(default)]
66 pub chain_admin_addr: Address,
67 #[serde(skip_serializing_if = "Option::is_none")]
69 pub access_control_restriction_addr: Option<Address>,
70 #[serde(skip_serializing_if = "Option::is_none")]
72 pub chain_proxy_admin_addr: Option<Address>,
73 pub multicall3_addr: Address,
74 pub verifier_addr: Address,
75 pub validator_timelock_addr: Address,
76 pub base_token_addr: Address,
77 #[serde(skip_serializing_if = "Option::is_none")]
79 pub base_token_asset_id: Option<H256>,
80 #[serde(skip_serializing_if = "Option::is_none")]
82 pub rollup_l1_da_validator_addr: Option<Address>,
83 #[serde(skip_serializing_if = "Option::is_none")]
85 pub avail_l1_da_validator_addr: Option<Address>,
86 #[serde(skip_serializing_if = "Option::is_none")]
88 pub no_da_validium_l1_validator_addr: Option<Address>,
89 #[serde(skip_serializing_if = "Option::is_none")]
91 pub transaction_filterer_addr: Option<Address>,
92}
93
94#[derive(Debug, Deserialize, Clone, Default)]
95pub struct L2Contracts {
96 pub testnet_paymaster_addr: Address,
97 pub default_l2_upgrader: Address,
98 #[serde(skip_serializing_if = "Option::is_none")]
100 pub da_validator_addr: Option<Address>,
101 #[serde(skip_serializing_if = "Option::is_none")]
103 pub l2_native_token_vault_proxy_addr: Option<Address>,
104 #[serde(skip_serializing_if = "Option::is_none")]
106 pub legacy_shared_bridge_addr: Option<Address>,
107 pub consensus_registry: Option<Address>,
108 pub multicall3: Option<Address>,
109 pub timestamp_asserter_addr: Option<Address>,
110}