feat: Unified BIP321 URI and 3-way toggle for payments#203
feat: Unified BIP321 URI and 3-way toggle for payments#203a1denvalu3 wants to merge 21 commits intomainfrom
Conversation
|
Just a visual thing but it might be nice if the tab container isn't changing width constantly. I know in CSS you can use flex box for the two smaller tabs to fill the remaining space evenly. Then have the tabs be the maximum size always that way its width isn't constantly changing. It's hard to tell if that would look better than the way it is now but I thought I'd mention it. |
|
or maybe if the selected tab always is the same maximum size, that might look good too! |
|
@Kelbie addressed |
|
Tested tap-to-pay on Sunmi v2 POS and Pixel 6awith Macadamia, Sovran on both Cashu tab and Unified tabs. Results:
Errors:
unified failure expected as they have no updated to support bip321. minibits works, but that's paying via ln according to @a1denvalu3. |
|
i have explored a slight ui improvement in this branch: https://github.com/cashubtc/Numo/tree/feat/bip321-uri-tab-ui-fix unified-example.mp4It replaced the icon and text tables tabs with a text only design. I think it works better to address these two issues:
|
|
Tabs look much better now! |
|
@a1denvalu3 opened up a PR for tab UI updates #208 |
Bug report related to this PRWhen fetching an invoice fails (e.g. network error) the resulting request string is no longer a BIP 321 string, but instead a regular CREQ. Steps top reproduce:
|
|
I did this deliberately. It's not a bug. |
77458de to
6d60961
Compare
- Update CDK to 0.15.2-rc.0 to access `toBech32String` for NUT-26 encoded payment requests. - Add 'Unified' tab alongside Cashu and Lightning tabs. Unselected tabs now visually shrink down to just display their respective icons. - Simplify WebSocket listeners logic to always fetch both Cashu and Lightning payment updates simultaneously in the background. - Construct unified BIP21 URI combining `creq=` and `lightning=` parameters when generating the Unified QR Code and supplying the Unified HCE NDEF tag. - Apply smooth LayoutTransitions when toggling tabs.
…ent UI stutter" This reverts commit 2b55504.
- Start NFC reading animation immediately upon any APDU interaction - Distinguish between read-only interactions and write transactions - Return to payment request screen without error if payer only reads - Surface failure screen only if connection drops during token write
- Distinguish successful NDEF completion from reading timeout - Suppress onNfcReadingStopped callback when payment finishes successfully - Ensures PaymentRequestActivity transitions directly to processing animation without flashing the failure screen or hiding the overlay
- Increases HCE service timeout from 2s to 10s to allow wallets like Minibits more time to process unified URIs and write the Cashu token without dropping the connection prematurely. - Increases the Activity's safety timeout from 5s to 15s accordingly to avoid racing against the extended HCE timeout.
…alletState StateFlow
755b70a to
6aec64c
Compare
Summary
cdk-kotlinto0.15.2-rc.0to utilizetoBech32String(NUT-26).bitcoin:?creq=...&lightning=...) explicitly using the new Bech32creqBformat for the Unified QR and NFC HCE payloads.creqAformat for the dedicated "Cashu" tab (both QR and NFC payloads) and Share button when on that tab, ensuring existing functionality is preserved.