Skip to content

specs: add L2ProxyAdmin to upgrade spec#877

Closed
maurelian wants to merge 1 commit intol2cm-upgrades-spec/1-conditional-deployerfrom
l2cm-upgrades-spec/2-proxy-admin
Closed

specs: add L2ProxyAdmin to upgrade spec#877
maurelian wants to merge 1 commit intol2cm-upgrades-spec/1-conditional-deployerfrom
l2cm-upgrades-spec/2-proxy-admin

Conversation

@maurelian
Copy link
Copy Markdown
Contributor

@maurelian maurelian commented Jan 27, 2026

Adds L2ProxyAdmin component for batch upgrade orchestration:

  • Defines upgradePredeploys() function for DELEGATECALL-based batch upgrades
  • Exclusive Depositor Account authorization
  • Backwards compatibility with existing ProxyAdmin interface

Includes 4 invariants, 3 assumptions, and interface definition.
Part 2 of 6-part specification.


Stack:

worse, the ProxyAdmin's own storage could be corrupted. This could result in loss of admin control over predeploys or
enable exploitation of corrupted state.

#### i03-003: Backwards Compatibility Maintained
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.

Does this also mean we will keep support of the ResolvedDelegate and Chugsplash proxies?

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.

we need to keep the full interface available, but we don't necessary need to keep the logic that enables upgrading ResolvedDelegate and Chugsplash proxies.

- Proxy implementations are thoroughly tested and audited
- Fork-based testing validates upgrade operations against actual deployed proxies

### Invariants
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.

I think an other invariant could be that upgradePredeploys must be atomic and we cant have partial upgrades if for whatever reason this fails mid upgrade

Copy link
Copy Markdown
Contributor Author

@maurelian maurelian Jan 28, 2026

Choose a reason for hiding this comment

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

We have that for the L2ContractsManager, which I think is sufficient

@maurelian maurelian force-pushed the l2cm-upgrades-spec/1-conditional-deployer branch from 604774e to d5f42eb Compare January 28, 2026 20:12
@maurelian maurelian force-pushed the l2cm-upgrades-spec/2-proxy-admin branch from 8d9b299 to 6a16c68 Compare January 28, 2026 20:14
@maurelian maurelian force-pushed the l2cm-upgrades-spec/1-conditional-deployer branch from e5709ba to 90a65b3 Compare January 28, 2026 20:48
@maurelian maurelian force-pushed the l2cm-upgrades-spec/2-proxy-admin branch from b3e2228 to 73e34ea Compare January 28, 2026 20:50
@maurelian maurelian force-pushed the l2cm-upgrades-spec/1-conditional-deployer branch from 90a65b3 to e155ba0 Compare January 28, 2026 20:56
@maurelian maurelian force-pushed the l2cm-upgrades-spec/2-proxy-admin branch from 73e34ea to 2b508d0 Compare January 28, 2026 20:58
@maurelian maurelian force-pushed the l2cm-upgrades-spec/1-conditional-deployer branch from e155ba0 to da00e93 Compare January 28, 2026 21:26
Adds L2ProxyAdmin component for batch upgrade orchestration:

- Defines upgradePredeploys() function for DELEGATECALL-based batch upgrades
- Exclusive Depositor Account authorization
- Backwards compatibility with existing ProxyAdmin interface

Includes 4 invariants, 3 assumptions, and interface definition.
Part 2 of 6-part specification.
@maurelian maurelian force-pushed the l2cm-upgrades-spec/2-proxy-admin branch from 2b508d0 to a4ee0a4 Compare January 28, 2026 21:28
@maurelian maurelian closed this Jan 28, 2026
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.

2 participants