Refactor out tokens from core contracts package
This commit is contained in:
		@@ -43,6 +43,7 @@ jobs:
 | 
			
		||||
            - run: yarn wsrun test:circleci @0x/contracts-multisig
 | 
			
		||||
            - run: yarn wsrun test:circleci @0x/contracts-utils
 | 
			
		||||
            - run: yarn wsrun test:circleci @0x/contracts-libs
 | 
			
		||||
            - run: yarn wsrun test:circleci @0x/contracts-tokens
 | 
			
		||||
            - run: yarn wsrun test:circleci @0x/contracts-core
 | 
			
		||||
    test-contracts-geth:
 | 
			
		||||
        docker:
 | 
			
		||||
@@ -58,6 +59,7 @@ jobs:
 | 
			
		||||
            - run: sleep 10 && TEST_PROVIDER=geth yarn wsrun test @0x/contracts-multisig
 | 
			
		||||
            - run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-utils
 | 
			
		||||
            - run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-libs
 | 
			
		||||
            - run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-tokens
 | 
			
		||||
            - run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-core
 | 
			
		||||
    test-publish:
 | 
			
		||||
        resource_class: medium+
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -84,6 +84,7 @@ contracts/multisig/generated-artifacts/
 | 
			
		||||
contracts/utils/generated-artifacts/
 | 
			
		||||
contracts/libs/generated-artifacts/
 | 
			
		||||
contracts/interfaces/generated-artifacts/
 | 
			
		||||
contracts/tokens/generated-artifacts/
 | 
			
		||||
packages/sol-cov/test/fixtures/artifacts/
 | 
			
		||||
packages/metacoin/artifacts/
 | 
			
		||||
 | 
			
		||||
@@ -94,6 +95,7 @@ contracts/multisig/generated-wrappers/
 | 
			
		||||
contracts/utils/generated-wrappers/
 | 
			
		||||
contracts/libs/generated-wrappers/
 | 
			
		||||
contracts/interfaces/generated-wrappers/
 | 
			
		||||
contracts/tokens/generated-wrappers/
 | 
			
		||||
packages/metacoin/src/contract_wrappers
 | 
			
		||||
 | 
			
		||||
# solc-bin in sol-compiler
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,8 @@ lib
 | 
			
		||||
/contracts/libs/generated-artifacts
 | 
			
		||||
/contracts/interfaces/generated-wrappers
 | 
			
		||||
/contracts/interfaces/generated-artifacts
 | 
			
		||||
/contracts/tokens/generated-wrappers
 | 
			
		||||
/contracts/tokens/generated-artifacts
 | 
			
		||||
/packages/abi-gen-wrappers/src/generated-wrappers
 | 
			
		||||
/packages/contract-artifacts/artifacts
 | 
			
		||||
/python-packages/order_utils/src/zero_ex/contract_artifacts/artifacts
 | 
			
		||||
 
 | 
			
		||||
@@ -117,19 +117,5 @@
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        "name": "ZRXToken",
 | 
			
		||||
        "version": "1.0.0",
 | 
			
		||||
        "changes": [
 | 
			
		||||
            {
 | 
			
		||||
                "note": "protocol v1 deploy",
 | 
			
		||||
                "networks": {
 | 
			
		||||
                    "1": "0xe41d2489571d322189246dafa5ebde1f4699f498",
 | 
			
		||||
                    "3": "0xff67881f8d12f372d91baae9752eb3631ff0ed00",
 | 
			
		||||
                    "42": "0x2002d3812f58e35f0ea1ffbf80a75a38c32175fa"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        ]
 | 
			
		||||
    }
 | 
			
		||||
]
 | 
			
		||||
 
 | 
			
		||||
@@ -12,10 +12,6 @@ Contracts that make up and interact with version 2.0.0 of the protocol can be fo
 | 
			
		||||
    *   This directory contains contracts that interact with the 2.0.0 contracts and will be used in production, such as the [Forwarder](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/forwarder-specification.md) contract.
 | 
			
		||||
