Skip to content

feat: add generateIdempotencyKey for canonical payment deduplication (Closes #612) - #627

Open
waterWang wants to merge 1 commit into
Stellar-split:mainfrom
waterWang:feat/612-generate-idempotency-key
Open

feat: add generateIdempotencyKey for canonical payment deduplication (Closes #612)#627
waterWang wants to merge 1 commit into
Stellar-split:mainfrom
waterWang:feat/612-generate-idempotency-key

Conversation

@waterWang

Copy link
Copy Markdown

Add generateIdempotencyKey for canonical payment deduplication

Implements #612.

Changes

  • src/dedup.ts: Added:
    • generateIdempotencyKey({ invoiceId, payer, amount, nonce? }) — deterministic SHA-256 hex key from "{invoiceId}:{payer}:{amount}" with optional :{nonce} suffix (Node.js crypto.createHash, no external deps)
    • isKnownKey(key) / registerKey(key) — backed by an in-memory Set
    • clearKeys() — test teardown helper
  • src/index.ts: Exported generateIdempotencyKey, isKnownKey, registerKey, clearKeys, and the GenerateIdempotencyKeyParams type.
  • test/idempotencyKey.test.ts: 9 unit tests covering determinism, hex format, different-amount/different-payer/different-nonce key divergence, and key registration lifecycle.

Test results

✓ test/idempotencyKey.test.ts  (9 tests) 13ms
Tests  9 passed (9)

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.

1 participant