@@ -44,6 +44,10 @@ struct Config {
44
44
uint256 bridgehubCreateNewChainSalt;
45
45
address validatorSenderOperatorCommitEth;
46
46
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;
47
51
address baseToken;
48
52
bytes32 baseTokenAssetId;
49
53
uint128 baseTokenGasPriceMultiplierNominator;
@@ -178,6 +182,20 @@ contract RegisterZKChainScript is Script {
178
182
config.validiumMode = toml.readBool ("$.chain.validium_mode " );
179
183
config.validatorSenderOperatorCommitEth = toml.readAddress ("$.chain.validator_sender_operator_commit_eth " );
180
184
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
+
181
199
config.initializeLegacyBridge = toml.readBool ("$.initialize_legacy_bridge " );
182
200
183
201
config.governance = toml.readAddress ("$.governance " );
@@ -231,6 +249,10 @@ contract RegisterZKChainScript is Script {
231
249
config.validiumMode = toml.readBool ("$.chain.validium_mode " );
232
250
config.validatorSenderOperatorCommitEth = toml.readAddress ("$.chain.validator_sender_operator_commit_eth " );
233
251
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
+
234
256
config.baseTokenGasPriceMultiplierNominator = uint128 (
235
257
toml.readUint ("$.chain.base_token_gas_price_multiplier_nominator " )
236
258
);
@@ -420,6 +442,14 @@ contract RegisterZKChainScript is Script {
420
442
vm.startBroadcast (msg .sender );
421
443
validatorTimelock.addValidatorForChainId (config.chainChainId, config.validatorSenderOperatorCommitEth);
422
444
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
+
423
453
vm.stopBroadcast ();
424
454
425
455
console.log ("Validators added " );
0 commit comments