feat: send paykit payment proofs - #683
Conversation
This comment has been minimized.
This comment has been minimized.
8801387 to
c5d04c7
Compare
ovitrif
left a comment
There was a problem hiding this comment.
On-chain payment proofs cannot recover after a store-load failure, so a successful send can still leave the requester without proof.
ovitrif
left a comment
There was a problem hiding this comment.
QA Notes
Ran on iPhone 17 Pro simulator and Pixel_9a emulator on regtest.
- iOS created a private request for Android, Android paid, and iOS recorded the proof against that request.
- Android created a private request for iOS, iOS paid, and Android recorded the proof against that request.
Approve.
fee8601 to
01c4164
Compare
01c4164 to
bcf1d8a
Compare
|
Added the cross-platform proof-state hardening in c3f2d8c: corrupt persisted proof state is discarded instead of permanently blocking reconciliation, empty state removes the Keychain entry, and the frequent refresh path returns before calling Paykit when there is nothing to reconcile. The full payment-proof suite passes 22/22 on the restacked subscriptions head. |
c3f2d8c to
281b865
Compare
|
Follow-up after the final cleanup: the hardening commit is now |
|
CI note: the remaining |
This PR sends a Paykit payment proof back to the requester after Bitkit successfully pays an incoming private payment request.
Description
This PR is stacked on #676. Companion Android PR: synonymdev/bitkit-android#1178
Linked Issues/Tasks
N/A
Screenshot / Video
N/A — there are no UI changes.
QA Notes
Manual Tests
Automated Checks
PaykitPaymentProofServiceTests.swift: 8 tests cover restart retry, duplicate suppression, invalid Lightning preimage rejection, failed-payment cleanup, exact on-chain proof submission, overlapping retries, wallet-store clearing, and completed-proof persistence failure.git diff --checkpassed.