anvil_zksync_l1_sidecar/zkstack_config/
contracts.rs

1#![allow(dead_code)]
2//! Copied from `zkstack_cli_config::contracts`
3
4use 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    // `Option` to be able to parse configs from pre-gateway protocol version.
23    #[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    // `Option` to be able to parse configs from pre-gateway protocol version.
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub force_deployments_data: Option<String>,
30    // `Option` to be able to parse configs from pre-gateway protocol version.
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub native_token_vault_addr: Option<Address>,
33    // `Option` to be able to parse configs from pre-gateway protocol version.
34    #[serde(skip_serializing_if = "Option::is_none")]
35    pub l1_bytecodes_supplier_addr: Option<Address>,
36    // `Option` to be able to parse configs from pre-gateway protocol version.
37    #[serde(skip_serializing_if = "Option::is_none")]
38    pub expected_rollup_l2_da_validator: Option<Address>,
39    // `Option` to be able to parse configs from pre-gateway protocol version.
40    #[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    // `Option` to be able to parse configs from pre-gateway protocol version.
49    #[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    // `Option` to be able to parse configs from pre-gateway protocol version.
68    #[serde(skip_serializing_if = "Option::is_none")]
69    pub access_control_restriction_addr: Option<Address>,
70    // `Option` to be able to parse configs from pre-gateway protocol version.
71    #[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    // `Option` to be able to parse configs from pre-gateway protocol version.
78    #[serde(skip_serializing_if = "Option::is_none")]
79    pub base_token_asset_id: Option<H256>,
80    // `Option` to be able to parse configs from pre-gateway protocol version.
81    #[serde(skip_serializing_if = "Option::is_none")]
82    pub rollup_l1_da_validator_addr: Option<Address>,
83    // `Option` to be able to parse configs from pre-gateway protocol version.
84    #[serde(skip_serializing_if = "Option::is_none")]
85    pub avail_l1_da_validator_addr: Option<Address>,
86    // `Option` to be able to parse configs from pre-gateway protocol version.
87    #[serde(skip_serializing_if = "Option::is_none")]
88    pub no_da_validium_l1_validator_addr: Option<Address>,
89    // `Option` to be able to parse configs from pre-gateway protocol version.
90    #[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    // `Option` to be able to parse configs from pre-gateway protocol version.
99    #[serde(skip_serializing_if = "Option::is_none")]
100    pub da_validator_addr: Option<Address>,
101    // `Option` to be able to parse configs from pre-gateway protocol version.
102    #[serde(skip_serializing_if = "Option::is_none")]
103    pub l2_native_token_vault_proxy_addr: Option<Address>,
104    // `Option` to be able to parse configs from previous protocol version
105    #[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}