diff options
author | Fabio Berger <me@fabioberger.com> | 2018-05-11 18:32:57 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-05-11 18:32:57 +0800 |
commit | d370296e82c11d67bbb16a1dc73432c3625682aa (patch) | |
tree | c8e5d440bc2b78feae89644c11ba3ed778da6015 /packages/migrations/src/migration.ts | |
parent | f78b5741c3ba3495c066dc800ce62d8a1f3fb75f (diff) | |
parent | f42f608f3f97a5244f09f17ae5ee184c0f775de3 (diff) | |
download | dexon-sol-tools-d370296e82c11d67bbb16a1dc73432c3625682aa.tar dexon-sol-tools-d370296e82c11d67bbb16a1dc73432c3625682aa.tar.gz dexon-sol-tools-d370296e82c11d67bbb16a1dc73432c3625682aa.tar.bz2 dexon-sol-tools-d370296e82c11d67bbb16a1dc73432c3625682aa.tar.lz dexon-sol-tools-d370296e82c11d67bbb16a1dc73432c3625682aa.tar.xz dexon-sol-tools-d370296e82c11d67bbb16a1dc73432c3625682aa.tar.zst dexon-sol-tools-d370296e82c11d67bbb16a1dc73432c3625682aa.zip |
Merge branch 'development' into breakUp0xjs
* development:
Fix ganache subprovider config
Fix a bug in compiler config precedence
Fix linter errors
Fix templates
Remove unused deployer docs configs
Add a legacy endpoint for the deployer
Add a check for compiler output
Add a comment
Put ARTIFACTS_VERSION in a config
Improve a comment
Remove _applyDefaultsToDeployTxDataAsync
Add a HACK comment
Fix linter issues
Rename deployer to sol-compiler
Remove deployer
Remove deployer from 0x.js and migrations
Configure migrations with a compiler.json
Remove deployer from metacoin and contract tests
Update wallet footer and add remove token functionality
# Conflicts:
# .gitignore
# packages/0x.js/package.json
# packages/0x.js/src/0x.ts
# packages/contracts/package.json
# packages/contracts/test/multi_sig_with_time_lock.ts
# packages/contracts/test/multi_sig_with_time_lock_except_remove_auth_addr.ts
# packages/contracts/util/artifacts.ts
# packages/deployer/test/deployer_test.ts
# packages/migrations/package.json
Diffstat (limited to 'packages/migrations/src/migration.ts')
-rw-r--r-- | packages/migrations/src/migration.ts | 77 |
1 files changed, 60 insertions, 17 deletions
diff --git a/packages/migrations/src/migration.ts b/packages/migrations/src/migration.ts index 6313efcff..96973fb62 100644 --- a/packages/migrations/src/migration.ts +++ b/packages/migrations/src/migration.ts @@ -1,8 +1,17 @@ -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 { 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'; +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'; @@ -10,27 +19,54 @@ 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 Web3 provider instance. + * @param artifactsDir The directory with compiler artifact files. + * @param txDefaults Default transaction values to use when deploying contracts. */ -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, txDefaults: Partial<TxData>) => { + const web3Wrapper = new Web3Wrapper(provider); + const networkId = await web3Wrapper.getNetworkIdAsync(); + const artifactsWriter = new ArtifactWriter(artifactsDir, networkId); + const tokenTransferProxy = await TokenTransferProxyContract.deployFrom0xArtifactAsync( + artifacts.TokenTransferProxy, + provider, + txDefaults, + ); + artifactsWriter.saveArtifact(tokenTransferProxy); + const zrxToken = await ZRXTokenContract.deployFrom0xArtifactAsync(artifacts.ZRX, provider, txDefaults); + 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.deployFrom0xArtifactAsync(artifacts.EtherToken, provider, txDefaults); + artifactsWriter.saveArtifact(etherToken); + const tokenReg = await TokenRegistryContract.deployFrom0xArtifactAsync( + artifacts.TokenRegistry, + provider, + txDefaults, + ); + 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.deployFrom0xArtifactAsync( + artifacts.Exchange, + provider, + txDefaults, + zrxToken.address, + tokenTransferProxy.address, ); + artifactsWriter.saveArtifact(exchange); + const multiSig = await MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddressContract.deployFrom0xArtifactAsync( + artifacts.MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress, + provider, + txDefaults, + owners, + confirmationsRequired, + secondsRequired, + tokenTransferProxy.address, + ); + artifactsWriter.saveArtifact(multiSig); const owner = accounts[0]; await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, { from: owner }); @@ -70,8 +106,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.deployFrom0xArtifactAsync( + artifacts.DummyToken, + provider, + txDefaults, + token.name, + token.symbol, + token.decimals, + totalSupply, + ); await tokenReg.addToken.sendTransactionAsync( dummyToken.address, token.name, |