Skip to content
Merged
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/050-op-betanet-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/sep/050-op-betanet-add-game-type/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 050-op-betanet-add-game-type

Status: [READY TO SIGN]

## Objective

This task adds the dispute game type 0 (Permissionless) to the Dispute Game Factory on OP Betanet for U18.
Copy link
Copy Markdown
Contributor

@mds1 mds1 Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does op-deployer not support configuring permissionless games when the chain is stood up? I thought it did


## Simulation & Signing

Simulation commands for each safe:
```bash
cd src/tasks/sep/050-op-betanet-add-game-type
SIMULATE_WITHOUT_LEDGER=1 SKIP_DECODE_AND_PRINT=1 just --dotenv-path $(pwd)/.env simulate
Comment thread
Wazabie marked this conversation as resolved.
```

Signing commands for each safe:
```bash
cd src/tasks/sep/050-op-betanet-add-game-type
SKIP_DECODE_AND_PRINT=1 just --dotenv-path $(pwd)/.env sign
```
31 changes: 31 additions & 0 deletions src/tasks/sep/050-op-betanet-add-game-type/VALIDATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 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. [Transaction Inputs](config.toml): inputs can be verified in the config.toml file, which includes links to the relevant Superchain Registry sources.
3. State Changes: the template’s _validate block includes assertions to confirm the task ran correctly. State Changes can also be manually reviewed in Tenderly, using the link shown in the terminal during simulation.

## 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]
>
>
> ### Betanet EOA (`0xe934Dc97E347C6aCef74364B50125bb8689c40ff`)
Comment thread
Wazabie marked this conversation as resolved.
>
> - Domain Hash: `0x07e03428d7125835eca12b6dd1a02903029b456da3a091ecd66fda859fbce61e`
> - Message Hash: `0x9c5cbe23181c28d77aa0eaf6d190d60500c2f58387134deb2249ffd0545d97c6`
>

## Task Calldata

Calldata:
```
0x82ad56cb000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000c69e4c24db479191676611a25d977203c3bdca620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002441661a2e900000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000005babf93ac7affeae25dc1a7ad4587fdeebba44c2000000000000000000000000cd18a0c04286eba52bb168fa1d79133da4856bef00000000000000000000000062841f5e03a56f818bc8818c5130757aca2541a7000000000000000000000000000000000000000000000000000000000000000003ccb5619628eeba89d58b204aadeb2ed9f51d18ff938069dd298b9e19fb2d310000000000000000000000000000000000000000000000000000000000000049000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000049d40000000000000000000000000000000000000000000000000011c37937e0800000000000000000000000000006463dee3828677f6270d83d45408044fc5edb908000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000147468697320697320612073616c74206d6978657200000000000000000000000000000000000000000000000000000000000000000000000000000000
```
Comment thread
Wazabie marked this conversation as resolved.
Comment thread
Wazabie marked this conversation as resolved.
16 changes: 16 additions & 0 deletions src/tasks/sep/050-op-betanet-add-game-type/addresses.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"420110022": {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the directory, it's not clear which betanet and chain in https://github.com/ethereum-optimism/devnets/tree/main/betanets this folder refers to.

From the chain ID key it seems that https://github.com/ethereum-optimism/devnets/blob/f48b318e8f8ee70bc1b60ce31dd3ad20240f2c1a/betanets/u18-beta/u18-beta-1/chain.yaml is the chain, but the address in that file don't match what's in this file

"ProxyAdmin": "0xcd18a0C04286Eba52Bb168Fa1D79133Da4856bEf",
"ProxyAdminOwner": "0xe934Dc97E347C6aCef74364B50125bb8689c40ff",
"SystemConfigProxy": "0x5babF93aC7AFfeaE25dc1a7ad4587fDeEbba44C2",
"L1CrossDomainMessengerProxy": "0xF0e4aAcC6D039C05B827994C3FfBBBcf00085D11",
"L1StandardBridgeProxy": "0x3756BF0380E7fdABcB81f2cFb1d8022e8B798a8F",
"OptimismPortalProxy": "0xbd36ac8fB65F192dAEbCB2Dca819CB7ea7D60417",
"DisputeGameFactoryProxy": "0x298038f9E37b370d20E58706E8Ac78475b089FB2",
"DelayedWETHProxy": "0x62841F5E03a56f818BC8818c5130757acA2541A7",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this? Chains have multiple DelayedWETHs so we should delete this and "discover" DelayedWETH addrs when needed via contract calls

"PermissionedDelayedWETHProxy": "0x62841F5E03a56f818BC8818c5130757acA2541A7",
"AnchorStateRegistryProxy": "0x333f8D607B81E880315716A815A9369B33ea6A77",
"AddressManager": "0x82D735Cc1e04fcFef24d0190F11b5253e05562AF",
"L1ERC721BridgeProxy": "0xe081aD91D049e9999d1e7006dbF025b38198B518"
}
}
31 changes: 31 additions & 0 deletions src/tasks/sep/050-op-betanet-add-game-type/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
templateName = "AddGameTypeTemplate"
fallbackAddressesJsonPath = "src/tasks/sep/050-op-betanet-add-game-type/addresses.json"

