GoodDollar / GoodProtocolUI

UI for the GoodProtocol smart contracts
https://good-swap.vercel.app
GNU General Public License v3.0
7 stars 12 forks source link

Implement "Buy G$" #483

Open patpedrosa opened 8 months ago

patpedrosa commented 8 months ago

1. Feature Overview

Short Description The goal is to allow users to Buy G$ easily by guiding them through a flow where they buy cUSD through the Onramper widget, then we swap it for G$ and send it back to their wallets.

Purpose We want to create more demand drivers and to facilitate to users who might find it difficult to buy G$ directly from the reserve on Ethereum Mainnet or from the liquidity pools on Uniswap/Voltage.

2. Detailed Description:

User Story/Requirement As a user, I want to buy g$ so that I can donate, use it in other dApps, or keep it for myself.

Acceptance Criteria

Design

Animation States 1 Blue: User opens Buy G$ 1 Blue with progress bar animation: User clicked or tapped the Onramper widget 1 Blue, static line between 1 and 2, 2 Blue: Funds have arrived the Smart Contract Wallet 1 Blue, static line between 1 and 2, 2 Blue with progress bar animation: Transaction sent to blockchain 1 Blue, static line between 1 and 2, 2 Blue with static line between 2 and 3, 3 Blue: Transaction success, G$ in user's wallet

Mobile/Desktop UI https://www.figma.com/file/ihw1PxBvLxacTHnN2aj4lC/3.-Product-%F0%9F%92%B5?type=design&node-id=8462-5299&mode=design&t=m0chK13x87EHznwa-0

What needs to be tested before deployment (qa)

(prod)

patpedrosa commented 8 months ago

@drptiago We need to figure out how to track the usage of the Buy G$ page. We're limited on the interface as we can't pull info from Onramper. We could use the progress bar on an interface level, as it has different states for each of the stages.

@sirpy do you see a better way to track this?

sirpy commented 8 months ago

@patpedrosa We can either track on the UI, or we can track via dapplooker. UI event is the simpler approach. But with dapplooker you could theoretically track also what was done with the G$s, but you can't track how many people visited the page, only successful purchaes. Dapplooker recently offered to build some "funnels" see TG group. This could be an opportunity to test it.

L03TJ3 commented 8 months ago

@sirpy added the last section for 'testing'. wdyt for enabling selfswap for dev envs?

sirpy commented 8 months ago

@sirpy dont see why, dev envs should simulate prod env.

L03TJ3 commented 8 months ago

@sirpy just because we cannot ask @vldkhh to keep testing the flow by buying crypto through the onramper widget

sirpy commented 8 months ago

you just send a little cusd to the target contract address. The only reason to buy crypto is to test the iframe message we marked requires testing.

L03TJ3 commented 8 months ago

you just send a little cusd to the target contract address. sure, but for the flow to work, self-swap has to be enabled somewhere. By default it is not set to enabled

sirpy commented 8 months ago

no its not, the UI detects there's a balance in the swap contract and triggers the backend request. what needs to be made sure for this to work is which G$ token is used. if we use dev/qa tokens we need to make sure we also have a buygd contract for these tokens and some kind of a uniswap pool

drptiago commented 8 months ago

@L03TJ3 the "buy flow" events follow the same pattern as the other ones:

Are 3 events:

    event: goto_page
    action: goto_buy
    event: buy
    action: buy_start
    event: buy
    action: buy_success

I don't know if it's possible, but if we can send the amount (in G$) they are purchasing, it would be very good

patpedrosa commented 8 months ago

@vldkhh Can you please let @drptiago know when this is ready for a QA?

patpedrosa commented 7 months ago

@L03TJ3 @johnsmith-gooddollar Let's push the deployment of this to next sprint to allow time for @vldkhh and the team to test it throughly.

vldkhh commented 7 months ago

The progress bar should show the cUSD, not Celo Private Zenhub Image

patpedrosa commented 7 months ago

For this feature, we'll deploy it to production featured flagged on wed but hide it from the menu. The goal is for the team to be able to test it in production for the next couple of weeks, and then launch it to the general public at a later date. We'll use post hog.