🇳🇱✖️DutchX Protocol Slow.Trade Interface - React Web
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.storybook added a default 'unset' value to font-style on all 'i' elements to un… Oct 29, 2017
contracts Update dependencies (#302) Jul 11, 2018
landing Update index.html Oct 30, 2018
migrations Update dependencies (#302) Jul 11, 2018
src NETWORK_TIMEOUT time Dec 14, 2018
stories Release/1.2.0 (#399) Oct 22, 2018
test Added latest info regarding tokens 1.2.0 (#403) Oct 22, 2018
travis Hotfix/1.0.5 (#377) Oct 2, 2018
.babelrc Fix/broken menu auctions (#390) Oct 9, 2018
.bootstraprc enabled minification for styles Oct 11, 2017
.eslintrc Fix/stupid bugs (#393) Oct 10, 2018
.gitattributes Fix/stupid bugs (#393) Oct 10, 2018
.gitignore Add the IPFS json token list file used in rinkeby Jul 12, 2018
.stylelintrc relax rules for grid Nov 6, 2017
.travis.yml Fix travis configuration to build develop branch Oct 9, 2018
ADD_TOKEN_REQUEST_TEMPLATE.md Update ADD_TOKEN_REQUEST_TEMPLATE.md (#379) Oct 1, 2018
LICENSE Create LICENSE (#259) May 23, 2018
README.md Merge pull request #348 from gnosis/DX-525/ATR Oct 1, 2018
jsconfig.json simplified VSCode path Intellisense lookup Oct 10, 2017
karma.conf.js made all karma tests run without skipping Nov 15, 2017
package-lock.json 1.5.3 Dec 14, 2018
package.json 1.5.3 Dec 14, 2018
postcss.config.js silenced linting errors for webpack.config Oct 11, 2017
truffle-config.js Update dependencies (#302) Jul 11, 2018
tsconfig.json enabled TypeScript linting for stories Oct 24, 2017
tslint.json linting Jun 19, 2018
webpack.dev.config.js added Favicon (#395) Oct 15, 2018
webpack.prod.config.js added Favicon (#395) Oct 15, 2018
yarn.lock Add the IPFS json token list file used in rinkeby Jul 12, 2018

README.md

Build Status

slow.trade Seller Interface

DX-React is a React/Redux/Truffle + Web3 frontend application interfacing with the DX-Contracts

The rest of this guide assumes you are using up-to-date versions of Node, NPM, Chrome and MetaMask, respectively.

Running locally

  1. Install ganache-cli & truffle globally - we recommend truffle@4.1.5 right now for stability

    npm i -g ganache-cli truffle@4.1.5

  2. Grab the dx-react project

    git clone git@github.com:gnosis/dx-react.git

  3. Install deps - please be patient as this may take a little while.

    npm install

  4. Running the app - please have 3 terminals/tabs ready

    Step 1: npm run rpc

    Step 2: npm run migrate

    Step 3: npm start

  5. Head to localhost:5000 in Chrome

Adding and deploying a test token

Please refer to the Truffle Docs for much more in-depth info on migrations/deployment

  1. Take a look inside ./test/contracts to see 2 local only contracts used in testing

    When using test tokens, they first need to be created as in the above folder, and then deployed

  2. Take a look inside ./migrations

    Notice that the files are named clearly and superseded by numbers. Migration scripts are fired sequentially! Use conditionals here to facilitate deploying contracts only on certain networks - e.g:

    module.exports = (deployer, network) => {
        if (network === 'development') return deployer.deploy(TokenOMG, 50000e18).then(() => deployer.deploy(TokenRDN, 50000e18))
    
        return console.log('Not running on development, skipping.')
    }
    

    The migration script export accepts 3 params: a. module.exports = (deployer, network, accounts) => { ... }

     1. deployer: Function
     2. network:  string
     3. accounts: string[]
    

    from the TruffleContract repo:

    DEPLOYER

    Your migration files will use the deployer to stage deployment tasks. As such, you can write deployment tasks synchronously and they'll be executed in the correct order:

    // Stage deploying A before B
    deployer.deploy(A);
    deployer.deploy(B);
    

    Alternatively, each function on the deployer can be used as a Promise, to queue up deployment tasks that depend on the execution of the previous task:

    // Deploy A, then deploy B, passing in A's newly deployed address
    deployer.deploy(A).then(function() {
    return deployer.deploy(B, A.address);
    });
    

    NETWORKS

    returns string ('development' | 'rinkeby' | 'main', 'kovan' | 'ropsten')

    As mentioned above, can be used to grab network info in migrations flow. Conditional migrating, for example

    ACCOUNTS

    returns string[]

    Use to migrate/deploy contracts with certain addresses. On local these are the accounts first listed in ganache-cli

    Please refer to the Ganache-CLI repo for more information

    1. Deploying contracts

      Now it's time to deploy! Finally! Your ./migrations folder will contain files something like:

      1. 1_initial_migrations.js
      2. 2_DEV_ONLY_Migrate_Deps.js
      3. 3_DEV_ONLY_Migrate_Test_Tokens.js

      Where numbers 2 and 3 use conditional network checking logic to only deploy when ganache is set on the development (local) network.

Submitting an Add Token Request

If you want a Token to be added to Rinkeby token list, please follow instructions in ADD_TOKEN_REQUEST_TEMPLATE.md.

License

This project is licensed under the MIT License - see the LICENSE.md file for details