ops(script): HyperEVM beacon-owner migration + 0.1.1 beacon lib generalisation (RAI-1511) - #276
Conversation
|
Warning Review limit reached
Next review available in: 44 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (9)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
75a463a to
773cda8
Compare
1754e75 to
e525075
Compare
9777630 to
7865d57
Compare
e525075 to
e6ef7d0
Compare
7865d57 to
f3df426
Compare
e6ef7d0 to
9d29e63
Compare
f3df426 to
d8b790b
Compare
d7ff7bb to
ce3d0ee
Compare
d8b790b to
6751d21
Compare
6751d21 to
95b64ee
Compare
ce3d0ee to
3115e88
Compare
95b64ee to
f448568
Compare
3115e88 to
9ee4c51
Compare
f448568 to
56c25f9
Compare
9ee4c51 to
0265805
Compare
56c25f9 to
fcb3b38
Compare
0265805 to
0c844b2
Compare
b110fc7 to
db861f0
Compare
6097022 to
2b644e8
Compare
db861f0 to
b110fc7
Compare
6097022 to
2b644e8
Compare
db861f0 to
52076bd
Compare
…alisation (RAI-1511) - Rename LibProdBeaconsEthereum -> LibProdBeacons0_1_1: the set is Zoltu-deterministic, so it is the SAME addresses on every chain that bootstraps at 0.1.1 — Ethereum yesterday, HyperEVM next. Consumers updated; docs record the rename rationale. - prodBeaconsForChainId: HyperEVM branch (resolves the same 0.1.1 set). - 20260722-migrate-beacon-owners-hyperevm: the HyperEVM leg of the beacon-ownership migration executed for Base (#253) and Ethereum (20260716). Deploy-EOA broadcast (beacons come up EOA-owned), --legacy noted for HyperEVM's fee-estimation quirk, chain-id guarded, PENDING. Ordering per RAI-1511: after impl suites + Safe pin, before tokens (the token-deploy pre-flight hard-gates on beacon ownership). - HyperEvmBeaconOwnershipTest: the migration's forcing function, mirroring the Ethereum pin, with loud PENDING gates on the Safe pin + the missing rainix HyperEVM RPC secret slot. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VPs1hCTxusmaSeFKvoc4Kr
2b644e8 to
43080d8
Compare
Both premises the gates were waiting on are now false: `STOX_TOKEN_OWNER_SAFE_HYPEREVM` is pinned non-zero, and #275 forwards `RPC_URL_HYPEREVM_FORK` to the shared rainix workflow from both `rainix-sol.yaml` and `rainix-sol-scheduled.yaml`, so `HYPEREVM_RPC_URL` resolves in CI. The docstring's own condition — "Remove the env gate once CI carries the secret" — is met, so the invariant now runs unconditionally and the `@dev` paragraph documents that instead of the removed gates. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Deliberate experiment: removed the PENDING gates so the HyperEVM beacon-owner invariant actually runsThis was pushed on purpose to find out whether the invariant is red, not as a routine cleanup. A red here would have been a legitimate result — this test is a forcing function and its docstring says it is RED until the HyperEVM beacon-ownership migration runs. Recording the outcome so nobody reads it as an accident either way. What was removed
Both premises the gates waited on are now false, and the docstring's own stated condition ("Remove the env gate once CI carries the secret") is met. The Nothing else is touched — no change to the migration script, Result: GREENNo local pre-run; CI is the observation. Whole run green: Two things confirm this is a real pass rather than a silent no-op:
So all three HyperEVM production beacons are deployed, carry the OZ The invariant has now flipped from "pending, unverifiable" to "green and load-bearing" — from here it guards against later ownership drift on HyperEVM the same way the Base and Ethereum ones do. |
|
Reviewed 15ea985: approve |
The premise these guards stated — the shared rainix test workflow has no HyperEVM secret slot, so CI cannot create the fork — is dead. #275 forwards `RPC_URL_HYPEREVM_FORK` to the shared workflow and #276 deleted the identical guards from `HyperEvmBeaconOwnership.t.sol` against a real fork. They were fail-open: had the RPC lapsed, `testProdDeployHyperEvmV4` and the HyperEVM half of `testCrossChainParity` would have gone green having asserted nothing. Both now fork unconditionally, so a missing RPC fails at fork time. `assertTrue(hyperRpcAvailable, ...)` in the parity deadline block goes with the bool — a missing RPC is no longer something to detect later. The deadline and its three leg assertions stay, as does every inner `base.X && hyper.X` gate. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Brings in #274, #275 and #276. #275's `RPC_URL_HYPEREVM_FORK` forwarding in `rainix-sol.yaml` is what lets this branch's own push run resolve the HyperEVM alias from the secret rather than the rainix preflight's public default, so the unconditional forks this branch introduces are exercised against the secret path the new comments describe.

Zoltu-deterministic, so it is the SAME addresses on every chain that
bootstraps at 0.1.1 — Ethereum yesterday, HyperEVM next. Consumers
updated; docs record the rename rationale.
beacon-ownership migration executed for Base (fix(tests): beacon-ownership migration executed on Base — update test reality #253) and Ethereum
(20260716). Deploy-EOA broadcast (beacons come up EOA-owned), --legacy
noted for HyperEVM's fee-estimation quirk, chain-id guarded, PENDING.
Ordering per RAI-1511: after impl suites + Safe pin, before tokens (the
token-deploy pre-flight hard-gates on beacon ownership).
the Ethereum pin, with loud PENDING gates on the Safe pin + the missing
rainix HyperEVM RPC secret slot.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01VPs1hCTxusmaSeFKvoc4Kr