Skip to content

Commit

Permalink
Sepolia Devnet 0 Fjord upgrade #3 (#209)
Browse files Browse the repository at this point in the history
* feat: Devnet 0 FP upgrade #2

* Sepolia Devnet 0 Fjord upgrade #3

* Update tasks/sep-dev-0/003-fp-fjord/README.md

Co-authored-by: Matt Solomon <matt@mattsolomon.dev>

---------

Co-authored-by: clabby <ben@clab.by>
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
  • Loading branch information
3 people authored Jun 21, 2024
1 parent 6f63211 commit afeed9f
Show file tree
Hide file tree
Showing 4 changed files with 168 additions and 0 deletions.
4 changes: 4 additions & 0 deletions tasks/sep-dev-0/003-fp-fjord/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ETH_RPC_URL="https://ethereum-sepolia.publicnode.com"
SUPERCHAIN_CONFIG_ADDR=0xC2Be75506d5724086DEB7245bd260Cc9753911Be
OWNER_SAFE=0x4377BB0F0103992b31eC12b4d796a8687B8dC8E9
SAFE_NONCE=""
71 changes: 71 additions & 0 deletions tasks/sep-dev-0/003-fp-fjord/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Devnet FP Upgrade - Fjord

Status: [EXECUTED](https://sepolia.etherscan.io/tx/0x7eb73a9e5eaa60aed79c09406fe5d9a890c7b7ca01839cb729e8c29cb700d161)

## Objective

Upgrades the deployed system on `sepolia-devnet-0` to use the absolute prestate for the `op-program/v1.1.0` release.
The op-program release is fjord compatible.

The new dispute game implementation have been deployed against the latest deploy-config changes. This includes changes to the:
- absolute prestate
- clock extension period
- max clock duration

See https://github.com/ethereum-optimism/optimism/pull/10639 for the details.


## Pre-deployments

The `FaultDisputeGame` has been deployed at [`0x3CdB0e38bC990c07eADA1376248BB2a405Ae3B9B`](https://sepolia.etherscan.io/address/0x3CdB0e38bC990c07eADA1376248BB2a405Ae3B9B).

The `PermissionedDisputeGame` has been deployed at [`0xc06B6A93c4b8ef23e1FB535BB2dd80239ca433AC`](https://sepolia.etherscan.io/address/0xc06B6A93c4b8ef23e1FB535BB2dd80239ca433AC).

Both contracts have been configured using the aforementioned deploy-config.


## State Validation

Please see the instructions for [validation](./VALIDATION.md).


## Execution

# Reset DisputeGameFactory game implementations
Resets the FaultDisputeGame and PermissionedDisputeGame implementations in the DGF

The batch will be executed on chain ID `11155111`, and contains `2` transactions.

## Tx #1: Reset the FaultDisputeGame implementation in DGF


**Function Signature:** `setImplementation(uint32,address)`

**To:** `0x2419423C72998eb1c6c15A235de2f112f8E38efF`

**Value:** `0 WEI`

**Raw Input Data:** `0x14f6b1a300000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cdb0e38bc990c07eada1376248bb2a405ae3b9b`

### Inputs
**_gameType:** `0`

**_impl:** `0x3CdB0e38bC990c07eADA1376248BB2a405Ae3B9B`


## Tx #2: Reset the PermissionedDisputeGame implementation in DGF


**Function Signature:** `setImplementation(uint32,address)`

**To:** `0x2419423C72998eb1c6c15A235de2f112f8E38efF`

**Value:** `0 WEI`

**Raw Input Data:** `0x14f6b1a30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c06b6a93c4b8ef23e1fb535bb2dd80239ca433ac`

### Inputs
**_gameType:** `1`

**_impl:** `0xc06B6A93c4b8ef23e1FB535BB2dd80239ca433AC`

26 changes: 26 additions & 0 deletions tasks/sep-dev-0/003-fp-fjord/VALIDATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Validation

This document can be used to validate the state diff resulting from the execution of the upgrade
transaction.

For each contract listed in the state diff, please verify that no contracts or state changes shown in the Tenderly diff are missing from this document. Additionally, please verify that for each contract:

- The following state changes (and none others) are made to that contract. This validates that no unexpected state changes occur.
- All addresses (in section headers and storage values) match the provided name, using the Etherscan and Superchain Registry links provided. This validates the bytecode deployed at the addresses contains the correct logic.
- All key values match the semantic meaning provided, which can be validated using the storage layout links provided.

## State Changes

The only state changes should be made to the `DisputeGameFactoryProxy` game type implementations.

### `0x2419423c72998eb1c6c15a235de2f112f8e38eff` (`DisputeGameFactoryProxy`)

- **Key**: `0x4d5a9bd2e41301728d41c8e705190becb4e74abe869f75bdb405b63716a35f9e`
**Before**: `0x0000000000000000000000007f70047613a6f012a65347fd40c135cc9db5ad09`
**After**: `0x000000000000000000000000c06b6a93c4b8ef23e1fb535bb2dd80239ca433ac`
**Meaning**: Updates the PERMISSIONED_CANNON game type implementation. Verify that the new implementation is set using `cast call 0x2419423c72998eb1c6c15a235de2f112f8e38eff gameImpls(uint32)(address) 1`.

- **Key**: `0xffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b`
**Before**: `0x000000000000000000000000bb98224c58250577a94624a419697df1be128568`
**After**: `0x0000000000000000000000003cdb0e38bc990c07eada1376248bb2a405ae3b9b`
**Meaning**: Updates the CANNON game type implementation. Verify that the new implementation is set using `cast call 0x2419423c72998eb1c6c15a235de2f112f8e38eff gameImpls(uint32)(address) 0`.
67 changes: 67 additions & 0 deletions tasks/sep-dev-0/003-fp-fjord/input.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
{
"chainId": 11155111,
"metadata": {
"name": "Reset DisputeGameFactory game implementations",
"description": "Resets the FaultDisputeGame and PermissionedDisputeGame implementations in the DGF"
},
"transactions": [
{
"metadata": {
"name": "Reset the FaultDisputeGame implementation in DGF",
"description": ""
},
"to": "0x2419423c72998eb1c6c15a235de2f112f8e38eff",
"value": "0x0",
"data": "0x14f6b1a300000000000000000000000000000000000000000000000000000000000000000000000000000000000000003cdb0e38bc990c07eada1376248bb2a405ae3b9b",
"contractMethod": {
"type": "function",
"name": "setImplementation",
"inputs": [
{
"name": "_gameType",
"type": "uint32"
},
{
"name": "_impl",
"type": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
"contractInputsValues": {
"_gameType": "0",
"_impl": "0x3CdB0e38bC990c07eADA1376248BB2a405Ae3B9B"
}
},
{
"metadata": {
"name": "Reset the PermissionedDisputeGame implementation in DGF",
"description": ""
},
"to": "0x2419423c72998eb1c6c15a235de2f112f8e38eff",
"value": "0x0",
"data": "0x14f6b1a30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c06b6a93c4b8ef23e1fb535bb2dd80239ca433ac",
"contractMethod": {
"type": "function",
"name": "setImplementation",
"inputs": [
{
"name": "_gameType",
"type": "uint32"
},
{
"name": "_impl",
"type": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
"contractInputsValues": {
"_gameType": "1",
"_impl": "0xc06B6A93c4b8ef23e1FB535BB2dd80239ca433AC"
}
}
]
}

0 comments on commit afeed9f

Please sign in to comment.