Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/counterfactual/monorepo
Home for all packages related to the Counterfactual project
https://github.com/counterfactual/monorepo
counterfactual ethereum solidity state-channels
Last synced: about 2 months ago
JSON representation
Home for all packages related to the Counterfactual project
- Host: GitHub
- URL: https://github.com/counterfactual/monorepo
- Owner: counterfactual
- License: mit
- Archived: true
- Created: 2018-08-02T01:43:08.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-12-12T18:17:13.000Z (almost 5 years ago)
- Last Synced: 2024-09-13T12:26:57.538Z (2 months ago)
- Topics: counterfactual, ethereum, solidity, state-channels
- Language: TypeScript
- Homepage: https://counterfactual.com
- Size: 27 MB
- Stars: 187
- Watchers: 15
- Forks: 44
- Open Issues: 155
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
**NOTE**: This repository has been moved. Work is continuing under the [@statechannels](https://github.com/statechannels) organization as part of [statechannels.org](http://statechannels.org) project to unify state channels initiatives.
Counterfactual
Simple off-chain applications framework for Ethereum.
**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](https://counterfactual.com/statechannels) or a less technical written [description](https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4#c353). Further, if you want to dive into the specifications of the Counterfactual protocol you can [read them here](https://counterfactual.com/specs).
- [Packages](#packages)
- [Solidity Packages](#solidity-packages)
- [Typescript/Javascript Packages](#typescriptjavascript-packages)
- [Contributing](#contributing)
- [Ethereum Networks](#ethereum-networks)
- [Installing dependencies](#installing-dependencies)
- [Building packages](#building-packages)
- [Clean](#clean)
- [Lint](#lint)
- [Tests](#tests)
- [Patches](#patches)## Packages
### Solidity Packages
| Package | Version | Description |
| --- | --- | --- |
| [`@counterfactual/cf-funding-protocol-contracts`](/packages/cf-funding-protocol-contracts) | [![npm](https://img.shields.io/npm/v/@counterfactual/cf-funding-protocol-contracts.svg)](https://www.npmjs.com/package/@counterfactual/cf-funding-protocol-contracts) | Contracts implementation of the Counterfactual funding protocol |
| [`@counterfactual/cf-adjudicator-contracts`](/packages/cf-adjudicator-contracts) | [![npm](https://img.shields.io/npm/v/@counterfactual/cf-adjudicator-contracts.svg)](https://www.npmjs.com/package/@counterfactual/cf-adjudicator-contracts) | Contracts implementation of an AppInstance Adjudicator |### Typescript/Javascript Packages
**Counterfactual-specific packages**
| Package | Version | Description |
| --- | --- | --- |
| [`@counterfactual/node`](/packages/node) | [![npm](https://img.shields.io/npm/v/@counterfactual/node.svg)](https://www.npmjs.com/package/@counterfactual/node) | The core state channels client that a user runs |
| [`@counterfactual/cf.js`](/packages/cf.js) | [![npm](https://img.shields.io/npm/v/@counterfactual/cf.js.svg)](https://www.npmjs.com/package/@counterfactual/cf.js) | A JS API for interacting with off-chain apps |
| [`@counterfactual/node-provider`](/packages/node-provider) | [![npm](https://img.shields.io/npm/v/@counterfactual/node-provider.svg)](https://www.npmjs.com/package/@counterfactual/node-provider) | Wrapper around API calls to a Node |**Utilities**
| Package | Version | Description |
| --- | --- | --- |
| [`@counterfactual/types`](/packages/types) | [![npm](https://img.shields.io/npm/v/@counterfactual/types.svg)](https://www.npmjs.com/package/@counterfactual/types) | Shared type declarations |
| [`@counterfactual/typescript-typings`](/packages/typescript-typings) | [![npm](https://img.shields.io/npm/v/@counterfactual/typescript-typings.svg)](https://www.npmjs.com/package/@counterfactual/typescript-typings) | Shims for external library typings |## Contributing
- **Join us in [Discord][counterfactual-discord-url]** to help with development or to hang out with some ethereum hackers :)
- **[Create a new issue](https://github.com/counterfactual/monorepo/issues/new)** to report bugs
- **[Fix an issue](https://github.com/counterfactual/counterfactual/issues?state=open)**. Counterfactual is an [Open Source Project](.github/CONTRIBUTING.md)!### Ethereum Networks
The Playground currently only supports the Kovan network.
### Installing dependencies
**Make sure you have Yarn v1.19.0 installed**. For easy management of specific Yarn versions, we recommend using [Yarn Version Manager (YVM)](https://github.com/tophat/yvm).
To install the dependencies:
```shell
yarn
```### Building packages
It is recommended (optional) that you installed `solc` compiler binary on your machine ([installation guide](https://solidity.readthedocs.io/en/latest/installing-solidity.html#binary-packages)) and specify the following in your `.env` under `cf-funding-protocol-contracts` and `apps`
```shell
NATIVE_SOLC=true
```To build all packages:
```shell
yarn build
```### Clean
To clean all packages:
```shell
yarn clean
```### Lint
To lint all packages:
```shell
yarn lint
```To also apply automatic fixes:
```shell
yarn lint:fix
```### Tests
To run all tests:
```shell
yarn test
```To run E2E tests:
- If you're using E2E tests for the first time or have done recent changes to the code, run:
```shell
yarn test:e2e:setup
```- If you're re-running tests or writing new scenarios, run:
```shell
NODE_EXTENDED_PRIVATE_KEY="..." yarn test:e2e
```See the ["Funding the Hub Account for Playground Testing"](./packages/simple-hub-server/README.md) section on the Simple Hub Server package for more information about `NODE_EXTENDED_PRIVATE_KEY`.
### Patches
We generate patches using the [`patch-package`](https://github.com/ds300/patch-package) tool with a workaround described in [this issue](https://github.com/ds300/patch-package/issues/42#issuecomment-435992316) for `yarn` workspaces.
[counterfactual-discord-url]: https://counterfactual.com/chat