feat: add Paykit subscriptions - #1186
Conversation
This comment has been minimized.
This comment has been minimized.
|
could test the PR stack feature for this case |
f189535 to
a1a7907
Compare
2eecc75 to
baf9894
Compare
9e4ee27 to
19823e6
Compare
baf9894 to
5a876f8
Compare
5a876f8 to
bb2f12f
Compare
bb2f12f to
050b32b
Compare
82d6c73 to
e1053b0
Compare
1cbcc6f to
4cfdf4e
Compare
e1053b0 to
850c252
Compare
4cfdf4e to
dd53772
Compare
|
@jvsena42 Fixed in dd53772. The duplicated fiat value came from replacing the subscription review sheet while its content was still composed. The flow now reuses the existing dismiss-delay-present sheet transition and waits for that transition before validating the destination. The focused send-flow regression passes. |
ovitrif
left a comment
There was a problem hiding this comment.
prepareHardwareContactPayment marks the on-chain proof started before the hardware device signs, but onHardwareSignCancelled and send-sheet dismiss never call failOnchainPayment. The due request then stays in inFlightRequestIds and a later prepare() fails with OperationInProgress.
Also:
- Several new Kotlin sites still use inline fully-qualified names where an import would do.
wallet__payment_request_timestampis unused afterpaymentRequestDateTimewas removed.
850c252 to
bac8656
Compare
dd53772 to
9bd7677
Compare
bac8656 to
6bb8501
Compare
d0bf6c2 to
e84d74a
Compare
3b32ae0 to
e623010
Compare
e84d74a to
35c0b4c
Compare
3e5bab0 to
bbce563
Compare
09f85e6 to
92b10eb
Compare
|
Updated per the Figma clarification: the overview now shows a normalized Monthly Cost across all active subscriptions, independent of whether their current periods are paid. Daily, weekly, monthly, and yearly recurrences are annualized to a monthly value; each subscription is rounded to the nearest satoshi before safe aggregation. The obsolete calendar-month refresh was removed, and regression coverage includes recurrence normalization, paid active subscriptions, inactive exclusions, and low-value rounding. |
ovitrif
left a comment
There was a problem hiding this comment.
Could not drive the six Manual Tests on this head. Two emulators onboarded with Paykit enabled and paired as contacts, but Bitkit has no create-subscription path, so SubscriptionsScreen stayed empty.
QA Notes
Pixel_8_Pro emulator-5554 and Pixel_10_Pro_XL emulator-5556 (dev/regtest). Onboarding, the Paykit toggle, the Subscriptions empty state, and mutual pubky pairing worked. Immediate-start, retry, confetti, future-start notification, bell-queue, and cancel were not exercised.

Description
Adds the payer side of Paykit subscriptions, stacked on #1199, which is stacked on #1178.
This PR intentionally covers payer-side receipt only. Subscription creation, Discover, automatic payment without confirmation, and renewal are not included because they are outside this MVP or are not currently exposed by Paykit.
Dependencies:
0.1.0-rc46Preview
Final Android and cross-platform proof recordings were completed locally; they are not attached to the PR.
QA Notes
Manual Tests
Automated Checks
testDevDebugUnitTestsuitePaykitPaymentRequestRepoTest,PaykitPaymentRequestRepoSubscriptionTest,SubscriptionsScreenTest, andAppViewModelSendFlowTestcompileDevDebugKotlincompileDevDebugAndroidTestKotlindetekt --rerun-tasksassembleDevDebug, install, and cold launch on API 36 emulatorCodexBullTlsUiApi36git diff --check