Skip to content

Commit

Permalink
Add comments
Browse files Browse the repository at this point in the history
Signed-off-by: Danil <[email protected]>
  • Loading branch information
Deniallugo committed Mar 4, 2025
1 parent c86f496 commit 7247fa0
Show file tree
Hide file tree
Showing 17 changed files with 66 additions and 57 deletions.
20 changes: 11 additions & 9 deletions core/lib/config/src/configs/contracts/chain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ use zksync_basic_types::{Address, H256};

use crate::configs::contracts::ecosystem::EcosystemContracts;

/// Data about deployed contracts.
/// Data about deployed contracts unified l1/l2 contracts and bridges. To Be Deleted
#[derive(Debug, Deserialize, Clone, PartialEq)]
pub struct ChainContractsConfig {
pub struct AllContractsConfig {
pub governance_addr: Address,
pub verifier_addr: Address,
pub default_upgrade_addr: Address,
Expand Down Expand Up @@ -36,7 +36,7 @@ pub struct ChainContractsConfig {
pub no_da_validium_l1_validator_addr: Option<Address>,
}

impl ChainContractsConfig {
impl AllContractsConfig {
pub fn for_tests() -> Self {
Self {
verifier_addr: Address::repeat_byte(0x06),
Expand Down Expand Up @@ -64,18 +64,20 @@ impl ChainContractsConfig {
}
}

// Contracts specific for the chain. Should be deployed to all Settlement Layers
#[derive(Debug, Clone)]
pub struct ChainContracts {
pub diamond_proxy_addr: Address,
pub chain_admin: Address,
}

// Contracts deployed to the l2
#[derive(Debug, Clone)]
pub struct L2Contracts {
pub l2_erc20_default_bridge: Option<Address>,
pub l2_shared_bridge_addr: Option<Address>,
pub l2_legacy_shared_bridge_addr: Option<Address>,
pub l2_timestamp_asserter_addr: Option<Address>,
pub l2_da_validator_addr: Option<Address>,
pub l2_testnet_paymaster_addr: Option<Address>,
pub erc20_default_bridge: Option<Address>,
pub shared_bridge_addr: Option<Address>,
pub legacy_shared_bridge_addr: Option<Address>,
pub timestamp_asserter_addr: Option<Address>,
pub da_validator_addr: Option<Address>,
pub testnet_paymaster_addr: Option<Address>,
}
7 changes: 7 additions & 0 deletions core/lib/config/src/configs/contracts/ecosystem.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use serde::{Deserialize, Serialize};
// Workspace uses
use zksync_basic_types::Address;

// Unified ecosystem contracts. To be deleted, after contracts config migration
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
pub struct EcosystemContracts {
pub bridgehub_proxy_addr: Address,
Expand All @@ -28,15 +29,21 @@ impl EcosystemContracts {
}
}
}

// Ecosystem contracts that are specific only for L1
#[derive(Debug, Clone)]
pub struct EcosystemL1Specific {
pub bytecodes_supplier_addr: Option<Address>,
// Note that on the contract side of things this contract is called `L2WrappedBaseTokenStore`,
// while on the server side for consistency with the conventions, where the prefix denotes
// the location of the contracts we call it `l1_wrapped_base_token_store`
pub wrapped_base_token_store: Option<Address>,
pub shared_bridge: Option<Address>,
pub erc_20_bridge: Option<Address>,
pub base_token_address: Option<Address>,
}

// Ecosystem contracts that are presented on all Settlement Layers
#[derive(Debug, Clone)]
pub struct EcosystemCommonContracts {
pub bridgehub_proxy_addr: Address,
Expand Down
4 changes: 2 additions & 2 deletions core/lib/config/src/configs/contracts/gateway.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use zksync_basic_types::{web3::Bytes, Address, SLChainId};

use super::chain::ChainContractsConfig;
use super::chain::AllContractsConfig;

/// Config that is only stored for the gateway chain.
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq)]
Expand Down Expand Up @@ -52,7 +52,7 @@ impl GatewayChainConfig {
}

pub fn from_contracts_and_chain_id(
contracts: ChainContractsConfig,
contracts: AllContractsConfig,
gateway_chain_id: SLChainId,
) -> Self {
Self {
Expand Down
44 changes: 22 additions & 22 deletions core/lib/config/src/configs/contracts/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use zksync_basic_types::{settlement::SettlementMode, Address, SLChainId, H160};

use crate::configs::{
contracts::{
chain::{ChainContracts, ChainContractsConfig, L2Contracts},
chain::{AllContractsConfig, ChainContracts, L2Contracts},
ecosystem::{EcosystemCommonContracts, EcosystemL1Specific},
},
gateway::GatewayChainConfig,
Expand All @@ -18,7 +18,7 @@ pub const L2_BRIDGEHUB_ADDRESS: Address = H160([
]);

#[derive(Debug, Clone)]
pub struct SpecificContracts {
pub struct ChainSpecificContracts {
pub ecosystem_contracts: EcosystemCommonContracts,
pub chain_contracts_config: ChainContracts,
pub l2_contracts: L2Contracts,
Expand All @@ -27,14 +27,14 @@ pub struct SpecificContracts {
#[derive(Debug, Clone)]
pub struct Contracts {
l1_specific: EcosystemL1Specific,
l1_contracts: SpecificContracts,
gateway_contracts: Option<SpecificContracts>,
l1_contracts: ChainSpecificContracts,
gateway_contracts: Option<ChainSpecificContracts>,
sl_mode: SettlementMode,
gateway_chain_id: Option<SLChainId>,
}

impl Contracts {
pub fn current_contracts(&self) -> &SpecificContracts {
pub fn current_contracts(&self) -> &ChainSpecificContracts {
match self.sl_mode {
SettlementMode::SettlesToL1 => &self.l1_contracts,
SettlementMode::Gateway => self.gateway_contracts.as_ref().expect("Settles to Gateway"),
Expand All @@ -45,11 +45,11 @@ impl Contracts {
&self.l1_specific
}

pub fn l1_contracts(&self) -> &SpecificContracts {
pub fn l1_contracts(&self) -> &ChainSpecificContracts {
&self.l1_contracts
}

pub fn gateway(&self) -> Option<&SpecificContracts> {
pub fn gateway(&self) -> Option<&ChainSpecificContracts> {
self.gateway_contracts.as_ref()
}
pub fn set_settlement_mode(&mut self, settlement_mode: SettlementMode) {
Expand All @@ -62,7 +62,7 @@ impl Contracts {

impl Contracts {
pub fn new(
contracts_config: ChainContractsConfig,
contracts_config: AllContractsConfig,
gateway_chain_config: Option<GatewayChainConfig>,
) -> Self {
let ecosystem = contracts_config.ecosystem_contracts.unwrap();
Expand All @@ -74,7 +74,7 @@ impl Contracts {
erc_20_bridge: contracts_config.l1_erc20_bridge_proxy_addr,
base_token_address: contracts_config.base_token_addr,
},
l1_contracts: SpecificContracts {
l1_contracts: ChainSpecificContracts {
ecosystem_contracts: EcosystemCommonContracts {
bridgehub_proxy_addr: ecosystem.bridgehub_proxy_addr,
state_transition_proxy_addr: ecosystem.state_transition_proxy_addr,
Expand All @@ -89,16 +89,16 @@ impl Contracts {
chain_admin: contracts_config.chain_admin_addr,
},
l2_contracts: L2Contracts {
l2_erc20_default_bridge: contracts_config.l2_erc20_bridge_addr,
l2_shared_bridge_addr: contracts_config.l2_shared_bridge_addr,
l2_legacy_shared_bridge_addr: contracts_config.l2_legacy_shared_bridge_addr,
l2_timestamp_asserter_addr: contracts_config.l2_timestamp_asserter_addr,
l2_da_validator_addr: contracts_config.l2_da_validator_addr,
l2_testnet_paymaster_addr: contracts_config.l2_testnet_paymaster_addr,
erc20_default_bridge: contracts_config.l2_erc20_bridge_addr,
shared_bridge_addr: contracts_config.l2_shared_bridge_addr,
legacy_shared_bridge_addr: contracts_config.l2_legacy_shared_bridge_addr,
timestamp_asserter_addr: contracts_config.l2_timestamp_asserter_addr,
da_validator_addr: contracts_config.l2_da_validator_addr,
testnet_paymaster_addr: contracts_config.l2_testnet_paymaster_addr,
},
},
gateway_chain_id: gateway_chain_config.as_ref().map(|a| a.gateway_chain_id),
gateway_contracts: gateway_chain_config.map(|gateway| SpecificContracts {
gateway_contracts: gateway_chain_config.map(|gateway| ChainSpecificContracts {
ecosystem_contracts: EcosystemCommonContracts {
bridgehub_proxy_addr: L2_BRIDGEHUB_ADDRESS,
state_transition_proxy_addr: gateway.state_transition_proxy_addr,
Expand All @@ -113,12 +113,12 @@ impl Contracts {
chain_admin: gateway.chain_admin_addr,
},
l2_contracts: L2Contracts {
l2_erc20_default_bridge: contracts_config.l2_erc20_bridge_addr,
l2_shared_bridge_addr: contracts_config.l2_shared_bridge_addr,
l2_legacy_shared_bridge_addr: contracts_config.l2_legacy_shared_bridge_addr,
l2_timestamp_asserter_addr: contracts_config.l2_timestamp_asserter_addr,
l2_da_validator_addr: contracts_config.l2_da_validator_addr,
l2_testnet_paymaster_addr: contracts_config.l2_testnet_paymaster_addr,
erc20_default_bridge: contracts_config.l2_erc20_bridge_addr,
shared_bridge_addr: contracts_config.l2_shared_bridge_addr,
legacy_shared_bridge_addr: contracts_config.l2_legacy_shared_bridge_addr,
timestamp_asserter_addr: contracts_config.l2_timestamp_asserter_addr,
da_validator_addr: contracts_config.l2_da_validator_addr,
testnet_paymaster_addr: contracts_config.l2_testnet_paymaster_addr,
},
}),
sl_mode: Default::default(),
Expand Down
2 changes: 1 addition & 1 deletion core/lib/config/src/configs/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ pub use self::{
base_token_adjuster::BaseTokenAdjusterConfig,
commitment_generator::CommitmentGeneratorConfig,
contract_verifier::ContractVerifierConfig,
contracts::{chain::ChainContractsConfig, ecosystem::EcosystemContracts, gateway},
contracts::{chain::AllContractsConfig, ecosystem::EcosystemContracts, gateway},
da_client::{avail::AvailConfig, celestia::CelestiaConfig, eigen::EigenConfig, DAClientConfig},
da_dispatcher::DADispatcherConfig,
database::{DBConfig, PostgresConfig},
Expand Down
2 changes: 1 addition & 1 deletion core/lib/config/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#![allow(clippy::upper_case_acronyms, clippy::derive_partial_eq_without_eq)]

pub use crate::configs::{
contracts::{chain::ChainContractsConfig as ContractsConfig, Contracts},
contracts::{chain::AllContractsConfig as ContractsConfig, Contracts},
ApiConfig, AvailConfig, BaseTokenAdjusterConfig, CelestiaConfig, ContractVerifierConfig,
DAClientConfig, DADispatcherConfig, DBConfig, EigenConfig, EthConfig, EthWatchConfig,
ExternalProofIntegrationApiConfig, GasAdjusterConfig, GenesisConfig, ObjectStoreConfig,
Expand Down
6 changes: 3 additions & 3 deletions core/lib/config/src/testonly.rs
Original file line number Diff line number Diff line change
Expand Up @@ -246,9 +246,9 @@ impl Distribution<configs::ContractVerifierConfig> for EncodeDist {
}
}

impl Distribution<configs::ChainContractsConfig> for EncodeDist {
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> configs::ChainContractsConfig {
configs::ChainContractsConfig {
impl Distribution<configs::AllContractsConfig> for EncodeDist {
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> configs::AllContractsConfig {
configs::AllContractsConfig {
governance_addr: rng.gen(),
verifier_addr: rng.gen(),
default_upgrade_addr: rng.gen(),
Expand Down
2 changes: 1 addition & 1 deletion core/lib/protobuf_config/src/contracts.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use anyhow::Context as _;
use zksync_config::configs::contracts::{
chain::ChainContractsConfig as ContractsConfig, ecosystem::EcosystemContracts,
chain::AllContractsConfig as ContractsConfig, ecosystem::EcosystemContracts,
};
use zksync_protobuf::{repr::ProtoRepr, required};

Expand Down
18 changes: 9 additions & 9 deletions core/node/api_server/src/web3/state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -170,19 +170,19 @@ impl InternalApiConfigBuilder {
l2_erc20_default_bridge: contracts_config
.current_contracts()
.l2_contracts
.l2_erc20_default_bridge,
.erc20_default_bridge,
l1_shared_default_bridge: contracts_config.l1_specific_contracts().shared_bridge,
l2_shared_default_bridge: contracts_config
.current_contracts()
.l2_contracts
.l2_shared_bridge_addr,
.shared_bridge_addr,
// Seems weth is not available
l1_weth_bridge: None,
l2_weth_bridge: None,
l2_legacy_shared_bridge: contracts_config
.current_contracts()
.l2_contracts
.l2_legacy_shared_bridge_addr,
.legacy_shared_bridge_addr,
});
self.l1_bridgehub_proxy_addr = Some(
contracts_config
Expand Down Expand Up @@ -212,7 +212,7 @@ impl InternalApiConfigBuilder {
self.l2_testnet_paymaster_addr = contracts_config
.current_contracts()
.l2_contracts
.l2_testnet_paymaster_addr;
.testnet_paymaster_addr;
self
}

Expand Down Expand Up @@ -296,19 +296,19 @@ impl InternalApiConfig {
l2_erc20_default_bridge: contracts_config
.current_contracts()
.l2_contracts
.l2_erc20_default_bridge,
.erc20_default_bridge,
l1_shared_default_bridge: contracts_config.l1_specific_contracts().shared_bridge,
l2_shared_default_bridge: contracts_config
.current_contracts()
.l2_contracts
.l2_shared_bridge_addr,
.shared_bridge_addr,
// Seems weth is not available
l1_weth_bridge: None,
l2_weth_bridge: None,
l2_legacy_shared_bridge: contracts_config
.current_contracts()
.l2_contracts
.l2_legacy_shared_bridge_addr,
.legacy_shared_bridge_addr,
},
l1_bridgehub_proxy_addr: Some(
contracts_config
Expand Down Expand Up @@ -337,7 +337,7 @@ impl InternalApiConfig {
l2_testnet_paymaster_addr: contracts_config
.current_contracts()
.l2_contracts
.l2_testnet_paymaster_addr,
.testnet_paymaster_addr,
req_entities_limit: web3_config.req_entities_limit(),
fee_history_limit: web3_config.fee_history_limit(),
base_token_address: Some(
Expand All @@ -352,7 +352,7 @@ impl InternalApiConfig {
timestamp_asserter_address: contracts_config
.current_contracts()
.l2_contracts
.l2_timestamp_asserter_addr,
.timestamp_asserter_addr,
l1_server_notifier_addr: contracts_config
.current_contracts()
.ecosystem_contracts
Expand Down
2 changes: 1 addition & 1 deletion core/node/api_server/src/web3/tests/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ use zksync_config::{
configs::{
api::Web3JsonRpcConfig,
chain::{NetworkConfig, StateKeeperConfig},
ChainContractsConfig as ContractsConfig,
AllContractsConfig as ContractsConfig,
},
Contracts, GenesisConfig,
};
Expand Down
4 changes: 2 additions & 2 deletions core/node/consensus/src/testonly.rs
Original file line number Diff line number Diff line change
Expand Up @@ -603,7 +603,7 @@ impl StateKeeperRunner {
let cfg = InternalApiConfig::new(
&configs::api::Web3JsonRpcConfig::for_tests(),
&configs::contracts::Contracts::new(
configs::ChainContractsConfig::for_tests(),
configs::AllContractsConfig::for_tests(),
None,
),
&configs::GenesisConfig::for_tests(),
Expand Down Expand Up @@ -687,7 +687,7 @@ impl StateKeeperRunner {
let cfg = InternalApiConfig::new(
&configs::api::Web3JsonRpcConfig::for_tests(),
&configs::contracts::Contracts::new(
configs::ChainContractsConfig::for_tests(),
configs::AllContractsConfig::for_tests(),
None,
),
&configs::GenesisConfig::for_tests(),
Expand Down
2 changes: 1 addition & 1 deletion core/node/da_dispatcher/src/da_dispatcher.rs
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ impl DataAvailabilityDispatcher {
self.contracts_config
.current_contracts()
.l2_contracts
.l2_da_validator_addr
.da_validator_addr
.context("L2 DA validator address is not set")?,
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use crate::{
FromContext, IntoContext, StopReceiver, Task, TaskId,
};

/// Wiring layer for [`PKSigningClient`].
/// Wiring layer for [`GatewayMigrator`].
#[derive(Debug)]
pub struct GatewayMigratorLayer;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use crate::{
FromContext, IntoContext,
};

/// Wiring layer for [`PKSigningClient`].
/// Wiring layer for [`SettlementLayerData`].
#[derive(Debug)]
pub struct SettlementLayerData {
contracts: Contracts,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ impl WiringLayer for MempoolIOLayer {
.0
.current_contracts()
.l2_contracts
.l2_da_validator_addr,
.da_validator_addr,
self.pubdata_type,
)?;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ impl WiringLayer for OutputHandlerLayer {
.0
.current_contracts()
.l2_contracts
.l2_legacy_shared_bridge_addr,
.legacy_shared_bridge_addr,
self.l2_block_seal_queue_capacity,
)
.await?;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ impl WiringLayer for TxSenderLayer {
.0
.current_contracts()
.l2_contracts
.l2_timestamp_asserter_addr
.timestamp_asserter_addr
{
Some(address) => {
let timestamp_asserter_config =
Expand Down

0 comments on commit 7247fa0

Please sign in to comment.