Skip to content

Switching currencies for a pending outbound payment changes the sat amount / not roundtripping correctly #822

Description

@jharveyb

Android, version 2.8.1

tl;dr if I scan an invoice, and change the primary currency before making the payment (from sats to a fiat currency like USD or EUR), when I change it back to sats, the amount is different than the initial sat amount.

This can lead to the payment failing due to underpayment.

Repro flow;

  • Settings -> currency converter -> add 1 or more currencies
  • Back to main app page
  • Send
  • Pick a BOLT12 contact, or scan an invoice
  • E.x. amount of 1000 sats
  • click 'sat' to the right of the amount, select a fiat currency
  • the sat amount displayed in small font below the main field, is different than the sat amount originally entered in the send flow
    • E.x. 1000 sat -> USD -> 993 sat
  • Click 'USD' and switch the currency back to sat
  • The payment amount is now different than the original amount, and the payment may fail.

Seems like the exchange rate fetching may be delayed to when I select another currency for the displayed amount? Or the original sat amount is not cached while I'm on this screen? Or something else.

Supporting 2+ fiat currencies is pretty useful, for travel at least. Would be nice to have some check to make sure I don't underpay if I scan an invoice but then check the EUR amount of the payment before send (when my primary currency is USD).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions