From e70882a657acecb7437ce9dd28218d719f8beb3d Mon Sep 17 00:00:00 2001 From: Alex Browne Date: Tue, 4 Sep 2018 17:22:22 -0400 Subject: More small chnages/bug fixes --- packages/contract-wrappers/package.json | 3 +- packages/contracts/package.json | 4 +- packages/migrations/package.json | 14 +- packages/migrations/src/2.0.0-testnet/artifacts.ts | 23 --- packages/migrations/src/2.0.0-testnet/migration.ts | 190 --------------------- packages/migrations/src/2.0.0/migration.ts | 6 +- packages/migrations/src/index.ts | 1 - packages/migrations/src/migrate.ts | 30 ---- packages/order-utils/package.json | 4 +- 9 files changed, 10 insertions(+), 265 deletions(-) delete mode 100644 packages/migrations/src/2.0.0-testnet/artifacts.ts delete mode 100644 packages/migrations/src/2.0.0-testnet/migration.ts (limited to 'packages') diff --git a/packages/contract-wrappers/package.json b/packages/contract-wrappers/package.json index b36ae946f..561de60ac 100644 --- a/packages/contract-wrappers/package.json +++ b/packages/contract-wrappers/package.json @@ -27,8 +27,7 @@ "docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --tsconfig typedoc-tsconfig.json --json $JSON_FILE_PATH $PROJECT_FILES" }, "config": { - "contracts_v2_beta": "AssetProxyOwner Exchange ERC20Proxy ERC20Token ERC721Proxy ERC721Token WETH9 ZRXToken Forwarder OrderValidator", - "contracts_v2": "DummyERC20Token DummyERC721Token", + "contracts_v2": "AssetProxyOwner Exchange ERC20Proxy ERC20Token ERC721Proxy ERC721Token WETH9 ZRXToken Forwarder OrderValidator DummyERC20Token DummyERC721Token", "postpublish": { "assets": [] } diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 283991cee..1a26dbd95 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -13,7 +13,7 @@ "scripts": { "build": "yarn pre_build && tsc -b", "pre_build": "run-s compile copy_artifacts generate_contract_wrappers", - "copy_artifacts": "copyfiles -u 4 '../migrations/artifacts/2.0.0/**/*' ./lib/artifacts;", + "copy_artifacts": "copyfiles -u 4 '../migrations/artifacts/development/**/*' ./lib/artifacts;", "test": "yarn run_mocha", "rebuild_and_test": "run-s build test", "test:coverage": "SOLIDITY_COVERAGE=true run-s build run_mocha coverage:report:text coverage:report:lcov", @@ -36,7 +36,7 @@ }, "config": { "abis": - "../migrations/artifacts/2.0.0/@(AssetProxyOwner|DummyERC20Token|DummyERC721Receiver|DummyERC721Token|DummyMultipleReturnERC20Token|DummyNoReturnERC20Token|ERC20Proxy|ERC721Proxy|Forwarder|Exchange|ExchangeWrapper|IAssetData|IAssetProxy|InvalidERC721Receiver|MixinAuthorizable|MultiSigWallet|MultiSigWalletWithTimeLock|OrderValidator|ReentrantERC20Token|TestAssetProxyOwner|TestAssetProxyDispatcher|TestConstants|TestExchangeInternals|TestLibBytes|TestLibs|TestSignatureValidator|TestStaticCallReceiver|Validator|Wallet|TokenRegistry|Whitelist|WETH9|ZRXToken).json" + "../migrations/artifacts/development/@(AssetProxyOwner|DummyERC20Token|DummyERC721Receiver|DummyERC721Token|DummyMultipleReturnERC20Token|DummyNoReturnERC20Token|ERC20Proxy|ERC721Proxy|Forwarder|Exchange|ExchangeWrapper|IAssetData|IAssetProxy|InvalidERC721Receiver|MixinAuthorizable|MultiSigWallet|MultiSigWalletWithTimeLock|OrderValidator|ReentrantERC20Token|TestAssetProxyOwner|TestAssetProxyDispatcher|TestConstants|TestExchangeInternals|TestLibBytes|TestLibs|TestSignatureValidator|TestStaticCallReceiver|Validator|Wallet|TokenRegistry|Whitelist|WETH9|ZRXToken).json" }, "repository": { "type": "git", diff --git a/packages/migrations/package.json b/packages/migrations/package.json index 22a71e3bc..776cc2e00 100644 --- a/packages/migrations/package.json +++ b/packages/migrations/package.json @@ -9,24 +9,18 @@ "types": "lib/index.d.ts", "scripts": { "build": "yarn pre_build && tsc -b", - "pre_build": "run-s compile:v2 copy_artifacts generate_contract_wrappers", + "pre_build": "run-s copy_artifacts generate_contract_wrappers", "copy_artifacts": "copyfiles 'artifacts/**/*' ./lib", - "clean": "shx rm -rf lib src/1.0.0/contract_wrappers src/2.0.0-testnet/contract_wrappers src/2.0.0/contract_wrappers src/development/contract_wrappers artifacts/development", + "clean": "shx rm -rf lib src/1.0.0/contract_wrappers src/2.0.0-testnet/contract_wrappers src/2.0.0/contract_wrappers artifacts/development", "lint": "tslint --project . --exclude **/src/v2/contract_wrappers/**/* --exclude **/src/v1/contract_wrappers/**/*", "migrate:v1": "run-s build compile:v1 script:migrate:v1", - "migrate:v2": "run-s build compile:v2 script:migrate:v2", - "migrate:v2-beta-testnet": "run-s build compile:v2-beta-testnet script:migrate:v2-beta-testnet", - "migrate:v2-mainnet": "run-s compile:v2-mainnet copy_artifacts generate_contract_wrappers:v2-mainnet && tsc && yarn script:migrate:v2-mainnet", + "migrate:v2": "run-s build script:migrate:v2", "script:migrate:v1": "node ./lib/migrate.js --contracts-version 1.0.0", "script:migrate:v2": "node ./lib/migrate.js --contracts-version 2.0.0", - "script:migrate:v2-beta-testnet": "node ./lib/migrate.js --contracts-version 2.0.0-beta-testnet", - "script:migrate:v2-mainnet": "node ./lib/migrate.js --contracts-version 2.0.0-mainnet", "generate_contract_wrappers": "run-p generate_contract_wrappers:*", "generate_contract_wrappers:v1": "abi-gen --abis ${npm_package_config_abis_v1} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/1.0.0/contract_wrappers --backend ethers", "generate_contract_wrappers:v2": "abi-gen --abis ${npm_package_config_abis_v2} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/2.0.0/contract_wrappers --backend ethers", - "generate_contract_wrappers:v2-beta-testnet": "abi-gen --abis ${npm_package_config_abis_v2BetaTestnet} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/2.0.0-beta-testnet/contract_wrappers --backend ethers", - "generate_contract_wrappers:v2-mainnet": "abi-gen --abis ${npm_package_config_abis_v2Mainnet} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/2.0.0-mainnet/contract_wrappers --backend ethers", - "compile:v1": "sol-compiler --artifacts-dir artifacts/1.0.0 --contracts Exchange_v1,DummyERC20Token,ZRXToken,WETH9,TokenTransferProxy_v1,MultiSigWallet,MultiSigWalletWithTimeLock,MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress,TokenRegistry", + "compile:v1": "sol-compiler --artifacts-dir artifacts/1.0.0 --contracts Exchange_v1,DummyERC20Token,ZRXToken,WETH9,TokenTransferProxy_v1,MultiSigWallet,MultiSigWalletWithTimeLock,MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress,TokenRegistry" }, "config": { "abis": { diff --git a/packages/migrations/src/2.0.0-testnet/artifacts.ts b/packages/migrations/src/2.0.0-testnet/artifacts.ts deleted file mode 100644 index f1c6ecd88..000000000 --- a/packages/migrations/src/2.0.0-testnet/artifacts.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ContractArtifact } from 'ethereum-types'; - -import * as AssetProxyOwner from '../../artifacts/2.0.0-testnet/AssetProxyOwner.json'; -import * as DummyERC20Token from '../../artifacts/2.0.0-testnet/DummyERC20Token.json'; -import * as DummyERC721Token from '../../artifacts/2.0.0-testnet/DummyERC721Token.json'; -import * as ERC20Proxy from '../../artifacts/2.0.0-testnet/ERC20Proxy.json'; -import * as ERC721Proxy from '../../artifacts/2.0.0-testnet/ERC721Proxy.json'; -import * as Exchange from '../../artifacts/2.0.0-testnet/Exchange.json'; -import * as Forwarder from '../../artifacts/2.0.0-testnet/Forwarder.json'; -import * as OrderValidator from '../../artifacts/2.0.0-testnet/OrderValidator.json'; -import * as ZRXToken from '../../artifacts/2.0.0-testnet/ZRXToken.json'; - -export const artifacts = { - AssetProxyOwner: (AssetProxyOwner as any) as ContractArtifact, - Exchange: (Exchange as any) as ContractArtifact, - ERC20Proxy: (ERC20Proxy as any) as ContractArtifact, - ERC721Proxy: (ERC721Proxy as any) as ContractArtifact, - DummyERC721Token: (DummyERC721Token as any) as ContractArtifact, - DummyERC20Token: (DummyERC20Token as any) as ContractArtifact, - Forwarder: (Forwarder as any) as ContractArtifact, - OrderValidator: (OrderValidator as any) as ContractArtifact, - ZRX: (ZRXToken as any) as ContractArtifact, -}; diff --git a/packages/migrations/src/2.0.0-testnet/migration.ts b/packages/migrations/src/2.0.0-testnet/migration.ts deleted file mode 100644 index 62a16ddae..000000000 --- a/packages/migrations/src/2.0.0-testnet/migration.ts +++ /dev/null @@ -1,190 +0,0 @@ -import { assetDataUtils } from '@0xproject/order-utils'; -import { BigNumber, logUtils } from '@0xproject/utils'; -import { Web3Wrapper } from '@0xproject/web3-wrapper'; -import { Provider, TxData } from 'ethereum-types'; - -import { ArtifactWriter } from '../utils/artifact_writer'; -import { constants } from '../utils/constants'; -import { erc20TokenInfo, erc721TokenInfo, etherTokenByNetwork } from '../utils/token_info'; - -import { artifacts } from './artifacts'; -import { AssetProxyOwnerContract } from './contract_wrappers/asset_proxy_owner'; -import { DummyERC20TokenContract } from './contract_wrappers/dummy_erc20_token'; -import { DummyERC721TokenContract } from './contract_wrappers/dummy_erc721_token'; -import { ERC20ProxyContract } from './contract_wrappers/erc20_proxy'; -import { ERC721ProxyContract } from './contract_wrappers/erc721_proxy'; -import { ExchangeContract } from './contract_wrappers/exchange'; -import { ForwarderContract } from './contract_wrappers/forwarder'; -import { OrderValidatorContract } from './contract_wrappers/order_validator'; - -// tslint:disable-next-line:custom-no-magic-numbers -const ERC20_TOTAL_SUPPLY = new BigNumber(1000000000000000000000000000); - -/** - * Custom migrations should be defined in this function. This will be called with the CLI 'migrate:v2-beta-testnet' 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 provider Web3 provider instance. - * @param artifactsDir The directory with compiler artifact files. - * @param txDefaults Default transaction values to use when deploying contracts. - */ -export const runV2TestnetMigrationsAsync = async ( - provider: Provider, - artifactsDir: string, - txDefaults: Partial, -) => { - const web3Wrapper = new Web3Wrapper(provider); - const networkId = await web3Wrapper.getNetworkIdAsync(); - const artifactsWriter = new ArtifactWriter(artifactsDir, networkId); - - // Deploy AssetProxies - const erc20proxy = await ERC20ProxyContract.deployFrom0xArtifactAsync(artifacts.ERC20Proxy, provider, txDefaults); - artifactsWriter.saveArtifact(erc20proxy); - const erc721proxy = await ERC721ProxyContract.deployFrom0xArtifactAsync( - artifacts.ERC721Proxy, - provider, - txDefaults, - ); - artifactsWriter.saveArtifact(erc721proxy); - - const zrxDecimals = new BigNumber(18); - const zrxSupply = ERC20_TOTAL_SUPPLY; - const zrxToken = await DummyERC20TokenContract.deployFrom0xArtifactAsync( - artifacts.DummyERC20Token, - provider, - txDefaults, - '0x Protocol Token', - 'ZRX', - zrxDecimals, - zrxSupply, - ); - artifactsWriter.saveArtifact(zrxToken); - - // Deploy Exchange - const zrxAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address); - const exchange = await ExchangeContract.deployFrom0xArtifactAsync( - artifacts.Exchange, - provider, - txDefaults, - zrxAssetData, - ); - artifactsWriter.saveArtifact(exchange); - - let txHash; - // Register AssetProxies in Exchange - txHash = await exchange.registerAssetProxy.sendTransactionAsync(erc20proxy.address); - logUtils.log(`transactionHash: ${txHash}`); - logUtils.log('Registering ERC20Proxy'); - await web3Wrapper.awaitTransactionSuccessAsync(txHash); - - txHash = await exchange.registerAssetProxy.sendTransactionAsync(erc721proxy.address); - logUtils.log(`transactionHash: ${txHash}`); - logUtils.log('Registering ERC721Proxy'); - await web3Wrapper.awaitTransactionSuccessAsync(txHash); - // Ether token is already deployed on various test nets - const etherTokenAddress = etherTokenByNetwork[networkId].address; - const wethAssetData = assetDataUtils.encodeERC20AssetData(etherTokenAddress); - const forwarder = await ForwarderContract.deployFrom0xArtifactAsync( - artifacts.Forwarder, - provider, - txDefaults, - exchange.address, - zrxAssetData, - wethAssetData, - ); - artifactsWriter.saveArtifact(forwarder); - - // Deploy AssetProxyOwner - const assetProxyOwner = await AssetProxyOwnerContract.deployFrom0xArtifactAsync( - artifacts.AssetProxyOwner, - provider, - txDefaults, - constants.ASSET_PROXY_OWNER_OWNERS, - [erc20proxy.address, erc721proxy.address], - constants.ASSET_PROXY_OWNER_CONFIRMATIONS, - constants.ASSET_PROXY_OWNER_TIMELOCK, - ); - artifactsWriter.saveArtifact(assetProxyOwner); - - // Deploy OrderValidator - const orderValidator = await OrderValidatorContract.deployFrom0xArtifactAsync( - artifacts.OrderValidator, - provider, - txDefaults, - exchange.address, - zrxAssetData, - ); - artifactsWriter.saveArtifact(orderValidator); - - // Authorize Exchange contracts to call AssetProxies - txHash = await erc20proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address); - logUtils.log(`transactionHash: ${txHash}`); - logUtils.log('Authorizing Exchange on ERC20Proxy'); - await web3Wrapper.awaitTransactionSuccessAsync(txHash); - - txHash = await erc721proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address); - logUtils.log(`transactionHash: ${txHash}`); - logUtils.log('Authorizing Exchange on ERC721Proxy'); - await web3Wrapper.awaitTransactionSuccessAsync(txHash); - - // Transfer ownership of AssetProxies and Exchange to AssetProxyOwner - txHash = await erc20proxy.transferOwnership.sendTransactionAsync(assetProxyOwner.address); - logUtils.log(`transactionHash: ${txHash}`); - logUtils.log('Transferring ownership of ERC20Proxy'); - await web3Wrapper.awaitTransactionSuccessAsync(txHash); - - txHash = await erc721proxy.transferOwnership.sendTransactionAsync(assetProxyOwner.address); - logUtils.log(`transactionHash: ${txHash}`); - logUtils.log('Transferring ownership of ERC721Proxy'); - await web3Wrapper.awaitTransactionSuccessAsync(txHash); - - txHash = await exchange.transferOwnership.sendTransactionAsync(assetProxyOwner.address); - logUtils.log(`transactionHash: ${txHash}`); - logUtils.log('Transferring ownership of Exchange'); - await web3Wrapper.awaitTransactionSuccessAsync(txHash); - - // Set enough ZRX Balance to the Forwarder - const maxZRXMintAmount = await zrxToken.MAX_MINT_AMOUNT.callAsync(); - // tslint:disable-next-line:custom-no-magic-numbers - const forwarderZRXBalance = maxZRXMintAmount.times(10); - txHash = await zrxToken.setBalance.sendTransactionAsync(forwarder.address, forwarderZRXBalance); - await web3Wrapper.awaitTransactionSuccessAsync(txHash); - - txHash = await zrxToken.transferOwnership.sendTransactionAsync(assetProxyOwner.address); - logUtils.log(`transactionHash: ${txHash}`); - logUtils.log('Transferring ownership of ZRX token'); - await web3Wrapper.awaitTransactionSuccessAsync(txHash); - - // Dummy Tokens - for (const token of erc20TokenInfo) { - const totalSupply = ERC20_TOTAL_SUPPLY; - const dummyToken = await DummyERC20TokenContract.deployFrom0xArtifactAsync( - artifacts.DummyERC20Token, - provider, - txDefaults, - token.name, - token.symbol, - token.decimals, - totalSupply, - ); - logUtils.log(`DummyERC20 ${token.name}: ${dummyToken.address}`); - txHash = await dummyToken.transferOwnership.sendTransactionAsync(assetProxyOwner.address); - logUtils.log(`transactionHash: ${txHash}`); - logUtils.log(`Transferring ownership of ${token.name} `); - await web3Wrapper.awaitTransactionSuccessAsync(txHash); - } - for (const token of erc721TokenInfo) { - const dummyToken = await DummyERC721TokenContract.deployFrom0xArtifactAsync( - artifacts.DummyERC721Token, - provider, - txDefaults, - token.name, - token.symbol, - ); - logUtils.log(`DummyERC721 ${token.name}: ${dummyToken.address}`); - txHash = await dummyToken.transferOwnership.sendTransactionAsync(assetProxyOwner.address); - logUtils.log(`transactionHash: ${txHash}`); - logUtils.log(`Transferring ownership of ${token.name} `); - await web3Wrapper.awaitTransactionSuccessAsync(txHash); - } -}; diff --git a/packages/migrations/src/2.0.0/migration.ts b/packages/migrations/src/2.0.0/migration.ts index 4100a750c..0f20813f1 100644 --- a/packages/migrations/src/2.0.0/migration.ts +++ b/packages/migrations/src/2.0.0/migration.ts @@ -22,11 +22,7 @@ import { OrderValidatorContract } from './contract_wrappers/order_validator'; * @param artifactsDir The directory with compiler artifact files. * @param txDefaults Default transaction values to use when deploying contracts. */ -export const runV2MainnetMigrationsAsync = async ( - provider: Provider, - artifactsDir: string, - txDefaults: Partial, -) => { +export const runV2MigrationsAsync = async (provider: Provider, artifactsDir: string, txDefaults: Partial) => { const web3Wrapper = new Web3Wrapper(provider); const networkId = await web3Wrapper.getNetworkIdAsync(); const artifactsWriter = new ArtifactWriter(artifactsDir, networkId); diff --git a/packages/migrations/src/index.ts b/packages/migrations/src/index.ts index 188f566df..5354b3501 100644 --- a/packages/migrations/src/index.ts +++ b/packages/migrations/src/index.ts @@ -1,3 +1,2 @@ export { runV1MigrationsAsync } from './1.0.0/migration'; export { runV2MigrationsAsync } from './2.0.0/migration'; -export { runV2TestnetMigrationsAsync } from './2.0.0-beta-testnet/migration'; diff --git a/packages/migrations/src/migrate.ts b/packages/migrations/src/migrate.ts index e3651f2dc..338832feb 100644 --- a/packages/migrations/src/migrate.ts +++ b/packages/migrations/src/migrate.ts @@ -1,22 +1,15 @@ #!/usr/bin/env node import { devConstants, web3Factory } from '@0xproject/dev-utils'; import { logUtils } from '@0xproject/utils'; -import { Web3Wrapper } from '@0xproject/web3-wrapper'; import { Provider } from 'ethereum-types'; import * as yargs from 'yargs'; import { runV1MigrationsAsync } from './1.0.0/migration'; -import { runV2TestnetMigrationsAsync } from './2.0.0-beta-testnet/migration'; -import { runV2MainnetMigrationsAsync } from './2.0.0-mainnet/migration'; import { runV2MigrationsAsync } from './2.0.0/migration'; -import { providerFactory } from './utils/provider_factory'; - enum ContractVersions { V1 = '1.0.0', V2 = '2.0.0', - V2Testnet = '2.0.0-beta-testnet', - V2Mainnet = '2.0.0-mainnet', } const args = yargs.argv; @@ -26,8 +19,6 @@ const args = yargs.argv; let providerConfigs; let provider: Provider; let txDefaults; - let web3Wrapper: Web3Wrapper; - let accounts: string[]; switch (contractsVersion) { case ContractVersions.V1: providerConfigs = { shouldUseInProcessGanache: false }; @@ -45,27 +36,6 @@ const args = yargs.argv; }; await runV2MigrationsAsync(provider, artifactsDir, txDefaults); break; - case ContractVersions.V2Testnet: - provider = await providerFactory.getKovanLedgerProviderAsync(); - web3Wrapper = new Web3Wrapper(provider); - accounts = await web3Wrapper.getAvailableAddressesAsync(); - txDefaults = { - from: accounts[0], - gas: devConstants.GAS_LIMIT, - }; - await runV2TestnetMigrationsAsync(provider, artifactsDir, txDefaults); - break; - case ContractVersions.V2Mainnet: - provider = await providerFactory.getMainnetLedgerProviderAsync(); - web3Wrapper = new Web3Wrapper(provider); - accounts = await web3Wrapper.getAvailableAddressesAsync(); - txDefaults = { - from: accounts[2], - gas: devConstants.GAS_LIMIT, - gasPrice: 6000000000, - }; - await runV2MainnetMigrationsAsync(provider, artifactsDir, txDefaults); - break; default: throw new Error(`Unsupported contract version: ${contractsVersion}`); } diff --git a/packages/order-utils/package.json b/packages/order-utils/package.json index 368a5edb1..6b9bdf9ee 100644 --- a/packages/order-utils/package.json +++ b/packages/order-utils/package.json @@ -11,7 +11,7 @@ "build": "yarn pre_build && tsc -b", "pre_build": "run-s update_artifacts generate_contract_wrappers", "generate_contract_wrappers": "abi-gen --abis 'lib/src/artifacts/@(Exchange|IWallet|IValidator|DummyERC20Token|ERC20Proxy|ERC20Token).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/generated_contract_wrappers --backend ethers", - "update_artifacts": "for i in ${npm_package_config_contracts_v2_beta}; do copyfiles -u 4 ../migrations/artifacts/2.0.0/$i.json lib/src/artifacts; done;", + "update_artifacts": "for i in ${npm_package_config_contracts_v2}; do copyfiles -u 4 ../migrations/artifacts/2.0.0/$i.json lib/src/artifacts; done;", "test": "yarn run_mocha", "rebuild_and_test": "run-s build test", "test:circleci": "yarn test:coverage", @@ -23,7 +23,7 @@ "docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --tsconfig typedoc-tsconfig.json --json $JSON_FILE_PATH $PROJECT_FILES" }, "config": { - "contracts_v2_beta": "IWallet IValidator Exchange ERC20Proxy ERC20Token DummyERC20Token", + "contracts_v2": "IWallet IValidator Exchange ERC20Proxy ERC20Token DummyERC20Token", "postpublish": { "assets": [] } -- cgit v1.2.3