From e2682a407076eb86b61dc269544bf34c211991af Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Mon, 1 Dec 2025 11:13:47 -0600 Subject: [PATCH 1/4] chore: generate template for set Jovian parameters task on mainnet --- mainnet/2025-12-04-set-jovian-parameters/.env | 10 +++ .../2025-12-04-set-jovian-parameters/Makefile | 62 +++++++++++++++++++ .../foundry.toml | 20 ++++++ .../script/BasicScript.s.sol | 17 +++++ .../script/CounterMultisigScript.s.sol | 47 ++++++++++++++ 5 files changed, 156 insertions(+) create mode 100644 mainnet/2025-12-04-set-jovian-parameters/.env create mode 100644 mainnet/2025-12-04-set-jovian-parameters/Makefile create mode 100644 mainnet/2025-12-04-set-jovian-parameters/foundry.toml create mode 100644 mainnet/2025-12-04-set-jovian-parameters/script/BasicScript.s.sol create mode 100644 mainnet/2025-12-04-set-jovian-parameters/script/CounterMultisigScript.s.sol diff --git a/mainnet/2025-12-04-set-jovian-parameters/.env b/mainnet/2025-12-04-set-jovian-parameters/.env new file mode 100644 index 00000000..2107dcee --- /dev/null +++ b/mainnet/2025-12-04-set-jovian-parameters/.env @@ -0,0 +1,10 @@ +OP_COMMIT= +BASE_CONTRACTS_COMMIT= + +TARGET= + +OWNER_SAFE= +L1_0= +L2_0= +L2_1= +L1_1= \ No newline at end of file diff --git a/mainnet/2025-12-04-set-jovian-parameters/Makefile b/mainnet/2025-12-04-set-jovian-parameters/Makefile new file mode 100644 index 00000000..cf832b84 --- /dev/null +++ b/mainnet/2025-12-04-set-jovian-parameters/Makefile @@ -0,0 +1,62 @@ +include ../../Makefile +include ../../Multisig.mk + +include ../.env +include .env + +ifndef LEDGER_ACCOUNT +override LEDGER_ACCOUNT = 0 +endif + +# OWNER_SAFE/ +# ├── L1_0/ +# │ ├── L2_0/ +# │ │ └── Signers +# │ └── L2_1/ +# │ └── Signers +# └── L1_1/ +# └── Signers + + +RPC_URL = $(L1_RPC_URL) +SCRIPT_NAME = ExampleMultisigScript + +# L2_0 +.PHONY: sign-l2-0 +sign-l2-0: + $(call MULTISIG_SIGN,$(L2_0) $(L1_0)) + +.PHONY: approve-l2-0 +approve-l2-0: + $(call MULTISIG_APPROVE,$(L2_0) $(L1_0),$(SIGNATURES)) + + +# L2_1 +.PHONY: sign-l2-1 +sign-l2-1: + $(call MULTISIG_SIGN,$(L2_0) $(L2_1)) + +.PHONY: approve-l2-1 +approve-l2-1: + $(call MULTISIG_APPROVE,$(L2_0) $(L2_1),$(SIGNATURES)) + + +# L1_0 +.PHONY: approve-l1-0 +approve-l1-0: + $(call MULTISIG_APPROVE,$(L1_0),0x) + + +# L1_1 +.PHONY: sign-l1-1 +sign-l1-1: + $(call MULTISIG_SIGN,$(L1_1)) + +.PHONY: approve-l1-1 +approve-l1-1: + $(call MULTISIG_APPROVE,$(L1_1),$(SIGNATURES)) + +# Execute +.PHONY: execute +execute: + $(call MULTISIG_EXECUTE,0x) \ No newline at end of file diff --git a/mainnet/2025-12-04-set-jovian-parameters/foundry.toml b/mainnet/2025-12-04-set-jovian-parameters/foundry.toml new file mode 100644 index 00000000..14499ab0 --- /dev/null +++ b/mainnet/2025-12-04-set-jovian-parameters/foundry.toml @@ -0,0 +1,20 @@ +[profile.default] +src = 'src' +out = 'out' +libs = ['lib'] +broadcast = 'records' +fs_permissions = [{ access = "read-write", path = "./" }] +optimizer = true +optimizer_runs = 999999 +solc_version = "0.8.15" +via-ir = false +remappings = [ + '@eth-optimism-bedrock/=lib/optimism/packages/contracts-bedrock/', + '@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts', + '@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts', + '@rari-capital/solmate/=lib/solmate/', + '@base-contracts/=lib/base-contracts', + 'solady/=lib/solady/src/', +] + +# See more config options https://github.com/foundry-rs/foundry/tree/master/config diff --git a/mainnet/2025-12-04-set-jovian-parameters/script/BasicScript.s.sol b/mainnet/2025-12-04-set-jovian-parameters/script/BasicScript.s.sol new file mode 100644 index 00000000..9a70c98e --- /dev/null +++ b/mainnet/2025-12-04-set-jovian-parameters/script/BasicScript.s.sol @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.15; + +import "forge-std/Script.sol"; + +contract BasicScript is Script { + function setUp() public {} + + function run() public { + _preCheck(); + // Do something + _postCheck(); + } + + function _preCheck() private {} + function _postCheck() private {} +} diff --git a/mainnet/2025-12-04-set-jovian-parameters/script/CounterMultisigScript.s.sol b/mainnet/2025-12-04-set-jovian-parameters/script/CounterMultisigScript.s.sol new file mode 100644 index 00000000..fd9b2ccc --- /dev/null +++ b/mainnet/2025-12-04-set-jovian-parameters/script/CounterMultisigScript.s.sol @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.15; + +import {Vm} from "forge-std/Vm.sol"; +import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol"; + +import {Simulation} from "@base-contracts/script/universal/Simulation.sol"; +import {MultisigScript} from "@base-contracts/script/universal/MultisigScript.sol"; + +interface ITest { + function counter() external view returns (uint256); + function increment() external; +} + +contract CounterMultisigScript is MultisigScript { + address internal OWNER_SAFE = vm.envAddress("OWNER_SAFE"); + address internal TARGET = vm.envAddress("TARGET"); + + uint256 private COUNT; + + function setUp() external { + // TODO: Add any pre-check assertions here + COUNT = ITest(TARGET).counter(); + } + + function _postCheck(Vm.AccountAccess[] memory, Simulation.Payload memory) internal view override { + // TODO: Add any post-check assertions here + require(ITest(TARGET).counter() == COUNT + 1, "Counter did not increment"); + } + + function _buildCalls() internal view override returns (IMulticall3.Call3Value[] memory) { + IMulticall3.Call3Value[] memory calls = new IMulticall3.Call3Value[](1); + + calls[0] = IMulticall3.Call3Value({ + target: TARGET, + allowFailure: false, + callData: abi.encodeCall(ITest.increment, ()), + value: 0 + }); + + return calls; + } + + function _ownerSafe() internal view override returns (address) { + return OWNER_SAFE; + } +} From fb58d186720bbe194048c03681d87ce21431fcb6 Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Mon, 1 Dec 2025 11:40:05 -0600 Subject: [PATCH 2/4] feat: implement set Jovian parameters task for mainnet - Add SetJovianParameters.s.sol script - Configure .env with mainnet addresses and Jovian params - Update Makefile for mainnet multisig structure - Add README and validation file --- mainnet/2025-12-04-set-jovian-parameters/.env | 23 +++--- .../2025-12-04-set-jovian-parameters/Makefile | 57 +++------------ .../README.md | 58 +++++++++++++++ .../script/BasicScript.s.sol | 17 ----- .../script/CounterMultisigScript.s.sol | 47 ------------ .../script/SetJovianParameters.s.sol | 72 +++++++++++++++++++ .../validations/base-signer.json | 66 +++++++++++++++++ 7 files changed, 222 insertions(+), 118 deletions(-) create mode 100644 mainnet/2025-12-04-set-jovian-parameters/README.md delete mode 100644 mainnet/2025-12-04-set-jovian-parameters/script/BasicScript.s.sol delete mode 100644 mainnet/2025-12-04-set-jovian-parameters/script/CounterMultisigScript.s.sol create mode 100644 mainnet/2025-12-04-set-jovian-parameters/script/SetJovianParameters.s.sol create mode 100644 mainnet/2025-12-04-set-jovian-parameters/validations/base-signer.json diff --git a/mainnet/2025-12-04-set-jovian-parameters/.env b/mainnet/2025-12-04-set-jovian-parameters/.env index 2107dcee..8dfcfafc 100644 --- a/mainnet/2025-12-04-set-jovian-parameters/.env +++ b/mainnet/2025-12-04-set-jovian-parameters/.env @@ -1,10 +1,17 @@ -OP_COMMIT= -BASE_CONTRACTS_COMMIT= +# Base Contracts commit +BASE_CONTRACTS_COMMIT=51788f920e368e72c63cef24a5e1ea0f6562d9a5 -TARGET= +# Optimism commit (op-contracts/v5.0.0) +OP_COMMIT=d09c836f818c73ae139f60b717654c4e53712743 -OWNER_SAFE= -L1_0= -L2_0= -L2_1= -L1_1= \ No newline at end of file +# Contract addresses +SYSTEM_CONFIG=0x73a79Fab69143498Ed3712e519A88a918e1f4072 +OWNER_SAFE=0x14536667Cd30e52C0b458BaACcB9faDA7046E056 + +# Jovian parameters +DA_FOOTPRINT_GAS_SCALAR=312 +MIN_BASE_FEE=200000 + +SENDER=0x1841CB3C2ce6870D0417844C817849da64E6e937 + +RECORD_STATE_DIFF=true diff --git a/mainnet/2025-12-04-set-jovian-parameters/Makefile b/mainnet/2025-12-04-set-jovian-parameters/Makefile index cf832b84..c25f9322 100644 --- a/mainnet/2025-12-04-set-jovian-parameters/Makefile +++ b/mainnet/2025-12-04-set-jovian-parameters/Makefile @@ -1,6 +1,5 @@ include ../../Makefile include ../../Multisig.mk - include ../.env include .env @@ -8,55 +7,21 @@ ifndef LEDGER_ACCOUNT override LEDGER_ACCOUNT = 0 endif -# OWNER_SAFE/ -# ├── L1_0/ -# │ ├── L2_0/ -# │ │ └── Signers -# │ └── L2_1/ -# │ └── Signers -# └── L1_1/ -# └── Signers - +SCRIPT_NAME = SetJovianParametersScript RPC_URL = $(L1_RPC_URL) -SCRIPT_NAME = ExampleMultisigScript - -# L2_0 -.PHONY: sign-l2-0 -sign-l2-0: - $(call MULTISIG_SIGN,$(L2_0) $(L1_0)) - -.PHONY: approve-l2-0 -approve-l2-0: - $(call MULTISIG_APPROVE,$(L2_0) $(L1_0),$(SIGNATURES)) - - -# L2_1 -.PHONY: sign-l2-1 -sign-l2-1: - $(call MULTISIG_SIGN,$(L2_0) $(L2_1)) - -.PHONY: approve-l2-1 -approve-l2-1: - $(call MULTISIG_APPROVE,$(L2_0) $(L2_1),$(SIGNATURES)) - - -# L1_0 -.PHONY: approve-l1-0 -approve-l1-0: - $(call MULTISIG_APPROVE,$(L1_0),0x) - -# L1_1 -.PHONY: sign-l1-1 -sign-l1-1: - $(call MULTISIG_SIGN,$(L1_1)) +.PHONY: gen-validation +gen-validation: checkout-signer-tool run-script -.PHONY: approve-l1-1 -approve-l1-1: - $(call MULTISIG_APPROVE,$(L1_1),$(SIGNATURES)) +.PHONY: run-script +run-script: + cd $(SIGNER_TOOL_PATH); \ + npm ci; \ + bun run scripts/genValidationFile.ts --rpc-url $(RPC_URL) \ + --workdir .. --forge-cmd 'forge script --rpc-url $(RPC_URL) \ + $(SCRIPT_NAME) --sig "sign(address[])" [] --sender $(SENDER)' --out ../validations/base-signer.json; -# Execute .PHONY: execute execute: - $(call MULTISIG_EXECUTE,0x) \ No newline at end of file + $(call MULTISIG_EXECUTE,$(SIGNATURES)) diff --git a/mainnet/2025-12-04-set-jovian-parameters/README.md b/mainnet/2025-12-04-set-jovian-parameters/README.md new file mode 100644 index 00000000..128be5ef --- /dev/null +++ b/mainnet/2025-12-04-set-jovian-parameters/README.md @@ -0,0 +1,58 @@ +# Set Jovian Parameters on Base Mainnet + +Status: READY TO SIGN + +## Description + +This task sets the Jovian hardfork parameters on Base Mainnet's SystemConfig contract. The parameters being set are: + +- `setDAFootprintGasScalar(312)` - Sets the data availability footprint gas scalar +- `setMinBaseFee(200000)` - Sets the minimum base fee + +These parameters activate with the Jovian hardfork and affect data availability fee calculations and base fee management on the L2. + +## Procedure + +## Install dependencies + +### 1. Update foundry + +```bash +foundryup +``` + +### 2. Install Node.js if needed + +First, check if you have node installed + +```bash +node --version +``` + +If you see a version output from the above command, you can move on. Otherwise, install node + +```bash +brew install node +``` + +## Approving the Update transaction + +### 1. Update repo: + +```bash +cd contract-deployments +git pull +``` + +### 2. Run the signing tool (NOTE: do not enter the task directory. Run this command from the project's root). + +```bash +make sign-task +``` + +### 3. Open the UI at [http://localhost:3000](http://localhost:3000) + +Be sure to select the correct task user from the list of available users to sign. +After completion, the signer tool can be closed by using Ctrl + c + +### 4. Send signature to facilitator diff --git a/mainnet/2025-12-04-set-jovian-parameters/script/BasicScript.s.sol b/mainnet/2025-12-04-set-jovian-parameters/script/BasicScript.s.sol deleted file mode 100644 index 9a70c98e..00000000 --- a/mainnet/2025-12-04-set-jovian-parameters/script/BasicScript.s.sol +++ /dev/null @@ -1,17 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.15; - -import "forge-std/Script.sol"; - -contract BasicScript is Script { - function setUp() public {} - - function run() public { - _preCheck(); - // Do something - _postCheck(); - } - - function _preCheck() private {} - function _postCheck() private {} -} diff --git a/mainnet/2025-12-04-set-jovian-parameters/script/CounterMultisigScript.s.sol b/mainnet/2025-12-04-set-jovian-parameters/script/CounterMultisigScript.s.sol deleted file mode 100644 index fd9b2ccc..00000000 --- a/mainnet/2025-12-04-set-jovian-parameters/script/CounterMultisigScript.s.sol +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.15; - -import {Vm} from "forge-std/Vm.sol"; -import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol"; - -import {Simulation} from "@base-contracts/script/universal/Simulation.sol"; -import {MultisigScript} from "@base-contracts/script/universal/MultisigScript.sol"; - -interface ITest { - function counter() external view returns (uint256); - function increment() external; -} - -contract CounterMultisigScript is MultisigScript { - address internal OWNER_SAFE = vm.envAddress("OWNER_SAFE"); - address internal TARGET = vm.envAddress("TARGET"); - - uint256 private COUNT; - - function setUp() external { - // TODO: Add any pre-check assertions here - COUNT = ITest(TARGET).counter(); - } - - function _postCheck(Vm.AccountAccess[] memory, Simulation.Payload memory) internal view override { - // TODO: Add any post-check assertions here - require(ITest(TARGET).counter() == COUNT + 1, "Counter did not increment"); - } - - function _buildCalls() internal view override returns (IMulticall3.Call3Value[] memory) { - IMulticall3.Call3Value[] memory calls = new IMulticall3.Call3Value[](1); - - calls[0] = IMulticall3.Call3Value({ - target: TARGET, - allowFailure: false, - callData: abi.encodeCall(ITest.increment, ()), - value: 0 - }); - - return calls; - } - - function _ownerSafe() internal view override returns (address) { - return OWNER_SAFE; - } -} diff --git a/mainnet/2025-12-04-set-jovian-parameters/script/SetJovianParameters.s.sol b/mainnet/2025-12-04-set-jovian-parameters/script/SetJovianParameters.s.sol new file mode 100644 index 00000000..21059cca --- /dev/null +++ b/mainnet/2025-12-04-set-jovian-parameters/script/SetJovianParameters.s.sol @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.15; + +import {Vm} from "forge-std/Vm.sol"; +import {console} from "forge-std/console.sol"; +import {Simulation} from "@base-contracts/script/universal/Simulation.sol"; +import {IMulticall3} from "forge-std/interfaces/IMulticall3.sol"; + +import {MultisigScript} from "@base-contracts/script/universal/MultisigScript.sol"; + +interface ISystemConfig { + function daFootprintGasScalar() external view returns (uint16); + function minBaseFee() external view returns (uint64); + function setDAFootprintGasScalar(uint16 _daFootprintGasScalar) external; + function setMinBaseFee(uint64 _minBaseFee) external; +} + +contract SetJovianParametersScript is MultisigScript { + address internal immutable OWNER_SAFE; + address internal immutable SYSTEM_CONFIG; + + uint16 internal immutable DA_FOOTPRINT_GAS_SCALAR; + uint64 internal immutable MIN_BASE_FEE; + + constructor() { + OWNER_SAFE = vm.envAddress("OWNER_SAFE"); + SYSTEM_CONFIG = vm.envAddress("SYSTEM_CONFIG"); + DA_FOOTPRINT_GAS_SCALAR = uint16(vm.envUint("DA_FOOTPRINT_GAS_SCALAR")); + MIN_BASE_FEE = uint64(vm.envUint("MIN_BASE_FEE")); + } + + function setUp() external view { + // Log current values for reference + console.log("Current DA Footprint Gas Scalar:", ISystemConfig(SYSTEM_CONFIG).daFootprintGasScalar()); + console.log("Current Min Base Fee:", ISystemConfig(SYSTEM_CONFIG).minBaseFee()); + console.log("New DA Footprint Gas Scalar:", DA_FOOTPRINT_GAS_SCALAR); + console.log("New Min Base Fee:", MIN_BASE_FEE); + } + + function _postCheck(Vm.AccountAccess[] memory, Simulation.Payload memory) internal view override { + vm.assertEq( + ISystemConfig(SYSTEM_CONFIG).daFootprintGasScalar(), + DA_FOOTPRINT_GAS_SCALAR, + "DA Footprint Gas Scalar mismatch" + ); + vm.assertEq(ISystemConfig(SYSTEM_CONFIG).minBaseFee(), MIN_BASE_FEE, "Min Base Fee mismatch"); + } + + function _buildCalls() internal view override returns (IMulticall3.Call3Value[] memory) { + IMulticall3.Call3Value[] memory calls = new IMulticall3.Call3Value[](2); + + calls[0] = IMulticall3.Call3Value({ + target: SYSTEM_CONFIG, + allowFailure: false, + callData: abi.encodeCall(ISystemConfig.setDAFootprintGasScalar, (DA_FOOTPRINT_GAS_SCALAR)), + value: 0 + }); + + calls[1] = IMulticall3.Call3Value({ + target: SYSTEM_CONFIG, + allowFailure: false, + callData: abi.encodeCall(ISystemConfig.setMinBaseFee, (MIN_BASE_FEE)), + value: 0 + }); + + return calls; + } + + function _ownerSafe() internal view override returns (address) { + return OWNER_SAFE; + } +} diff --git a/mainnet/2025-12-04-set-jovian-parameters/validations/base-signer.json b/mainnet/2025-12-04-set-jovian-parameters/validations/base-signer.json new file mode 100644 index 00000000..47dc6178 --- /dev/null +++ b/mainnet/2025-12-04-set-jovian-parameters/validations/base-signer.json @@ -0,0 +1,66 @@ +{ + "cmd": "forge script --rpc-url https://eth-mainnet.public.blastapi.io SetJovianParametersScript --sig sign(address[]) [] --sender 0x1841CB3C2ce6870D0417844C817849da64E6e937", + "ledgerId": 0, + "rpcUrl": "https://eth-mainnet.public.blastapi.io", + "expectedDomainAndMessageHashes": { + "address": "0x14536667Cd30e52C0b458BaACcB9faDA7046E056", + "domainHash": "0xf3474c66ee08325b410c3f442c878d01ec97dd55a415a307e9d7d2ea24336289", + "messageHash": "0xc8dc0347c346faaf0db3d482ba401f6b42a1f2c22561f1a1e88e821527324bc9" + }, + "stateOverrides": [ + { + "name": "Incident Safe - Mainnet", + "address": "0x14536667cd30e52c0b458baaccb9fada7046e056", + "overrides": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Override the threshold to 1 so the transaction simulation can occur.", + "allowDifference": false + }, + { + "key": "0x792ea2663ca68c5a718c6a6cf09ebff4721d2b963dcd7d0d824e3875365c6d17", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Simulates an approval from msg.sender in order for the task simulation to succeed.", + "allowDifference": false + } + ] + } + ], + "stateChanges": [ + { + "name": "Incident Safe - Mainnet", + "address": "0x14536667cd30e52c0b458baaccb9fada7046e056", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x000000000000000000000000000000000000000000000000000000000000005f", + "after": "0x0000000000000000000000000000000000000000000000000000000000000060", + "description": "Increments the nonce", + "allowDifference": false + } + ] + }, + { + "name": "System Config - Mainnet", + "address": "0x73a79fab69143498ed3712e519a88a918e1f4072", + "changes": [ + { + "key": "0x000000000000000000000000000000000000000000000000000000000000006a", + "before": "0x0000000000000000000000000000000000000000000000000000000500000032", + "after": "0x0000000000000000000001380000000000000000000000000000000500000032", + "description": "Sets the DA Footprint Gas Scalar to 312 (0x0138)", + "allowDifference": false + }, + { + "key": "0x000000000000000000000000000000000000000000000000000000000000006c", + "before": "0x00000000000000000000000095703e0982140d16f8eba6d158fccede42f04a4c", + "after": "0x000000000000000000030d4095703e0982140d16f8eba6d158fccede42f04a4c", + "description": "Sets the Min Base Fee to 200000 (0x030d40)", + "allowDifference": false + } + ] + } + ], + "balanceChanges": [] +} From aa0d95dab3fc4de48b49dfcc355ff5fa39433d15 Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Tue, 2 Dec 2025 10:39:52 -0600 Subject: [PATCH 3/4] docs: add FACILITATORS.md for set Jovian parameters task --- .../FACILITATORS.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 mainnet/2025-12-04-set-jovian-parameters/FACILITATORS.md diff --git a/mainnet/2025-12-04-set-jovian-parameters/FACILITATORS.md b/mainnet/2025-12-04-set-jovian-parameters/FACILITATORS.md new file mode 100644 index 00000000..327dffca --- /dev/null +++ b/mainnet/2025-12-04-set-jovian-parameters/FACILITATORS.md @@ -0,0 +1,44 @@ +#### Execute the transaction + +### 1. Update repo: + +```bash +cd contract-deployments +git pull +cd mainnet/2025-12-04-set-jovian-parameters +make deps +``` + +### 2. Execute + +1. Collect outputs from all participating signers. +1. Concatenate all signatures and export it as the `SIGNATURES` + environment variable, i.e. `export +SIGNATURES="[SIGNATURE1][SIGNATURE2]..."`. +1. Run the `make execute` command as described below to execute the transaction. + +For example, if the quorum is 3 and you get the following outputs: + +```shell +Data: 0xDEADBEEF +Signer: 0xC0FFEE01 +Signature: AAAA +``` + +```shell +Data: 0xDEADBEEF +Signer: 0xC0FFEE02 +Signature: BBBB +``` + +```shell +Data: 0xDEADBEEF +Signer: 0xC0FFEE03 +Signature: CCCC +``` + +Execute the transaction: + +```bash +SIGNATURES=AAAABBBBCCCC make execute +``` From 8ec4afa72f48ffeb4f96fee50dcb68d1e18c1aa6 Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Wed, 3 Dec 2025 10:45:45 -0600 Subject: [PATCH 4/4] Update validations for the new nonce --- .../validations/base-signer.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mainnet/2025-12-04-set-jovian-parameters/validations/base-signer.json b/mainnet/2025-12-04-set-jovian-parameters/validations/base-signer.json index 47dc6178..a3e047c7 100644 --- a/mainnet/2025-12-04-set-jovian-parameters/validations/base-signer.json +++ b/mainnet/2025-12-04-set-jovian-parameters/validations/base-signer.json @@ -5,7 +5,7 @@ "expectedDomainAndMessageHashes": { "address": "0x14536667Cd30e52C0b458BaACcB9faDA7046E056", "domainHash": "0xf3474c66ee08325b410c3f442c878d01ec97dd55a415a307e9d7d2ea24336289", - "messageHash": "0xc8dc0347c346faaf0db3d482ba401f6b42a1f2c22561f1a1e88e821527324bc9" + "messageHash": "0xabbc13082dc0c978a0d67092bf4da43670451de5604d69434dc7f7ab594785b5" }, "stateOverrides": [ { @@ -19,7 +19,7 @@ "allowDifference": false }, { - "key": "0x792ea2663ca68c5a718c6a6cf09ebff4721d2b963dcd7d0d824e3875365c6d17", + "key": "0xc3011018e301845703e8f147902e20fa435a206bf02aa8a392467aa139cf4049", "value": "0x0000000000000000000000000000000000000000000000000000000000000001", "description": "Simulates an approval from msg.sender in order for the task simulation to succeed.", "allowDifference": false @@ -34,8 +34,8 @@ "changes": [ { "key": "0x0000000000000000000000000000000000000000000000000000000000000005", - "before": "0x000000000000000000000000000000000000000000000000000000000000005f", - "after": "0x0000000000000000000000000000000000000000000000000000000000000060", + "before": "0x0000000000000000000000000000000000000000000000000000000000000061", + "after": "0x0000000000000000000000000000000000000000000000000000000000000062", "description": "Increments the nonce", "allowDifference": false }