More small artifacts updates/changes
This commit is contained in:
		@@ -25,9 +25,7 @@
 | 
			
		||||
    "config": {
 | 
			
		||||
        "abis": {
 | 
			
		||||
            "v1": "artifacts/1.0.0/@(DummyERC20Token|TokenTransferProxy_v1|Exchange_v1|TokenRegistry|MultiSigWallet|MultiSigWalletWithTimeLock|MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress|TokenRegistry|ZRXToken|WETH9).json",
 | 
			
		||||
            "v2Testnet": "artifacts/2.0.0-testnet/@(DummyERC721Token|DummyERC20Token|ERC20Token|ERC721Token|ERC20Proxy|ERC721Proxy|Exchange|Forwarder|AssetProxyOwner|IWallet|IValidator|OrderValidator|ZRXToken).json",
 | 
			
		||||
            "v2": "artifacts/2.0.0/@(DummyERC721Token|DummyERC20Token|ERC20Token|ERC721Token|ERC20Proxy|ERC721Proxy|Exchange|Forwarder|AssetProxyOwner|IWallet|IValidator|OrderValidator|ZRXToken).json",
 | 
			
		||||
            "development": "artifacts/development/@(DummyERC721Token|DummyERC20Token|ERC20Token|ERC721Token|ERC20Proxy|ERC721Proxy|Exchange|Forwarder|AssetProxyOwner|IWallet|IValidator|OrderValidator|ZRXToken).json"
 | 
			
		||||
            "v2": "artifacts/2.0.0/@(ERC20Token|DummyERC20Token|ERC721Token|DummyERC721Token|ERC20Proxy|ERC721Proxy|Exchange|Forwarder|AssetProxyOwner|ZRXToken|WETH9|IWallet|IValidator|OrderValidator).json"
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    "license": "Apache-2.0",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								packages/migrations/src/2.0.0/artifacts.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								packages/migrations/src/2.0.0/artifacts.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,17 +1,25 @@
 | 
			
		||||
import { ContractArtifact } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import * as AssetProxyOwner from '../../artifacts/2.0.0/AssetProxyOwner.json';
 | 
			
		||||
import * as DummyERC20Token from '../../artifacts/2.0.0/DummyERC20Token.json';
 | 
			
		||||
import * as DummyERC721Token from '../../artifacts/2.0.0/DummyERC721Token.json';
 | 
			
		||||
import * as ERC20Proxy from '../../artifacts/2.0.0/ERC20Proxy.json';
 | 
			
		||||
import * as ERC721Proxy from '../../artifacts/2.0.0/ERC721Proxy.json';
 | 
			
		||||
import * as Exchange from '../../artifacts/2.0.0/Exchange.json';
 | 
			
		||||
import * as Forwarder from '../../artifacts/2.0.0/Forwarder.json';
 | 
			
		||||
import * as OrderValidator from '../../artifacts/2.0.0/OrderValidator.json';
 | 
			
		||||
import * as WETH9 from '../../artifacts/2.0.0/WETH9.json';
 | 
			
		||||
import * as ZRX from '../../artifacts/2.0.0/ZRXToken.json';
 | 
			
		||||
 | 
			
		||||
export const artifacts = {
 | 
			
		||||
    ZRX: (ZRX as any) as ContractArtifact,
 | 
			
		||||
    DummyERC20Token: (DummyERC20Token as any) as ContractArtifact,
 | 
			
		||||
    DummyERC721Token: (DummyERC721Token as any) as ContractArtifact,
 | 
			
		||||
    AssetProxyOwner: (AssetProxyOwner as any) as ContractArtifact,
 | 
			
		||||
    Exchange: (Exchange as any) as ContractArtifact,
 | 
			
		||||
    WETH9: (WETH9 as any) as ContractArtifact,
 | 
			
		||||
    ERC20Proxy: (ERC20Proxy as any) as ContractArtifact,
 | 
			
		||||
    ERC721Proxy: (ERC721Proxy as any) as ContractArtifact,
 | 
			
		||||
    Exchange: (Exchange as any) as ContractArtifact,
 | 
			
		||||
    Forwarder: (Forwarder as any) as ContractArtifact,
 | 
			
		||||
    OrderValidator: (OrderValidator as any) as ContractArtifact,
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								packages/migrations/src/2.0.0/constants.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								packages/migrations/src/2.0.0/constants.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,13 +0,0 @@
 | 
			
		||||
import { BigNumber } from '@0xproject/utils';
 | 
			
		||||
 | 
			
		||||
export const constants = {
 | 
			
		||||
    ASSET_PROXY_OWNER_OWNERS: [
 | 
			
		||||
        '0x257619b7155d247e43c8b6d90c8c17278ae481f0',
 | 
			
		||||
        '0x5ee2a00f8f01d099451844af7f894f26a57fcbf2',
 | 
			
		||||
        '0x894d623e0e0e8ed12c4a73dada999e275684a37d',
 | 
			
		||||
    ],
 | 
			
		||||
    ASSET_PROXY_OWNER_REQUIRED_CONFIRMATIONS: new BigNumber(2),
 | 
			
		||||
    ASSET_PROXY_OWNER_SECONDS_TIMELOCKED: new BigNumber(1209600),
 | 
			
		||||
    WETH_ADDRESS: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
 | 
			
		||||
    ZRX_ADDRESS: '0xe41d2489571d322189246dafa5ebde1f4699f498',
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										142
									
								
								packages/migrations/src/2.0.0/migration.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										142
									
								
								packages/migrations/src/2.0.0/migration.ts
									
									
									
									
										vendored
									
									
								
							@@ -1,21 +1,25 @@
 | 
			
		||||
import { assetDataUtils } from '@0xproject/order-utils';
 | 
			
		||||
import { logUtils } from '@0xproject/utils';
 | 
			
		||||
import { BigNumber } from '@0xproject/utils';
 | 
			
		||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
 | 
			
		||||
import { Provider, TxData } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import { ArtifactWriter } from '../utils/artifact_writer';
 | 
			
		||||
import { erc20TokenInfo, erc721TokenInfo } from '../utils/token_info';
 | 
			
		||||
 | 
			
		||||
import { artifacts } from './artifacts';
 | 
			
		||||
import { constants } from './constants';
 | 
			
		||||
import { AssetProxyOwnerContract } from './contract_wrappers/asset_proxy_owner';
 | 
			
		||||
import { DummyERC20TokenContract } from './contract_wrappers/dummy_erc20_token';
 | 
			
		||||
import { DummyERC721TokenContract } from './contract_wrappers/dummy_erc721_token';
 | 
			
		||||
import { ERC20ProxyContract } from './contract_wrappers/erc20_proxy';
 | 
			
		||||
import { ERC721ProxyContract } from './contract_wrappers/erc721_proxy';
 | 
			
		||||
import { ExchangeContract } from './contract_wrappers/exchange';
 | 
			
		||||
import { ForwarderContract } from './contract_wrappers/forwarder';
 | 
			
		||||
import { OrderValidatorContract } from './contract_wrappers/order_validator';
 | 
			
		||||
import { WETH9Contract } from './contract_wrappers/weth9';
 | 
			
		||||
import { ZRXTokenContract } from './contract_wrappers/zrx_token';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Custom migrations should be defined in this function. This will be called with the CLI 'migrate:v2-mainnet' command.
 | 
			
		||||
 * Custom migrations should be defined in this function. This will be called with the CLI 'migrate:v2' 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  Web3 provider instance.
 | 
			
		||||
@@ -27,7 +31,7 @@ export const runV2MigrationsAsync = async (provider: Provider, artifactsDir: str
 | 
			
		||||
    const networkId = await web3Wrapper.getNetworkIdAsync();
 | 
			
		||||
    const artifactsWriter = new ArtifactWriter(artifactsDir, networkId);
 | 
			
		||||
 | 
			
		||||
    // Deploy AssetProxies
 | 
			
		||||
    // Proxies
 | 
			
		||||
    const erc20proxy = await ERC20ProxyContract.deployFrom0xArtifactAsync(artifacts.ERC20Proxy, provider, txDefaults);
 | 
			
		||||
    artifactsWriter.saveArtifact(erc20proxy);
 | 
			
		||||
    const erc721proxy = await ERC721ProxyContract.deployFrom0xArtifactAsync(
 | 
			
		||||
@@ -37,49 +41,104 @@ export const runV2MigrationsAsync = async (provider: Provider, artifactsDir: str
 | 
			
		||||
    );
 | 
			
		||||
    artifactsWriter.saveArtifact(erc721proxy);
 | 
			
		||||
 | 
			
		||||
    // Deploy Exchange
 | 
			
		||||
    // ZRX
 | 
			
		||||
    const zrxToken = await ZRXTokenContract.deployFrom0xArtifactAsync(artifacts.ZRX, provider, txDefaults);
 | 
			
		||||
    artifactsWriter.saveArtifact(zrxToken);
 | 
			
		||||
 | 
			
		||||
    // Ether token
 | 
			
		||||
    const etherToken = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults);
 | 
			
		||||
    artifactsWriter.saveArtifact(etherToken);
 | 
			
		||||
 | 
			
		||||
    // Exchange
 | 
			
		||||
    const zrxAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address);
 | 
			
		||||
    const exchange = await ExchangeContract.deployFrom0xArtifactAsync(artifacts.Exchange, provider, txDefaults);
 | 
			
		||||
    artifactsWriter.saveArtifact(exchange);
 | 
			
		||||
 | 
			
		||||
    let txHash;
 | 
			
		||||
    // Register AssetProxies in Exchange
 | 
			
		||||
    txHash = await exchange.registerAssetProxy.sendTransactionAsync(erc20proxy.address);
 | 
			
		||||
    logUtils.log(`transactionHash: ${txHash}`);
 | 
			
		||||
    logUtils.log('Registering ERC20Proxy');
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(txHash);
 | 
			
		||||
    // Multisigs
 | 
			
		||||
    const accounts: string[] = await web3Wrapper.getAvailableAddressesAsync();
 | 
			
		||||
    const owners = [accounts[0], accounts[1]];
 | 
			
		||||
    const confirmationsRequired = new BigNumber(2);
 | 
			
		||||
    const secondsRequired = new BigNumber(0);
 | 
			
		||||
    const owner = accounts[0];
 | 
			
		||||
 | 
			
		||||
    txHash = await exchange.registerAssetProxy.sendTransactionAsync(erc721proxy.address);
 | 
			
		||||
    logUtils.log(`transactionHash: ${txHash}`);
 | 
			
		||||
    logUtils.log('Registering ERC721Proxy');
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(txHash);
 | 
			
		||||
 | 
			
		||||
    // Deploy AssetProxyOwner
 | 
			
		||||
    const assetProxies = [erc20proxy.address, erc721proxy.address];
 | 
			
		||||
    // AssetProxyOwner
 | 
			
		||||
    const assetProxyOwner = await AssetProxyOwnerContract.deployFrom0xArtifactAsync(
 | 
			
		||||
        artifacts.AssetProxyOwner,
 | 
			
		||||
        provider,
 | 
			
		||||
        txDefaults,
 | 
			
		||||
        constants.ASSET_PROXY_OWNER_OWNERS,
 | 
			
		||||
        assetProxies,
 | 
			
		||||
        constants.ASSET_PROXY_OWNER_REQUIRED_CONFIRMATIONS,
 | 
			
		||||
        constants.ASSET_PROXY_OWNER_SECONDS_TIMELOCKED,
 | 
			
		||||
        owners,
 | 
			
		||||
        [erc20proxy.address, erc721proxy.address],
 | 
			
		||||
        confirmationsRequired,
 | 
			
		||||
        secondsRequired,
 | 
			
		||||
    );
 | 
			
		||||
    artifactsWriter.saveArtifact(assetProxyOwner);
 | 
			
		||||
 | 
			
		||||
    // Deploy Forwarder
 | 
			
		||||
    const zrxAssetData = assetDataUtils.encodeERC20AssetData(constants.ZRX_ADDRESS);
 | 
			
		||||
    const wethAssetData = assetDataUtils.encodeERC20AssetData(constants.WETH_ADDRESS);
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(
 | 
			
		||||
        await erc20proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, {
 | 
			
		||||
            from: owner,
 | 
			
		||||
        }),
 | 
			
		||||
    );
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(
 | 
			
		||||
        await erc20proxy.transferOwnership.sendTransactionAsync(assetProxyOwner.address, {
 | 
			
		||||
            from: owner,
 | 
			
		||||
        }),
 | 
			
		||||
    );
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(
 | 
			
		||||
        await erc721proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, {
 | 
			
		||||
            from: owner,
 | 
			
		||||
        }),
 | 
			
		||||
    );
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(
 | 
			
		||||
        await erc721proxy.transferOwnership.sendTransactionAsync(assetProxyOwner.address, {
 | 
			
		||||
            from: owner,
 | 
			
		||||
        }),
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    // Register the Asset Proxies to the Exchange
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(
 | 
			
		||||
        await exchange.registerAssetProxy.sendTransactionAsync(erc20proxy.address),
 | 
			
		||||
    );
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(
 | 
			
		||||
        await exchange.registerAssetProxy.sendTransactionAsync(erc721proxy.address),
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    // Dummy ERC20 tokens
 | 
			
		||||
    for (const token of erc20TokenInfo) {
 | 
			
		||||
        const totalSupply = new BigNumber(1000000000000000000000000000);
 | 
			
		||||
        // tslint:disable-next-line:no-unused-variable
 | 
			
		||||
        const dummyErc20Token = await DummyERC20TokenContract.deployFrom0xArtifactAsync(
 | 
			
		||||
            artifacts.DummyERC20Token,
 | 
			
		||||
            provider,
 | 
			
		||||
            txDefaults,
 | 
			
		||||
            token.name,
 | 
			
		||||
            token.symbol,
 | 
			
		||||
            token.decimals,
 | 
			
		||||
            totalSupply,
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // ERC721
 | 
			
		||||
    // tslint:disable-next-line:no-unused-variable
 | 
			
		||||
    const cryptoKittieToken = await DummyERC721TokenContract.deployFrom0xArtifactAsync(
 | 
			
		||||
        artifacts.DummyERC721Token,
 | 
			
		||||
        provider,
 | 
			
		||||
        txDefaults,
 | 
			
		||||
        erc721TokenInfo[0].name,
 | 
			
		||||
        erc721TokenInfo[0].symbol,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    // Forwarder
 | 
			
		||||
    const forwarder = await ForwarderContract.deployFrom0xArtifactAsync(
 | 
			
		||||
        artifacts.Forwarder,
 | 
			
		||||
        provider,
 | 
			
		||||
        txDefaults,
 | 
			
		||||
        exchange.address,
 | 
			
		||||
        zrxAssetData,
 | 
			
		||||
        wethAssetData,
 | 
			
		||||
        assetDataUtils.encodeERC20AssetData(zrxToken.address),
 | 
			
		||||
        assetDataUtils.encodeERC20AssetData(etherToken.address),
 | 
			
		||||
    );
 | 
			
		||||
    artifactsWriter.saveArtifact(forwarder);
 | 
			
		||||
 | 
			
		||||
    // Deploy OrderValidator
 | 
			
		||||
    // OrderValidator
 | 
			
		||||
    const orderValidator = await OrderValidatorContract.deployFrom0xArtifactAsync(
 | 
			
		||||
        artifacts.OrderValidator,
 | 
			
		||||
        provider,
 | 
			
		||||
@@ -88,31 +147,4 @@ export const runV2MigrationsAsync = async (provider: Provider, artifactsDir: str
 | 
			
		||||
        zrxAssetData,
 | 
			
		||||
    );
 | 
			
		||||
    artifactsWriter.saveArtifact(orderValidator);
 | 
			
		||||
 | 
			
		||||
    // Authorize Exchange contracts to call AssetProxies
 | 
			
		||||
    txHash = await erc20proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address);
 | 
			
		||||
    logUtils.log(`transactionHash: ${txHash}`);
 | 
			
		||||
    logUtils.log('Authorizing Exchange on ERC20Proxy');
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(txHash);
 | 
			
		||||
 | 
			
		||||
    txHash = await erc721proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address);
 | 
			
		||||
    logUtils.log(`transactionHash: ${txHash}`);
 | 
			
		||||
    logUtils.log('Authorizing Exchange on ERC721Proxy');
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(txHash);
 | 
			
		||||
 | 
			
		||||
    // Transfer ownership of AssetProxies and Exchange to AssetProxyOwner
 | 
			
		||||
    txHash = await erc20proxy.transferOwnership.sendTransactionAsync(assetProxyOwner.address);
 | 
			
		||||
    logUtils.log(`transactionHash: ${txHash}`);
 | 
			
		||||
    logUtils.log('Transferring ownership of ERC20Proxy');
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(txHash);
 | 
			
		||||
 | 
			
		||||
    txHash = await erc721proxy.transferOwnership.sendTransactionAsync(assetProxyOwner.address);
 | 
			
		||||
    logUtils.log(`transactionHash: ${txHash}`);
 | 
			
		||||
    logUtils.log('Transferring ownership of ERC721Proxy');
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(txHash);
 | 
			
		||||
 | 
			
		||||
    txHash = await exchange.transferOwnership.sendTransactionAsync(assetProxyOwner.address);
 | 
			
		||||
    logUtils.log(`transactionHash: ${txHash}`);
 | 
			
		||||
    logUtils.log('Transferring ownership of Exchange');
 | 
			
		||||
    await web3Wrapper.awaitTransactionSuccessAsync(txHash);
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user