[WIP] docs: add Robinhood Earn contracts - #983
Conversation
There was a problem hiding this comment.
Pull request overview
Adds Robinhood Chain contract addresses to the Earn deployments documentation.
Changes:
- Adds an
earnUSDe – Robinhooddeployment section. - Links nine contracts to the Robinhood Chain Blockscout explorer.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Codex:
|
|
|
Claude: Bottom line: the address table is correct and complete, and the Treasury quorum fix is right. Two things left — one documentation-accuracy issue that should gate publishing, and one wording fix for the Verified against chain stateTwo things worth recording so nobody "fixes" them later:
1. [P1] The Actors table omits a live verifier-root authority — please revoke before publishingConfirming the earlier finding independently: the Robinhood vault has two holders of
On the "Expected ATM, see lidofinance/state-mate#172" disposition — that PR does not treat it as expected state. # WARN: mellow_deployer must renounce SET_MERKLE_ROOT_ROLE (on-chain count is 2)
*SET_MERKLE_ROOT_ROLE : [*earnUSDe_timelockController]So the state layer records this as a required renunciation — that config is expected to fail against current chain state until it happens. (Credit where due: that WARN was in the first commit of #172, before any review, so it was self-identified.) Two things make revoking-first the cheap option here rather than a doc workaround:
Suggested: revoke, then publish, and no change to this page is needed. If the page must ship first, add a footnote naming the EOA and its authority — publishing a table introduced as "Roles governing the vaults" while a live root-setting authority is missing from it is a documentation-accuracy defect independent of the remediation timeline. 2. [P2] The
|
| Actor | Documented | Ethereum | Robinhood |
|---|---|---|---|
| Active Vault Admin | 3/8 | 3/8 ✅ | 3/6 |
| Oracle Updater | 3/8 | 3/8 ✅ | 3/7 |
| Treasury | 4/6 | 4/6 ✅ | 4/6 ✅ |
All eight other actor rows match on both chains. So the documented numbers are correct for Ethereum — the issue is purely that the page doesn't say that's what they are.
One note on the "Curators msigs may differ on other networks" rationale: the two actual divergences aren't curators — they're Active Vault Admin and Oracle Updater, both core governance actors. The Curator (earnUSDc, earnUSDe) Safe is 3/7 on both chains.
This is also already settled by the repo's own tooling, which is worth making explicit rather than leaving implicit. scripts/fetch-msig-quorums.js resolves the chain from the safe=<chain>: prefix and rewrites drifted cells, so it will always maintain these as Ethereum values — and robinhood is not in its CHAIN_RPCS, so a Robinhood-prefixed Safe link would fail with unsupported chain: robinhood. Per-chain quorum rows would need the chain registered there first.
Suggested minimal fix — replace the section lead-in:
-Roles governing the vaults. Addresses are shared across all chains.
+Roles governing the vaults. The same actor addresses are used on every chain where the
+actor is deployed. The **Quorum** column reflects the Ethereum Safe configuration; owner
+sets and thresholds can differ per chain — on Robinhood, Active Vault Admin is 3/6 and
+Oracle Updater is 3/7.3. [nit] "Shared across all chains" is literally false for three rows
Three actor rows have no code at all on Robinhood: Curator (earnETH, earnUSD), Curator (stRATEGY), Curator (GGV). That's expected — those curate vaults that don't exist on this chain — but it's another reason to soften the blanket sentence, which the wording above already covers.
4. [nit] Cosmetic table width
The new table's separator row is two characters wider than its header row, and both are wider than the Plasma/Mantle tables. No functional impact and no CI impact (npm run format only targets docs/, not earn/), so purely take-it-or-leave-it.
Adds Robinhood Chain contract addresses to the Earn deployments page.