feat(CHAIN-3641): add task to upgrade to multiproofs#653
Conversation
✅ Heimdall Review Status
|
|
The task directory can use next wednesday for the date |
| This repo contains execution code and artifacts related to Base contract deployments, upgrades, and calls. For actual contract implementations, see [base/contracts](https://github.com/base/contracts). | ||
|
|
||
| This repo is structured with each network having a high-level directory which contains subdirectories of any "tasks" (contract deployments/calls) that have happened for that network. Supported networks are `mainnet`, `sepolia`, and `sepolia-alpha`. | ||
| This repo is structured with each network having a high-level directory which contains subdirectories of any "tasks" (contract deployments/calls) that have happened for that network. Supported networks are `mainnet`, `sepolia`, `sepolia-alpha`, and `zeronet`. |
There was a problem hiding this comment.
Not related to this PR but we could also mention solana here
|
|
||
| // Canonical CBMulticall initcode verified identical on Ethereum mainnet and Sepolia. | ||
| // Source: base-contracts CBMulticall.sol compiled with solc 0.8.15. | ||
| function _canonicalInitCode() internal pure returns (bytes memory) { |
There was a problem hiding this comment.
Taken from here after stripping 0x and the first 64 hex chars (corresponding to the 32 bytes salt)
| NITRO_INITIAL_MAX_TIME_DIFF_SECONDS=3600 | ||
| NITRO_INITIAL_ROOT_CERT=641a0321a3e244efe456463195d606317ed7cdcc3c1756e09893f3c68f79bb5b | ||
| RISC0_VERIFIER_ROUTER=0x32Db7dc407AC886807277636a1633A1381748DD8 | ||
| RISC0_SET_BUILDER_IMAGE_ID=0x70909b25db0db00f1d4b4016aeb876f53568a3e5a8e6397cb562d79947a02cc9 |
There was a problem hiding this comment.
Set to match with other networks (Sepolia, Base Sepolia, Base Mainnet) though the set-verifier does not seem to be deployed on Hoodi.
| @@ -0,0 +1,36 @@ | |||
| BASE_CONTRACTS_COMMIT=64103939940ecb963aa32e07376228b0a82c1ba4 | |||
There was a problem hiding this comment.
Should be updated again after including audit fixes
…ame on ASR reinit (#660) * feat(CHAIN-3641): initialize proxies at deploy time and reset anchorGame on ASR reinit Initialize TEEProverRegistry and DelayedWETH proxies during deployment (DeployMultiproofStack) instead of deferring to the multisig activation batch. Proxies are deployed with msg.sender as temporary admin, initialized via upgradeToAndCall with their configured owners, then admin is transferred to the real ProxyAdmin. This removes 2 calls from the ActivateMultiproofStack batch (8 -> 6) and the _teeRegistryInitData helper. Also adds a patch to AnchorStateRegistry.initialize that resets anchorGame to address(0) on reinitialization, ensuring getAnchorRoot falls back to the new startingAnchorRoot after cutover. Updates ZK verification key hashes (ZK_RANGE_HASH, ZK_AGGREGATE_HASH). * chore(CHAIN-3641): update TEE_IMAGE_HASH * chore(CHAIN-3641): update TEE_IMAGE_HASH * chore(CHAIN-3641): update addresses and add deploy broadcast records * feat(CHAIN-3641): deploy NitroEnclaveVerifier with msg.sender owner, wire route at deploy time Deploy NitroEnclaveVerifier with msg.sender as owner so addVerifyRoute can be called immediately to wire the RiscZeroSetVerifier route, then transfer ownership to TEE_PROVER_REGISTRY_OWNER. This ensures the verifier is fully configured before TEEProverRegistry is deployed. SetupNitroEnclaveVerifier batch reduced from 2 to 1 call (only setProofSubmitter remains, which requires the TEEProverRegistry proxy). * feat(CHAIN-3641): convert SetupNitroEnclaveVerifier to deployer-executed script Remove transferOwnership from DeployNitroVerifier so the deployer retains ownership after deploy. Rewrite SetupNitroEnclaveVerifier from a MultisigScript to a simple Script executed by the deployer EOA via Ledger. It calls setProofSubmitter(teeProverRegistryProxy) then transferOwnership to the configured multisig owner, eliminating the multisig step for Nitro setup. * chore(CHAIN-3641): replace multisig setup-nitro target with Ledger-based target Remove gen-validation-setup-nitro, execute-setup-nitro, and the SETUP_NITRO_SENDER variable. Add setup-nitro target that executes SetupNitroEnclaveVerifier directly via Ledger. * chore(CHAIN-3641): add broadcast records for multiproof and nitro deployments * chore(CHAIN-3641): update deployed contract addresses
| @@ -0,0 +1,38 @@ | |||
| # Activate Multiproof | |||
|
|
|||
| Status: READY TO SIGN | |||
There was a problem hiding this comment.
Please update status to executed
| NITRO_ZK_VERIFIER_ID=0xce17a683c290c57ff91f00d4c0e6e6ec8aa2f73285af7d81b162327ba96321d6 | ||
|
|
||
| # AnchorStateRegistry bootstrap values for the reinitializer | ||
| STARTING_ANCHOR_ROOT=0xaaada834ea301486fdf3fc2cb72efa2bbee04bccc29af4d03a4bfbf272a2664a |
There was a problem hiding this comment.
Nit: STARTING_ANCHOR_ROOT and STARTING_ANCHOR_L2_BLOCK_NUMBER seed the anchor state for the new multiproof game type and are thus the most chain-critical parameters in this task; the verification procedure should be documented in the README or FACILITATOR.md (e.g. cross-checking against actual L2 state via cast block 550820 --rpc-url $L2_RPC_URL, etc. before signing).
leopoldjoy
left a comment
There was a problem hiding this comment.
Approving as the nit above is non-blocking.
Approved review 4068668178 from leopoldjoy is now dismissed due to new commit. Re-request for approval.
No description provided.