Add stable megapool validator deposit UI#154
Conversation
- UPSTREAM_VERSION / upstreamVersion v1.19.3 -> v1.20.3 (latest stable
Smartnode release, 2026-05-21); package version 0.1.8 -> 0.1.9.
- Fix auto_check.yml so future Smartnode releases auto-PR:
- push trigger watched 'master' but default branch is 'main'
- no permissions block -> read-only GITHUB_TOKEN could not open the
bump branch/PR (dappnodesdk bump-upstream needs write)
- bumped actions/checkout v2 -> v4; added workflow_dispatch
- Add the v1.20.x native-mode Smartnode HTTP API port default (8280) to the generated settings template without exposing it publicly.\n- Add Lodestar's QUIC P2P port default (8001), matching the existing Lighthouse/Prysm entries and upstream v1.20.3 config.\n- Add the explicit IPv6 default (disabled) and align root.version with the bundled Smartnode v1.20.3.
|
@saju01 Just curious, have you tested the UI + API against real pools yet, even if it was outside of DAppNode? |
|
Not yet against real pools. So far I’ve validated this at the code/build level:
But I have not yet run the full UI + API flow against a live Rocket Pool Hoodi pool / actual deposit path. That’s why I marked this PR as needing Hoodi/DAppNode validation before merge. The key flows I’d want to test are:
Happy to adjust based on what you see in testnet validation. |
|
Status update — keeping this aligned with the new auto-bump cadence. The mainnet sibling's older v1.20.3 bump (#24) was closed as superseded by tropibot's v1.20.5 bump; the testnet auto-bump is #158. This deposit-UI PR is independent of those version bumps (they only touch the daemon version, not the UI/API). I re-verified compatibility: the wrapper calls stable Smartnode HTTP routes at Still flagged as needing a live Hoodi/DAppNode validation pass before merge (the build/syntax checks pass; the real-pool deposit path is what's untested). Happy to rebase onto current |
|
Update on the "have you tested the UI + API against real pools?" question — yes, now validated end-to-end on a live Hoodi pool, not just builds. I ran the v1.20.x daemon in external-client mode (public Hoodi EL RPC + Beacon API) and drove this PR's flow against real Rocket Pool contracts: First-run + deposit (this PR's flow):
One bug found while validating — worth fixing before merge: Also opened #159 as a stacked follow-up adding the exit + claim/withdraw lifecycle (exit-queue / exit-validator / notify-exit / distribute / claim-refund), validated against the same live megapool — so there's the option of deposit-only here, or the full lifecycle. |
The settings template rendered network: ${NETWORK} (= hoodi), but the
Smartnode daemon only accepts mainnet|testnet|devnet. "testnet" is Hoodi
internally (chainId 560048, RocketStorage 0x594Fb75D...). With network: hoodi
the daemon cannot resolve the storage address and every on-chain call fails
with "The Rocket Pool storage contract was not found".
Introduce SMARTNODE_NETWORK (mainnet -> mainnet, hoodi/testnet -> testnet),
pass it through envsubst, and use it for the template's network: field. The
dappnode package keeps using NETWORK=hoodi for its own identity (web3signer-hoodi,
globals, urls); only the smartnode setting is remapped.
Verified live on Hoodi: with network: testnet, node register + 4-ETH megapool
deposit succeed and all megapool routes resolve.
|
Pushed the fix for the |
Summary
Port of the stable Smartnode v1.20.3 + Saturn/megapool validator deposit UI/API work to the Hoodi testnet package, per maintainer request on mainnet PR #25.
This keeps the testnet package identity intact:
rocketpool-testnet.public.dappnode.ethhoodiEXECUTION_CLIENT_HOODI,CONSENSUS_CLIENT_HOODIweb3signer-hoodi.dnp.dappnode.ethWhat changed
v1.20.2to stablev1.20.3.8280.rocketpoold api ...commands and toward the stable daemon HTTP API athttp://127.0.0.1:8280./api/v1/megapool/next-validator-bondso the UI asks Smartnode for the next validator bond requirement instead of hardcoding4 ETH.NETWORK=hoodienv inrocketpool-start.sh(testnetstill works too).Validation run locally
yarn --cwd build/api build✅yarn --cwd build/ui build✅bash -n build/rocketpool-start.sh✅dappnode_package.jsonparses as valid JSON ✅UI build warnings are existing eslint warnings in
RewardsTab.tsx/Minipools.tsx; build completes.Requested Hoodi validation before merge
Because this changes the Dappnode transaction path and first-run password setup, please validate on a Dappnode Hoodi/testnet install before merging:
:8280,can-depositreturns the expected result,validatorPubkeysare imported into Web3Signer correctly.Related mainnet/stable PR: dappnode#25