feat: add private payment requests - #1172
Conversation
This comment has been minimized.
This comment has been minimized.
ba7f745 to
e8183a5
Compare
ovitrif
left a comment
There was a problem hiding this comment.
Looks good. Durably queued requests stay confirmed after an identity change, and a consumed private payment list is never reused or replaced by public details.
5120677 to
7877465
Compare
Note this cc. @jvsena42 @piotr-iohk |
As far as paykit-server it would be good to have a staging deployment since paykit e2e tests are run against our staging regtest and also using staging homeserver (as far as I understand that was the plan, see: #1084 (comment))
|
af0aaa4 to
e2516e9
Compare
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jvsena42
left a comment
There was a problem hiding this comment.
Review of the payment request flows. just compile and just test pass; the ComposeUi instrumented lane was run on a Pixel 9 AVD and all 15 new tests pass (after 864f008 fixed CreatePaymentRequestScreenTest querying a merged-semantics node). The 8 other failures in that lane reproduce on master and are unrelated.
Findings inline, roughly most-severe first. The SheetHost dismissEnabled work looks sound to me: programmatic hide() bypasses confirmValueChange, the disabled scrim sits under the sheet, and the inner NavHost BackHandlers still take priority over the swallowed sheet back handler.
This PR adds private Paykit Payment Requests to Bitkit.
Description
0.1.0-rc44and adds local E2E homeserver configuration plus safe cold-start restoration for externally managed Pubky sessions.The request payload itself remains SDK-backed and durable; Bitkit persists only encrypted, identity-scoped presentation suppression, not a duplicate request queue. Payment proofs and receipts remain out of scope.
Dependencies:
41cda2567226a690a012770017d5e7c1d49e2a2b.Preview
N/A — proof recordings were completed locally and are intentionally not attached to the PR.
QA Notes
Manual Tests
Automated Checks
PaykitPaymentRequestRepoTest.kt: covers mapping, eligibility, proposal delivery, rejection, expiry, identity-scoped presentation state, and action serialization.PaykitSdkServiceTest.kt: covers exact identity enforcement and safe deferred session restoration.AppViewModelSendFlowTest.kt: covers automatic/manual presentation, sheet transitions, identity changes, newer-list retry, strict private resolution, and payment lifecycle races.PaymentRequestExpirationTest.kt: covers expiry selection and retained draft state.SheetHostTest.kt: covers locked sheet dismissal and scrim input isolation during durable proposal creation.git diff --check.