109 lines
2.7 KiB
Markdown
109 lines
2.7 KiB
Markdown
## @0xproject/deployer
|
|
|
|
This repository contains a CLI tool that facilitates compiling and deployment of smart contracts.
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
yarn add @0xproject/deployer
|
|
```
|
|
|
|
## Usage
|
|
|
|
### CLI Usage
|
|
|
|
```bash
|
|
node ./node_modules/@0xproject/deployer/lib/cli.js --help
|
|
cli.js [command]
|
|
|
|
Commands:
|
|
cli.js compile compile contracts
|
|
cli.js deploy deploy a single contract with provided arguments
|
|
|
|
Options:
|
|
--version Show version number [boolean]
|
|
--contracts-dir path of contracts directory to compile
|
|
[string] [default: "/Users/leonidlogvinov/Dev/0x/contracts"]
|
|
--network-id mainnet=1, kovan=42, testrpc=50 [number] [default: 50]
|
|
--should-optimize enable optimizer [boolean] [default: false]
|
|
--artifacts-dir path to write contracts artifacts to
|
|
[string] [default: "/Users/leonidlogvinov/Dev/0x/build/artifacts/"]
|
|
--jsonrpc-port port connected to JSON RPC [number] [default: 8545]
|
|
--gas-price gasPrice to be used for transactions
|
|
[string] [default: "2000000000"]
|
|
--account account to use for deploying contracts [string]
|
|
--help Show help [boolean]
|
|
```
|
|
|
|
### API Usage
|
|
|
|
## Migrations
|
|
|
|
You might want to write a migration scripts (similar to `truffle migrate`), that deploys multiple contracts and configures them. Below you'll find a simple example of such a script to help you get started.
|
|
|
|
```typescript
|
|
import { Deployer } from '@0xproject/deployer';
|
|
import * as path from 'path';
|
|
|
|
const deployerOpts = {
|
|
artifactsDir: path.resolve('src', 'artifacts'),
|
|
jsonrpcUrl: 'http://localhost:8545',
|
|
networkId: 50,
|
|
defaults: {
|
|
gas: 1000000,
|
|
},
|
|
};
|
|
|
|
const deployer = new Deployer(deployerOpts);
|
|
|
|
(async () => {
|
|
const etherToken = await deployer.deployAndSaveAsync('WETH9');
|
|
})().catch(console.log);
|
|
```
|
|
|
|
A more sophisticated example can be found [here](https://github.com/0xProject/0x-monorepo/tree/development/packages/contracts/migrations)
|
|
|
|
## 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.
|
|
|
|
Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started.
|
|
|
|
### 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
|
|
|
|
```bash
|
|
yarn build
|
|
```
|
|
|
|
or
|
|
|
|
```bash
|
|
yarn build:watch
|
|
```
|
|
|
|
### Lint
|
|
|
|
```bash
|
|
yarn lint
|
|
```
|
|
|
|
### Run Tests
|
|
|
|
```bash
|
|
yarn test
|
|
```
|