*   [examples](./contracts/examples)
 | 
			
		||||
    *   This directory contains example implementations of contracts that interact with the protocol but are _not_ intended for use in production. Examples include [filter](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#filter-contracts) contracts, a [Wallet](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#wallet) contract, and a [Validator](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#validator) contract, among others.
 | 
			
		||||
*   [tokens](./contracts/tokens)
 | 
			
		||||
    *   This directory contains implementations of different tokens and token standards, including [wETH](https://weth.io/), ZRX, [ERC20](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md), and [ERC721](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md).
 | 
			
		||||
*   [utils](./contracts/utils)
 | 
			
		||||
    *   This directory contains libraries and utils that are shared across all of the other directories.
 | 
			
		||||
*   [test](./contracts/test)
 | 
			
		||||
    *   This directory contains mocks and other contracts that are used solely for testing contracts within the other directories.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,24 +20,15 @@
 | 
			
		||||
    },
 | 
			
		||||
    "contracts": [
 | 
			
		||||
        "AssetProxyOwner",
 | 
			
		||||
        "DummyERC20Token",
 | 
			
		||||
        "DummyERC721Receiver",
 | 
			
		||||
        "DummyERC721Token",
 | 
			
		||||
        "DummyMultipleReturnERC20Token",
 | 
			
		||||
        "DummyNoReturnERC20Token",
 | 
			
		||||
        "DutchAuction",
 | 
			
		||||
        "ERC20Proxy",
 | 
			
		||||
        "ERC20Token",
 | 
			
		||||
        "ERC721Token",
 | 
			
		||||
        "ERC721Proxy",
 | 
			
		||||
        "Exchange",
 | 
			
		||||
        "ExchangeWrapper",
 | 
			
		||||
        "Forwarder",
 | 
			
		||||
        "InvalidERC721Receiver",
 | 
			
		||||
        "MixinAuthorizable",
 | 
			
		||||
        "MultiAssetProxy",
 | 
			
		||||
        "OrderValidator",
 | 
			
		||||
        "ReentrantERC20Token",
 | 
			
		||||
        "TestAssetProxyOwner",
 | 
			
		||||
        "TestAssetProxyDispatcher",
 | 
			
		||||
        "TestExchangeInternals",
 | 
			
		||||
@@ -45,8 +36,6 @@
 | 
			
		||||
        "TestStaticCallReceiver",
 | 
			
		||||
        "Validator",
 | 
			
		||||
        "Wallet",
 | 
			
		||||
        "WETH9",
 | 
			
		||||
        "Whitelist",
 | 
			
		||||
        "ZRXToken"
 | 
			
		||||
        "Whitelist"
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ pragma experimental ABIEncoderV2;
 | 
			
		||||
 | 
			
		||||
import "@0x/contracts-interfaces/contracts/protocol/Exchange/IExchange.sol";
 | 
			
		||||
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
 | 
			
		||||
import "../../tokens/ERC20Token/IERC20Token.sol";
 | 
			
		||||
import "@0x/contracts-tokens/contracts/tokens/ERC20Token/IERC20Token.sol";
 | 
			
		||||
import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol";
 | 
			
		||||
import "@0x/contracts-utils/contracts/utils/SafeMath/SafeMath.sol";
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,8 +20,8 @@ pragma solidity 0.4.24;
 | 
			
		||||
 | 
			
		||||
import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol";
 | 
			
		||||
import "@0x/contracts-utils/contracts/utils/Ownable/Ownable.sol";
 | 
			
		||||
import "../../tokens/ERC20Token/IERC20Token.sol";
 | 
			
		||||
import "../../tokens/ERC721Token/IERC721Token.sol";
 | 
			
		||||
import "@0x/contracts-tokens/contracts/tokens/ERC20Token/IERC20Token.sol";
 | 
			
		||||
import "@0x/contracts-tokens/contracts/tokens/ERC721Token/IERC721Token.sol";
 | 
			
		||||
import "./libs/LibConstants.sol";
 | 
			
		||||
import "./mixins/MAssets.sol";
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,8 +20,8 @@ pragma solidity 0.4.24;
 | 
			
		||||
 | 
			
		||||
import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol";
 | 
			
		||||
import "@0x/contracts-interfaces/contracts/protocol/Exchange/IExchange.sol";
 | 
			
		||||
import "../../../tokens/EtherToken/IEtherToken.sol";
 | 
			
		||||
import "../../../tokens/ERC20Token/IERC20Token.sol";
 | 
			
		||||
import "@0x/contracts-tokens/contracts/tokens/EtherToken/IEtherToken.sol";
 | 
			
		||||
import "@0x/contracts-tokens/contracts/tokens/ERC20Token/IERC20Token.sol";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
contract LibConstants {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,8 +21,8 @@ pragma experimental ABIEncoderV2;
 | 
			
		||||
 | 
			
		||||
import "@0x/contracts-interfaces/contracts/protocol/Exchange/IExchange.sol";
 | 
			
		||||
import "@0x/contracts-libs/contracts/libs/LibOrder.sol";
 | 
			
		||||
import "../../tokens/ERC20Token/IERC20Token.sol";
 | 
			
		||||
import "../../tokens/ERC721Token/IERC721Token.sol";
 | 
			
		||||
import "@0x/contracts-tokens/contracts/tokens/ERC20Token/IERC20Token.sol";
 | 
			
		||||
import "@0x/contracts-tokens/contracts/tokens/ERC721Token/IERC721Token.sol";
 | 
			
		||||
import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
 | 
			
		||||
pragma solidity 0.4.24;
 | 
			
		||||
 | 
			
		||||
import "../../tokens/ERC20Token/IERC20Token.sol";
 | 
			
		||||
import "@0x/contracts-tokens/contracts/tokens/ERC20Token/IERC20Token.sol";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// solhint-disable no-unused-vars
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@
 | 
			
		||||
        "lint-contracts": "solhint contracts/**/**/**/**/*.sol"
 | 
			
		||||
    },
 | 
			
		||||
    "config": {
 | 
			
		||||
        "abis": "generated-artifacts/@(AssetProxyOwner|DummyERC20Token|DummyERC721Receiver|DummyERC721Token|DummyMultipleReturnERC20Token|DummyNoReturnERC20Token|DutchAuction|ERC20Token|ERC20Proxy|ERC721Token|ERC721Proxy|Forwarder|Exchange|ExchangeWrapper|InvalidERC721Receiver|MixinAuthorizable|MultiAssetProxy|OrderValidator|ReentrantERC20Token|TestAssetProxyOwner|TestAssetProxyDispatcher|TestConstants|TestExchangeInternals|TestLibBytes|TestSignatureValidator|TestStaticCallReceiver|Validator|Wallet|Whitelist|WETH9|ZRXToken).json"
 | 
			
		||||
        "abis": "generated-artifacts/@(AssetProxyOwner|DutchAuction|ERC20Proxy|ERC721Proxy|Forwarder|Exchange|ExchangeWrapper|MixinAuthorizable|MultiAssetProxy|OrderValidator|TestAssetProxyOwner|TestAssetProxyDispatcher|TestExchangeInternals|TestSignatureValidator|TestStaticCallReceiver|Validator|Wallet|Whitelist).json"
 | 
			
		||||
    },
 | 
			
		||||
    "repository": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
@@ -76,6 +76,7 @@
 | 
			
		||||
        "@0x/order-utils": "^3.0.4",
 | 
			
		||||
        "@0x/contracts-multisig": "^1.0.0",
 | 
			
		||||
        "@0x/contracts-utils": "^1.0.0",
 | 
			
		||||
        "@0x/contracts-tokens": "^1.0.0",
 | 
			
		||||
        "@0x/contracts-libs": "^1.0.0",
 | 
			
		||||
        "@0x/contracts-interfaces": "^1.0.0",
 | 
			
		||||
        "@0x/types": "^1.3.0",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,24 +1,15 @@
 | 
			
		||||
import { ContractArtifact } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import * as AssetProxyOwner from '../../generated-artifacts/AssetProxyOwner.json';
 | 
			
		||||
import * as DummyERC20Token from '../../generated-artifacts/DummyERC20Token.json';
 | 
			
		||||
import * as DummyERC721Receiver from '../../generated-artifacts/DummyERC721Receiver.json';
 | 
			
		||||
import * as DummyERC721Token from '../../generated-artifacts/DummyERC721Token.json';
 | 
			
		||||
import * as DummyMultipleReturnERC20Token from '../../generated-artifacts/DummyMultipleReturnERC20Token.json';
 | 
			
		||||
import * as DummyNoReturnERC20Token from '../../generated-artifacts/DummyNoReturnERC20Token.json';
 | 
			
		||||
import * as DutchAuction from '../../generated-artifacts/DutchAuction.json';
 | 
			
		||||
import * as ERC20Proxy from '../../generated-artifacts/ERC20Proxy.json';
 | 
			
		||||
import * as ERC20Token from '../../generated-artifacts/ERC20Token.json';
 | 
			
		||||
import * as ERC721Proxy from '../../generated-artifacts/ERC721Proxy.json';
 | 
			
		||||
import * as ERC721Token from '../../generated-artifacts/ERC721Token.json';
 | 
			
		||||
import * as Exchange from '../../generated-artifacts/Exchange.json';
 | 
			
		||||
import * as ExchangeWrapper from '../../generated-artifacts/ExchangeWrapper.json';
 | 
			
		||||
import * as Forwarder from '../../generated-artifacts/Forwarder.json';
 | 
			
		||||
import * as InvalidERC721Receiver from '../../generated-artifacts/InvalidERC721Receiver.json';
 | 
			
		||||
import * as MixinAuthorizable from '../../generated-artifacts/MixinAuthorizable.json';
 | 
			
		||||
import * as MultiAssetProxy from '../../generated-artifacts/MultiAssetProxy.json';
 | 
			
		||||
import * as OrderValidator from '../../generated-artifacts/OrderValidator.json';
 | 
			
		||||
import * as ReentrantERC20Token from '../../generated-artifacts/ReentrantERC20Token.json';
 | 
			
		||||
import * as TestAssetProxyDispatcher from '../../generated-artifacts/TestAssetProxyDispatcher.json';
 | 
			
		||||
import * as TestAssetProxyOwner from '../../generated-artifacts/TestAssetProxyOwner.json';
 | 
			
		||||
import * as TestExchangeInternals from '../../generated-artifacts/TestExchangeInternals.json';
 | 
			
		||||
@@ -26,40 +17,25 @@ import * as TestSignatureValidator from '../../generated-artifacts/TestSignature
 | 
			
		||||
import * as TestStaticCallReceiver from '../../generated-artifacts/TestStaticCallReceiver.json';
 | 
			
		||||
import * as Validator from '../../generated-artifacts/Validator.json';
 | 
			
		||||
import * as Wallet from '../../generated-artifacts/Wallet.json';
 | 
			
		||||
import * as WETH9 from '../../generated-artifacts/WETH9.json';
 | 
			
		||||
import * as Whitelist from '../../generated-artifacts/Whitelist.json';
 | 
			
		||||
import * as ZRXToken from '../../generated-artifacts/ZRXToken.json';
 | 
			
		||||
 | 
			
		||||
export const artifacts = {
 | 
			
		||||
    AssetProxyOwner: AssetProxyOwner as ContractArtifact,
 | 
			
		||||
    DummyERC20Token: DummyERC20Token as ContractArtifact,
 | 
			
		||||
    DummyERC721Receiver: DummyERC721Receiver as ContractArtifact,
 | 
			
		||||
    DummyERC721Token: DummyERC721Token as ContractArtifact,
 | 
			
		||||
    DummyMultipleReturnERC20Token: DummyMultipleReturnERC20Token as ContractArtifact,
 | 
			
		||||
    DummyNoReturnERC20Token: DummyNoReturnERC20Token as ContractArtifact,
 | 
			
		||||
    DutchAuction: DutchAuction as ContractArtifact,
 | 
			
		||||
    ERC20Proxy: ERC20Proxy as ContractArtifact,
 | 
			
		||||
    ERC20Token: ERC20Token as ContractArtifact,
 | 
			
		||||
    ERC721Proxy: ERC721Proxy as ContractArtifact,
 | 
			
		||||
    ERC721Token: ERC721Token as ContractArtifact,
 | 
			
		||||
    Exchange: Exchange as ContractArtifact,
 | 
			
		||||
    ExchangeWrapper: ExchangeWrapper as ContractArtifact,
 | 
			
		||||
    Forwarder: Forwarder as ContractArtifact,
 | 
			
		||||
    InvalidERC721Receiver: InvalidERC721Receiver as ContractArtifact,
 | 
			
		||||
    MixinAuthorizable: MixinAuthorizable as ContractArtifact,
 | 
			
		||||
    MultiAssetProxy: MultiAssetProxy as ContractArtifact,
 | 
			
		||||
    OrderValidator: OrderValidator as ContractArtifact,
 | 
			
		||||
    ReentrantERC20Token: ReentrantERC20Token as ContractArtifact,
 | 
			
		||||
    TestAssetProxyDispatcher: TestAssetProxyDispatcher as ContractArtifact,
 | 
			
		||||
    TestAssetProxyOwner: TestAssetProxyOwner as ContractArtifact,
 | 
			
		||||
    TestExchangeInternals: TestExchangeInternals as ContractArtifact,
 | 
			
		||||
    TestSignatureValidator: TestSignatureValidator as ContractArtifact,
 | 
			
		||||
    TestStaticCallReceiver: TestStaticCallReceiver as ContractArtifact,
 | 
			
		||||
    Validator: Validator as ContractArtifact,
 | 
			
		||||
    WETH9: WETH9 as ContractArtifact,
 | 
			
		||||
    Wallet: Wallet as ContractArtifact,
 | 
			
		||||
    Whitelist: Whitelist as ContractArtifact,
 | 
			
		||||
    // Note(albrow): "as any" hack still required here because ZRXToken does not
 | 
			
		||||
    // conform to the v2 artifact type.
 | 
			
		||||
    ZRXToken: (ZRXToken as any) as ContractArtifact,
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								contracts/core/src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								contracts/core/src/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
export * from './artifacts';
 | 
			
		||||
export * from './wrappers';
 | 
			
		||||
@@ -1,21 +1,12 @@
 | 
			
		||||
export * from '../../generated-wrappers/asset_proxy_owner';
 | 
			
		||||
export * from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/dummy_erc721_receiver';
 | 
			
		||||
export * from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
export * from '../../generated-wrappers/dummy_multiple_return_erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/dummy_no_return_erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/dutch_auction';
 | 
			
		||||
export * from '../../generated-wrappers/erc20_proxy';
 | 
			
		||||
export * from '../../generated-wrappers/erc721_proxy';
 | 
			
		||||
export * from '../../generated-wrappers/erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/erc721_token';
 | 
			
		||||
export * from '../../generated-wrappers/exchange';
 | 
			
		||||
export * from '../../generated-wrappers/exchange_wrapper';
 | 
			
		||||
export * from '../../generated-wrappers/forwarder';
 | 
			
		||||
export * from '../../generated-wrappers/invalid_erc721_receiver';
 | 
			
		||||
export * from '../../generated-wrappers/mixin_authorizable';
 | 
			
		||||
export * from '../../generated-wrappers/order_validator';
 | 
			
		||||
export * from '../../generated-wrappers/reentrant_erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/test_asset_proxy_dispatcher';
 | 
			
		||||
export * from '../../generated-wrappers/test_asset_proxy_owner';
 | 
			
		||||
export * from '../../generated-wrappers/test_exchange_internals';
 | 
			
		||||
@@ -23,6 +14,4 @@ export * from '../../generated-wrappers/test_signature_validator';
 | 
			
		||||
export * from '../../generated-wrappers/test_static_call_receiver';
 | 
			
		||||
export * from '../../generated-wrappers/validator';
 | 
			
		||||
export * from '../../generated-wrappers/wallet';
 | 
			
		||||
export * from '../../generated-wrappers/weth9';
 | 
			
		||||
export * from '../../generated-wrappers/whitelist';
 | 
			
		||||
export * from '../../generated-wrappers/zrx_token';
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,14 @@ import {
 | 
			
		||||
    txDefaults,
 | 
			
		||||
    web3Wrapper,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts as tokensArtifacts,
 | 
			
		||||
    DummyERC20TokenContract,
 | 
			
		||||
    DummyERC721ReceiverContract,
 | 
			
		||||
    DummyERC721TokenContract,
 | 
			
		||||
    DummyMultipleReturnERC20TokenContract,
 | 
			
		||||
    DummyNoReturnERC20TokenContract,
 | 
			
		||||
} from '@0x/contracts-tokens';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { assetDataUtils } from '@0x/order-utils';
 | 
			
		||||
import { RevertReason } from '@0x/types';
 | 
			
		||||
@@ -16,11 +24,6 @@ import { BigNumber } from '@0x/utils';
 | 
			
		||||
import * as chai from 'chai';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
import { DummyERC721ReceiverContract } from '../../generated-wrappers/dummy_erc721_receiver';
 | 
			
		||||
import { DummyERC721TokenContract } from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
import { DummyMultipleReturnERC20TokenContract } from '../../generated-wrappers/dummy_multiple_return_erc20_token';
 | 
			
		||||
import { DummyNoReturnERC20TokenContract } from '../../generated-wrappers/dummy_no_return_erc20_token';
 | 
			
		||||
import { ERC20ProxyContract } from '../../generated-wrappers/erc20_proxy';
 | 
			
		||||
import { ERC721ProxyContract } from '../../generated-wrappers/erc721_proxy';
 | 
			
		||||
import { MultiAssetProxyContract } from '../../generated-wrappers/multi_asset_proxy';
 | 
			
		||||
@@ -143,7 +146,7 @@ describe('Asset Transfer Proxies', () => {
 | 
			
		||||
            constants.DUMMY_TOKEN_DECIMALS,
 | 
			
		||||
        );
 | 
			
		||||
        noReturnErc20Token = await DummyNoReturnERC20TokenContract.deployFrom0xArtifactAsync(
 | 
			
		||||
            artifacts.DummyNoReturnERC20Token,
 | 
			
		||||
            tokensArtifacts.DummyNoReturnERC20Token,
 | 
			
		||||
            provider,
 | 
			
		||||
            txDefaults,
 | 
			
		||||
            constants.DUMMY_TOKEN_NAME,
 | 
			
		||||
@@ -152,7 +155,7 @@ describe('Asset Transfer Proxies', () => {
 | 
			
		||||
            constants.DUMMY_TOKEN_TOTAL_SUPPLY,
 | 
			
		||||
        );
 | 
			
		||||
        multipleReturnErc20Token = await DummyMultipleReturnERC20TokenContract.deployFrom0xArtifactAsync(
 | 
			
		||||
            artifacts.DummyMultipleReturnERC20Token,
 | 
			
		||||
            tokensArtifacts.DummyMultipleReturnERC20Token,
 | 
			
		||||
            provider,
 | 
			
		||||
            txDefaults,
 | 
			
		||||
            constants.DUMMY_TOKEN_NAME,
 | 
			
		||||
@@ -193,7 +196,7 @@ describe('Asset Transfer Proxies', () => {
 | 
			
		||||
        // Deploy and configure ERC721 tokens and receiver
 | 
			
		||||
        [erc721TokenA, erc721TokenB] = await erc721Wrapper.deployDummyTokensAsync();
 | 
			
		||||
        erc721Receiver = await DummyERC721ReceiverContract.deployFrom0xArtifactAsync(
 | 
			
		||||
            artifacts.DummyERC721Receiver,
 | 
			
		||||
            tokensArtifacts.DummyERC721Receiver,
 | 
			
		||||
            provider,
 | 
			
		||||
            txDefaults,
 | 
			
		||||
        );
 | 
			
		||||
@@ -557,7 +560,7 @@ describe('Asset Transfer Proxies', () => {
 | 
			
		||||
                    erc721Receiver.address,
 | 
			
		||||
                    amount,
 | 
			
		||||
                );
 | 
			
		||||
                const logDecoder = new LogDecoder(web3Wrapper, artifacts);
 | 
			
		||||
                const logDecoder = new LogDecoder(web3Wrapper, { ...artifacts, ...tokensArtifacts });
 | 
			
		||||
                const tx = await logDecoder.getTxWithDecodedLogsAsync(
 | 
			
		||||
                    await web3Wrapper.sendTransactionAsync({
 | 
			
		||||
                        to: erc721Proxy.address,
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,14 @@ import {
 | 
			
		||||
    txDefaults,
 | 
			
		||||
    web3Wrapper,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts as tokensArtifacts,
 | 
			
		||||
    DummyERC20TokenContract,
 | 
			
		||||
    DummyERC20TokenTransferEventArgs,
 | 
			
		||||
    DummyERC721TokenContract,
 | 
			
		||||
    DummyNoReturnERC20TokenContract,
 | 
			
		||||
    ReentrantERC20TokenContract,
 | 
			
		||||
} from '@0x/contracts-tokens';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { assetDataUtils, orderHashUtils } from '@0x/order-utils';
 | 
			
		||||
import { RevertReason, SignatureType, SignedOrder } from '@0x/types';
 | 
			
		||||
@@ -22,14 +30,10 @@ import { LogWithDecodedArgs } from 'ethereum-types';
 | 
			
		||||
import ethUtil = require('ethereumjs-util');
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { DummyERC20TokenContract, DummyERC20TokenTransferEventArgs } from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
import { DummyERC721TokenContract } from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
import { DummyNoReturnERC20TokenContract } from '../../generated-wrappers/dummy_no_return_erc20_token';
 | 
			
		||||
import { ERC20ProxyContract } from '../../generated-wrappers/erc20_proxy';
 | 
			
		||||
import { ERC721ProxyContract } from '../../generated-wrappers/erc721_proxy';
 | 
			
		||||
import { ExchangeCancelEventArgs, ExchangeContract } from '../../generated-wrappers/exchange';
 | 
			
		||||
import { MultiAssetProxyContract } from '../../generated-wrappers/multi_asset_proxy';
 | 
			
		||||
import { ReentrantERC20TokenContract } from '../../generated-wrappers/reentrant_erc20_token';
 | 
			
		||||
import { TestStaticCallReceiverContract } from '../../generated-wrappers/test_static_call_receiver';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
import { ERC20Wrapper } from '../utils/erc20_wrapper';
 | 
			
		||||
@@ -116,7 +120,7 @@ describe('Exchange core', () => {
 | 
			
		||||
            txDefaults,
 | 
			
		||||
        );
 | 
			
		||||
        reentrantErc20Token = await ReentrantERC20TokenContract.deployFrom0xArtifactAsync(
 | 
			
		||||
            artifacts.ReentrantERC20Token,
 | 
			
		||||
            tokensArtifacts.ReentrantERC20Token,
 | 
			
		||||
            provider,
 | 
			
		||||
            txDefaults,
 | 
			
		||||
            exchange.address,
 | 
			
		||||
@@ -341,7 +345,7 @@ describe('Exchange core', () => {
 | 
			
		||||
    describe('Testing exchange of ERC20 tokens with no return values', () => {
 | 
			
		||||
        before(async () => {
 | 
			
		||||
            noReturnErc20Token = await DummyNoReturnERC20TokenContract.deployFrom0xArtifactAsync(
 | 
			
		||||
                artifacts.DummyNoReturnERC20Token,
 | 
			
		||||
                tokensArtifacts.DummyNoReturnERC20Token,
 | 
			
		||||
                provider,
 | 
			
		||||
                txDefaults,
 | 
			
		||||
                constants.DUMMY_TOKEN_NAME,
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ import {
 | 
			
		||||
    txDefaults,
 | 
			
		||||
    web3Wrapper,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import { DummyERC20TokenContract } from '@0x/contracts-tokens';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { assetDataUtils } from '@0x/order-utils';
 | 
			
		||||
import { AssetProxyId, RevertReason } from '@0x/types';
 | 
			
		||||
@@ -15,7 +16,6 @@ import * as chai from 'chai';
 | 
			
		||||
import { LogWithDecodedArgs } from 'ethereum-types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
import { ERC20ProxyContract } from '../../generated-wrappers/erc20_proxy';
 | 
			
		||||
import { ERC721ProxyContract } from '../../generated-wrappers/erc721_proxy';
 | 
			
		||||
import {
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,12 @@ import {
 | 
			
		||||
    txDefaults,
 | 
			
		||||
    web3Wrapper,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts as tokensArtifacts,
 | 
			
		||||
    DummyERC20TokenContract,
 | 
			
		||||
    DummyERC721TokenContract,
 | 
			
		||||
    ReentrantERC20TokenContract,
 | 
			
		||||
} from '@0x/contracts-tokens';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { assetDataUtils } from '@0x/order-utils';
 | 
			
		||||
import { RevertReason } from '@0x/types';
 | 
			
		||||
@@ -17,12 +23,9 @@ import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import * as chai from 'chai';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
import { DummyERC721TokenContract } from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
import { ERC20ProxyContract } from '../../generated-wrappers/erc20_proxy';
 | 
			
		||||
import { ERC721ProxyContract } from '../../generated-wrappers/erc721_proxy';
 | 
			
		||||
import { ExchangeContract } from '../../generated-wrappers/exchange';
 | 
			
		||||
import { ReentrantERC20TokenContract } from '../../generated-wrappers/reentrant_erc20_token';
 | 
			
		||||
import { TestExchangeInternalsContract } from '../../generated-wrappers/test_exchange_internals';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
import { ERC20Wrapper } from '../utils/erc20_wrapper';
 | 
			
		||||
@@ -139,7 +142,7 @@ describe('matchOrders', () => {
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        reentrantErc20Token = await ReentrantERC20TokenContract.deployFrom0xArtifactAsync(
 | 
			
		||||
            artifacts.ReentrantERC20Token,
 | 
			
		||||
            tokensArtifacts.ReentrantERC20Token,
 | 
			
		||||
            provider,
 | 
			
		||||
            txDefaults,
 | 
			
		||||
            exchange.address,
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ import {
 | 
			
		||||
    txDefaults,
 | 
			
		||||
    web3Wrapper,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import { artifacts as tokensArtifacts } from '@0x/contracts-tokens';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { assetDataUtils, orderHashUtils, signatureUtils } from '@0x/order-utils';
 | 
			
		||||
import { RevertReason, SignatureType, SignedOrder } from '@0x/types';
 | 
			
		||||
@@ -17,13 +18,13 @@ import { LogWithDecodedArgs } from 'ethereum-types';
 | 
			
		||||
import ethUtil = require('ethereumjs-util');
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
    artifacts,
 | 
			
		||||
    TestSignatureValidatorContract,
 | 
			
		||||
    TestSignatureValidatorSignatureValidatorApprovalEventArgs,
 | 
			
		||||
} from '../../generated-wrappers/test_signature_validator';
 | 
			
		||||
import { TestStaticCallReceiverContract } from '../../generated-wrappers/test_static_call_receiver';
 | 
			
		||||
import { ValidatorContract } from '../../generated-wrappers/validator';
 | 
			
		||||
import { WalletContract } from '../../generated-wrappers/wallet';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
    TestStaticCallReceiverContract,
 | 
			
		||||
    ValidatorContract,
 | 
			
		||||
    WalletContract,
 | 
			
		||||
} from '../../src';
 | 
			
		||||
 | 
			
		||||
chaiSetup.configure();
 | 
			
		||||
const expect = chai.expect;
 | 
			
		||||
@@ -77,7 +78,7 @@ describe('MixinSignatureValidator', () => {
 | 
			
		||||
            provider,
 | 
			
		||||
            txDefaults,
 | 
			
		||||
        );
 | 
			
		||||
        signatureValidatorLogDecoder = new LogDecoder(web3Wrapper, artifacts);
 | 
			
		||||
        signatureValidatorLogDecoder = new LogDecoder(web3Wrapper, { ...artifacts, ...tokensArtifacts });
 | 
			
		||||
        await web3Wrapper.awaitTransactionSuccessAsync(
 | 
			
		||||
            await signatureValidator.setSignatureValidatorApproval.sendTransactionAsync(testValidator.address, true, {
 | 
			
		||||
                from: signerAddress,
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ import {
 | 
			
		||||
    txDefaults,
 | 
			
		||||
    web3Wrapper,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import { DummyERC20TokenContract } from '@0x/contracts-tokens';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { assetDataUtils, generatePseudoRandomSalt } from '@0x/order-utils';
 | 
			
		||||
import { OrderWithoutExchangeAddress, RevertReason, SignedOrder } from '@0x/types';
 | 
			
		||||
@@ -18,7 +19,6 @@ import { BigNumber } from '@0x/utils';
 | 
			
		||||
import * as chai from 'chai';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
import { ERC20ProxyContract } from '../../generated-wrappers/erc20_proxy';
 | 
			
		||||
import { ExchangeContract } from '../../generated-wrappers/exchange';
 | 
			
		||||
import { ExchangeWrapperContract } from '../../generated-wrappers/exchange_wrapper';
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,12 @@ import {
 | 
			
		||||
    txDefaults,
 | 
			
		||||
    web3Wrapper,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts as tokensArtifacts,
 | 
			
		||||
    DummyERC20TokenContract,
 | 
			
		||||
    DummyERC721TokenContract,
 | 
			
		||||
    ReentrantERC20TokenContract,
 | 
			
		||||
} from '@0x/contracts-tokens';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { assetDataUtils, orderHashUtils } from '@0x/order-utils';
 | 
			
		||||
import { RevertReason, SignedOrder } from '@0x/types';
 | 
			
		||||
@@ -19,12 +25,9 @@ import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import * as chai from 'chai';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
import { DummyERC721TokenContract } from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
import { ERC20ProxyContract } from '../../generated-wrappers/erc20_proxy';
 | 
			
		||||
import { ERC721ProxyContract } from '../../generated-wrappers/erc721_proxy';
 | 
			
		||||
import { ExchangeContract } from '../../generated-wrappers/exchange';
 | 
			
		||||
import { ReentrantERC20TokenContract } from '../../generated-wrappers/reentrant_erc20_token';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
import { ERC20Wrapper } from '../utils/erc20_wrapper';
 | 
			
		||||
import { ERC721Wrapper } from '../utils/erc721_wrapper';
 | 
			
		||||
@@ -113,7 +116,7 @@ describe('Exchange wrappers', () => {
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        reentrantErc20Token = await ReentrantERC20TokenContract.deployFrom0xArtifactAsync(
 | 
			
		||||
            artifacts.ReentrantERC20Token,
 | 
			
		||||
            tokensArtifacts.ReentrantERC20Token,
 | 
			
		||||
            provider,
 | 
			
		||||
            txDefaults,
 | 
			
		||||
            exchange.address,
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,12 @@ import {
 | 
			
		||||
    txDefaults,
 | 
			
		||||
    web3Wrapper,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts as tokensArtifacts,
 | 
			
		||||
    DummyERC20TokenContract,
 | 
			
		||||
    DummyERC721TokenContract,
 | 
			
		||||
    WETH9Contract,
 | 
			
		||||
} from '@0x/contracts-tokens';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { assetDataUtils, generatePseudoRandomSalt } from '@0x/order-utils';
 | 
			
		||||
import { RevertReason, SignedOrder } from '@0x/types';
 | 
			
		||||
@@ -20,11 +26,8 @@ import ethAbi = require('ethereumjs-abi');
 | 
			
		||||
import * as ethUtil from 'ethereumjs-util';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
import { DummyERC721TokenContract } from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
import { DutchAuctionContract } from '../../generated-wrappers/dutch_auction';
 | 
			
		||||
import { ExchangeContract } from '../../generated-wrappers/exchange';
 | 
			
		||||
import { WETH9Contract } from '../../generated-wrappers/weth9';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
import { ERC20Wrapper } from '../utils/erc20_wrapper';
 | 
			
		||||
import { ERC721Wrapper } from '../utils/erc721_wrapper';
 | 
			
		||||
@@ -98,7 +101,7 @@ describe(ContractName.DutchAuction, () => {
 | 
			
		||||
        const erc721Balances = await erc721Wrapper.getBalancesAsync();
 | 
			
		||||
        erc721MakerAssetIds = erc721Balances[makerAddress][erc721Token.address];
 | 
			
		||||
 | 
			
		||||
        wethContract = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults);
 | 
			
		||||
        wethContract = await WETH9Contract.deployFrom0xArtifactAsync(tokensArtifacts.WETH9, provider, txDefaults);
 | 
			
		||||
        erc20Wrapper.addDummyTokenContract(wethContract as any);
 | 
			
		||||
 | 
			
		||||
        const zrxAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address);
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,12 @@ import {
 | 
			
		||||
    txDefaults,
 | 
			
		||||
    web3Wrapper,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import {
 | 
			
		||||
    artifacts as tokenArtifacts,
 | 
			
		||||
    DummyERC20TokenContract,
 | 
			
		||||
    DummyERC721TokenContract,
 | 
			
		||||
    WETH9Contract,
 | 
			
		||||
} from '@0x/contracts-tokens';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { assetDataUtils } from '@0x/order-utils';
 | 
			
		||||
import { RevertReason, SignedOrder } from '@0x/types';
 | 
			
		||||
@@ -19,11 +25,8 @@ import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import * as chai from 'chai';
 | 
			
		||||
import { TransactionReceiptWithDecodedLogs } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
import { DummyERC721TokenContract } from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
import { ExchangeContract } from '../../generated-wrappers/exchange';
 | 
			
		||||
import { ForwarderContract } from '../../generated-wrappers/forwarder';
 | 
			
		||||
import { WETH9Contract } from '../../generated-wrappers/weth9';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
import { ERC20Wrapper } from '../utils/erc20_wrapper';
 | 
			
		||||
import { ERC721Wrapper } from '../utils/erc721_wrapper';
 | 
			
		||||
@@ -94,7 +97,7 @@ describe(ContractName.Forwarder, () => {
 | 
			
		||||
        const erc721Balances = await erc721Wrapper.getBalancesAsync();
 | 
			
		||||
        erc721MakerAssetIds = erc721Balances[makerAddress][erc721Token.address];
 | 
			
		||||
 | 
			
		||||
        wethContract = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults);
 | 
			
		||||
        wethContract = await WETH9Contract.deployFrom0xArtifactAsync(tokenArtifacts.WETH9, provider, txDefaults);
 | 
			
		||||
        weth = new DummyERC20TokenContract(wethContract.abi, wethContract.address, provider);
 | 
			
		||||
        erc20Wrapper.addDummyTokenContract(weth);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ import {
 | 
			
		||||
    txDefaults,
 | 
			
		||||
    web3Wrapper,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import { DummyERC20TokenContract, DummyERC721TokenContract } from '@0x/contracts-tokens';
 | 
			
		||||
import { BlockchainLifecycle } from '@0x/dev-utils';
 | 
			
		||||
import { assetDataUtils, orderHashUtils } from '@0x/order-utils';
 | 
			
		||||
import { SignedOrder } from '@0x/types';
 | 
			
		||||
@@ -14,8 +15,6 @@ import { BigNumber } from '@0x/utils';
 | 
			
		||||
import * as chai from 'chai';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
import { DummyERC721TokenContract } from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
import { ERC20ProxyContract } from '../../generated-wrappers/erc20_proxy';
 | 
			
		||||
import { ERC721ProxyContract } from '../../generated-wrappers/erc721_proxy';
 | 
			
		||||
import { ExchangeContract } from '../../generated-wrappers/exchange';
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
import { LogDecoder } from '@0x/contracts-test-utils';
 | 
			
		||||
import { artifacts as tokensArtifacts } from '@0x/contracts-tokens';
 | 
			
		||||
import { BigNumber } from '@0x/utils';
 | 
			
		||||
import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import { Provider, TransactionReceiptWithDecodedLogs } from 'ethereum-types';
 | 
			
		||||
@@ -14,7 +15,7 @@ export class AssetProxyOwnerWrapper {
 | 
			
		||||
    constructor(assetproxyOwnerContract: AssetProxyOwnerContract, provider: Provider) {
 | 
			
		||||
        this._assetProxyOwner = assetproxyOwnerContract;
 | 
			
		||||
        this._web3Wrapper = new Web3Wrapper(provider);
 | 
			
		||||
        this._logDecoder = new LogDecoder(this._web3Wrapper, artifacts);
 | 
			
		||||
        this._logDecoder = new LogDecoder(this._web3Wrapper, { ...artifacts, ...tokensArtifacts });
 | 
			
		||||
    }
 | 
			
		||||
    public async submitTransactionAsync(
 | 
			
		||||
        destination: string,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
import { constants, ERC20BalancesByOwner, txDefaults } from '@0x/contracts-test-utils';
 | 
			
		||||
import { artifacts as tokensArtifacts, DummyERC20TokenContract } from '@0x/contracts-tokens';
 | 
			
		||||
import { assetDataUtils } from '@0x/order-utils';
 | 
			
		||||
import { BigNumber } from '@0x/utils';
 | 
			
		||||
import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import { Provider } from 'ethereum-types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
import { ERC20ProxyContract } from '../../generated-wrappers/erc20_proxy';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
 | 
			
		||||
@@ -38,7 +38,7 @@ export class ERC20Wrapper {
 | 
			
		||||
        for (let i = 0; i < numberToDeploy; i++) {
 | 
			
		||||
            this._dummyTokenContracts.push(
 | 
			
		||||
                await DummyERC20TokenContract.deployFrom0xArtifactAsync(
 | 
			
		||||
                    artifacts.DummyERC20Token,
 | 
			
		||||
                    tokensArtifacts.DummyERC20Token,
 | 
			
		||||
                    this._provider,
 | 
			
		||||
                    txDefaults,
 | 
			
		||||
                    constants.DUMMY_TOKEN_NAME,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
import { constants, ERC721TokenIdsByOwner, txDefaults } from '@0x/contracts-test-utils';
 | 
			
		||||
import { artifacts as tokensArtifacts, DummyERC721TokenContract } from '@0x/contracts-tokens';
 | 
			
		||||
import { generatePseudoRandomSalt } from '@0x/order-utils';
 | 
			
		||||
import { BigNumber } from '@0x/utils';
 | 
			
		||||
import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import { Provider } from 'ethereum-types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { DummyERC721TokenContract } from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
import { ERC721ProxyContract } from '../../generated-wrappers/erc721_proxy';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
 | 
			
		||||
@@ -30,7 +30,7 @@ export class ERC721Wrapper {
 | 
			
		||||
        for (const i of _.times(constants.NUM_DUMMY_ERC721_TO_DEPLOY)) {
 | 
			
		||||
            this._dummyTokenContracts.push(
 | 
			
		||||
                await DummyERC721TokenContract.deployFrom0xArtifactAsync(
 | 
			
		||||
                    artifacts.DummyERC721Token,
 | 
			
		||||
                    tokensArtifacts.DummyERC721Token,
 | 
			
		||||
                    this._provider,
 | 
			
		||||
                    txDefaults,
 | 
			
		||||
                    constants.DUMMY_TOKEN_NAME,
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ import {
 | 
			
		||||
    orderUtils,
 | 
			
		||||
    SignedTransaction,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import { artifacts as tokensArtifacts } from '@0x/contracts-tokens';
 | 
			
		||||
import { SignedOrder } from '@0x/types';
 | 
			
		||||
import { BigNumber } from '@0x/utils';
 | 
			
		||||
import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
@@ -21,7 +22,7 @@ export class ExchangeWrapper {
 | 
			
		||||
    constructor(exchangeContract: ExchangeContract, provider: Provider) {
 | 
			
		||||
        this._exchange = exchangeContract;
 | 
			
		||||
        this._web3Wrapper = new Web3Wrapper(provider);
 | 
			
		||||
        this._logDecoder = new LogDecoder(this._web3Wrapper, artifacts);
 | 
			
		||||
        this._logDecoder = new LogDecoder(this._web3Wrapper, { ...artifacts, ...tokensArtifacts });
 | 
			
		||||
    }
 | 
			
		||||
    public async fillOrderAsync(
 | 
			
		||||
        signedOrder: SignedOrder,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
import { constants, formatters, LogDecoder, MarketSellOrders } from '@0x/contracts-test-utils';
 | 
			
		||||
import { artifacts as tokensArtifacts } from '@0x/contracts-tokens';
 | 
			
		||||
import { SignedOrder } from '@0x/types';
 | 
			
		||||
import { BigNumber } from '@0x/utils';
 | 
			
		||||
import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
@@ -58,7 +59,7 @@ export class ForwarderWrapper {
 | 
			
		||||
    constructor(contractInstance: ForwarderContract, provider: Provider) {
 | 
			
		||||
        this._forwarderContract = contractInstance;
 | 
			
		||||
        this._web3Wrapper = new Web3Wrapper(provider);
 | 
			
		||||
        this._logDecoder = new LogDecoder(this._web3Wrapper, artifacts);
 | 
			
		||||
        this._logDecoder = new LogDecoder(this._web3Wrapper, { ...artifacts, ...tokensArtifacts });
 | 
			
		||||
    }
 | 
			
		||||
    public async marketSellOrdersWithEthAsync(
 | 
			
		||||
        orders: SignedOrder[],
 | 
			
		||||
 
 | 
			
		||||
@@ -8,12 +8,11 @@ import {
 | 
			
		||||
    OrderScenario,
 | 
			
		||||
    TakerScenario,
 | 
			
		||||
} from '@0x/contracts-test-utils';
 | 
			
		||||
import { DummyERC721TokenContract } from '@0x/contracts-tokens';
 | 
			
		||||
import { assetDataUtils, generatePseudoRandomSalt } from '@0x/order-utils';
 | 
			
		||||
import { Order } from '@0x/types';
 | 
			
		||||
import { BigNumber, errorUtils } from '@0x/utils';
 | 
			
		||||
 | 
			
		||||
import { DummyERC721TokenContract } from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
 | 
			
		||||
const TEN_UNITS_EIGHTEEN_DECIMALS = new BigNumber(10_000_000_000_000_000_000);
 | 
			
		||||
const FIVE_UNITS_EIGHTEEN_DECIMALS = new BigNumber(5_000_000_000_000_000_000);
 | 
			
		||||
const POINT_ONE_UNITS_EIGHTEEN_DECIMALS = new BigNumber(100_000_000_000_000_000);
 | 
			
		||||
 
 | 
			
		||||
@@ -8,34 +8,23 @@
 | 
			
		||||
    "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"],
 | 
			
		||||
    "files": [
 | 
			
		||||
        "./generated-artifacts/AssetProxyOwner.json",
 | 
			
		||||
        "./generated-artifacts/DummyERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/DummyERC721Receiver.json",
 | 
			
		||||
        "./generated-artifacts/DummyERC721Token.json",
 | 
			
		||||
        "./generated-artifacts/DummyMultipleReturnERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/DummyNoReturnERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/DutchAuction.json",
 | 
			
		||||
        "./generated-artifacts/ERC20Proxy.json",
 | 
			
		||||
        "./generated-artifacts/ERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/ERC721Proxy.json",
 | 
			
		||||
        "./generated-artifacts/ERC721Token.json",
 | 
			
		||||
        "./generated-artifacts/Exchange.json",
 | 
			
		||||
        "./generated-artifacts/ExchangeWrapper.json",
 | 
			
		||||
        "./generated-artifacts/Forwarder.json",
 | 
			
		||||
        "./generated-artifacts/MixinAuthorizable.json",
 | 
			
		||||
        "./generated-artifacts/MultiAssetProxy.json",
 | 
			
		||||
        "./generated-artifacts/OrderValidator.json",
 | 
			
		||||
        "./generated-artifacts/ReentrantERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/TestAssetProxyDispatcher.json",
 | 
			
		||||
        "./generated-artifacts/TestAssetProxyOwner.json",
 | 
			
		||||
        "./generated-artifacts/TestExchangeInternals.json",
 | 
			
		||||
        "./generated-artifacts/TestSignatureValidator.json",
 | 
			
		||||
        "./generated-artifacts/TestStaticCallReceiver.json",
 | 
			
		||||
        "./generated-artifacts/Validator.json",
 | 
			
		||||
        "./generated-artifacts/WETH9.json",
 | 
			
		||||
        "./generated-artifacts/Wallet.json",
 | 
			
		||||
        "./generated-artifacts/Whitelist.json",
 | 
			
		||||
        "./generated-artifacts/InvalidERC721Receiver.json",
 | 
			
		||||
        "./generated-artifacts/ZRXToken.json"
 | 
			
		||||
        "./generated-artifacts/Whitelist.json"
 | 
			
		||||
    ],
 | 
			
		||||
    "exclude": ["./deploy/solc/solc_bin"]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										20
									
								
								contracts/tokens/.solhint.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								contracts/tokens/.solhint.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
{
 | 
			
		||||
    "extends": "default",
 | 
			
		||||
    "rules": {
 | 
			
		||||
        "avoid-low-level-calls": false,
 | 
			
		||||
        "avoid-tx-origin": "warn",
 | 
			
		||||
        "bracket-align": false,
 | 
			
		||||
        "code-complexity": false,
 | 
			
		||||
        "const-name-snakecase": "error",
 | 
			
		||||
        "expression-indent": "error",
 | 
			
		||||
        "function-max-lines": false,
 | 
			
		||||
        "func-order": "error",
 | 
			
		||||
        "indent": ["error", 4],
 | 
			
		||||
        "max-line-length": ["warn", 160],
 | 
			
		||||
        "no-inline-assembly": false,
 | 
			
		||||
        "quotes": ["error", "double"],
 | 
			
		||||
        "separate-by-one-line-in-contract": "error",
 | 
			
		||||
        "space-after-comma": "error",
 | 
			
		||||
        "statement-indent": "error"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								contracts/tokens/CHANGELOG.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								contracts/tokens/CHANGELOG.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
[
 | 
			
		||||
    {
 | 
			
		||||
        "name": "ZRXToken",
 | 
			
		||||
        "version": "1.0.0",
 | 
			
		||||
        "changes": [
 | 
			
		||||
            {
 | 
			
		||||
                "note": "protocol v1 deploy",
 | 
			
		||||
                "networks": {
 | 
			
		||||
                    "1": "0xe41d2489571d322189246dafa5ebde1f4699f498",
 | 
			
		||||
                    "3": "0xff67881f8d12f372d91baae9752eb3631ff0ed00",
 | 
			
		||||
                    "42": "0x2002d3812f58e35f0ea1ffbf80a75a38c32175fa"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        ]
 | 
			
		||||
    }
 | 
			
		||||
]
 | 
			
		||||
							
								
								
									
										74
									
								
								contracts/tokens/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								contracts/tokens/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,74 @@
 | 
			
		||||
## Token contracts
 | 
			
		||||
 | 
			
		||||
Token smart contracts that are used in the 0x protocol. Addresses of the deployed contracts can be found in the 0x [wiki](https://0xproject.com/wiki#Deployed-Addresses) or the [CHANGELOG](./CHANGELOG.json) of this package.
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
Token contracts that make up and interact with version 2.0.0 of the protocol can be found in the [contracts](./contracts) directory. The contents of this directory are broken down into the following subdirectories:
 | 
			
		||||
 | 
			
		||||
*   [tokens](./contracts/tokens)
 | 
			
		||||
    *   This directory contains implementations of different tokens and token standards, including [wETH](https://weth.io/), ZRX, [ERC20](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md), and [ERC721](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md).
 | 
			
		||||
*   [test](./contracts/test)
 | 
			
		||||
    *   This directory contains mocks and other contracts that are used solely for testing contracts within the other directories.
 | 
			
		||||
 | 
			
		||||
## Bug bounty
 | 
			
		||||
 | 
			
		||||
A bug bounty for the 2.0.0 contracts is ongoing! Instructions can be found [here](https://0xproject.com/wiki#Bug-Bounty).
 | 
			
		||||
 | 
			
		||||
## Contributing
 | 
			
		||||
 | 
			
		||||
We strongly recommend that the community help us make improvements and determine the future direction of the protocol. To report bugs within this package, please create an issue in this repository.
 | 
			
		||||
 | 
			
		||||
For proposals regarding the 0x protocol's smart contract architecture, message format, or additional functionality, go to the [0x Improvement Proposals (ZEIPs)](https://github.com/0xProject/ZEIPs) repository and follow the contribution guidelines provided therein.
 | 
			
		||||
 | 
			
		||||
Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started.
 | 
			
		||||
 | 
			
		||||
### Install Dependencies
 | 
			
		||||
 | 
			
		||||
If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
yarn config set workspaces-experimental true
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Then install dependencies
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
yarn install
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Build
 | 
			
		||||
 | 
			
		||||
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
PKG=@0x/contracts-tokens yarn build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Or continuously rebuild on change:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
PKG=@0x/contracts-tokens yarn watch
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Clean
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
yarn clean
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Lint
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
yarn lint
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Run Tests
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
yarn test
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Testing options
 | 
			
		||||
 | 
			
		||||
Contracts testing options like coverage, profiling, revert traces or backing node choosing - are described [here](../TESTING.md).
 | 
			
		||||
							
								
								
									
										44
									
								
								contracts/tokens/compiler.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								contracts/tokens/compiler.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
{
 | 
			
		||||
    "artifactsDir": "./generated-artifacts",
 | 
			
		||||
    "contractsDir": "./contracts",
 | 
			
		||||
    "compilerSettings": {
 | 
			
		||||
        "optimizer": {
 | 
			
		||||
            "enabled": true,
 | 
			
		||||
            "runs": 1000000
 | 
			
		||||
        },
 | 
			
		||||
        "outputSelection": {
 | 
			
		||||
            "*": {
 | 
			
		||||
                "*": [
 | 
			
		||||
                    "abi",
 | 
			
		||||
                    "evm.bytecode.object",
 | 
			
		||||
                    "evm.bytecode.sourceMap",
 | 
			
		||||
                    "evm.deployedBytecode.object",
 | 
			
		||||
                    "evm.deployedBytecode.sourceMap"
 | 
			
		||||
                ]
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    "contracts": [
 | 
			
		||||
        "DummyERC20Token",
 | 
			
		||||
        "DummyMultipleReturnERC20Token",
 | 
			
		||||
        "DummyNoReturnERC20Token",
 | 
			
		||||
        "DummyERC721Receiver",
 | 
			
		||||
        "InvalidERC721Receiver",
 | 
			
		||||
        "DummyERC721Token",
 | 
			
		||||
        "ReentrantERC20Token",
 | 
			
		||||
        "ERC20Token",
 | 
			
		||||
        "IERC20Token",
 | 
			
		||||
        "MintableERC20Token",
 | 
			
		||||
        "UnlimitedAllowanceERC20Token",
 | 
			
		||||
        "ERC721Token",
 | 
			
		||||
        "IERC721Receiver",
 | 
			
		||||
        "IERC721Token",
 | 
			
		||||
        "MintableERC721Token",
 | 
			
		||||
        "IEtherToken",
 | 
			
		||||
        "WETH9",
 | 
			
		||||
        "ERC20Token_v1",
 | 
			
		||||
        "Token_v1",
 | 
			
		||||
        "UnlimitedAllowanceToken_v1",
 | 
			
		||||
        "ZRXToken"
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										94
									
								
								contracts/tokens/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								contracts/tokens/package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,94 @@
 | 
			
		||||
{
 | 
			
		||||
    "private": true,
 | 
			
		||||
    "name": "@0x/contracts-tokens",
 | 
			
		||||
    "version": "1.0.0",
 | 
			
		||||
    "engines": {
 | 
			
		||||
        "node": ">=6.12"
 | 
			
		||||
    },
 | 
			
		||||
    "description": "Token contracts used by 0x protocol",
 | 
			
		||||
    "main": "lib/src/index.js",
 | 
			
		||||
    "directories": {
 | 
			
		||||
        "test": "test"
 | 
			
		||||
    },
 | 
			
		||||
    "scripts": {
 | 
			
		||||
        "build": "yarn pre_build && tsc -b",
 | 
			
		||||
        "build:ci": "yarn build",
 | 
			
		||||
        "pre_build": "run-s compile generate_contract_wrappers",
 | 
			
		||||
        "test": "yarn run_mocha",
 | 
			
		||||
        "rebuild_and_test": "run-s build test",
 | 
			
		||||
        "test:coverage": "SOLIDITY_COVERAGE=true run-s build run_mocha coverage:report:text coverage:report:lcov",
 | 
			
		||||
        "test:profiler": "SOLIDITY_PROFILER=true run-s build run_mocha profiler:report:html",
 | 
			
		||||
        "test:trace": "SOLIDITY_REVERT_TRACE=true run-s build run_mocha",
 | 
			
		||||
        "run_mocha":
 | 
			
		||||
            "mocha --require source-map-support/register --require make-promises-safe 'lib/test/**/*.js' --timeout 100000 --bail --exit",
 | 
			
		||||
        "compile": "sol-compiler --contracts-dir contracts",
 | 
			
		||||
        "clean": "shx rm -rf lib generated-artifacts generated-wrappers",
 | 
			
		||||
        "generate_contract_wrappers": "abi-gen --abis  ${npm_package_config_abis} --template ../../node_modules/@0x/abi-gen-templates/contract.handlebars --partials '../../node_modules/@0x/abi-gen-templates/partials/**/*.handlebars' --output generated-wrappers --backend ethers",
 | 
			
		||||
        "lint": "tslint --format stylish --project . --exclude ./generated-wrappers/**/* --exclude ./generated-artifacts/**/* --exclude **/lib/**/* && yarn lint-contracts",
 | 
			
		||||
        "coverage:report:text": "istanbul report text",
 | 
			
		||||
        "coverage:report:html": "istanbul report html && open coverage/index.html",
 | 
			
		||||
        "profiler:report:html": "istanbul report html && open coverage/index.html",
 | 
			
		||||
        "coverage:report:lcov": "istanbul report lcov",
 | 
			
		||||
        "test:circleci": "yarn test",
 | 
			
		||||
        "lint-contracts": "solhint contracts/**/**/**/**/*.sol"
 | 
			
		||||
    },
 | 
			
		||||
    "config": {
 | 
			
		||||
        "abis": "generated-artifacts/@(DummyERC20Token|DummyMultipleReturnERC20Token|DummyNoReturnERC20Token|DummyERC721Receiver|InvalidERC721Receiver|DummyERC721Token|ReentrantERC20Token|ERC20Token|IERC20Token|MintableERC20Token|UnlimitedAllowanceERC20Token|ERC721Token|IERC721Receiver|IERC721Token|MintableERC721Token|IEtherToken|WETH9|ERC20Token_v1|Token_v1|UnlimitedAllowanceToken_v1|ZRXToken).json"
 | 
			
		||||
    },
 | 
			
		||||
    "repository": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://github.com/0xProject/0x-monorepo.git"
 | 
			
		||||
    },
 | 
			
		||||
    "license": "Apache-2.0",
 | 
			
		||||
    "bugs": {
 | 
			
		||||
        "url": "https://github.com/0xProject/0x-monorepo/issues"
 | 
			
		||||
    },
 | 
			
		||||
    "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md",
 | 
			
		||||
    "devDependencies": {
 | 
			
		||||
        "@0x/contracts-test-utils": "^1.0.0",
 | 
			
		||||
        "@0x/abi-gen": "^1.0.17",
 | 
			
		||||
        "@0x/dev-utils": "^1.0.19",
 | 
			
		||||
        "@0x/sol-compiler": "^1.1.14",
 | 
			
		||||
        "@0x/sol-cov": "^2.1.14",
 | 
			
		||||
        "@0x/subproviders": "^2.1.6",
 | 
			
		||||
        "@0x/tslint-config": "^1.0.10",
 | 
			
		||||
        "@types/bn.js": "^4.11.0",
 | 
			
		||||
        "@types/lodash": "4.14.104",
 | 
			
		||||
        "@types/node": "*",
 | 
			
		||||
        "@types/yargs": "^10.0.0",
 | 
			
		||||
        "chai": "^4.0.1",
 | 
			
		||||
        "chai-as-promised": "^7.1.0",
 | 
			
		||||
        "chai-bignumber": "^2.0.1",
 | 
			
		||||
        "dirty-chai": "^2.0.1",
 | 
			
		||||
        "make-promises-safe": "^1.1.0",
 | 
			
		||||
        "ethereumjs-abi": "0.6.5",
 | 
			
		||||
        "mocha": "^4.1.0",
 | 
			
		||||
        "npm-run-all": "^4.1.2",
 | 
			
		||||
        "shx": "^0.2.2",
 | 
			
		||||
        "solc": "^0.4.24",
 | 
			
		||||
        "solhint": "^1.2.1",
 | 
			
		||||
        "tslint": "5.11.0",
 | 
			
		||||
        "typescript": "3.0.1",
 | 
			
		||||
        "yargs": "^10.0.3"
 | 
			
		||||
    },
 | 
			
		||||
    "dependencies": {
 | 
			
		||||
        "@0x/base-contract": "^3.0.8",
 | 
			
		||||
        "@0x/order-utils": "^3.0.4",
 | 
			
		||||
        "@0x/contracts-multisig": "^1.0.0",
 | 
			
		||||
        "@0x/contracts-utils": "^1.0.0",
 | 
			
		||||
        "@0x/contracts-libs": "^1.0.0",
 | 
			
		||||
        "@0x/contracts-interfaces": "^1.0.0",
 | 
			
		||||
        "@0x/types": "^1.3.0",
 | 
			
		||||
        "@0x/typescript-typings": "^3.0.4",
 | 
			
		||||
        "@0x/utils": "^2.0.6",
 | 
			
		||||
        "@0x/web3-wrapper": "^3.1.6",
 | 
			
		||||
        "@types/js-combinatorics": "^0.5.29",
 | 
			
		||||
        "bn.js": "^4.11.8",
 | 
			
		||||
        "ethereum-types": "^1.1.2",
 | 
			
		||||
        "ethereumjs-util": "^5.1.1",
 | 
			
		||||
        "lodash": "^4.17.5"
 | 
			
		||||
    },
 | 
			
		||||
    "publishConfig": {
 | 
			
		||||
        "access": "public"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										49
									
								
								contracts/tokens/src/artifacts/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								contracts/tokens/src/artifacts/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
import { ContractArtifact } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import * as DummyERC20Token from '../../generated-artifacts/DummyERC20Token.json';
 | 
			
		||||
import * as DummyERC721Receiver from '../../generated-artifacts/DummyERC721Receiver.json';
 | 
			
		||||
import * as DummyERC721Token from '../../generated-artifacts/DummyERC721Token.json';
 | 
			
		||||
import * as DummyMultipleReturnERC20Token from '../../generated-artifacts/DummyMultipleReturnERC20Token.json';
 | 
			
		||||
import * as DummyNoReturnERC20Token from '../../generated-artifacts/DummyNoReturnERC20Token.json';
 | 
			
		||||
import * as ERC20Token from '../../generated-artifacts/ERC20Token.json';
 | 
			
		||||
import * as ERC20Token_v1 from '../../generated-artifacts/ERC20Token_v1.json';
 | 
			
		||||
import * as ERC721Token from '../../generated-artifacts/ERC721Token.json';
 | 
			
		||||
import * as IERC20Token from '../../generated-artifacts/IERC20Token.json';
 | 
			
		||||
import * as IERC721Receiver from '../../generated-artifacts/IERC721Receiver.json';
 | 
			
		||||
import * as IERC721Token from '../../generated-artifacts/IERC721Token.json';
 | 
			
		||||
import * as IEtherToken from '../../generated-artifacts/IEtherToken.json';
 | 
			
		||||
import * as InvalidERC721Receiver from '../../generated-artifacts/InvalidERC721Receiver.json';
 | 
			
		||||
import * as MintableERC20Token from '../../generated-artifacts/MintableERC20Token.json';
 | 
			
		||||
import * as MintableERC721Token from '../../generated-artifacts/MintableERC721Token.json';
 | 
			
		||||
import * as ReentrantERC20Token from '../../generated-artifacts/ReentrantERC20Token.json';
 | 
			
		||||
import * as Token_v1 from '../../generated-artifacts/Token_v1.json';
 | 
			
		||||
import * as UnlimitedAllowanceERC20Token from '../../generated-artifacts/UnlimitedAllowanceERC20Token.json';
 | 
			
		||||
import * as UnlimitedAllowanceToken_v1 from '../../generated-artifacts/UnlimitedAllowanceToken_v1.json';
 | 
			
		||||
import * as WETH9 from '../../generated-artifacts/WETH9.json';
 | 
			
		||||
import * as ZRXToken from '../../generated-artifacts/ZRXToken.json';
 | 
			
		||||
 | 
			
		||||
export const artifacts = {
 | 
			
		||||
    DummyERC20Token: DummyERC20Token as ContractArtifact,
 | 
			
		||||
    DummyMultipleReturnERC20Token: DummyMultipleReturnERC20Token as ContractArtifact,
 | 
			
		||||
    DummyNoReturnERC20Token: DummyNoReturnERC20Token as ContractArtifact,
 | 
			
		||||
    DummyERC721Receiver: DummyERC721Receiver as ContractArtifact,
 | 
			
		||||
    InvalidERC721Receiver: InvalidERC721Receiver as ContractArtifact,
 | 
			
		||||
    DummyERC721Token: DummyERC721Token as ContractArtifact,
 | 
			
		||||
    ReentrantERC20Token: ReentrantERC20Token as ContractArtifact,
 | 
			
		||||
    ERC20Token: ERC20Token as ContractArtifact,
 | 
			
		||||
    IERC20Token: IERC20Token as ContractArtifact,
 | 
			
		||||
    MintableERC20Token: MintableERC20Token as ContractArtifact,
 | 
			
		||||
    UnlimitedAllowanceERC20Token: UnlimitedAllowanceERC20Token as ContractArtifact,
 | 
			
		||||
    ERC721Token: ERC721Token as ContractArtifact,
 | 
			
		||||
    IERC721Receiver: IERC721Receiver as ContractArtifact,
 | 
			
		||||
    IERC721Token: IERC721Token as ContractArtifact,
 | 
			
		||||
    MintableERC721Token: MintableERC721Token as ContractArtifact,
 | 
			
		||||
    IEtherToken: IEtherToken as ContractArtifact,
 | 
			
		||||
    WETH9: WETH9 as ContractArtifact,
 | 
			
		||||
    ERC20Token_v1: ERC20Token_v1 as ContractArtifact,
 | 
			
		||||
    Token_v1: Token_v1 as ContractArtifact,
 | 
			
		||||
    UnlimitedAllowanceToken_v1: UnlimitedAllowanceToken_v1 as ContractArtifact,
 | 
			
		||||
    // Note(albrow): "as any" hack still required here because ZRXToken does not
 | 
			
		||||
    // conform to the v2 artifact type.
 | 
			
		||||
    ZRXToken: (ZRXToken as any) as ContractArtifact,
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										2
									
								
								contracts/tokens/src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								contracts/tokens/src/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
export * from './wrappers';
 | 
			
		||||
export * from './artifacts';
 | 
			
		||||
							
								
								
									
										21
									
								
								contracts/tokens/src/wrappers/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								contracts/tokens/src/wrappers/index.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
export * from '../../generated-wrappers/zrx_token';
 | 
			
		||||
export * from '../../generated-wrappers/weth9';
 | 
			
		||||
export * from '../../generated-wrappers/unlimitedallowancetoken_v1';
 | 
			
		||||
export * from '../../generated-wrappers/unlimited_allowance_erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/token_v1';
 | 
			
		||||
export * from '../../generated-wrappers/reentrant_erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/mintable_erc721_token';
 | 
			
		||||
export * from '../../generated-wrappers/mintable_erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/invalid_erc721_receiver';
 | 
			
		||||
export * from '../../generated-wrappers/i_ether_token';
 | 
			
		||||
export * from '../../generated-wrappers/i_erc721_token';
 | 
			
		||||
export * from '../../generated-wrappers/i_erc721_receiver';
 | 
			
		||||
export * from '../../generated-wrappers/i_erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/erc721_token';
 | 
			
		||||
export * from '../../generated-wrappers/erc20token_v1';
 | 
			
		||||
export * from '../../generated-wrappers/erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/dummy_no_return_erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/dummy_multiple_return_erc20_token';
 | 
			
		||||
export * from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
export * from '../../generated-wrappers/dummy_erc721_receiver';
 | 
			
		||||
export * from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
@@ -15,15 +15,13 @@ import * as chai from 'chai';
 | 
			
		||||
import { LogWithDecodedArgs } from 'ethereum-types';
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
    artifacts,
 | 
			
		||||
    DummyERC721ReceiverContract,
 | 
			
		||||
    DummyERC721ReceiverTokenReceivedEventArgs,
 | 
			
		||||
} from '../../generated-wrappers/dummy_erc721_receiver';
 | 
			
		||||
import {
 | 
			
		||||
    DummyERC721TokenContract,
 | 
			
		||||
    DummyERC721TokenTransferEventArgs,
 | 
			
		||||
} from '../../generated-wrappers/dummy_erc721_token';
 | 
			
		||||
import { InvalidERC721ReceiverContract } from '../../generated-wrappers/invalid_erc721_receiver';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
    InvalidERC721ReceiverContract,
 | 
			
		||||
} from '../src';
 | 
			
		||||
 | 
			
		||||
chaiSetup.configure();
 | 
			
		||||
const expect = chai.expect;
 | 
			
		||||
							
								
								
									
										17
									
								
								contracts/tokens/test/global_hooks.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								contracts/tokens/test/global_hooks.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
import { env, EnvVars } from '@0x/dev-utils';
 | 
			
		||||
 | 
			
		||||
import { coverage, profiler, provider } from '@0x/contracts-test-utils';
 | 
			
		||||
before('start web3 provider', () => {
 | 
			
		||||
    provider.start();
 | 
			
		||||
});
 | 
			
		||||
after('generate coverage report', async () => {
 | 
			
		||||
    if (env.parseBoolean(EnvVars.SolidityCoverage)) {
 | 
			
		||||
        const coverageSubprovider = coverage.getCoverageSubproviderSingleton();
 | 
			
		||||
        await coverageSubprovider.writeCoverageAsync();
 | 
			
		||||
    }
 | 
			
		||||
    if (env.parseBoolean(EnvVars.SolidityProfiler)) {
 | 
			
		||||
        const profilerSubprovider = profiler.getProfilerSubproviderSingleton();
 | 
			
		||||
        await profilerSubprovider.writeProfilerOutputAsync();
 | 
			
		||||
    }
 | 
			
		||||
    provider.stop();
 | 
			
		||||
});
 | 
			
		||||
@@ -11,8 +11,7 @@ import { RevertReason } from '@0x/types';
 | 
			
		||||
import { BigNumber } from '@0x/utils';
 | 
			
		||||
import * as chai from 'chai';
 | 
			
		||||
 | 
			
		||||
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
import { artifacts, DummyERC20TokenContract } from '../src';
 | 
			
		||||
 | 
			
		||||
chaiSetup.configure();
 | 
			
		||||
const expect = chai.expect;
 | 
			
		||||
@@ -12,8 +12,7 @@ import { BigNumber } from '@0x/utils';
 | 
			
		||||
import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import * as chai from 'chai';
 | 
			
		||||
 | 
			
		||||
import { WETH9Contract } from '../../generated-wrappers/weth9';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
import { artifacts, WETH9Contract } from '../src';
 | 
			
		||||
 | 
			
		||||
chaiSetup.configure();
 | 
			
		||||
const expect = chai.expect;
 | 
			
		||||
@@ -4,8 +4,7 @@ import { BigNumber } from '@0x/utils';
 | 
			
		||||
import { Web3Wrapper } from '@0x/web3-wrapper';
 | 
			
		||||
import * as chai from 'chai';
 | 
			
		||||
 | 
			
		||||
import { ZRXTokenContract } from '../../generated-wrappers/zrx_token';
 | 
			
		||||
import { artifacts } from '../../src/artifacts';
 | 
			
		||||
import { artifacts, ZRXTokenContract } from '../src';
 | 
			
		||||
 | 
			
		||||
chaiSetup.configure();
 | 
			
		||||
const expect = chai.expect;
 | 
			
		||||
							
								
								
									
										33
									
								
								contracts/tokens/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								contracts/tokens/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
{
 | 
			
		||||
    "extends": "../../tsconfig",
 | 
			
		||||
    "compilerOptions": {
 | 
			
		||||
        "outDir": "lib",
 | 
			
		||||
        "rootDir": ".",
 | 
			
		||||
        "resolveJsonModule": true
 | 
			
		||||
    },
 | 
			
		||||
    "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"],
 | 
			
		||||
    "files": [
 | 
			
		||||
        "./generated-artifacts/DummyERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/DummyMultipleReturnERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/DummyNoReturnERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/DummyERC721Receiver.json",
 | 
			
		||||
        "./generated-artifacts/InvalidERC721Receiver.json",
 | 
			
		||||
        "./generated-artifacts/DummyERC721Token.json",
 | 
			
		||||
        "./generated-artifacts/ReentrantERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/ERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/IERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/MintableERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/UnlimitedAllowanceERC20Token.json",
 | 
			
		||||
        "./generated-artifacts/ERC721Token.json",
 | 
			
		||||
        "./generated-artifacts/IERC721Receiver.json",
 | 
			
		||||
        "./generated-artifacts/IERC721Token.json",
 | 
			
		||||
        "./generated-artifacts/MintableERC721Token.json",
 | 
			
		||||
        "./generated-artifacts/IEtherToken.json",
 | 
			
		||||
        "./generated-artifacts/WETH9.json",
 | 
			
		||||
        "./generated-artifacts/ERC20Token_v1.json",
 | 
			
		||||
        "./generated-artifacts/Token_v1.json",
 | 
			
		||||
        "./generated-artifacts/UnlimitedAllowanceToken_v1.json",
 | 
			
		||||
        "./generated-artifacts/ZRXToken.json"
 | 
			
		||||
    ],
 | 
			
		||||
    "exclude": ["./deploy/solc/solc_bin"]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								contracts/tokens/tslint.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								contracts/tokens/tslint.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
    "extends": ["@0x/tslint-config"],
 | 
			
		||||
    "rules": {
 | 
			
		||||
        "custom-no-magic-numbers": false
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user