l2chains = [
{name = "u18-beta-1", chainId = 420110022},
]

[[configs]]
# The below addresses can be found here https://github.com/ethereum-optimism/devnets/blob/main/betanets/u18-beta/u18-beta-1/chain.yaml
Copy link
Copy Markdown
Contributor

@mds1 mds1 Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we have to define the addresses here, if they are also in addresses.json? It would be great if we can remove them from here. And similar to above the addresses still don't match. For example this file has a systemConfig of 0x5babF93aC7AFfeaE25dc1a7ad4587fDeEbba44C2 but the linked file shows it as 0x4E0528A9dc40FEdf1C2cFc0eAA04e70E7d3d591B

chainId = 420110022
saltMixer = "this is a salt mixer"
systemConfig = "0x5babF93aC7AFfeaE25dc1a7ad4587fDeEbba44C2"
proxyAdmin = "0xcd18a0C04286Eba52Bb168Fa1D79133Da4856bEf"
delayedWETH = "0x62841F5E03a56f818BC8818c5130757acA2541A7"
disputeGameType = 0
disputeAbsolutePrestate = "0x03ccb5619628eeba89d58b204aadeb2ed9f51d18ff938069dd298b9e19fb2d31" # Source: https://www.notion.so/oplabs/Betanet-2a9f153ee16280859261e3000d866ee9?source=copy_link#2c5f153ee1628012bc4dfbeaae710c70
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we link to an official prestate review as evidence this is correct instead? This link shows me the prestate was generated on Dec 10, but how do we know that Dec 10 generated the right prestate?

disputeMaxGameDepth = 73
disputeSplitDepth = 30
disputeClockExtension = 10800
disputeMaxClockDuration = 302400
initialBond = 80000000000000000
vm = "0x6463dEE3828677F6270d83d45408044fc5eDB908" # Source: https://github.com/ethereum-optimism/superchain-registry/blob/ad5becd08007b80988679b8f0c08d415e1294066/validation/standard/standard-versions-sepolia.toml#L11
Copy link
Copy Markdown
Contributor

@mds1 mds1 Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we hardcoding a vm address as input? This seems suspect. Can we e.g. read it from OPCM instead? The template has an OPCM var, but also takes this as an input, which seems redundant. Maybe a question for proofs team

permissioned = false

[addresses]
OPCM = "0xc69e4c24db479191676611a25d977203c3bdca62" # https://github.com/ethereum-optimism/superchain-registry/blob/74d9bb4ad4cd8d6fd453f2e9dfe5380d97c07ca9/validation/standard/standard-versions-sepolia.toml#L23C56-L23C98

