fix: require wallet proof evidence before crediting Cashu (#4) #12
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/4-cashu-receipt-evidence"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A token spent by another wallet could become a paid intent after recovery and retry: Satsettle trusted a completed CDK transaction even when CDK had restored no outputs. This change requires durable evidence of newly owned wallet proofs before crediting the payment.
The payment ledger checkpoints existing proof IDs and original input IDs before an exclusive receive. CDK continues to handle transport, proof validation and recovery. Satsettle records the value of newly stored derived outputs before another wallet operation can spend them. Cancelled blocking writes retain their ordering guard, and every wallet entry reconciles SDK sagas before starting another operation. This also prevents an interrupted payout reclaim from supplying evidence for an unrelated payment.
Changed areas: payment ledger, receive orchestration/evidence, wallet recovery callers, regression fixtures/tests, and recovery documentation. No custom mint connector or transport is introduced.
Validation:
Previously unproven SDK transactions are no longer credited from status alone. Historical receipts already issued by older code are not automatically revoked. Exclusive wallet ownership remains required and is documented.
Stacked on #11; the diff contains only the issue #4 fix.
Closes #4.