Skip to content

Commit 57701e5

Browse files
committed
Merge remote-tracking branch 'origin/zksync-os-stable' into mmzk_0911_raid_script_merged
2 parents 1eaa26f + 4684b45 commit 57701e5

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-0
lines changed

l1-contracts/deploy-script-config-template/register-hyperchain.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ bridgehub_create_new_chain_salt = 0
66
validium_mode = false
77
validator_sender_operator_commit_eth = "0x0000000000000000000000000000000000000000"
88
validator_sender_operator_blobs_eth = "0x0000000000000000000000000000000000000001"
9+
validator_sender_operator_prove = "0x0000000000000000000000000000000000000002"
10+
validator_sender_operator_execute = "0x0000000000000000000000000000000000000003"
911
base_token_gas_price_multiplier_nominator = 1
1012
base_token_gas_price_multiplier_denominator = 1
1113
governance_min_delay = 0

l1-contracts/deploy-scripts/RegisterZKChain.s.sol

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ struct Config {
4444
uint256 bridgehubCreateNewChainSalt;
4545
address validatorSenderOperatorCommitEth;
4646
address validatorSenderOperatorBlobsEth;
47+
// optional - if not set, then equal to 0
48+
address validatorSenderOperatorProve;
49+
// optional - if not set, then equal to 0
50+
address validatorSenderOperatorExecute;
4751
address baseToken;
4852
bytes32 baseTokenAssetId;
4953
uint128 baseTokenGasPriceMultiplierNominator;
@@ -178,6 +182,20 @@ contract RegisterZKChainScript is Script {
178182
config.validiumMode = toml.readBool("$.chain.validium_mode");
179183
config.validatorSenderOperatorCommitEth = toml.readAddress("$.chain.validator_sender_operator_commit_eth");
180184
config.validatorSenderOperatorBlobsEth = toml.readAddress("$.chain.validator_sender_operator_blobs_eth");
185+
186+
// These were added to zkstack tool recently (9th Sept 2025).
187+
// So doing this for backwards compatibility.
188+
if (vm.keyExistsToml(toml, "$.chain.validator_sender_operator_prove")) {
189+
config.validatorSenderOperatorProve = toml.readAddress("$.chain.validator_sender_operator_prove");
190+
} else {
191+
config.validatorSenderOperatorProve = address(0);
192+
}
193+
if (vm.keyExistsToml(toml, "$.chain.validator_sender_operator_execute")) {
194+
config.validatorSenderOperatorExecute = toml.readAddress("$.chain.validator_sender_operator_execute");
195+
} else {
196+
config.validatorSenderOperatorExecute = address(0);
197+
}
198+
181199
config.initializeLegacyBridge = toml.readBool("$.initialize_legacy_bridge");
182200

183201
config.governance = toml.readAddress("$.governance");
@@ -231,6 +249,10 @@ contract RegisterZKChainScript is Script {
231249
config.validiumMode = toml.readBool("$.chain.validium_mode");
232250
config.validatorSenderOperatorCommitEth = toml.readAddress("$.chain.validator_sender_operator_commit_eth");
233251
config.validatorSenderOperatorBlobsEth = toml.readAddress("$.chain.validator_sender_operator_blobs_eth");
252+
// These were added to zkstack tool recently (9th Sept 2025).
253+
config.validatorSenderOperatorProve = toml.readAddress("$.chain.validator_sender_operator_prove");
254+
config.validatorSenderOperatorExecute = toml.readAddress("$.chain.validator_sender_operator_execute");
255+
234256
config.baseTokenGasPriceMultiplierNominator = uint128(
235257
toml.readUint("$.chain.base_token_gas_price_multiplier_nominator")
236258
);
@@ -420,6 +442,14 @@ contract RegisterZKChainScript is Script {
420442
vm.startBroadcast(msg.sender);
421443
validatorTimelock.addValidatorForChainId(config.chainChainId, config.validatorSenderOperatorCommitEth);
422444
validatorTimelock.addValidatorForChainId(config.chainChainId, config.validatorSenderOperatorBlobsEth);
445+
// Add them to validators, only if set.
446+
if (config.validatorSenderOperatorProve != address(0)) {
447+
validatorTimelock.addValidatorForChainId(config.chainChainId, config.validatorSenderOperatorProve);
448+
}
449+
if (config.validatorSenderOperatorExecute != address(0)) {
450+
validatorTimelock.addValidatorForChainId(config.chainChainId, config.validatorSenderOperatorExecute);
451+
}
452+
423453
vm.stopBroadcast();
424454

425455
console.log("Validators added");

l1-contracts/test/foundry/l1/integration/_SharedZKChainDeployer.t.sol

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ contract ZKChainDeployer is L1ContractDeployer {
2525
bool validiumMode;
2626
address validatorSenderOperatorCommitEth;
2727
address validatorSenderOperatorBlobsEth;
28+
address validatorSenderOperatorProve;
29+
address validatorSenderOperatorExecute;
2830
uint128 baseTokenGasPriceMultiplierNominator;
2931
uint128 baseTokenGasPriceMultiplierDenominator;
3032
bool allowEvmEmulator;
@@ -88,6 +90,8 @@ contract ZKChainDeployer is L1ContractDeployer {
8890
validiumMode: false,
8991
validatorSenderOperatorCommitEth: address(0),
9092
validatorSenderOperatorBlobsEth: address(1),
93+
validatorSenderOperatorProve: address(2),
94+
validatorSenderOperatorExecute: address(3),
9195
baseTokenGasPriceMultiplierNominator: uint128(1),
9296
baseTokenGasPriceMultiplierDenominator: uint128(1),
9397
allowEvmEmulator: false
@@ -119,6 +123,8 @@ contract ZKChainDeployer is L1ContractDeployer {
119123
"validator_sender_operator_blobs_eth",
120124
description.validatorSenderOperatorBlobsEth
121125
);
126+
vm.serializeAddress("chain", "validator_sender_operator_prove", description.validatorSenderOperatorProve);
127+
vm.serializeAddress("chain", "validator_sender_operator_execute", description.validatorSenderOperatorExecute);
122128
vm.serializeUint(
123129
"chain",
124130
"base_token_gas_price_multiplier_nominator",

0 commit comments

Comments
 (0)