shapeshift / web

ShapeShift Web
https://app.shapeshift.com
MIT License
169 stars 179 forks source link

Gem Integration and User Flow #847

Closed 0xean closed 2 years ago

0xean commented 2 years ago

Background

As part of building out our newly launched application (app.shapeshift.com) we want to integrate a fiat on-ramp to allow users to directly purchase crypto. This is an important feature to allow us to achieve parity with our old application (beta.shapeshift.com) where we support Gem.

We are looking for a skilled bounty hunter who wants to take on this larger feature and see it through to release.

Our engineering work-stream is actively hiring for full time roles, and this would be a great introduction if the bounty hunter is interested. If not, that is of course okay as well, we welcome all contributions!

User Stories

Design Mocks

Screen Shot 2022-01-25 at 7 05 39 AM Screen Shot 2022-01-25 at 7 05 49 AM Screen Shot 2022-01-25 at 7 05 59 AM Screen Shot 2022-01-25 at 7 06 13 AM

User Experience & Flow

  1. Buy/Sell Button - As a user, I want to be taken to a buy/sell screen from anywhere on app.shapeshift.com.
    1. Buy sell button should be next to wallet name in top bar.
  2. Select GEM Button - As a user, I want to be able to select Gem as my fiat ramp provider from a list of providers
    1. Also include a button for onJuno with message “coming soon”
  3. Select "Buy" or "Sell" From Tabs - As a user, I want to toggle between buy and sell depending on which action I want to do.
    1. If "Buy" is selected a dropdown should indicate all the possible assets I can buy.
      1. User should now be able to select the desired asset from a list.
      2. User selects desired account from a list of accounts connected in current wallet. If there is only one account in wallet, that account is selected by default.
      3. Desired asset address is passed through as a parameter from ShapeShift Web to Gem
      4. If user is using a hardware wallet, they have the option to select “confirm on wallet” button to confirm address shown on ShapeShift matches the address shown on their hardware wallet.
      5. Gem Interface launches in new browser tab or window.
      6. No further action required from ShapeShift Web.
    2. If "Sell" is selected a dropdown should indicate all the possible assets I can sell.
      1. All assets available to sell should be listed sorted by balance...assets with 0 balance listed last
      2. User should select an asset and see a list of accounts that hold said asset in their wallet.
      3. If a user holds an asset in more than 1 account, interface gives them the option to select any desired account.
      4. User should select the account with that asset that they wish to sell from
      5. If user is using a hardware wallet, they have the option to select “confirm on wallet” button to confirm address shown on ShapeShift matches the address shown on their hardware wallet.
      6. Gem Interface launches and the user will enter the amount to send into Gem.
      7. User will copy the receiving address and amount from Gem and input into the Send module on ShapeShift Web.
      8. No further action required from ShapeShift Web.

Revenue Share Technical Details

Acceptance Criteria

Bounty Hunters

Documentation and helpful references

*Note: Use beta.shapeshift.com for user flows

Product Manager: @decentralizedj in Discord. Please reach out with any questions.

gitcoinbot commented 2 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 6000.0 FOX (1892.35 USD @ $0.32/FOX) attached to it as part of the ShapeShift fund.

gitcoinbot commented 2 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 264 years, 9 months from now. Please review their action plans below:

1) visitskyworld has been approved to start work.

Very interesting bounty! I bet I can finish this bounty in a week. I have already completed several bounties before. Here is my work plan

  1. Design UI from mock
  2. Buy
    • display possible assets and select one
    • Integrate with Gem - pass an asset address as a parameter from ShapeShift Web to Gem
    • Confirm hardware wallet
  3. Sell
    • Display assets sorted by balance
    • Display the option to select any desired account if the suer holds an asset in more than one account.
    • Gem integration 2) stackedq has applied to start work _(Funders only: approve worker | reject worker)_.

I've read the full description, I also have contributed before and I'm familiar with the codebase, here's my plan:

  1. Add the buy/sell button to the header
  2. Create buy/sell modals
  3. Check out example codes in Notion
  4. Integrate gem into ShapeShift

Estimated time of delivery: up to 10 days (probably it finishes in the 6 days, but 4 more days for any unexpected issues)

Learn more on the Gitcoin Issue Details page.

amitojsingh366 commented 2 years ago

Hi, I want to take up this bounty. I've already applied through gitcoin but I just wanted to say that my gitcoin profile is fairly new and I have taken up that many bounties on gitcoin, but you can check my github profile and see all the past projects I have done.

0xean commented 2 years ago

@amitojsingh366 - thanks for the interest. Siva had reached out to me last night and we are going to give him the first crack at this. thanks for applying and the note, please hop in our discord. I hope to have more bounties to post soon and would love you to pick one up.

@giuliogallerini - likewise, please join our discord! Keen to get some work your way as I keep seeing you apply.

0xean commented 2 years ago

https://discord.gg/shapeshift

amitojsingh366 commented 2 years ago

@amitojsingh366 - thanks for the interest. Siva had reached out to me last night and we are going to give him the first crack at this. thanks for applying and the note, please hop in our discord. I hope to have more bounties to post soon and would love you to pick one up.

@giuliogallerini - likewise, please join our discord! Keen to get some work your way as I keep seeing you apply.

ok will do! excited for the bounties!

0xean commented 2 years ago

@giuliogallerini - are you still interested in this bounty? If so, would love to have you pick it up. Let me know and I can approve you on gitcoin.

visitskyworld commented 2 years ago

@0xean , I am interested in this bounty.

ggwzrd commented 2 years ago

@0xean I not currently available unfortunately.

0xean commented 2 years ago

thanks @giuliogallerini for the response. @visitskyworld - best of luck! I linked 2 previous PRs that you can reference if they help at all.

gitcoinbot commented 2 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 6000.0 FOX has been submitted by:

  1. @visitskyworld

@0xean please take a look at the submitted work:


gitcoinbot commented 2 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 6000.0 FOX (1607.35 USD @ $0.27/FOX) attached to this issue has been approved & issued to @visitskyworld.