Skip to content

conduit: upgrade 4 playbook#84

Closed
mds1 wants to merge 4 commits intomainfrom
conduit/upgrade-4-playbook
Closed

conduit: upgrade 4 playbook#84
mds1 wants to merge 4 commits intomainfrom
conduit/upgrade-4-playbook

Conversation

@mds1
Copy link
Copy Markdown
Contributor

@mds1 mds1 commented Feb 23, 2024

This is the playbook for executing Upgrade #4 on Conduit chains controlled by 0x4a4962275DF8C60a80d3a25faEc5AA7De116A746 (Mode, Lyra, Orderly, PGN).

This playbook is based on the OP Mainnet playbook for this upgrade which can be found here: https://github.com/ethereum-optimism/superchain-ops/tree/main/tasks/eth/004-add-superchainConfig

This PR is currently a draft until:

  • Mainnet contracts for Upgrade 4 are deployed for these four chains
  • The input-*.json files can be generated using those mainnet deploys.

Until then, a sample input-mode.json file is added which will use the OP Mainnet implementations as an example (these contain chain-specific immutables, so cannot be used in production). To test this, run SIMULATE_WITHOUT_LEDGER=1 just simulate mode and view the Tenderly simulation with the URL logged to the console.

We'll also want to support, either in this playbook or a separate one, the corresponding testnets for each

Copy link
Copy Markdown
Contributor

@zchn zchn Feb 23, 2024

Choose a reason for hiding this comment

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

Nit: I think the folder convention is tasks/[network]/[ceremony], so this should live under tasks/eth/005-upgrade-conduit/

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.

Similarly conduit and other RaaS providers will have multiple chains, so maybe the task should be identified by chain-name. Maybe pre/appended with the RaaS provider?

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.

Similarly conduit and other RaaS providers will have multiple chains, so maybe the task should be identified by chain-name. Maybe pre/appended with the RaaS provider?

I'm not against this idea but that would be a change of the naming convention here so I'd defer to @maurelian, @mds1 and @sbvegan to agree on, but I prefer to separate that convo out of this PR to keep the scope of this PR tight.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks for raising. I've moved this convo into https://www.notion.so/oplabs/Cleaning-up-superchain-ops-fd483d399b6b4775952f2a0eb7c9cd0a?pvs=4#76bc2bec95f4486ebfcd25dedb0ecdad, that way we can focus this PR on the playbook itself and we can always move things around before/after merge based on the decision there

@mds1
Copy link
Copy Markdown
Contributor Author

mds1 commented Apr 10, 2024

Closing as stale, we'll open a new PR to combine upgrades 4 and 6 into a single upgrade

