From 31d2e43aa02a0774f3127569bf36876e1498aaec Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Mon, 3 Nov 2025 19:15:36 -0600 Subject: [PATCH 01/16] feat(sepolia): add task to set Jovian parameters on Base Sepolia This task sets the Jovian hardfork parameters on Base Sepolia's SystemConfig: - setDAFootprintGasScalar(260) - Sets DA footprint gas scalar - setMinBaseFee(5000000) - Sets minimum base fee to 5M wei These parameters activate with the Jovian hardfork. --- sepolia/2025-11-03-set-jovian-parameters/.env | 13 ++ .../2025-11-03-set-jovian-parameters/Makefile | 24 ++++ .../README.md | 123 ++++++++++++++++++ .../VALIDATION.md | 36 +++++ .../foundry.toml | 20 +++ .../script/SetJovianParameters.s.sol | 76 +++++++++++ 6 files changed, 292 insertions(+) create mode 100644 sepolia/2025-11-03-set-jovian-parameters/.env create mode 100644 sepolia/2025-11-03-set-jovian-parameters/Makefile create mode 100644 sepolia/2025-11-03-set-jovian-parameters/README.md create mode 100644 sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md create mode 100644 sepolia/2025-11-03-set-jovian-parameters/foundry.toml create mode 100644 sepolia/2025-11-03-set-jovian-parameters/script/SetJovianParameters.s.sol diff --git a/sepolia/2025-11-03-set-jovian-parameters/.env b/sepolia/2025-11-03-set-jovian-parameters/.env new file mode 100644 index 00000000..88c171e5 --- /dev/null +++ b/sepolia/2025-11-03-set-jovian-parameters/.env @@ -0,0 +1,13 @@ +OP_COMMIT=d09c836f818c73ae139f60b717654c4e53712743 +BASE_CONTRACTS_COMMIT=cab46f4c34f11e22640ec3073aa6f0b46cdaa1b7 + +# SystemConfig Proxy address +# https://sepolia.etherscan.io/address/0xf272670eb55e895584501d564AfEB048bEd26194 +SYSTEM_CONFIG=0xf272670eb55e895584501d564AfEB048bEd26194 + +# Owner Safe (Gnosis Safe) +OWNER_SAFE=0x0fe884546476dDd290eC46318785046ef68a0BA9 + +# Jovian parameters +DA_FOOTPRINT_GAS_SCALAR=260 +MIN_BASE_FEE=5000000 \ No newline at end of file diff --git a/sepolia/2025-11-03-set-jovian-parameters/Makefile b/sepolia/2025-11-03-set-jovian-parameters/Makefile new file mode 100644 index 00000000..5f15e91b --- /dev/null +++ b/sepolia/2025-11-03-set-jovian-parameters/Makefile @@ -0,0 +1,24 @@ +include ../../Makefile +include ../.env +include .env + +ifndef LEDGER_ACCOUNT +override LEDGER_ACCOUNT = 1 +endif + +.PHONY: sign +sign: + $(GOPATH)/bin/eip712sign --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" -- \ + forge script --rpc-url $(L1_RPC_URL) SetJovianParametersScript \ + --sig "sign(address[])" "[$(OWNER_SAFE)]" + +.PHONY: approve +approve: + forge script --rpc-url $(L1_RPC_URL) SetJovianParametersScript \ + --sig "approve(address[],bytes)" "[$(OWNER_SAFE)]" $(SIGNATURES) \ + --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --broadcast -vvvv + +.PHONY: execute +execute: + forge script --rpc-url $(L1_RPC_URL) SetJovianParametersScript \ + --sig "run(bytes)" 0x --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --broadcast -vvvv \ No newline at end of file diff --git a/sepolia/2025-11-03-set-jovian-parameters/README.md b/sepolia/2025-11-03-set-jovian-parameters/README.md new file mode 100644 index 00000000..a8653226 --- /dev/null +++ b/sepolia/2025-11-03-set-jovian-parameters/README.md @@ -0,0 +1,123 @@ +# Set Jovian Parameters on Base Sepolia + +Status: NOT YET EXECUTED + +## Description + +This task sets the Jovian hardfork parameters on Base Sepolia's SystemConfig contract. The parameters being set are: + +- `setDAFootprintGasScalar(260)` - Sets the data availability footprint gas scalar +- `setMinBaseFee(5000000)` - 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 + +### 1. Update repo: + +```bash +cd contract-deployments +git pull +cd sepolia/2025-11-03-set-jovian-parameters +make deps +``` + +### 2. Setup Ledger + +Your Ledger needs to be connected and unlocked. The Ethereum +application needs to be opened on Ledger with the message "Application +is ready". + +### 3. Simulate, Validate, and Sign + +#### 3.1. Simulate and validate the transaction + +Make sure your ledger is still unlocked and run the following command: + +```bash +make sign +``` + +You will see a "Simulation link" from the output. + +Paste this URL in your browser. A prompt may ask you to choose a +project, any project will do. You can create one if necessary. + +Click "Simulate Transaction". + +We will be performing 3 validations and extract the domain hash and +message hash to approve on your Ledger: + +1. Validate integrity of the simulation. +2. Validate correctness of the state diff. +3. Validate and extract domain hash and message hash to approve. + +##### 3.1.1. Validate integrity of the simulation. + +Make sure you are on the "Overview" tab of the tenderly simulation, to +validate integrity of the simulation, we need to check the following: + +1. "Network": Check the network is `Sepolia`. +2. "Timestamp": Check the simulation is performed on a block with a + recent timestamp (i.e. close to when you run the script). + +##### 3.1.2. Validate correctness of the state diff. + +Now click on the "State" tab, and refer to the [VALIDATION.md](./VALIDATION.md) instructions. Once complete return to this document to complete the signing. + +#### 3.2. Extract the domain hash and the message hash to approve. + +Now that we have verified the transaction performs the right +operation, we need to extract the domain hash and the message hash to +approve. + +Go back to the "Overview" tab, and find the +`GnosisSafe.checkSignatures` call. This call's `data` parameter +contains both the domain hash and the message hash that will show up +in your Ledger. + +It will be a concatenation of `0x1901`, the domain hash, and the +message hash: `0x1901[domain hash][message hash]`. + +Note down this value. You will need to compare it with the ones +displayed on the Ledger screen at signing. + +#### 3.3. Sign the transaction + +Once the validations are done, a prompt will appear on the Ledger +for you to sign a transaction. Before accepting, scroll to the screen that +shows: + +``` +EIP712 DOMAIN_HASH +``` + +It will look something like this: + +``` +DOMAIN_HASH +0x454a4be2... +``` + +Compare this hash with the domain hash you extracted earlier. If they match, +continue scrolling to the screen that shows: + +``` +EIP712 MESSAGE_HASH +``` + +It will look something like this: + +``` +MESSAGE_HASH +0x6f21c9af... +``` + +Compare this hash with the message hash you extracted earlier. If they match, +accept the transaction on your Ledger. + +A `data` field will be printed in the console. **This is the signature you just created.** + +### 4. Approve and Execute + +Once signatures have been collected, the transaction can be approved and executed following the same validation process above. diff --git a/sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md b/sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md new file mode 100644 index 00000000..bb8a523b --- /dev/null +++ b/sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md @@ -0,0 +1,36 @@ +# Validation + +## State Changes + +Please verify that the following state changes (and none others) are made to the SystemConfig contract. + +### SystemConfig State Changes + +**Contract Address:** `0xf272670eb55e895584501d564AfEB048bEd26194` (SystemConfig Proxy) + +#### 1. DA Footprint Gas Scalar Update + +- **Storage Slot:** Check for `daFootprintGasScalar` storage slot +- **Old Value:** `` +- **New Value:** `260` (0x0104) +- **Summary:** Updates DA footprint gas scalar to 260 + +#### 2. Min Base Fee Update + +- **Storage Slot:** Check for `minBaseFee` storage slot +- **Old Value:** `` +- **New Value:** `5000000` (0x4C4B40) +- **Summary:** Updates minimum base fee to 5,000,000 wei + +### Additional Changes + +**Nonce Updates:** +- The Owner Safe (`0x0fe884546476dDd290eC46318785046ef68a0BA9`) nonce will increment + +### Validation Checklist + +- [ ] SystemConfig contract address matches `0xf272670eb55e895584501d564AfEB048bEd26194` +- [ ] DA footprint gas scalar changes to `260` +- [ ] Min base fee changes to `5000000` +- [ ] No other unexpected state changes occur +- [ ] Owner Safe nonce increments by 1 diff --git a/sepolia/2025-11-03-set-jovian-parameters/foundry.toml b/sepolia/2025-11-03-set-jovian-parameters/foundry.toml new file mode 100644 index 00000000..14499ab0 --- /dev/null +++ b/sepolia/2025-11-03-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/sepolia/2025-11-03-set-jovian-parameters/script/SetJovianParameters.s.sol b/sepolia/2025-11-03-set-jovian-parameters/script/SetJovianParameters.s.sol new file mode 100644 index 00000000..2f47414c --- /dev/null +++ b/sepolia/2025-11-03-set-jovian-parameters/script/SetJovianParameters.s.sol @@ -0,0 +1,76 @@ +// 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; + } +} From 8edc500407a531519e9d7021365288618e7c11ef Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Tue, 4 Nov 2025 00:01:50 -0600 Subject: [PATCH 02/16] feat(sepolia): add gen-validation for Jovian parameters task Adds gen-validation target to Makefile for generating VALIDATION.md automatically once the Jovian upgrade is deployed to Base Sepolia. VALIDATION.md currently contains only a comment explaining it cannot be generated yet because the setDAFootprintGasScalar and setMinBaseFee functions don't exist on the current SystemConfig deployment. Once the Jovian upgrade is deployed, run `make gen-validation` to generate the full validation file with state-diff. --- .../2025-11-03-set-jovian-parameters/Makefile | 12 +++++- .../VALIDATION.md | 38 +++---------------- 2 files changed, 16 insertions(+), 34 deletions(-) diff --git a/sepolia/2025-11-03-set-jovian-parameters/Makefile b/sepolia/2025-11-03-set-jovian-parameters/Makefile index 5f15e91b..0fda9816 100644 --- a/sepolia/2025-11-03-set-jovian-parameters/Makefile +++ b/sepolia/2025-11-03-set-jovian-parameters/Makefile @@ -21,4 +21,14 @@ approve: .PHONY: execute execute: forge script --rpc-url $(L1_RPC_URL) SetJovianParametersScript \ - --sig "run(bytes)" 0x --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --broadcast -vvvv \ No newline at end of file + --sig "run(bytes)" 0x --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --broadcast -vvvv + +.PHONY: deps +deps: + go install github.com/jackchuma/state-diff@v0.0.1-rc.5 + +.PHONY: gen-validation +gen-validation: + $(GOPATH)/bin/state-diff --rpc $(L1_RPC_URL) -o VALIDATION.md \ + -- forge script --rpc-url $(L1_RPC_URL) SetJovianParametersScript \ + --sig "sign(address[])" "[$(OWNER_SAFE)]" \ No newline at end of file diff --git a/sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md b/sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md index bb8a523b..b9018883 100644 --- a/sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md +++ b/sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md @@ -1,36 +1,8 @@ # Validation -## State Changes + From 7166798ed87bdc97c396b3ec2aa79572601eeea4 Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Wed, 5 Nov 2025 21:06:27 -0600 Subject: [PATCH 03/16] feat(sepolia): update DA footprint gas scalar to 325 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updates DA_FOOTPRINT_GAS_SCALAR from 260 to 325 based on the formula: da_footprint_gas_scalar = gas_target / (l1_target_throughput * estimation_ratio) Where: - l1_target_throughput = (blob_count * 128,000 bytes/blob) / 12 sec/block - gas_target = 31.25 Mgas/sec - blob_count = 6 blobs/block - estimation_ratio = 1.5 Calculation: l1_target_throughput = (6 * 128,000) / 12 = 64,000 gas/sec da_footprint_gas_scalar = 31,250,000 / (64,000 * 1.5) = 325.52 ≈ 325 --- sepolia/2025-11-03-set-jovian-parameters/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sepolia/2025-11-03-set-jovian-parameters/.env b/sepolia/2025-11-03-set-jovian-parameters/.env index 88c171e5..43f608dd 100644 --- a/sepolia/2025-11-03-set-jovian-parameters/.env +++ b/sepolia/2025-11-03-set-jovian-parameters/.env @@ -9,5 +9,5 @@ SYSTEM_CONFIG=0xf272670eb55e895584501d564AfEB048bEd26194 OWNER_SAFE=0x0fe884546476dDd290eC46318785046ef68a0BA9 # Jovian parameters -DA_FOOTPRINT_GAS_SCALAR=260 +DA_FOOTPRINT_GAS_SCALAR=325 MIN_BASE_FEE=5000000 \ No newline at end of file From 5d748de41545fecb158e25010c798033f6bae7ce Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Thu, 6 Nov 2025 15:30:33 -0600 Subject: [PATCH 04/16] feat(sepolia): set placeholder min base fee to 10,000 wei Updates the minimum base fee from 5,000,000 wei to 10,000 wei (1e-5 gwei). This is a placeholder value that will be updated on November 14 to reflect the previous week's p10-p20 base fee. --- sepolia/2025-11-03-set-jovian-parameters/.env | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sepolia/2025-11-03-set-jovian-parameters/.env b/sepolia/2025-11-03-set-jovian-parameters/.env index 43f608dd..61771941 100644 --- a/sepolia/2025-11-03-set-jovian-parameters/.env +++ b/sepolia/2025-11-03-set-jovian-parameters/.env @@ -10,4 +10,5 @@ OWNER_SAFE=0x0fe884546476dDd290eC46318785046ef68a0BA9 # Jovian parameters DA_FOOTPRINT_GAS_SCALAR=325 -MIN_BASE_FEE=5000000 \ No newline at end of file +# Placeholder value - will be updated on November 14 to the previous week's p10-p20 base fee +MIN_BASE_FEE=10000 \ No newline at end of file From 49d2b79502c72cb9792e8047bc5ace41e1f0565f Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Mon, 10 Nov 2025 16:16:08 -0600 Subject: [PATCH 05/16] feat(sepolia): update DA footprint scalar to 312 for 30 Mgas/sec target --- sepolia/2025-11-03-set-jovian-parameters/.env | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sepolia/2025-11-03-set-jovian-parameters/.env b/sepolia/2025-11-03-set-jovian-parameters/.env index 61771941..6a364410 100644 --- a/sepolia/2025-11-03-set-jovian-parameters/.env +++ b/sepolia/2025-11-03-set-jovian-parameters/.env @@ -9,6 +9,9 @@ SYSTEM_CONFIG=0xf272670eb55e895584501d564AfEB048bEd26194 OWNER_SAFE=0x0fe884546476dDd290eC46318785046ef68a0BA9 # Jovian parameters -DA_FOOTPRINT_GAS_SCALAR=325 +# ================= + +# Accounts for gas target of 30 Mgas/sec when Jovian activates on mainnet +DA_FOOTPRINT_GAS_SCALAR=312 # Placeholder value - will be updated on November 14 to the previous week's p10-p20 base fee -MIN_BASE_FEE=10000 \ No newline at end of file +MIN_BASE_FEE=10000 From 60c8d4629ee5e5df546e68ca035756001ea4f078 Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Mon, 17 Nov 2025 16:39:30 -0600 Subject: [PATCH 06/16] feat(sepolia): update minimum base fee to 2e-4 gwei --- sepolia/2025-11-03-set-jovian-parameters/.env | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sepolia/2025-11-03-set-jovian-parameters/.env b/sepolia/2025-11-03-set-jovian-parameters/.env index 6a364410..274d62a4 100644 --- a/sepolia/2025-11-03-set-jovian-parameters/.env +++ b/sepolia/2025-11-03-set-jovian-parameters/.env @@ -13,5 +13,6 @@ OWNER_SAFE=0x0fe884546476dDd290eC46318785046ef68a0BA9 # Accounts for gas target of 30 Mgas/sec when Jovian activates on mainnet DA_FOOTPRINT_GAS_SCALAR=312 -# Placeholder value - will be updated on November 14 to the previous week's p10-p20 base fee -MIN_BASE_FEE=10000 +# The p5 mainnet base fee from Nov 7-14 was 300,000 wei. To stick to nice round +# numbers (1, 2, or 5 times any power of 10), we chose 200,000 wei. +MIN_BASE_FEE=200000 From d4b8e21b0f0d9444f7c77038df86806449aec7b7 Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Wed, 19 Nov 2025 12:05:10 -0600 Subject: [PATCH 07/16] Update the task to use the OWNER_SAFE hierarchy and signer-tool process from the sepolia/2025-11-07-upgrade-fault-proofs task --- sepolia/2025-11-03-set-jovian-parameters/.env | 18 --- .../2025-11-03-set-jovian-parameters/Makefile | 34 ----- .../README.md | 123 ------------------ .../VALIDATION.md | 8 -- sepolia/2025-11-18-set-jovian-parameters/.env | 17 +++ .../2025-11-18-set-jovian-parameters/Makefile | 80 ++++++++++++ .../README.md | 58 +++++++++ .../foundry.toml | 1 + .../script/SetJovianParameters.s.sol | 15 +-- 9 files changed, 160 insertions(+), 194 deletions(-) delete mode 100644 sepolia/2025-11-03-set-jovian-parameters/.env delete mode 100644 sepolia/2025-11-03-set-jovian-parameters/Makefile delete mode 100644 sepolia/2025-11-03-set-jovian-parameters/README.md delete mode 100644 sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md create mode 100644 sepolia/2025-11-18-set-jovian-parameters/.env create mode 100644 sepolia/2025-11-18-set-jovian-parameters/Makefile create mode 100644 sepolia/2025-11-18-set-jovian-parameters/README.md rename sepolia/{2025-11-03-set-jovian-parameters => 2025-11-18-set-jovian-parameters}/foundry.toml (96%) rename sepolia/{2025-11-03-set-jovian-parameters => 2025-11-18-set-jovian-parameters}/script/SetJovianParameters.s.sol (83%) diff --git a/sepolia/2025-11-03-set-jovian-parameters/.env b/sepolia/2025-11-03-set-jovian-parameters/.env deleted file mode 100644 index 274d62a4..00000000 --- a/sepolia/2025-11-03-set-jovian-parameters/.env +++ /dev/null @@ -1,18 +0,0 @@ -OP_COMMIT=d09c836f818c73ae139f60b717654c4e53712743 -BASE_CONTRACTS_COMMIT=cab46f4c34f11e22640ec3073aa6f0b46cdaa1b7 - -# SystemConfig Proxy address -# https://sepolia.etherscan.io/address/0xf272670eb55e895584501d564AfEB048bEd26194 -SYSTEM_CONFIG=0xf272670eb55e895584501d564AfEB048bEd26194 - -# Owner Safe (Gnosis Safe) -OWNER_SAFE=0x0fe884546476dDd290eC46318785046ef68a0BA9 - -# Jovian parameters -# ================= - -# Accounts for gas target of 30 Mgas/sec when Jovian activates on mainnet -DA_FOOTPRINT_GAS_SCALAR=312 -# The p5 mainnet base fee from Nov 7-14 was 300,000 wei. To stick to nice round -# numbers (1, 2, or 5 times any power of 10), we chose 200,000 wei. -MIN_BASE_FEE=200000 diff --git a/sepolia/2025-11-03-set-jovian-parameters/Makefile b/sepolia/2025-11-03-set-jovian-parameters/Makefile deleted file mode 100644 index 0fda9816..00000000 --- a/sepolia/2025-11-03-set-jovian-parameters/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -include ../../Makefile -include ../.env -include .env - -ifndef LEDGER_ACCOUNT -override LEDGER_ACCOUNT = 1 -endif - -.PHONY: sign -sign: - $(GOPATH)/bin/eip712sign --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" -- \ - forge script --rpc-url $(L1_RPC_URL) SetJovianParametersScript \ - --sig "sign(address[])" "[$(OWNER_SAFE)]" - -.PHONY: approve -approve: - forge script --rpc-url $(L1_RPC_URL) SetJovianParametersScript \ - --sig "approve(address[],bytes)" "[$(OWNER_SAFE)]" $(SIGNATURES) \ - --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --broadcast -vvvv - -.PHONY: execute -execute: - forge script --rpc-url $(L1_RPC_URL) SetJovianParametersScript \ - --sig "run(bytes)" 0x --ledger --hd-paths "m/44'/60'/$(LEDGER_ACCOUNT)'/0/0" --broadcast -vvvv - -.PHONY: deps -deps: - go install github.com/jackchuma/state-diff@v0.0.1-rc.5 - -.PHONY: gen-validation -gen-validation: - $(GOPATH)/bin/state-diff --rpc $(L1_RPC_URL) -o VALIDATION.md \ - -- forge script --rpc-url $(L1_RPC_URL) SetJovianParametersScript \ - --sig "sign(address[])" "[$(OWNER_SAFE)]" \ No newline at end of file diff --git a/sepolia/2025-11-03-set-jovian-parameters/README.md b/sepolia/2025-11-03-set-jovian-parameters/README.md deleted file mode 100644 index a8653226..00000000 --- a/sepolia/2025-11-03-set-jovian-parameters/README.md +++ /dev/null @@ -1,123 +0,0 @@ -# Set Jovian Parameters on Base Sepolia - -Status: NOT YET EXECUTED - -## Description - -This task sets the Jovian hardfork parameters on Base Sepolia's SystemConfig contract. The parameters being set are: - -- `setDAFootprintGasScalar(260)` - Sets the data availability footprint gas scalar -- `setMinBaseFee(5000000)` - 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 - -### 1. Update repo: - -```bash -cd contract-deployments -git pull -cd sepolia/2025-11-03-set-jovian-parameters -make deps -``` - -### 2. Setup Ledger - -Your Ledger needs to be connected and unlocked. The Ethereum -application needs to be opened on Ledger with the message "Application -is ready". - -### 3. Simulate, Validate, and Sign - -#### 3.1. Simulate and validate the transaction - -Make sure your ledger is still unlocked and run the following command: - -```bash -make sign -``` - -You will see a "Simulation link" from the output. - -Paste this URL in your browser. A prompt may ask you to choose a -project, any project will do. You can create one if necessary. - -Click "Simulate Transaction". - -We will be performing 3 validations and extract the domain hash and -message hash to approve on your Ledger: - -1. Validate integrity of the simulation. -2. Validate correctness of the state diff. -3. Validate and extract domain hash and message hash to approve. - -##### 3.1.1. Validate integrity of the simulation. - -Make sure you are on the "Overview" tab of the tenderly simulation, to -validate integrity of the simulation, we need to check the following: - -1. "Network": Check the network is `Sepolia`. -2. "Timestamp": Check the simulation is performed on a block with a - recent timestamp (i.e. close to when you run the script). - -##### 3.1.2. Validate correctness of the state diff. - -Now click on the "State" tab, and refer to the [VALIDATION.md](./VALIDATION.md) instructions. Once complete return to this document to complete the signing. - -#### 3.2. Extract the domain hash and the message hash to approve. - -Now that we have verified the transaction performs the right -operation, we need to extract the domain hash and the message hash to -approve. - -Go back to the "Overview" tab, and find the -`GnosisSafe.checkSignatures` call. This call's `data` parameter -contains both the domain hash and the message hash that will show up -in your Ledger. - -It will be a concatenation of `0x1901`, the domain hash, and the -message hash: `0x1901[domain hash][message hash]`. - -Note down this value. You will need to compare it with the ones -displayed on the Ledger screen at signing. - -#### 3.3. Sign the transaction - -Once the validations are done, a prompt will appear on the Ledger -for you to sign a transaction. Before accepting, scroll to the screen that -shows: - -``` -EIP712 DOMAIN_HASH -``` - -It will look something like this: - -``` -DOMAIN_HASH -0x454a4be2... -``` - -Compare this hash with the domain hash you extracted earlier. If they match, -continue scrolling to the screen that shows: - -``` -EIP712 MESSAGE_HASH -``` - -It will look something like this: - -``` -MESSAGE_HASH -0x6f21c9af... -``` - -Compare this hash with the message hash you extracted earlier. If they match, -accept the transaction on your Ledger. - -A `data` field will be printed in the console. **This is the signature you just created.** - -### 4. Approve and Execute - -Once signatures have been collected, the transaction can be approved and executed following the same validation process above. diff --git a/sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md b/sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md deleted file mode 100644 index b9018883..00000000 --- a/sepolia/2025-11-03-set-jovian-parameters/VALIDATION.md +++ /dev/null @@ -1,8 +0,0 @@ -# Validation - - diff --git a/sepolia/2025-11-18-set-jovian-parameters/.env b/sepolia/2025-11-18-set-jovian-parameters/.env new file mode 100644 index 00000000..bb358ed3 --- /dev/null +++ b/sepolia/2025-11-18-set-jovian-parameters/.env @@ -0,0 +1,17 @@ +# Base Contracts commit +BASE_CONTRACTS_COMMIT=51788f920e368e72c63cef24a5e1ea0f6562d9a5 + +# Optimism commit (op-contracts/v5.0.0) +OP_COMMIT=d09c836f818c73ae139f60b717654c4e53712743 + +# Contract addresses +SYSTEM_CONFIG=0xf272670eb55e895584501d564AfEB048bEd26194 +OWNER_SAFE=0x0fe884546476dDd290eC46318785046ef68a0BA9 +CB_SIGNER_SAFE_ADDR=0x646132A1667ca7aD00d36616AFBA1A28116C770A +CB_NESTED_SAFE_ADDR=0x5dfEB066334B67355A15dc9b67317fD2a2e1f77f +CB_SC_SAFE_ADDR=0x6AF0674791925f767060Dd52f7fB20984E8639d8 +OP_SIGNER_SAFE_ADDR=0x6AF0674791925f767060Dd52f7fB20984E8639d8 + +# Jovian parameters +DA_FOOTPRINT_GAS_SCALAR=312 +MIN_BASE_FEE=200000 diff --git a/sepolia/2025-11-18-set-jovian-parameters/Makefile b/sepolia/2025-11-18-set-jovian-parameters/Makefile new file mode 100644 index 00000000..06d1f9d9 --- /dev/null +++ b/sepolia/2025-11-18-set-jovian-parameters/Makefile @@ -0,0 +1,80 @@ +include ../../Makefile +include ../../Multisig.mk + +include ../.env +include .env + +ifndef LEDGER_ACCOUNT +override LEDGER_ACCOUNT = 1 +endif + +# Sepolia Commands + +# OWNER_SAFE/ +# ├── CB_SIGNER_SAFE_ADDR/ +# │ ├── CB_NESTED_SAFE_ADDR/ +# │ │ └── Signers +# │ └── CB_SC_SAFE_ADDR/ +# │ └── Signers +# └── OP_SIGNER_SAFE_ADDR/ +# └── Signers + +RPC_URL = $(L1_RPC_URL) +SCRIPT_NAME = SetJovianParametersScript + +.PHONY: gen-validation-cb +gen-validation-cb: checkout-signer-tool run-script-cb + +.PHONY: run-script-cb +run-script-cb: + 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[])" "[$(CB_NESTED_SAFE_ADDR), $(CB_SIGNER_SAFE_ADDR)]" --sender 0x7f10098bd53519c739ca8a404afe127647d94774' --out ../validations/cb-signer.json; + + +.PHONY: gen-validation-cb-sc +gen-validation-cb-sc: checkout-signer-tool run-script-cb-sc + +.PHONY: run-script-cb-sc +run-script-cb-sc: + 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[])" "[$(CB_SC_SAFE_ADDR), $(CB_SIGNER_SAFE_ADDR)]" --sender 0x7f10098bd53519c739ca8a404afe127647d94774' --out ../validations/cb-sc-signer.json; + +.PHONY: gen-validation-op +gen-validation-op: checkout-signer-tool run-script-op + +.PHONY: run-script-op +run-script-op: + 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[])" "[$(OP_SIGNER_SAFE_ADDR)]" --sender 0x0CF2F86C3338993ce10F74d6f4B095712c7efe26' --out ../validations/op-signer.json; + + +# CB +.PHONY: approve-cb +approve-cb: + $(call MULTISIG_APPROVE,$(CB_NESTED_SAFE_ADDR) $(CB_SIGNER_SAFE_ADDR),$(SIGNATURES)) + +.PHONY: approve-cb-sc +approve-cb-sc: + $(call MULTISIG_APPROVE,$(CB_SC_SAFE_ADDR) $(CB_SIGNER_SAFE_ADDR),$(SIGNATURES)) + +.PHONY: approve-cb-coordinator +approve-cb-coordinator: + $(call MULTISIG_APPROVE,$(CB_SIGNER_SAFE_ADDR),0x) + +.PHONY: approve-op +approve-op: + $(call MULTISIG_APPROVE,$(OP_SIGNER_SAFE_ADDR),$(SIGNATURES)) + +# Execute +.PHONY: execute +execute: + $(call MULTISIG_EXECUTE,0x) diff --git a/sepolia/2025-11-18-set-jovian-parameters/README.md b/sepolia/2025-11-18-set-jovian-parameters/README.md new file mode 100644 index 00000000..714fecbc --- /dev/null +++ b/sepolia/2025-11-18-set-jovian-parameters/README.md @@ -0,0 +1,58 @@ +# Set Jovian Parameters on Base Sepolia + +Status: NOT YET EXECUTED + +## Description + +This task sets the Jovian hardfork parameters on Base Sepolia'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/sepolia/2025-11-03-set-jovian-parameters/foundry.toml b/sepolia/2025-11-18-set-jovian-parameters/foundry.toml similarity index 96% rename from sepolia/2025-11-03-set-jovian-parameters/foundry.toml rename to sepolia/2025-11-18-set-jovian-parameters/foundry.toml index 14499ab0..85225f30 100644 --- a/sepolia/2025-11-03-set-jovian-parameters/foundry.toml +++ b/sepolia/2025-11-18-set-jovian-parameters/foundry.toml @@ -16,5 +16,6 @@ remappings = [ '@base-contracts/=lib/base-contracts', 'solady/=lib/solady/src/', ] +evm_version = "prague" # See more config options https://github.com/foundry-rs/foundry/tree/master/config diff --git a/sepolia/2025-11-03-set-jovian-parameters/script/SetJovianParameters.s.sol b/sepolia/2025-11-18-set-jovian-parameters/script/SetJovianParameters.s.sol similarity index 83% rename from sepolia/2025-11-03-set-jovian-parameters/script/SetJovianParameters.s.sol rename to sepolia/2025-11-18-set-jovian-parameters/script/SetJovianParameters.s.sol index 2f47414c..41353100 100644 --- a/sepolia/2025-11-03-set-jovian-parameters/script/SetJovianParameters.s.sol +++ b/sepolia/2025-11-18-set-jovian-parameters/script/SetJovianParameters.s.sol @@ -16,18 +16,11 @@ interface ISystemConfig { } contract SetJovianParametersScript is MultisigScript { - address internal immutable OWNER_SAFE; - address internal immutable SYSTEM_CONFIG; + address internal OWNER_SAFE = vm.envAddress("OWNER_SAFE"); + address internal SYSTEM_CONFIG = vm.envAddress("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")); - } + uint16 internal DA_FOOTPRINT_GAS_SCALAR = uint16(vm.envUint("DA_FOOTPRINT_GAS_SCALAR")); + uint64 internal MIN_BASE_FEE = uint64(vm.envUint("MIN_BASE_FEE")); function setUp() external view { // Log current values for reference From b60864deaa8c49840b1a64c11affbabd1a10886a Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Wed, 19 Nov 2025 12:05:22 -0600 Subject: [PATCH 08/16] Generate validations --- .../validations/cb-sc-signer.json | 121 +++++++++++++++++ .../validations/cb-signer.json | 126 ++++++++++++++++++ .../validations/op-signer.json | 90 +++++++++++++ 3 files changed, 337 insertions(+) create mode 100644 sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json create mode 100644 sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json create mode 100644 sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json diff --git a/sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json new file mode 100644 index 00000000..f5036246 --- /dev/null +++ b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json @@ -0,0 +1,121 @@ +{ + "cmd": "forge script --rpc-url https://ethereum-full-sepolia-k8s-dev.cbhq.net SetJovianParametersScript --sig sign(address[]) [0x6AF0674791925f767060Dd52f7fB20984E8639d8, 0x646132A1667ca7aD00d36616AFBA1A28116C770A] --sender 0x7f10098bd53519c739ca8a404afe127647d94774", + "ledgerId": 0, + "rpcUrl": "https://ethereum-full-sepolia-k8s-dev.cbhq.net", + "expectedDomainAndMessageHashes": { + "address": "0x0fe884546476dDd290eC46318785046ef68a0BA9", + "domainHash": "0x6f25427e79742a1eb82c103e2bf43c85fc59509274ec258ad6ed841c4a0048aa", + "messageHash": "0x433c36c45fd9bf1346604118bbcabcc11661e8d718914630ddce07babac16029" + }, + "stateOverrides": [ + { + "name": "Proxy Admin Owner - Sepolia", + "address": "0x0fe884546476ddd290ec46318785046ef68a0ba9", + "overrides": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Override the threshold to 1 so the transaction simulation can occur." + } + ] + }, + { + "name": "CB Coordinator Safe - Sepolia", + "address": "0x646132a1667ca7ad00d36616afba1a28116c770a", + "overrides": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Override the threshold to 1 so the transaction simulation can occur." + } + ] + }, + { + "name": "Mock OP Safe / Mock Security Council - Sepolia", + "address": "0x6af0674791925f767060dd52f7fb20984e8639d8", + "overrides": [ + { + "key": "0xa514f8e6473701443da65282ed67b01d28f188f1e2de36ff750a64798c38f36b", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Simulates an approval from msg.sender in order for the task simulation to succeed." + } + ] + } + ], + "stateChanges": [ + { + "name": "Proxy Admin Owner - Sepolia", + "address": "0x0fe884546476ddd290ec46318785046ef68a0ba9", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x000000000000000000000000000000000000000000000000000000000000001b", + "after": "0x000000000000000000000000000000000000000000000000000000000000001c", + "description": "Increments the nonce", + "allowDifference": false + }, + { + "key": "0x8edc1cfc1840fa9ef854a3f743c41fe8ca1aa29e77f34b71c732200173cfea88", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "<>", + "allowDifference": false + } + ] + }, + { + "name": "CB Coordinator Safe - Sepolia", + "address": "0x646132a1667ca7ad00d36616afba1a28116c770a", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x000000000000000000000000000000000000000000000000000000000000000a", + "after": "0x000000000000000000000000000000000000000000000000000000000000000b", + "description": "Increments the nonce", + "allowDifference": false + }, + { + "key": "0x97d646f621b0f519cef0ddd752bf96c09d32d77408e838dc7e60be097f3f35ec", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "<>", + "allowDifference": false + } + ] + }, + { + "name": "Mock OP Safe / Mock Security Council - Sepolia", + "address": "0x6af0674791925f767060dd52f7fb20984e8639d8", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x0000000000000000000000000000000000000000000000000000000000000010", + "after": "0x0000000000000000000000000000000000000000000000000000000000000011", + "description": "Increments the nonce", + "allowDifference": false + } + ] + }, + { + "name": "System Config - Sepolia", + "address": "0xf272670eb55e895584501d564afeb048bed26194", + "changes": [ + { + "key": "0x000000000000000000000000000000000000000000000000000000000000006a", + "before": "0x0000000000000000000000000000000000000000000000000000000400000032", + "after": "0x0000000000000000000001380000000000000000000000000000000400000032", + "description": "Updates EIP 1559 params for the chain", + "allowDifference": false + }, + { + "key": "0x000000000000000000000000000000000000000000000000000000000000006c", + "before": "0x000000000000000000000000c2be75506d5724086deb7245bd260cc9753911be", + "after": "0x000000000000000000030d40c2be75506d5724086deb7245bd260cc9753911be", + "description": "<>", + "allowDifference": false + } + ] + } + ], + "balanceChanges": [] +} diff --git a/sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json new file mode 100644 index 00000000..c94cead0 --- /dev/null +++ b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json @@ -0,0 +1,126 @@ +{ + "cmd": "forge script --rpc-url https://ethereum-full-sepolia-k8s-dev.cbhq.net SetJovianParametersScript --sig sign(address[]) [0x5dfEB066334B67355A15dc9b67317fD2a2e1f77f, 0x646132A1667ca7aD00d36616AFBA1A28116C770A] --sender 0x7f10098bd53519c739ca8a404afe127647d94774", + "ledgerId": 0, + "rpcUrl": "https://ethereum-full-sepolia-k8s-dev.cbhq.net", + "expectedDomainAndMessageHashes": { + "address": "0x0fe884546476dDd290eC46318785046ef68a0BA9", + "domainHash": "0x0127bbb910536860a0757a9c0ffcdf9e4452220f566ed83af1f27f9e833f0e23", + "messageHash": "0x3ec16bbc91fd3ee7c8bd9731d99e666f0e476ec76799b6bdb468b3ffc40d0fd0" + }, + "stateOverrides": [ + { + "name": "Proxy Admin Owner - Sepolia", + "address": "0x0fe884546476ddd290ec46318785046ef68a0ba9", + "overrides": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Override the threshold to 1 so the transaction simulation can occur." + } + ] + }, + { + "name": "CB Signer Safe - Sepolia", + "address": "0x5dfeb066334b67355a15dc9b67317fd2a2e1f77f", + "overrides": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Override the threshold to 1 so the transaction simulation can occur." + }, + { + "key": "0x98f6cfc2c4775162457aa556620165f9d3ca1497e738b4fdecff87f5b2328116", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Simulates an approval from msg.sender in order for the task simulation to succeed." + } + ] + }, + { + "name": "CB Coordinator Safe - Sepolia", + "address": "0x646132a1667ca7ad00d36616afba1a28116c770a", + "overrides": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Override the threshold to 1 so the transaction simulation can occur." + } + ] + } + ], + "stateChanges": [ + { + "name": "Proxy Admin Owner - Sepolia", + "address": "0x0fe884546476ddd290ec46318785046ef68a0ba9", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x000000000000000000000000000000000000000000000000000000000000001b", + "after": "0x000000000000000000000000000000000000000000000000000000000000001c", + "description": "Increments the nonce", + "allowDifference": false + }, + { + "key": "0x8edc1cfc1840fa9ef854a3f743c41fe8ca1aa29e77f34b71c732200173cfea88", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "<>", + "allowDifference": false + } + ] + }, + { + "name": "CB Signer Safe - Sepolia", + "address": "0x5dfeb066334b67355a15dc9b67317fd2a2e1f77f", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x000000000000000000000000000000000000000000000000000000000000000c", + "after": "0x000000000000000000000000000000000000000000000000000000000000000d", + "description": "Increments the nonce", + "allowDifference": false + } + ] + }, + { + "name": "CB Coordinator Safe - Sepolia", + "address": "0x646132a1667ca7ad00d36616afba1a28116c770a", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x000000000000000000000000000000000000000000000000000000000000000a", + "after": "0x000000000000000000000000000000000000000000000000000000000000000b", + "description": "Increments the nonce", + "allowDifference": false + }, + { + "key": "0x9a9a340b11831be720964539a007b72fec48bc53b0edc6c53ed1dee5612719b3", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "<>", + "allowDifference": false + } + ] + }, + { + "name": "System Config - Sepolia", + "address": "0xf272670eb55e895584501d564afeb048bed26194", + "changes": [ + { + "key": "0x000000000000000000000000000000000000000000000000000000000000006a", + "before": "0x0000000000000000000000000000000000000000000000000000000400000032", + "after": "0x0000000000000000000001380000000000000000000000000000000400000032", + "description": "Updates EIP 1559 params for the chain", + "allowDifference": false + }, + { + "key": "0x000000000000000000000000000000000000000000000000000000000000006c", + "before": "0x000000000000000000000000c2be75506d5724086deb7245bd260cc9753911be", + "after": "0x000000000000000000030d40c2be75506d5724086deb7245bd260cc9753911be", + "description": "<>", + "allowDifference": false + } + ] + } + ], + "balanceChanges": [] +} diff --git a/sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json b/sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json new file mode 100644 index 00000000..b8a95321 --- /dev/null +++ b/sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json @@ -0,0 +1,90 @@ +{ + "cmd": "forge script --rpc-url https://ethereum-full-sepolia-k8s-dev.cbhq.net SetJovianParametersScript --sig sign(address[]) [0x6AF0674791925f767060Dd52f7fB20984E8639d8] --sender 0x0CF2F86C3338993ce10F74d6f4B095712c7efe26", + "ledgerId": 0, + "rpcUrl": "https://ethereum-full-sepolia-k8s-dev.cbhq.net", + "expectedDomainAndMessageHashes": { + "address": "0x0fe884546476dDd290eC46318785046ef68a0BA9", + "domainHash": "0x6f25427e79742a1eb82c103e2bf43c85fc59509274ec258ad6ed841c4a0048aa", + "messageHash": "0xaa604fc3dfd4f148e7195783db01fee85df072dd44cf6888596a412dc537effa" + }, + "stateOverrides": [ + { + "name": "Proxy Admin Owner - Sepolia", + "address": "0x0fe884546476ddd290ec46318785046ef68a0ba9", + "overrides": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Override the threshold to 1 so the transaction simulation can occur." + } + ] + }, + { + "name": "Mock OP Safe / Mock Security Council - Sepolia", + "address": "0x6af0674791925f767060dd52f7fb20984e8639d8", + "overrides": [ + { + "key": "0x679f1b8bd03955667a029bcc95e48bebe3efa107e6404c87225e82f257a4fe67", + "value": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "Simulates an approval from msg.sender in order for the task simulation to succeed." + } + ] + } + ], + "stateChanges": [ + { + "name": "Proxy Admin Owner - Sepolia", + "address": "0x0fe884546476ddd290ec46318785046ef68a0ba9", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x000000000000000000000000000000000000000000000000000000000000001b", + "after": "0x000000000000000000000000000000000000000000000000000000000000001c", + "description": "Increments the nonce", + "allowDifference": false + }, + { + "key": "0xa5855c998346b3e542ba91df8b8a8b17cf51c481a36485b6f7831bb3331db193", + "before": "0x0000000000000000000000000000000000000000000000000000000000000000", + "after": "0x0000000000000000000000000000000000000000000000000000000000000001", + "description": "<>", + "allowDifference": false + } + ] + }, + { + "name": "Mock OP Safe / Mock Security Council - Sepolia", + "address": "0x6af0674791925f767060dd52f7fb20984e8639d8", + "changes": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "before": "0x0000000000000000000000000000000000000000000000000000000000000010", + "after": "0x0000000000000000000000000000000000000000000000000000000000000011", + "description": "Increments the nonce", + "allowDifference": false + } + ] + }, + { + "name": "System Config - Sepolia", + "address": "0xf272670eb55e895584501d564afeb048bed26194", + "changes": [ + { + "key": "0x000000000000000000000000000000000000000000000000000000000000006a", + "before": "0x0000000000000000000000000000000000000000000000000000000400000032", + "after": "0x0000000000000000000001380000000000000000000000000000000400000032", + "description": "Updates EIP 1559 params for the chain", + "allowDifference": false + }, + { + "key": "0x000000000000000000000000000000000000000000000000000000000000006c", + "before": "0x000000000000000000000000c2be75506d5724086deb7245bd260cc9753911be", + "after": "0x000000000000000000030d40c2be75506d5724086deb7245bd260cc9753911be", + "description": "<>", + "allowDifference": false + } + ] + } + ], + "balanceChanges": [] +} From 0af73e71d365338a9f80a3fa43e1b2f98a9e6671 Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Wed, 19 Nov 2025 13:03:47 -0600 Subject: [PATCH 09/16] Get sign-task to work successfully --- sepolia/2025-11-18-set-jovian-parameters/.env | 2 ++ .../validations/cb-sc-signer.json | 10 +++++----- .../validations/cb-signer.json | 10 +++++----- .../validations/op-signer.json | 6 +++--- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/sepolia/2025-11-18-set-jovian-parameters/.env b/sepolia/2025-11-18-set-jovian-parameters/.env index bb358ed3..21050db5 100644 --- a/sepolia/2025-11-18-set-jovian-parameters/.env +++ b/sepolia/2025-11-18-set-jovian-parameters/.env @@ -15,3 +15,5 @@ OP_SIGNER_SAFE_ADDR=0x6AF0674791925f767060Dd52f7fB20984E8639d8 # Jovian parameters DA_FOOTPRINT_GAS_SCALAR=312 MIN_BASE_FEE=200000 + +RECORD_STATE_DIFF=true diff --git a/sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json index f5036246..4194cba0 100644 --- a/sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json +++ b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json @@ -1,5 +1,5 @@ { - "cmd": "forge script --rpc-url https://ethereum-full-sepolia-k8s-dev.cbhq.net SetJovianParametersScript --sig sign(address[]) [0x6AF0674791925f767060Dd52f7fB20984E8639d8, 0x646132A1667ca7aD00d36616AFBA1A28116C770A] --sender 0x7f10098bd53519c739ca8a404afe127647d94774", + "cmd": "forge script --rpc-url https://ethereum-full-sepolia-k8s-dev.cbhq.net SetJovianParametersScript --sig sign(address[]) [0x6AF0674791925f767060Dd52f7fB20984E8639d8,0x646132A1667ca7aD00d36616AFBA1A28116C770A] --sender 0x7f10098bd53519c739ca8a404afe127647d94774", "ledgerId": 0, "rpcUrl": "https://ethereum-full-sepolia-k8s-dev.cbhq.net", "expectedDomainAndMessageHashes": { @@ -58,7 +58,7 @@ "key": "0x8edc1cfc1840fa9ef854a3f743c41fe8ca1aa29e77f34b71c732200173cfea88", "before": "0x0000000000000000000000000000000000000000000000000000000000000000", "after": "0x0000000000000000000000000000000000000000000000000000000000000001", - "description": "<>", + "description": "Increment approvedHashes", "allowDifference": false } ] @@ -78,7 +78,7 @@ "key": "0x97d646f621b0f519cef0ddd752bf96c09d32d77408e838dc7e60be097f3f35ec", "before": "0x0000000000000000000000000000000000000000000000000000000000000000", "after": "0x0000000000000000000000000000000000000000000000000000000000000001", - "description": "<>", + "description": "Increment approvedHashes", "allowDifference": false } ] @@ -104,14 +104,14 @@ "key": "0x000000000000000000000000000000000000000000000000000000000000006a", "before": "0x0000000000000000000000000000000000000000000000000000000400000032", "after": "0x0000000000000000000001380000000000000000000000000000000400000032", - "description": "Updates EIP 1559 params for the chain", + "description": "Sets the DA Footprint Gas Scalar to 312 (0x0138)", "allowDifference": false }, { "key": "0x000000000000000000000000000000000000000000000000000000000000006c", "before": "0x000000000000000000000000c2be75506d5724086deb7245bd260cc9753911be", "after": "0x000000000000000000030d40c2be75506d5724086deb7245bd260cc9753911be", - "description": "<>", + "description": "Sets the Min Base Fee to 200000 (0x030d40)", "allowDifference": false } ] diff --git a/sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json index c94cead0..ac31d289 100644 --- a/sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json +++ b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json @@ -1,5 +1,5 @@ { - "cmd": "forge script --rpc-url https://ethereum-full-sepolia-k8s-dev.cbhq.net SetJovianParametersScript --sig sign(address[]) [0x5dfEB066334B67355A15dc9b67317fD2a2e1f77f, 0x646132A1667ca7aD00d36616AFBA1A28116C770A] --sender 0x7f10098bd53519c739ca8a404afe127647d94774", + "cmd": "forge script --rpc-url https://ethereum-full-sepolia-k8s-dev.cbhq.net SetJovianParametersScript --sig sign(address[]) [0x5dfEB066334B67355A15dc9b67317fD2a2e1f77f,0x646132A1667ca7aD00d36616AFBA1A28116C770A] --sender 0x7f10098bd53519c739ca8a404afe127647d94774", "ledgerId": 0, "rpcUrl": "https://ethereum-full-sepolia-k8s-dev.cbhq.net", "expectedDomainAndMessageHashes": { @@ -63,7 +63,7 @@ "key": "0x8edc1cfc1840fa9ef854a3f743c41fe8ca1aa29e77f34b71c732200173cfea88", "before": "0x0000000000000000000000000000000000000000000000000000000000000000", "after": "0x0000000000000000000000000000000000000000000000000000000000000001", - "description": "<>", + "description": "Increment approvedHashes", "allowDifference": false } ] @@ -96,7 +96,7 @@ "key": "0x9a9a340b11831be720964539a007b72fec48bc53b0edc6c53ed1dee5612719b3", "before": "0x0000000000000000000000000000000000000000000000000000000000000000", "after": "0x0000000000000000000000000000000000000000000000000000000000000001", - "description": "<>", + "description": "Increment approvedHashes", "allowDifference": false } ] @@ -109,14 +109,14 @@ "key": "0x000000000000000000000000000000000000000000000000000000000000006a", "before": "0x0000000000000000000000000000000000000000000000000000000400000032", "after": "0x0000000000000000000001380000000000000000000000000000000400000032", - "description": "Updates EIP 1559 params for the chain", + "description": "Sets the DA Footprint Gas Scalar to 312 (0x0138)", "allowDifference": false }, { "key": "0x000000000000000000000000000000000000000000000000000000000000006c", "before": "0x000000000000000000000000c2be75506d5724086deb7245bd260cc9753911be", "after": "0x000000000000000000030d40c2be75506d5724086deb7245bd260cc9753911be", - "description": "<>", + "description": "Sets the Min Base Fee to 200000 (0x030d40)", "allowDifference": false } ] diff --git a/sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json b/sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json index b8a95321..d8bfcf40 100644 --- a/sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json +++ b/sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json @@ -47,7 +47,7 @@ "key": "0xa5855c998346b3e542ba91df8b8a8b17cf51c481a36485b6f7831bb3331db193", "before": "0x0000000000000000000000000000000000000000000000000000000000000000", "after": "0x0000000000000000000000000000000000000000000000000000000000000001", - "description": "<>", + "description": "Increment approvedHashes", "allowDifference": false } ] @@ -73,14 +73,14 @@ "key": "0x000000000000000000000000000000000000000000000000000000000000006a", "before": "0x0000000000000000000000000000000000000000000000000000000400000032", "after": "0x0000000000000000000001380000000000000000000000000000000400000032", - "description": "Updates EIP 1559 params for the chain", + "description": "Sets the DA Footprint Gas Scalar to 312 (0x0138)", "allowDifference": false }, { "key": "0x000000000000000000000000000000000000000000000000000000000000006c", "before": "0x000000000000000000000000c2be75506d5724086deb7245bd260cc9753911be", "after": "0x000000000000000000030d40c2be75506d5724086deb7245bd260cc9753911be", - "description": "<>", + "description": "Sets the Min Base Fee to 200000 (0x030d40)", "allowDifference": false } ] From 20ae0ac444deaf5915bd8d8ea113eebea0b7c6dd Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Thu, 20 Nov 2025 09:25:59 -0600 Subject: [PATCH 10/16] Use the latest signer tool commit --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ad51512e..2dcbcdce 100644 --- a/Makefile +++ b/Makefile @@ -119,7 +119,7 @@ checkout-base-contracts-commit: ## # Task Signer Tool ## -SIGNER_TOOL_COMMIT=dbe7f9e358bf99e367441e95d8f6ce28716c4cc9 +SIGNER_TOOL_COMMIT=abbfa09210582eca32ad4873d862994a5957fbc2 SIGNER_TOOL_PATH=signer-tool .PHONY: checkout-signer-tool From 47dcabe1a6fa4f31bbf1bf5eaf367a45aeb684c8 Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Thu, 20 Nov 2025 09:30:07 -0600 Subject: [PATCH 11/16] Make the script's variables immutable --- .../script/SetJovianParameters.s.sol | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/sepolia/2025-11-18-set-jovian-parameters/script/SetJovianParameters.s.sol b/sepolia/2025-11-18-set-jovian-parameters/script/SetJovianParameters.s.sol index 41353100..2f47414c 100644 --- a/sepolia/2025-11-18-set-jovian-parameters/script/SetJovianParameters.s.sol +++ b/sepolia/2025-11-18-set-jovian-parameters/script/SetJovianParameters.s.sol @@ -16,11 +16,18 @@ interface ISystemConfig { } contract SetJovianParametersScript is MultisigScript { - address internal OWNER_SAFE = vm.envAddress("OWNER_SAFE"); - address internal SYSTEM_CONFIG = vm.envAddress("SYSTEM_CONFIG"); + address internal immutable OWNER_SAFE; + address internal immutable SYSTEM_CONFIG; - uint16 internal DA_FOOTPRINT_GAS_SCALAR = uint16(vm.envUint("DA_FOOTPRINT_GAS_SCALAR")); - uint64 internal MIN_BASE_FEE = uint64(vm.envUint("MIN_BASE_FEE")); + 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 From af4fbbd2f4ef9cba131ab80ebdd9f29d9725a869 Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Thu, 20 Nov 2025 09:34:35 -0600 Subject: [PATCH 12/16] Use the new --ledger-id option --- sepolia/2025-11-18-set-jovian-parameters/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sepolia/2025-11-18-set-jovian-parameters/Makefile b/sepolia/2025-11-18-set-jovian-parameters/Makefile index 06d1f9d9..d31ef6b4 100644 --- a/sepolia/2025-11-18-set-jovian-parameters/Makefile +++ b/sepolia/2025-11-18-set-jovian-parameters/Makefile @@ -30,6 +30,7 @@ run-script-cb: cd $(SIGNER_TOOL_PATH); \ npm ci; \ bun run scripts/genValidationFile.ts --rpc-url $(RPC_URL) \ + --ledger-id $(LEDGER_ACCOUNT) \ --workdir .. --forge-cmd 'forge script --rpc-url $(RPC_URL) \ $(SCRIPT_NAME) --sig "sign(address[])" "[$(CB_NESTED_SAFE_ADDR), $(CB_SIGNER_SAFE_ADDR)]" --sender 0x7f10098bd53519c739ca8a404afe127647d94774' --out ../validations/cb-signer.json; @@ -42,6 +43,7 @@ run-script-cb-sc: cd $(SIGNER_TOOL_PATH); \ npm ci; \ bun run scripts/genValidationFile.ts --rpc-url $(RPC_URL) \ + --ledger-id $(LEDGER_ACCOUNT) \ --workdir .. --forge-cmd 'forge script --rpc-url $(RPC_URL) \ $(SCRIPT_NAME) --sig "sign(address[])" "[$(CB_SC_SAFE_ADDR), $(CB_SIGNER_SAFE_ADDR)]" --sender 0x7f10098bd53519c739ca8a404afe127647d94774' --out ../validations/cb-sc-signer.json; @@ -53,6 +55,7 @@ run-script-op: cd $(SIGNER_TOOL_PATH); \ npm ci; \ bun run scripts/genValidationFile.ts --rpc-url $(RPC_URL) \ + --ledger-id $(LEDGER_ACCOUNT) \ --workdir .. --forge-cmd 'forge script --rpc-url $(RPC_URL) \ $(SCRIPT_NAME) --sig "sign(address[])" "[$(OP_SIGNER_SAFE_ADDR)]" --sender 0x0CF2F86C3338993ce10F74d6f4B095712c7efe26' --out ../validations/op-signer.json; From 1e5c07296774f0faad2fb0317c8bda2571fe62cf Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Thu, 20 Nov 2025 09:34:45 -0600 Subject: [PATCH 13/16] Regenerate validations --- .../validations/cb-sc-signer.json | 10 +++++----- .../validations/cb-signer.json | 10 +++++----- .../validations/op-signer.json | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json index 4194cba0..e4743e0a 100644 --- a/sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json +++ b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-sc-signer.json @@ -1,11 +1,11 @@ { "cmd": "forge script --rpc-url https://ethereum-full-sepolia-k8s-dev.cbhq.net SetJovianParametersScript --sig sign(address[]) [0x6AF0674791925f767060Dd52f7fB20984E8639d8,0x646132A1667ca7aD00d36616AFBA1A28116C770A] --sender 0x7f10098bd53519c739ca8a404afe127647d94774", - "ledgerId": 0, + "ledgerId": 1, "rpcUrl": "https://ethereum-full-sepolia-k8s-dev.cbhq.net", "expectedDomainAndMessageHashes": { "address": "0x0fe884546476dDd290eC46318785046ef68a0BA9", "domainHash": "0x6f25427e79742a1eb82c103e2bf43c85fc59509274ec258ad6ed841c4a0048aa", - "messageHash": "0x433c36c45fd9bf1346604118bbcabcc11661e8d718914630ddce07babac16029" + "messageHash": "0x584d0cc61e6fffd9fea6c4cc3b242b782e0307c125b98ddc38cce23939b97eb6" }, "stateOverrides": [ { @@ -35,7 +35,7 @@ "address": "0x6af0674791925f767060dd52f7fb20984e8639d8", "overrides": [ { - "key": "0xa514f8e6473701443da65282ed67b01d28f188f1e2de36ff750a64798c38f36b", + "key": "0x3c35e253d3d819dc80b00bec4c486bf001629e935fee5b7278f4b79da0c2fb40", "value": "0x0000000000000000000000000000000000000000000000000000000000000001", "description": "Simulates an approval from msg.sender in order for the task simulation to succeed." } @@ -89,8 +89,8 @@ "changes": [ { "key": "0x0000000000000000000000000000000000000000000000000000000000000005", - "before": "0x0000000000000000000000000000000000000000000000000000000000000010", - "after": "0x0000000000000000000000000000000000000000000000000000000000000011", + "before": "0x0000000000000000000000000000000000000000000000000000000000000011", + "after": "0x0000000000000000000000000000000000000000000000000000000000000012", "description": "Increments the nonce", "allowDifference": false } diff --git a/sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json index ac31d289..7473cbda 100644 --- a/sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json +++ b/sepolia/2025-11-18-set-jovian-parameters/validations/cb-signer.json @@ -1,11 +1,11 @@ { "cmd": "forge script --rpc-url https://ethereum-full-sepolia-k8s-dev.cbhq.net SetJovianParametersScript --sig sign(address[]) [0x5dfEB066334B67355A15dc9b67317fD2a2e1f77f,0x646132A1667ca7aD00d36616AFBA1A28116C770A] --sender 0x7f10098bd53519c739ca8a404afe127647d94774", - "ledgerId": 0, + "ledgerId": 1, "rpcUrl": "https://ethereum-full-sepolia-k8s-dev.cbhq.net", "expectedDomainAndMessageHashes": { "address": "0x0fe884546476dDd290eC46318785046ef68a0BA9", "domainHash": "0x0127bbb910536860a0757a9c0ffcdf9e4452220f566ed83af1f27f9e833f0e23", - "messageHash": "0x3ec16bbc91fd3ee7c8bd9731d99e666f0e476ec76799b6bdb468b3ffc40d0fd0" + "messageHash": "0x826d763e5f8e6b8dc34ea6ac7a7732afec3b3f59a75b89f8a473dcc5823bafac" }, "stateOverrides": [ { @@ -29,7 +29,7 @@ "description": "Override the threshold to 1 so the transaction simulation can occur." }, { - "key": "0x98f6cfc2c4775162457aa556620165f9d3ca1497e738b4fdecff87f5b2328116", + "key": "0x7fe7cf17ba7e8539dbc7761dda7051425e4980a5488c2da7301fc2d8d1e9fa30", "value": "0x0000000000000000000000000000000000000000000000000000000000000001", "description": "Simulates an approval from msg.sender in order for the task simulation to succeed." } @@ -74,8 +74,8 @@ "changes": [ { "key": "0x0000000000000000000000000000000000000000000000000000000000000005", - "before": "0x000000000000000000000000000000000000000000000000000000000000000c", - "after": "0x000000000000000000000000000000000000000000000000000000000000000d", + "before": "0x000000000000000000000000000000000000000000000000000000000000000d", + "after": "0x000000000000000000000000000000000000000000000000000000000000000e", "description": "Increments the nonce", "allowDifference": false } diff --git a/sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json b/sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json index d8bfcf40..3ee300cd 100644 --- a/sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json +++ b/sepolia/2025-11-18-set-jovian-parameters/validations/op-signer.json @@ -1,11 +1,11 @@ { "cmd": "forge script --rpc-url https://ethereum-full-sepolia-k8s-dev.cbhq.net SetJovianParametersScript --sig sign(address[]) [0x6AF0674791925f767060Dd52f7fB20984E8639d8] --sender 0x0CF2F86C3338993ce10F74d6f4B095712c7efe26", - "ledgerId": 0, + "ledgerId": 1, "rpcUrl": "https://ethereum-full-sepolia-k8s-dev.cbhq.net", "expectedDomainAndMessageHashes": { "address": "0x0fe884546476dDd290eC46318785046ef68a0BA9", "domainHash": "0x6f25427e79742a1eb82c103e2bf43c85fc59509274ec258ad6ed841c4a0048aa", - "messageHash": "0xaa604fc3dfd4f148e7195783db01fee85df072dd44cf6888596a412dc537effa" + "messageHash": "0xcb1e56ca6002c1031dc54f1d2cebe111f24f5997476b0ee37909ca7078ac1d83" }, "stateOverrides": [ { @@ -24,7 +24,7 @@ "address": "0x6af0674791925f767060dd52f7fb20984e8639d8", "overrides": [ { - "key": "0x679f1b8bd03955667a029bcc95e48bebe3efa107e6404c87225e82f257a4fe67", + "key": "0x9a1a1e38d44b5a62ad5c57dafdf8e4dbcd373354e02c169028218b8664c81801", "value": "0x0000000000000000000000000000000000000000000000000000000000000001", "description": "Simulates an approval from msg.sender in order for the task simulation to succeed." } @@ -58,8 +58,8 @@ "changes": [ { "key": "0x0000000000000000000000000000000000000000000000000000000000000005", - "before": "0x0000000000000000000000000000000000000000000000000000000000000010", - "after": "0x0000000000000000000000000000000000000000000000000000000000000011", + "before": "0x0000000000000000000000000000000000000000000000000000000000000011", + "after": "0x0000000000000000000000000000000000000000000000000000000000000012", "description": "Increments the nonce", "allowDifference": false } From b106c0c0f6ddcf8795b7fc6ea0061f82018de363 Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Thu, 20 Nov 2025 09:38:30 -0600 Subject: [PATCH 14/16] Update status to ready to sign --- sepolia/2025-11-18-set-jovian-parameters/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sepolia/2025-11-18-set-jovian-parameters/README.md b/sepolia/2025-11-18-set-jovian-parameters/README.md index 714fecbc..83c2b6e5 100644 --- a/sepolia/2025-11-18-set-jovian-parameters/README.md +++ b/sepolia/2025-11-18-set-jovian-parameters/README.md @@ -1,6 +1,6 @@ # Set Jovian Parameters on Base Sepolia -Status: NOT YET EXECUTED +Status: READY TO SIGN ## Description From 7b77e974d49dea519c5d638f46a3e4fd4b0b7925 Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Thu, 20 Nov 2025 09:41:00 -0600 Subject: [PATCH 15/16] forge fmt --- .../script/SetJovianParameters.s.sol | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sepolia/2025-11-18-set-jovian-parameters/script/SetJovianParameters.s.sol b/sepolia/2025-11-18-set-jovian-parameters/script/SetJovianParameters.s.sol index 2f47414c..21059cca 100644 --- a/sepolia/2025-11-18-set-jovian-parameters/script/SetJovianParameters.s.sol +++ b/sepolia/2025-11-18-set-jovian-parameters/script/SetJovianParameters.s.sol @@ -43,11 +43,7 @@ contract SetJovianParametersScript is MultisigScript { DA_FOOTPRINT_GAS_SCALAR, "DA Footprint Gas Scalar mismatch" ); - vm.assertEq( - ISystemConfig(SYSTEM_CONFIG).minBaseFee(), - MIN_BASE_FEE, - "Min Base Fee mismatch" - ); + vm.assertEq(ISystemConfig(SYSTEM_CONFIG).minBaseFee(), MIN_BASE_FEE, "Min Base Fee mismatch"); } function _buildCalls() internal view override returns (IMulticall3.Call3Value[] memory) { From ee5717aa1231cc87ee17526e91b08b70c4bc669d Mon Sep 17 00:00:00 2001 From: Niran Babalola Date: Thu, 20 Nov 2025 09:42:47 -0600 Subject: [PATCH 16/16] Add FACILITATORS.md derived from sepolia/2025-11-07-upgrade-fault-proofs --- .../FACILITATORS.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 sepolia/2025-11-18-set-jovian-parameters/FACILITATORS.md diff --git a/sepolia/2025-11-18-set-jovian-parameters/FACILITATORS.md b/sepolia/2025-11-18-set-jovian-parameters/FACILITATORS.md new file mode 100644 index 00000000..31b29b1c --- /dev/null +++ b/sepolia/2025-11-18-set-jovian-parameters/FACILITATORS.md @@ -0,0 +1,47 @@ +#### Execute the transaction + +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` or `make approve` 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 +``` + +Coinbase facilitator: + +```bash +SIGNATURES=AAAABBBBCCCC make approve-cb +``` + +```bash +SIGNATURES=AAAABBBBCCCC make approve-cb-sc +``` + +```bash +SIGNATURES=AAAABBBBCCCC make approve-op +``` + +Once the signatures have been submitted approving the transaction for all nested Safes run: + +```bash +make execute +```