[stateOverrides]
0xe934Dc97E347C6aCef74364B50125bb8689c40ff = [
{key = "0x0000000000000000000000000000000000000000000000000000000000000005", value = 55}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TENDERLY_GAS=15000000
21 changes: 21 additions & 0 deletions src/tasks/sep/051-op-betanet-set-respected-game-type/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 051-op-betanet-set-respected-game-type

Status: [READY TO SIGN]

## Objective

This task sets the respected dispute game type to game type 0 (Permissionless) on OP Betanet for U18.

## Simulation & Signing

Simulation commands for each safe:
```bash
cd src/tasks/sep/051-op-betanet-set-respected-game-type
SIMULATE_WITHOUT_LEDGER=1 SKIP_DECODE_AND_PRINT=1 just --dotenv-path $(pwd)/.env simulate
Comment thread
Wazabie marked this conversation as resolved.
```

Signing commands for each safe:
```bash
cd src/tasks/sep/051-op-betanet-set-respected-game-type
SKIP_DECODE_AND_PRINT=1 just --dotenv-path $(pwd)/.env sign
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 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. [Transaction Inputs](config.toml): inputs can be verified in the config.toml file, which includes links to the relevant Superchain Registry sources.
3. State Changes: the template’s _validate block includes assertions to confirm the task ran correctly. State Changes can also be manually reviewed in Tenderly, using the link shown in the terminal during simulation.

## 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]
>
>
> ### Betanet EOA (`0xe934Dc97E347C6aCef74364B50125bb8689c40ff`)
Comment thread
Wazabie marked this conversation as resolved.
>
> - Domain Hash: `0x07e03428d7125835eca12b6dd1a02903029b456da3a091ecd66fda859fbce61e`
> - Message Hash: `0x9e8127525f1f0fdfe412df910c50c9cd81d2a926147240dfcc9aaf20c0994e03`
>

## Task Calldata

Calldata:
```
0x174dea71000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000333f8d607b81e880315716a815a9369b33ea6a7700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000247fc48504000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"420110022": {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"ProxyAdmin": "0xcd18a0C04286Eba52Bb168Fa1D79133Da4856bEf",
"ProxyAdminOwner": "0xe934Dc97E347C6aCef74364B50125bb8689c40ff",
"SystemConfigProxy": "0x5babF93aC7AFfeaE25dc1a7ad4587fDeEbba44C2",
"L1CrossDomainMessengerProxy": "0xF0e4aAcC6D039C05B827994C3FfBBBcf00085D11",
"L1StandardBridgeProxy": "0x3756BF0380E7fdABcB81f2cFb1d8022e8B798a8F",
"OptimismPortalProxy": "0xbd36ac8fB65F192dAEbCB2Dca819CB7ea7D60417",
"DisputeGameFactoryProxy": "0x298038f9E37b370d20E58706E8Ac78475b089FB2",
"DelayedWETHProxy": "0x62841F5E03a56f818BC8818c5130757acA2541A7",
"PermissionedDelayedWETHProxy": "0x62841F5E03a56f818BC8818c5130757acA2541A7",
"AnchorStateRegistryProxy": "0x333f8D607B81E880315716A815A9369B33ea6A77",
"AddressManager": "0x82D735Cc1e04fcFef24d0190F11b5253e05562AF",
"L1ERC721BridgeProxy": "0xe081aD91D049e9999d1e7006dbF025b38198B518"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
l2chains = [
{name = "u18-beta-1", chainId = 420110022}
]

fallbackAddressesJsonPath = "src/tasks/sep/051-op-betanet-set-respected-game-type/addresses.json"
templateName = "SetRespectedGameTypeTemplate"

safeAddressString = "ProxyAdminOwner" # We need this on betanet because the ASR checks msg.sender == SystemConfig.guardian() which is the PAO EOA, not the GuardianSafe multisig as on Sepolia.

[gameTypes]
configs = [
{chainId = 420110022, gameType = 0}
]

[stateOverrides]
0xe934Dc97E347C6aCef74364B50125bb8689c40ff = [
{key = "0x0000000000000000000000000000000000000000000000000000000000000005", value = 56}
]
1 change: 1 addition & 0 deletions src/tasks/sep/052-U18-op-betanets/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
TENDERLY_GAS=15000000
Comment thread
Wazabie marked this conversation as resolved.
22 changes: 22 additions & 0 deletions src/tasks/sep/052-U18-op-betanets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# 052-U18-op-betanets
Comment thread
Wazabie marked this conversation as resolved.

Status: [READY TO SIGN]

## Objective

Updates OP Labs Betanets (both Permissioned and Permissionless networks) to U18.

## Simulation & Signing

```bash
cd src/tasks/sep/052-U18-op-betanets

# Testing
just simulate-stack sep 052-U18-op-betanets

# Commands to execute
just --dotenv-path $(pwd)/.env simulate
USE_KEYSTORE=1 just --dotenv-path $(pwd)/.env sign
# or USE_KEYSTORE=1 just sign-stack sep 052-U18-op-betanets
SIGNATURES=0x just execute
```
19 changes: 19 additions & 0 deletions src/tasks/sep/052-U18-op-betanets/VALIDATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## 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.
>
> ### Betanet Proxy Admin Owner (`0xe934Dc97E347C6aCef74364B50125bb8689c40ff`)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

>
> - Domain Hash: `0x07e03428d7125835eca12b6dd1a02903029b456da3a091ecd66fda859fbce61e`
> - Message Hash: `0xea39832549b35e6ff015f3138f1216b7dd1bfea74d4192ebbf5de3d9451114e7`

## Task Calldata

```
0x82ad56cb000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f0a2e224519e876979ea6b2cd15ef5cc3d6703bd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000104cbeda5a700000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000571d97509f51d7911ca51092f51c0a57d591a8f303845751c66672c0b09e68ba7c3024a7543a1a22edaa90d7c2c90ebc8cecee6803f833cc2a644a9f7bba9718c13f622b867c513f3c43f3eb5a0cad17784bd4080000000000000000000000005babf93ac7affeae25dc1a7ad4587fdeebba44c203845751c66672c0b09e68ba7c3024a7543a1a22edaa90d7c2c90ebc8cecee6803f833cc2a644a9f7bba9718c13f622b867c513f3c43f3eb5a0cad17784bd40800000000000000000000000000000000000000000000000000000000
```
Comment thread
Wazabie marked this conversation as resolved.
Comment thread
Wazabie marked this conversation as resolved.
36 changes: 36 additions & 0 deletions src/tasks/sep/052-U18-op-betanets/addresses.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"420110021": {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addresses don't match from https://github.com/ethereum-optimism/devnets/blob/f48b318e8f8ee70bc1b60ce31dd3ad20240f2c1a/betanets/u18-beta/u18-beta-0/chain.yaml — how can we have caught all of these mismatches in CI instead of requiring manual review. Let's aim to shift left here

"ProxyAdmin": "0x5402a671527d2Bbde2C271862FC02B3f39531059",
"ProxyAdminOwner": "0xe934Dc97E347C6aCef74364B50125bb8689c40ff",
"SystemConfigProxy": "0x571d97509f51d7911cA51092F51c0A57d591a8F3",
"L1CrossDomainMessengerProxy": "0xe3FCcA78f39948eD8170fE04698F1e26a2551466",
"L1StandardBridgeProxy": "0x0Bfe4ccb44bd4591BD106345eec8473B4036A976",
"OptimismPortalProxy": "0x03E9Cbd5742D2462C3b6FAD5de0b0F599444d16a",
"DisputeGameFactoryProxy": "0xF97985C58B7E520Bd0215C11BB51Ac46475F0F87",
"DelayedWETHProxy": "0xd2254B347c4A9ce6eF4C245FC83b4F2285e8b212",
"PermissionedDelayedWETHProxy": "0xd2254B347c4A9ce6eF4C245FC83b4F2285e8b212",
"AnchorStateRegistryProxy": "0x3805CB4B2b3f7edBaA2A788b50Dd5264AB0756e3",
"AddressManager": "0xF52FA3816db753E3BF7Db8cd6134258592F0bF51",
"L1ERC721BridgeProxy": "0x7Be332D7b7F7c28dE79cE28b36F17F3C0ad31ce2",
"Proposer": "0x87af2830e8A39a76261f7ed515EE4a3451105561",
"Challenger": "0x839057B2F150b4720d47771B9D9e51D79f3E4B38",
"OptimismMintableERC20FactoryProxy": "0xC09189bC7A60248b625Eca79d4f3446Ca1Bbc64f"
},
"420110022": {
"ProxyAdmin": "0xcd18a0C04286Eba52Bb168Fa1D79133Da4856bEf",
"ProxyAdminOwner": "0xe934Dc97E347C6aCef74364B50125bb8689c40ff",
"SystemConfigProxy": "0x5babF93aC7AFfeaE25dc1a7ad4587fDeEbba44C2",
"L1CrossDomainMessengerProxy": "0xF0e4aAcC6D039C05B827994C3FfBBBcf00085D11",
"L1StandardBridgeProxy": "0x3756BF0380E7fdABcB81f2cFb1d8022e8B798a8F",
"OptimismPortalProxy": "0xbd36ac8fB65F192dAEbCB2Dca819CB7ea7D60417",
"DisputeGameFactoryProxy": "0x298038f9E37b370d20E58706E8Ac78475b089FB2",
"DelayedWETHProxy": "0x62841F5E03a56f818BC8818c5130757acA2541A7",
"PermissionedDelayedWETHProxy": "0x62841F5E03a56f818BC8818c5130757acA2541A7",
"AnchorStateRegistryProxy": "0x333f8D607B81E880315716A815A9369B33ea6A77",
"AddressManager": "0x82D735Cc1e04fcFef24d0190F11b5253e05562AF",
"L1ERC721BridgeProxy": "0xe081aD91D049e9999d1e7006dbF025b38198B518",
"Proposer": "0x39Ff903Ca8a3d759dE9A7502D9C3B5Ef8A8e6670",
"Challenger": "0xd9f48B7D3e1Ff4A1d4877834aaCAC9d1d6230d8E",
"OptimismMintableERC20FactoryProxy": "0xB1453F648E22c4DEB2FdEDA840E5Af42Ef9ea49a"
}
}
41 changes: 41 additions & 0 deletions src/tasks/sep/052-U18-op-betanets/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Betanet on u18
l2chains = [
{name = "u18-beta-0", chainId = 420110021},
{name = "u18-beta-1", chainId = 420110022}
]

# Addresses for this task can be found here: https://github.com/ethereum-optimism/devnets/tree/main/betanets/u18-beta

fallbackAddressesJsonPath = "src/tasks/sep/052-U18-op-betanets/addresses.json"

templateName = "OPCMUpgradeV600"


[[opcmUpgrades]]
chainId = 420110021
# U18 prestates from betanet: https://www.notion.so/oplabs/Betanet-2a9f153ee16280859261e3000d866ee9?source=copy_link#2c5f153ee162805abcc3e949ab6c837e
cannonPrestate = "0x03f833cc2a644a9f7bba9718c13f622b867c513f3c43f3eb5a0cad17784bd408"
cannonKonaPrestate = "0x03845751c66672c0b09e68ba7c3024a7543a1a22edaa90d7c2c90ebc8cecee68"
Comment on lines +16 to +18
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar prestate questions for this file as above

expectedValidationErrors = "OVERRIDES-L1PAOMULTISIG,OVERRIDES-CHALLENGER,SYSCON-130,PLDG-10,CKDG-10"
# OVERRIDES-L1PAOMULTISIG,OVERRIDES-CHALLENGER: these are expected as they are not the standard OP Sepolia ones
# SYSCON-130: this is expected as the SystemConfig proxyAdmin on betanets is not the standard OP Sepolia one
# PLDG-10: this is expected because u18-beta-0 is a Permissioned chain
# CKDG-10: Custom dispute game implementation not found, expected as it's a Permissioned chain with no Permissionless implementation

[[opcmUpgrades]]
chainId = 420110022
# U18 prestates from betanet: https://www.notion.so/oplabs/Betanet-2a9f153ee16280859261e3000d866ee9?source=copy_link#2c5f153ee162805abcc3e949ab6c837e
cannonPrestate = "0x03f833cc2a644a9f7bba9718c13f622b867c513f3c43f3eb5a0cad17784bd408"
cannonKonaPrestate = "0x03845751c66672c0b09e68ba7c3024a7543a1a22edaa90d7c2c90ebc8cecee68"
expectedValidationErrors = "OVERRIDES-L1PAOMULTISIG,OVERRIDES-CHALLENGER,SYSCON-130"
# OVERRIDES-L1PAOMULTISIG,OVERRIDES-CHALLENGER: these are expected as they are not the standard OP Sepolia ones
# SYSCON-130: this is expected as the SystemConfig proxyAdmin on betanets is not the standard OP Sepolia one

[addresses]
OPCM = "0xf0a2e224519e876979ea6b2cd15ef5cc3d6703bd" # v600 OPCM source: https://www.notion.so/oplabs/Upgrade-18-Hub-2a3f153ee1628173bfe4f732657e4f01?source=copy_link#2cef153ee162806482fceb958964651e


[stateOverrides]
0xe934Dc97E347C6aCef74364B50125bb8689c40ff = [
{key = "0x0000000000000000000000000000000000000000000000000000000000000005", value = 57}
]