@mds1 mds1 closed this Apr 10, 2024
github-merge-queue Bot pushed a commit that referenced this pull request Dec 3, 2025
* test: update configs with soneium (#81)

* fix: forge fmt (#84)

* fix: build error (#88)

* fix: warning

* fix: wrong sepolia examples tasks numeration

---------

Co-authored-by: Disco <131301107+0xDiscotech@users.noreply.github.com>
github-merge-queue Bot pushed a commit that referenced this pull request Dec 18, 2025
* test: update configs with soneium (#81)

* fix: forge fmt (#84)

* fix: build error (#88)

* fix: warning

* chore: sync prod configs (#94)

* feat: base as executed (#1312)

* feat:add worldchain sepolia key handback over task (#1284)

* feat:add worldchain sepolia key handback over task

* clean up worldchain key handback over task

* changed worldchain task number

* fix:delete task 39

replaced by task 46

* fix:update nonces

* Update src/tasks/sep/046-worldchain-l2pao-key-handback-over/README.md

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

* fix:updated message hashes

changed after adding new nonces

* Update README.md

* fix:clean up text in sepolia validation.md

* Update src/tasks/sep/046-worldchain-l2pao-key-handback-over/VALIDATION.md

Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>

* ci: bump timeout because stacked sims are slow

* ci: this really shouldn’t take 90m, testing…

* Update config.toml

* Update config.yml

* feat: nonce bump

* fix: remove noGasMetering modifier which causes stacked sims to hang

I am unsure exactly why it hangs. This did not used to hang, but now it does.
Still need to better understand the root cause here

---------

Co-authored-by: Wazabie <48911235+Wazabie@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
Co-authored-by: JosepBove <josep@oplabs.co>

* Safer safes migrate to LivenessModule2 template (#1298)

* WIP on jb/safer-safes

* fix: typos

* feat: regression tests and finish template

* fmt

* fix: block

* adding solutions to sepolia task dir (#1306)

* feat: set worldchain l2pao key handback as executed on sepolia (#1315)

* test: update configs with soneium (#81) (#1309)

* test: update configs with soneium (#81)

* fix: forge fmt (#84)

* fix: build error (#88)

* fix: warning

* fix: wrong sepolia examples tasks numeration

---------

Co-authored-by: Disco <131301107+0xDiscotech@users.noreply.github.com>

---------

Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: Zak Ayesh <44901995+ZakAyesh@users.noreply.github.com>
Co-authored-by: Wazabie <48911235+Wazabie@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
Co-authored-by: soyboy <85043086+sbvegan@users.noreply.github.com>
Co-authored-by: Disco <131301107+0xDiscotech@users.noreply.github.com>

* chore: update tasks config values

* fix: remove wrong config

* feat: add production task (#98)

* test: use fusaka block numbers and update regression tests

* fix: sep task order on name

* fix: integration and stack simulate tests (#100)

* fix: update message hashes

* fix: reduce upgrade gas limit (#102)

* chore: update gas limit on examples as well

* fix: sep council msg hash based on stacked simulation (#103)

* fix: add nonce overrides in sepolia task, fix hash in eth task (#106)

* fix: remove pao nonce update on 048 and msg hashes (#107)

---------

Co-authored-by: Chiin <77933451+0xChin@users.noreply.github.com>
Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: Zak Ayesh <44901995+ZakAyesh@users.noreply.github.com>
Co-authored-by: Wazabie <48911235+Wazabie@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
Co-authored-by: soyboy <85043086+sbvegan@users.noreply.github.com>
github-merge-queue Bot pushed a commit that referenced this pull request Jan 16, 2026
* test: add post task assertions (#111)

* test: update configs with soneium (#81)

* fix: forge fmt (#84)

* test: add post task assertions

* style: formatting

* test: receive assertions vars from env

* refactor: remove trycatch usage

* fix: build error (#88)

* fix: warning

* chore: sync prod configs (#94)

* feat: base as executed (#1312)

* feat:add worldchain sepolia key handback over task (#1284)

* feat:add worldchain sepolia key handback over task

* clean up worldchain key handback over task

* changed worldchain task number

* fix:delete task 39

replaced by task 46

* fix:update nonces

* Update src/tasks/sep/046-worldchain-l2pao-key-handback-over/README.md

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

* fix:updated message hashes

changed after adding new nonces

* Update README.md

* fix:clean up text in sepolia validation.md

* Update src/tasks/sep/046-worldchain-l2pao-key-handback-over/VALIDATION.md

Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>

* ci: bump timeout because stacked sims are slow

* ci: this really shouldn’t take 90m, testing…

* Update config.toml

* Update config.yml

* feat: nonce bump

* fix: remove noGasMetering modifier which causes stacked sims to hang

I am unsure exactly why it hangs. This did not used to hang, but now it does.
Still need to better understand the root cause here

---------

Co-authored-by: Wazabie <48911235+Wazabie@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
Co-authored-by: JosepBove <josep@oplabs.co>

* Safer safes migrate to LivenessModule2 template (#1298)

* WIP on jb/safer-safes

* fix: typos

* feat: regression tests and finish template

* fmt

* fix: block

* adding solutions to sepolia task dir (#1306)

* feat: set worldchain l2pao key handback as executed on sepolia (#1315)

* test: update configs with soneium (#81) (#1309)

* test: update configs with soneium (#81)

* fix: forge fmt (#84)

* fix: build error (#88)

* fix: warning

* fix: wrong sepolia examples tasks numeration

---------

Co-authored-by: Disco <131301107+0xDiscotech@users.noreply.github.com>

---------

Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: Zak Ayesh <44901995+ZakAyesh@users.noreply.github.com>
Co-authored-by: Wazabie <48911235+Wazabie@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
Co-authored-by: soyboy <85043086+sbvegan@users.noreply.github.com>
Co-authored-by: Disco <131301107+0xDiscotech@users.noreply.github.com>

* refactor: consistency in integration tests structure

* test: remove min withdrawal check

* test: add post task assertions example command

* test: expect l1withdrawer address on expect emit

* refactor: change hardcoded variables to environment

* refactor: move reused code to internal integration base functions

* chore: update tasks config values

* fix: remove wrong config

* feat: add production task (#98)

* test: add L2ToL1 message relaying

* test: use fusaka block numbers and update regression tests

* fix: sep task order on name

* fix: integration and stack simulate tests (#100)

* test: update tests

* test: use deployed contracts upgrader

* chore: remove unused vars

* chore: remove unused vars

* fix: update message hashes

* fix: reduce upgrade gas limit (#102)

* chore: update gas limit on examples as well

* chore: improve L1 RPC example

* test: add L1ToL2 message relaying

* fix: sep council msg hash based on stacked simulation (#103)

* fix: recipient in OP after FeesDepositor deposit

* fix: add nonce overrides in sepolia task, fix hash in eth task (#106)

* fix: remove pao nonce update on 048 and msg hashes (#107)

* chore: increase gas cost on message relaying

* fix: wrong address for TransactionDeposited event

---------

Co-authored-by: Disco <131301107+0xDiscotech@users.noreply.github.com>
Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: Zak Ayesh <44901995+ZakAyesh@users.noreply.github.com>
Co-authored-by: Wazabie <48911235+Wazabie@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
Co-authored-by: soyboy <85043086+sbvegan@users.noreply.github.com>

* fix: op fork id

* refactor: improve assertions (#119)

* fix: query l1 withdrawer instead of calculating it

* fix: remove mainnet from op url name since it can be testnet as well

* refactor: improve withdrawal assertions using below and above threshold

* fix: receive op cdm as input instead of hardcoding mainnet

* fix: rounding error on assertion

* chore: replace mainnet hardcoded values for env inputs

* chore: create strcuts to organize inputs and remove some mainnet defaults

* chore: polish

* chore: sync assertions (#120)

* ci: update mention from evm-safety-team to security-oncall (#1328)

* Update U18 betanet tasks addresses (#1329)

* Update U18 betanet tasks addresses

* Update addresses and hashes

* Update U18 beta task status (#1331)

Update U18 beta task status

* ci/fix: add lint rule to detect non-alphabetical struct field ordering in TOML/JSON parsing (#1335)

* ci: add script and check for proper struct ordering

* fix: struct field ordering in OPCMUpgradeV600

* test: fix regression test, calldata changed

* chore: revert chmod change

---------

Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
Co-authored-by: Wazabie <48911235+Wazabie@users.noreply.github.com>

* Revert "chore: sync assertions (#120)"

This reverts commit db61257.

* Merge pull request #124 from defi-wonderland/chore/improve-example-args

chore: improve example args

* Merge pull request #129 from defi-wonderland/fix/address-comments

fix: address comments

---------

Co-authored-by: Disco <131301107+0xDiscotech@users.noreply.github.com>
Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: Zak Ayesh <44901995+ZakAyesh@users.noreply.github.com>
Co-authored-by: Wazabie <48911235+Wazabie@users.noreply.github.com>
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
Co-authored-by: soyboy <85043086+sbvegan@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants