Uh oh!
There was an error while loading. Please reload this page.
feat: support incoming paykit requests - #1098
Conversation
Greptile SummaryThis PR adds support for incoming Paykit payment requests. The main changes are:
Confidence Score: 4/5The legacy backup restore path needs a compatibility fix before merging.
app/src/main/java/to/bitkit/repositories/PrivatePaykitRepo.kt
|
| Filename | Overview |
|---|---|
| app/src/main/java/to/bitkit/repositories/PrivatePaykitRepo.kt | Adds private resolution and consumed-version persistence, but the new backup envelope breaks restoration of legacy backups. |
| app/src/main/java/to/bitkit/repositories/PaykitPaymentRequestRepo.kt | Adds synchronized request intake, filtering, expiration, and acceptance. |
| app/src/main/java/to/bitkit/viewmodels/AppViewModel.kt | Connects request polling and presentation to the existing payment flow. |
| app/src/main/java/to/bitkit/services/PaykitSdkService.kt | Adapts the service to separate public and private Paykit APIs and advertises request support. |
Sequence Diagram
sequenceDiagram
participant Contact as Paykit Contact
participant SDK as Paykit SDK
participant Requests as Payment Request Repo
participant App as App View Model
participant Private as Private Paykit Repo
participant Wallet as Send Flow
Contact->>SDK: Publish payment request
Requests->>SDK: Receive and query requests
Requests-->>App: Emit actionable request
App->>Private: Resolve private payment details
Private->>SDK: Resolve after consumed version
SDK-->>Private: Endpoint and list version
Private-->>App: Open payment details
App-->>Wallet: Show confirmation
Wallet->>App: User approves
App->>Requests: Accept request
App->>Private: Persist consumed version
App->>Wallet: Submit payment
Reviews (1): Last reviewed commit: "feat: support incoming paykit requests" | Re-trigger Greptile
Uh oh!
There was an error while loading. Please reload this page.
5050c1e to
edb688fCompareeda7df2 to
4457134Compare57626b7 to
1ceb420Compare4457134 to
ece10d4CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
1e944d0 to
75610d7Comparecf14578 to
44d58d2Compareben-kaufman
commented
Aug 3, 2026
Restacked onto the current #1084 head after its force-push. The request/review-fix commits are signed; the retry fix previously referenced as The current |
ec8ee8c to
41ddb6bCompare44d58d2 to
796bc2bCompare
jvsena42
left a comment
There was a problem hiding this comment.
Re-reviewed the changes since my last pass. All 8 comments I raised are addressed — resolved those threads. Verified locally on 796bc2b1: the Paykit unit tests (PaykitPaymentRequestRepoTest, PrivatePaykitRepoTest, PublicPaykitRepoTest, AppViewModelSendFlowTest, PaykitSdkServiceTest, ContactPaymentSettingsRepoTest) all pass and detekt is clean.
A few new findings below. Only the first one blocks.
One extra nit that has no diff line to attach to: PrivatePaykitRepoTest.kt:32 — import org.mockito.kotlin.anyOrNull is now unused (base had 4 usages, this branch has 0). detekt reports it as NoUnusedImports, but ignoreFailures = true in app/build.gradle.kts keeps CI green.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
ben-kaufman
commented
Aug 4, 2026
All fresh review findings are addressed in |
…/batch-paykit-contact-cleanup
…leanup refactor: batch paykit contact cleanup
jvsena42
left a comment
There was a problem hiding this comment.
Only one finding worth adressing from last changes
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
jvsena42
left a comment
There was a problem hiding this comment.
utAck, implementation still not end-to-end testable
Uh oh!
There was an error while loading. Please reload this page.
Description
This PR builds on #1084 to support incoming Paykit payment requests:
0.1.0-rc39and uses its separate public and private payment resolution APIs.Payment proofs and receipts remain out of scope.
References:
Preview
N/A — the existing payment UI is reused, and no media is attached.
QA Notes
Manual Tests
Automated Checks
PaykitPaymentRequestRepoTest.kt: request mapping, expiry, lifecycle, and acceptance.PrivatePaykitRepoTest.kt: separate resolution, consumed-list persistence, and prevention of private payment-detail reuse.AppViewModelSendFlowTest.kt: presentation, polling, approval order, expiry, and duplicate or pending consumption.