Skip to content

feat(payment): track pending transfers after expiry - #30

Merged
Alike001 merged 1 commit into
mainfrom
feat/pending-after-expiry
Aug 30, 2026
Merged

Alike001 merged 1 commit into
mainfrom
feat/pending-after-expiry

Conversation

@Alike001

Copy link
Copy Markdown
Owner

Summary

  • detect exact transparent invoice outputs in the Zcash mempool using getrawmempool and getrawtransaction
  • persist pre-expiry candidates by transaction ID, output index, integer zatoshi value, mempool entry time, and transaction expiry height
  • continue polling as Payment pending after the invoice timer ends, without generating a receipt or claiming settlement
  • accept a previously proven candidate if it is mined after invoice expiry, and expire it only after its Zcash expiry height passes unmined
  • add desktop/mobile checkout messaging that warns customers not to resend while the transaction is unresolved
  • document the sixth RPC method and the updated demo flow

Database

Adds migration 0002_track_pending_payments.sql. The existing vercel-build command applies it before the Next.js build.

Verification

  • npm run format:check
  • npm run lint
  • npm run typecheck
  • npm test -- --maxWorkers=2 --reporter=dot — 147 passed, 1 skipped
  • npm run secret:check
  • npm run build
  • rendered Chrome QA at 1440×1000 and 390×844; pending warning, RPC evidence, TxID copy control, and mobile wrapping verified

Safety notes

  • mempool evidence remains pending and cannot create a receipt
  • late-mined outputs are accepted only when the same output was proven in the mempool during the invoice lifetime
  • provider failures remain unavailable state, never proof of payment or non-payment
  • QuickNode and database credentials remain server-side

Closes #29

Copilot AI lite review requested due to automatic review settings August 30, 2026 11:00
@vercel

vercel Bot commented Aug 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
zecceipt Ready Ready Preview Aug 30, 2026 11:00am

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Alike001
Alike001 merged commit 35e9b1e into main Aug 30, 2026
4 checks passed
@Alike001
Alike001 deleted the feat/pending-after-expiry branch August 30, 2026 11:03

This branch was successfully deployed

1 active deployment
Preview — c5dc7c05 Deployed Aug 30, 2026 by vercel[bot]
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.

Track pending payments safely after invoice expiry

2 participants