Skip to content

Get Paid: unified transaction card - #152

Draft
BullishNode wants to merge 1 commit into
getpaid-2-55-nostr-keys-uxfrom
getpaid-2-56-getpaid-transaction-card
Draft

Get Paid: unified transaction card#152
BullishNode wants to merge 1 commit into
getpaid-2-55-nostr-keys-uxfrom
getpaid-2-56-getpaid-transaction-card

Conversation

@BullishNode

Copy link
Copy Markdown
Owner

Stacked on the Nostr keys PR. One card per Get Paid entry, showing everything the server knows — there is no separate "payment" object, only the invoice, so the card no longer links out to a second screen.

  • Every field of the history contract renders: receipt id (copyable, never presented as a chain txid), settlement kind stated explicitly, per-leg network, and the fiat-conversion override with all five 0.3 reasons (ambiguous_create now mapped and worded instead of falling through to "unknown").
  • The invoice's own facts merge in via the invoices facade: status with supporting lines only when they add information, face amount, pricing, paid/remaining/overpaid, tolerance, rate locked until, absolute expiry, paid via/at, accepted rails, and a per-event payment history.
  • Payer instructions render last and collapsed: lightning invoice, addresses, BIP21, per-rail payer amounts, quote rails, and the live payer quote rate — labelled distinctly from the R1 reference and R2 executed rates so the three can never be misread.
  • Organized into titled sections in merchant-priority order; every fact appears exactly once; long values truncate in place and copy in full; empty sections render nothing.

Reference doc for every field and value: GETPAID_TRANSACTION_CARD_REFERENCE.md (kept out of the repo).

There is no separate 'payment' — only the invoice — so the transaction
card stops linking out to a second screen and becomes the single place a
merchant reads everything about an entry, for every product (Lightning
address, invoices, Payment Page, POS).

- View-invoice button removed; the card renders every field of the
  history contract: receipt id (copyable, never presented as a chain
  txid), settlement kind stated explicitly ('Settled as: Bitcoin' instead
  of an absent section), per-leg network, and the fiat-conversion
  override with all five 0.3 reasons — ambiguous_create now mapped and
  worded instead of funneling to unknown
- invoice facts merged in via the invoices facade (locator-guarded,
  fail-silent): status with supporting lines only when they add
  information, face amount, pricing, paid/remaining/overpaid, tolerance,
  rate locked until, absolute expiry, paid via/at, accepted rails, and a
  compact per-event payment history
- payer instructions render last, collapsed: lightning invoice,
  addresses, BIP21, per-rail payer amounts, quote rails, and the live
  payer quote rate — labelled distinctly from the R1 reference and R2
  executed rates so the three can never be misread
- organized into titled sections in merchant-priority order; every fact
  appears exactly once; long values truncate in place and copy in full;
  empty sections render nothing
- shared invoice copy moved to the invoices public boundary
  (invoice_copy.dart) so Get Paid reuses it without cross-feature reach

Gates: analyze --fatal-infos clean; 516 tests green (21 new card tests).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants