Document transaction lifecycle and Moonlight deposit operations#134
Merged
Conversation
HDauven
marked this pull request as ready for review
July 14, 2026 23:41
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
@dusk/w3sper1.6.0Closes #36.
Closes #56.
Why
The existing pages mixed live mempool events with payment finality, described W3sper as a complete transaction-signing layer, and identified standard deposits by requiring exactly one event. That event-count rule is not a protocol invariant and can reject valid transactions or conflate unrelated public balance changes with direct deposits.
The new flow scans archive history, which is indexed only after block finalization, and identifies a direct deposit by the transfer-contract target,
moonlighttopic, non-reverted status, exact receiver, and positive value. Credits use the transaction ID as an idempotency key and advance their block checkpoint atomically.Validation
cargo test -p dusk-node test_mempool_txs_sorted_by_feecargo test -p dusk-node test_get_expired_txscargo test -p dusk-rusk --test mempool_prequeue -- --nocapture(6 tests)cargo test -p dusk-rusk --test http_propagate_future_nonce -- --nocapture@dusk/w3sper1.6.0), type-checked the exact published scanner, and ran it against the live mainnet Rusk 1.7.1 endpointe02a68c8f7df6b953401f0285579dabee6fdc1c1e9a8a970a2121d705864fa07at height4701140npm run build(Astro build and all internal links)