/monorepo

Home for all packages related to the Counterfactual project

Primary LanguageTypeScriptMIT LicenseMIT


Counterfactual
Counterfactual

Simple off-chain applications framework for Ethereum.

circleci license


Counterfactual is a simple off-chain framework for building state channel applications on top of the Ethereum blockchain. It aims to make it simpler to build permissionless applications that have instant finality with zero-fee transactions.

You can learn more about what state channels are by reading our whitepaper or a less technical written description. Further, if you want to dive into the specifications of the Counterfactual protocol you can read them here.

Contributing

Installing dependencies

Make sure you have Yarn v1.10.1. Refer to Yarn's installation guide for setup instructions for your operating system.

To install the dependencies:

yarn

Building packages

To build all packages:

yarn build

Clean

To clean all packages:

yarn clean

Lint

To lint all packages:

yarn lint

To also apply automatic fixes:

yarn lint:fix

Tests

Presently for some of the tests to work, you need to have a ganache-cli instance running in the background. To do this, run using:

yarn ganache

You also need to migrate the contracts in the contracts package to generate a networks file which the machine package directly consume (for now).

cd packages/contracts
yarn migrate --network ganache

Finally, to run all tests:

yarn test