OpenST / openst-contracts

OpenST is a framework for building token economies on Ethereum
Apache License 2.0
26 stars 19 forks source link

OpenST Contracts - Empowering Decentralized Economies

OpenST Contracts is a collection of smart contracts that enable developers to program Token Economies.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

Project requires node and npm to be installed on dev machine.

Cloning

In case of fresh clone, use --recursive-submodules option while cloning:

git clone --recursive-submodules git@github.com:openst/openst-contracts.git

To update git submodules for already cloned repos, run:

git submodule update --init --recursive

Installing

Install npm packages, by running:

npm install

Afterwards, add ./node_modules/.bin to PATH environment variable:

export PATH=./node_modules/.bin:${PATH}

Compiling the contracts

The following npm script compiles updated contracts from the last call:

npm run compile

, to compile all contracts, run:

npm run compile-all

Linters

Solidity

In openst-contracts to lint solidity files we use Ethlint. The following npm script lints all contracts within ./contracts directory:

npm run lint:sol

Ethlint is able to fix a subset of rules. The following npm script fixes (only a subset of rules) contracts within ./contracts directory:

npm run lint:sol:fix

JS

ESLint is used to lint js files.

To lint all js files within ./test directory, run:

npm run lint:js

ESLint is able to fix a subset of rules. To fix js files, run:

npm run lint:js:fix

Running the tests

Before running the tests run ganache-cli by:

npm run ganache-cli

Run tests by calling:

npm run test

Contributing

Please read CODE_OF_CONDUCT.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

License

This contracts are licensed under the Apache License Version 2.0 - see the LICENSE.md file for details.