aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/deploy
diff options
context:
space:
mode:
Diffstat (limited to 'packages/contracts/deploy')
-rw-r--r--packages/contracts/deploy/migrations/migrate.ts106
-rw-r--r--packages/contracts/deploy/src/compiler.ts2
-rw-r--r--packages/contracts/deploy/src/deployer.ts1
-rw-r--r--packages/contracts/deploy/test/deploy_test.ts2
-rw-r--r--packages/contracts/deploy/test/util/constants.ts2
5 files changed, 49 insertions, 64 deletions
diff --git a/packages/contracts/deploy/migrations/migrate.ts b/packages/contracts/deploy/migrations/migrate.ts
index c3d38875e..e893e6a6f 100644
--- a/packages/contracts/deploy/migrations/migrate.ts
+++ b/packages/contracts/deploy/migrations/migrate.ts
@@ -1,59 +1,42 @@
import {Web3Wrapper} from '@0xproject/web3-wrapper';
import {BigNumber} from 'bignumber.js';
import * as _ from 'lodash';
-import * as Web3 from 'web3';
import {Deployer} from './../src/deployer';
import {constants} from './../src/utils/constants';
-import {Token} from './../src/utils/types';
import {tokenInfo} from './config/token_info';
export const migrator = {
/**
* Custom migrations should be defined in this function. This will be called with the CLI 'migrate' command.
+ * Some operations might be completed in parallel, but we don't do that on purpose.
+ * That way the addresses are deterministic.
* @param deployer Deployer instance.
*/
async runMigrationsAsync(deployer: Deployer): Promise<void> {
const web3Wrapper: Web3Wrapper = deployer.web3Wrapper;
const accounts: string[] = await web3Wrapper.getAvailableAddressesAsync();
- const independentContracts: Web3.ContractInstance[] = await Promise.all([
- deployer.deployAndSaveAsync('TokenTransferProxy'),
- deployer.deployAndSaveAsync('ZRXToken'),
- deployer.deployAndSaveAsync('EtherToken'),
- deployer.deployAndSaveAsync('TokenRegistry'),
- ]);
- const [tokenTransferProxy, zrxToken, etherToken, tokenReg] = independentContracts;
+ const tokenTransferProxy = await deployer.deployAndSaveAsync('TokenTransferProxy');
+ const zrxToken = await deployer.deployAndSaveAsync('ZRXToken');
+ const etherToken = await deployer.deployAndSaveAsync('EtherToken');
+ const tokenReg = await deployer.deployAndSaveAsync('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 dependentContracts: Web3.ContractInstance[] = await Promise.all([
- deployer.deployAndSaveAsync('Exchange', exchangeArgs),
- deployer.deployAndSaveAsync('MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress', multiSigArgs),
- ]);
- const [exchange, multiSig] = dependentContracts;
+ const exchange = await deployer.deployAndSaveAsync('Exchange', exchangeArgs);
+ const multiSig = await deployer.deployAndSaveAsync(
+ 'MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress', multiSigArgs,
+ );
const owner = accounts[0];
await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, {from: owner});
await tokenTransferProxy.transferOwnership.sendTransactionAsync(multiSig.address, {from: owner});
-
- const tokensToRegister: Web3.ContractInstance[] = await Promise.all(
- _.map(tokenInfo, async (token: Token): Promise<Web3.ContractInstance> => {
- const totalSupply = new BigNumber(0);
- const args = [
- token.name,
- token.symbol,
- token.decimals,
- totalSupply,
- ];
- return deployer.deployAsync('DummyToken', args);
- }),
- );
const addTokenGasEstimate = await tokenReg.addToken.estimateGasAsync(
- tokensToRegister[0].address,
+ zrxToken.address,
tokenInfo[0].name,
tokenInfo[0].symbol,
tokenInfo[0].decimals,
@@ -61,35 +44,41 @@ export const migrator = {
tokenInfo[0].swarmHash,
{from: owner},
);
- const addTokenPromises = [
- tokenReg.addToken.sendTransactionAsync(
- zrxToken.address,
- '0x Protocol Token',
- 'ZRX',
- 18,
- constants.NULL_BYTES,
- constants.NULL_BYTES,
- {
- from: owner,
- gas: addTokenGasEstimate,
- },
- ),
- tokenReg.addToken.sendTransactionAsync(
- etherToken.address,
- 'Ether Token',
- 'WETH',
- 18,
- constants.NULL_BYTES,
- constants.NULL_BYTES,
- {
- from: owner,
- gas: addTokenGasEstimate,
- },
- ),
- ];
- const addDummyTokenPromises = _.map(tokenInfo, async (token: Token, i: number): Promise<void> => {
- return tokenReg.addToken.sendTransactionAsync(
- tokensToRegister[i].address,
+ 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('DummyToken', args);
+ await tokenReg.addToken.sendTransactionAsync(
+ dummyToken.address,
token.name,
token.symbol,
token.decimals,
@@ -100,7 +89,6 @@ export const migrator = {
gas: addTokenGasEstimate,
},
);
- });
- await Promise.all([...addDummyTokenPromises, ...addTokenPromises]);
+ }
},
};
diff --git a/packages/contracts/deploy/src/compiler.ts b/packages/contracts/deploy/src/compiler.ts
index 8a44e94a3..333a2d0ce 100644
--- a/packages/contracts/deploy/src/compiler.ts
+++ b/packages/contracts/deploy/src/compiler.ts
@@ -1,4 +1,3 @@
-import {promisify} from '@0xproject/utils';
import * as ethUtil from 'ethereumjs-util';
import * as _ from 'lodash';
import * as path from 'path';
@@ -14,7 +13,6 @@ import {
ContractNetworks,
ContractSources,
ImportContents,
- SolcErrors,
} from './utils/types';
import {utils} from './utils/utils';
diff --git a/packages/contracts/deploy/src/deployer.ts b/packages/contracts/deploy/src/deployer.ts
index 4c8018ecc..991504972 100644
--- a/packages/contracts/deploy/src/deployer.ts
+++ b/packages/contracts/deploy/src/deployer.ts
@@ -1,5 +1,4 @@
import {TxData} from '@0xproject/types';
-import {promisify} from '@0xproject/utils';
import {Web3Wrapper} from '@0xproject/web3-wrapper';
import * as _ from 'lodash';
import * as Web3 from 'web3';
diff --git a/packages/contracts/deploy/test/deploy_test.ts b/packages/contracts/deploy/test/deploy_test.ts
index 7e7b98f90..263174a94 100644
--- a/packages/contracts/deploy/test/deploy_test.ts
+++ b/packages/contracts/deploy/test/deploy_test.ts
@@ -4,7 +4,7 @@ import 'mocha';
import {Compiler} from './../src/compiler';
import {Deployer} from './../src/deployer';
import {fsWrapper} from './../src/utils/fs_wrapper';
-import {CompilerOptions, ContractArtifact, ContractData, DeployerOptions, DoneCallback} from './../src/utils/types';
+import {CompilerOptions, ContractArtifact, ContractData, DoneCallback} from './../src/utils/types';
import {constructor_args, exchange_binary} from './fixtures/exchange_bin';
import {constants} from './util/constants';
diff --git a/packages/contracts/deploy/test/util/constants.ts b/packages/contracts/deploy/test/util/constants.ts
index a2de44b63..65525a1f7 100644
--- a/packages/contracts/deploy/test/util/constants.ts
+++ b/packages/contracts/deploy/test/util/constants.ts
@@ -5,7 +5,7 @@ export const constants = {
jsonrpcPort: 8545,
optimizerEnabled: 0,
gasPrice: new BigNumber(20000000000),
- timeoutMs: 12000,
+ timeoutMs: 20000,
zrxTokenAddress: '0xe41d2489571d322189246dafa5ebde1f4699f498',
tokenTransferProxyAddress: '0x8da0d80f5007ef1e431dd2127178d224e32c2ef4',
};