PIVX-Project / PIVX

Protected Instant Verified Transactions - Core wallet.
https://www.pivx.org
MIT License
528 stars 715 forks source link

[RFC] Default status of Transparent/Shielded in Send tab. #2396

Open EricStanek opened 3 years ago

EricStanek commented 3 years ago

Describe the issue

In the Send tab, if I select 'Shielded' for the 'Select which coins to send' radio button, and then close the wallet and reopen it, the button is back to 'Transparent'.

We should do one of the following:

  1. Remember the state of the radio button when the wallet is closed, and initialize at that state when it is opened again.

or.

  1. Always start with the radio button at 'Shielded'.

Option 1 better supports respecting 'Freedom of Choice' for the user. Option 2 better supports Privacy, while not really impacting 'Freedom of Choice', since it is only 1 click anyways.

Leaving the initial setting as 'Transparent' will 'feed the trolls' as somehow they interpret a single click being required, as defining a 'default'.

Let's discuss.

random-zebra commented 3 years ago

I agree that it should be changed. Personally don't have a strong preference for one solution over the other. They are both simple and effective.

furszy commented 3 years ago

Leaving the initial setting as 'Transparent' will 'feed the trolls' as somehow they interpret a single click being required, as defining a 'default'.

This will work in the same way in the other way around, people will tell you that the 'default' is shield because that is the init option and troll about it. And then what? Let's please do not base any convo that will affect the user experience in what a random keyboard warrior said in a reddit/twitter thread.


Side from that, i have this partially coded in a local branch. Storing the user selection in a local settings only. Need to revive that work.

The init in shield for the coin selection isn't the best atm as most exchanges does not provide shield send capabilities, which will make the user experience a bit harder as they will not have shield PIVs to spend. But.. to solve that, can make the coin input selection smarter and start it in the balance type that has more coins to spend (so if the user receives PIV from the exchange, it will start in the transparent side. If it has more shield PIVs than transparent PIVs then it will be in the shield side).

So, in other words. It's not one or the other, it could be both options in the future, plus make the init type selection smarter. (still, we should be more than fine for now only storing the init option in the local settings and done)

EricStanek commented 3 years ago

For now then, can we agree to just store the prior setting so that it remains unchanged from the user selection during wallet restarts? I think that covers all bases.

Basing the selection on the larger balance creates issues too. For example, I may make the decision to ALWAYS send via Shield, and then one day comes along that I move a large amount from an exchange to my wallet, and then my next P2P will be Transparent unless I remember to change the setting. Sure, we can try to educate the user on this, but that is not great UX.

furszy commented 3 years ago

For now then, can we agree to just store the prior setting so that it remains unchanged from the user selection during wallet restarts? I think that covers all bases.

Yep, that is what have coded locally and mentioned it there. Need to revive that work and push it.

we can try to educate the user on this, but that is not great UX.

Absolutely, the goal must never be educate people by our own, one by one, that is not what a good UX is about, it's just an ants work that does not scale. The product needs to be as much auto-sufficient as possible but.. that is a longer topic, we would be talking about a non-advanced visual mode for the core wallet GUI or another product running on top of pivxd. (this idea popped up some time ago and it's feasible but not for v6).

About the balance inputs type selection, would have a settings option for the shield/transparent selection, so the user choice will always have more weight than any other input type selection algorithm. But still, that is not really relevant, there is a difference between an experimented user who always want to send from the shield balance and a new user who does not understand what transparent and shield coins are, nor how to get them and only has access to an exchange. In every scenario, the app needs to present the action and the result properly so the user does not make mistakes.