Skip to content

Conversation

@0xniha
Copy link

@0xniha 0xniha commented Nov 12, 2025

Description

This PR adds Rehearsal 4: Governor Upgrade, enabling the Security Council to practice upgrading the Optimism Governor contract through an L1 deposit.

Task Implementation

  • Task: Complete rehearsal task using the L1PortalExecuteL2Call template.
  • Implements governor upgrade execution via L1 deposit transaction.

Documentation

  • Security Council Workflow: Step-by-step guide for Security Council members to execute the rehearsal.
  • L2 Simulation Guide: Detailed walkthrough for manually simulating the L2 upgrade execution in Tenderly.

    State Override Required: The simulation requires setting OptimismGovernorProxy admin to L2ProxyAdmin via state override, because assumes this ownership to perform the upgrade.

Additional Changes

  • Fixed incorrect file paths in documentation references in README.md.

* fix: readme file paths

* feat: add rehearsal 4 noop upgrade & 08-22 governor upgrade task

* fix: replaced mocked upgrade

* feat: add gov upgrade simulation docs
@0xniha 0xniha requested review from a team as code owners November 12, 2025 13:19
@0xniha 0xniha requested a review from Ethnical November 12, 2025 13:19
just --dotenv-path $(pwd)/.env execute
```

For posterity, you should make a `README.md` file in the tasks directory that contains a link to the executed transaction e.g. see [here](src/tasks/<network>/rehearsals/<rehearsal-task-name>/README.md).
Copy link
Contributor

Choose a reason for hiding this comment

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

When reviewing Superchain Ops tasks and templates, look for places that the tasks/templates can be made more robust, safer, etc. The documentation link src/tasks/<network>/rehearsals/<rehearsal-task-name>/README.md uses placeholder text instead of an actual file path with proper extension. This makes the documentation less robust as users cannot follow the link to see an actual example. To make this more robust, either provide a real example link or clarify that this is a template path that should be replaced with actual values.

Suggested change
For posterity, you should make a `README.md` file in the tasks directory that contains a link to the executed transaction e.g. see [here](src/tasks/<network>/rehearsals/<rehearsal-task-name>/README.md).
For posterity, you should make a `README.md` file in the tasks directory that contains a link to the executed transaction e.g. see [here](https://github.com/ethereum-optimism/superchain-ops/blob/main/src/tasks/op-mainnet/rehearsals/2023-10-25-ecotone-upgrade/README.md).

Spotted by Graphite Agent (based on custom rule: Superchain Ops task/template review)

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.


[addresses]
ProxyAdminOwner = "0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A"
OptimismPortal = "0xbEb5Fc579115071764c7423A4f12eDde41f106Ed" No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

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

When reviewing Superchain Ops tasks and templates, look for places that the tasks/templates can be made more robust, safer, etc. The configuration file is missing a newline at the end of the file (indicated by the '' character). This can cause issues with some tools and version control systems. To make this more robust, ensure the file ends with a proper newline character.

Spotted by Graphite Agent (based on custom rule: Superchain Ops task/template review)

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

1. Simulate the task that executes the governor upgrade via L1 deposit transaction:

```bash
cd src/tasks/eth/rehearsals/2025-11-07-R4-governor-upgrade
Copy link
Contributor

Choose a reason for hiding this comment

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

The directory path in the simulation guide contains a typo. The path should be 2025-11-07-R4-governance-upgrade (matching the actual directory name created in the PR) instead of 2025-11-07-R4-governor-upgrade. This inconsistency would cause the command to fail when users attempt to follow the simulation instructions.

Suggested change
cd src/tasks/eth/rehearsals/2025-11-07-R4-governor-upgrade
cd src/tasks/eth/rehearsals/2025-11-07-R4-governance-upgrade

Spotted by Graphite Agent

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

1. [rehearsal-1-welcome](./rehearsal-1-welcome/README.md)
2. [rehearsal-2-remove-signer](./rehearsal-2-remove-signer/README.md)
3. [rehearsal-3-nested-upgrade](./rehearsal-3-jointly-upgrade/README.md)
4. [rehearsal-4-noop-upgrade](./rehearsal-4-noop-upgrade/README.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

The directory name rehearsal-4-noop-upgrade doesn't match the title in the README which describes this as a "Governor Upgrade" rehearsal. For consistency, consider renaming the directory to rehearsal-4-governor-upgrade to accurately reflect the purpose of this rehearsal task.

Suggested change
4. [rehearsal-4-noop-upgrade](./rehearsal-4-noop-upgrade/README.md)
4. [rehearsal-4-governor-upgrade](./rehearsal-4-governor-upgrade/README.md)

Spotted by Graphite Agent

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

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.

1 participant