Collection of smart contracts for the Gnosis prediction market platform.
Branch: v1
Clone or download
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.
assets remove docs Jun 9, 2017
contracts Backwards compatibility and packaging niceness Oct 22, 2018
docs Add contract audit report. Nov 17, 2018
migrations Fix migrations Oct 22, 2018
test Made everything work Oct 17, 2018
.eslintignore v1.0.2 Feb 13, 2018
.eslintrc.js Touch up and document linting stuff Jul 7, 2017
.gitattributes
.gitignore Fixed layout to include navigation Feb 13, 2018
.npmignore Fixed layout to include navigation Feb 13, 2018
.solhint.json Add solhint and basic configuration May 11, 2018
.travis.yml Use default npm test on Travis Oct 17, 2018
LICENSE License changed to LGPL 3.0 Jul 24, 2018
README.md Add contract audit report. Nov 17, 2018
ensurebc.js
inheritanceMap.json Made everything work Oct 17, 2018
networks.json Deploy to mainnet Oct 23, 2018
package-lock.json
package.json chore(package): update solhint to version 1.4.1 Dec 10, 2018
requirements.txt use pytest May 26, 2017
truffle.js Merge pull request #153 from gnosis/fix-release-blockers Oct 29, 2018

README.md

Gnosis Prediction Market Contracts

Logo

Build Status

Codecov badge

Greenkeeper badge

Slack Status

Collection of smart contracts for the Gnosis prediction market platform (https://www.gnosis.pm). To interact with those contracts have a look at (https://github.com/gnosis/pm-js/).

Install

Install requirements with npm:

npm install @gnosis.pm/pm-contracts

Testing and Linting

Run all tests (requires Node version >=7 for async/await, and will automatically run TestRPC in the background):

npm test

Run all tests matching a regexp pattern by setting the TEST_GREP environment variable

TEST_GREP='short selling' npm test

Lint the JS

npm run lint

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:

npm run compile

Migrate all contracts required for the basic framework onto network associated with RPC provider:

npm run migrate

Network Artifacts

Show the deployed addresses of all contracts on all networks:

npm run networks

Command line options for truffle can be passed down through NPM by preceding the options list with --. For example:

Clean network artifacts:

npm run networks -- --clean

Network artifacts from running migrations will contain addresses of deployed contracts on the Kovan and Rinkeby testnets.

Take network info from networks.json and inject it into contract build artifacts. This is done prepublish as well.

npm run injectnetinfo

Extract all network information into networks.json.

Be aware that this will clobber networks.json, so be careful with this command:

npm run extractnetinfo

Gas Measurements

Log gas measurements into build/gas-stats.json

npm run measuregasstats

Documentation

There is a copy version hosted online at https://gnosis-pm-contracts.readthedocs.io/en/latest/

Locally build docs for readthedocs

Will install Sphinx and Solidity Domain for Sphinx:

cd docs
pip install -r requirements.txt
make html

Audits

Security and Liability

All contracts are WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

License

All smart contracts are released under LGPL v.3.

Contributors