Contracts for running the Colony Network as defined in the Colony White Paper
node v16.15.x (we recommend using nvm)
docker v18 or higher
Add the required solidity compiler by running:
$ docker pull ethereum/solc:0.5.8
In the working directory of your choice, clone the latest version of the colonyNetwork repository:
$ git clone https://github.com/JoinColony/colonyNetwork.git
Move into the directory and install dependencies:
$ cd colonyNetwork && npm install
Update submodule libraries:
$ git submodule update --init
The contract upgradability is using the EtherRouter pattern, see the delegate proxy pattern in the documentation for implementation details.
The math, erc20, auth, roles and a significant part of the token contract have been reused from the Dappsys library.
You can start a local test node and deploy the contracts yourself using the locally installed truffle package.
npm run start:blockchain:client
npx truffle migrate --reset --compile-all
To deploy all contracts and run all contract tests:
npm run test:contracts
To deploy all contracts and run all reputation mining tests:
npm run test:reputation
To run tests with code coverage using solidity-coverage:
npm run test:contracts:coverage
To lint contracts using Solium
npm run solium
To lint JS using eslint (this is also a pre-commit hook)
npm run eslint
For details about how to contribute you can check the contributing page