Light-client: I want to get support to acquire the utility token

Created on 25 Nov 2019  Β·  26Comments  Β·  Source: raiden-network/light-client

User Story

As Chris I want to get support to acquire the utility token so that I can use the Light Client on any net.

This is mainly about the DEX integration.

Acceptance criteria

  • The flow for testnet has been redesigned (see https://github.com/raiden-network/light-client/issues/587#issuecomment-626709953)
  • The new functionality for mainnet has been implemented

Tasks

  • [ ] Design (pre-iteration)

Remarks

dApp πŸ“± Design 🎨 Ready 🎬

All 26 comments

Discussion in the Refinement

  • A Wizard like approach
  • Could be a document at the start
  • Onboarding at the start would be nice
  • Transformation of the Mint Dialogue
  • Acquiring the tokens (Swapping -> Kyber and Uniswap)
  • Maybe just redirecting to Kyber and Uniswap
  • Kyber is really easy to use

First draft (not complete) from @taleldayekh

Consider mainnet and testnet

eg. on testnet you can mint token and on mainnet you'll have to buy them

grafik

The complete flow.

The idea is that in order to connect to a hub three requirements need to be fulfilled.

  1. The hub needs to be online
  2. There needs to be a token balance
  3. There needs to be an SVT balance

The three requirements are grayed out and become highlighted and get a green checkmark once fulfilled.

  1. The user enters the address of a hub that is online βœ…
  2. The user mints and deposit tokens and gets a token balance βœ…
  3. The user mints and deposit SVT tokens and gets a token balance βœ…
  4. The Select Hub button gets enabled.

wireframe_select_hub

@andrevmatos @kelsos @nephix

The mint & deposit for test nets is done in #1372 and #1371

Yes, I believe this is meant as future improvements. That's why it has a separate issue :)

@taleldayekh Didn't we move this to a different issue? https://github.com/raiden-network/light-client/issues/587#issuecomment-626709953

Preview of the mainnet wizard (we should do something similiar, but without the selection of the RDN amount)

grafik

We decided to go with the simple dApp integration.

@taleldayekh to check https://github.com/raiden-network/light-client/issues/587#issuecomment-626709953 (still up to date?)

@taleldayekh I have marked your https://github.com/raiden-network/light-client/issues/587#issuecomment-626665015 as outdated. I would like to have a simpler approach.

Just to note as we already discussed. It seems that Kyber doesn't have any liquidity, so I am not sure if it makes sense to include it.

Adjusted the description to just go with Uniswap first.

Discussion with @taleldayekh

  1. On the Select Hub screen

grafik

The mint and deposit button opens a modal:

  • Recommend to buy 10 RDN
  • Link to https://uniswap.exchange/swap?use=v1
  • Short explanation
  • Entry field for the amount of RDN to be deposited (defaults to 10)
  • Having a deposit button on the screen which is active if the Main Account has got enough RDN
  1. On the Transfer Screen (Select PFS)

grafik

Modal see 1.

  1. On the UDC Screen

grafik

Modal see 1.

Remark

  • Align design / aligment of the balance and minting button

Questions:

  • Is the RDN amount directly updating after the blockchain transaction has been completed on uniswap?
  • Is the RDN/SVT amount which is shown from the main or Raiden account? -> Main Account
  • Would I be able to deposit RDN from the main account to the Raiden account? -> Yes

@taleldayekh If a users buys RDN at uniswap he still needs to deposit the RDN.
I have adjusted the description:

The mint and deposit button opens a modal:

  • Recommend to buy 10 RDN
  • Link to https://uniswap.exchange/swap?use=v1
  • Short explanation
  • Entry field for the amount of RDN to be deposited (defaults to 10)
  • Having a deposit button on the screen which is active if the Main Account has got enough RDN

@christianbrb keep in mind that for the link we can actually prefill the token and swap amounts

See here.

While we are waiting for the tokens to get deposited we can monitor for balance updates on the token to make sure we enable the next step.

Mint is not displayed on mainnet anymore so for mainnet we need to introduce an extra step to the flow/dialog before depositing (only if the user doesn't have enough RDN).

@kelsos Thatβ€˜s great πŸ˜ŠπŸ‘πŸ»

@taleldayekh I would also redesign the UDC screen so that it shows the Balance and uses the icon to open the mint and deposit or buy and deposit dialog.

I made this proposal:
wireframe_udc_02

I think it makes sense displaying only the amount once and adding both the deposit and withdrawal button next to the amount. A user would see the amount available and can choose to either deposit more or withdraw. In case the balance is too low we display the disabled receiving warning.

It would clean up the screen a bit as well @christianbrb @kelsos @andrevmatos @weilbith

Where would I enter the amount to deposit? Does not appear on this small modal on the top you have drawn. Would the Mint and depo... button open another modal?

I think the warning can even take a higher place. Maybe not a whole paragraph but another obvious indicator at the top of the screen maybe? Do we already have a general warning for the user when he enters the app that his deposit is too low?

Split mint and deposit into a flow

  1. Mint / Buy (showing the RDN/SVT amount within the Main Account)
  2. Deposit (showing and changing the amount to be deposited)

@taleldayekh I have given it another thought and I would propose to make it like this:

If you click on the button next to the UDC balance you first get a deposit modal and afterward a mint or a buy modal.

grafik

This would also give us the opportunity to use the Mint and Buy screen throughout the dApp (eg. within the Connect to Hub flow).

I don't think we should open a modal on top of a modal. Also, I would argue that minting as a separate action doesn't make sense. The mint and deposit dialog is a more seamless experience.

For buying, I would prefer to have it integrated into the deposit dialog instead.

The flow could be like that.

I am on the deposit and I enter an amount of 15 RDN but I only have 5 RDN.

The dialog is disabled, warning me that I don't have enough capacity, and provides a suggestion to open uniswap to get the other 10 RDN.

Meanwhile, in every block, I keep checking the available balance and update the deposit dialog status so if the user does the swap the dialog will get updated to the new state enabling them to proceed.

On testnets we don't warn but instead mint the remaining amount automatically.

I agree with @kelsos . Else, we risk making something that is already complex more complex without gaining much in the process.

This is how I would imagine the flow for mainnet:

udc_deposit_dialog

The user could edit the amount and not necessarily deposit all 10 RDNs. And if the user already has RDNs she could still visit Uniswap and get more.

Refinement:

  • Using a normal token input field (component)
  • 10 SVT/RDN should be preselected
  • We show a warning if the amount to deposit is bigger than available token amount

Split into issues:

  1. Update UDC screen: https://github.com/raiden-network/light-client/issues/587#issuecomment-646534180
  2. Deposit modal for testnet
  3. Deposit modal for mainnet
  4. Showing the SVT/RDN balance

@taleldayekh Thanks for creating the issues :) Looks good :) Let's talk about the details in the planning.

There is one issue missing:

  1. Showing the SVT/RDN balance

... on the deposit modal, I would add

There is one issue missing:

We briefly talked about this last week and @kelsos had a good point in that the user already sees the amount on the main UDC screen.

Ok closing :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

MrCleanerPickerUpper picture MrCleanerPickerUpper  Β·  6Comments

kelsos picture kelsos  Β·  4Comments

christianbrb picture christianbrb  Β·  6Comments

christianbrb picture christianbrb  Β·  3Comments

christianbrb picture christianbrb  Β·  5Comments