Skip to content

Document transaction lifecycle and Moonlight deposit operations#134

Merged
HDauven merged 3 commits into
mainfrom
agent/transaction-deposit-integration
Jul 14, 2026
Merged

Document transaction lifecycle and Moonlight deposit operations#134
HDauven merged 3 commits into
mainfrom
agent/transaction-deposit-integration

Conversation

@HDauven

@HDauven HDauven commented Jul 14, 2026

Copy link
Copy Markdown
Member

Summary

  • document Dusk L1 transaction families, mempool admission, prioritization, replacement, expiry, future-nonce staging, events, execution, and finality
  • replace the brittle historical-event filters with a bounded, restart-safe W3sper scanner for finalized direct Moonlight deposits
  • rewrite the exchange integration around idempotent deposits, controlled nonce allocation, rebroadcasting, and finality
  • clarify the HTTP/W3sper ownership boundary and match the offline wallet-core driver to published @dusk/w3sper 1.6.0

Closes #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, moonlight topic, non-reverted status, exact receiver, and positive value. Credits use the transaction ID as an idempotency key and advance their block checkpoint atomically.

Validation

  • traced the public Rusk 1.7.0 source for transaction data, mempool admission/replacement/expiry/capacity, prequeue behavior, GraphQL history, and RUES events
  • passed targeted Rusk tests:
    • cargo test -p dusk-node test_mempool_txs_sorted_by_fee
    • cargo test -p dusk-node test_get_expired_txs
    • cargo test -p dusk-rusk --test mempool_prequeue -- --nocapture (6 tests)
    • cargo test -p dusk-rusk --test http_propagate_future_nonce -- --nocapture
  • installed the current JSR release (@dusk/w3sper 1.6.0), type-checked the exact published scanner, and ran it against the live mainnet Rusk 1.7.1 endpoint
  • positive case reproduced finalized deposit e02a68c8f7df6b953401f0285579dabee6fdc1c1e9a8a970a2121d705864fa07 at height 4701140
  • negative case excluded an account with finalized staking/public activity but no direct Moonlight transfer in the scanned range
  • npm run build (Astro build and all internal links)
  • Chromium full-page inspection at 1440x1000 and 390x844 for transaction lifecycle, deposit scanning, and exchange integration

@HDauven
HDauven marked this pull request as ready for review July 14, 2026 23:41
@HDauven
HDauven merged commit b9c7f55 into main Jul 14, 2026
1 check passed
@HDauven
HDauven deleted the agent/transaction-deposit-integration branch July 14, 2026 23:41
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.

Content: add details of Transaction types Content: Explicit example on how to scan for Moonlight deposits

1 participant