Skip to content

refactor: reimplement api wallet scanning in Rust#12

Closed
satsfy wants to merge 6 commits intostealth-bitcoin:mainfrom
satsfy:refactor-api-rust
Closed

refactor: reimplement api wallet scanning in Rust#12
satsfy wants to merge 6 commits intostealth-bitcoin:mainfrom
satsfy:refactor-api-rust

Conversation

@satsfy
Copy link
Copy Markdown
Collaborator

@satsfy satsfy commented Mar 24, 2026

Depends on #11
Partially solves #10

Summary

Implement stealth-api as the Rust HTTP transport for Stealth wallet privacy analysis and remove the legacy Java backend.

This PR:

  • adds stealth-api to the Rust workspace
  • exposes POST /api/wallet/scan
  • validates mutually exclusive scan inputs (descriptor, descriptors, or utxos)
  • forwards scan requests into stealth-core
  • maps validation, RPC, and configuration failures into consistent HTTP errors
  • adds API docs and HTTP tests
  • removes the deprecated Quarkus/Java backend

Why

Stealth should have a thin HTTP transport over the Rust analysis engine, not a separate backend path with its own lifecycle.

This moves the API into the Rust stack, makes stealth-api a direct consumer of stealth-core, and completes the transition away from the old Java backend.

satsfy added 6 commits March 24, 2026 20:23
- Added TxGraph struct to manage and analyze wallet transactions and UTXOs.
- Implemented methods for fetching transaction details, input/output addresses, and detecting vulnerabilities.
- Introduced UtxoEntry struct to represent UTXO data.
- Created a new module for scanning wallets and UTXOs, including RPC connection handling.
- Added types for vulnerability detection and reporting, including Severity and VulnerabilityType enums.
- Implemented a structured report system for scan results, including findings and statistics.
@satsfy
Copy link
Copy Markdown
Collaborator Author

satsfy commented Mar 26, 2026

It is unecessary for this PR to exist at this point in time. Changes moved to #11

@satsfy satsfy closed this Mar 26, 2026
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