Repository navigation
Align monitor and wallet with path payments and pending claimable balances - #588
woahwhattheheck wants to merge 8 commits into
Conversation
Use scoped transaction-lookup mocks for confirmed404 and503 responses. Keep production unavailable-vs-not-found behavior unchanged and validate only these two focused decisions.
|
Current head is Two isolated checks executed the actual production decision functions with the candidate test cases and passed without network calls. The SDK/module initialization and broader backend suite were outside that check. This forward uses I am requesting acceptance and compensation for this existing contribution. Please confirm reward eligibility, payable allocation, required creator/platform approval and payout timing for the original |
Closes #585.
The backend monitor previously filtered out path payments and rebuilt each observed payment as one synthetic operation. That could disagree with manual verification, lose the delivered credit asset, and incorrectly accept the first payment in an ambiguous transaction. Claimable balances also never reached the seller's event feed.
Changes
verifyHorizonPaymentas POST verify; preserve multi-operation selection, ledger settlement time and per-record checkpoints.CLAIMABLE_BALANCE_RECEIVEDwith amount, asset and predicate. The invoice stays pending. Memory storage and a PostgreSQL partial unique index deduplicate cursor replay.Validation
Both packages installed from their existing lockfiles with
npm ci; neither lockfile changed.The focused commands and fixture interpretation are in PAYMENT_MONITOR.md.
Public Testnet evidence
The committed receipt bundle retains 15 exact public HTTP response bodies with URLs, capture timestamps, byte counts and SHA-256 hashes. It includes real strict-send, strict-receive, native claimable and USDC claimable transactions. The tests consume unchanged strict-receive and memo-bearing claimable envelopes against constructed test invoices.
The strict-send capture has no memo. Its unchanged destination mapping is tested separately from an explicitly synthetic memo-bearing derivative. The legacy path rows also remain labeled synthetic. No live Quittance invoice or newly submitted transaction is asserted.
PostgreSQL rollout and acceptance
Apply
db/schema.sqlbefore enabling this monitor sopayment_events_claimable_balance_uniqueexists. Theclaimable-event-postgres.integration.test.tsacceptance checks concurrent writers, schema replay and a fresh connection in its own schema whenDATABASE_URLis provided.This check passed on implementation head
66f18e99a62c8373b5e487100d99f49368e2576fin native run 37204455112, job 111442631510, using Node 24.21.0, npm 11.19.0 and PostgreSQL 16.15. Result: 1 test passed, 0 failed, 0 skipped; 93.757396 ms test time, 413.141959 ms total. Command, frombackendwith the isolated runner database configured:The combined workflow subsequently failed in a separate Q584 Horizon 404 fixture. The Q585 PostgreSQL acceptance step itself succeeded.
GrantFox OSS original-contributor reward registration
/claim #585 — I,
@woahwhattheheck, claim this original PR #588 as my contribution for issue #585 and request applicable conditional contributor compensation under the GrantFox OSS campaign. The canonical issue-side registration is the original-author claim. Please review the delivered work, confirm eligibility/accepted reward allocation, creator/platform approval and payout details. The “Maybe Rewarded” label is not itself a monetary award or disbursement.