Move migrations over from contracts to 0x.js
This commit is contained in:
@@ -1,10 +0,0 @@
|
||||
import { MultiSigConfigByNetwork } from '../types';
|
||||
|
||||
// Make a copy of this file named `multisig.js` and input custom params as needed
|
||||
export const multiSig: MultiSigConfigByNetwork = {
|
||||
kovan: {
|
||||
owners: [],
|
||||
confirmationsRequired: 0,
|
||||
secondsRequired: 0,
|
||||
},
|
||||
};
|
@@ -1,40 +0,0 @@
|
||||
import { constants } from '../../util/constants';
|
||||
import { Token } from '../types';
|
||||
|
||||
export const tokenInfo: Token[] = [
|
||||
{
|
||||
name: 'Augur Reputation Token',
|
||||
symbol: 'REP',
|
||||
decimals: 18,
|
||||
ipfsHash: constants.NULL_BYTES,
|
||||
swarmHash: constants.NULL_BYTES,
|
||||
},
|
||||
{
|
||||
name: 'Digix DAO Token',
|
||||
symbol: 'DGD',
|
||||
decimals: 18,
|
||||
ipfsHash: constants.NULL_BYTES,
|
||||
swarmHash: constants.NULL_BYTES,
|
||||
},
|
||||
{
|
||||
name: 'Golem Network Token',
|
||||
symbol: 'GNT',
|
||||
decimals: 18,
|
||||
ipfsHash: constants.NULL_BYTES,
|
||||
swarmHash: constants.NULL_BYTES,
|
||||
},
|
||||
{
|
||||
name: 'MakerDAO',
|
||||
symbol: 'MKR',
|
||||
decimals: 18,
|
||||
ipfsHash: constants.NULL_BYTES,
|
||||
swarmHash: constants.NULL_BYTES,
|
||||
},
|
||||
{
|
||||
name: 'Melon Token',
|
||||
symbol: 'MLN',
|
||||
decimals: 18,
|
||||
ipfsHash: constants.NULL_BYTES,
|
||||
swarmHash: constants.NULL_BYTES,
|
||||
},
|
||||
];
|
@@ -1,20 +0,0 @@
|
||||
import { Deployer } from '@0xproject/deployer';
|
||||
import { devConstants } from '@0xproject/dev-utils';
|
||||
import * as path from 'path';
|
||||
|
||||
import { constants } from '../util/constants';
|
||||
|
||||
import { runMigrationsAsync } from './migrate';
|
||||
|
||||
const deployerOpts = {
|
||||
artifactsDir: path.resolve('src', 'artifacts'),
|
||||
jsonrpcUrl: devConstants.RPC_URL,
|
||||
networkId: constants.TESTRPC_NETWORK_ID,
|
||||
defaults: {
|
||||
gas: devConstants.GAS_ESTIMATE,
|
||||
},
|
||||
};
|
||||
|
||||
export const deployer = new Deployer(deployerOpts);
|
||||
|
||||
runMigrationsAsync(deployer).catch(console.log);
|
@@ -1,90 +0,0 @@
|
||||
import { Deployer } from '@0xproject/deployer';
|
||||
import { BigNumber } from '@0xproject/utils';
|
||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||
import * as _ from 'lodash';
|
||||
|
||||
import { constants } from '../util/constants';
|
||||
import { ContractName } from '../util/types';
|
||||
|
||||
import { tokenInfo } from './config/token_info';
|
||||
|
||||
/**
|
||||
* Custom migrations should be defined in this function. This will be called with the CLI 'migrate' command.
|
||||
* Migrations could be written to run in parallel, but if you want contract addresses to be created deterministically,
|
||||
* the migration should be written to run synchronously.
|
||||
* @param deployer Deployer instance.
|
||||
*/
|
||||
export const runMigrationsAsync = async (deployer: Deployer) => {
|
||||
const web3Wrapper: Web3Wrapper = deployer.web3Wrapper;
|
||||
const accounts: string[] = await web3Wrapper.getAvailableAddressesAsync();
|
||||
|
||||
const tokenTransferProxy = await deployer.deployAndSaveAsync(ContractName.TokenTransferProxy);
|
||||
const zrxToken = await deployer.deployAndSaveAsync(ContractName.ZRXToken);
|
||||
const etherToken = await deployer.deployAndSaveAsync(ContractName.EtherToken);
|
||||
const tokenReg = await deployer.deployAndSaveAsync(ContractName.TokenRegistry);
|
||||
|
||||
const exchangeArgs = [zrxToken.address, tokenTransferProxy.address];
|
||||
const owners = [accounts[0], accounts[1]];
|
||||
const confirmationsRequired = new BigNumber(2);
|
||||
const secondsRequired = new BigNumber(0);
|
||||
const multiSigArgs = [owners, confirmationsRequired, secondsRequired, tokenTransferProxy.address];
|
||||
const exchange = await deployer.deployAndSaveAsync(ContractName.Exchange, exchangeArgs);
|
||||
const multiSig = await deployer.deployAndSaveAsync(
|
||||
ContractName.MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress,
|
||||
multiSigArgs,
|
||||
);
|
||||
|
||||
const owner = accounts[0];
|
||||
await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, { from: owner });
|
||||
await tokenTransferProxy.transferOwnership.sendTransactionAsync(multiSig.address, { from: owner });
|
||||
const addTokenGasEstimate = await tokenReg.addToken.estimateGasAsync(
|
||||
zrxToken.address,
|
||||
tokenInfo[0].name,
|
||||
tokenInfo[0].symbol,
|
||||
tokenInfo[0].decimals,
|
||||
tokenInfo[0].ipfsHash,
|
||||
tokenInfo[0].swarmHash,
|
||||
{ from: owner },
|
||||
);
|
||||
await tokenReg.addToken.sendTransactionAsync(
|
||||
zrxToken.address,
|
||||
'0x Protocol Token',
|
||||
'ZRX',
|
||||
18,
|
||||
constants.NULL_BYTES,
|
||||
constants.NULL_BYTES,
|
||||
{
|
||||
from: owner,
|
||||
gas: addTokenGasEstimate,
|
||||
},
|
||||
);
|
||||
await tokenReg.addToken.sendTransactionAsync(
|
||||
etherToken.address,
|
||||
'Ether Token',
|
||||
'WETH',
|
||||
18,
|
||||
constants.NULL_BYTES,
|
||||
constants.NULL_BYTES,
|
||||
{
|
||||
from: owner,
|
||||
gas: addTokenGasEstimate,
|
||||
},
|
||||
);
|
||||
for (const token of tokenInfo) {
|
||||
const totalSupply = new BigNumber(0);
|
||||
const args = [token.name, token.symbol, token.decimals, totalSupply];
|
||||
const dummyToken = await deployer.deployAsync(ContractName.DummyToken, args);
|
||||
await tokenReg.addToken.sendTransactionAsync(
|
||||
dummyToken.address,
|
||||
token.name,
|
||||
token.symbol,
|
||||
token.decimals,
|
||||
token.ipfsHash,
|
||||
token.swarmHash,
|
||||
{
|
||||
from: owner,
|
||||
gas: addTokenGasEstimate,
|
||||
},
|
||||
);
|
||||
}
|
||||
};
|
@@ -1,23 +0,0 @@
|
||||
export interface MultiSigConfig {
|
||||
owners: string[];
|
||||
confirmationsRequired: number;
|
||||
secondsRequired: number;
|
||||
}
|
||||
|
||||
export interface MultiSigConfigByNetwork {
|
||||
[networkName: string]: MultiSigConfig;
|
||||
}
|
||||
|
||||
export interface Token {
|
||||
address?: string;
|
||||
name: string;
|
||||
symbol: string;
|
||||
decimals: number;
|
||||
ipfsHash: string;
|
||||
swarmHash: string;
|
||||
}
|
||||
|
||||
export interface TokenInfoByNetwork {
|
||||
development: Token[];
|
||||
live: Token[];
|
||||
}
|
@@ -19,7 +19,6 @@
|
||||
"compile": "node ../deployer/lib/src/cli.js compile --contracts ${npm_package_config_contracts} --contracts-dir src/contracts --artifacts-dir src/artifacts",
|
||||
"clean": "shx rm -rf ./lib",
|
||||
"generate_contract_wrappers": "node ../abi-gen/lib/index.js --abis ${npm_package_config_abis} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers/generated --backend ethers && prettier --write 'src/contract_wrappers/generated/**.ts'",
|
||||
"migrate": "yarn build && yarn compile && node ./lib/migrations/index.js",
|
||||
"lint": "tslint --project . 'migrations/**/*.ts' 'test/**/*.ts' 'util/**/*.ts' 'deploy/**/*.ts'",
|
||||
"coverage:report:text": "istanbul report text",
|
||||
"coverage:report:html": "istanbul report html && open coverage/index.html",
|
||||
|
Reference in New Issue
Block a user