Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/tasks/sep/038-world-sep-u13-to-u16a/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TENDERLY_GAS=30000000
21 changes: 21 additions & 0 deletions src/tasks/sep/038-world-sep-u13-to-u16a/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 038-world-sep-u13-to-u16a

Status: [DRAFT, NOT READY TO SIGN]

## Objective

This task upgrades Worldchain Sepolia to U16a, executing U13, U14, U15 sequentially.

## Simulation & Signing

Simulation commands for each safe:
```bash
cd src/tasks/sep/038-world-sep-u13-to-u16a
SIMULATE_WITHOUT_LEDGER=1 just --dotenv-path $(pwd)/.env simulate
```

Signing commands for each safe:
```bash
cd src/tasks/sep/038-world-sep-u13-to-u16a
just --dotenv-path $(pwd)/.env sign
```
33 changes: 33 additions & 0 deletions src/tasks/sep/038-world-sep-u13-to-u16a/VALIDATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# 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 state changes via the normalized state diff hash](#normalized-state-diff-hash-attestation)
3. [Verifying the transaction input](#understanding-task-calldata)
4. [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.
>
> ### Worldchain Sepolia L1 PAO (`0x945185C01fb641bA3E63a9bdF66575e35a407837`)
>
> - Domain Hash: `0x6faec9c52949ba8274340008df12c69faedd5c44e77f77c956d2ca8e4bcd877e`
> - Message Hash: `0x0eca1697f1cfe9b70917a5bb72d76d57ac19d4745cd82b7715b6f6435b2704e1`
>

## Task Calldata

Calldata:
```
0x82ad56cb00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004400000000000000000000000006b6f9129efb1b7a48f84e3b787333d1dca02ee340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4ff2dd5a100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000166f9406e79a656f12f05247fb8f5dfa6155bcbf0000000000000000000000003a987fe1cb587b0a1808cf9bb7cbe0e341838319039facea52b20c605c05efb0a33560a92de7074218998f75bcdf61e8989cb5d900000000000000000000000000000000000000000000000000000000000000000000000000000000fbceed4de885645fbded164910e10f52febfab350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4ff2dd5a100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000166f9406e79a656f12f05247fb8f5dfa6155bcbf0000000000000000000000003a987fe1cb587b0a1808cf9bb7cbe0e34183831903ee2917da962ec266b091f4b62121dc9682bb0db534633707325339f99ee40500000000000000000000000000000000000000000000000000000000000000000000000000000000fbceed4de885645fbded164910e10f52febfab350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a49a72745b00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000166f9406e79a656f12f05247fb8f5dfa6155bcbf0000000000000000000000003a987fe1cb587b0a1808cf9bb7cbe0e34183831903682932cec7ce0a3874b19675a6bbc923054a7b321efc7d3835187b172494b6000000000000000000000000000000000000000000000000000000000000000000000000000000003bb6437aba031afbf9cb3538fa064161e2bf2d780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4ff2dd5a100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000166f9406e79a656f12f05247fb8f5dfa6155bcbf0000000000000000000000003a987fe1cb587b0a1808cf9bb7cbe0e3418383190339db503776757491b9f3038bf6f1d37b7988a2f75e823fe2656c1352ef2f9100000000000000000000000000000000000000000000000000000000
```
53 changes: 53 additions & 0 deletions src/tasks/sep/038-world-sep-u13-to-u16a/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
templateName = "OPCMUpgradeV220toV410"

OPCMUpgradeV220_PRESTATE = "0x039facea52b20c605c05efb0a33560a92de7074218998f75bcdf61e8989cb5d9"
OPCMUpgradeV300_PRESTATE = "0x03ee2917da962ec266b091f4b62121dc9682bb0db534633707325339f99ee405"
OPCMUpgradeV300_UPDATE_PRESTATE = "0x03682932cec7ce0a3874b19675a6bbc923054a7b321efc7d3835187b172494b6"

[[l2chains]]
chainId = 4801
name = "World Chain Sepolia Testnet"

[[opcmUpgrades]]
chainId = 4801
# prestates."1.7.0-rc.3"
# https://github.com/ethereum-optimism/superchain-registry/blob/6748f8050bfab9930abdfc46288f9629af2f7b38/validation/standard/standard-prestates.toml#L6C7-L6C73
absolutePrestate = "0x0339db503776757491b9f3038bf6f1d37b7988a2f75e823fe2656c1352ef2f91"
expectedErrorsV220 = "PROXYA-10,SYSCON-20,DF-30,PDDG-50,PDDG-DWETH-30,PDDG-DWETH-40,PDDG-ANCHORP-40,PDDG-120,PLDG-10"
# PROXYA-10 : ProxyAdmin owner is not set to L1 PAO multisig.
# SYSCON-20 : SystemConfig gas limit is not set to 60,000,000.
# DF-30 : DisputeGameFactory owner is not set to L1 PAO multisig.
# PDDG-50 : Permissioned dispute game VM address mismatch.
# PDDG-DWETH-30 : Permissioned dispute game delayed WETH owner mismatch.
# PDDG-DWETH-40 : Permissioned dispute game delayed WETH delay not set to 1 week.
# PDDG-ANCHORP-40 : Permissioned dispute game anchor state registry root hash mismatch.
# PDDG-120: Permissioned dispute game challenger address mismatch.
# PLDG-10 : Permissionless dispute game implementation not found.
expectedErrorsV300 = "PROXYA-10,DF-30,PDDG-DWETH-30,PDDG-ANCHORP-40,PDDG-120,PLDG-10"
# PROXYA-10 : ProxyAdmin owner is not set to L1 PAO multisig.
# DF-30 : DisputeGameFactory owner is not set to L1 PAO multisig.
# PDDG-DWETH-30 : Permissioned dispute game delayed WETH owner mismatch.
# PDDG-ANCHORP-40 : Permissioned dispute game anchor state registry root hash mismatch.
# PDDG-120: Permissioned dispute game challenger address mismatch.
# PLDG-10 : Permissionless dispute game implementation not found.
expectedErrorsV410 = "PROXYA-10,DF-30,PDDG-DWETH-30,PDDG-130,PLDG-10"
# PROXYA-10 : ProxyAdmin owner is not set to L1 PAO multisig.
# DF-30 : DisputeGameFactory owner is not set to L1 PAO multisig.
# PDDG-DWETH-30 : Permissioned dispute game delayed WETH owner mismatch.
# PDDG-130: The challenger is not the standard one.
# PLDG-10 : Permissionless dispute game implementation not found.

[addresses]
OPCMUpgradeV220 = "0x6b6f9129efb1b7a48f84e3b787333d1dca02ee34" # version 1.7.0 https://github.com/ethereum-optimism/superchain-registry/blob/7857e9f87f5834af33c47d9aef5effdc9ef9573c/validation/standard/standard-versions-sepolia.toml#L160
StandardValidatorV200 = "0x37739a6b0a3F1E7429499a4eC4A0685439Daff5C"

OPCMUpgradeV300 = "0xfBceeD4DE885645fBdED164910E10F52fEBFAB35" # version 1.9.0 https://github.com/ethereum-optimism/superchain-registry/blob/7857e9f87f5834af33c47d9aef5effdc9ef9573c/validation/standard/standard-versions-sepolia.toml#L102
StandardValidatorV300 = "0x2d56022cb84ce6b961c3b4288ca36386bcd9024c"

OPCMUpgradeV410 = "0x3bb6437aba031afbf9cb3538fa064161e2bf2d78" # version 3.2.0 https://github.com/ethereum-optimism/superchain-registry/blob/40526b1288534f6b84b7aae21d13c0b5f5b12f47/validation/standard/standard-versions-sepolia.toml#L23
StandardValidatorV410 = "0x3bb6437aba031afbf9cb3538fa064161e2bf2d78"

[stateOverrides]
0x945185C01fb641bA3E63a9bdF66575e35a407837 = [
{ key = "0x0000000000000000000000000000000000000000000000000000000000000005", value = 53 }
]