-
Notifications
You must be signed in to change notification settings - Fork 119
ui: refactor wallets view #3201
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
One thing that's important to keep in mind is that the UI must degrade gracefully when we don't have access to fiat exchange rates, which come from a third-party service. In the future, Mesh will provide those, but even then, the UI must work without them. It's challenging from a design perspective. |
So the transactions section is going away? |
Paginated historical transactions are going to a modal dialog. I think what I want to do, though, is to have unfinalized transactions, which are transactions with less than the asset-specific requisite number of confirmations, either displayed outright, or we can display some kind of alert with an option to expand a card or something. We can keep those in memory and track them on the front end. I don't want to generate a bunch of db calls every time the user switches their displayed ticker (multiple calls because 1 ticker >= 1 asset). But more importantly, if they don't have confirming transactions, the data just clutters up the UI. They can click a button to see them. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks cool, this will be a huge improvement. I have both the polygon bridge and the USDC bridge work almost ready.
I know it's in draft, but I just noticed that the box for revealing the receiving address does not work if the wallets for all the blockchains a token is on are not created.
I think WBTC could be it's own asset. This is how it's handled on CEXes also, and would probably make things easier since we won't have to mix UTXO and EVM assets. |
Couple of comments I had: When trading the DCR/BTC pair, since its the most liquid, it would be nice if it showed you the fiat value as well in the total area when placing the order. Currently it just shows just the BTC amount, but would be good to show the fiat too. Also, on the trading page, on the left where is shows the pairs, I think it would be nice to see the 24hr volume for each pair. So you can quickly see what the volume looks like for all of them on that page. |
Well done @buck54321, you've made good progress. Don't hesitate to point out where you need assistance. I suppose it's not ready for review and testing, is it? |
This draft is far enough along that I want to share the progress and solicit feedback.
This is step 1 of a wallets view redesign. My goal here is not to deliver a v1.1-ready wallets view. I'm just putting the parts in place so that we can all move forward in the same direction. I'm also trying to solidify some language to ease communication among people from varying domains, and I'm checking some boxes on the proposal.
This has not been looked at by any graphic designer. I will solicit that work later. This is not even close to where it needs to be in terms of aesthetics, and a lot of this will change before it comes out of draft
Essentially, we're re-conceptualizing our view of what an asset is. The new keyword here is ticker.
The ticker is the conventional unit of an asset, in all caps (DCR, BTC, ETH, USDC ...). Multiple assets can share a common ticker.
As an example, take USDC. Historically, we've treated USDC on Polygon as a different asset than USDC on Ethereum (because it is!!!, but whatever). From a new user's perspective, though, these aren't distinct things. Centralized exchanges don't differentiate either. They just move funds around in the background as needed to facilitate deposits and withdrawals. Many users moving from a centralized model will struggle to understand these network nuances at first. So we're going to meet them where they're at, while also bringing them along into the way it works in our decentralized world.
Things get very complicated in some places though. Take POL, for example. It's a base chain asset on Polygon, but a token on Ethereum. And then there's BTC, which is obviously a UTXO-based asset, but also a token on Ethereum, Polygon, and Base. And then there's...
This PR aims to implement the tools needed to work with this insanity in a way that is comfortable for the user and extensible for the coder.
The wallets view is based on tickers now. Balances are aggregated for the big number, and then broken down by network/blockchain in the details. This approach will provide a familiar experience for cex users, while also clueing them in to the mechanics they need to understand to participate in the decentralized economy (in its current state). In the future, we'll add bridging functionality, and we'll bridge for them automagically as needed, with appropriate dialogs of course, but it will be a seamless experience.
Here's a screenshot or two.


Here's a video of me playing around on simnet. Please excuse the crappy screen-capture software. (lightly edited, for privacy and such)
https://youtu.be/m-mqCoKZvpI
Other stuff
Another term to come together on is "network" vs "blockchain". To me, they're essentially the same thing (in terms of UI). I'd love to use the label "blockchain" throughout, but centralized exchanges all use "network", and I think it's pretty standardized at this point, so network it is.
One notable change is that users will have to select their network to display their receiving address. For EVM assets, the address is the same for all networks, but so many users have withdrawn a token from a cex to some network which we haven't added support for yet. So we're attacking the problem from both ends. By forcing users to select a network when displaying their address, we make them aware, so later when they're using the withdrawal form on their cex, they're more likely to notice the network selection input and use it.
I've started adding a docs section for each ticker. These will obviously evolve over time.
Also, all token wallets are created when the base chain is created now.
What's not done