* development: (71 commits) Transform input data before encoding for callAsync and getABIEncodedTransactionData Update coverage badge to show development coverage Configure post build hook Notify coveralls after all tasks have finished Address feedback Revert "Report all coverage reports together" Separate published packages and typescript typings on README Report all coverage reports together Add other statement types Properly and consistently parse ENV vars Add forgotten file Start using solidity-parser-antlr Fix the default always overriding to address Submit a TD PR Add an explanatory comment for making ranges unique Fix a typo in handling env variables Introduce TESTRPC_FIRST_ADDRESS Make BlockchainLifecycle accept only web3Wrapper Fix comments Fix deployer CHANGELOG ... # Conflicts: # README.md # packages/deployer/package.json # packages/subproviders/src/globals.d.ts # yarn.lock
@0xproject/deployer
This repository contains a CLI tool that facilitates compiling and deployment of smart contracts.
Installation
yarn add @0xproject/deployer
Usage
CLI Usage
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.
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
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 before getting started.
Install Dependencies
If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:
yarn config set workspaces-experimental true
Then install dependencies
yarn install
Build
yarn build
or
yarn build:watch
Lint
yarn lint
Run Tests
yarn test