Skip to content

feat: add Sepolia Solana bridge ownership transfer task (CHAIN-4636)#745

Merged
xenoliss merged 2 commits into
mainfrom
bo/chain-4636
Jun 23, 2026
Merged

feat: add Sepolia Solana bridge ownership transfer task (CHAIN-4636)#745
xenoliss merged 2 commits into
mainfrom
bo/chain-4636

Conversation

@xenoliss

@xenoliss xenoliss commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds a Base Sepolia signing task (CHAIN-4636) that transfers control of the six Solana bridge contracts from the aliased old Coinbase L1 multisig to the aliased new Coinbase L1 multisig.

Control lives on L1, so the task is issued from the old multisig on Sepolia L1 and reaches L2 through seven OptimismPortal2.depositTransaction calls. Each deposit targets a contract (or the shared ERC1967Factory) directly, so the L2 msg.sender is the old multisig's alias and the ownership checks pass. Routing through CBMulticall would make CBMulticall the L2 caller and revert every call, so the task extends MultisigScript (not MultisigScriptDeposit).

Owners

Role L1 L2 alias
Old (current) 0x5dfEB066334B67355A15dc9b67317fD2a2e1f77f 0x6f0fB066334B67355A15dc9b67317fD2a2e20890
New 0x646132A1667ca7aD00d36616AFBA1A28116C770A 0x757232A1667ca7aD00d36616AFBA1A28116C881B

Transfers (7 calls)

Contract Mechanism
Bridge transferOwnership + ERC1967Factory.changeAdmin
TwinBeacon transferOwnership
CrossChainERC20Beacon transferOwnership
CrossChainERC20Factory ERC1967Factory.changeAdmin
BridgeValidator ERC1967Factory.changeAdmin
RelayerOrchestrator ERC1967Factory.changeAdmin

Two control vectors exist: the functional owner() and the proxy upgrade admin (held in the shared ERC1967Factory). Bridge has both, so both move. The beacons are Solady UpgradeableBeacons and govern all twins/tokens. The three proxies have no owner(), only a factory-held admin.

@linear

linear Bot commented Jun 23, 2026

Copy link
Copy Markdown

CHAIN-4636

@cb-heimdall

cb-heimdall commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

✅ Heimdall Review Status

Requirement Status More Info
Reviews 2/2
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 2
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 2
2
1 if commit is unverified 0
Sum 2

@xenoliss xenoliss force-pushed the bo/chain-4636 branch 3 times, most recently from 28f05c4 to 04752ed Compare June 23, 2026 13:43
Transfer control of the six Base Sepolia Solana bridge contracts from the
aliased old Coinbase L1 multisig to the aliased new Coinbase L1 multisig, via
seven OptimismPortal2 L1->L2 deposits issued from the old multisig.

Mechanisms (matching on-chain ownership):
- transferOwnership: Bridge (OwnableRoles), TwinBeacon, CrossChainERC20Beacon
- ERC1967Factory.changeAdmin: Bridge proxy admin, CrossChainERC20Factory,
  BridgeValidator, RelayerOrchestrator
@cb-heimdall cb-heimdall dismissed roger-bai-coinbase’s stale review June 23, 2026 19:19

Approved review 4554188540 from roger-bai-coinbase is now dismissed due to new commit. Re-request for approval.

@xenoliss xenoliss merged commit bcf683e into main Jun 23, 2026
11 checks passed
@xenoliss xenoliss deleted the bo/chain-4636 branch June 23, 2026 20:28
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.

5 participants