Closed dmtrjsg closed 2 years ago
Note: On a group call with Bedeho and @dmtrjsg, we decided not to take any action on this right now (on the Atlas side), and that we'll revisit this (together with all the other items, such as the comment input) once the transaction fees actually become a thing.
@dmtrjsg @kdembler @bedeho Here's a 19 min (13 min at 1.5x speed) video update in which I talk about potential solutions for the scope outlined above, and also for #3093, as I believe these issues are actually connected (and I'm explaining why in the video). https://www.loom.com/share/aad0a94c289948248757af088c96c2de
Figma prototype can be found here — https://www.figma.com/proto/2Snx8rlijd8iD6btfbtY6j/Additional-messaging-to-new-accounts-creation-(faucet)?page-id=1134%3A10541&node-id=1138%3A11405&viewport=-40310%2C-124%2C1.9&scaling=min-zoom
Ah, it's always a pleasure to review your work Adam!
So starting from the end, I think proposed changes to NFT and video workspaces work well.
Regarding funds, I'm not sure if I would put "seeing total balance of all my channels" as a con, I don't see it as a high value info. One thing to consider, is that showing total balance (member + channels) may be confusing - for example, your channel may have ongoing revenue split, that would mean that even though your channel has 1k JOY, only some part of that will go to your member account, so not all of this total balance is usable to you personally. Having this in mind, personally I would go for option 2, so combined member dropdown, but without total balance at the top.
Regarding priority of spending locked funds - I didn't get any confirmation of whether free funds are spent first, but that was just what I noticed during tests, so I'm fairly sure it is that way. My guess is that changing would not be trivial so most likely it will be like this forever. But @bedeho please chime in, you must have better info.
If the above is the case indeed, I think one thing we could consider is showing locked funds only if the user's free balance is below certain threshold. For example, let's say I just created a membership via faucet and got some locked funds. Then I would see those in my balance and see that indeed I can spend those on fees. However, if I buy some JOYs from another person and get hundreds of JOYs into my account, locked funds are not as important to me now, so we could just hide them. This could create some confusion as to why those funds disappeared but we probably could alleviate that somehow.
@toiletgranny nice work ⭐
1️⃣ Showing balances
Option 2 really works with me as well.
I think we need to only show total balance for user accounts, and add different lock icons next to the total amount. On Hover we can expose amounts locked and purposes for which these locked tokens can be used. Adding more numbers next to one another will confuse consumers imho.
Locked funds are not separate to transferable funds, moreover multiple locks can be added to single account. Locks sort of overlap and not stack up. So you can have 100 total joys, out of which 80 have lock 1 and 50 lock 2. There are more nuances about it, but for the purpose of this design I believe the best is to go with Total balance always, and show locked balance only on hover on lock.
When user tries to perform an action which requires transferable balance, we can explain teh concept of locks and possible use cases in the TX error/ validation error tooltip.
2️⃣ Informing about channel balance
Infobox could certainly work, but I'd
3️⃣ I'd also include tooltip to TX fees, that these are paid from membership balance for all TX and not the channel balance. (unless im mistaken)
@kdembler prob remembers better on channel vs membership balance accounts use cases, but I'm 95% certain.
Regarding priority of spending locked funds - I didn't get any confirmation of whether free funds are spent first, but that was just what I noticed during tests, so I'm fairly sure it is that way.
They are :)
I'd also include tooltip to TX fees, that these are paid from membership balance for all TX and not the channel balance.
Good point!
Thank you for taking the time to review it and come back with thorough feedback, guys! I really appreciate it. I had to jump back to Figma with it and iterate some more to come back with follow-up questions. And since @dmtrjsg's feedback is not in opposition to @kdembler's one (and is actually extending it) I'll be focusing only on the comment from Dima.
I think we need to only show total balance for user accounts,
I'm afraid I don't understand, could you please rephrase? Did you mean showing the total balance of all my connected memberships?
Locked funds are not separate to transferable funds, moreover multiple locks can be added to single account. Locks sort of overlap and not stack up. So you can have 100 total joys, out of which 80 have lock 1 and 50 lock 2. There are more nuances about it, but for the purpose of this design I believe the best is to go with Total balance always, and show locked balance only on hover on lock.
When user tries to perform an action which requires transferable balance, we can explain teh concept of locks and possible use cases in the TX error/ validation error tooltip.
Right, that's certainly one way to simplify this, which is very nice!
move this to the confirmation page and still keep the short message visible "Proceeds go to your channel account"
Any specific reasoning behind this? I thought that mentioning this information is more appropriate at the moment of you specifying how much you want to receive.
Change copy saying that you can only withdraw from channel balance to your personal balance (unless I'm mistaken)
Isn't it what it already says?
3️⃣ I'd also include tooltip to TX fees, that these are paid from membership balance for all TX and not the channel balance. (unless im mistaken)
Cool! Just to make sure, is this the tooltip you were thinking of?
@toiletgranny
Any specific reasoning behind this? I thought that mentioning this information is more appropriate at the moment of you specifying how much you want to receive.
Best to do on the confirmation screen, not to break the flow. This is the pattern for all disclaimers and info boxes, I think at this point attention is hightened. less cluttered forms are always beneficial :)
Change copy saying that you can only withdraw from channel balance to your personal balance (unless I'm mistaken) Isn't it what it already says?
just dorp "or transfer", only withdraw can be done from channel balance afaik
I'd also include tooltip to TX fees, that these are paid from membership balance for all TX and not the channel balance. (unless im mistaken) Cool! Just to make sure, is this the tooltip you were thinking of?
yes, correct
My concern with this idea is that at first, we tell users that they have this much, but when they try to spend what they believe they have, only then do we come up with "well, actually, you don't really have it", which naturally bursts frustration. Aren't you guys afraid of this? If so, would it make sense to do the opposite? What I mean is: if we need to make sacrifices and display just one value at a time, let it be the spendable amount. And then, if you hover over it, or find yourself in some other potential future view in the app, which gives you a more detailed breakdown of your portfolio, only then do you learn that "hey, actually, I'm going to have more in the future."
In most cases free funds will be majority, also locked tokens are spendable but for some scenarios only. So locks is a subset of totals.
What locks do we talk about here anyway? Vesting locks from creator tokens? Or faucet tokens lock? Because, as far as I understand, the difference between the two is that tokens under a vesting schedule will eventually become spendable, whereas faucet tokens are spendable right away, but only for transaction fees — is this correct?
yes correct, Invitation locks, CRT vesting locks for near future
but not ruling out other locks> member vesting locks, account bounding locks, gift locks, staking locks, voting locks. For the purpose of right now only invitation locks are concerned.
@kdembler, @dmtrjsg Ok, guys, I hope this is what you had in mind: https://www.loom.com/share/37afe785a39f4f948898dbe21ecf44a2
Hey @toiletgranny , good stuff, almost there! Comments below
Would it not be better to include information about the destination account for royalties to the same info box as for NFTs (conf step)
I was thinking along the lines of showing a Lock icon 🔒 next to the balance and on hover/ tap display a tooltip showing smth like:
🔒 Invitation Lock: 300
✔️ Can be spent on transaction Fees 🚫 Cannot be transferred or withdrawn 🔑 Cannot be be unlocked
cc @kdembler
@toiletgranny also I believe the above approach is better to support this statement>
We can use the same mechanism that's currently used for transactions fees (because it's the default behavior). This means that if I have 5 JOY locked with invitation lock and I pay a transaction fee of 1 JOY, I'm left with 4 JOY free balance, but I still have a lock for 5 JOY. Now if someone transfers 2 JOY to me I'll only have 1 JOY of transferable balance.
@dmtrjsg Right, I see, thanks for the additional info!
I admit that at first, it's a little confusing that what we call a free balance might as well be entirely locked. And I think it's safe to assume that a common mental model is to perceive "locked" as the opposite of "free". But as long as we don't intend to show it like that, I mean literally, anywhere in the Atlas app, I guess there isn't anything we should be concerned about right now.
But, just to ensure my understanding of the invitation lock is correct:
My two cents: why can't Atlas just follow the same balance terminology as in Pioneer? as I say here https://github.com/Joystream/pioneer/issues/3501#issuecomment-1215776839
The concept of free balance
as used by the blockchain is just bonkers, it should be nowhere near users :D
We just had a discussion about this on a call, we will only show transferable balance (free - locked
) by default and show locks only in a tooltip
We just had a discussion about this on a call, we will only show transferable balance (free - locked) by default
So transferable is basically "what can I send NOW", as far as the user is concerned. I am not sure if free
in your formula is the same as the free
in the chain, if so, you should check whether it includes so called reserved funds as well, as distinct from locked funds. Also, remember that you probably want - max{all locks on account}
, as there may be many of them, e.g. vesting, invitation, role staking, etc., and doing max
gets you the net effect of all of them.
That's useful, thanks. I will certainly come back to this while we do the implementation
Alright, @kdembler, all changes are ready to be reviewed and implemented based on the designs, documentation, and changelog, which you can find here:
Scope
Context
Faucet gives spendable 10 tJoys while new membership gets 100 of locked funds (spending only on transaction fees allowed). Also channel balance is not visible to the viewer
Scope
┆Issue is synchronized with this Asana task by Unito