96 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import * as Bluebird from 'bluebird';
 | 
						|
import * as _ from 'lodash';
 | 
						|
 | 
						|
import { Artifacts } from '../util/artifacts';
 | 
						|
import { constants } from '../util/constants';
 | 
						|
import { ContractInstance, Token } 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,
 | 
						|
                );
 | 
						|
            }
 | 
						|
        });
 | 
						|
};
 |