Skip to content
This repository has been archived by the owner on Oct 31, 2024. It is now read-only.
Jacob Evans edited this page Jun 3, 2019 · 18 revisions

Below is the list of frequently asked questions. Please read through these before creating a new issue.

Relayer Strategy

The current version of 0x-launch-kit uses the Open Orderbook Relayer Strategy. At a high level this strategy is like a bulletin board, where users create, and take orders and submit them directly to the blockchain. There is no automatic matching engine involved.

There are alternative strategies that can be built ontop of 0x protocol, these will require modification to 0x-launch-kit. In the future we plan to also support the Coordinator strategy.

Minimum System Requirements

The build phase of the containers is memory hungry and can consume up to 4GB of memory. The minimum system requirements should cater for this and offer a minimum of 4GB of memory for the build phase. Launch-kit has been successfully built and deployed on t2.medium instances on AWS. Launch-kit is capable of running pre-built containers on t2.small.

Nginx Error / Website not loading

The containers create an optimised production ready front end. This takes some time on the first build and is relatively resource intensive. During the build process Nginx may return an error (403) and the website will not be available. After the build is complete the website will be available as described. The output of the build process may be hidden by other logs, to ensure this is complete run docker-compose logs -f frontend.

Adding a custom token

Currently adding a new custom token requires building the containers from scratch. To do so, you must clone the Front end and the backend repositories.

For example, let's say we wish to add a new token called DEKZ.

Firstly add the token symbol to the types.ts file:

export enum TokenSymbol {
    Weth = 'weth',
    Zrx = 'zrx',
    Dai = 'dai',
    Mkr = 'mkr',
    Rep = 'rep',
    Dgd = 'dgd',
    Mln = 'mln',
    Dekz = 'dekz', // Note the usage of lowercase here
}

Add to the list of Known tokens in the tokens_meta_data.ts file:

export const KNOWN_TOKENS_META_DATA: TokenMetaData[] = [
    {
        decimals: 18,
        symbol: TokenSymbol.Weth,
        name: 'Wrapped Ether',
        primaryColor: '#3333ff',
        addresses: {
            1: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
            4: '0xc778417e063141139fce010982780140aa0cd5ab',
            42: '0xd0a1e359811322d97991e03f863a0c30c2cf029c',
            50: '0x0b1ba0af832d7c05fd64161e0db78e85978e8082',
        },
    },
    {
        decimals: 18,
        symbol: TokenSymbol.Dekz,
        name: 'Dekz',
        primaryColor: '#E1AA3E',
        addresses: {
            1: 'MAINNET ADDRESS',
            42: 'KOVAN ADDRESS',
            50: 'GANACHE ADDRESS',
        },
    },
...
}

Add it to the available markets file markets.ts:

export const availableMarkets: CurrencyPair[] = [
    {
        base: TokenSymbol.Dai,
        quote: TokenSymbol.Weth,
    },
    {
        base: TokenSymbol.Dai,
        quote: TokenSymbol.Zrx,
    },
    {
        base: TokenSymbol.Weth,
        quote: TokenSymbol.Dai,
    },
    {
        base: TokenSymbol.Dekz,
        quote: TokenSymbol.Weth,
    },
    {
        base: TokenSymbol.Dai,
        quote: TokenSymbol.Dekz,
    },
];

Development with Ganache

Please follow the instructions described here to develop on launch kit with ganache.

Deployment

If you deployed launch kit with docker-compose or used the wizard you will need to tweak a few settings so the application is reachable. Ports 3001 (web) and 3000 (backend) need to be opened to the machine which is running the services. Some users might want to replace port 3001 for the web service to be on port 80.

Also ensure your docker-compose.yml file references a publicly reachable endpoint. For example, http://localhost:3000/v2 (the backend) cannot be reached by the end user. Change to a reachable endpoint:

REACT_APP_RELAYER_URL: 'http://PUBLIC_IP_ADDRESS:3000/v2'

AWS

DigitalOcean

Clone this wiki locally