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
19 changes: 19 additions & 0 deletions sepolia/2025-11-07-upgrade-fault-proofs/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
OP_COMMIT=d09c836f818c73ae139f60b717654c4e53712743
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Will make a template after this is approved

Copy link
Contributor

Choose a reason for hiding this comment

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

Confirmed this OP commit is correct and associated with op-contracts/v5.0.0-rc.2

BASE_CONTRACTS_COMMIT=51788f920e368e72c63cef24a5e1ea0f6562d9a5

ABSOLUTE_PRESTATE=0x03caa1871bb9fe7f9b11217c245c16e4ded33367df5b3ccb2c6d0a847a217d1b
Copy link
Contributor Author

Choose a reason for hiding this comment

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


RECORD_STATE_DIFF=true

# Sepolia Config
SYSTEM_CONFIG=0xf272670eb55e895584501d564AfEB048bEd26194
OP_CONTRACT_MANAGER=0xc69e4c24db479191676611a25d977203c3bdca62
PROXY_ADMIN=0x0389E59Aa0a41E4A413Ae70f0008e76CAA34b1F3
L1_PROXY_ADMIN_OWNER=0x0fe884546476dDd290eC46318785046ef68a0BA9
CHALLENGER=0x8b8c52B04A38f10515C52670fcb23f3C4C44474F

OWNER_SAFE=0x0fe884546476dDd290eC46318785046ef68a0BA9
CB_SIGNER_SAFE_ADDR=0x646132A1667ca7aD00d36616AFBA1A28116C770A
CB_NESTED_SAFE_ADDR=0x5dfEB066334B67355A15dc9b67317fD2a2e1f77f
CB_SC_SAFE_ADDR=0x6AF0674791925f767060Dd52f7fB20984E8639d8
OP_SIGNER_SAFE_ADDR=0x6AF0674791925f767060Dd52f7fB20984E8639d8
48 changes: 48 additions & 0 deletions sepolia/2025-11-07-upgrade-fault-proofs/FACILITATORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#### Execute the transaction

1. IMPORTANT: Ensure op-challenger has been updated before executing.
1. Collect outputs from all participating signers.
1. Concatenate all signatures and export it as the `SIGNATURES`
environment variable, i.e. `export
SIGNATURES="[SIGNATURE1][SIGNATURE2]..."`.
1. Run the `make execute` or `make approve` command as described below to execute the transaction.

For example, if the quorum is 3 and you get the following outputs:

```shell
Data: 0xDEADBEEF
Signer: 0xC0FFEE01
Signature: AAAA
```

```shell
Data: 0xDEADBEEF
Signer: 0xC0FFEE02
Signature: BBBB
```

```shell
Data: 0xDEADBEEF
Signer: 0xC0FFEE03
Signature: CCCC
```

Coinbase facilitator:

```bash
SIGNATURES=AAAABBBBCCCC make approve-cb
```

```bash
SIGNATURES=AAAABBBBCCCC make approve-cb-sc
```

```bash
SIGNATURES=AAAABBBBCCCC make approve-op
```

Once the signatures have been submitted approving the transaction for all nested Safes run:

```bash
make execute
```
80 changes: 80 additions & 0 deletions sepolia/2025-11-07-upgrade-fault-proofs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
include ../../Makefile
include ../../Multisig.mk

include ../.env
include .env

ifndef LEDGER_ACCOUNT
override LEDGER_ACCOUNT = 1
endif

# Sepolia Commands

# OWNER_SAFE/
# ├── CB_SIGNER_SAFE_ADDR/
# │ ├── CB_NESTED_SAFE_ADDR/
# │ │ └── Signers
# │ └── CB_SC_SAFE_ADDR/
# │ └── Signers
# └── OP_SIGNER_SAFE_ADDR/
# └── Signers

RPC_URL = $(L1_RPC_URL)
SCRIPT_NAME = UpgradeWithOpSmartContractManager

.PHONY: gen-validation-cb
gen-validation-cb: checkout-signer-tool run-script-cb

.PHONY: run-script-cb
run-script-cb:
cd $(SIGNER_TOOL_PATH); \
npm ci; \
bun run scripts/genValidationFile.ts --rpc-url $(RPC_URL) \
--workdir .. --forge-cmd 'forge script --rpc-url $(RPC_URL) \
$(SCRIPT_NAME) --sig "sign(address[])" "[$(CB_NESTED_SAFE_ADDR), $(CB_SIGNER_SAFE_ADDR)]" --sender 0x7f10098bd53519c739ca8a404afe127647d94774' --out ../validations/cb-signer.json;


