Coder Social home page Coder Social logo

0x-frontend's Introduction

0x-launch-kit-frontend

CircleCI dependencies Status devDependencies Status Coverage Status

This is an example implementation of a dApp that interacts with a 0x relayer. To use it, you need to have the URL of an existing relayer, or you can start one locally for use during development.

This version of Launch Kit supports 0x v3. If you're looking for v2 it is available on this branch.

This repo ships with both an ERC-20 token trading interface and an ERC-721 marketplace interface.

ERC-20 ERC-721

Usage

Clone this repository and install its dependencies:

git clone [email protected]:0xProject/0x-launch-kit-frontend.git
cd 0x-launch-kit-frontend
yarn

Using an existing relayer

If you have the URL of an existing relayer, you can use this frontend against it. After installing the dependencies, start the application with this command, replacing RELAYER_URL and RELAYER_WS_URL with the proper value:

REACT_APP_RELAYER_URL='https://RELAYER_URL/' REACT_APP_RELAYER_WS_URL='wss://RELAYER_URL/' yarn start

A browser tab will open in the http://localhost:3001 address. You'll need to connect MetaMask to the network used by the relayer.

You can optionally pass in any relayer endpoint that complies with the 0x Standard Relayer API. For example, if you want to show liquidity from 0x API:

REACT_APP_RELAYER_URL='https://api.0x.org/sra' REACT_APP_RELAYER_WS_URL='wss://api.0x.org/sra' REACT_APP_NETWORK_ID=1 REACT_APP_CHAIN_ID=1 yarn start

Creating a relayer for development

If you don't have a relayer, you can start one locally for development. First create a docker-compose.yml file like this:

version: '3'
services:
    ganache:
        image: 0xorg/ganache-cli
        ports:
            - '8545:8545'
    backend:
        image: 0xorg/launch-kit-backend:latest
        environment:
            HTTP_PORT: '3000'
            NETWORK_ID: '50'
            CHAIN_ID: '1337'
            WHITELIST_ALL_TOKENS: 'true'
            FEE_RECIPIENT: '0x0000000000000000000000000000000000000001'
            MAKER_FEE_UNIT_AMOUNT: '0'
            TAKER_FEE_UNIT_AMOUNT: '0'
            MESH_ENDPOINT: 'ws://mesh:60557'
        ports:
            - '3000:3000'
    mesh:
        image: 0xorg/mesh:7.2.1-beta-0xv3
        environment:
            ETHEREUM_RPC_URL: 'http://ganache:8545'
            ETHEREUM_CHAIN_ID: 1337
            VERBOSITY: 3
            RPC_ADDR: 'mesh:60557'
            # You can decrease the BLOCK_POLLING_INTERVAL for test networks to
            # improve performance. See https://0x-org.gitbook.io/mesh/ for more
            # Documentation about Mesh and its environment variables.
            BLOCK_POLLING_INTERVAL: '5s'
        ports:
            - '60557:60557'
            - '60558:60558'
            - '60559:60559'

and then run docker-compose up. This will create three containers: one has a ganache with the 0x contracts deployed and some test tokens, another one has an instance of the launch kit implementation of a relayer that connects to that ganache and finally a container for 0x-mesh for order sharing and discovery on a p2p network.

After starting those containers, you can run the following in another terminal. A browser tab will open in the http://localhost:3001 address. You'll need to connect MetaMask to localhost:8545.

REACT_APP_RELAYER_URL='http://localhost:3000/v3' REACT_APP_RELAYER_WS_URL='ws://localhost:3000' yarn start

Note: the state of the relayer will be kept between runs. If you want to start from scratch, use docker-compose up --force-recreate

Environment variables

You can create a .env file to set environment variables and configure the behavior of the dApp. Start by copying the example file (cp .env.example .env) and modify the ones you want. Some things you can configure are:

  • REACT_APP_RELAYER_URL: The URL of the relayer used by the dApp. Defaults to http://localhost:3000/v3
  • REACT_APP_RELAYER_WS_URL: The Websocket URL of the relayer used by the dApp. Defaults to http://localhost:3000/
  • REACT_APP_FEE_PERCENTAGE: The fee percentage amount charged on 0x orders filled via the Forwarder. Note this is limited to */WETH orders for the taker.
  • REACT_APP_FEE_RECIPIENT: The address which receives the fees from the Forwarder.
  • REACT_APP_NETWORK_ID: The network id to build the front end for. E.g 42 for Kovan, 50 for Ganache
  • REACT_APP_CHAIN_ID: The chain id to build the front end for. E.g 42 for Kovan, 1337 for Ganache
  • REACT_APP_DEFAULT_ORDER_EXPIRY_SECONDS: The expiration time for an order. Defaults to 1 day.

Check .env.example for the full list.

Using custom themes

If you want to add your own theme for the app, please read the THEMES.md file

0x-frontend's People

Contributors

adekbadek avatar agupane avatar albrow avatar bmillman19 avatar dekz avatar eharris128 avatar fragosti avatar fvictorio avatar gabitoesmiapodo avatar mariano-aguero avatar pablofullana avatar tomhschmidt avatar unjapones avatar zabirauf avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.