synthetix icon indicating copy to clipboard operation
synthetix copied to clipboard

Add Synth Exchanges to Uniswap

Open kaiynne opened this issue 5 years ago • 22 comments

Synthetix has launched a number of unique assets over the last six months, but the learning curve on synthetix.exchange is still fairly high. In order to make the full range of Synths more accessible we want to launch a fork of the Uniswap UI to enable any Synth to be purchased directly from the Uniswap interface. Uniswap is one of the most popular DeFI projects and thousands of users are now comfortable using it to access liquidity across a wide range of tokens. By making all Synths accessible in the Uniswap UI we will significantly expand the audience for Synths in the immediate term. Once users are comfortable holding Synths they may decide to test out synthetix.exchange, but even if they only ever trade Synths on Uniswap the Synthetix contract will still capture exchange fees and pay them to SNX holders.

In order to complete this bounty we need the following:

  • Write a contract to atomically convert ETH -> sETH -> Synths
  • Fork the Uniswap UI and add all Synths
  • Write unit tests for all functionality

User Journey One:

  1. User hears about a new Synth sCEX and wants to hold it
  2. User navigates to Uniswap.synthetix.exchange
  3. User selects ETH - > sCEX
  4. User selects amount of sCEX
  5. The contract converts ETH to sETH via the Uniswap contract
  6. The contract converts sETH to sCEX via the Synthetix contract
  7. The user receives sCEX in their wallet

User Journey Two:

  1. User holds sCEX and wants to convert to ETH
  2. User navigates to Uniswap.synthetix.exchange
  3. User selects sCEX - > ETH
  4. User selects amount of sCEX
  5. The contract converts sCEX to sETH via the Synthetix contract
  6. The contract converts sETH to ETH via the Uniswap contract
  7. The user receives ETH in their wallet

User Journey Three:

  1. User holds sCEX and wants to convert to iCEX
  2. User navigates to Uniswap.synthetix.exchange
  3. User selects sCEX - > iCEX
  4. User selects amount of sCEX
  5. The contract converts sCEX to iCEX via the Synthetix contract
  6. The user receives iCEX in their wallet

Deliverables

Smart Contracts AtomicSynthetixUniswapConverter Working environment on TESTNET (Contact us for TESTNET SNX) Unit tests using truffle and JavaScript tests. See https://github.com/Synthetixio/synthetix

kaiynne avatar Aug 29 '19 06:08 kaiynne

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


This issue now has a funding of 10000.0 SNX (2785.0 USD @ $0.28/SNX) attached to it as part of the Synthetixio fund.

gitcoinbot avatar Aug 30 '19 04:08 gitcoinbot

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


Work has been started.

These users each claimed they can complete the work by 2 months ago. Please review their action plans below:

1) zyfrank has been approved to start work.

I'm familiar with Uniswap, also I'm interesed in Synth, I'd like to take this task 2) fatima-yo has applied to start work (Funders only: approve worker | reject worker).

Hello, I am willing to complete this task.

I got ample experience in Ethereum programming and have wrote a book on it, I can point you to the relevant online references.

I will do the following:

  1. Write a contract to atomically convert ETH -> sETH -> Synths
  2. Fork the Uniswap UI and add all Synths
  3. Write unit tests for all functionality

This work will take into account your journeys as detailed on the issue.

I will need from you:

  1. to state your preference about which testnet to use
  2. SNX for the stated testnet

I will provide as deliverables:

  1. Smart Contract/s AtomicSynthetixUniswapConverter 2.. Working environment on TESTNET
  2. Unit tests using truffle and JavaScript tests

I am at your service to provide you with further details or discuss any project related issue.

Best regards, Fatima

Learn more on the Gitcoin Issue Details page.

gitcoinbot avatar Aug 30 '19 05:08 gitcoinbot

Hi @kaiynne I think some work related to uniswap should be contained in https://github.com/Synthetixio/uniswap-frontend, is that right? do you need updated change from uniswap-frontend(seems https://github.com/Synthetixio/uniswap-frontend is outdate )? Also Tab “Send" and "Pool" should be removed, what do you think about it?

zyfrank avatar Sep 02 '19 12:09 zyfrank

Ideally we want this work to be at least in principle mergeable into the main Uniswap repo so if you can fork the latest version to start the work that would be better.

kaiynne avatar Sep 02 '19 12:09 kaiynne

