clifordsymack / Electron-Cash

Electrum; Bitcoin thin client
MIT License
6 stars 3 forks source link

Allow user to optionally define their overall coin profile by toggling individual tiers. #88

Open emergent-reasons opened 5 years ago

emergent-reasons commented 5 years ago

There is a lot of discussion about enabling high tiers for businesses/whales. I think this proposal will provide a good UX for whales as well as all other types of users.

Toggle-able tiers

Immediate benefit:

It should resolve all the specific concerns I have heard so far:

Future shuffle-up benefit:

when shuffle-up is implemented, the profile becomes even more useful. It becomes a declaration of what kind of coins you want and the client can shuffle up/down to meet that.

Future preset profiles benefit:

This is questionable but possible in the future if all of the above works well. Some apps use preset profiles that cover a specific target group. For example:

cculianu commented 5 years ago

I think this proposal is perfect. It even naturally inspires me to compose a settings dialog of sorts for it.

I am going to go ahead and start on that now. I want to get this in before Jonald declares an absolute feature freeze. :)

cculianu commented 5 years ago

I think the initial dialog will be very simple with just checkboxes for all the tiers plus a low and high end coin cutoff you can set on top of that.

emergent-reasons commented 5 years ago

Great! What's the benefit of the additional cutoff? Maybe sometimes 10x is too big of a gap?

cculianu commented 5 years ago

Yeah sometimes 10x might be too big. Consider 100 BCH -> 1000 BCH etc.

Ok so I implemented a simplified version of this -- here is the pr: #90 .

I don't think I will do anything more sophisticated now -- but your suggestion is good and will leave this issue open.

emergent-reasons commented 5 years ago

:+1: The min/max is nice to have. I think many will thank you for adding it.

I want to add an extra note since there is a min/max setting now. The interaction of "min/max coin" and shuffle scales is non-trivial. Therefore if the selectable tiers are ever implemented, the tiers and min/max need to interact and avoid conflict with each other so that no surprising behavior happens. E.g. the user should not be able to set a minimum coin above their lowest tier and the reverse also.

I'm shit at design but I think the most intuitive layout would have the tiers with the max over the top tier and the min under the bottom tier.

 ______ biggest coin to shuffle
☐ 10
☑ 1
☑ .1
☑ .01
☑ .001
☐ .0001
 ______ smallest coin to shuffle

or maybe more noisy/explicit:

 ______ biggest coin to shuffle
☐ 100   ~ 1000-
☐ 10    ~ 100-
☑ 1     ~ 10-
☑ .1    ~ 1-
☑ .01   ~ .1-
☑ .001  ~ .01-
☐ .0001 ~ .001-
 ______ smallest coin to shuffle

or the same with number ranges stacked vertically instead of listed horizontally.

<insert great design here>
cculianu commented 5 years ago

I agree with this scheme -- definitely if they select tier above their minimum, the minimum should auto-populate in the UI to reflect that, then pop back when they unselect it. I agree.

I like your use of unicode here :)