From 422e5a19d4dc0461bdaecd9133bb8f19ac99baa6 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Tue, 8 May 2018 10:45:31 +0200 Subject: Configure migrations with a compiler.json --- packages/migrations/compiler.json | 20 ++++++++++++++++++++ packages/migrations/package.json | 7 ++----- packages/migrations/src/migrate.ts | 2 +- 3 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 packages/migrations/compiler.json (limited to 'packages/migrations') diff --git a/packages/migrations/compiler.json b/packages/migrations/compiler.json new file mode 100644 index 000000000..0d126f4b6 --- /dev/null +++ b/packages/migrations/compiler.json @@ -0,0 +1,20 @@ +{ + "artifactsDir": "artifacts/1.0.0", + "contractsDir": "../contracts/src/contracts", + "contracts": [ + "Exchange", + "DummyToken", + "ZRXToken", + "Token", + "WETH9", + "TokenTransferProxy", + "MultiSigWallet", + "MultiSigWalletWithTimeLock", + "MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress", + "MaliciousToken", + "TokenRegistry", + "Arbitrage", + "EtherDelta", + "AccountLevels" + ] +} diff --git a/packages/migrations/package.json b/packages/migrations/package.json index 8c85aa337..e548d7365 100644 --- a/packages/migrations/package.json +++ b/packages/migrations/package.json @@ -11,11 +11,8 @@ "lint": "tslint --project . 'src/**/*.ts'", "migrate": "run-s build compile script:migrate", "script:migrate": "node ./lib/migrate.js", - "copy_artifacts": "copyfiles 'src/artifacts/**/*' ./lib", - "compile": "node ../deployer/lib/src/cli.js compile --contracts ${npm_package_config_contracts} --contracts-dir ../contracts/src/contracts --artifacts-dir src/artifacts" - }, - "config": { - "contracts": "Exchange,DummyToken,ZRXToken,Token,WETH9,TokenTransferProxy,MultiSigWallet,MultiSigWalletWithTimeLock,MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress,MaliciousToken,TokenRegistry,Arbitrage,EtherDelta,AccountLevels" + "copy_artifacts": "copyfiles 'artifacts/1.0.0/**/*' ./lib", + "compile": "node ../deployer/lib/src/cli.js compile" }, "license": "Apache-2.0", "devDependencies": { diff --git a/packages/migrations/src/migrate.ts b/packages/migrations/src/migrate.ts index 76dcbd847..014c4b1fe 100644 --- a/packages/migrations/src/migrate.ts +++ b/packages/migrations/src/migrate.ts @@ -9,7 +9,7 @@ import { runMigrationsAsync } from './migration'; (async () => { const deployerOpts = { jsonrpcUrl: 'http://localhost:8545', - artifactsDir: path.resolve('src', 'artifacts'), + artifactsDir: path.resolve('artifacts', '1.0.0'), networkId: 50, defaults: { gas: devConstants.GAS_ESTIMATE, -- cgit v1.2.3 From f9d80adaeeec827a8c2c81507d68d11e2681dcf3 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Tue, 8 May 2018 14:52:00 +0200 Subject: Remove deployer from 0x.js and migrations --- packages/migrations/package.json | 8 ++++ packages/migrations/src/artifacts.ts | 55 +++++++++++++++++++++++ packages/migrations/src/migrate.ts | 22 +++++----- packages/migrations/src/migration.ts | 68 ++++++++++++++++++++++------- packages/migrations/src/types.ts | 4 +- packages/migrations/src/utils/token_info.ts | 12 ++--- 6 files changed, 134 insertions(+), 35 deletions(-) create mode 100644 packages/migrations/src/artifacts.ts (limited to 'packages/migrations') diff --git a/packages/migrations/package.json b/packages/migrations/package.json index e548d7365..a03ec1bdd 100644 --- a/packages/migrations/package.json +++ b/packages/migrations/package.json @@ -6,17 +6,24 @@ "types": "lib/index.d.ts", "scripts": { "build:watch": "tsc -w", + "prebuild": "run-s clean compile copy_artifacts generate_contract_wrappers", + "copy_artifacts": "copyfiles -u 4 'artifacts/1.0.0/**/*' ./lib/src/artifacts", "build": "tsc", "clean": "shx rm -rf lib", "lint": "tslint --project . 'src/**/*.ts'", "migrate": "run-s build compile script:migrate", "script:migrate": "node ./lib/migrate.js", "copy_artifacts": "copyfiles 'artifacts/1.0.0/**/*' ./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 --backend ethers && prettier --write 'src/contract_wrappers/**.ts'", "compile": "node ../deployer/lib/src/cli.js compile" }, + "config": { + "abis": "artifacts/1.0.0/@(DummyToken|TokenTransferProxy|Exchange|TokenRegistry|MultiSigWallet|MultiSigWalletWithTimeLock|MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress|TokenRegistry|ZRXToken|Arbitrage|EtherDelta|AccountLevels|WETH9|MaliciousToken).json" + }, "license": "Apache-2.0", "devDependencies": { "@0xproject/dev-utils": "^0.4.1", + "@0xproject/types": "^0.6.3", "@0xproject/tslint-config": "^0.4.17", "npm-run-all": "^4.1.2", "shx": "^0.2.2", @@ -25,6 +32,7 @@ }, "dependencies": { "@0xproject/deployer": "^0.4.3", + "@0xproject/base-contract": "^0.3.1", "@0xproject/utils": "^0.6.1", "@0xproject/web3-wrapper": "^0.6.3", "lodash": "^4.17.4" diff --git a/packages/migrations/src/artifacts.ts b/packages/migrations/src/artifacts.ts new file mode 100644 index 000000000..c240c3155 --- /dev/null +++ b/packages/migrations/src/artifacts.ts @@ -0,0 +1,55 @@ +import { BaseContract } from '@0xproject/base-contract'; +import { ContractArtifact } from '@0xproject/deployer'; +import * as fs from 'fs'; +import * as path from 'path'; + +import * as AccountLevels from '../artifacts/1.0.0/AccountLevels.json'; +import * as Arbitrage from '../artifacts/1.0.0/Arbitrage.json'; +import * as DummyToken from '../artifacts/1.0.0/DummyToken.json'; +import * as EtherDelta from '../artifacts/1.0.0/EtherDelta.json'; +import * as Exchange from '../artifacts/1.0.0/Exchange.json'; +import * as MaliciousToken from '../artifacts/1.0.0/MaliciousToken.json'; +import * as MultiSigWalletWithTimeLock from '../artifacts/1.0.0/MultiSigWalletWithTimeLock.json'; +import * as MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress from '../artifacts/1.0.0/MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress.json'; +import * as Token from '../artifacts/1.0.0/Token.json'; +import * as TokenRegistry from '../artifacts/1.0.0/TokenRegistry.json'; +import * as TokenTransferProxy from '../artifacts/1.0.0/TokenTransferProxy.json'; +import * as EtherToken from '../artifacts/1.0.0/WETH9.json'; +import * as ZRX from '../artifacts/1.0.0/ZRXToken.json'; + +export const artifacts = { + AccountLevels: (AccountLevels as any) as ContractArtifact, + Arbitrage: (Arbitrage as any) as ContractArtifact, + EtherDelta: (EtherDelta as any) as ContractArtifact, + ZRX: (ZRX as any) as ContractArtifact, + DummyToken: (DummyToken as any) as ContractArtifact, + Token: (Token as any) as ContractArtifact, + Exchange: (Exchange as any) as ContractArtifact, + EtherToken: (EtherToken as any) as ContractArtifact, + TokenRegistry: (TokenRegistry as any) as ContractArtifact, + MaliciousToken: (MaliciousToken as any) as ContractArtifact, + TokenTransferProxy: (TokenTransferProxy as any) as ContractArtifact, + MultiSigWalletWithTimeLock: (MultiSigWalletWithTimeLock as any) as ContractArtifact, + MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress: (MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress as any) as ContractArtifact, +}; + +const ARTIFACTS_DIR = '../artifacts/1.0.0'; +export class ArtifactWriter { + private _artifactsDir: string; + private _networkId: number; + constructor(artifactsDir: string, networkId: number) { + this._artifactsDir = artifactsDir; + this._networkId = networkId; + } + public saveArtifact(contract: BaseContract): void { + const contractName = contract.contractName; + const artifactFile = path.join(this._artifactsDir, `${contractName}.json`); + const artifact: ContractArtifact = JSON.parse(fs.readFileSync(artifactFile).toString()); + artifact.networks[this._networkId] = { + address: contract.address, + links: {}, + constructorArgs: JSON.stringify(contract.constructorArgs), + }; + fs.writeFileSync(artifactFile, JSON.stringify(artifact, null, 2)); + } +} diff --git a/packages/migrations/src/migrate.ts b/packages/migrations/src/migrate.ts index 014c4b1fe..ab5a7bb0b 100644 --- a/packages/migrations/src/migrate.ts +++ b/packages/migrations/src/migrate.ts @@ -1,24 +1,22 @@ #!/usr/bin/env node import { Deployer } from '@0xproject/deployer'; -import { devConstants } from '@0xproject/dev-utils'; +import { devConstants, web3Factory } from '@0xproject/dev-utils'; +import { Provider } from '@0xproject/types'; import { logUtils } from '@0xproject/utils'; import * as path from 'path'; import { runMigrationsAsync } from './migration'; (async () => { - const deployerOpts = { - jsonrpcUrl: 'http://localhost:8545', - artifactsDir: path.resolve('artifacts', '1.0.0'), - networkId: 50, - defaults: { - gas: devConstants.GAS_ESTIMATE, - }, + const defaults = { + from: devConstants.TESTRPC_FIRST_ADDRESS, }; - - const deployer = new Deployer(deployerOpts); - - await runMigrationsAsync(deployer); + const providerConfigs = { shouldUseInProcessGanache: false }; + const web3 = web3Factory.create(providerConfigs); + const provider = web3.currentProvider; + const artifactsDir = 'artifacts/1.0.0'; + await runMigrationsAsync(provider, artifactsDir, defaults); + process.exit(0); })().catch(err => { logUtils.log(err); process.exit(1); diff --git a/packages/migrations/src/migration.ts b/packages/migrations/src/migration.ts index 6313efcff..54ba6e535 100644 --- a/packages/migrations/src/migration.ts +++ b/packages/migrations/src/migration.ts @@ -1,8 +1,16 @@ -import { Deployer } from '@0xproject/deployer'; +import { Provider, TxData } from '@0xproject/types'; import { BigNumber, NULL_BYTES } from '@0xproject/utils'; import { Web3Wrapper } from '@0xproject/web3-wrapper'; import * as _ from 'lodash'; +import { artifacts, ArtifactWriter } from './artifacts'; +import { DummyTokenContract } from './contract_wrappers/dummy_token'; +import { ExchangeContract } from './contract_wrappers/exchange'; +import { MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddressContract } from './contract_wrappers/multi_sig_wallet_with_time_lock_except_remove_authorized_address'; +import { TokenRegistryContract } from './contract_wrappers/token_registry'; +import { TokenTransferProxyContract } from './contract_wrappers/token_transfer_proxy'; +import { WETH9Contract } from './contract_wrappers/weth9'; +import { ZRXTokenContract } from './contract_wrappers/zrx_token'; import { ContractName } from './types'; import { tokenInfo } from './utils/token_info'; @@ -12,25 +20,46 @@ import { tokenInfo } from './utils/token_info'; * 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(); +export const runMigrationsAsync = async (provider: Provider, artifactsDir: string, defaults: Partial) => { + const web3Wrapper = new Web3Wrapper(provider); + const networkId = await web3Wrapper.getNetworkIdAsync(); + const artifactsWriter = new ArtifactWriter(artifactsDir, networkId); + const tokenTransferProxy = await TokenTransferProxyContract.deploy0xArtifactAsync( + artifacts.TokenTransferProxy, + provider, + defaults, + ); + artifactsWriter.saveArtifact(tokenTransferProxy); + const zrxToken = await ZRXTokenContract.deploy0xArtifactAsync(artifacts.ZRX, provider, defaults); + artifactsWriter.saveArtifact(zrxToken); - 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 etherToken = await WETH9Contract.deploy0xArtifactAsync(artifacts.EtherToken, provider, defaults); + artifactsWriter.saveArtifact(etherToken); + const tokenReg = await TokenRegistryContract.deploy0xArtifactAsync(artifacts.TokenRegistry, provider, defaults); + artifactsWriter.saveArtifact(tokenReg); - const exchangeArgs = [zrxToken.address, tokenTransferProxy.address]; + const accounts: string[] = await web3Wrapper.getAvailableAddressesAsync(); 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 exchange = await ExchangeContract.deploy0xArtifactAsync( + artifacts.Exchange, + provider, + defaults, + zrxToken.address, + tokenTransferProxy.address, + ); + artifactsWriter.saveArtifact(exchange); + const multiSig = await MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddressContract.deploy0xArtifactAsync( + artifacts.MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress, + provider, + defaults, + owners, + confirmationsRequired, + secondsRequired, + tokenTransferProxy.address, ); + artifactsWriter.saveArtifact(multiSig); const owner = accounts[0]; await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, { from: owner }); @@ -70,8 +99,15 @@ export const runMigrationsAsync = async (deployer: Deployer) => { ); for (const token of tokenInfo) { const totalSupply = new BigNumber(100000000000000000000); - const args = [token.name, token.symbol, token.decimals, totalSupply]; - const dummyToken = await deployer.deployAsync(ContractName.DummyToken, args); + const dummyToken = await DummyTokenContract.deploy0xArtifactAsync( + artifacts.DummyToken, + provider, + defaults, + token.name, + token.symbol, + token.decimals, + totalSupply, + ); await tokenReg.addToken.sendTransactionAsync( dummyToken.address, token.name, diff --git a/packages/migrations/src/types.ts b/packages/migrations/src/types.ts index 1887bfd96..21daf47f0 100644 --- a/packages/migrations/src/types.ts +++ b/packages/migrations/src/types.ts @@ -1,3 +1,5 @@ +import { BigNumber } from '@0xproject/utils'; + export interface MultiSigConfig { owners: string[]; confirmationsRequired: number; @@ -12,7 +14,7 @@ export interface Token { address?: string; name: string; symbol: string; - decimals: number; + decimals: BigNumber; ipfsHash: string; swarmHash: string; } diff --git a/packages/migrations/src/utils/token_info.ts b/packages/migrations/src/utils/token_info.ts index 968665c7d..e72a80220 100644 --- a/packages/migrations/src/utils/token_info.ts +++ b/packages/migrations/src/utils/token_info.ts @@ -1,4 +1,4 @@ -import { NULL_BYTES } from '@0xproject/utils'; +import { BigNumber, NULL_BYTES } from '@0xproject/utils'; import { Token } from '../types'; @@ -6,35 +6,35 @@ export const tokenInfo: Token[] = [ { name: 'Augur Reputation Token', symbol: 'REP', - decimals: 18, + decimals: new BigNumber(18), ipfsHash: NULL_BYTES, swarmHash: NULL_BYTES, }, { name: 'Digix DAO Token', symbol: 'DGD', - decimals: 18, + decimals: new BigNumber(18), ipfsHash: NULL_BYTES, swarmHash: NULL_BYTES, }, { name: 'Golem Network Token', symbol: 'GNT', - decimals: 18, + decimals: new BigNumber(18), ipfsHash: NULL_BYTES, swarmHash: NULL_BYTES, }, { name: 'MakerDAO', symbol: 'MKR', - decimals: 18, + decimals: new BigNumber(18), ipfsHash: NULL_BYTES, swarmHash: NULL_BYTES, }, { name: 'Melon Token', symbol: 'MLN', - decimals: 18, + decimals: new BigNumber(18), ipfsHash: NULL_BYTES, swarmHash: NULL_BYTES, }, -- cgit v1.2.3 From 96037aed5231aa9344e5037aa6cff3d01f4abdae Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Tue, 8 May 2018 15:13:24 +0200 Subject: Remove deployer --- packages/migrations/src/migrate.ts | 1 - 1 file changed, 1 deletion(-) (limited to 'packages/migrations') diff --git a/packages/migrations/src/migrate.ts b/packages/migrations/src/migrate.ts index ab5a7bb0b..58d39734e 100644 --- a/packages/migrations/src/migrate.ts +++ b/packages/migrations/src/migrate.ts @@ -1,5 +1,4 @@ #!/usr/bin/env node -import { Deployer } from '@0xproject/deployer'; import { devConstants, web3Factory } from '@0xproject/dev-utils'; import { Provider } from '@0xproject/types'; import { logUtils } from '@0xproject/utils'; -- cgit v1.2.3 From a6f72de09d7b2c9738b78d2097baa9906838fbe9 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Tue, 8 May 2018 15:42:07 +0200 Subject: Rename deployer to sol-compiler --- packages/migrations/package.json | 4 ++-- packages/migrations/src/artifacts.ts | 2 +- packages/migrations/src/migration.ts | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) (limited to 'packages/migrations') diff --git a/packages/migrations/package.json b/packages/migrations/package.json index a03ec1bdd..a8a30aa47 100644 --- a/packages/migrations/package.json +++ b/packages/migrations/package.json @@ -15,7 +15,7 @@ "script:migrate": "node ./lib/migrate.js", "copy_artifacts": "copyfiles 'artifacts/1.0.0/**/*' ./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 --backend ethers && prettier --write 'src/contract_wrappers/**.ts'", - "compile": "node ../deployer/lib/src/cli.js compile" + "compile": "node ../sol-compiler/lib/src/cli.js compile" }, "config": { "abis": "artifacts/1.0.0/@(DummyToken|TokenTransferProxy|Exchange|TokenRegistry|MultiSigWallet|MultiSigWalletWithTimeLock|MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress|TokenRegistry|ZRXToken|Arbitrage|EtherDelta|AccountLevels|WETH9|MaliciousToken).json" @@ -31,7 +31,7 @@ "typescript": "2.7.1" }, "dependencies": { - "@0xproject/deployer": "^0.4.3", + "@0xproject/sol-compiler": "^0.4.3", "@0xproject/base-contract": "^0.3.1", "@0xproject/utils": "^0.6.1", "@0xproject/web3-wrapper": "^0.6.3", diff --git a/packages/migrations/src/artifacts.ts b/packages/migrations/src/artifacts.ts index c240c3155..0d3eb68a8 100644 --- a/packages/migrations/src/artifacts.ts +++ b/packages/migrations/src/artifacts.ts @@ -1,5 +1,5 @@ import { BaseContract } from '@0xproject/base-contract'; -import { ContractArtifact } from '@0xproject/deployer'; +import { ContractArtifact } from '@0xproject/sol-compiler'; import * as fs from 'fs'; import * as path from 'path'; diff --git a/packages/migrations/src/migration.ts b/packages/migrations/src/migration.ts index 54ba6e535..047a875ed 100644 --- a/packages/migrations/src/migration.ts +++ b/packages/migrations/src/migration.ts @@ -18,7 +18,9 @@ import { tokenInfo } from './utils/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. + * @param provider Provider instance. + * @param artifactsDir The directory with artifact files. + * @param defaults Default transaction values to use. */ export const runMigrationsAsync = async (provider: Provider, artifactsDir: string, defaults: Partial) => { const web3Wrapper = new Web3Wrapper(provider); -- cgit v1.2.3 From 75d24dea0e10d098d3833488a420498410c22991 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Tue, 8 May 2018 16:02:04 +0200 Subject: Fix linter issues --- packages/migrations/package.json | 3 ++- packages/migrations/src/artifacts.ts | 1 - packages/migrations/src/migration.ts | 20 ++++++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) (limited to 'packages/migrations') diff --git a/packages/migrations/package.json b/packages/migrations/package.json index a8a30aa47..be17614b4 100644 --- a/packages/migrations/package.json +++ b/packages/migrations/package.json @@ -10,7 +10,7 @@ "copy_artifacts": "copyfiles -u 4 'artifacts/1.0.0/**/*' ./lib/src/artifacts", "build": "tsc", "clean": "shx rm -rf lib", - "lint": "tslint --project . 'src/**/*.ts'", + "lint": "tslint --project .", "migrate": "run-s build compile script:migrate", "script:migrate": "node ./lib/migrate.js", "copy_artifacts": "copyfiles 'artifacts/1.0.0/**/*' ./lib", @@ -35,6 +35,7 @@ "@0xproject/base-contract": "^0.3.1", "@0xproject/utils": "^0.6.1", "@0xproject/web3-wrapper": "^0.6.3", + "ethers": "^3.0.15", "lodash": "^4.17.4" }, "publishConfig": { diff --git a/packages/migrations/src/artifacts.ts b/packages/migrations/src/artifacts.ts index 0d3eb68a8..f8913fe52 100644 --- a/packages/migrations/src/artifacts.ts +++ b/packages/migrations/src/artifacts.ts @@ -33,7 +33,6 @@ export const artifacts = { MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress: (MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress as any) as ContractArtifact, }; -const ARTIFACTS_DIR = '../artifacts/1.0.0'; export class ArtifactWriter { private _artifactsDir: string; private _networkId: number; diff --git a/packages/migrations/src/migration.ts b/packages/migrations/src/migration.ts index 047a875ed..5b49b9282 100644 --- a/packages/migrations/src/migration.ts +++ b/packages/migrations/src/migration.ts @@ -18,33 +18,33 @@ import { tokenInfo } from './utils/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 provider Provider instance. - * @param artifactsDir The directory with artifact files. - * @param defaults Default transaction values to use. + * @param provider Web3 provider instance. + * @param artifactsDir The directory with compiler artifact files. + * @param defaults Default transaction values to use when deploying contracts. */ export const runMigrationsAsync = async (provider: Provider, artifactsDir: string, defaults: Partial) => { const web3Wrapper = new Web3Wrapper(provider); const networkId = await web3Wrapper.getNetworkIdAsync(); const artifactsWriter = new ArtifactWriter(artifactsDir, networkId); - const tokenTransferProxy = await TokenTransferProxyContract.deploy0xArtifactAsync( + const tokenTransferProxy = await TokenTransferProxyContract.deployFrom0xArtifactAsync( artifacts.TokenTransferProxy, provider, defaults, ); artifactsWriter.saveArtifact(tokenTransferProxy); - const zrxToken = await ZRXTokenContract.deploy0xArtifactAsync(artifacts.ZRX, provider, defaults); + const zrxToken = await ZRXTokenContract.deployFrom0xArtifactAsync(artifacts.ZRX, provider, defaults); artifactsWriter.saveArtifact(zrxToken); - const etherToken = await WETH9Contract.deploy0xArtifactAsync(artifacts.EtherToken, provider, defaults); + const etherToken = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.EtherToken, provider, defaults); artifactsWriter.saveArtifact(etherToken); - const tokenReg = await TokenRegistryContract.deploy0xArtifactAsync(artifacts.TokenRegistry, provider, defaults); + const tokenReg = await TokenRegistryContract.deployFrom0xArtifactAsync(artifacts.TokenRegistry, provider, defaults); artifactsWriter.saveArtifact(tokenReg); const accounts: string[] = await web3Wrapper.getAvailableAddressesAsync(); const owners = [accounts[0], accounts[1]]; const confirmationsRequired = new BigNumber(2); const secondsRequired = new BigNumber(0); - const exchange = await ExchangeContract.deploy0xArtifactAsync( + const exchange = await ExchangeContract.deployFrom0xArtifactAsync( artifacts.Exchange, provider, defaults, @@ -52,7 +52,7 @@ export const runMigrationsAsync = async (provider: Provider, artifactsDir: strin tokenTransferProxy.address, ); artifactsWriter.saveArtifact(exchange); - const multiSig = await MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddressContract.deploy0xArtifactAsync( + const multiSig = await MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddressContract.deployFrom0xArtifactAsync( artifacts.MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress, provider, defaults, @@ -101,7 +101,7 @@ export const runMigrationsAsync = async (provider: Provider, artifactsDir: strin ); for (const token of tokenInfo) { const totalSupply = new BigNumber(100000000000000000000); - const dummyToken = await DummyTokenContract.deploy0xArtifactAsync( + const dummyToken = await DummyTokenContract.deployFrom0xArtifactAsync( artifacts.DummyToken, provider, defaults, -- cgit v1.2.3 From f854f3ee2bd74bbb61ed465099168b4d391f92c8 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Thu, 10 May 2018 15:20:00 +0200 Subject: Remove unused deployer docs configs --- packages/migrations/package.json | 1 + packages/migrations/src/artifact_writer.ts | 26 ++++++++++++++++++++++++++ packages/migrations/src/artifacts.ts | 23 ----------------------- packages/migrations/src/migrate.ts | 2 +- packages/migrations/src/migration.ts | 22 +++++++++++++--------- 5 files changed, 41 insertions(+), 33 deletions(-) create mode 100644 packages/migrations/src/artifact_writer.ts (limited to 'packages/migrations') diff --git a/packages/migrations/package.json b/packages/migrations/package.json index be17614b4..0723c5d88 100644 --- a/packages/migrations/package.json +++ b/packages/migrations/package.json @@ -33,6 +33,7 @@ "dependencies": { "@0xproject/sol-compiler": "^0.4.3", "@0xproject/base-contract": "^0.3.1", + "@0xproject/typescript-typings": "^0.3.1", "@0xproject/utils": "^0.6.1", "@0xproject/web3-wrapper": "^0.6.3", "ethers": "^3.0.15", diff --git a/packages/migrations/src/artifact_writer.ts b/packages/migrations/src/artifact_writer.ts new file mode 100644 index 000000000..2da5a09dd --- /dev/null +++ b/packages/migrations/src/artifact_writer.ts @@ -0,0 +1,26 @@ +import { BaseContract } from '@0xproject/base-contract'; +import { ContractArtifact } from '@0xproject/sol-compiler'; +import * as fs from 'fs'; +import * as path from 'path'; + +export class ArtifactWriter { + private _artifactsDir: string; + private _networkId: number; + constructor(artifactsDir: string, networkId: number) { + this._artifactsDir = artifactsDir; + this._networkId = networkId; + } + // This updates the artifact file but does not update the `artifacts` module above. It will not + // contain the saved artifact changes. + public saveArtifact(contract: BaseContract): void { + const contractName = contract.contractName; + const artifactFile = path.join(this._artifactsDir, `${contractName}.json`); + const artifact: ContractArtifact = JSON.parse(fs.readFileSync(artifactFile).toString()); + artifact.networks[this._networkId] = { + address: contract.address, + links: {}, + constructorArgs: JSON.stringify(contract.constructorArgs), + }; + fs.writeFileSync(artifactFile, JSON.stringify(artifact, null, '\t')); + } +} diff --git a/packages/migrations/src/artifacts.ts b/packages/migrations/src/artifacts.ts index f8913fe52..42eb1c33e 100644 --- a/packages/migrations/src/artifacts.ts +++ b/packages/migrations/src/artifacts.ts @@ -1,7 +1,4 @@ -import { BaseContract } from '@0xproject/base-contract'; import { ContractArtifact } from '@0xproject/sol-compiler'; -import * as fs from 'fs'; -import * as path from 'path'; import * as AccountLevels from '../artifacts/1.0.0/AccountLevels.json'; import * as Arbitrage from '../artifacts/1.0.0/Arbitrage.json'; @@ -32,23 +29,3 @@ export const artifacts = { MultiSigWalletWithTimeLock: (MultiSigWalletWithTimeLock as any) as ContractArtifact, MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress: (MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress as any) as ContractArtifact, }; - -export class ArtifactWriter { - private _artifactsDir: string; - private _networkId: number; - constructor(artifactsDir: string, networkId: number) { - this._artifactsDir = artifactsDir; - this._networkId = networkId; - } - public saveArtifact(contract: BaseContract): void { - const contractName = contract.contractName; - const artifactFile = path.join(this._artifactsDir, `${contractName}.json`); - const artifact: ContractArtifact = JSON.parse(fs.readFileSync(artifactFile).toString()); - artifact.networks[this._networkId] = { - address: contract.address, - links: {}, - constructorArgs: JSON.stringify(contract.constructorArgs), - }; - fs.writeFileSync(artifactFile, JSON.stringify(artifact, null, 2)); - } -} diff --git a/packages/migrations/src/migrate.ts b/packages/migrations/src/migrate.ts index 58d39734e..fe3daed98 100644 --- a/packages/migrations/src/migrate.ts +++ b/packages/migrations/src/migrate.ts @@ -14,7 +14,7 @@ import { runMigrationsAsync } from './migration'; const web3 = web3Factory.create(providerConfigs); const provider = web3.currentProvider; const artifactsDir = 'artifacts/1.0.0'; - await runMigrationsAsync(provider, artifactsDir, defaults); + await runMigrationsAsync(provider, artifactsDir, txDefaults); process.exit(0); })().catch(err => { logUtils.log(err); diff --git a/packages/migrations/src/migration.ts b/packages/migrations/src/migration.ts index 5b49b9282..2e38b59ae 100644 --- a/packages/migrations/src/migration.ts +++ b/packages/migrations/src/migration.ts @@ -20,24 +20,28 @@ import { tokenInfo } from './utils/token_info'; * the migration should be written to run synchronously. * @param provider Web3 provider instance. * @param artifactsDir The directory with compiler artifact files. - * @param defaults Default transaction values to use when deploying contracts. + * @param txDefaults Default transaction values to use when deploying contracts. */ -export const runMigrationsAsync = async (provider: Provider, artifactsDir: string, defaults: Partial) => { +export const runMigrationsAsync = async (provider: Provider, artifactsDir: string, txDefaults: Partial) => { const web3Wrapper = new Web3Wrapper(provider); const networkId = await web3Wrapper.getNetworkIdAsync(); const artifactsWriter = new ArtifactWriter(artifactsDir, networkId); const tokenTransferProxy = await TokenTransferProxyContract.deployFrom0xArtifactAsync( artifacts.TokenTransferProxy, provider, - defaults, + txDefaults, ); artifactsWriter.saveArtifact(tokenTransferProxy); - const zrxToken = await ZRXTokenContract.deployFrom0xArtifactAsync(artifacts.ZRX, provider, defaults); + const zrxToken = await ZRXTokenContract.deployFrom0xArtifactAsync(artifacts.ZRX, provider, txDefaults); artifactsWriter.saveArtifact(zrxToken); - const etherToken = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.EtherToken, provider, defaults); + const etherToken = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.EtherToken, provider, txDefaults); artifactsWriter.saveArtifact(etherToken); - const tokenReg = await TokenRegistryContract.deployFrom0xArtifactAsync(artifacts.TokenRegistry, provider, defaults); + const tokenReg = await TokenRegistryContract.deployFrom0xArtifactAsync( + artifacts.TokenRegistry, + provider, + txDefaults, + ); artifactsWriter.saveArtifact(tokenReg); const accounts: string[] = await web3Wrapper.getAvailableAddressesAsync(); @@ -47,7 +51,7 @@ export const runMigrationsAsync = async (provider: Provider, artifactsDir: strin const exchange = await ExchangeContract.deployFrom0xArtifactAsync( artifacts.Exchange, provider, - defaults, + txDefaults, zrxToken.address, tokenTransferProxy.address, ); @@ -55,7 +59,7 @@ export const runMigrationsAsync = async (provider: Provider, artifactsDir: strin const multiSig = await MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddressContract.deployFrom0xArtifactAsync( artifacts.MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress, provider, - defaults, + txDefaults, owners, confirmationsRequired, secondsRequired, @@ -104,7 +108,7 @@ export const runMigrationsAsync = async (provider: Provider, artifactsDir: strin const dummyToken = await DummyTokenContract.deployFrom0xArtifactAsync( artifacts.DummyToken, provider, - defaults, + txDefaults, token.name, token.symbol, token.decimals, -- cgit v1.2.3 From 2e1c2d9dfeca4439435fdf1ed58504142963585a Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Thu, 10 May 2018 16:57:51 +0200 Subject: Fix templates --- packages/migrations/src/migrate.ts | 2 +- packages/migrations/src/migration.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'packages/migrations') diff --git a/packages/migrations/src/migrate.ts b/packages/migrations/src/migrate.ts index fe3daed98..b00ba698f 100644 --- a/packages/migrations/src/migrate.ts +++ b/packages/migrations/src/migrate.ts @@ -7,7 +7,7 @@ import * as path from 'path'; import { runMigrationsAsync } from './migration'; (async () => { - const defaults = { + const txDefaults = { from: devConstants.TESTRPC_FIRST_ADDRESS, }; const providerConfigs = { shouldUseInProcessGanache: false }; diff --git a/packages/migrations/src/migration.ts b/packages/migrations/src/migration.ts index 2e38b59ae..96973fb62 100644 --- a/packages/migrations/src/migration.ts +++ b/packages/migrations/src/migration.ts @@ -3,7 +3,8 @@ import { BigNumber, NULL_BYTES } from '@0xproject/utils'; import { Web3Wrapper } from '@0xproject/web3-wrapper'; import * as _ from 'lodash'; -import { artifacts, ArtifactWriter } from './artifacts'; +import { ArtifactWriter } from './artifact_writer'; +import { artifacts } from './artifacts'; import { DummyTokenContract } from './contract_wrappers/dummy_token'; import { ExchangeContract } from './contract_wrappers/exchange'; import { MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddressContract } from './contract_wrappers/multi_sig_wallet_with_time_lock_except_remove_authorized_address'; -- cgit v1.2.3