Skip to content

Surface failed and pending outbound payments in list_transactions#89

Open
hash-money wants to merge 1 commit into
lightningdevkit:masterfrom
emergent-money:fix/surface-failed-outbound-payments
Open

Surface failed and pending outbound payments in list_transactions#89
hash-money wants to merge 1 commit into
lightningdevkit:masterfrom
emergent-money:fix/surface-failed-outbound-payments

Conversation

@hash-money

Copy link
Copy Markdown
Contributor

list_transactions currently hides every payment whose status isn't Completed, on both mapping paths. The comment justifies hiding issued-but-unpaid inbound invoices — but the condition also swallows failed and in-flight outbound payments, so a failed send leaves no record at all. A wallet UI built on list_transactions can't show users what happened to a payment they made (downstream report: emergent-money/graduated-wallet#328 — our UI already renders a failed status for records it receives, they just never arrive).

This keeps the unpaid-inbound filtering and surfaces outbound attempts regardless of status:

  • should_surface_lightning_payment_without_metadata gains the payment direction; outbound always surfaces.
  • The trusted-payment fallback branch gets the same !outbound && guard.

Unit tests: failed/pending outbound listed, inbound failure (expired unpaid invoice) still hidden; existing pending-onchain cases updated for the new parameter. cargo test -p orange-sdk --lib 17/17.

Both mapping paths hid every non-Completed payment. The comment
justified hiding issued-but-unpaid inbound invoices, but the condition
also swallowed failed and in-flight *outbound* payments — a failed send
leaves no record in the wallet's transaction list at all, and a UI
built on list_transactions cannot show the user what happened.

Hide only non-completed inbound records (unpaid invoices/quotes stay
noise); outbound attempts always surface. Applies to both the
self-custodial path (should_surface_lightning_payment_without_metadata
gains the direction) and the trusted-payment fallback branch.

Observed downstream (emergent-money/graduated-wallet#328): a failed
BOLT11 send was absent from history while the UI already renders a
'failed' status for records it receives.
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.

1 participant