Lock alpha scope, tracker auth, TOPLOC fraud verification, and deferred multi-tracker money-path work; supersede legacy fraud issues with ADR-0018. Co-authored-by: Cursor <cursoragent@cursor.com>
1.1 KiB
1.1 KiB
Status: ready-for-human
12 — C2: On-chain settlement idempotency (deferred)
What to build
Harden payout idempotency so Solana transaction retries never double-pay. Design accepted in ADR-0019 §1; implementation deferred post-alpha.
Code refs:
packages/tracker/meshnet_tracker/server.py—_settlement_loopresend (~3331–3356),_send_settlement(~3358–3376)packages/contracts/meshnet_contracts/solana_adapter.py—send_payouts(~186–213)
Today: pending debited before broadcast with stable settlement_id; unconfirmed batches resent. Gap: on-chain confirmation vs ledger state if tx succeeds but confirm fails.
Acceptance criteria
confirm_settlementonly after RPC finalized confirmation- Retry path reuses same
settlement_idand detects already-confirmed signature - Property test: N retries → single on-chain transfer per wallet per settlement_id
- Document recovery procedure for stuck unconfirmed batches
ADR links
- ADR-0019 §1
Blocked by
Alpha release (ADR-0016 single settlement tracker)