feat(wallet): wallet-server HTTP API and web dapp#1
Closed
saroupille wants to merge 6 commits intotrilitech:mainfrom
Closed
feat(wallet): wallet-server HTTP API and web dapp#1saroupille wants to merge 6 commits intotrilitech:mainfrom
saroupille wants to merge 6 commits intotrilitech:mainfrom
Conversation
- ocaml_unit_tests.sh: dune is installed via opam but the shell step did not have the opam environment activated; prefix with opam exec -- - cross_impl_interop: the test calls dune at runtime but was in the Rust-only job which has no OCaml; move it to the ocaml job (which already has OCaml) and add a Rust toolchain step there - Remove cross_impl_interop from the rust-and-cairo job Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The ML-KEM native C library (vendor/mlkem-native) is not committed to git and must be compiled before dune can link the OCaml executables. Add a `make lib` step and set LIBRARY_PATH for the cross_impl_interop cargo test which runs dune at runtime outside the shell script. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Exposes shield/transfer/unshield/scan/balance/address over a local REST API so any HTTP client (including the bundled Vite/React dapp) can interact with a private TzEL wallet without touching the CLI directly. - wallet-server binary: Axum HTTP server, supports --trust-me-bro (skip proofs) and --proving-service=<url> for STARK proof generation - web/: Vite + React dapp connecting to wallet-server in real mode, with mock mode for UI development without a live node - core: add bech32 encoding for PaymentAddress; PartialEq/Eq on PaymentAddress; remove unused verify_wots_signature_against_leaf - docs/wallet_server.md: manual testing guide Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rename --trust-me-bro to --skip-proof - Fix transfer/unshield atomicity: drop pre-POST save_wallet; notes are only committed to disk via finalize_successful_spend after a confirmed ledger response, matching the shield handler's pattern - Normalise ledger error status codes to 502 BAD_GATEWAY across all handlers - Change POST /address (was GET): endpoint mutates addr_counter so GET semantics were wrong; add block_in_place for consistency - Remove three paraphrasing inline comments - Update docs and web dapp to match Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
51f7e8b to
52d7f29
Compare
Removed by mistake in the audit cleanup — the rollup kernel uses it to authenticate signed verifier and bridge configs. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Architecture
```
web dapp (React) → wallet-server (Axum) → tzel-operator (ledger API)
→ proving-service (optional STARK proofs)
```
Proof modes
API endpoints
Design decisions
Test plan
See docs/wallet_server.md for the full manual testing guide.
🤖 Generated with Claude Code