More small artifacts updates/changes
This commit is contained in:
		@@ -358,7 +358,7 @@ describe('ExchangeWrapper', () => {
 | 
				
			|||||||
    describe('#getVersionAsync', () => {
 | 
					    describe('#getVersionAsync', () => {
 | 
				
			||||||
        it('should return version the hash', async () => {
 | 
					        it('should return version the hash', async () => {
 | 
				
			||||||
            const version = await contractWrappers.exchange.getVersionAsync();
 | 
					            const version = await contractWrappers.exchange.getVersionAsync();
 | 
				
			||||||
            const VERSION = '2.0.1-alpha';
 | 
					            const VERSION = '2.0.0';
 | 
				
			||||||
            expect(version).to.be.equal(VERSION);
 | 
					            expect(version).to.be.equal(VERSION);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,9 +25,7 @@
 | 
				
			|||||||
    "config": {
 | 
					    "config": {
 | 
				
			||||||
        "abis": {
 | 
					        "abis": {
 | 
				
			||||||
            "v1": "artifacts/1.0.0/@(DummyERC20Token|TokenTransferProxy_v1|Exchange_v1|TokenRegistry|MultiSigWallet|MultiSigWalletWithTimeLock|MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress|TokenRegistry|ZRXToken|WETH9).json",
 | 
					            "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/@(ERC20Token|DummyERC20Token|ERC721Token|DummyERC721Token|ERC20Proxy|ERC721Proxy|Exchange|Forwarder|AssetProxyOwner|ZRXToken|WETH9|IWallet|IValidator|OrderValidator).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"
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "license": "Apache-2.0",
 | 
					    "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 { ContractArtifact } from 'ethereum-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import * as AssetProxyOwner from '../../artifacts/2.0.0/AssetProxyOwner.json';
 | 
					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 ERC20Proxy from '../../artifacts/2.0.0/ERC20Proxy.json';
 | 
				
			||||||
import * as ERC721Proxy from '../../artifacts/2.0.0/ERC721Proxy.json';
 | 
					import * as ERC721Proxy from '../../artifacts/2.0.0/ERC721Proxy.json';
 | 
				
			||||||
import * as Exchange from '../../artifacts/2.0.0/Exchange.json';
 | 
					import * as Exchange from '../../artifacts/2.0.0/Exchange.json';
 | 
				
			||||||
import * as Forwarder from '../../artifacts/2.0.0/Forwarder.json';
 | 
					import * as Forwarder from '../../artifacts/2.0.0/Forwarder.json';
 | 
				
			||||||
import * as OrderValidator from '../../artifacts/2.0.0/OrderValidator.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 = {
 | 
					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,
 | 
					    AssetProxyOwner: (AssetProxyOwner as any) as ContractArtifact,
 | 
				
			||||||
 | 
					    Exchange: (Exchange as any) as ContractArtifact,
 | 
				
			||||||
 | 
					    WETH9: (WETH9 as any) as ContractArtifact,
 | 
				
			||||||
    ERC20Proxy: (ERC20Proxy as any) as ContractArtifact,
 | 
					    ERC20Proxy: (ERC20Proxy as any) as ContractArtifact,
 | 
				
			||||||
    ERC721Proxy: (ERC721Proxy as any) as ContractArtifact,
 | 
					    ERC721Proxy: (ERC721Proxy as any) as ContractArtifact,
 | 
				
			||||||
    Exchange: (Exchange as any) as ContractArtifact,
 | 
					 | 
				
			||||||
    Forwarder: (Forwarder as any) as ContractArtifact,
 | 
					    Forwarder: (Forwarder as any) as ContractArtifact,
 | 
				
			||||||
    OrderValidator: (OrderValidator 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 { assetDataUtils } from '@0xproject/order-utils';
 | 
				
			||||||
import { logUtils } from '@0xproject/utils';
 | 
					import { BigNumber } from '@0xproject/utils';
 | 
				
			||||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
 | 
					import { Web3Wrapper } from '@0xproject/web3-wrapper';
 | 
				
			||||||
import { Provider, TxData } from 'ethereum-types';
 | 
					import { Provider, TxData } from 'ethereum-types';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { ArtifactWriter } from '../utils/artifact_writer';
 | 
					import { ArtifactWriter } from '../utils/artifact_writer';
 | 
				
			||||||
 | 
					import { erc20TokenInfo, erc721TokenInfo } from '../utils/token_info';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { artifacts } from './artifacts';
 | 
					import { artifacts } from './artifacts';
 | 
				
			||||||
import { constants } from './constants';
 | 
					 | 
				
			||||||
import { AssetProxyOwnerContract } from './contract_wrappers/asset_proxy_owner';
 | 
					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 { ERC20ProxyContract } from './contract_wrappers/erc20_proxy';
 | 
				
			||||||
import { ERC721ProxyContract } from './contract_wrappers/erc721_proxy';
 | 
					import { ERC721ProxyContract } from './contract_wrappers/erc721_proxy';
 | 
				
			||||||
import { ExchangeContract } from './contract_wrappers/exchange';
 | 
					import { ExchangeContract } from './contract_wrappers/exchange';
 | 
				
			||||||
import { ForwarderContract } from './contract_wrappers/forwarder';
 | 
					import { ForwarderContract } from './contract_wrappers/forwarder';
 | 
				
			||||||
import { OrderValidatorContract } from './contract_wrappers/order_validator';
 | 
					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,
 | 
					 * 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.
 | 
					 * the migration should be written to run synchronously.
 | 
				
			||||||
 * @param provider  Web3 provider instance.
 | 
					 * @param provider  Web3 provider instance.
 | 
				
			||||||
@@ -27,7 +31,7 @@ export const runV2MigrationsAsync = async (provider: Provider, artifactsDir: str
 | 
				
			|||||||
    const networkId = await web3Wrapper.getNetworkIdAsync();
 | 
					    const networkId = await web3Wrapper.getNetworkIdAsync();
 | 
				
			||||||
    const artifactsWriter = new ArtifactWriter(artifactsDir, networkId);
 | 
					    const artifactsWriter = new ArtifactWriter(artifactsDir, networkId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Deploy AssetProxies
 | 
					    // Proxies
 | 
				
			||||||
    const erc20proxy = await ERC20ProxyContract.deployFrom0xArtifactAsync(artifacts.ERC20Proxy, provider, txDefaults);
 | 
					    const erc20proxy = await ERC20ProxyContract.deployFrom0xArtifactAsync(artifacts.ERC20Proxy, provider, txDefaults);
 | 
				
			||||||
    artifactsWriter.saveArtifact(erc20proxy);
 | 
					    artifactsWriter.saveArtifact(erc20proxy);
 | 
				
			||||||
    const erc721proxy = await ERC721ProxyContract.deployFrom0xArtifactAsync(
 | 
					    const erc721proxy = await ERC721ProxyContract.deployFrom0xArtifactAsync(
 | 
				
			||||||
@@ -37,49 +41,104 @@ export const runV2MigrationsAsync = async (provider: Provider, artifactsDir: str
 | 
				
			|||||||
    );
 | 
					    );
 | 
				
			||||||
    artifactsWriter.saveArtifact(erc721proxy);
 | 
					    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);
 | 
					    const exchange = await ExchangeContract.deployFrom0xArtifactAsync(artifacts.Exchange, provider, txDefaults);
 | 
				
			||||||
    artifactsWriter.saveArtifact(exchange);
 | 
					    artifactsWriter.saveArtifact(exchange);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let txHash;
 | 
					    // Multisigs
 | 
				
			||||||
    // Register AssetProxies in Exchange
 | 
					    const accounts: string[] = await web3Wrapper.getAvailableAddressesAsync();
 | 
				
			||||||
    txHash = await exchange.registerAssetProxy.sendTransactionAsync(erc20proxy.address);
 | 
					    const owners = [accounts[0], accounts[1]];
 | 
				
			||||||
    logUtils.log(`transactionHash: ${txHash}`);
 | 
					    const confirmationsRequired = new BigNumber(2);
 | 
				
			||||||
    logUtils.log('Registering ERC20Proxy');
 | 
					    const secondsRequired = new BigNumber(0);
 | 
				
			||||||
    await web3Wrapper.awaitTransactionSuccessAsync(txHash);
 | 
					    const owner = accounts[0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    txHash = await exchange.registerAssetProxy.sendTransactionAsync(erc721proxy.address);
 | 
					    // AssetProxyOwner
 | 
				
			||||||
    logUtils.log(`transactionHash: ${txHash}`);
 | 
					 | 
				
			||||||
    logUtils.log('Registering ERC721Proxy');
 | 
					 | 
				
			||||||
    await web3Wrapper.awaitTransactionSuccessAsync(txHash);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Deploy AssetProxyOwner
 | 
					 | 
				
			||||||
    const assetProxies = [erc20proxy.address, erc721proxy.address];
 | 
					 | 
				
			||||||
    const assetProxyOwner = await AssetProxyOwnerContract.deployFrom0xArtifactAsync(
 | 
					    const assetProxyOwner = await AssetProxyOwnerContract.deployFrom0xArtifactAsync(
 | 
				
			||||||
        artifacts.AssetProxyOwner,
 | 
					        artifacts.AssetProxyOwner,
 | 
				
			||||||
        provider,
 | 
					        provider,
 | 
				
			||||||
        txDefaults,
 | 
					        txDefaults,
 | 
				
			||||||
        constants.ASSET_PROXY_OWNER_OWNERS,
 | 
					        owners,
 | 
				
			||||||
        assetProxies,
 | 
					        [erc20proxy.address, erc721proxy.address],
 | 
				
			||||||
        constants.ASSET_PROXY_OWNER_REQUIRED_CONFIRMATIONS,
 | 
					        confirmationsRequired,
 | 
				
			||||||
        constants.ASSET_PROXY_OWNER_SECONDS_TIMELOCKED,
 | 
					        secondsRequired,
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    artifactsWriter.saveArtifact(assetProxyOwner);
 | 
					    artifactsWriter.saveArtifact(assetProxyOwner);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Deploy Forwarder
 | 
					    await web3Wrapper.awaitTransactionSuccessAsync(
 | 
				
			||||||
    const zrxAssetData = assetDataUtils.encodeERC20AssetData(constants.ZRX_ADDRESS);
 | 
					        await erc20proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, {
 | 
				
			||||||
    const wethAssetData = assetDataUtils.encodeERC20AssetData(constants.WETH_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(
 | 
					    const forwarder = await ForwarderContract.deployFrom0xArtifactAsync(
 | 
				
			||||||
        artifacts.Forwarder,
 | 
					        artifacts.Forwarder,
 | 
				
			||||||
        provider,
 | 
					        provider,
 | 
				
			||||||
        txDefaults,
 | 
					        txDefaults,
 | 
				
			||||||
        exchange.address,
 | 
					        exchange.address,
 | 
				
			||||||
        zrxAssetData,
 | 
					        assetDataUtils.encodeERC20AssetData(zrxToken.address),
 | 
				
			||||||
        wethAssetData,
 | 
					        assetDataUtils.encodeERC20AssetData(etherToken.address),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    artifactsWriter.saveArtifact(forwarder);
 | 
					    artifactsWriter.saveArtifact(forwarder);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Deploy OrderValidator
 | 
					    // OrderValidator
 | 
				
			||||||
    const orderValidator = await OrderValidatorContract.deployFrom0xArtifactAsync(
 | 
					    const orderValidator = await OrderValidatorContract.deployFrom0xArtifactAsync(
 | 
				
			||||||
        artifacts.OrderValidator,
 | 
					        artifacts.OrderValidator,
 | 
				
			||||||
        provider,
 | 
					        provider,
 | 
				
			||||||
@@ -88,31 +147,4 @@ export const runV2MigrationsAsync = async (provider: Provider, artifactsDir: str
 | 
				
			|||||||
        zrxAssetData,
 | 
					        zrxAssetData,
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    artifactsWriter.saveArtifact(orderValidator);
 | 
					    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