Fix remaining build issues
This commit is contained in:
		@@ -36,7 +36,7 @@
 | 
			
		||||
        "compile:truffle": "truffle compile"
 | 
			
		||||
    },
 | 
			
		||||
    "config": {
 | 
			
		||||
        "abis": "./generated-artifacts/@(Coordinator|CoordinatorRegistry|ICoordinatorApprovalVerifier|ICoordinatorCore|ICoordinatorRegistryCore|ICoordinatorSignatureValidator|LibConstants|LibCoordinatorApproval|LibCoordinatorRichErrors|LibEIP712CoordinatorDomain|MixinCoordinatorApprovalVerifier|MixinCoordinatorCore|MixinCoordinatorRegistryCore|MixinSignatureValidator).json",
 | 
			
		||||
        "abis": "./test/generated-artifacts/@(Coordinator|CoordinatorRegistry|ICoordinatorApprovalVerifier|ICoordinatorCore|ICoordinatorRegistryCore|ICoordinatorSignatureValidator|LibConstants|LibCoordinatorApproval|LibCoordinatorRichErrors|LibEIP712CoordinatorDomain|MixinCoordinatorApprovalVerifier|MixinCoordinatorCore|MixinCoordinatorRegistryCore|MixinSignatureValidator).json",
 | 
			
		||||
        "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually."
 | 
			
		||||
    },
 | 
			
		||||
    "repository": {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										37
									
								
								contracts/coordinator/test/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								contracts/coordinator/test/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
/*
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 * Warning: This file is auto-generated by contracts-gen. Don't edit manually.
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 */
 | 
			
		||||
import { ContractArtifact } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import * as Coordinator from '../test/generated-artifacts/Coordinator.json';
 | 
			
		||||
import * as CoordinatorRegistry from '../test/generated-artifacts/CoordinatorRegistry.json';
 | 
			
		||||
import * as ICoordinatorApprovalVerifier from '../test/generated-artifacts/ICoordinatorApprovalVerifier.json';
 | 
			
		||||
import * as ICoordinatorCore from '../test/generated-artifacts/ICoordinatorCore.json';
 | 
			
		||||
import * as ICoordinatorRegistryCore from '../test/generated-artifacts/ICoordinatorRegistryCore.json';
 | 
			
		||||
import * as ICoordinatorSignatureValidator from '../test/generated-artifacts/ICoordinatorSignatureValidator.json';
 | 
			
		||||
import * as LibConstants from '../test/generated-artifacts/LibConstants.json';
 | 
			
		||||
import * as LibCoordinatorApproval from '../test/generated-artifacts/LibCoordinatorApproval.json';
 | 
			
		||||
import * as LibCoordinatorRichErrors from '../test/generated-artifacts/LibCoordinatorRichErrors.json';
 | 
			
		||||
import * as LibEIP712CoordinatorDomain from '../test/generated-artifacts/LibEIP712CoordinatorDomain.json';
 | 
			
		||||
import * as MixinCoordinatorApprovalVerifier from '../test/generated-artifacts/MixinCoordinatorApprovalVerifier.json';
 | 
			
		||||
import * as MixinCoordinatorCore from '../test/generated-artifacts/MixinCoordinatorCore.json';
 | 
			
		||||
import * as MixinCoordinatorRegistryCore from '../test/generated-artifacts/MixinCoordinatorRegistryCore.json';
 | 
			
		||||
import * as MixinSignatureValidator from '../test/generated-artifacts/MixinSignatureValidator.json';
 | 
			
		||||
export const artifacts = {
 | 
			
		||||
    Coordinator: Coordinator as ContractArtifact,
 | 
			
		||||
    MixinCoordinatorApprovalVerifier: MixinCoordinatorApprovalVerifier as ContractArtifact,
 | 
			
		||||
    MixinCoordinatorCore: MixinCoordinatorCore as ContractArtifact,
 | 
			
		||||
    MixinSignatureValidator: MixinSignatureValidator as ContractArtifact,
 | 
			
		||||
    ICoordinatorApprovalVerifier: ICoordinatorApprovalVerifier as ContractArtifact,
 | 
			
		||||
    ICoordinatorCore: ICoordinatorCore as ContractArtifact,
 | 
			
		||||
    ICoordinatorSignatureValidator: ICoordinatorSignatureValidator as ContractArtifact,
 | 
			
		||||
    LibConstants: LibConstants as ContractArtifact,
 | 
			
		||||
    LibCoordinatorApproval: LibCoordinatorApproval as ContractArtifact,
 | 
			
		||||
    LibCoordinatorRichErrors: LibCoordinatorRichErrors as ContractArtifact,
 | 
			
		||||
    LibEIP712CoordinatorDomain: LibEIP712CoordinatorDomain as ContractArtifact,
 | 
			
		||||
    CoordinatorRegistry: CoordinatorRegistry as ContractArtifact,
 | 
			
		||||
    MixinCoordinatorRegistryCore: MixinCoordinatorRegistryCore as ContractArtifact,
 | 
			
		||||
    ICoordinatorRegistryCore: ICoordinatorRegistryCore as ContractArtifact,
 | 
			
		||||
};
 | 
			
		||||
@@ -1,7 +1,8 @@
 | 
			
		||||
import { constants as exchangeConstants, exchangeDataEncoder, ExchangeFunctionName } from '@0x/contracts-exchange';
 | 
			
		||||
import { exchangeDataEncoder } from '@0x/contracts-exchange';
 | 
			
		||||
import {
 | 
			
		||||
    blockchainTests,
 | 
			
		||||
    constants,
 | 
			
		||||
    ExchangeFunctionName,
 | 
			
		||||
    expect,
 | 
			
		||||
    hexConcat,
 | 
			
		||||
    hexSlice,
 | 
			
		||||
@@ -144,7 +145,7 @@ blockchainTests.resets('Mixins tests', env => {
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    describe('decodeOrdersFromFillData', () => {
 | 
			
		||||
        for (const fnName of exchangeConstants.SINGLE_FILL_FN_NAMES) {
 | 
			
		||||
        for (const fnName of constants.SINGLE_FILL_FN_NAMES) {
 | 
			
		||||
            it(`should correctly decode the orders for ${fnName} data`, async () => {
 | 
			
		||||
                const orders = [defaultOrder];
 | 
			
		||||
                const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders);
 | 
			
		||||
@@ -158,7 +159,7 @@ blockchainTests.resets('Mixins tests', env => {
 | 
			
		||||
                expect(orders).to.deep.eq(decodedSignedOrders);
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
        for (const fnName of exchangeConstants.BATCH_FILL_FN_NAMES) {
 | 
			
		||||
        for (const fnName of constants.BATCH_FILL_FN_NAMES) {
 | 
			
		||||
            it(`should correctly decode the orders for ${fnName} data`, async () => {
 | 
			
		||||
                const orders = [defaultOrder, defaultOrder];
 | 
			
		||||
                const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders);
 | 
			
		||||
@@ -172,7 +173,7 @@ blockchainTests.resets('Mixins tests', env => {
 | 
			
		||||
                expect(orders).to.deep.eq(decodedSignedOrders);
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
        for (const fnName of exchangeConstants.MARKET_FILL_FN_NAMES) {
 | 
			
		||||
        for (const fnName of constants.MARKET_FILL_FN_NAMES) {
 | 
			
		||||
            it(`should correctly decode the orders for ${fnName} data`, async () => {
 | 
			
		||||
                const orders = [defaultOrder, defaultOrder];
 | 
			
		||||
                const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders);
 | 
			
		||||
@@ -186,7 +187,7 @@ blockchainTests.resets('Mixins tests', env => {
 | 
			
		||||
                expect(orders).to.deep.eq(decodedSignedOrders);
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
        for (const fnName of exchangeConstants.MATCH_ORDER_FN_NAMES) {
 | 
			
		||||
        for (const fnName of constants.MATCH_ORDER_FN_NAMES) {
 | 
			
		||||
            it(`should correctly decode the orders for ${fnName} data`, async () => {
 | 
			
		||||
                const orders = [defaultOrder, defaultOrder];
 | 
			
		||||
                const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders);
 | 
			
		||||
@@ -200,7 +201,7 @@ blockchainTests.resets('Mixins tests', env => {
 | 
			
		||||
                expect(orders).to.deep.eq(decodedSignedOrders);
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
        for (const fnName of exchangeConstants.CANCEL_ORDER_FN_NAMES) {
 | 
			
		||||
        for (const fnName of constants.CANCEL_ORDER_FN_NAMES) {
 | 
			
		||||
            it(`should correctly decode the orders for ${fnName} data`, async () => {
 | 
			
		||||
                const orders = [defaultOrder, defaultOrder];
 | 
			
		||||
                const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders);
 | 
			
		||||
@@ -227,7 +228,7 @@ blockchainTests.resets('Mixins tests', env => {
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    describe('Single order approvals', () => {
 | 
			
		||||
        for (const fnName of exchangeConstants.SINGLE_FILL_FN_NAMES) {
 | 
			
		||||
        for (const fnName of constants.SINGLE_FILL_FN_NAMES) {
 | 
			
		||||
            it(`Should be successful: function=${fnName}, caller=tx_signer, senderAddress=[verifier], approval_sig=[approver1]`, async () => {
 | 
			
		||||
                const orders = [defaultOrder];
 | 
			
		||||
                const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders);
 | 
			
		||||
@@ -341,9 +342,9 @@ blockchainTests.resets('Mixins tests', env => {
 | 
			
		||||
    });
 | 
			
		||||
    describe('Batch order approvals', () => {
 | 
			
		||||
        for (const fnName of [
 | 
			
		||||
            ...exchangeConstants.BATCH_FILL_FN_NAMES,
 | 
			
		||||
            ...exchangeConstants.MARKET_FILL_FN_NAMES,
 | 
			
		||||
            ...exchangeConstants.MATCH_ORDER_FN_NAMES,
 | 
			
		||||
            ...constants.BATCH_FILL_FN_NAMES,
 | 
			
		||||
            ...constants.MARKET_FILL_FN_NAMES,
 | 
			
		||||
            ...constants.MATCH_ORDER_FN_NAMES,
 | 
			
		||||
        ]) {
 | 
			
		||||
            it(`Should be successful: function=${fnName} caller=tx_signer, senderAddress=[verifier,verifier], feeRecipient=[approver1,approver1], approval_sig=[approver1]`, async () => {
 | 
			
		||||
                const orders = [defaultOrder, defaultOrder];
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								contracts/coordinator/test/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								contracts/coordinator/test/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
/*
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 * Warning: This file is auto-generated by contracts-gen. Don't edit manually.
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 */
 | 
			
		||||
export * from '../test/generated-wrappers/coordinator';
 | 
			
		||||
export * from '../test/generated-wrappers/coordinator_registry';
 | 
			
		||||
export * from '../test/generated-wrappers/i_coordinator_approval_verifier';
 | 
			
		||||
export * from '../test/generated-wrappers/i_coordinator_core';
 | 
			
		||||
export * from '../test/generated-wrappers/i_coordinator_registry_core';
 | 
			
		||||
export * from '../test/generated-wrappers/i_coordinator_signature_validator';
 | 
			
		||||
export * from '../test/generated-wrappers/lib_constants';
 | 
			
		||||
export * from '../test/generated-wrappers/lib_coordinator_approval';
 | 
			
		||||
export * from '../test/generated-wrappers/lib_coordinator_rich_errors';
 | 
			
		||||
export * from '../test/generated-wrappers/lib_e_i_p712_coordinator_domain';
 | 
			
		||||
export * from '../test/generated-wrappers/mixin_coordinator_approval_verifier';
 | 
			
		||||
export * from '../test/generated-wrappers/mixin_coordinator_core';
 | 
			
		||||
export * from '../test/generated-wrappers/mixin_coordinator_registry_core';
 | 
			
		||||
export * from '../test/generated-wrappers/mixin_signature_validator';
 | 
			
		||||
@@ -16,7 +16,21 @@
 | 
			
		||||
        "generated-artifacts/MixinCoordinatorApprovalVerifier.json",
 | 
			
		||||
        "generated-artifacts/MixinCoordinatorCore.json",
 | 
			
		||||
        "generated-artifacts/MixinCoordinatorRegistryCore.json",
 | 
			
		||||
        "generated-artifacts/MixinSignatureValidator.json"
 | 
			
		||||
        "generated-artifacts/MixinSignatureValidator.json",
 | 
			
		||||
        "test/generated-artifacts/Coordinator.json",
 | 
			
		||||
        "test/generated-artifacts/CoordinatorRegistry.json",
 | 
			
		||||
        "test/generated-artifacts/ICoordinatorApprovalVerifier.json",
 | 
			
		||||
        "test/generated-artifacts/ICoordinatorCore.json",
 | 
			
		||||
        "test/generated-artifacts/ICoordinatorRegistryCore.json",
 | 
			
		||||
        "test/generated-artifacts/ICoordinatorSignatureValidator.json",
 | 
			
		||||
        "test/generated-artifacts/LibConstants.json",
 | 
			
		||||
        "test/generated-artifacts/LibCoordinatorApproval.json",
 | 
			
		||||
        "test/generated-artifacts/LibCoordinatorRichErrors.json",
 | 
			
		||||
        "test/generated-artifacts/LibEIP712CoordinatorDomain.json",
 | 
			
		||||
        "test/generated-artifacts/MixinCoordinatorApprovalVerifier.json",
 | 
			
		||||
        "test/generated-artifacts/MixinCoordinatorCore.json",
 | 
			
		||||
        "test/generated-artifacts/MixinCoordinatorRegistryCore.json",
 | 
			
		||||
        "test/generated-artifacts/MixinSignatureValidator.json"
 | 
			
		||||
    ],
 | 
			
		||||
    "exclude": ["./deploy/solc/solc_bin"]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -35,7 +35,7 @@
 | 
			
		||||
        "compile:truffle": "truffle compile"
 | 
			
		||||
    },
 | 
			
		||||
    "config": {
 | 
			
		||||
        "abis": "./generated-artifacts/@(Forwarder|IAssets|IForwarder|IForwarderCore|LibConstants|LibForwarderRichErrors|MixinAssets|MixinExchangeWrapper|MixinForwarderCore|MixinWeth).json",
 | 
			
		||||
        "abis": "./test/generated-artifacts/@(Forwarder|IAssets|IForwarder|IForwarderCore|LibConstants|LibForwarderRichErrors|MixinAssets|MixinExchangeWrapper|MixinForwarderCore|MixinWeth).json",
 | 
			
		||||
        "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually."
 | 
			
		||||
    },
 | 
			
		||||
    "repository": {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								contracts/exchange-forwarder/test/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								contracts/exchange-forwarder/test/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
/*
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 * Warning: This file is auto-generated by contracts-gen. Don't edit manually.
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 */
 | 
			
		||||
import { ContractArtifact } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import * as Forwarder from '../test/generated-artifacts/Forwarder.json';
 | 
			
		||||
import * as IAssets from '../test/generated-artifacts/IAssets.json';
 | 
			
		||||
import * as IForwarder from '../test/generated-artifacts/IForwarder.json';
 | 
			
		||||
import * as IForwarderCore from '../test/generated-artifacts/IForwarderCore.json';
 | 
			
		||||
import * as LibConstants from '../test/generated-artifacts/LibConstants.json';
 | 
			
		||||
import * as LibForwarderRichErrors from '../test/generated-artifacts/LibForwarderRichErrors.json';
 | 
			
		||||
import * as MixinAssets from '../test/generated-artifacts/MixinAssets.json';
 | 
			
		||||
import * as MixinExchangeWrapper from '../test/generated-artifacts/MixinExchangeWrapper.json';
 | 
			
		||||
import * as MixinForwarderCore from '../test/generated-artifacts/MixinForwarderCore.json';
 | 
			
		||||
import * as MixinWeth from '../test/generated-artifacts/MixinWeth.json';
 | 
			
		||||
export const artifacts = {
 | 
			
		||||
    Forwarder: Forwarder as ContractArtifact,
 | 
			
		||||
    MixinAssets: MixinAssets as ContractArtifact,
 | 
			
		||||
    MixinExchangeWrapper: MixinExchangeWrapper as ContractArtifact,
 | 
			
		||||
    MixinForwarderCore: MixinForwarderCore as ContractArtifact,
 | 
			
		||||
    MixinWeth: MixinWeth as ContractArtifact,
 | 
			
		||||
    IAssets: IAssets as ContractArtifact,
 | 
			
		||||
    IForwarder: IForwarder as ContractArtifact,
 | 
			
		||||
    IForwarderCore: IForwarderCore as ContractArtifact,
 | 
			
		||||
    LibConstants: LibConstants as ContractArtifact,
 | 
			
		||||
    LibForwarderRichErrors: LibForwarderRichErrors as ContractArtifact,
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										15
									
								
								contracts/exchange-forwarder/test/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								contracts/exchange-forwarder/test/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
/*
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 * Warning: This file is auto-generated by contracts-gen. Don't edit manually.
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 */
 | 
			
		||||
export * from '../test/generated-wrappers/forwarder';
 | 
			
		||||
export * from '../test/generated-wrappers/i_assets';
 | 
			
		||||
export * from '../test/generated-wrappers/i_forwarder';
 | 
			
		||||
export * from '../test/generated-wrappers/i_forwarder_core';
 | 
			
		||||
export * from '../test/generated-wrappers/lib_constants';
 | 
			
		||||
export * from '../test/generated-wrappers/lib_forwarder_rich_errors';
 | 
			
		||||
export * from '../test/generated-wrappers/mixin_assets';
 | 
			
		||||
export * from '../test/generated-wrappers/mixin_exchange_wrapper';
 | 
			
		||||
export * from '../test/generated-wrappers/mixin_forwarder_core';
 | 
			
		||||
export * from '../test/generated-wrappers/mixin_weth';
 | 
			
		||||
@@ -12,7 +12,17 @@
 | 
			
		||||
        "generated-artifacts/MixinAssets.json",
 | 
			
		||||
        "generated-artifacts/MixinExchangeWrapper.json",
 | 
			
		||||
        "generated-artifacts/MixinForwarderCore.json",
 | 
			
		||||
        "generated-artifacts/MixinWeth.json"
 | 
			
		||||
        "generated-artifacts/MixinWeth.json",
 | 
			
		||||
        "test/generated-artifacts/Forwarder.json",
 | 
			
		||||
        "test/generated-artifacts/IAssets.json",
 | 
			
		||||
        "test/generated-artifacts/IForwarder.json",
 | 
			
		||||
        "test/generated-artifacts/IForwarderCore.json",
 | 
			
		||||
        "test/generated-artifacts/LibConstants.json",
 | 
			
		||||
        "test/generated-artifacts/LibForwarderRichErrors.json",
 | 
			
		||||
        "test/generated-artifacts/MixinAssets.json",
 | 
			
		||||
        "test/generated-artifacts/MixinExchangeWrapper.json",
 | 
			
		||||
        "test/generated-artifacts/MixinForwarderCore.json",
 | 
			
		||||
        "test/generated-artifacts/MixinWeth.json"
 | 
			
		||||
    ],
 | 
			
		||||
    "exclude": ["./deploy/solc/solc_bin"]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,4 @@
 | 
			
		||||
export * from './artifacts';
 | 
			
		||||
export * from './wrappers';
 | 
			
		||||
export * from '../test/balance_stores';
 | 
			
		||||
export * from '../test/utils';
 | 
			
		||||
export * from './wrapper_interfaces';
 | 
			
		||||
export * from '../test/utils/exchange_data_encoder';
 | 
			
		||||
 
 | 
			
		||||
@@ -17,13 +17,14 @@ import * as _ from 'lodash';
 | 
			
		||||
import {
 | 
			
		||||
    BalanceStore,
 | 
			
		||||
    BlockchainBalanceStore,
 | 
			
		||||
    ExchangeContract,
 | 
			
		||||
    LocalBalanceStore,
 | 
			
		||||
    TokenContractsByName,
 | 
			
		||||
    TokenIds,
 | 
			
		||||
    TokenOwnersByName,
 | 
			
		||||
} from '../../src';
 | 
			
		||||
 | 
			
		||||
import { ExchangeContract } from '../wrappers';
 | 
			
		||||
 | 
			
		||||
export class FillOrderWrapper {
 | 
			
		||||
    private readonly _blockchainBalanceStore: BlockchainBalanceStore;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -41,16 +41,21 @@ import { LogWithDecodedArgs } from 'ethereum-types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { Erc1155Wrapper } from '../../erc1155/lib/src';
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
    ExchangeWrapper,
 | 
			
		||||
    ValidatorWalletAction,
 | 
			
		||||
} from './utils';
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
    artifacts,
 | 
			
		||||
} from './artifacts';
 | 
			
		||||
import { FillOrderWrapper } from './assertion_wrappers/fill_order_wrapper';
 | 
			
		||||
import {
 | 
			
		||||
    ExchangeCancelEventArgs,
 | 
			
		||||
    ExchangeContract,
 | 
			
		||||
    ExchangeWrapper,
 | 
			
		||||
    TestValidatorWalletContract,
 | 
			
		||||
    ValidatorWalletAction,
 | 
			
		||||
} from '../src';
 | 
			
		||||
 | 
			
		||||
import { FillOrderWrapper } from './assertion_wrappers/fill_order_wrapper';
 | 
			
		||||
} from './wrappers';
 | 
			
		||||
 | 
			
		||||
// tslint:disable:no-unnecessary-type-assertion
 | 
			
		||||
blockchainTests.resets('Exchange core', () => {
 | 
			
		||||
 
 | 
			
		||||
@@ -24,11 +24,11 @@ import * as chai from 'chai';
 | 
			
		||||
import { LogWithDecodedArgs } from 'ethereum-types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { artifacts } from './artifacts';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts,
 | 
			
		||||
    TestAssetProxyDispatcherAssetProxyRegisteredEventArgs,
 | 
			
		||||
    TestAssetProxyDispatcherContract,
 | 
			
		||||
} from '../src';
 | 
			
		||||
} from './wrappers';
 | 
			
		||||
 | 
			
		||||
import { dependencyArtifacts } from './utils/dependency_artifacts';
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,12 +7,12 @@ import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import { LogWithDecodedArgs } from 'ethereum-types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { artifacts } from './artifacts';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts,
 | 
			
		||||
    TestExchangeInternalsContract,
 | 
			
		||||
    TestExchangeInternalsDispatchTransferFromCalledEventArgs,
 | 
			
		||||
    TestExchangeInternalsFillEventArgs,
 | 
			
		||||
} from '../src';
 | 
			
		||||
} from './wrappers';
 | 
			
		||||
 | 
			
		||||
blockchainTests('Exchange core internal functions', env => {
 | 
			
		||||
    const CHAIN_ID = 1337;
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,8 @@ import { ExchangeRevertErrors, generatePseudoRandomSalt } from '@0x/order-utils'
 | 
			
		||||
import { BigNumber, RevertError } from '@0x/utils';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { artifacts, TestLibExchangeRichErrorDecoderContract } from '../src';
 | 
			
		||||
import { artifacts } from './artifacts';
 | 
			
		||||
import { TestLibExchangeRichErrorDecoderContract } from './wrappers';
 | 
			
		||||
 | 
			
		||||
blockchainTests.resets('LibExchangeRichErrorDecoder', ({ provider, txDefaults }) => {
 | 
			
		||||
    const ASSET_PROXY_ID_LENGTH = 4;
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,12 @@ import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import * as chai from 'chai';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { artifacts, ExchangeContract, ExchangeWrapper } from '../src';
 | 
			
		||||
import { ExchangeWrapper } from './utils/exchange_wrapper';
 | 
			
		||||
 | 
			
		||||
import { artifacts } from './artifacts';
 | 
			
		||||
import {
 | 
			
		||||
    ExchangeContract,
 | 
			
		||||
} from './wrappers';
 | 
			
		||||
 | 
			
		||||
import { MatchOrderTester, TokenBalances } from './utils/match_order_tester';
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,8 @@
 | 
			
		||||
import { blockchainTests } from '@0x/contracts-test-utils';
 | 
			
		||||
import { BigNumber } from '@0x/utils';
 | 
			
		||||
 | 
			
		||||
import { artifacts, TestProtocolFeesContract, TestProtocolFeesReceiverContract } from '../src';
 | 
			
		||||
import { artifacts } from './artifacts';
 | 
			
		||||
import { TestProtocolFeesContract, TestProtocolFeesReceiverContract} from './wrappers';
 | 
			
		||||
 | 
			
		||||
// The contents of this test suite does not inform the reader about the assertions made in these
 | 
			
		||||
// tests. For more information and a more accurate view of the tests, check out
 | 
			
		||||
 
 | 
			
		||||
@@ -2,12 +2,12 @@ import { blockchainTests, constants, expect } from '@0x/contracts-test-utils';
 | 
			
		||||
import { BigNumber, OwnableRevertErrors } from '@0x/utils';
 | 
			
		||||
import { LogWithDecodedArgs } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import { artifacts } from './artifacts';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts,
 | 
			
		||||
    ExchangeContract,
 | 
			
		||||
    ExchangeProtocolFeeCollectorAddressEventArgs,
 | 
			
		||||
    ExchangeProtocolFeeMultiplierEventArgs,
 | 
			
		||||
} from '../src';
 | 
			
		||||
} from './wrappers';
 | 
			
		||||
 | 
			
		||||
blockchainTests.resets('MixinProtocolFees', env => {
 | 
			
		||||
    let accounts: string[];
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,8 @@ import { BigNumber } from '@0x/utils';
 | 
			
		||||
import { DataItem, MethodAbi, TupleDataItem } from 'ethereum-types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { artifacts, ReentrancyTesterContract } from '../src';
 | 
			
		||||
import { artifacts } from './artifacts';
 | 
			
		||||
import { ReentrancyTesterContract} from './wrappers';
 | 
			
		||||
 | 
			
		||||
import { constants as TestConstants } from './utils/constants';
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -17,13 +17,13 @@ import { BigNumber, StringRevertError } from '@0x/utils';
 | 
			
		||||
import { LogWithDecodedArgs } from 'ethereum-types';
 | 
			
		||||
import ethUtil = require('ethereumjs-util');
 | 
			
		||||
 | 
			
		||||
import { artifacts } from './artifacts';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts,
 | 
			
		||||
    IEIP1271DataContract,
 | 
			
		||||
    TestSignatureValidatorContract,
 | 
			
		||||
    TestSignatureValidatorSignatureValidatorApprovalEventArgs,
 | 
			
		||||
    TestValidatorWalletContract,
 | 
			
		||||
} from '../src';
 | 
			
		||||
} from './wrappers';
 | 
			
		||||
 | 
			
		||||
import { ValidatorWalletAction } from './utils';
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ import {
 | 
			
		||||
    blockchainTests,
 | 
			
		||||
    constants,
 | 
			
		||||
    describe,
 | 
			
		||||
    ExchangeFunctionName,
 | 
			
		||||
    expect,
 | 
			
		||||
    getLatestBlockTimestampAsync,
 | 
			
		||||
    OrderFactory,
 | 
			
		||||
@@ -18,19 +19,16 @@ import { LogWithDecodedArgs, MethodAbi } from 'ethereum-types';
 | 
			
		||||
import * as ethUtil from 'ethereumjs-util';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { artifacts as localArtifacts } from './artifacts';
 | 
			
		||||
import { exchangeDataEncoder, ExchangeWrapper } from './utils';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts as localArtifacts,
 | 
			
		||||
    constants as exchangeConstants,
 | 
			
		||||
    ExchangeCancelEventArgs,
 | 
			
		||||
    ExchangeCancelUpToEventArgs,
 | 
			
		||||
    ExchangeContract,
 | 
			
		||||
    exchangeDataEncoder,
 | 
			
		||||
    ExchangeFillEventArgs,
 | 
			
		||||
    ExchangeFunctionName,
 | 
			
		||||
    ExchangeSignatureValidatorApprovalEventArgs,
 | 
			
		||||
    ExchangeTransactionExecutionEventArgs,
 | 
			
		||||
    ExchangeWrapper,
 | 
			
		||||
} from '../src/';
 | 
			
		||||
} from './wrappers';
 | 
			
		||||
 | 
			
		||||
const artifacts = { ...erc20Artifacts, ...localArtifacts };
 | 
			
		||||
 | 
			
		||||
@@ -210,9 +208,9 @@ blockchainTests.resets('Exchange transactions', env => {
 | 
			
		||||
        });
 | 
			
		||||
        describe('fill methods', () => {
 | 
			
		||||
            for (const fnName of [
 | 
			
		||||
                ...exchangeConstants.SINGLE_FILL_FN_NAMES,
 | 
			
		||||
                ...exchangeConstants.BATCH_FILL_FN_NAMES,
 | 
			
		||||
                ...exchangeConstants.MARKET_FILL_FN_NAMES,
 | 
			
		||||
                ...constants.SINGLE_FILL_FN_NAMES,
 | 
			
		||||
                ...constants.BATCH_FILL_FN_NAMES,
 | 
			
		||||
                ...constants.MARKET_FILL_FN_NAMES,
 | 
			
		||||
            ]) {
 | 
			
		||||
                it(`${fnName} should revert if signature is invalid and not called by signer`, async () => {
 | 
			
		||||
                    const orders = [await orderFactory.newSignedOrderAsync()];
 | 
			
		||||
@@ -301,7 +299,7 @@ blockchainTests.resets('Exchange transactions', env => {
 | 
			
		||||
 | 
			
		||||
                    const decodedReturnData = abiEncoder.decodeReturnValues(returnData);
 | 
			
		||||
                    const fillResults =
 | 
			
		||||
                        exchangeConstants.BATCH_FILL_FN_NAMES.indexOf(fnName) !== -1
 | 
			
		||||
                        constants.BATCH_FILL_FN_NAMES.indexOf(fnName) !== -1
 | 
			
		||||
                            ? decodedReturnData.fillResults[0]
 | 
			
		||||
                            : decodedReturnData.fillResults;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,11 @@ import { BigNumber, StringRevertError } from '@0x/utils';
 | 
			
		||||
import { LogWithDecodedArgs } from 'ethereum-types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { artifacts, TestTransactionsContract, TestTransactionsTransactionExecutionEventArgs } from '../src';
 | 
			
		||||
import { artifacts } from './artifacts';
 | 
			
		||||
import {
 | 
			
		||||
    TestTransactionsContract,
 | 
			
		||||
    TestTransactionsTransactionExecutionEventArgs,
 | 
			
		||||
} from './wrappers';
 | 
			
		||||
 | 
			
		||||
blockchainTests.resets('Transaction Unit Tests', ({ provider, web3Wrapper, txDefaults }) => {
 | 
			
		||||
    let transactionsContract: TestTransactionsContract;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { ExchangeFunctionName } from './types';
 | 
			
		||||
import { ExchangeFunctionName } from '@0x/contracts-test-utils';
 | 
			
		||||
 | 
			
		||||
export const constants = {
 | 
			
		||||
    // These are functions not secured by the `nonReentrant`, directly or
 | 
			
		||||
@@ -13,28 +13,6 @@ export const constants = {
 | 
			
		||||
        ExchangeFunctionName.SetProtocolFeeCollectorAddress,
 | 
			
		||||
        ExchangeFunctionName.DetachProtocolFeeCollector,
 | 
			
		||||
    ],
 | 
			
		||||
    SINGLE_FILL_FN_NAMES: [ExchangeFunctionName.FillOrder, ExchangeFunctionName.FillOrKillOrder],
 | 
			
		||||
    BATCH_FILL_FN_NAMES: [
 | 
			
		||||
        ExchangeFunctionName.BatchFillOrders,
 | 
			
		||||
        ExchangeFunctionName.BatchFillOrKillOrders,
 | 
			
		||||
        ExchangeFunctionName.BatchFillOrdersNoThrow,
 | 
			
		||||
    ],
 | 
			
		||||
    MARKET_FILL_FN_NAMES: [
 | 
			
		||||
        ExchangeFunctionName.MarketBuyOrdersFillOrKill,
 | 
			
		||||
        ExchangeFunctionName.MarketSellOrdersFillOrKill,
 | 
			
		||||
        ExchangeFunctionName.MarketBuyOrdersNoThrow,
 | 
			
		||||
        ExchangeFunctionName.MarketSellOrdersNoThrow,
 | 
			
		||||
    ],
 | 
			
		||||
    MATCH_ORDER_FN_NAMES: [ExchangeFunctionName.MatchOrders, ExchangeFunctionName.MatchOrdersWithMaximalFill],
 | 
			
		||||
    BATCH_MATCH_ORDER_FN_NAMES: [
 | 
			
		||||
        ExchangeFunctionName.BatchMatchOrders,
 | 
			
		||||
        ExchangeFunctionName.BatchMatchOrdersWithMaximalFill,
 | 
			
		||||
    ],
 | 
			
		||||
    CANCEL_ORDER_FN_NAMES: [
 | 
			
		||||
        ExchangeFunctionName.CancelOrder,
 | 
			
		||||
        ExchangeFunctionName.BatchCancelOrders,
 | 
			
		||||
        ExchangeFunctionName.CancelOrdersUpTo,
 | 
			
		||||
    ],
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export enum ValidatorWalletAction {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,33 +1,33 @@
 | 
			
		||||
import { constants, provider } from '@0x/contracts-test-utils';
 | 
			
		||||
import { constants, ExchangeFunctionName, provider } from '@0x/contracts-test-utils';
 | 
			
		||||
import { orderHashUtils } from '@0x/order-utils';
 | 
			
		||||
import { SignedOrder } from '@0x/types';
 | 
			
		||||
 | 
			
		||||
import { constants as exchangeConstants, ExchangeFunctionName, IExchangeContract } from '../../src';
 | 
			
		||||
import { IExchangeContract } from '../wrappers';
 | 
			
		||||
 | 
			
		||||
export const exchangeDataEncoder = {
 | 
			
		||||
    encodeOrdersToExchangeData(fnName: ExchangeFunctionName, orders: SignedOrder[] = []): string {
 | 
			
		||||
        const exchangeInstance = new IExchangeContract(constants.NULL_ADDRESS, provider);
 | 
			
		||||
        let data;
 | 
			
		||||
        if (exchangeConstants.SINGLE_FILL_FN_NAMES.indexOf(fnName) !== -1) {
 | 
			
		||||
        if (constants.SINGLE_FILL_FN_NAMES.indexOf(fnName) !== -1) {
 | 
			
		||||
            data = (exchangeInstance as any)[fnName].getABIEncodedTransactionData(
 | 
			
		||||
                orders[0],
 | 
			
		||||
                orders[0].takerAssetAmount,
 | 
			
		||||
                orders[0].signature,
 | 
			
		||||
            );
 | 
			
		||||
        } else if (exchangeConstants.BATCH_FILL_FN_NAMES.indexOf(fnName) !== -1) {
 | 
			
		||||
        } else if (constants.BATCH_FILL_FN_NAMES.indexOf(fnName) !== -1) {
 | 
			
		||||
            data = (exchangeInstance as any)[fnName].getABIEncodedTransactionData(
 | 
			
		||||
                orders,
 | 
			
		||||
                orders.map(order => order.takerAssetAmount),
 | 
			
		||||
                orders.map(order => order.signature),
 | 
			
		||||
            );
 | 
			
		||||
        } else if (exchangeConstants.MARKET_FILL_FN_NAMES.indexOf(fnName) !== -1) {
 | 
			
		||||
        } else if (constants.MARKET_FILL_FN_NAMES.indexOf(fnName) !== -1) {
 | 
			
		||||
            const fillAsset = /Buy/.test(fnName) ? 'makerAssetAmount' : 'takerAssetAmount';
 | 
			
		||||
            data = (exchangeInstance as any)[fnName].getABIEncodedTransactionData(
 | 
			
		||||
                orders,
 | 
			
		||||
                orders.map(order => order[fillAsset]).reduce((prev, curr) => prev.plus(curr)),
 | 
			
		||||
                orders.map(order => order.signature),
 | 
			
		||||
            );
 | 
			
		||||
        } else if (exchangeConstants.MATCH_ORDER_FN_NAMES.indexOf(fnName) !== -1) {
 | 
			
		||||
        } else if (constants.MATCH_ORDER_FN_NAMES.indexOf(fnName) !== -1) {
 | 
			
		||||
            data = exchangeInstance.matchOrders.getABIEncodedTransactionData(
 | 
			
		||||
                orders[0],
 | 
			
		||||
                orders[1],
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ import { AbiEncoder, BigNumber } from '@0x/utils';
 | 
			
		||||
import { MethodAbi, TransactionReceiptWithDecodedLogs } from 'ethereum-types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { ExchangeContract } from '../../src';
 | 
			
		||||
import { ExchangeContract } from '../wrappers';
 | 
			
		||||
 | 
			
		||||
import { AbiDecodedFillOrderData } from './types';
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,9 @@ import { LogWithDecodedArgs, TxData } from 'ethereum-types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
import 'make-promises-safe';
 | 
			
		||||
 | 
			
		||||
import { artifacts, ExchangeContract, ExchangeFillEventArgs } from '../../src';
 | 
			
		||||
import { artifacts } from '../artifacts';
 | 
			
		||||
 | 
			
		||||
import { ExchangeContract, ExchangeFillEventArgs } from '../wrappers';
 | 
			
		||||
 | 
			
		||||
import { AssetWrapper } from './asset_wrapper';
 | 
			
		||||
import { ExchangeWrapper } from './exchange_wrapper';
 | 
			
		||||
 
 | 
			
		||||
@@ -12,12 +12,13 @@ import { TxData, Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import * as crypto from 'crypto';
 | 
			
		||||
import { LogEntry } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import { artifacts } from '../artifacts';
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
    artifacts,
 | 
			
		||||
    IsolatedExchangeContract,
 | 
			
		||||
    IsolatedExchangeDispatchTransferFromCalledEventArgs as DispatchTransferFromCallArgs,
 | 
			
		||||
    IsolatedExchangeFillEventArgs as FillEventArgs,
 | 
			
		||||
} from '../../src';
 | 
			
		||||
 } from '../wrappers';
 | 
			
		||||
 | 
			
		||||
export interface AssetBalances {
 | 
			
		||||
    [assetData: string]: { [address: string]: BigNumber };
 | 
			
		||||
 
 | 
			
		||||
@@ -36,3 +36,13 @@ export enum ExchangeFunctionName {
 | 
			
		||||
    SetProtocolFeeCollectorAddress = 'setProtocolFeeCollectorAddress',
 | 
			
		||||
    DetachProtocolFeeCollector = 'detachProtocolFeeCollector',
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export enum TradeSide {
 | 
			
		||||
    Maker = 'maker',
 | 
			
		||||
    Taker = 'taker',
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export enum TransferType {
 | 
			
		||||
    Trade = 'trade',
 | 
			
		||||
    Fee = 'fee',
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -16,12 +16,12 @@ import { LogEntry, LogWithDecodedArgs } from 'ethereum-types';
 | 
			
		||||
import * as ethjs from 'ethereumjs-util';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { artifacts } from './artifacts';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts,
 | 
			
		||||
    TestWrapperFunctionsCancelOrderCalledEventArgs as CancelOrderCalledEventArgs,
 | 
			
		||||
    TestWrapperFunctionsContract,
 | 
			
		||||
    TestWrapperFunctionsFillOrderCalledEventArgs as FillOrderCalledEventArgs,
 | 
			
		||||
} from '../src';
 | 
			
		||||
} from './wrappers';
 | 
			
		||||
 | 
			
		||||
blockchainTests('Exchange wrapper functions unit tests.', env => {
 | 
			
		||||
    const CHAIN_ID = 0x74657374;
 | 
			
		||||
 
 | 
			
		||||
@@ -77,7 +77,6 @@
 | 
			
		||||
        "@0x/contracts-dev-utils": "^0.1.0-beta.1",
 | 
			
		||||
        "@0x/contracts-erc20": "^2.3.0-beta.1",
 | 
			
		||||
        "@0x/contracts-erc721": "^2.2.0-beta.1",
 | 
			
		||||
        "@0x/contracts-exchange": "^2.2.0-beta.1",
 | 
			
		||||
        "@0x/contracts-exchange-libs": "^3.1.0-beta.1",
 | 
			
		||||
        "@0x/contracts-utils": "^3.3.0-beta.1",
 | 
			
		||||
        "@0x/order-utils": "^8.5.0-beta.1",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
import { DevUtilsContract } from '@0x/contracts-dev-utils';
 | 
			
		||||
import { ExchangeContract, ExchangeWrapper } from '@0x/contracts-exchange';
 | 
			
		||||
import { ExchangeContract } from '@0x/contracts-exchange';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { ExchangeRevertErrors } from '@0x/order-utils';
 | 
			
		||||
import { Order, RevertReason, SignedOrder } from '@0x/types';
 | 
			
		||||
@@ -52,7 +52,6 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
			
		||||
    let zrxAssetData: string;
 | 
			
		||||
    let zrxToken: DummyERC20TokenContract;
 | 
			
		||||
    let exchangeInstance: ExchangeContract;
 | 
			
		||||
    let exchangeWrapper: ExchangeWrapper;
 | 
			
		||||
    let devUtils: DevUtilsContract;
 | 
			
		||||
 | 
			
		||||
    let orderFactory: OrderFactory;
 | 
			
		||||
@@ -139,9 +138,13 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
			
		||||
            zrxAssetData,
 | 
			
		||||
            new BigNumber(chainId),
 | 
			
		||||
        );
 | 
			
		||||
        exchangeWrapper = new ExchangeWrapper(exchangeInstance);
 | 
			
		||||
        // Register proxies
 | 
			
		||||
        await exchangeWrapper.registerAssetProxyAsync(erc20Proxy.address, owner);
 | 
			
		||||
        await exchangeInstance.registerAssetProxy.awaitTransactionSuccessAsync(
 | 
			
		||||
            erc20Proxy.address,
 | 
			
		||||
            {
 | 
			
		||||
                from: owner,
 | 
			
		||||
            },
 | 
			
		||||
        );
 | 
			
		||||
        await erc20Proxy.addAuthorizedAddress.sendTransactionAsync(exchangeInstance.address, {
 | 
			
		||||
            from: owner,
 | 
			
		||||
        });
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@ import { ERC20Wrapper, ERC721Wrapper } from '@0x/contracts-asset-proxy';
 | 
			
		||||
import { DevUtilsContract } from '@0x/contracts-dev-utils';
 | 
			
		||||
import { DummyERC20TokenContract } from '@0x/contracts-erc20';
 | 
			
		||||
import { DummyERC721TokenContract } from '@0x/contracts-erc721';
 | 
			
		||||
import { ExchangeContract, ExchangeWrapper } from '@0x/contracts-exchange';
 | 
			
		||||
import { ExchangeContract } from '@0x/contracts-exchange';
 | 
			
		||||
import {
 | 
			
		||||
    chaiSetup,
 | 
			
		||||
    constants,
 | 
			
		||||
@@ -98,9 +98,18 @@ describe(ContractName.DutchAuction, () => {
 | 
			
		||||
            zrxAssetData,
 | 
			
		||||
            new BigNumber(chainId),
 | 
			
		||||
        );
 | 
			
		||||
        const exchangeWrapper = new ExchangeWrapper(exchangeInstance);
 | 
			
		||||
        await exchangeWrapper.registerAssetProxyAsync(erc20Proxy.address, owner);
 | 
			
		||||
        await exchangeWrapper.registerAssetProxyAsync(erc721Proxy.address, owner);
 | 
			
		||||
        await exchangeInstance.registerAssetProxy.awaitTransactionSuccessAsync(
 | 
			
		||||
            erc20Proxy.address,
 | 
			
		||||
            {
 | 
			
		||||
                from: owner,
 | 
			
		||||
            },
 | 
			
		||||
        );
 | 
			
		||||
        await exchangeInstance.registerAssetProxy.awaitTransactionSuccessAsync(
 | 
			
		||||
            erc721Proxy.address,
 | 
			
		||||
            {
 | 
			
		||||
                from: owner,
 | 
			
		||||
            },
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        await erc20Proxy.addAuthorizedAddress.sendTransactionAsync(exchangeInstance.address, {
 | 
			
		||||
            from: owner,
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ import {
 | 
			
		||||
import { DevUtilsContract } from '@0x/contracts-dev-utils';
 | 
			
		||||
import { DummyERC20TokenContract } from '@0x/contracts-erc20';
 | 
			
		||||
import { artifacts as erc721Artifacts, DummyERC721TokenContract } from '@0x/contracts-erc721';
 | 
			
		||||
import { ExchangeContract, ExchangeWrapper } from '@0x/contracts-exchange';
 | 
			
		||||
import { ExchangeContract } from '@0x/contracts-exchange';
 | 
			
		||||
import {
 | 
			
		||||
    chaiSetup,
 | 
			
		||||
    constants,
 | 
			
		||||
@@ -15,6 +15,7 @@ import {
 | 
			
		||||
    expectContractCreationFailedAsync,
 | 
			
		||||
    LogDecoder,
 | 
			
		||||
    OrderFactory,
 | 
			
		||||
    orderUtils,
 | 
			
		||||
    provider,
 | 
			
		||||
    sendTransactionResult,
 | 
			
		||||
    txDefaults,
 | 
			
		||||
@@ -53,7 +54,6 @@ describe('OrderMatcher', () => {
 | 
			
		||||
    let orderMatcher: OrderMatcherContract;
 | 
			
		||||
 | 
			
		||||
    let erc20BalancesByOwner: ERC20BalancesByOwner;
 | 
			
		||||
    let exchangeWrapper: ExchangeWrapper;
 | 
			
		||||
    let erc20Wrapper: ERC20Wrapper;
 | 
			
		||||
    let orderFactoryLeft: OrderFactory;
 | 
			
		||||
    let orderFactoryRight: OrderFactory;
 | 
			
		||||
@@ -117,10 +117,18 @@ describe('OrderMatcher', () => {
 | 
			
		||||
            await devUtils.encodeERC20AssetData.callAsync(zrxToken.address),
 | 
			
		||||
            new BigNumber(chainId),
 | 
			
		||||
        );
 | 
			
		||||
        exchangeWrapper = new ExchangeWrapper(exchange);
 | 
			
		||||
        await exchangeWrapper.registerAssetProxyAsync(erc20Proxy.address, owner);
 | 
			
		||||
        await exchangeWrapper.registerAssetProxyAsync(erc721Proxy.address, owner);
 | 
			
		||||
        // Authorize ERC20 trades by exchange
 | 
			
		||||
        await exchange.registerAssetProxy.awaitTransactionSuccessAsync(
 | 
			
		||||
            erc20Proxy.address,
 | 
			
		||||
            {
 | 
			
		||||
                from: owner,
 | 
			
		||||
            },
 | 
			
		||||
        );
 | 
			
		||||
        await exchange.registerAssetProxy.awaitTransactionSuccessAsync(
 | 
			
		||||
            erc721Proxy.address,
 | 
			
		||||
            {
 | 
			
		||||
                from: owner,
 | 
			
		||||
            },
 | 
			
		||||
        );        // Authorize ERC20 trades by exchange
 | 
			
		||||
        await web3Wrapper.awaitTransactionSuccessAsync(
 | 
			
		||||
            await erc20Proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, {
 | 
			
		||||
                from: owner,
 | 
			
		||||
@@ -486,12 +494,20 @@ describe('OrderMatcher', () => {
 | 
			
		||||
                makerAssetAmount: Web3Wrapper.toBaseUnitAmount(new BigNumber(10), 18),
 | 
			
		||||
                takerAssetAmount: Web3Wrapper.toBaseUnitAmount(new BigNumber(2), 18),
 | 
			
		||||
            });
 | 
			
		||||
            await exchangeWrapper.fillOrderAsync(signedOrderLeft, takerAddress, {
 | 
			
		||||
                takerAssetFillAmount: signedOrderLeft.takerAssetAmount.dividedToIntegerBy(5),
 | 
			
		||||
            });
 | 
			
		||||
            await exchangeWrapper.fillOrderAsync(signedOrderRight, takerAddress, {
 | 
			
		||||
                takerAssetFillAmount: signedOrderRight.takerAssetAmount.dividedToIntegerBy(5),
 | 
			
		||||
            });
 | 
			
		||||
            let params = orderUtils.createFill(signedOrderLeft, signedOrderLeft.takerAssetAmount.dividedToIntegerBy(5));
 | 
			
		||||
            await exchange.fillOrder.awaitTransactionSuccessAsync(
 | 
			
		||||
                params.order,
 | 
			
		||||
                params.takerAssetFillAmount,
 | 
			
		||||
                params.signature,
 | 
			
		||||
                { from: takerAddress },
 | 
			
		||||
            );
 | 
			
		||||
            params = orderUtils.createFill(signedOrderRight, signedOrderRight.takerAssetAmount.dividedToIntegerBy(5));
 | 
			
		||||
            await exchange.fillOrder.awaitTransactionSuccessAsync(
 | 
			
		||||
                params.order,
 | 
			
		||||
                params.takerAssetFillAmount,
 | 
			
		||||
                params.signature,
 | 
			
		||||
                { from: takerAddress },
 | 
			
		||||
            );
 | 
			
		||||
            const data = exchange.matchOrders.getABIEncodedTransactionData(
 | 
			
		||||
                signedOrderLeft,
 | 
			
		||||
                signedOrderRight,
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@
 | 
			
		||||
        "compile": "sol-compiler",
 | 
			
		||||
        "watch": "sol-compiler -w",
 | 
			
		||||
        "clean": "shx rm -rf lib test/generated-artifacts test/generated-wrappers generated-artifacts generated-wrappers",
 | 
			
		||||
        "generate_contract_wrappers": "abi-gen --abis  ${npm_package_config_abis} --output generated-wrappers --backend ethers",
 | 
			
		||||
        "generate_contract_wrappers": "abi-gen --abis  ${npm_package_config_abis} --output test/generated-wrappers --backend ethers",
 | 
			
		||||
        "lint": "tslint --format stylish --project . --exclude ./generated-wrappers/**/* --exclude ./test/generated-wrappers/**/* --exclude ./generated-artifacts/**/* --exclude ./test/generated-artifacts/**/* --exclude **/lib/**/* && yarn lint-contracts",
 | 
			
		||||
        "fix": "tslint --fix --format stylish --project . --exclude ./generated-wrappers/**/* --exclude ./test/generated-wrappers/**/* --exclude ./generated-artifacts/**/* --exclude ./test/generated-artifacts/**/* --exclude **/lib/**/* && yarn lint-contracts",
 | 
			
		||||
        "coverage:report:text": "istanbul report text",
 | 
			
		||||
@@ -36,7 +36,7 @@
 | 
			
		||||
        "compile:truffle": "truffle compile"
 | 
			
		||||
    },
 | 
			
		||||
    "config": {
 | 
			
		||||
        "abis": "./generated-artifacts/@(TestFramework).json",
 | 
			
		||||
        "abis": "./test/generated-artifacts/@(TestFramework).json",
 | 
			
		||||
        "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually."
 | 
			
		||||
    },
 | 
			
		||||
    "repository": {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { TokenOwnersByName } from '@0x/contracts-exchange';
 | 
			
		||||
import { ObjectMap } from '@0x/types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { Actor } from './base';
 | 
			
		||||
@@ -7,6 +7,6 @@ import { Actor } from './base';
 | 
			
		||||
 * Utility function to convert Actors into an object mapping readable names to addresses.
 | 
			
		||||
 * Useful for BalanceStore.
 | 
			
		||||
 */
 | 
			
		||||
export function actorAddressesByName(actors: Actor[]): TokenOwnersByName {
 | 
			
		||||
export function actorAddressesByName(actors: Actor[]): ObjectMap<string> {
 | 
			
		||||
    return _.zipObject(actors.map(actor => actor.name), actors.map(actor => actor.address));
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								contracts/integrations/test/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								contracts/integrations/test/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
/*
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 * Warning: This file is auto-generated by contracts-gen. Don't edit manually.
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 */
 | 
			
		||||
import { ContractArtifact } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import * as TestFramework from '../test/generated-artifacts/TestFramework.json';
 | 
			
		||||
export const artifacts = { TestFramework: TestFramework as ContractArtifact };
 | 
			
		||||
@@ -2,18 +2,17 @@ import { CoordinatorContract, SignedCoordinatorApproval } from '@0x/contracts-co
 | 
			
		||||
import { DevUtilsContract } from '@0x/contracts-dev-utils';
 | 
			
		||||
import {
 | 
			
		||||
    BlockchainBalanceStore,
 | 
			
		||||
    constants as exchangeConstants,
 | 
			
		||||
    ExchangeCancelEventArgs,
 | 
			
		||||
    ExchangeCancelUpToEventArgs,
 | 
			
		||||
    exchangeDataEncoder,
 | 
			
		||||
    ExchangeEvents,
 | 
			
		||||
    ExchangeFillEventArgs,
 | 
			
		||||
    ExchangeFunctionName,
 | 
			
		||||
    LocalBalanceStore,
 | 
			
		||||
} from '@0x/contracts-exchange';
 | 
			
		||||
import {
 | 
			
		||||
    blockchainTests,
 | 
			
		||||
    constants,
 | 
			
		||||
    ExchangeFunctionName,
 | 
			
		||||
    expect,
 | 
			
		||||
    hexConcat,
 | 
			
		||||
    hexSlice,
 | 
			
		||||
@@ -174,7 +173,7 @@ blockchainTests.resets('Coordinator integration tests', env => {
 | 
			
		||||
        let transaction: SignedZeroExTransaction;
 | 
			
		||||
        let approval: SignedCoordinatorApproval;
 | 
			
		||||
 | 
			
		||||
        for (const fnName of exchangeConstants.SINGLE_FILL_FN_NAMES) {
 | 
			
		||||
        for (const fnName of constants.SINGLE_FILL_FN_NAMES) {
 | 
			
		||||
            before(async () => {
 | 
			
		||||
                order = await maker.signOrderAsync();
 | 
			
		||||
                data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, [order]);
 | 
			
		||||
@@ -321,7 +320,7 @@ blockchainTests.resets('Coordinator integration tests', env => {
 | 
			
		||||
        let transaction: SignedZeroExTransaction;
 | 
			
		||||
        let approval: SignedCoordinatorApproval;
 | 
			
		||||
 | 
			
		||||
        for (const fnName of [...exchangeConstants.MARKET_FILL_FN_NAMES, ...exchangeConstants.BATCH_FILL_FN_NAMES]) {
 | 
			
		||||
        for (const fnName of [...constants.MARKET_FILL_FN_NAMES, ...constants.BATCH_FILL_FN_NAMES]) {
 | 
			
		||||
            before(async () => {
 | 
			
		||||
                orders = [await maker.signOrderAsync(), await maker.signOrderAsync()];
 | 
			
		||||
                data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
import { Authorizable, Ownable } from '@0x/contracts-exchange';
 | 
			
		||||
import { constants as stakingConstants } from '@0x/contracts-staking';
 | 
			
		||||
import { blockchainTests, expect } from '@0x/contracts-test-utils';
 | 
			
		||||
 | 
			
		||||
import { DeploymentManager } from '../utils/deployment_manager';
 | 
			
		||||
import { Authorizable, Ownable } from '../utils/wrapper_interfaces';
 | 
			
		||||
 | 
			
		||||
blockchainTests('Deployment Manager', env => {
 | 
			
		||||
    let owner: string;
 | 
			
		||||
 
 | 
			
		||||
@@ -8,14 +8,11 @@ import {
 | 
			
		||||
} from '@0x/contracts-asset-proxy';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts as exchangeArtifacts,
 | 
			
		||||
    AssetProxyDispatcher,
 | 
			
		||||
    Authorizable,
 | 
			
		||||
    ExchangeAssetProxyRegisteredEventArgs,
 | 
			
		||||
    ExchangeContract,
 | 
			
		||||
    ExchangeEvents,
 | 
			
		||||
    ExchangeProtocolFeeCollectorAddressEventArgs,
 | 
			
		||||
    ExchangeProtocolFeeMultiplierEventArgs,
 | 
			
		||||
    Ownable,
 | 
			
		||||
} from '@0x/contracts-exchange';
 | 
			
		||||
import { artifacts as multisigArtifacts, ZeroExGovernorContract } from '@0x/contracts-multisig';
 | 
			
		||||
import {
 | 
			
		||||
@@ -36,6 +33,8 @@ import { AssetProxyId } from '@0x/types';
 | 
			
		||||
import { BigNumber } from '@0x/utils';
 | 
			
		||||
import { TxData } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import { AssetProxyDispatcher, Authorizable, Ownable } from '../utils/wrapper_interfaces';
 | 
			
		||||
 | 
			
		||||
// tslint:disable:no-unnecessary-type-assertion
 | 
			
		||||
blockchainTests('Deployment and Configuration End to End Tests', env => {
 | 
			
		||||
    // Available Addresses
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@ import { DevUtilsContract } from '@0x/contracts-dev-utils';
 | 
			
		||||
import { IERC20TokenEvents, IERC20TokenTransferEventArgs } from '@0x/contracts-erc20';
 | 
			
		||||
import {
 | 
			
		||||
    BlockchainBalanceStore,
 | 
			
		||||
    IExchangeEvents,
 | 
			
		||||
    IExchangeFillEventArgs,
 | 
			
		||||
    ExchangeEvents,
 | 
			
		||||
    ExchangeFillEventArgs,
 | 
			
		||||
    LocalBalanceStore,
 | 
			
		||||
} from '@0x/contracts-exchange';
 | 
			
		||||
import {
 | 
			
		||||
@@ -142,7 +142,7 @@ blockchainTests.resets('fillOrder integration tests', env => {
 | 
			
		||||
 | 
			
		||||
    function verifyFillEvents(order: SignedOrder, receipt: TransactionReceiptWithDecodedLogs): void {
 | 
			
		||||
        // Ensure that the fill event was correct.
 | 
			
		||||
        verifyEvents<IExchangeFillEventArgs>(
 | 
			
		||||
        verifyEvents<ExchangeFillEventArgs>(
 | 
			
		||||
            receipt,
 | 
			
		||||
            [
 | 
			
		||||
                {
 | 
			
		||||
@@ -162,7 +162,7 @@ blockchainTests.resets('fillOrder integration tests', env => {
 | 
			
		||||
                    protocolFeePaid: DeploymentManager.protocolFee,
 | 
			
		||||
                },
 | 
			
		||||
            ],
 | 
			
		||||
            IExchangeEvents.Fill,
 | 
			
		||||
            ExchangeEvents.Fill,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        // Ensure that the transfer events were correctly emitted.
 | 
			
		||||
 
 | 
			
		||||
@@ -9,13 +9,7 @@ import {
 | 
			
		||||
import { artifacts as ERC1155Artifacts, ERC1155MintableContract } from '@0x/contracts-erc1155';
 | 
			
		||||
import { artifacts as ERC20Artifacts, DummyERC20TokenContract, WETH9Contract } from '@0x/contracts-erc20';
 | 
			
		||||
import { artifacts as ERC721Artifacts, DummyERC721TokenContract } from '@0x/contracts-erc721';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts as exchangeArtifacts,
 | 
			
		||||
    AssetProxyDispatcher,
 | 
			
		||||
    Authorizable,
 | 
			
		||||
    ExchangeContract,
 | 
			
		||||
    Ownable,
 | 
			
		||||
} from '@0x/contracts-exchange';
 | 
			
		||||
import { artifacts as exchangeArtifacts, ExchangeContract } from '@0x/contracts-exchange';
 | 
			
		||||
import { artifacts as multisigArtifacts, ZeroExGovernorContract } from '@0x/contracts-multisig';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts as stakingArtifacts,
 | 
			
		||||
@@ -28,6 +22,8 @@ import { BigNumber } from '@0x/utils';
 | 
			
		||||
import { TxData } from 'ethereum-types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { AssetProxyDispatcher, Authorizable, Ownable } from './wrapper_interfaces';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Adds a batch of authorities to a list of authorizable contracts.
 | 
			
		||||
 * @param owner The owner of the authorizable contracts.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								contracts/integrations/test/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								contracts/integrations/test/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
/*
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 * Warning: This file is auto-generated by contracts-gen. Don't edit manually.
 | 
			
		||||
 * -----------------------------------------------------------------------------
 | 
			
		||||
 */
 | 
			
		||||
export * from '../test/generated-wrappers/test_framework';
 | 
			
		||||
@@ -2,5 +2,5 @@
 | 
			
		||||
    "extends": "../../tsconfig",
 | 
			
		||||
    "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true },
 | 
			
		||||
    "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"],
 | 
			
		||||
    "files": ["generated-artifacts/TestFramework.json"]
 | 
			
		||||
    "files": ["generated-artifacts/TestFramework.json", "test/generated-artifacts/TestFramework.json"]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,8 @@ import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import * as ethUtil from 'ethereumjs-util';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { ExchangeFunctionName } from './types';
 | 
			
		||||
 | 
			
		||||
const TESTRPC_PRIVATE_KEYS_STRINGS = [
 | 
			
		||||
    '0xf2f48ee19680706196e2e339e5da3491186e0c4c5030670656b0e0164837257d',
 | 
			
		||||
    '0x5d862464fe9303452126c8bc94274b8c5f9874cbd219789b3eb2128075a76f72',
 | 
			
		||||
@@ -84,4 +86,26 @@ export const constants = {
 | 
			
		||||
    PPM_DENOMINATOR: 1e6,
 | 
			
		||||
    PPM_100_PERCENT: 1e6,
 | 
			
		||||
    MAX_CODE_SIZE: 24576,
 | 
			
		||||
    SINGLE_FILL_FN_NAMES: [ExchangeFunctionName.FillOrder, ExchangeFunctionName.FillOrKillOrder],
 | 
			
		||||
    BATCH_FILL_FN_NAMES: [
 | 
			
		||||
        ExchangeFunctionName.BatchFillOrders,
 | 
			
		||||
        ExchangeFunctionName.BatchFillOrKillOrders,
 | 
			
		||||
        ExchangeFunctionName.BatchFillOrdersNoThrow,
 | 
			
		||||
    ],
 | 
			
		||||
    MARKET_FILL_FN_NAMES: [
 | 
			
		||||
        ExchangeFunctionName.MarketBuyOrdersFillOrKill,
 | 
			
		||||
        ExchangeFunctionName.MarketSellOrdersFillOrKill,
 | 
			
		||||
        ExchangeFunctionName.MarketBuyOrdersNoThrow,
 | 
			
		||||
        ExchangeFunctionName.MarketSellOrdersNoThrow,
 | 
			
		||||
    ],
 | 
			
		||||
    MATCH_ORDER_FN_NAMES: [ExchangeFunctionName.MatchOrders, ExchangeFunctionName.MatchOrdersWithMaximalFill],
 | 
			
		||||
    BATCH_MATCH_ORDER_FN_NAMES: [
 | 
			
		||||
        ExchangeFunctionName.BatchMatchOrders,
 | 
			
		||||
        ExchangeFunctionName.BatchMatchOrdersWithMaximalFill,
 | 
			
		||||
    ],
 | 
			
		||||
    CANCEL_ORDER_FN_NAMES: [
 | 
			
		||||
        ExchangeFunctionName.CancelOrder,
 | 
			
		||||
        ExchangeFunctionName.BatchCancelOrders,
 | 
			
		||||
        ExchangeFunctionName.CancelOrdersUpTo,
 | 
			
		||||
    ],
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -57,6 +57,7 @@ export {
 | 
			
		||||
    Token,
 | 
			
		||||
    TokenBalances,
 | 
			
		||||
    TransactionDataParams,
 | 
			
		||||
    ExchangeFunctionName,
 | 
			
		||||
} from './types';
 | 
			
		||||
export { blockchainTests, BlockchainTestsEnvironment, describe } from './mocha_blockchain';
 | 
			
		||||
export { chaiSetup, expect } from './chai_setup';
 | 
			
		||||
 
 | 
			
		||||
@@ -171,3 +171,33 @@ export interface FillEventArgs {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type Numberish = BigNumber | string | number;
 | 
			
		||||
 | 
			
		||||
export enum ExchangeFunctionName {
 | 
			
		||||
    BatchCancelOrders = 'batchCancelOrders',
 | 
			
		||||
    BatchExecuteTransactions = 'batchExecuteTransactions',
 | 
			
		||||
    BatchFillOrKillOrders = 'batchFillOrKillOrders',
 | 
			
		||||
    BatchFillOrders = 'batchFillOrders',
 | 
			
		||||
    BatchFillOrdersNoThrow = 'batchFillOrdersNoThrow',
 | 
			
		||||
    BatchMatchOrders = 'batchMatchOrders',
 | 
			
		||||
    BatchMatchOrdersWithMaximalFill = 'batchMatchOrdersWithMaximalFill',
 | 
			
		||||
    CancelOrder = 'cancelOrder',
 | 
			
		||||
    CancelOrdersUpTo = 'cancelOrdersUpTo',
 | 
			
		||||
    ExecuteTransaction = 'executeTransaction',
 | 
			
		||||
    FillOrKillOrder = 'fillOrKillOrder',
 | 
			
		||||
    FillOrder = 'fillOrder',
 | 
			
		||||
    FillOrderNoThrow = 'fillOrderNoThrow',
 | 
			
		||||
    MarketBuyOrdersNoThrow = 'marketBuyOrdersNoThrow',
 | 
			
		||||
    MarketSellOrdersNoThrow = 'marketSellOrdersNoThrow',
 | 
			
		||||
    MarketBuyOrdersFillOrKill = 'marketBuyOrdersFillOrKill',
 | 
			
		||||
    MarketSellOrdersFillOrKill = 'marketSellOrdersFillOrKill',
 | 
			
		||||
    MatchOrders = 'matchOrders',
 | 
			
		||||
    MatchOrdersWithMaximalFill = 'matchOrdersWithMaximalFill',
 | 
			
		||||
    PreSign = 'preSign',
 | 
			
		||||
    RegisterAssetProxy = 'registerAssetProxy',
 | 
			
		||||
    SetSignatureValidatorApproval = 'setSignatureValidatorApproval',
 | 
			
		||||
    SimulateDispatchTransferFromCalls = 'simulateDispatchTransferFromCalls',
 | 
			
		||||
    TransferOwnership = 'transferOwnership',
 | 
			
		||||
    SetProtocolFeeMultiplier = 'setProtocolFeeMultiplier',
 | 
			
		||||
    SetProtocolFeeCollectorAddress = 'setProtocolFeeCollectorAddress',
 | 
			
		||||
    DetachProtocolFeeCollector = 'detachProtocolFeeCollector',
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@
 | 
			
		||||
        "compile": "sol-compiler",
 | 
			
		||||
        "watch": "sol-compiler -w",
 | 
			
		||||
        "clean": "shx rm -rf lib test/generated-artifacts test/generated-wrappers generated-artifacts generated-wrappers",
 | 
			
		||||
        "generate_contract_wrappers": "abi-gen --abis  ${npm_package_config_abis} --output generated-wrappers --backend ethers",
 | 
			
		||||
        "generate_contract_wrappers": "abi-gen --abis  ${npm_package_config_abis} --output test/generated-wrappers --backend ethers",
 | 
			
		||||
        "lint": "tslint --format stylish --project . --exclude ./generated-wrappers/**/* --exclude ./test/generated-wrappers/**/* --exclude ./generated-artifacts/**/* --exclude ./test/generated-artifacts/**/* --exclude **/lib/**/* && yarn lint-contracts",
 | 
			
		||||
        "fix": "tslint --fix --format stylish --project . --exclude ./generated-wrappers/**/* --exclude ./test/generated-wrappers/**/* --exclude ./generated-artifacts/**/* --exclude ./test/generated-artifacts/**/* --exclude **/lib/**/* && yarn lint-contracts",
 | 
			
		||||
        "coverage:report:text": "istanbul report text",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { IExchangeContract } from '@0x/contracts-exchange';
 | 
			
		||||
import { ExchangeContract } from '@0x/contracts-exchange';
 | 
			
		||||
import { chaiSetup, constants, provider, txDefaults, web3Wrapper } from '@0x/contracts-test-utils';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { BigNumber } from '@0x/utils';
 | 
			
		||||
@@ -32,7 +32,7 @@ const signature =
 | 
			
		||||
 | 
			
		||||
describe('LibTransactionDecoder', () => {
 | 
			
		||||
    let libTxDecoder: LibTransactionDecoderContract;
 | 
			
		||||
    const exchangeInterface = new IExchangeContract(constants.NULL_ADDRESS, provider, txDefaults);
 | 
			
		||||
    const exchangeInterface = new ExchangeContract(constants.NULL_ADDRESS, provider, txDefaults);
 | 
			
		||||
    before(async () => {
 | 
			
		||||
        await blockchainLifecycle.startAsync();
 | 
			
		||||
        libTxDecoder = await LibTransactionDecoderContract.deployFrom0xArtifactAsync(
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ import {
 | 
			
		||||
} from '@0x/contracts-asset-proxy';
 | 
			
		||||
import { DummyERC20TokenContract } from '@0x/contracts-erc20';
 | 
			
		||||
import { DummyERC721TokenContract } from '@0x/contracts-erc721';
 | 
			
		||||
import { artifacts as exchangeArtifacts, ExchangeContract, ExchangeWrapper } from '@0x/contracts-exchange';
 | 
			
		||||
import { artifacts as exchangeArtifacts, ExchangeContract } from '@0x/contracts-exchange';
 | 
			
		||||
import {
 | 
			
		||||
    chaiSetup,
 | 
			
		||||
    constants,
 | 
			
		||||
@@ -93,10 +93,24 @@ describe('OrderValidationUtils/OrderTransferSimulatorUtils', () => {
 | 
			
		||||
            txDefaults,
 | 
			
		||||
            artifacts,
 | 
			
		||||
        );
 | 
			
		||||
        const exchangeWrapper = new ExchangeWrapper(exchange);
 | 
			
		||||
        await exchangeWrapper.registerAssetProxyAsync(erc20Proxy.address, owner);
 | 
			
		||||
        await exchangeWrapper.registerAssetProxyAsync(erc721Proxy.address, owner);
 | 
			
		||||
        await exchangeWrapper.registerAssetProxyAsync(multiAssetProxy.address, owner);
 | 
			
		||||
        await exchange.registerAssetProxy.awaitTransactionSuccessAsync(
 | 
			
		||||
            erc20Proxy.address,
 | 
			
		||||
            {
 | 
			
		||||
                from: owner,
 | 
			
		||||
            },
 | 
			
		||||
        );
 | 
			
		||||
        await exchange.registerAssetProxy.awaitTransactionSuccessAsync(
 | 
			
		||||
            erc721Proxy.address,
 | 
			
		||||
            {
 | 
			
		||||
                from: owner,
 | 
			
		||||
            },
 | 
			
		||||
        );
 | 
			
		||||
        await exchange.registerAssetProxy.awaitTransactionSuccessAsync(
 | 
			
		||||
            multiAssetProxy.address,
 | 
			
		||||
            {
 | 
			
		||||
                from: owner,
 | 
			
		||||
            },
 | 
			
		||||
        );
 | 
			
		||||
        await erc20Proxy.addAuthorizedAddress.awaitTransactionSuccessAsync(exchange.address, { from: owner });
 | 
			
		||||
        await erc721Proxy.addAuthorizedAddress.awaitTransactionSuccessAsync(exchange.address, { from: owner });
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user