Skip to content

Instantly share code, notes, and snippets.

@rhazberries
Created August 26, 2020 05:03
Show Gist options
  • Select an option

  • Save rhazberries/aa75106a241342dc00691d34a49e2257 to your computer and use it in GitHub Desktop.

Select an option

Save rhazberries/aa75106a241342dc00691d34a49e2257 to your computer and use it in GitHub Desktop.
SeeSwap Features

SeeSwap

Missing Features

  • Creating your own pool
  • Displaying/calculating pool slippage, expected tokens returned, pool ownership percent
  • Generalized UI to support pools with more than 2 tokens
  • Ability to get list of available pools

Stretch Goals

  • Ability to use multiple pools to fulfill a single token swap order
  • Mobile dApp
  • CLI development
  • Governance Token

Recommended Development Order

Smart Contract

Currently, a single BPool is deployed on Mainnet. There is a script to deploy a pool & then set the pool up with an initial supply of tokens, the token weights, etc. One main draw of Balancer is being able to create your own pool with whichever tokens you want. In order to have a complete decentralized app, BFactory needs to be deployed to Mainnet as well. BFactory is a smart contract that handles the creation of BPools and should also keep track of the existing pools. There is also a notion of public & private pools; more research on Balancer needs to be done on this topic.

  • BFactory deployment
  • Contract improvements for SeeSwap usage
    • List of pools
    • Pool names
    • ...
  • Private vs Public Pools
SeeSwap dApp/Exchange

Existing Demo dApp here. The dApp is missing some basic features/UI elements for a better user experience, such as error messages and transaction confirmation box. The code also needs to be generalized to work with any pool, regardless the number of tokens in the pool.

  • Create pool
  • Display list of pools
  • Generalized to work with any pool
  • Display slippage & expected exchange tokens when swapping
  • Display pool ownership
  • Error messages
  • OneWallet support
  • Support to view without having any Wallet extensions

The developer can also opt to create their own dApp from scratch, instead of continuing to develop the existing dApp.

The stretch goal for the exchange is to add the ability for users to use the exchange to swap tokens optimally without having to manually deal with multiple transactions to different pools. Balancer does this with their SOR (Smart Order Router), which was not in the scope for the SeeSwap Hackathon project, so no work has been done on this front.

Mobile App

The SeeSwap TG group mentioned interest in a Mobile app. However, this should be a stretch goal. The dApp could be designed to work on mobile, as well, but will need a way to figure out how to use send transactions without any Chrome extensions.

  • Should support all features that the dApp does
CLI development

Unsure about the interest in continued development of the command line interface for SeeSwap, but it would probably attract users that are interested in scripting their arbitrage. Like the demo dApp, the current CLI is hardcoded for the demo pool, so it will need to generalized to work with different pools.

  • Get list of all pools
  • Create pools
  • Generalize to work with any pool
Governance Token

The governance token should be an HRC20. Balancer mints their BAL token and gives it out to their users that provide liquidity to their pools. The BAL token can be traded on exchanges as well as used to vote on new Balancer features. Not much research has been done on this front. However, this should be developed last if there is interest in the continued development of SeeSwap from the users & developers.

Reference Material

@BrunoMarshall
Copy link

We need to add also and external Audit to the milestones, to be sure that everything is as expected

@rhazberries
Copy link
Author

This is a list of what I see is currently missing from SeeSwap. It should not be used as a technical spec for the grant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment