feat(contracts): v0.2.0 zeus upgrade — EigenKMSRegistrar platformRpcUrl - #121
feat(contracts): v0.2.0 zeus upgrade — EigenKMSRegistrar platformRpcUrl#121seanmcgary wants to merge 4 commits into
Conversation
…r platformRpcUrl Deploys the new EigenKMSRegistrar implementation from PR #120 (adds AvsConfig.platformRpcUrl + AvsConfigSet event for on-chain platform-endpoint discovery), repoints the sepolia-dev proxy via the EOA-owned ProxyAdmin, and sets platformRpcUrl on the live proxy while preserving the existing operatorSetId (read from getAvsConfig, injected via the zeus 'platformRpcUrl' env var). - contracts/script/releases/v0.2.0-sepolia-platform-rpc-url/{upgrade.json,1-upgradeRegistrar.s.sol} - Env.sol: add platformRpcUrl() env accessor + _envString helper Single EOA phase (0.1.0 -> 0.2.0); sepolia-dev only (base-sepolia's EigenKMSCommitmentRegistry was unchanged by #120).
|
Claude finished @seanmcgary's task in 2m 19s —— View job Code Review — Round 4
This is a clean, well-structured upgrade script that has been improved through three rounds of review. Most concerns from prior rounds have been addressed properly. Below are my remaining observations.
|
… guard empty platformRpcUrl, drop unused import
|
Round 1 review responses (commit
Release recompiles cleanly ( |
…describing NatSpec
|
Round 2 review responses (commit follows):
Recompiles clean; normal build/test suite unaffected. |
…ment non-atomic window
|
Round 3 review responses (commit follows):
Recompiles clean. This is the 3rd review round (default cap); remaining items are the acknowledged non-atomic-window observation (documented) and nits. |
Summary
Adds a Zeus upgrade release that deploys the
EigenKMSRegistrarfunctionality built in #120 onto the live sepolia-dev proxy: the new impl addsAvsConfig.platformRpcUrl+ theAvsConfigSetevent so KMS operators can discover the ecloud-platform gRPC endpoint on-chain.What's in the release
contracts/script/releases/v0.2.0-sepolia-platform-rpc-url/:upgrade.json— single EOA phase,0.1.0 → 0.2.0.1-upgradeRegistrar.s.sol— anEOADeployerscript that:EigenKMSRegistrarimpl (constructor immutables wired fromEnv: AllocationManager / KeyRegistrar / PermissionController),ProxyAdmin.upgrade(...),setAvsConfigto populateplatformRpcUrlwhile preserving the existingoperatorSetId(read from the livegetAvsConfig()), then records the new impl in Zeus state (outside the broadcast segment, per the zeus-templates convention).Env.sol— adds aplatformRpcUrl()accessor (+_envStringhelper) so the URL is injected via the ZeusplatformRpcUrlenv var rather than hardcoded.Design notes
deployment.jsonshows theProxyAdminowner and the registrar'sOwnableowner are both theoperatorOwnerEOA, matching the init phase'stype: "eoa".platformRpcUrlto theAvsConfigstruct, so the upgrade doesn't shift existing storage.EigenKMSCommitmentRegistrywas not changed by feat: KMS ↔ ecloud-platform integration — on-chain URL discovery, signed release-fetch client, stack_id /secrets auth #120, so no upgrade is needed there.ProxyAdminexposes the v4-styleupgrade(proxy, impl).Testing
forge buildon the release path; releases are excluded from the normal build viano_match_path).forge build/forge testsuite unaffected (36/36 passing).testScript()and the real dry-run execute through the Zeus CLI against the sepolia-dev env (same convention as the existing init scripts).Before running the real deployment
Set the Zeus
platformRpcUrlenv var to the actual ecloud-platform gRPC endpoint (host:port) for sepolia-dev.