Repository navigation
fix(emergency): skip inactive networks in pause readiness check (EXSC-1295) - #2622
Conversation
Gravity is shut down and its RPCs are unreachable, so the readiness check failed on every PR. Mark gravity inactive and sweep only active networks. (EXSC-1295) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 8 seconds. View limit details
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. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🔍 QA Review — EXSC-1295 · PR #2622 (🆕 First review, head
|
| AC | Result |
|---|---|
gravity.status is "inactive"; no other field or network changes |
✅ one-line diff in config/networks.json |
Script sweeps only status == "active" networks; any other or missing status is not swept |
✅ isNetworkActive returns true only for "active" and treats a missing status as not active (helperFunctions.sh:4400-4407) |
| "No production LiFiDiamond" skip, throttled sweep and result aggregation unchanged | ✅ only the list-building loop and two message strings change |
| PR body states the governance impact | ✅ "gravity's diamond is no longer checked for pauserWallet and governance" |
PR body lists the other consumers of status that now drop gravity |
✅ the list matches the ticket's Context |
What was verified
- The loop now reads
getAllNetworksArray(every key, same as the oldjq -r 'keys[]') and filters withisNetworkActive, so the helper file stays untouched, as the ticket required.getAllNetworksArrayandisNetworkActiveexist on this head and read the sameNETWORKS_JSON_FILE_PATH. script/emergency/emergencyPauseBreakGlass.shis untouched and still targets every network, so the break-glass path is not weakened.- The added
# shellcheck source=… disable=SC1091directive follows the pattern inscript/utils/checkPauserFunds.sh. - CI on the head:
verify-emergency-pause-readinesspasses (it failed on gravity before this change),run-ts-tests,validate-json,deploy-smoke-test, CodeQL and Aikido pass.
Findings
None.
Notes (do not gate)
- 🔵 Setting gravity to
inactiveis repo-wide, not scoped to this check. The PR body lists the consumers; the one with a governance angle isscript/deploy/safe/timelock-watcher.ts, which will stop watching gravity's timelock queue. That is acceptable while the chain is shut down, and the PR names/deprecate-network gravityas the follow-up. - 🔵
isNetworkActivespawns twojqprocesses per network (about 130 in total). That is negligible next to the on-chain sweep. - 🔵 I read the script and helper source and the CI result; I did not run the script.
Downstream impact
No contract, selector, ABI or deployment-record change; no diamond cut. Consumers of status == "active" are listed in the PR body. No sibling PRs. The failing verify-emergency-pause-readiness check on other open PRs (e.g. #2616, #2621) clears once this merges and they rebase.
There was a problem hiding this comment.
🤖 [Automated QA Review] Approved — PR #2622: inactive networks skipped in the pause-readiness sweep; break-glass script untouched; governance impact stated
Which Linear task belongs to this PR?
EXSC-1295
Why did I implement it this way?
The gravity chain is shut down and both of its RPC endpoints are unreachable, so
verify-emergency-pause-readinessfails with-32403: RPC disabledon every PR that touches the scripts it watches (e.g. #2621).config/networks.json:gravity.statusis now"inactive".script/utils/verifyEmergencyPauseReadinessGitHub.sh: the on-chain sweep builds its network list from networks withstatus == "active"only, instead of every key innetworks.json. The "no production LiFiDiamond" skip, the throttled sweep and the result aggregation are unchanged.# shellcheck source=script/helperFunctions.sh disable=SC1091directive (as inscript/utils/checkPauserFunds.sh), soshellcheckon the file is clean. The finding was already there onmain.This is a stopgap. Removing gravity fully is a separate
/deprecate-network gravity.Governance impact: the pause-readiness check no longer covers inactive networks, so gravity's diamond is no longer checked for
pauserWalletand governance. No on-chain role, Safe, timelock or pause path changes.script/emergency/emergencyPauseBreakGlass.shis untouched and still sweeps every network.Other consumers of
status == "active"that now skip gravity (please confirm each is intended):script/deploy/healthCheckAllNetworks.tsisNetworkActiveinscript/helperFunctions.sh, used byscript/tasks/diamondSyncWhitelist.shandscript/utils/checkPauserFunds.shscript/mongoDb/rpcEndpoints.ts(RPC sync)script/balances.tsscript/deploy/safe/:safe-utils.ts,timelock-watcher.ts,confirm-safe-tx.ts,execute-pending-timelock-tx.ts,backfill-timelock-queue.ts,add-safe-owners-and-threshold.tsgetAllActiveNetworksinscript/utils/viemScriptHelpers.tstasks/generateLedgerClearSigning.ts(drops gravity from the clear-signing registry)script/tasks/temp/check*PerNetwork.tsVerified locally:
bash -nandshellcheckon the script are clean; the active-network filter returns 65 networks and excludes gravity;bun testonlineage-scope.test.ts,healthCheckAllNetworks.test.ts,rpcEndpoints.test.ts,redactRpcUrl.test.tsandgenerateLedgerClearSigning.test.tspasses (171 tests). The live RPC run is this PR's CI.Checklist before requesting a review
Checklist for reviewer (DO NOT DEPLOY and contracts BEFORE CHECKING THIS!!!)
🤖 Generated with Claude Code