Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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/eth/032-soneium-add-game-type/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TENDERLY_GAS=15000000
21 changes: 21 additions & 0 deletions src/tasks/eth/032-soneium-add-game-type/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 032-soneium-add-game-type

Status: [DRAFT, NOT READY TO SIGN]

## Objective

This task adds the dispute game type 0 (Permissionless) to the Dispute Game Factory on Soneium Mainnet.

## Simulation & Signing

Simulation commands for each safe:
```bash
cd src/tasks/eth/032-soneium-add-game-type
SIMULATE_WITHOUT_LEDGER=1 SKIP_DECODE_AND_PRINT=1 just --dotenv-path $(pwd)/.env simulate <council|foundation>
```

Signing commands for each safe:
```bash
cd src/tasks/eth/032-soneium-add-game-type
SKIP_DECODE_AND_PRINT=1 just --dotenv-path $(pwd)/.env sign <council|foundation>
```
37 changes: 37 additions & 0 deletions src/tasks/eth/032-soneium-add-game-type/VALIDATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# 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.
>
> ### Security Council Safe (`0xc2819DC788505Aac350142A7A707BF9D03E3Bd03`)
>
> - Domain Hash: `0xbe081970e9fc104bd1ea27e375cd21ec7bb1eec56bfe43347c3e36c5d27b8533`
> - Message Hash: `0x67060414e1617ef70777db275e9b27086a8ad00395f28214b4b9d1099a6d99df`
>
> ### Foundation Safe (`0x847B5c174615B1B7fDF770882256e2D3E95b9D92`)
>
> - Domain Hash: `0x37e1f5dd3b92a004a23589b741196c8a214629d4ea3a690ec8e41ae45c689cbb`
> - Message Hash: `0x219585bec52931beea5abdd75155cfff7596dc1bc3697006ee74dcd3683a9062`

## Task Calldata

Calldata:
```
0x82ad56cb0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000003bb6437aba031afbf9cb3538fa064161e2bf2d780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002441661a2e900000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000004ca9608fef202216bc21d543798ec854539baad3000000000000000000000000ff9d236641962cebf9dbfb54e7b8e91f99f10db0000000000000000000000000b39c1730dff54f25f9e45667c119e0a8fee7315600000000000000000000000000000000000000000000000000000000000000000339db503776757491b9f3038bf6f1d37b7988a2f75e823fe2656c1352ef2f910000000000000000000000000000000000000000000000000000000000000049000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000049d40000000000000000000000000000000000000000000000000011c37937e08000000000000000000000000000007babe08ee4d07dba236530183b24055535a7011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000147468697320697320612073616c74206d6978657200000000000000000000000000000000000000000000000000000000000000000000000000000000
```
41 changes: 41 additions & 0 deletions src/tasks/eth/032-soneium-add-game-type/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
templateName = "AddGameTypeTemplate"

l2chains = [
{name = "Soneium", chainId = 1868},
]

[[configs]]
# The below addresses can be found in the Superchain Registry https://github.com/ethereum-optimism/superchain-registry/blob/851f7bb60edc53373fc961d237c7175aa130fba3/superchain/extra/addresses/addresses.json#L402
chainId = 1868
saltMixer = "this is a salt mixer"
systemConfig = "0x7A8Ed66B319911A0F3E7288BDdAB30d9c0C875c3"
proxyAdmin = "0x89889B569c3a505f3640ee1Bd0ac1D557f436D2a"
delayedWETH = "0x372dC0B87b790D6e1308CF9e7f73F0F1fcbD3754"
disputeGameType = 0
disputeAbsolutePrestate = "0x0339db503776757491b9f3038bf6f1d37b7988a2f75e823fe2656c1352ef2f91" # Absolute Prestate 1.7.0-rc.3 https://github.com/ethereum-optimism/superchain-registry/blob/851f7bb60edc53373fc961d237c7175aa130fba3/validation/standard/standard-prestates.toml#L6
disputeMaxGameDepth = 73
disputeSplitDepth = 30
disputeClockExtension = 10800
disputeMaxClockDuration = 302400
initialBond = 80000000000000000
vm = "0x07babe08ee4d07dba236530183b24055535a7011"
permissioned = false

[addresses]
OPCM = "0x56ebc5c4870f5367b836081610592241ad3e0734"

[stateOverrides]
# ProxyAdminOwner
0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A = [
{key = "0x0000000000000000000000000000000000000000000000000000000000000005", value = 38}
]

# Foundation Upgrades Safe
0x847B5c174615B1B7fDF770882256e2D3E95b9D92 = [
{key = "0x0000000000000000000000000000000000000000000000000000000000000005", value = 44}
]

# Security Council
0xc2819DC788505Aac350142A7A707BF9D03E3Bd03 = [
{key = "0x0000000000000000000000000000000000000000000000000000000000000005", value = 47}
]