178 lines
11 KiB
Markdown
178 lines
11 KiB
Markdown
<img src="https://github.com/0xProject/branding/blob/master/0x_Black_CMYK.png" width="200px" >
|
|
|
|
---
|
|
|
|
[0x][website-url] is an open protocol that facilitates trustless, low friction exchange of Ethereum-based assets. A full description of the protocol may be found in our [whitepaper][whitepaper-url].
|
|
|
|
This repository is a monorepo including the 0x protocol smart contracts and numerous developer tools. Each public sub-package is independently published to NPM.
|
|
|
|
[website-url]: https://0xproject.com/
|
|
[whitepaper-url]: https://0xproject.com/pdfs/0x_white_paper.pdf
|
|
|
|
[](https://circleci.com/gh/0xProject/0x-monorepo)
|
|
[](https://coveralls.io/github/0xProject/0x-monorepo?branch=development)
|
|
[](https://chat.0xproject.com)
|
|
[](https://gitter.im/0xProject/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
|
|
### Published Packages
|
|
|
|
| Package | Version | Description |
|
|
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
| [`0x.js`](/packages/0x.js) | [](https://www.npmjs.com/package/0x.js) | A Javascript library for interacting with the 0x protocol |
|
|
| [`@0xproject/abi-gen`](/packages/abi-gen) | [](https://www.npmjs.com/package/@0xproject/abi-gen) | Tool to generate TS wrappers from smart contract ABIs |
|
|
| [`@0xproject/assert`](/packages/assert) | [](https://www.npmjs.com/package/@0xproject/assert) | Type and schema assertions used by our packages |
|
|
| [`@0xproject/base-contract`](/packages/base-contract) | [](https://www.npmjs.com/package/@0xproject/base-contract) | BaseContract used by auto-generated `abi-gen` wrapper contracts |
|
|
| [`@0xproject/connect`](/packages/connect) | [](https://www.npmjs.com/package/@0xproject/connect) | A Javascript library for interacting with the Standard Relayer API |
|
|
| [`@0xproject/sol-compiler`](/packages/sol-compiler) | [](https://www.npmjs.com/package/@0xproject/sol-compiler) | A thin wrapper around Solc.js that outputs artifacts, resolves imports, only re-compiles when needed, and other niceties. |
|
|
| [`@0xproject/dev-utils`](/packages/dev-utils) | [](https://www.npmjs.com/package/@0xproject/dev-utils) | Dev utils to be shared across 0x projects and packages |
|
|
| [`@0xproject/json-schemas`](/packages/json-schemas) | [](https://www.npmjs.com/package/@0xproject/json-schemas) | 0x-related json schemas |
|
|
| [`@0xproject/monorepo-scripts`](/packages/monorepo-scripts) | [](https://www.npmjs.com/package/@0xproject/monorepo-scripts) | Monorepo scripts |
|
|
| [`@0xproject/react-docs`](/packages/react-docs) | [](https://www.npmjs.com/package/@0xproject/react-docs) | React documentation component for rendering TypeDoc & Doxity generated JSON |
|
|
| [`@0xproject/react-shared`](/packages/react-shared) | [](https://www.npmjs.com/package/@0xproject/react-shared) | 0x shared react components |
|
|
| [`@0xproject/sra-report`](/packages/sra-report) | [](https://www.npmjs.com/package/@0xproject/sra-report) | Generate reports for standard relayer API compliance |
|
|
| [`@0xproject/sol-cov`](/packages/sol-cov) | [](https://www.npmjs.com/package/@0xproject/sol-cov) | Solidity test coverage tool |
|
|
| [`@0xproject/subproviders`](/packages/subproviders) | [](https://www.npmjs.com/package/@0xproject/subproviders) | Useful web3 subproviders (e.g LedgerSubprovider) |
|
|
| [`@0xproject/tslint-config`](/packages/tslint-config) | [](https://www.npmjs.com/package/@0xproject/tslint-config) | Custom 0x development TSLint rules |
|
|
| [`@0xproject/types`](/packages/types) | [](https://www.npmjs.com/package/@0xproject/types) | Shared type declarations |
|
|
| [`@0xproject/typescript-typings`](/packages/typescript-typings) | [](https://www.npmjs.com/package/@0xproject/typescript-typings) | Repository of types for external packages |
|
|
| [`@0xproject/utils`](/packages/utils) | [](https://www.npmjs.com/package/@0xproject/utils) | Shared utilities |
|
|
| [`@0xproject/web3-wrapper`](/packages/web3-wrapper) | [](https://www.npmjs.com/package/@0xproject/web3-wrapper) | Web3 wrapper |
|
|
|
|
### Private Packages
|
|
|
|
| Package | Description |
|
|
| --------------------------------------------------------------- | ---------------------------------------------------------------- |
|
|
| [`@0xproject/contracts`](/packages/contracts) | 0x solidity smart contracts & tests |
|
|
| [`@0xproject/react-docs-example`](/packages/react-docs-example) | Example documentation site created with `@0xproject/react-docs` |
|
|
| [`@0xproject/testnet-faucets`](/packages/testnet-faucets) | A faucet micro-service that dispenses test ERC20 tokens or Ether |
|
|
| [`@0xproject/website`](/packages/website) | 0x website & Portal DApp |
|
|
|
|
## Usage
|
|
|
|
Dedicated documentation pages:
|
|
|
|
* [0x.js Library](https://0xproject.com/docs/0xjs)
|
|
* [0x Connect](https://0xproject.com/docs/connect)
|
|
* [Smart contracts](https://0xproject.com/docs/contracts)
|
|
* [Subproviders](https://0xproject.com/docs/subproviders)
|
|
* [Sol Compiler](https://0xproject.com/docs/sol-compiler)
|
|
* [Web3-wrapper](https://0xproject.com/docs/web3-wrapper)
|
|
* [JSON-schemas](https://0xproject.com/docs/json-schemas)
|
|
* [Sol-cov](https://0xproject.com/docs/sol-cov)
|
|
* [Standard Relayer API](https://github.com/0xProject/standard-relayer-api/blob/master/README.md)
|
|
|
|
Most of the packages require additional typings for external dependencies.
|
|
You can include those by prepending @0xproject/typescript-typings package to your [`typeRoots`](http://www.typescriptlang.org/docs/handbook/tsconfig-json.html) config.
|
|
|
|
```json
|
|
"typeRoots": ["node_modules/@0xproject/typescript-typings/types", "node_modules/@types"],
|
|
```
|
|
|
|
## Contributing
|
|
|
|
We strongly recommend that the community help us make improvements and determine the future direction of the protocol. To report bugs within this package, please create an issue in this repository.
|
|
|
|
#### Read our [contribution guidelines](./CONTRIBUTING.md).
|
|
|
|
### Install dependencies
|
|
|
|
If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:
|
|
|
|
```bash
|
|
yarn config set workspaces-experimental true
|
|
```
|
|
|
|
Then install dependencies
|
|
|
|
```bash
|
|
yarn install
|
|
```
|
|
|
|
### Build
|
|
|
|
To build all packages:
|
|
|
|
```bash
|
|
yarn build
|
|
```
|
|
|
|
To build a specific package:
|
|
|
|
```bash
|
|
PKG=@0xproject/web3-wrapper yarn build
|
|
```
|
|
|
|
### Watch
|
|
|
|
To re-build all packages on change:
|
|
|
|
```bash
|
|
yarn watch
|
|
```
|
|
|
|
To watch a specific package and all it's dependent packages:
|
|
|
|
```bash
|
|
PKG=[NPM_PACKAGE_NAME] yarn watch
|
|
|
|
e.g
|
|
PKG=@0xproject/web3-wrapper yarn watch
|
|
```
|
|
|
|
### Clean
|
|
|
|
Clean all packages:
|
|
|
|
```bash
|
|
yarn clean
|
|
```
|
|
|
|
Clean a specific package
|
|
|
|
```bash
|
|
PKG=0x.js yarn clean
|
|
```
|
|
|
|
### Rebuild
|
|
|
|
To re-build (clean & build) all packages:
|
|
|
|
```bash
|
|
yarn rebuild
|
|
```
|
|
|
|
To re-build (clean & build) a specific package & it's deps:
|
|
|
|
```bash
|
|
PKG=0x.js yarn rebuild
|
|
```
|
|
|
|
### Lint
|
|
|
|
Lint all packages:
|
|
|
|
```bash
|
|
yarn lint
|
|
```
|
|
|
|
Lint a specific package:
|
|
|
|
```bash
|
|
PKG=0x.js yarn lint
|
|
```
|
|
|
|
### Run Tests
|
|
|
|
Run all tests:
|
|
|
|
```bash
|
|
yarn test
|
|
```
|
|
|
|
Run a specific package's test:
|
|
|
|
```bash
|
|
PKG=@0xproject/web3-wrapper yarn test
|
|
```
|