87 lines
3.0 KiB
TypeScript
87 lines
3.0 KiB
TypeScript
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);
|
|
}
|
|
});
|
|
};
|