@zyfrank can you ping me on discord/telegram (@kaiynne) please so we can sync up.

kaiynne avatar Sep 05 '19 03:09 kaiynne

@kaiynne @Robbiesmo I'm from China, currently my VPN is not stable(So has access difficulty for Discord/Telegram ). Currently maybe github is the best communication channel.

Currently I have caught logic of synthetix's contracts basically and start to do work on Uniswap UI. After this work, will focus on smart contract.

zyfrank avatar Sep 05 '19 13:09 zyfrank

WeChat is also kaiynne.

Sent from my iPhone

On 6 Sep 2019, at 12:07 am, Robbiesmo [email protected] wrote:

Op do 5 sep. 2019 15:25 schreef zyfrank [email protected]:

@kaiynne https://github.com/kaiynne @Robbiesmo https://github.com/Robbiesmo I'm from China, currently my VPN is not stable(So has access difficulty for Discord/Telegram ). Currently maybe github is the best communication channel.

Currently I have caught logic of synthetix's contracts basically and start to do work on Uniswap UI. After this work, will focus on smart contract.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Synthetixio/synthetix/issues/213?email_source=notifications&email_token=AM7F3RST2OI5B2X2EDVFXMTQIECFFA5CNFSM4IR6NYVKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD57CUQY#issuecomment-528362051, or mute the thread https://github.com/notifications/unsubscribe-auth/AM7F3RTTS5DO2WAYN7NFTH3QIECFFANCNFSM4IR6NYVA .

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

kaiynne avatar Sep 05 '19 14:09 kaiynne

@kaiynne Were synthetixio depolyed on Kovan testnet? need some test tokens, also need sEth sXAU contract address on this network. My eth addr:0x7d258F3196B3225420E513a722f66E2eDBD9Fd15

zyfrank avatar Sep 07 '19 06:09 zyfrank

@kaiynne can you send some sETH to my account on Kovan? I prepare set a sETH uniswap exchange and add some liquity for sETH, ETH , so I can continue to make some test

zyfrank avatar Sep 09 '19 10:09 zyfrank

@zyfrank Here are all the deployed contracts on the testnets https://developer.synthetix.io/api/docs/deployed-contracts.html.

I can send you sETH on ROPSTEN or RINKEBY. We treat KOVAN as our DEV/alpha network

hav-noms avatar Sep 12 '19 07:09 hav-noms

@hav-noms I can test my work on RINKEBY. My address is 0xB79A68A0a101b2B9737aABcFF3f2767536Cd3dbd

zyfrank avatar Sep 12 '19 15:09 zyfrank

@kaiynne , This is an interesting issue. But I would like to ask a couple of questions: ETH - > sCEX is it fixed rate or could it change?

janus avatar Sep 14 '19 14:09 janus

@zyfrank Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] reminder (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

gitcoinbot avatar Sep 17 '19 16:09 gitcoinbot

@zyfrank Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] reminder (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

gitcoinbot avatar Sep 17 '19 16:09 gitcoinbot

@gitcoinbot almost done, under testing

zyfrank avatar Sep 18 '19 01:09 zyfrank

@zyfrank Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] reminder (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

gitcoinbot avatar Sep 23 '19 16:09 gitcoinbot

@zyfrank Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] reminder (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

gitcoinbot avatar Sep 23 '19 16:09 gitcoinbot

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


Work for 10000.0 SNX (3814.0 USD @ $0.38/SNX) has been submitted by:

  1. @zyfrank

@kaiynne please take a look at the submitted work:

  • [PR](https://github.com/Synthetixio/synthetix/pull/253 https://github.com/Synthetixio/uniswap-frontend/pull/1) by @zyfrank

gitcoinbot avatar Sep 24 '19 18:09 gitcoinbot

@kaiynne Do you have any feedback?

zyfrank avatar Sep 29 '19 09:09 zyfrank

We will review this week and close it out.

Sent from my iPhone

On 29 Sep 2019, at 7:40 pm, zyfrank [email protected] wrote:

 @kaiynne Do you have any feedback?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

kaiynne avatar Sep 29 '19 10:09 kaiynne

Hi @kaiynne Is this issue still tracked by your guys?

zyfrank avatar Nov 20 '19 07:11 zyfrank

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


The funding of 10000.0 SNX (4587.0 USD @ $0.46/SNX) attached to this issue has been approved & issued to @zyfrank.

gitcoinbot avatar Dec 03 '19 11:12 gitcoinbot