Skip to content

Conversation

@davidtaikocha
Copy link
Collaborator

@davidtaikocha davidtaikocha commented Nov 20, 2025

  • Added L1 Shasta deployment script script/layer1/mainnet/DeployShasta.s.sol to deploy a new MainnetInbox, a new SignalService implementation + SignalServiceForkRouter implementation, and a PreconfWhitelist implementation.
  • Added L2 Shasta deployment script script/layer2/DeployShasta.s.sol to deploy a new BondManager-backed Anchor implementation and wrap it with an AnchorForkRouter implementation, plus a new SignalService implementation + SignalServiceForkRouter implementation.
  • Added Proposal 0006 artifacts: script/layer1/proposals/Proposal0006.s.sol and script/layer1/proposals/Proposal0006.md documenting the Shasta fork upgrade plan and placeholder addresses to be filled post-deploy.

TODO

Run L1 / L2 Shasta deployment scripts after the audit, then update the new implementation addresses in script/layer1/proposals/Proposal0006.s.sol, and generate Proposal0006.action.md.

@davidtaikocha davidtaikocha marked this pull request as ready for review November 21, 2025 05:16
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@davidtaikocha davidtaikocha changed the title feat(protocol): introduce DAO proposal 6 for Shasta fork feat(protocol): introduce DAO proposal 6 and 7 for Shasta fork Nov 25, 2025
@dantaik dantaik requested a review from AnshuJalan as a code owner November 25, 2025 15:47
function buildL1Actions() internal view override returns (Controller.Action[] memory actions) {
actions = new Controller.Action[](2);

actions[0] = buildUpgradeAction(L1.SIGNAL_SERVICE, ForkRouter(L1.SIGNAL_SERVICE).newFork());
Copy link
Member

Choose a reason for hiding this comment

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

I remember this will not work if we run P=0007 pnpm proposal:dryrun:l1 but maybe I'm wrong.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

let me give a try to verify.

Copy link
Collaborator Author

@davidtaikocha davidtaikocha Nov 25, 2025

Choose a reason for hiding this comment

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

Just gave this a try locally:

    function buildL1Actions() internal view override returns (Controller.Action[] memory actions) {
        actions = new Controller.Action[](1);

        actions[0] = buildUpgradeAction(L1.INBOX, ForkRouter(payable(L1.INBOX)).newFork());
    }

since L1.SIGNAL_SERVICE is not using SignalServiceForkRouter yet, looks like it works:

Traces:
  [1130069] → new Proposal0007@0x9f7cF1d1F558E57ef88a59ac3D47214eF25B6A06
    └─ ← [Return] 5534 bytes of code

  [42671] Proposal0007::run()
    ├─ [0] VM::envString("MODE") [staticcall]
    │   └─ ← [Return] <env var value>
    ├─ [0] VM::startBroadcast()
    │   └─ ← [Return]
    ├─ [5126] 0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a::newFork() [staticcall]
    │   ├─ [237] 0xbB1f830636e1A017b81C3E38b7f6219344149Eb7::newFork() [delegatecall]
    │   │   └─ ← [Return] 0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8
    │   └─ ← [Return] 0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8
    ├─ [24684] 0x75Ba76403b13b26AD1beC70D6eE937314eeaCD0a::dryrun(0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000006a9ab27c7e2255df1815e6cc0168d7755feb19a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe6000000000000000000000000af95c030c7b8994ba9213b6a3964baa64e7df9d800000000000000000000000000000000000000000000000000000000)
    │   ├─ [19737] 0x4347df63bdC82b8835fC9FF47bC5a71a12cC0f06::dryrun(0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000006a9ab27c7e2255df1815e6cc0168d7755feb19a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe6000000000000000000000000af95c030c7b8994ba9213b6a3964baa64e7df9d800000000000000000000000000000000000000000000000000000000) [delegatecall]
    │   │   ├─ [13233] 0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a::upgradeTo(0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8)
    │   │   │   ├─ [12844] 0xbB1f830636e1A017b81C3E38b7f6219344149Eb7::upgradeTo(0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8) [delegatecall]
    │   │   │   │   ├─ [391] 0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8::proxiableUUID() [staticcall]
    │   │   │   │   │   └─ ← [Return] 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
    │   │   │   │   ├─ emit Upgraded(implementation: 0xaF95C030c7b8994Ba9213B6A3964baa64E7dF9D8)
    │   │   │   │   └─ ← [Stop]
    │   │   │   └─ ← [Return]
    │   │   ├─ emit ActionExecuted(target: 0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a, value: 0, data: 0x3659cfe6000000000000000000000000af95c030c7b8994ba9213b6a3964baa64e7df9d8)
    │   │   ├─ emit DryrunGasCost(gasUsed: 18129 [1.812e4])
    │   │   └─ ← [Revert] DryrunSucceeded()
    │   └─ ← [Revert] DryrunSucceeded()
    └─ ← [Revert] DryrunSucceeded()


Error: script failed: DryrunSucceeded()
 ELIFECYCLE  Command failed with exit code 1.

@dantaik dantaik marked this pull request as draft November 26, 2025 03:16
@dantaik
Copy link
Member

dantaik commented Nov 26, 2025

@davidtaikocha lets work on this PR again once all addresses are deployed. We can simply use the deployed address as constant values without querying the "newFork" function.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DAO proposal for Shasta and test / simulate execution on Hoodi

3 participants