gnosis/dx-contracts

Name: dx-contracts

Owner: GNOSIS

Description: null

Created: 2018-03-15 17:07:11.0

Updated: 2018-05-19 15:56:50.0

Pushed: 2018-05-24 17:04:13.0

Homepage: null

Size: 1596

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Dutch X

Logo

Build Status

Collection of smart contracts for the Gnosis DutchX.

Audit
Audit Report:

Audit Report inc. known weaknesses

Install
Install requirements with npm:
install
Testing
Start the TestRPC with bigger funding than usual, which is required for the tests:
run rpc

Please install at least node version >=7 for async/await for a correct execution

Run all tests
fle test -s

The flag -s runs the tests in a silence mode. Additionally the flag -g can be added to plot the gas costs per test.

Compile and Deploy

These commands apply to the RPC provider running on port 8545. You may want to have TestRPC running in the background. They are really wrappers around the corresponding Truffle commands.

Compile all contracts to obtain ABI and bytecode:
fle compile --all
Migrate all contracts:
fle migrate --network NETWORK-NAME
Network Artifacts
Get network artifacts from the networks.json file:
 scripts/inject_artifacts.js
Extracting current network artifacts into networks.json file:
 scripts/extract_artifacts.js
Documentation

There is a copy version hosted online at https://drive.google.com/file/d/1OojAb6ogvQKVolkGDNVY1Pu74DbTNET6/view You may want to download the pdf for external hyperlinks to work.

Auction state-diagram overview:

There is a copy version hosted online at https://drive.google.com/file/d/1hWHtf2_GnBhtb85Yj7I7Xe3mF6jPe08U/view

PriceOracle

All variables of the smart contracts are public and can easily be access from other smartcontracts. This allows other smartcontracts to calculate specific prices. But the smartcontracts can also call:

getPriceInPastAuction(address token1, address token2, uint auctionIndex)

getPriceInPastAuction() gives a good estimate for market price [token1]/[token2] by averaging the the prices of [token1]:[token2] and [token2]:[token1] of the auctions with auctionIndex.

Contributors

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.