aboutsummaryrefslogtreecommitdiffstats
path: root/packages/0x.js/test
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-04-09 16:14:25 +0800
committerFabio Berger <me@fabioberger.com>2018-04-09 16:14:25 +0800
commit919b327fc534e3c2dc6330130cee690f0fa39fea (patch)
treefd58793bcd44f0c50e143f8f07c359e444ec34ee /packages/0x.js/test
parente05b55d4a5698d3e936e7164ed69d9417d12cd12 (diff)
downloaddexon-sol-tools-919b327fc534e3c2dc6330130cee690f0fa39fea.tar
dexon-sol-tools-919b327fc534e3c2dc6330130cee690f0fa39fea.tar.gz
dexon-sol-tools-919b327fc534e3c2dc6330130cee690f0fa39fea.tar.bz2
dexon-sol-tools-919b327fc534e3c2dc6330130cee690f0fa39fea.tar.lz
dexon-sol-tools-919b327fc534e3c2dc6330130cee690f0fa39fea.tar.xz
dexon-sol-tools-919b327fc534e3c2dc6330130cee690f0fa39fea.tar.zst
dexon-sol-tools-919b327fc534e3c2dc6330130cee690f0fa39fea.zip
Move migrations into separate monorepo subpackage and hook it up to 0x.js and contracts
Diffstat (limited to 'packages/0x.js/test')
-rw-r--r--packages/0x.js/test/0x.js_test.ts5
-rw-r--r--packages/0x.js/test/migrations/config/token_info.ts40
-rw-r--r--packages/0x.js/test/migrations/migrate.ts90
-rw-r--r--packages/0x.js/test/migrations/types.ts38
4 files changed, 4 insertions, 169 deletions
diff --git a/packages/0x.js/test/0x.js_test.ts b/packages/0x.js/test/0x.js_test.ts
index e6163d568..5720f42ce 100644
--- a/packages/0x.js/test/0x.js_test.ts
+++ b/packages/0x.js/test/0x.js_test.ts
@@ -1,5 +1,9 @@
import { Deployer } from '@0xproject/deployer';
import { BlockchainLifecycle, devConstants, web3Factory } from '@0xproject/dev-utils';
+// HACK: This dependency is optional since it is only available when run from within
+// the monorepo. tslint doesn't handle optional dependencies
+// tslint:disable-next-line:no-implicit-dependencies
+import { runMigrationsAsync } from '@0xproject/migrations';
import { BigNumber } from '@0xproject/utils';
import * as chai from 'chai';
import * as _ from 'lodash';
@@ -9,7 +13,6 @@ import * as Sinon from 'sinon';
import { ApprovalContractEventArgs, LogWithDecodedArgs, Order, TokenEvents, ZeroEx } from '../src';
-import { runMigrationsAsync } from './migrations/migrate';
import { chaiSetup } from './utils/chai_setup';
import { constants } from './utils/constants';
import { deployer } from './utils/deployer';
diff --git a/packages/0x.js/test/migrations/config/token_info.ts b/packages/0x.js/test/migrations/config/token_info.ts
deleted file mode 100644
index 0d0e90917..000000000
--- a/packages/0x.js/test/migrations/config/token_info.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { constants } from '../../utils/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,
- },
-];
diff --git a/packages/0x.js/test/migrations/migrate.ts b/packages/0x.js/test/migrations/migrate.ts
deleted file mode 100644
index 85fb2a34f..000000000
--- a/packages/0x.js/test/migrations/migrate.ts
+++ /dev/null
@@ -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 '../utils/constants';
-
-import { tokenInfo } from './config/token_info';
-import { ContractName } from './types';
-
-/**
- * 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.WETH9);
- 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,
- },
- );
- }
-};
diff --git a/packages/0x.js/test/migrations/types.ts b/packages/0x.js/test/migrations/types.ts
deleted file mode 100644
index 1887bfd96..000000000
--- a/packages/0x.js/test/migrations/types.ts
+++ /dev/null
@@ -1,38 +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[];
-}
-
-export enum ContractName {
- TokenTransferProxy = 'TokenTransferProxy',
- TokenRegistry = 'TokenRegistry',
- MultiSigWalletWithTimeLock = 'MultiSigWalletWithTimeLock',
- Exchange = 'Exchange',
- ZRXToken = 'ZRXToken',
- DummyToken = 'DummyToken',
- WETH9 = 'WETH9',
- MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress = 'MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress',
- MaliciousToken = 'MaliciousToken',
- AccountLevels = 'AccountLevels',
- EtherDelta = 'EtherDelta',
- Arbitrage = 'Arbitrage',
-}