Skip to content

Make wallet creation idempotent to prevent accidental destination cha… - #25

Open
jeffreyjoseph931-ship-it wants to merge 1 commit into
marvelousufelix:mainfrom
jeffreyjoseph931-ship-it:feat/idempotent-wallet-creation
Open

jeffreyjoseph931-ship-it wants to merge 1 commit into
marvelousufelix:mainfrom
jeffreyjoseph931-ship-it:feat/idempotent-wallet-creation

Conversation

@jeffreyjoseph931-ship-it

Copy link
Copy Markdown

…nges

  • Add is_active column to wallets table with unique partial index to enforce one-active-wallet-per-merchant invariant
  • Implement idempotent create_wallet() that returns existing active wallet on retry instead of creating duplicates
  • Update wallet_by_merchant() to return active wallet for payment requests and other operations
  • Use transactions to ensure atomicity of wallet creation
  • Add comprehensive tests covering idempotency, concurrency safety, and payment request integration
  • Update API.md documentation with clear idempotency statement

Fixes issue where repeated wallet-create calls silently changed the destination address used by new payment requests. Now retries safely return the same wallet.
closes #10

…nges

- Add is_active column to wallets table with unique partial index to enforce
  one-active-wallet-per-merchant invariant
- Implement idempotent create_wallet() that returns existing active wallet
  on retry instead of creating duplicates
- Update wallet_by_merchant() to return active wallet for payment requests
  and other operations
- Use transactions to ensure atomicity of wallet creation
- Add comprehensive tests covering idempotency, concurrency safety, and
  payment request integration
- Update API.md documentation with clear idempotency statement

Fixes issue where repeated wallet-create calls silently changed the destination
address used by new payment requests. Now retries safely return the same wallet.
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.

Make merchant wallet creation idempotent

1 participant