diff --git a/src/tasks/sep/035-uni-sep-fusaka-prestate/.env b/src/tasks/sep/035-uni-sep-fusaka-prestate/.env new file mode 100644 index 0000000000..adf17d369c --- /dev/null +++ b/src/tasks/sep/035-uni-sep-fusaka-prestate/.env @@ -0,0 +1 @@ +TENDERLY_GAS=15000000 diff --git a/src/tasks/sep/035-uni-sep-fusaka-prestate/README.md b/src/tasks/sep/035-uni-sep-fusaka-prestate/README.md new file mode 100644 index 0000000000..04b86dc2f4 --- /dev/null +++ b/src/tasks/sep/035-uni-sep-fusaka-prestate/README.md @@ -0,0 +1,21 @@ +# 035-uni-sep-fusaka-prestate + +Status: [READY TO SIGN] + +## Objective + +This task uses `op-contract/v4.1.0` OPContractsManager to update the prestate of Unichain Sepolia to the Fusaka compatible prestate. + +## Simulation & Signing + +Simulation commands for each safe: +```bash +cd src/tasks/sep/035-uni-sep-fusaka-prestate +SIMULATE_WITHOUT_LEDGER=1 SKIP_DECODE_AND_PRINT=1 just --dotenv-path $(pwd)/.env simulate +``` + +Signing commands for each safe: +```bash +cd src/tasks/sep/035-uni-sep-fusaka-prestate +SKIP_DECODE_AND_PRINT=1 just --dotenv-path $(pwd)/.env sign +``` diff --git a/src/tasks/sep/035-uni-sep-fusaka-prestate/VALIDATION.md b/src/tasks/sep/035-uni-sep-fusaka-prestate/VALIDATION.md new file mode 100644 index 0000000000..e441c0a29b --- /dev/null +++ b/src/tasks/sep/035-uni-sep-fusaka-prestate/VALIDATION.md @@ -0,0 +1,36 @@ +# Validation + +This document can be used to validate the inputs and result of the execution of the upgrade transaction which you are +signing. + +The steps are: + +1. [Validate the Domain and Message Hashes](#expected-domain-and-message-hashes) +2. [Verifying the transaction input](#understanding-task-calldata) +3. [Verifying the state changes](#task-state-changes) + +## Expected Domain and Message Hashes + +First, we need to validate the domain and message hashes. These values should match both the values on your ledger and +the values printed to the terminal when you run the task. + +> [!CAUTION] +> +> Before signing, ensure the below hashes match what is on your ledger. +> +> ### L1PAO: `@0xd363339eE47775888Df411A163c586a8BdEA9dbf` +> +> - Domain Hash: `0x2fedecce87979400ff00d5cec4c77da942d43ab3b9db4a5ffc51bb2ef498f30b` +> - Message Hash: `0x9151c19e2511e6ddf5366deaf4592fd30dd41e0f7d3e371ed85190008ca6e566` +## Normalized State Diff Hash Attestation + +Ensure that the normalized state diff hash matches the output in your terminal. + +**Normalized hash:** `0x72702882bcde0413668da3fabcb6450df3c993b1892b9d881fa750e7cb9c5b52` + +## Task Calldata + +Calldata: +``` +0x82ad56cb0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000003bb6437aba031afbf9cb3538fa064161e2bf2d780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a49a72745b00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000aee94b9ab7752d3f7704bde212c0c6a0b701571d0000000000000000000000002bf403e5353a7a082ef6bb3ae2be3b866d8d3ea40339db503776757491b9f3038bf6f1d37b7988a2f75e823fe2656c1352ef2f9100000000000000000000000000000000000000000000000000000000 +``` \ No newline at end of file diff --git a/src/tasks/sep/035-uni-sep-fusaka-prestate/config.toml b/src/tasks/sep/035-uni-sep-fusaka-prestate/config.toml new file mode 100644 index 0000000000..fbbe6ffe00 --- /dev/null +++ b/src/tasks/sep/035-uni-sep-fusaka-prestate/config.toml @@ -0,0 +1,19 @@ +templateName = "OPCMUpdatePrestateV410" + +[[l2chains]] +chainId = 1301 +name = "Unichain Sepolia Testnet" + +[[opcmUpgrades]] +chainId = 1301 +absolutePrestate = "0x0339db503776757491b9f3038bf6f1d37b7988a2f75e823fe2656c1352ef2f91" # Fusaka Absolute Prestate published here https://github.com/ethereum-optimism/superchain-registry/blob/df5d4feb51f5d698d043a72ac2c6dfa9ce2a4afa/validation/standard/standard-prestates.toml#L6C7-L6C73 +expectedValidationErrors = "OVERRIDES-L1PAOMULTISIG,OVERRIDES-CHALLENGER" # The template provides PAO and Challenger overrides to the validator from the SCR. These simply indicate overrides were used. + +[addresses] +OPCM = "0x3bb6437aba031afbf9cb3538fa064161e2bf2d78" # version 3.2.0 https://github.com/ethereum-optimism/superchain-registry/blob/df5d4feb51f5d698d043a72ac2c6dfa9ce2a4afa/validation/standard/standard-versions-sepolia.toml#L23 + +[stateOverrides] +# Unichain Sepolia ProxyAdminOwner: +0xd363339eE47775888Df411A163c586a8BdEA9dbf = [ # L1PAO + {key = "0x0000000000000000000000000000000000000000000000000000000000000005", value = 38} +]