Skip to content

Real-node integration suite: the wallet engine against a spawned rand-node (CI job real-node on fullnode v0.7.1) - #2

Merged
dendisuhubdy merged 6 commits into
mainfrom
test/node-integration
Oct 11, 2026
Merged

dendisuhubdy merged 6 commits into
mainfrom
test/node-integration

Conversation

@dendisuhubdy

Copy link
Copy Markdown
Member

Integration tests between the full node and the wallet clients, as asked on 2026-10-11. The suite spawns one rand-node (faucet, test FRI profile) and runs the real makeRpc / makeWallet engine with the wasm core against it:

  • web/wallet/test/node.e2e.test.mjs — 18 cases: chain identity vs the genesis the node was cut from; every RPC method the wallet calls validated in its empty and (where the test can produce it) populated shape; keygen → faucet → scan → balance → activity, a second wallet rescanning the same key, idempotent scan, witnesses rooted at rand_getAnchor; a spend through a real rand-prover with exact balance deltas and the replay refused (-32000 "nullifier already spent"); failover, submits not repeated, the node's JSON-RPC errors passed through intact; a node restart on the same data dir.
  • web/wallet/test/node-harness.mjs — the spawn/until/genesis helpers, shared with prover.e2e.test.mjs (which now sets RAND_ALLOW_TEST_FRI_PROFILE=1, without which a release node refuses the test genesis).
  • scripts/e2e-node.sh and .github/workflows/node-integration.yml (job real-node: builds the wasm core, downloads the fullnode v0.7.1 release assets, runs the suite). Skips cleanly without RAND_NODE_BIN.
  • One production change: makeWallet exposes anchorAndWitnesses (already an internal function) so it can be tested.

Locally against fullnode main (37c4fdd3): 17 pass, 1 skipped. The skipped case documents a bug: ui/engine/rpc.js files a connection dropped after the request was read as connect (line ~288) and mayRetryElsewhere (line ~184) then repeats rand_mint / rand_sendTransaction on the next endpoint — a double-submit risk. Not fixed here.

Pre-existing, not fixed: prover.e2e's "with no prover running" case expects canProve() to say no in device mode, but in-wallet proving now answers yes.

The companion is fullnode PR "rpc_contract: the wallet's rows".

🤖 Generated with Claude Code

https://claude.ai/code/session_01HetkTGUHukuapaUf6gqGyr

dendisuhubdy and others added 5 commits October 11, 2026 15:38
…prover.e2e allows the test FRI profile on a release node

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HetkTGUHukuapaUf6gqGyr
…act, flows, spend, transport, restart); makeWallet exposes anchorAndWitnesses

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HetkTGUHukuapaUf6gqGyr
….7.1); document e2e-node

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HetkTGUHukuapaUf6gqGyr
…replay and malformed-submit assertions, order-independent c cases, looser timeouts, core/target cache)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HetkTGUHukuapaUf6gqGyr
…n new reads (exact shapes there, -32601 by name on v0.7.1)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HetkTGUHukuapaUf6gqGyr
@dendisuhubdy
dendisuhubdy force-pushed the test/node-integration branch from fc4be54 to e9345f6 Compare October 11, 2026 07:44
@codecov

codecov Bot commented Oct 11, 2026

Copy link
Copy Markdown

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment

Thanks for integrating Codecov - We've got you covered ☂️

… binary needs GLIBC 2.38, which 22.04 (2.35) lacks

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HetkTGUHukuapaUf6gqGyr
@dendisuhubdy
dendisuhubdy marked this pull request as ready for review October 11, 2026 22:07
@dendisuhubdy
dendisuhubdy merged commit 0ca2fc1 into main Oct 11, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant