Add Deployer docs to website

This commit is contained in:
Fabio Berger
2018-03-15 19:23:21 +01:00
parent b145a17d11
commit f9ad97b978
17 changed files with 247 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
**Install**
```bash
npm install @0xproject/deployer --save
```
**Import**
```javascript
import { Deployer, Compiler } from '@0xproject/deployer';
```
or
```javascript
var Deployer = require('@0xproject/deployer').Deployer;
var Compiler = require('@0xproject/deployer').Compiler;
```

View File

@@ -0,0 +1,17 @@
Welcome to the [Deployer](https://github.com/0xProject/0x-monorepo/tree/development/packages/deployer) documentation! Deployer is a tool for compiling and deploying Solidity smart contracts with ease.
It serves a similar purpose to the [Truffle framework](http://truffleframework.com/), but for intermediate to advanced Solidity developers that require greater configurability and reliability.
Deployer has the following advantages over Truffle:
* Deploy each smart contract with a specific version of Solidity
* Improved artifact files:
* Properly segregated artifacts to support storing different versions of smart contract deployed on different networks.
* Storage of contructor args and contract source code
* An easy to maintain codebase: TypeScript + Single package
* Allows you to specify the deployer address
* Migrations that work with `async/await`
* Migrations that can be written synchronously in order to guarentee deterministic contract addresses
* No race conditions when running migrations.
Deployer can be used as a command-line tool or as an imported module.

View File

@@ -0,0 +1,52 @@
### 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)