diff options
author | Amir Bandeali <abandeali1@gmail.com> | 2017-12-02 03:29:27 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-02 03:29:27 +0800 |
commit | c291419141b06814c3e6d662998b7eaa6d554528 (patch) | |
tree | 4d85215ecfa9f627c12ca2dd14dc4e4c8ef3f22d /packages/contracts/migrations/3_register_tokens.ts | |
parent | c57190dead41846809effb8823bd4e486ca72512 (diff) | |
parent | 290a96d41f62b38a6d4b332fc716088caf666381 (diff) | |
download | dexon-sol-tools-c291419141b06814c3e6d662998b7eaa6d554528.tar dexon-sol-tools-c291419141b06814c3e6d662998b7eaa6d554528.tar.gz dexon-sol-tools-c291419141b06814c3e6d662998b7eaa6d554528.tar.bz2 dexon-sol-tools-c291419141b06814c3e6d662998b7eaa6d554528.tar.lz dexon-sol-tools-c291419141b06814c3e6d662998b7eaa6d554528.tar.xz dexon-sol-tools-c291419141b06814c3e6d662998b7eaa6d554528.tar.zst dexon-sol-tools-c291419141b06814c3e6d662998b7eaa6d554528.zip |
Merge pull request #247 from 0xProject/feature/addContractsRepo
Add contracts repo
Diffstat (limited to 'packages/contracts/migrations/3_register_tokens.ts')
-rw-r--r-- | packages/contracts/migrations/3_register_tokens.ts | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/packages/contracts/migrations/3_register_tokens.ts b/packages/contracts/migrations/3_register_tokens.ts new file mode 100644 index 000000000..c72ac1510 --- /dev/null +++ b/packages/contracts/migrations/3_register_tokens.ts @@ -0,0 +1,86 @@ +import * as Bluebird from 'bluebird'; +import * as _ from 'lodash'; + +import {Artifacts} from '../util/artifacts'; +import {constants} from '../util/constants'; +import {ContractInstance, Token, TokenInfoByNetwork} from '../util/types'; + +import {tokenInfo} from './config/token_info'; +const { + DummyToken, + EtherToken, + ZRXToken, + TokenRegistry, +} = new Artifacts(artifacts); + +module.exports = (deployer: any, network: string) => { + const tokens = network === 'live' ? tokenInfo.live : tokenInfo.development; + deployer.then(() => { + return TokenRegistry.deployed(); + }).then((tokenRegistry: ContractInstance) => { + if (network !== 'live') { + const totalSupply = Math.pow(10, 18) * 1000000000; + return Bluebird.each(tokens.map((token: Token) => DummyToken.new( + token.name, + token.symbol, + token.decimals, + totalSupply, + )), _.noop).then((dummyTokens: ContractInstance[]) => { + const weth = { + address: EtherToken.address, + name: 'Ether Token', + symbol: 'WETH', + url: '', + decimals: 18, + ipfsHash: constants.NULL_BYTES, + swarmHash: constants.NULL_BYTES, + }; + return Bluebird.each(dummyTokens.map((tokenContract: ContractInstance, i: number) => { + const token = tokens[i]; + return tokenRegistry.addToken( + tokenContract.address, + token.name, + token.symbol, + token.decimals, + token.ipfsHash, + token.swarmHash, + ); + }).concat(tokenRegistry.addToken( + weth.address, + weth.name, + weth.symbol, + weth.decimals, + weth.ipfsHash, + weth.swarmHash, + )), _.noop); + }); + } else { + const zrx = { + address: ZRXToken.address, + name: '0x Protocol Token', + symbol: 'ZRX', + url: 'https://www.0xproject.com/', + decimals: 18, + ipfsHash: constants.NULL_BYTES, + swarmHash: constants.NULL_BYTES, + }; + return Bluebird.each(tokens.map((token: Token) => { + return tokenRegistry.addToken( + token.address, + token.name, + token.symbol, + token.decimals, + token.ipfsHash, + token.swarmHash, + ); + }).concat(tokenRegistry.addToken( + zrx.address, + zrx.name, + zrx.symbol, + zrx.decimals, + zrx.ipfsHash, + zrx.swarmHash, + )), _.noop); + } + }); +}; |