bitkit icon indicating copy to clipboard operation
bitkit copied to clipboard

Savings spend flow redesign

Open catch-21 opened this issue 1 year ago • 2 comments

This issue has been converted from a bug that I raised before understanding all the intentions of this savings spend flow.

Behaviour of certain values in the on-chain savings spend flow are unclear and can be confusing, as I've outlined in the comment below.

It would be good to discuss how to improve the UX in this area so it is suitable for basic and advanced use.


OLD Bug issue:

Describe the bug

When using manual coin selection, it is possible to change the available savings amount by deselecting an input. I'm not sure that this extra validation is useful, but is annoying that I need to go forwards to re-select inputs and go back again to increase the amount being spent. Perhaps only the chosen fee should impact the available savings.

In addition to the above, it seems that the total required is also impacted in an unexpected way on the coin selection screen. See attached screengrab for details.

Reproduce

  1. With manual coin selection enabled and two or more utxos
  2. Input/Scan an onchain address
  3. Input a comfortable amount to send
  4. Deselect an input and continue to the review page
  5. Go back the amount input page
  6. Observe reduced available savings

Screenshots / Recording

NOTE: Notice that not only is the available savings affected by manual coin selection (at 20 seconds) but also the total required goes from 51180 to 31180 on the coin selection page (at 52 seconds).

https://github.com/synonymdev/bitkit/assets/74595920/5ccfa3d0-c531-4a5a-a4c3-fb7836194050

Operating system

Android 13 TKQ1.220829.002

Bitkit version

v117 ae82edd7a3ab8ff771cbf945729e41c43c5ed1f2

Log output

No response

catch-21 avatar May 10 '24 16:05 catch-21

If you deselect a UTXO you can't pull sats from nothing. This view is in the context of the current transaction, so their available savings is referencing how much they can spend given their currently selected UTXO set. So for example, the user wants to send all sats from only one UTXO. They deselect all UTXO's navigate to adjust their amount and tap MAX. If they want to spend from their full balance they either leave the UTXO's selected or disable manual selection. We can discuss various ways of displaying this type of information to the user in a future dev call.

coreyphillips avatar May 10 '24 16:05 coreyphillips

After further investigation, it appears that what I thought was buggy UI is somewhat intentional. Here are some confusing behaviours I experienced that we should consider in a redesign:

  1. When entering Bitcoin amount, pressing the 'Max' button does more than simply inputting the maximum possible value. It applies a maximum state to whole tx construction flow and is impacted by each subsequent choice made, such as coin selection on the next screen.
  2. The label 'Available (Savings)' is ambiguous. My assumption was that this is my total savings balance minus fee. This is true until inputs are manually selected at the next screen, which affect this value. On the next screen, choice of fee also changes this value.

We should make it clear that this savings spend flow is all connected. For example, display the available balance at all times throughout and have an indication that max available savings is not an absolute indication for the current utxo set, but a dynamic value that is impacted by advanced user decisions.

catch-21 avatar May 13 '24 10:05 catch-21

I believe this can be closed, implementation tracked here: https://github.com/synonymdev/bitkit/issues/2081

pwltr avatar Aug 19 '24 15:08 pwltr