.PHONY: gen-validation-cb-sc
gen-validation-cb-sc: checkout-signer-tool run-script-cb-sc

.PHONY: run-script-cb-sc
run-script-cb-sc:
cd $(SIGNER_TOOL_PATH); \
npm ci; \
bun run scripts/genValidationFile.ts --rpc-url $(RPC_URL) \
--workdir .. --forge-cmd 'forge script --rpc-url $(RPC_URL) \
$(SCRIPT_NAME) --sig "sign(address[])" "[$(CB_SC_SAFE_ADDR), $(CB_SIGNER_SAFE_ADDR)]" --sender 0x7f10098bd53519c739ca8a404afe127647d94774' --out ../validations/cb-sc-signer.json;

.PHONY: gen-validation-op
gen-validation-op: checkout-signer-tool run-script-op

.PHONY: run-script-op
run-script-op:
cd $(SIGNER_TOOL_PATH); \
npm ci; \
bun run scripts/genValidationFile.ts --rpc-url $(RPC_URL) \
--workdir .. --forge-cmd 'forge script --rpc-url $(RPC_URL) \
$(SCRIPT_NAME) --sig "sign(address[])" "[$(OP_SIGNER_SAFE_ADDR)]" --sender 0x0CF2F86C3338993ce10F74d6f4B095712c7efe26' --out ../validations/op-signer.json;


# CB
.PHONY: approve-cb
approve-cb:
$(call MULTISIG_APPROVE,$(CB_NESTED_SAFE_ADDR) $(CB_SIGNER_SAFE_ADDR),$(SIGNATURES))

.PHONY: approve-cb-sc
approve-cb-sc:
$(call MULTISIG_APPROVE,$(CB_SC_SAFE_ADDR) $(CB_SIGNER_SAFE_ADDR),$(SIGNATURES))

.PHONY: approve-cb-coordinator
approve-cb-coordinator:
$(call MULTISIG_APPROVE,$(CB_SIGNER_SAFE_ADDR),0x)

.PHONY: approve-op
approve-op:
$(call MULTISIG_APPROVE,$(OP_SIGNER_SAFE_ADDR),$(SIGNATURES))

# Execute
.PHONY: execute
execute:
$(call MULTISIG_EXECUTE,0x)
55 changes: 55 additions & 0 deletions sepolia/2025-11-07-upgrade-fault-proofs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# U17 Jovian Upgrade

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

## Description

The Jovian hardfork is a proposed network upgrade for OP Stack chains, which brings several improvements to the way rollup fees are calculated as well as performing a maintenance update to the fault proof virtual machine. [More Details](https://docs.optimism.io/notices/upgrade-17).

This script executes the `upgrade` function of the OP Contracts Manager to upgrade all relevant contracts.

## Procedure

## Install dependencies

### 1. Update foundry

```bash
foundryup
```

### 2. Install Node.js if needed

First, check if you have node installed

```bash
node --version
```

If you see a version output from the above command, you can move on. Otherwise, install node

```bash
brew install node
```

## Approving the Update transaction

### 1. Update repo:

```bash
cd contract-deployments
git pull
```

### 2. Run the signing tool (NOTE: do not enter the task directory. Run this command from the project's root).

```bash
make sign-task
```

### 3. Open the UI at [http://localhost:3000](http://localhost:3000)

Be sure to select the correct task user from the list of available users to sign.
After completion, the signer tool can be closed by using Ctrl + c

### 4. Send signature to facilitator
20 changes: 20 additions & 0 deletions sepolia/2025-11-07-upgrade-fault-proofs/foundry.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[profile.default]
src = 'src'
out = 'out'
libs = ['lib']
broadcast = 'records'
fs_permissions = [{ access = "read-write", path = "./" }]
optimizer = true
optimizer_runs = 200
via-ir = false
remappings = [
'@eth-optimism-bedrock/=lib/optimism/packages/contracts-bedrock/',
'@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts',
'@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts',
'@rari-capital/solmate/=lib/solmate/',
'@base-contracts/=lib/base-contracts',
'solady/=lib/solady/src/',
'@lib-keccak/=lib/lib-keccak/contracts/lib',
]

# See more config options https://github.com/foundry-rs/foundry/tree/master/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
{
"transactions": [
{
"hash": "0xa4724b8bc774d8be3ee5c24b0ac471ed6c71535c6f8ec14b6b3ae01056eb1a92",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0x6af0674791925f767060dd52f7fb20984e8639d8",
"function": "execTransaction(address,uint256,bytes,uint8,uint256,uint256,uint256,address,address,bytes)",
"arguments": [
"0xA8B8CA1d6F0F5Ce63dCEA9121A01b302c5801303",
"0",
"0x82ad56cb0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000fe884546476ddd290ec46318785046ef68a0ba9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024d4d9bdcd41a6d7fbb33919d08a40b81927f228de3011cca9ece4c32b179f8e4711572b5a00000000000000000000000000000000000000000000000000000000",
"1",
"0",
"0",
"0",
"0x0000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000",
"0x8b6972507570fed878d8f95e6cbeb6325bf157c852dd041b996c6ad69dd3ee4416df65e7db3a0bf74d042a302f02ff621156dd5e246eb98c80721174b3a01ed51b"
],
"transaction": {
"from": "0x7f10098bd53519c739ca8a404afe127647d94774",
"to": "0x6af0674791925f767060dd52f7fb20984e8639d8",
"gas": "0x1ea78",
"value": "0x0",
"input": "0x6a761202000000000000000000000000a8b8ca1d6f0f5ce63dcea9121a01b302c58013030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000012482ad56cb0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000fe884546476ddd290ec46318785046ef68a0ba9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024d4d9bdcd41a6d7fbb33919d08a40b81927f228de3011cca9ece4c32b179f8e4711572b5a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000418b6972507570fed878d8f95e6cbeb6325bf157c852dd041b996c6ad69dd3ee4416df65e7db3a0bf74d042a302f02ff621156dd5e246eb98c80721174b3a01ed51b00000000000000000000000000000000000000000000000000000000000000",
"nonce": "0x7",
"chainId": "0xaa36a7"
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0xc5306d",
"logs": [
{
"address": "0x0fe884546476ddd290ec46318785046ef68a0ba9",
"topics": [
"0xf2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c",
"0x41a6d7fbb33919d08a40b81927f228de3011cca9ece4c32b179f8e4711572b5a",
"0x0000000000000000000000006af0674791925f767060dd52f7fb20984e8639d8"
],
"data": "0x",
"blockHash": "0x0275e064bcf51f06eb06ba4c98c1d047482b2786c34da27ea0154eeb7fb70176",
"blockNumber": "0x935533",
"blockTimestamp": "0x691c7e98",
"transactionHash": "0xa4724b8bc774d8be3ee5c24b0ac471ed6c71535c6f8ec14b6b3ae01056eb1a92",
"transactionIndex": "0x41",
"logIndex": "0xfc",
"removed": false
},
{
"address": "0x6af0674791925f767060dd52f7fb20984e8639d8",
"topics": [
"0x442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e"
],
"data": "0x8524b53b3070cc94d521fe0eb3d64e85c60073f292a454fcef114c9b84a1ade20000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x0275e064bcf51f06eb06ba4c98c1d047482b2786c34da27ea0154eeb7fb70176",
"blockNumber": "0x935533",
"blockTimestamp": "0x691c7e98",
"transactionHash": "0xa4724b8bc774d8be3ee5c24b0ac471ed6c71535c6f8ec14b6b3ae01056eb1a92",
"transactionIndex": "0x41",
"logIndex": "0xfd",
"removed": false
}
],
"logsBloom": "0x00000000400000040000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000100000000000000800000000000000000000000000000000000000000000000000000400000000000000000000400000000000000000000008000000000000000000000000000008000000200000000800000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014020000000000000000000000100000000008000000",
"type": "0x2",
"transactionHash": "0xa4724b8bc774d8be3ee5c24b0ac471ed6c71535c6f8ec14b6b3ae01056eb1a92",
"transactionIndex": "0x41",
"blockHash": "0x0275e064bcf51f06eb06ba4c98c1d047482b2786c34da27ea0154eeb7fb70176",
"blockNumber": "0x935533",
"gasUsed": "0x16318",
"effectiveGasPrice": "0xf4249",
"from": "0x7f10098bd53519c739ca8a404afe127647d94774",
"to": "0x6af0674791925f767060dd52f7fb20984e8639d8",
"contractAddress": null
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1763475097893,
"chain": 11155111,
"commit": "58a1ca7"
}
Loading
Loading