aboutsummaryrefslogtreecommitdiffstats
path: root/miner/remote_agent.go
Commit message (Expand)AuthorAgeFilesLines
* consensus/ethash: move remote agent logic to ethash internal (#15853)gary rong2018-08-031-202/+0
* miner: fix typoterasum2017-10-121-1/+1
* miner: fix megacheck warningsEgon Elbre2017-08-071-2/+3
* core, consensus: pluggable consensus engines (#3817)Péter Szilágyi2017-04-051-13/+20
* all: swap out the C++ ethash to the pure Go one (mining todo)Péter Szilágyi2017-03-091-4/+3
* all: blidly swap out glog to our log15, logs need reworkPéter Szilágyi2017-02-231-4/+4
* eth: accept leading zeros for nonce parameter of submitWork (#3558)Felix Lange2017-01-131-1/+2
* eth, miner: verify PoW in the remote agent to notify submitter (#3438)Péter Szilágyi2016-12-201-12/+21
* miner: fix a race between remote agent start/loopPéter Szilágyi2016-12-131-11/+14
* miner: synchronise start / stopJeffrey Wilcke2015-10-311-5/+12
* cmd/utils, rpc/comms: stop XEth when IPC connection endsFelix Lange2015-10-301-5/+10
* Improve error string and remove unneeded else clauseGustav Simonsson2015-08-281-2/+1
* rpc: return error code for eth_getWork when no work readyGustav Simonsson2015-08-261-3/+5
* miner, rpc: added submit hashrate for remote agentsJeffrey Wilcke2015-08-061-2/+35
* all: fix license headers one more timeFelix Lange2015-07-241-1/+1
* all: update license headers to distiguish GPL/LGPLFelix Lange2015-07-231-4/+4
* miner: smart miningJeffrey Wilcke2015-07-161-33/+63
* all: update license informationFelix Lange2015-07-071-0/+16
* core/types: make blocks immutableFelix Lange2015-06-301-3/+1
* Return 32-byte hashes from GetWorkTaylor Gerring2015-05-111-2/+2
* miner: go fmtobscuren2015-04-201-8/+7
* Switched getWork third output from difficulty to targetVitalik Buterin2015-04-201-1/+8
* miner: fixed remote miner current workobscuren2015-04-201-1/+2
* Fixed minerobscuren2015-03-271-0/+1
* Changed minerobscuren2015-03-241-4/+7
* Fixed issues with stalled remote minerobscuren2015-03-231-1/+1
* Move RemoteAgent to miner pkgTaylor Gerring2015-03-231-0/+81
ass='none' style='width: 99.3%;'/> -rw-r--r--packages/abi-gen-wrappers/package.json48
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts1876
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts1044
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts1326
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts649
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts556
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts649
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts893
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts3072
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts730
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts108
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts103
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts357
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts835
-rw-r--r--packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts646
-rw-r--r--packages/abi-gen-wrappers/src/index.ts14
-rw-r--r--packages/abi-gen-wrappers/tsconfig.json (renamed from packages/sra-report/tsconfig.json)2
-rw-r--r--packages/abi-gen-wrappers/tslint.json3
-rw-r--r--packages/abi-gen/CHANGELOG.json18
-rw-r--r--packages/abi-gen/CHANGELOG.md10
-rw-r--r--packages/abi-gen/README.md6
-rw-r--r--packages/abi-gen/package.json15
-rw-r--r--packages/abi-gen/src/index.ts2
-rw-r--r--packages/abi-gen/tslint.json2
-rw-r--r--packages/assert/CHANGELOG.json18
-rw-r--r--packages/assert/CHANGELOG.md10
-rw-r--r--packages/assert/README.md12
-rw-r--r--packages/assert/package.json15
-rw-r--r--packages/assert/src/index.ts4
-rw-r--r--packages/assert/test/assert_test.ts4
-rw-r--r--packages/assert/tslint.json2
-rw-r--r--packages/asset-buyer/CHANGELOG.json61
-rw-r--r--packages/asset-buyer/CHANGELOG.md19
-rw-r--r--packages/asset-buyer/README.md14
-rw-r--r--packages/asset-buyer/package.json42
-rw-r--r--packages/asset-buyer/src/asset_buyer.ts116
-rw-r--r--packages/asset-buyer/src/constants.ts14
-rw-r--r--packages/asset-buyer/src/index.ts13
-rw-r--r--packages/asset-buyer/src/order_providers/basic_order_provider.ts13
-rw-r--r--packages/asset-buyer/src/order_providers/standard_relayer_api_order_provider.ts40
-rw-r--r--packages/asset-buyer/src/types.ts11
-rw-r--r--packages/asset-buyer/src/utils/assert.ts21
-rw-r--r--packages/asset-buyer/src/utils/asset_data_utils.ts24
-rw-r--r--packages/asset-buyer/src/utils/buy_quote_calculator.ts122
-rw-r--r--packages/asset-buyer/src/utils/order_provider_response_processor.ts15
-rw-r--r--packages/asset-buyer/src/utils/order_utils.ts72
-rw-r--r--packages/asset-buyer/test/buy_quote_calculator_test.ts16
-rw-r--r--packages/asset-buyer/tslint.json2
-rw-r--r--packages/base-contract/CHANGELOG.json18
-rw-r--r--packages/base-contract/CHANGELOG.md10
-rw-r--r--packages/base-contract/README.md12
-rw-r--r--packages/base-contract/package.json17
-rw-r--r--packages/base-contract/src/index.ts7
-rw-r--r--packages/base-contract/test/utils_test.ts2
-rw-r--r--packages/base-contract/tslint.json2
-rw-r--r--packages/connect/CHANGELOG.json18
-rw-r--r--packages/connect/CHANGELOG.md10
-rw-r--r--packages/connect/README.md10
-rw-r--r--packages/connect/package.json22
-rw-r--r--packages/connect/src/http_client.ts8
-rw-r--r--packages/connect/src/index.ts2
-rw-r--r--packages/connect/src/types.ts2
-rw-r--r--packages/connect/src/utils/assert.ts10
-rw-r--r--packages/connect/src/utils/orders_channel_message_parser.ts6
-rw-r--r--packages/connect/src/utils/relayer_response_json_parsers.ts8
-rw-r--r--packages/connect/src/utils/type_converters.ts4
-rw-r--r--packages/connect/src/ws_orders_channel.ts2
-rw-r--r--packages/connect/test/fixtures/standard_relayer_api/asset_pairs.ts4
-rw-r--r--packages/connect/test/fixtures/standard_relayer_api/fee_recipients.ts2
-rw-r--r--packages/connect/test/fixtures/standard_relayer_api/order/0xabc67323774bdbd24d94f977fa9ac94a50f016026fd13f42990861238897721f.ts2
-rw-r--r--packages/connect/test/fixtures/standard_relayer_api/order_config.ts4
-rw-r--r--packages/connect/test/fixtures/standard_relayer_api/orderbook.ts4
-rw-r--r--packages/connect/test/fixtures/standard_relayer_api/orders.ts4
-rw-r--r--packages/connect/test/http_client_test.ts2
-rw-r--r--packages/connect/tslint.json2
-rw-r--r--packages/contract-addresses/CHANGELOG.json30
-rw-r--r--packages/contract-addresses/CHANGELOG.md18
-rw-r--r--packages/contract-addresses/README.md68
-rw-r--r--packages/contract-addresses/package.json37
-rw-r--r--packages/contract-addresses/src/index.ts66
-rw-r--r--packages/contract-addresses/tsconfig.json8
-rw-r--r--packages/contract-addresses/tslint.json3
-rw-r--r--packages/contract-artifacts/CHANGELOG.json30
-rw-r--r--packages/contract-artifacts/CHANGELOG.md18
-rw-r--r--packages/contract-artifacts/README.md67
-rw-r--r--packages/contract-artifacts/artifacts/AssetProxyOwner.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/AssetProxyOwner.json)27
-rw-r--r--packages/contract-artifacts/artifacts/DummyERC20Token.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/DummyERC20Token.json)19
-rw-r--r--packages/contract-artifacts/artifacts/DummyERC721Token.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/DummyERC721Token.json)0
-rw-r--r--packages/contract-artifacts/artifacts/ERC20Proxy.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/ERC20Proxy.json)23
-rw-r--r--packages/contract-artifacts/artifacts/ERC20Token.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/ERC20Token.json)0
-rw-r--r--packages/contract-artifacts/artifacts/ERC721Proxy.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/ERC721Proxy.json)23
-rw-r--r--packages/contract-artifacts/artifacts/ERC721Token.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/ERC721Token.json)0
-rw-r--r--packages/contract-artifacts/artifacts/Exchange.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/Exchange.json)23
-rw-r--r--packages/contract-artifacts/artifacts/Forwarder.json447
-rw-r--r--packages/contract-artifacts/artifacts/IValidator.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/IValidator.json)0
-rw-r--r--packages/contract-artifacts/artifacts/IWallet.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/IWallet.json)0
-rw-r--r--packages/contract-artifacts/artifacts/OrderValidator.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/OrderValidator.json)27
-rw-r--r--packages/contract-artifacts/artifacts/WETH9.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/WETH9.json)23
-rw-r--r--packages/contract-artifacts/artifacts/ZRXToken.json (renamed from packages/migrations/artifacts/2.0.0-trimmed/ZRXToken.json)23
-rw-r--r--packages/contract-artifacts/package.json33
-rw-r--r--packages/contract-artifacts/src/index.ts31
-rw-r--r--packages/contract-artifacts/tsconfig.json25
-rw-r--r--packages/contract-artifacts/tslint.json3
-rw-r--r--packages/contract-wrappers/CHANGELOG.json76
-rw-r--r--packages/contract-wrappers/CHANGELOG.md19
-rw-r--r--packages/contract-wrappers/README.md12
-rw-r--r--packages/contract-wrappers/package.json49
-rw-r--r--packages/contract-wrappers/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.ts2
-rw-r--r--packages/contract-wrappers/src/artifacts.ts27
-rw-r--r--packages/contract-wrappers/src/contract_wrappers.ts91
-rw-r--r--packages/contract-wrappers/src/contract_wrappers/contract_wrapper.ts67
-rw-r--r--packages/contract-wrappers/src/contract_wrappers/erc20_proxy_wrapper.ts55
-rw-r--r--packages/contract-wrappers/src/contract_wrappers/erc20_token_wrapper.ts48
-rw-r--r--packages/contract-wrappers/src/contract_wrappers/erc721_proxy_wrapper.ts55
-rw-r--r--packages/contract-wrappers/src/contract_wrappers/erc721_token_wrapper.ts52
-rw-r--r--packages/contract-wrappers/src/contract_wrappers/ether_token_wrapper.ts53
-rw-r--r--packages/contract-wrappers/src/contract_wrappers/exchange_wrapper.ts104
-rw-r--r--packages/contract-wrappers/src/contract_wrappers/forwarder_wrapper.ts107
-rw-r--r--packages/contract-wrappers/src/contract_wrappers/order_validator_wrapper.ts36
-rw-r--r--packages/contract-wrappers/src/fetchers/asset_balance_and_proxy_allowance_fetcher.ts6
-rw-r--r--packages/contract-wrappers/src/fetchers/order_filled_cancelled_fetcher.ts18
-rw-r--r--packages/contract-wrappers/src/globals.d.ts6
-rw-r--r--packages/contract-wrappers/src/index.ts66
-rw-r--r--packages/contract-wrappers/src/schemas/contract_wrappers_config_schema.ts22
-rw-r--r--packages/contract-wrappers/src/schemas/contract_wrappers_private_network_config_schema.ts36
-rw-r--r--packages/contract-wrappers/src/schemas/contract_wrappers_public_network_config_schema.ts44
-rw-r--r--packages/contract-wrappers/src/schemas/validate_order_fillable_opts_schema.ts7
-rw-r--r--packages/contract-wrappers/src/types.ts45
-rw-r--r--packages/contract-wrappers/src/utils/assert.ts12
-rw-r--r--packages/contract-wrappers/src/utils/calldata_optimization_utils.ts2
-rw-r--r--packages/contract-wrappers/src/utils/constants.ts3
-rw-r--r--packages/contract-wrappers/src/utils/contract_addresses.ts15
-rw-r--r--packages/contract-wrappers/src/utils/decorators.ts14
-rw-r--r--packages/contract-wrappers/src/utils/exchange_transfer_simulator.ts4
-rw-r--r--packages/contract-wrappers/src/utils/transaction_encoder.ts12
-rw-r--r--packages/contract-wrappers/src/utils/utils.ts8
-rw-r--r--packages/contract-wrappers/test/artifacts_test.ts43
-rw-r--r--packages/contract-wrappers/test/calldata_optimization_utils_test.ts2
-rw-r--r--packages/contract-wrappers/test/erc20_proxy_wrapper_test.ts10
-rw-r--r--packages/contract-wrappers/test/erc20_wrapper_test.ts67
-rw-r--r--packages/contract-wrappers/test/erc721_proxy_wrapper_test.ts10
-rw-r--r--packages/contract-wrappers/test/erc721_wrapper_test.ts40
-rw-r--r--packages/contract-wrappers/test/ether_token_wrapper_test.ts40
-rw-r--r--packages/contract-wrappers/test/exchange_wrapper_test.ts62
-rw-r--r--packages/contract-wrappers/test/forwarder_wrapper_test.ts38
-rw-r--r--packages/contract-wrappers/test/global_hooks.ts13
-rw-r--r--packages/contract-wrappers/test/order_validator_wrapper_test.ts36
-rw-r--r--packages/contract-wrappers/test/revert_validation_test.ts51
-rw-r--r--packages/contract-wrappers/test/subscription_test.ts24
-rw-r--r--packages/contract-wrappers/test/transaction_encoder_test.ts30
-rw-r--r--packages/contract-wrappers/test/utils/constants.ts2
-rw-r--r--packages/contract-wrappers/test/utils/migrate.ts18
-rw-r--r--packages/contract-wrappers/test/utils/token_utils.ts24
-rw-r--r--packages/contract-wrappers/test/utils/web3_wrapper.ts4
-rw-r--r--packages/contract-wrappers/tslint.json2
-rw-r--r--packages/contract_templates/README.md4
-rw-r--r--packages/contract_templates/contract.handlebars6
-rw-r--r--packages/contracts/.solhintignore3
-rw-r--r--packages/contracts/CHANGELOG.json115
-rw-r--r--packages/contracts/README.md26
-rw-r--r--packages/contracts/compiler.json5
-rw-r--r--packages/contracts/contracts/examples/ExchangeWrapper/ExchangeWrapper.sol (renamed from packages/contracts/src/2.0.0/examples/ExchangeWrapper/ExchangeWrapper.sol)0
-rw-r--r--packages/contracts/contracts/examples/Validator/Validator.sol (renamed from packages/contracts/src/2.0.0/examples/Validator/Validator.sol)0
-rw-r--r--packages/contracts/contracts/examples/Wallet/Wallet.sol (renamed from packages/contracts/src/2.0.0/examples/Wallet/Wallet.sol)0
-rw-r--r--packages/contracts/contracts/examples/Whitelist/Whitelist.sol (renamed from packages/contracts/src/2.0.0/examples/Whitelist/Whitelist.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/Forwarder.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/Forwarder.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/MixinAssets.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/MixinAssets.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/MixinExchangeWrapper.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/MixinExchangeWrapper.sol)12
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/MixinForwarderCore.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/MixinForwarderCore.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/MixinWeth.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/MixinWeth.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/interfaces/IAssets.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/interfaces/IAssets.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/interfaces/IForwarder.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/interfaces/IForwarder.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/interfaces/IForwarderCore.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/interfaces/IForwarderCore.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/libs/LibConstants.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/libs/LibConstants.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/libs/LibForwarderErrors.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/libs/LibForwarderErrors.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/mixins/MAssets.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/mixins/MAssets.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/mixins/MExchangeWrapper.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/mixins/MExchangeWrapper.sol)0
-rw-r--r--packages/contracts/contracts/extensions/Forwarder/mixins/MWeth.sol (renamed from packages/contracts/src/2.0.0/extensions/Forwarder/mixins/MWeth.sol)0
-rw-r--r--packages/contracts/contracts/extensions/OrderValidator/OrderValidator.sol (renamed from packages/contracts/src/2.0.0/extensions/OrderValidator/OrderValidator.sol)0
-rw-r--r--packages/contracts/contracts/multisig/MultiSigWallet.sol (renamed from packages/contracts/src/2.0.0/multisig/MultiSigWallet.sol)0
-rw-r--r--packages/contracts/contracts/multisig/MultiSigWalletWithTimeLock.sol (renamed from packages/contracts/src/2.0.0/multisig/MultiSigWalletWithTimeLock.sol)0
-rw-r--r--packages/contracts/contracts/protocol/AssetProxy/ERC20Proxy.sol (renamed from packages/contracts/src/2.0.0/protocol/AssetProxy/ERC20Proxy.sol)0
-rw-r--r--packages/contracts/contracts/protocol/AssetProxy/ERC721Proxy.sol (renamed from packages/contracts/src/2.0.0/protocol/AssetProxy/ERC721Proxy.sol)0
-rw-r--r--packages/contracts/contracts/protocol/AssetProxy/MixinAuthorizable.sol (renamed from packages/contracts/src/2.0.0/protocol/AssetProxy/MixinAuthorizable.sol)0
-rw-r--r--packages/contracts/contracts/protocol/AssetProxy/interfaces/IAssetData.sol (renamed from packages/contracts/src/2.0.0/protocol/AssetProxy/interfaces/IAssetData.sol)0
-rw-r--r--packages/contracts/contracts/protocol/AssetProxy/interfaces/IAssetProxy.sol (renamed from packages/contracts/src/2.0.0/protocol/AssetProxy/interfaces/IAssetProxy.sol)0
-rw-r--r--packages/contracts/contracts/protocol/AssetProxy/interfaces/IAuthorizable.sol (renamed from packages/contracts/src/2.0.0/protocol/AssetProxy/interfaces/IAuthorizable.sol)0
-rw-r--r--packages/contracts/contracts/protocol/AssetProxy/libs/LibAssetProxyErrors.sol (renamed from packages/contracts/src/2.0.0/protocol/AssetProxy/libs/LibAssetProxyErrors.sol)0
-rw-r--r--packages/contracts/contracts/protocol/AssetProxy/mixins/MAuthorizable.sol (renamed from packages/contracts/src/2.0.0/protocol/AssetProxy/mixins/MAuthorizable.sol)0
-rw-r--r--packages/contracts/contracts/protocol/AssetProxyOwner/AssetProxyOwner.sol (renamed from packages/contracts/src/2.0.0/protocol/AssetProxyOwner/AssetProxyOwner.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/Exchange.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/Exchange.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/MixinAssetProxyDispatcher.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/MixinAssetProxyDispatcher.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/MixinExchangeCore.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/MixinExchangeCore.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/MixinMatchOrders.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/MixinMatchOrders.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/MixinSignatureValidator.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/MixinSignatureValidator.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/MixinTransactions.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/MixinWrapperFunctions.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/MixinWrapperFunctions.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/interfaces/IAssetProxyDispatcher.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/interfaces/IAssetProxyDispatcher.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/interfaces/IExchange.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/interfaces/IExchange.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/interfaces/IExchangeCore.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/interfaces/IExchangeCore.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/interfaces/IMatchOrders.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/interfaces/IMatchOrders.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/interfaces/ISignatureValidator.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/interfaces/ISignatureValidator.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/interfaces/ITransactions.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/interfaces/ITransactions.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/interfaces/IValidator.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/interfaces/IValidator.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/interfaces/IWallet.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/interfaces/IWallet.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/interfaces/IWrapperFunctions.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/interfaces/IWrapperFunctions.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/libs/LibAbiEncoder.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/libs/LibAbiEncoder.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/libs/LibConstants.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/libs/LibConstants.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/libs/LibEIP712.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/libs/LibEIP712.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/libs/LibExchangeErrors.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/libs/LibExchangeErrors.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/libs/LibFillResults.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/libs/LibFillResults.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/libs/LibMath.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/libs/LibMath.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/libs/LibOrder.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/libs/LibOrder.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/mixins/MAssetProxyDispatcher.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/mixins/MAssetProxyDispatcher.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/mixins/MExchangeCore.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/mixins/MExchangeCore.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/mixins/MMatchOrders.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/mixins/MMatchOrders.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/mixins/MSignatureValidator.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/mixins/MSignatureValidator.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/mixins/MTransactions.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/mixins/MTransactions.sol)0
-rw-r--r--packages/contracts/contracts/protocol/Exchange/mixins/MWrapperFunctions.sol (renamed from packages/contracts/src/2.0.0/protocol/Exchange/mixins/MWrapperFunctions.sol)0
-rw-r--r--packages/contracts/contracts/test/DummyERC20Token/DummyERC20Token.sol (renamed from packages/contracts/src/2.0.0/test/DummyERC20Token/DummyERC20Token.sol)0
-rw-r--r--packages/contracts/contracts/test/DummyERC20Token/DummyMultipleReturnERC20Token.sol (renamed from packages/contracts/src/2.0.0/test/DummyERC20Token/DummyMultipleReturnERC20Token.sol)0
-rw-r--r--packages/contracts/contracts/test/DummyERC20Token/DummyNoReturnERC20Token.sol (renamed from packages/contracts/src/2.0.0/test/DummyERC20Token/DummyNoReturnERC20Token.sol)0
-rw-r--r--packages/contracts/contracts/test/DummyERC721Receiver/DummyERC721Receiver.sol (renamed from packages/contracts/src/2.0.0/test/DummyERC721Receiver/DummyERC721Receiver.sol)0
-rw-r--r--packages/contracts/contracts/test/DummyERC721Receiver/InvalidERC721Receiver.sol (renamed from packages/contracts/src/2.0.0/test/DummyERC721Receiver/InvalidERC721Receiver.sol)0
-rw-r--r--packages/contracts/contracts/test/DummyERC721Token/DummyERC721Token.sol (renamed from packages/contracts/src/2.0.0/test/DummyERC721Token/DummyERC721Token.sol)0
-rw-r--r--packages/contracts/contracts/test/ReentrantERC20Token/ReentrantERC20Token.sol (renamed from packages/contracts/src/2.0.0/test/ReentrantERC20Token/ReentrantERC20Token.sol)0
-rw-r--r--packages/contracts/contracts/test/TestAssetProxyDispatcher/TestAssetProxyDispatcher.sol (renamed from packages/contracts/src/2.0.0/test/TestAssetProxyDispatcher/TestAssetProxyDispatcher.sol)0
-rw-r--r--packages/contracts/contracts/test/TestAssetProxyOwner/TestAssetProxyOwner.sol (renamed from packages/contracts/src/2.0.0/test/TestAssetProxyOwner/TestAssetProxyOwner.sol)0
-rw-r--r--packages/contracts/contracts/test/TestConstants/TestConstants.sol (renamed from packages/contracts/src/2.0.0/test/TestConstants/TestConstants.sol)0
-rw-r--r--packages/contracts/contracts/test/TestExchangeInternals/TestExchangeInternals.sol (renamed from packages/contracts/src/2.0.0/test/TestExchangeInternals/TestExchangeInternals.sol)0
-rw-r--r--packages/contracts/contracts/test/TestLibBytes/TestLibBytes.sol (renamed from packages/contracts/src/2.0.0/test/TestLibBytes/TestLibBytes.sol)0
-rw-r--r--packages/contracts/contracts/test/TestLibs/TestLibs.sol (renamed from packages/contracts/src/2.0.0/test/TestLibs/TestLibs.sol)0
-rw-r--r--packages/contracts/contracts/test/TestSignatureValidator/TestSignatureValidator.sol (renamed from packages/contracts/src/2.0.0/test/TestSignatureValidator/TestSignatureValidator.sol)0
-rw-r--r--packages/contracts/contracts/test/TestStaticCallReceiver/TestStaticCallReceiver.sol (renamed from packages/contracts/src/2.0.0/test/TestStaticCallReceiver/TestStaticCallReceiver.sol)0
-rw-r--r--packages/contracts/contracts/tokens/ERC20Token/ERC20Token.sol (renamed from packages/contracts/src/2.0.0/tokens/ERC20Token/ERC20Token.sol)0
-rw-r--r--packages/contracts/contracts/tokens/ERC20Token/IERC20Token.sol (renamed from packages/contracts/src/2.0.0/tokens/ERC20Token/IERC20Token.sol)0
-rw-r--r--packages/contracts/contracts/tokens/ERC20Token/MintableERC20Token.sol (renamed from packages/contracts/src/2.0.0/tokens/ERC20Token/MintableERC20Token.sol)0
-rw-r--r--packages/contracts/contracts/tokens/ERC20Token/UnlimitedAllowanceERC20Token.sol (renamed from packages/contracts/src/2.0.0/tokens/ERC20Token/UnlimitedAllowanceERC20Token.sol)0
-rw-r--r--packages/contracts/contracts/tokens/ERC721Token/ERC721Token.sol (renamed from packages/contracts/src/2.0.0/tokens/ERC721Token/ERC721Token.sol)0
-rw-r--r--packages/contracts/contracts/tokens/ERC721Token/IERC721Receiver.sol (renamed from packages/contracts/src/2.0.0/tokens/ERC721Token/IERC721Receiver.sol)0
-rw-r--r--packages/contracts/contracts/tokens/ERC721Token/IERC721Token.sol (renamed from packages/contracts/src/2.0.0/tokens/ERC721Token/IERC721Token.sol)0
-rw-r--r--packages/contracts/contracts/tokens/ERC721Token/MintableERC721Token.sol (renamed from packages/contracts/src/2.0.0/tokens/ERC721Token/MintableERC721Token.sol)0
-rw-r--r--packages/contracts/contracts/tokens/EtherToken/IEtherToken.sol (renamed from packages/contracts/src/2.0.0/tokens/EtherToken/IEtherToken.sol)0
-rw-r--r--packages/contracts/contracts/tokens/EtherToken/WETH9.sol (renamed from packages/contracts/src/2.0.0/tokens/EtherToken/WETH9.sol)0
-rw-r--r--packages/contracts/contracts/tokens/ZRXToken/ERC20Token_v1.sol (renamed from packages/contracts/src/1.0.0/ERC20Token/ERC20Token_v1.sol)2
-rw-r--r--packages/contracts/contracts/tokens/ZRXToken/Token_v1.sol (renamed from packages/contracts/src/1.0.0/Token/Token_v1.sol)0
-rw-r--r--packages/contracts/contracts/tokens/ZRXToken/UnlimitedAllowanceToken_v1.sol (renamed from packages/contracts/src/1.0.0/UnlimitedAllowanceToken/UnlimitedAllowanceToken_v1.sol)2
-rw-r--r--packages/contracts/contracts/tokens/ZRXToken/ZRXToken.sol (renamed from packages/contracts/src/2.0.0/tokens/ZRXToken/ZRXToken.sol)2
-rw-r--r--packages/contracts/contracts/utils/LibBytes/LibBytes.sol (renamed from packages/contracts/src/2.0.0/utils/LibBytes/LibBytes.sol)0
-rw-r--r--packages/contracts/contracts/utils/Ownable/IOwnable.sol (renamed from packages/contracts/src/2.0.0/utils/Ownable/IOwnable.sol)0
-rw-r--r--packages/contracts/contracts/utils/Ownable/Ownable.sol (renamed from packages/contracts/src/2.0.0/utils/Ownable/Ownable.sol)0
-rw-r--r--packages/contracts/contracts/utils/ReentrancyGuard/ReentrancyGuard.sol (renamed from packages/contracts/src/2.0.0/utils/ReentrancyGuard/ReentrancyGuard.sol)0
-rw-r--r--packages/contracts/contracts/utils/SafeMath/SafeMath.sol (renamed from packages/contracts/src/2.0.0/utils/SafeMath/SafeMath.sol)0
-rw-r--r--packages/contracts/globals.d.ts6
-rw-r--r--packages/contracts/package.json49
-rw-r--r--packages/contracts/src/1.0.0/Arbitrage/Arbitrage.sol114
-rw-r--r--packages/contracts/src/1.0.0/EtherDelta/AccountLevels.sol11
-rw-r--r--packages/contracts/src/1.0.0/EtherDelta/EtherDelta.sol168
-rw-r--r--packages/contracts/src/1.0.0/Exchange/Exchange_v1.sol602
-rw-r--r--packages/contracts/src/1.0.0/Exchange/IExchange_v1.sol226
-rw-r--r--packages/contracts/src/1.0.0/MultiSigWalletWithTImeLockExceptRemoveAuthorizedAddress/MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress.sol82
-rw-r--r--packages/contracts/src/1.0.0/Ownable/IOwnable_v1.sol18
-rw-r--r--packages/contracts/src/1.0.0/Ownable/Ownable_v1.sol27
-rw-r--r--packages/contracts/src/1.0.0/SafeMath/SafeMath_v1.sol73
-rw-r--r--packages/contracts/src/1.0.0/TokenRegistry/ITokenRegistery.sol195
-rw-r--r--packages/contracts/src/1.0.0/TokenRegistry/TokenRegistry.sol308
-rw-r--r--packages/contracts/src/1.0.0/TokenTransferProxy/TokenTransferProxy_v1.sol115
-rw-r--r--packages/contracts/src/artifacts/index.ts79
-rw-r--r--packages/contracts/src/wrappers/index.ts34
-rw-r--r--packages/contracts/test/asset_proxy/authorizable.ts10
-rw-r--r--packages/contracts/test/asset_proxy/proxies.ts26
-rw-r--r--packages/contracts/test/exchange/core.ts31
-rw-r--r--packages/contracts/test/exchange/dispatcher.ts18
-rw-r--r--packages/contracts/test/exchange/fill_order.ts2
-rw-r--r--packages/contracts/test/exchange/internal.ts10
-rw-r--r--packages/contracts/test/exchange/libs.ts14
-rw-r--r--packages/contracts/test/exchange/match_orders.ts26
-rw-r--r--packages/contracts/test/exchange/signature_validator.ts16
-rw-r--r--packages/contracts/test/exchange/transactions.ts20
-rw-r--r--packages/contracts/test/exchange/wrapper.ts24
-rw-r--r--packages/contracts/test/extensions/forwarder.ts289
-rw-r--r--packages/contracts/test/extensions/order_validator.ts22
-rw-r--r--packages/contracts/test/global_hooks.ts2
-rw-r--r--packages/contracts/test/libraries/lib_bytes.ts12
-rw-r--r--packages/contracts/test/multisig/asset_proxy_owner.ts14
-rw-r--r--packages/contracts/test/multisig/multi_sig_with_time_lock.ts12
-rw-r--r--packages/contracts/test/token_registry.ts255
-rw-r--r--packages/contracts/test/tokens/erc721_token.ts14
-rw-r--r--packages/contracts/test/tokens/unlimited_allowance_token.ts10
-rw-r--r--packages/contracts/test/tokens/weth9.ts (renamed from packages/contracts/test/tokens/ether_token.ts)12
-rw-r--r--packages/contracts/test/tokens/zrx_token.ts12
-rw-r--r--packages/contracts/test/tutorials/arbitrage.ts6
-rw-r--r--packages/contracts/test/utils/address_utils.ts4
-rw-r--r--packages/contracts/test/utils/artifacts.ts69
-rw-r--r--packages/contracts/test/utils/assertions.ts6
-rw-r--r--packages/contracts/test/utils/asset_wrapper.ts6
-rw-r--r--packages/contracts/test/utils/combinatorial_utils.ts2
-rw-r--r--packages/contracts/test/utils/constants.ts4
-rw-r--r--packages/contracts/test/utils/coverage.ts4
-rw-r--r--packages/contracts/test/utils/erc20_wrapper.ts12
-rw-r--r--packages/contracts/test/utils/erc721_wrapper.ts12
-rw-r--r--packages/contracts/test/utils/exchange_wrapper.ts14
-rw-r--r--packages/contracts/test/utils/fill_order_combinatorial_utils.ts16
-rw-r--r--packages/contracts/test/utils/formatters.ts4
-rw-r--r--packages/contracts/test/utils/forwarder_wrapper.ts17
-rw-r--r--packages/contracts/test/utils/log_decoder.ts7
-rw-r--r--packages/contracts/test/utils/match_order_tester.ts6
-rw-r--r--packages/contracts/test/utils/multi_sig_wrapper.ts8
-rw-r--r--packages/contracts/test/utils/order_factory.ts6
-rw-r--r--packages/contracts/test/utils/order_factory_from_scenario.ts8
-rw-r--r--packages/contracts/test/utils/order_utils.ts4
-rw-r--r--packages/contracts/test/utils/profiler.ts4
-rw-r--r--packages/contracts/test/utils/revert_trace.ts4
-rw-r--r--packages/contracts/test/utils/signing_utils.ts2
-rw-r--r--packages/contracts/test/utils/simple_asset_balance_and_proxy_allowance_fetcher.ts4
-rw-r--r--packages/contracts/test/utils/simple_order_filled_cancelled_fetcher.ts15
-rw-r--r--packages/contracts/test/utils/token_registry_wrapper.ts66
-rw-r--r--packages/contracts/test/utils/transaction_factory.ts6
-rw-r--r--packages/contracts/test/utils/type_encoding_utils.ts2
-rw-r--r--packages/contracts/test/utils/types.ts4
-rw-r--r--packages/contracts/test/utils/web3_wrapper.ts8
-rw-r--r--packages/contracts/tsconfig.json48
-rw-r--r--packages/contracts/tslint.json2
-rw-r--r--packages/dev-tools-pages/README.md2
-rw-r--r--packages/dev-tools-pages/package.json9
-rw-r--r--packages/dev-tools-pages/tslint.json2
-rw-r--r--packages/dev-utils/CHANGELOG.json19
-rw-r--r--packages/dev-utils/CHANGELOG.md10
-rw-r--r--packages/dev-utils/README.md8
-rw-r--r--packages/dev-utils/package.json24
-rw-r--r--packages/dev-utils/src/blockchain_lifecycle.ts4
-rw-r--r--packages/dev-utils/src/callback_error_reporter.ts2
-rw-r--r--packages/dev-utils/src/web3_factory.ts2
-rw-r--r--packages/dev-utils/test/blockchain_lifecycle_test.ts2
-rw-r--r--packages/dev-utils/test/rpc_test.ts2
-rw-r--r--packages/dev-utils/tslint.json2
-rw-r--r--packages/ethereum-types/CHANGELOG.json20
-rw-r--r--packages/ethereum-types/CHANGELOG.md16
-rw-r--r--packages/ethereum-types/package.json7
-rw-r--r--packages/ethereum-types/src/index.ts16
-rw-r--r--packages/ethereum-types/tslint.json2
-rw-r--r--packages/fill-scenarios/CHANGELOG.json19
-rw-r--r--packages/fill-scenarios/CHANGELOG.md10
-rw-r--r--packages/fill-scenarios/README.md10
-rw-r--r--packages/fill-scenarios/package.json36
-rw-r--r--packages/fill-scenarios/src/artifacts.ts11
-rw-r--r--packages/fill-scenarios/src/fill_scenarios.ts16
-rw-r--r--packages/fill-scenarios/src/globals.d.ts6
-rw-r--r--packages/fill-scenarios/tslint.json2
-rw-r--r--packages/instant/.dogfood.discharge.json13
-rw-r--r--packages/instant/.staging.discharge.json13
-rw-r--r--packages/instant/README.md34
-rw-r--r--packages/instant/package.json37
-rw-r--r--packages/instant/public/external.css25
-rw-r--r--packages/instant/public/index.html108
-rw-r--r--packages/instant/src/components/amount_input.tsx47
-rw-r--r--packages/instant/src/components/amount_placeholder.tsx32
-rw-r--r--packages/instant/src/components/animations/full_rotation.tsx24
-rw-r--r--packages/instant/src/components/animations/position_animation.tsx110
-rw-r--r--packages/instant/src/components/animations/pulse.tsx15
-rw-r--r--packages/instant/src/components/animations/slide_animation.tsx26
-rw-r--r--packages/instant/src/components/buy_button.tsx106
-rw-r--r--packages/instant/src/components/buy_order_progress.tsx35
-rw-r--r--packages/instant/src/components/buy_order_state_buttons.tsx71
-rw-r--r--packages/instant/src/components/css_reset.tsx32
-rw-r--r--packages/instant/src/components/erc20_asset_amount_input.tsx161
-rw-r--r--packages/instant/src/components/erc20_token_selector.tsx111
-rw-r--r--packages/instant/src/components/instant_heading.tsx162
-rw-r--r--packages/instant/src/components/order_details.tsx156
-rw-r--r--packages/instant/src/components/payment_method.tsx45
-rw-r--r--packages/instant/src/components/payment_method_dropdown.tsx44
-rw-r--r--packages/instant/src/components/placing_order_button.tsx16
-rw-r--r--packages/instant/src/components/scaling_amount_input.tsx83
-rw-r--r--packages/instant/src/components/scaling_input.tsx173
-rw-r--r--packages/instant/src/components/search_input.tsx29
-rw-r--r--packages/instant/src/components/secondary_button.tsx28
-rw-r--r--packages/instant/src/components/sliding_error.tsx95
-rw-r--r--packages/instant/src/components/sliding_panel.tsx77
-rw-r--r--packages/instant/src/components/time_counter.tsx78
-rw-r--r--packages/instant/src/components/timed_progress_bar.tsx80
-rw-r--r--packages/instant/src/components/ui/button.tsx62
-rw-r--r--packages/instant/src/components/ui/circle.tsx27
-rw-r--r--packages/instant/src/components/ui/container.tsx87
-rw-r--r--packages/instant/src/components/ui/dropdown.tsx134
-rw-r--r--packages/instant/src/components/ui/flex.tsx36
-rw-r--r--packages/instant/src/components/ui/icon.tsx123
-rw-r--r--packages/instant/src/components/ui/index.ts5
-rw-r--r--packages/instant/src/components/ui/input.tsx32
-rw-r--r--packages/instant/src/components/ui/overlay.tsx39
-rw-r--r--packages/instant/src/components/ui/spinner.tsx30
-rw-r--r--packages/instant/src/components/ui/text.tsx65
-rw-r--r--packages/instant/src/components/zero_ex_instant.tsx26
-rw-r--r--packages/instant/src/components/zero_ex_instant_container.tsx84
-rw-r--r--packages/instant/src/components/zero_ex_instant_overlay.tsx40
-rw-r--r--packages/instant/src/components/zero_ex_instant_provider.tsx149
-rw-r--r--packages/instant/src/constants.ts35
-rw-r--r--packages/instant/src/containers/available_erc20_token_selector.ts45
-rw-r--r--packages/instant/src/containers/latest_buy_quote_order_details.ts30
-rw-r--r--packages/instant/src/containers/latest_error.tsx60
-rw-r--r--packages/instant/src/containers/selected_asset_amount_input.tsx36
-rw-r--r--packages/instant/src/containers/selected_asset_buy_order_progress.ts13
-rw-r--r--packages/instant/src/containers/selected_asset_buy_order_state_buttons.ts104
-rw-r--r--packages/instant/src/containers/selected_asset_instant_heading.ts34
-rw-r--r--packages/instant/src/containers/selected_asset_theme_provider.ts32
-rw-r--r--packages/instant/src/containers/selected_erc20_asset_amount_input.ts116
-rw-r--r--packages/instant/src/data/asset_data_network_mapping.ts66
-rw-r--r--packages/instant/src/data/asset_meta_data_map.ts85
-rw-r--r--packages/instant/src/index.ts1
-rw-r--r--packages/instant/src/index.umd.ts56
-rw-r--r--packages/instant/src/redux/actions.ts69
-rw-r--r--packages/instant/src/redux/async_data.ts103
-rw-r--r--packages/instant/src/redux/reducer.ts270
-rw-r--r--packages/instant/src/redux/store.ts12
-rw-r--r--packages/instant/src/style/fonts.ts10
-rw-r--r--packages/instant/src/style/media.ts51
-rw-r--r--packages/instant/src/style/theme.ts23
-rw-r--r--packages/instant/src/style/util.ts2
-rw-r--r--packages/instant/src/style/z_index.ts9
-rw-r--r--packages/instant/src/types.ts130
-rw-r--r--packages/instant/src/util/address.ts6
-rw-r--r--packages/instant/src/util/assert.ts55
-rw-r--r--packages/instant/src/util/asset.ts111
-rw-r--r--packages/instant/src/util/asset_buyer_factory.ts17
-rw-r--r--packages/instant/src/util/buy_quote_updater.ts59
-rw-r--r--packages/instant/src/util/coinbase_api.ts11
-rw-r--r--packages/instant/src/util/error_flasher.ts26
-rw-r--r--packages/instant/src/util/etherscan.ts31
-rw-r--r--packages/instant/src/util/format.ts56
-rw-r--r--packages/instant/src/util/gas_price_estimator.ts62
-rw-r--r--packages/instant/src/util/heartbeater.ts35
-rw-r--r--packages/instant/src/util/heartbeater_factory.ts22
-rw-r--r--packages/instant/src/util/maybe_big_number.ts25
-rw-r--r--packages/instant/src/util/provider_factory.ts34
-rw-r--r--packages/instant/src/util/provider_state_factory.ts63
-rw-r--r--packages/instant/src/util/time.ts39
-rw-r--r--packages/instant/src/util/util.ts5
-rw-r--r--packages/instant/test/components/zero_ex_instant.test.tsx12
-rw-r--r--packages/instant/test/util/asset.test.ts48
-rw-r--r--packages/instant/test/util/format.test.ts97
-rw-r--r--packages/instant/test/util/time.test.ts48
-rw-r--r--packages/instant/tslint.json5
-rw-r--r--packages/json-schemas/CHANGELOG.json22
-rw-r--r--packages/json-schemas/CHANGELOG.md10
-rw-r--r--packages/json-schemas/README.md14
-rw-r--r--packages/json-schemas/package.json15
-rw-r--r--packages/json-schemas/schemas/address_schema.json5
-rw-r--r--packages/json-schemas/schemas/basic_type_schemas.ts17
-rw-r--r--packages/json-schemas/schemas/block_param_schema.json11
-rw-r--r--packages/json-schemas/schemas/block_range_schema.json8
-rw-r--r--packages/json-schemas/schemas/block_range_schema.ts20
-rw-r--r--packages/json-schemas/schemas/call_data_schema.json27
-rw-r--r--packages/json-schemas/schemas/call_data_schema.ts27
-rw-r--r--packages/json-schemas/schemas/ec_signature_parameter_schema.json5
-rw-r--r--packages/json-schemas/schemas/ec_signature_schema.json14
-rw-r--r--packages/json-schemas/schemas/ec_signature_schema.ts20
-rw-r--r--packages/json-schemas/schemas/eip712_typed_data.ts28
-rw-r--r--packages/json-schemas/schemas/eip712_typed_data_schema.json28
-rw-r--r--packages/json-schemas/schemas/hex_schema.json5
-rw-r--r--packages/json-schemas/schemas/index_filter_values_schema.json7
-rw-r--r--packages/json-schemas/schemas/index_filter_values_schema.ts7
-rw-r--r--packages/json-schemas/schemas/js_number.json5
-rw-r--r--packages/json-schemas/schemas/number_schema.json5
-rw-r--r--packages/json-schemas/schemas/order_cancel_schema.json12
-rw-r--r--packages/json-schemas/schemas/order_cancel_schema.ts12
-rw-r--r--packages/json-schemas/schemas/order_fill_or_kill_requests_schema.json12
-rw-r--r--packages/json-schemas/schemas/order_fill_or_kill_requests_schema.ts12
-rw-r--r--packages/json-schemas/schemas/order_fill_requests_schema.json12
-rw-r--r--packages/json-schemas/schemas/order_fill_requests_schema.ts12
-rw-r--r--packages/json-schemas/schemas/order_hash_schema.json5
-rw-r--r--packages/json-schemas/schemas/order_hash_schema.ts5
-rw-r--r--packages/json-schemas/schemas/order_schema.json34
-rw-r--r--packages/json-schemas/schemas/order_schemas.ts47
-rw-r--r--packages/json-schemas/schemas/orders_schema.json5
-rw-r--r--packages/json-schemas/schemas/orders_schema.ts5
-rw-r--r--packages/json-schemas/schemas/paginated_collection_schema.json10
-rw-r--r--packages/json-schemas/schemas/paginated_collection_schema.ts10
-rw-r--r--packages/json-schemas/schemas/relayer_api_asset_data_pairs_response_schema.json13
-rw-r--r--packages/json-schemas/schemas/relayer_api_asset_data_pairs_schema.json12
-rw-r--r--packages/json-schemas/schemas/relayer_api_asset_data_trade_info_schema.json11
-rw-r--r--packages/json-schemas/schemas/relayer_api_asset_pairs_response_schema.ts38
-rw-r--r--packages/json-schemas/schemas/relayer_api_error_response_schema.json21
-rw-r--r--packages/json-schemas/schemas/relayer_api_error_response_schema.ts21
-rw-r--r--packages/json-schemas/schemas/relayer_api_fee_recipients_response_schema.json16
-rw-r--r--packages/json-schemas/schemas/relayer_api_fee_recipients_response_schema.ts16
-rw-r--r--packages/json-schemas/schemas/relayer_api_order_config_payload_schema.json24
-rw-r--r--packages/json-schemas/schemas/relayer_api_order_config_payload_schema.ts24
-rw-r--r--packages/json-schemas/schemas/relayer_api_order_config_response_schema.json11
-rw-r--r--packages/json-schemas/schemas/relayer_api_order_config_response_schema.ts11
-rw-r--r--packages/json-schemas/schemas/relayer_api_order_schema.json9
-rw-r--r--packages/json-schemas/schemas/relayer_api_order_schema.ts9
-rw-r--r--packages/json-schemas/schemas/relayer_api_orderbook_response_schema.json9
-rw-r--r--packages/json-schemas/schemas/relayer_api_orderbook_response_schema.ts9
-rw-r--r--packages/json-schemas/schemas/relayer_api_orders_channel_subscribe_payload_schema.json14
-rw-r--r--packages/json-schemas/schemas/relayer_api_orders_channel_subscribe_schema.json11
-rw-r--r--packages/json-schemas/schemas/relayer_api_orders_channel_subscribe_schema.ts26
-rw-r--r--packages/json-schemas/schemas/relayer_api_orders_channel_update_response_schema.json11
-rw-r--r--packages/json-schemas/schemas/relayer_api_orders_channel_update_response_schema.ts11
-rw-r--r--packages/json-schemas/schemas/relayer_api_orders_response_schema.json13
-rw-r--r--packages/json-schemas/schemas/relayer_api_orders_response_schema.ts13
-rw-r--r--packages/json-schemas/schemas/relayer_api_orders_schema.json5
-rw-r--r--packages/json-schemas/schemas/relayer_api_orders_schema.ts5
-rw-r--r--packages/json-schemas/schemas/signed_order_schema.json12
-rw-r--r--packages/json-schemas/schemas/signed_orders_schema.json5
-rw-r--r--packages/json-schemas/schemas/signed_orders_schema.ts5
-rw-r--r--packages/json-schemas/schemas/token_schema.json11
-rw-r--r--packages/json-schemas/schemas/token_schema.ts11
-rw-r--r--packages/json-schemas/schemas/tx_data_schema.json26
-rw-r--r--packages/json-schemas/schemas/tx_data_schema.ts32
-rw-r--r--packages/json-schemas/schemas/whole_number_schema.json5
-rw-r--r--packages/json-schemas/schemas/zero_ex_transaction_schema.json10
-rw-r--r--packages/json-schemas/schemas/zero_ex_transaction_schema.ts10
-rw-r--r--packages/json-schemas/src/globals.d.ts6
-rw-r--r--packages/json-schemas/src/schemas.ts76
-rw-r--r--packages/json-schemas/test/schema_test.ts14
-rw-r--r--packages/json-schemas/tsconfig.json45
-rw-r--r--packages/json-schemas/tslint.json2
-rw-r--r--packages/metacoin/README.md6
-rw-r--r--packages/metacoin/package.json30
-rw-r--r--packages/metacoin/test/global_hooks.ts2
-rw-r--r--packages/metacoin/test/metacoin_test.ts4
-rw-r--r--packages/metacoin/test/utils/config.ts2
-rw-r--r--packages/metacoin/test/utils/coverage.ts4
-rw-r--r--packages/metacoin/test/utils/profiler.ts4
-rw-r--r--packages/metacoin/test/utils/web3_wrapper.ts8
-rw-r--r--packages/metacoin/tsconfig.json4
-rw-r--r--packages/metacoin/tslint.json2
-rw-r--r--packages/migrations/.gitignore1
-rw-r--r--packages/migrations/CHANGELOG.json20
-rw-r--r--packages/migrations/CHANGELOG.md10
-rw-r--r--packages/migrations/README.md31
-rw-r--r--packages/migrations/artifacts/1.0.0/DummyERC20Token.json375
-rw-r--r--packages/migrations/artifacts/1.0.0/Exchange_v1.json678
-rw-r--r--packages/migrations/artifacts/1.0.0/MultiSigWallet.json580
-rw-r--r--packages/migrations/artifacts/1.0.0/MultiSigWalletWithTimeLock.json664
-rw-r--r--packages/migrations/artifacts/1.0.0/MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress.json725
-rw-r--r--packages/migrations/artifacts/1.0.0/TokenRegistry.json600
-rw-r--r--packages/migrations/artifacts/1.0.0/TokenTransferProxy_v1.json236
-rw-r--r--packages/migrations/artifacts/1.0.0/WETH9.json332
-rw-r--r--packages/migrations/artifacts/1.0.0/ZRXToken.json288
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/AssetProxyOwner.json1012
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/DummyERC20Token.json641
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/DummyERC721Token.json672
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/ERC20Proxy.json508
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/ERC20Token.json486
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/ERC721Proxy.json508
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/ERC721Token.json565
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/Exchange.json2294
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/Forwarder.json761
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/IValidator.json320
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/IWallet.json316
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/OrderValidator.json885
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/WETH9.json346
-rw-r--r--packages/migrations/artifacts/2.0.0-testnet/ZRXToken.json10041
-rw-r--r--packages/migrations/artifacts/2.0.0-trimmed/Forwarder.json473
-rw-r--r--packages/migrations/artifacts/2.0.0/AssetProxyOwner.json985
-rw-r--r--packages/migrations/artifacts/2.0.0/DummyERC20Token.json641
-rw-r--r--packages/migrations/artifacts/2.0.0/DummyERC721Token.json672
-rw-r--r--packages/migrations/artifacts/2.0.0/ERC20Proxy.json481
-rw-r--r--packages/migrations/artifacts/2.0.0/ERC20Token.json486
-rw-r--r--packages/migrations/artifacts/2.0.0/ERC721Proxy.json481
-rw-r--r--packages/migrations/artifacts/2.0.0/ERC721Token.json565
-rw-r--r--packages/migrations/artifacts/2.0.0/Exchange.json2262
-rw-r--r--packages/migrations/artifacts/2.0.0/Forwarder.json734
-rw-r--r--packages/migrations/artifacts/2.0.0/IValidator.json320
-rw-r--r--packages/migrations/artifacts/2.0.0/IWallet.json316
-rw-r--r--packages/migrations/artifacts/2.0.0/OrderValidator.json858
-rw-r--r--packages/migrations/artifacts/2.0.0/WETH9.json351
-rw-r--r--packages/migrations/artifacts/2.0.0/ZRXToken.json10046
-rw-r--r--packages/migrations/compiler.json20
-rw-r--r--packages/migrations/package.json53
-rw-r--r--packages/migrations/src/1.0.0/artifacts.ts21
-rw-r--r--packages/migrations/src/1.0.0/migration.ts142
-rw-r--r--packages/migrations/src/2.0.0/artifacts.ts25
-rw-r--r--packages/migrations/src/2.0.0/migration.ts150
-rw-r--r--packages/migrations/src/globals.d.ts6
-rw-r--r--packages/migrations/src/index.ts3
-rw-r--r--packages/migrations/src/migrate.ts43
-rw-r--r--packages/migrations/src/migration.ts175
-rw-r--r--packages/migrations/src/types.ts2
-rw-r--r--packages/migrations/src/utils/artifact_writer.ts26
-rw-r--r--packages/migrations/src/utils/constants.ts2
-rw-r--r--packages/migrations/src/utils/provider_factory.ts2
-rw-r--r--packages/migrations/src/utils/token_info.ts2
-rw-r--r--packages/migrations/tslint.json2
-rw-r--r--packages/monorepo-scripts/CHANGELOG.json17
-rw-r--r--packages/monorepo-scripts/README.md4
-rw-r--r--packages/monorepo-scripts/package.json8
-rw-r--r--packages/monorepo-scripts/src/doc_gen_configs.ts16
-rw-r--r--packages/monorepo-scripts/src/find_unused_dependencies.ts2
-rw-r--r--packages/monorepo-scripts/src/prepublish_checks.ts2
-rw-r--r--packages/monorepo-scripts/src/publish.ts20
-rw-r--r--packages/monorepo-scripts/src/publish_release_notes.ts4
-rw-r--r--packages/monorepo-scripts/src/test_installation.ts21
-rw-r--r--packages/monorepo-scripts/src/utils/changelog_utils.ts3
-rw-r--r--packages/monorepo-scripts/src/utils/doc_generate_and_upload_utils.ts17
-rw-r--r--packages/monorepo-scripts/src/utils/github_release_utils.ts20
-rw-r--r--packages/monorepo-scripts/src/utils/utils.ts2
-rw-r--r--packages/order-utils/CHANGELOG.json41
-rw-r--r--packages/order-utils/CHANGELOG.md13
-rw-r--r--packages/order-utils/README.md10
-rw-r--r--packages/order-utils/package.json39
-rw-r--r--packages/order-utils/src/abstract/abstract_balance_and_proxy_allowance_fetcher.ts2
-rw-r--r--packages/order-utils/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.ts2
-rw-r--r--packages/order-utils/src/abstract/abstract_order_filled_cancelled_fetcher.ts5
-rw-r--r--packages/order-utils/src/abstract/abstract_order_filled_cancelled_lazy_store.ts5
-rw-r--r--packages/order-utils/src/artifacts.ts14
-rw-r--r--packages/order-utils/src/assert.ts10
-rw-r--r--packages/order-utils/src/asset_data_utils.ts6
-rw-r--r--packages/order-utils/src/constants.ts2
-rw-r--r--packages/order-utils/src/eip712_utils.ts6
-rw-r--r--packages/order-utils/src/exchange_transfer_simulator.ts4
-rw-r--r--packages/order-utils/src/globals.d.ts6
-rw-r--r--packages/order-utils/src/index.ts4
-rw-r--r--packages/order-utils/src/market_utils.ts6
-rw-r--r--packages/order-utils/src/order_factory.ts4
-rw-r--r--packages/order-utils/src/order_hash.ts6
-rw-r--r--packages/order-utils/src/order_state_utils.ts8
-rw-r--r--packages/order-utils/src/order_validation_utils.ts211
-rw-r--r--packages/order-utils/src/parsing_utils.ts2
-rw-r--r--packages/order-utils/src/rate_utils.ts6
-rw-r--r--packages/order-utils/src/remaining_fillable_calculator.ts2
-rw-r--r--packages/order-utils/src/salt.ts2
-rw-r--r--packages/order-utils/src/signature_utils.ts12
-rw-r--r--packages/order-utils/src/sorting_utils.ts6
-rw-r--r--packages/order-utils/src/store/balance_and_proxy_allowance_lazy_store.ts4
-rw-r--r--packages/order-utils/src/store/order_filled_cancelled_lazy_store.ts9
-rw-r--r--packages/order-utils/src/types.ts10
-rw-r--r--packages/order-utils/src/utils.ts2
-rw-r--r--packages/order-utils/test/asset_data_utils_test.ts50
-rw-r--r--packages/order-utils/test/eip712_utils_test.ts2
-rw-r--r--packages/order-utils/test/exchange_transfer_simulator_test.ts12
-rw-r--r--packages/order-utils/test/market_utils_test.ts2
-rw-r--r--packages/order-utils/test/order_hash_test.ts4
-rw-r--r--packages/order-utils/test/order_state_utils_test.ts5
-rw-r--r--packages/order-utils/test/order_validation_utils_test.ts2
-rw-r--r--packages/order-utils/test/rate_utils_test.ts2
-rw-r--r--packages/order-utils/test/remaining_fillable_calculator_test.ts6
-rw-r--r--packages/order-utils/test/signature_utils_test.ts4
-rw-r--r--packages/order-utils/test/sorting_utils_test.ts2
-rw-r--r--packages/order-utils/test/utils/simple_erc20_balance_and_proxy_allowance_fetcher.ts5
-rw-r--r--packages/order-utils/test/utils/test_order_factory.ts2
-rw-r--r--packages/order-utils/test/utils/web3_wrapper.ts4
-rw-r--r--packages/order-utils/tslint.json2
-rw-r--r--packages/order-watcher/.npmignore1
-rw-r--r--packages/order-watcher/CHANGELOG.json24
-rw-r--r--packages/order-watcher/CHANGELOG.md11
-rw-r--r--packages/order-watcher/README.md10
-rw-r--r--packages/order-watcher/package.json53
-rw-r--r--packages/order-watcher/src/artifacts.ts13
-rw-r--r--packages/order-watcher/src/globals.d.ts6
-rw-r--r--packages/order-watcher/src/index.ts6
-rw-r--r--packages/order-watcher/src/order_watcher/collision_resistant_abi_decoder.ts2
-rw-r--r--packages/order-watcher/src/order_watcher/dependent_order_hashes_tracker.ts6
-rw-r--r--packages/order-watcher/src/order_watcher/event_watcher.ts4
-rw-r--r--packages/order-watcher/src/order_watcher/expiration_watcher.ts2
-rw-r--r--packages/order-watcher/src/order_watcher/order_watcher.ts33
-rw-r--r--packages/order-watcher/src/types.ts2
-rw-r--r--packages/order-watcher/src/utils/assert.ts10
-rw-r--r--packages/order-watcher/src/utils/utils.ts2
-rw-r--r--packages/order-watcher/test/expiration_watcher_test.ts31
-rw-r--r--packages/order-watcher/test/global_hooks.ts13
-rw-r--r--packages/order-watcher/test/order_watcher_test.ts57
-rw-r--r--packages/order-watcher/test/utils/migrate.ts18
-rw-r--r--packages/order-watcher/test/utils/token_utils.ts34
-rw-r--r--packages/order-watcher/test/utils/web3_wrapper.ts4
-rw-r--r--packages/order-watcher/tslint.json2
-rw-r--r--packages/react-docs/CHANGELOG.json18
-rw-r--r--packages/react-docs/CHANGELOG.md10
-rw-r--r--packages/react-docs/README.md10
-rw-r--r--packages/react-docs/package.json23
-rw-r--r--packages/react-docs/src/components/badge.tsx2
-rw-r--r--packages/react-docs/src/components/comment.tsx4
-rw-r--r--packages/react-docs/src/components/custom_enum.tsx4
-rw-r--r--packages/react-docs/src/components/doc_reference.tsx (renamed from packages/react-docs/src/components/documentation.tsx)191
-rw-r--r--packages/react-docs/src/components/event_definition.tsx4
-rw-r--r--packages/react-docs/src/components/interface.tsx2
-rw-r--r--packages/react-docs/src/components/property_block.tsx4
-rw-r--r--packages/react-docs/src/components/signature.tsx2
-rw-r--r--packages/react-docs/src/components/signature_block.tsx12
-rw-r--r--packages/react-docs/src/components/source_link.tsx10
-rw-r--r--packages/react-docs/src/components/type.tsx77
-rw-r--r--packages/react-docs/src/components/type_definition.tsx7
-rw-r--r--packages/react-docs/src/docs_info.ts70
-rw-r--r--packages/react-docs/src/index.ts4
-rw-r--r--packages/react-docs/src/utils/typedoc_utils.ts14
-rw-r--r--packages/react-docs/tslint.json2
-rw-r--r--packages/react-shared/CHANGELOG.json22
-rw-r--r--packages/react-shared/CHANGELOG.md12
-rw-r--r--packages/react-shared/README.md10
-rw-r--r--packages/react-shared/package.json20
-rw-r--r--packages/react-shared/src/components/anchor_title.tsx76
-rw-r--r--packages/react-shared/src/components/link.tsx145
-rw-r--r--packages/react-shared/src/components/markdown_paragraph_block.tsx10
-rw-r--r--packages/react-shared/src/components/markdown_section.tsx38
-rw-r--r--packages/react-shared/src/components/nested_sidebar_menu.tsx149
-rw-r--r--packages/react-shared/src/components/version_drop_down.tsx37
-rw-r--r--packages/react-shared/src/index.ts4
-rw-r--r--packages/react-shared/src/types.ts16
-rw-r--r--packages/react-shared/src/utils/colors.ts10
-rw-r--r--packages/react-shared/src/utils/constants.ts3
-rw-r--r--packages/react-shared/tslint.json2
-rw-r--r--packages/sol-compiler/CHANGELOG.json18
-rw-r--r--packages/sol-compiler/CHANGELOG.md10
-rw-r--r--packages/sol-compiler/README.md16
-rw-r--r--packages/sol-compiler/package.json28
-rw-r--r--packages/sol-compiler/src/cli.ts2
-rw-r--r--packages/sol-compiler/src/compiler.ts6
-rw-r--r--packages/sol-compiler/src/utils/compiler.ts4
-rw-r--r--packages/sol-compiler/src/utils/encoder.ts6
-rw-r--r--packages/sol-compiler/src/utils/fs_wrapper.ts2
-rw-r--r--packages/sol-compiler/test/util/constants.ts2
-rw-r--r--packages/sol-compiler/test/util/provider.ts2
-rw-r--r--packages/sol-compiler/tslint.json2
-rw-r--r--packages/sol-cov/CHANGELOG.json19
-rw-r--r--packages/sol-cov/CHANGELOG.md10
-rw-r--r--packages/sol-cov/README.md12
-rw-r--r--packages/sol-cov/package.json26
-rw-r--r--packages/sol-cov/src/artifact_adapters/sol_compiler_artifact_adapter.ts2
-rw-r--r--packages/sol-cov/src/artifact_adapters/truffle_artifact_adapter.ts2
-rw-r--r--packages/sol-cov/src/index.ts2
-rw-r--r--packages/sol-cov/src/revert_trace.ts2
-rw-r--r--packages/sol-cov/src/trace.ts2
-rw-r--r--packages/sol-cov/src/trace_collection_subprovider.ts6
-rw-r--r--packages/sol-cov/src/trace_collector.ts2
-rw-r--r--packages/sol-cov/src/utils.ts2
-rw-r--r--packages/sol-cov/tslint.json2
-rw-r--r--packages/sol-doc/CHANGELOG.json18
-rw-r--r--packages/sol-doc/CHANGELOG.md8
-rw-r--r--packages/sol-doc/package.json16
-rw-r--r--packages/sol-doc/src/cli.ts2
-rw-r--r--packages/sol-doc/src/sol_doc.ts18
-rw-r--r--packages/sol-doc/test/solidity_doc_generator_test.ts2
-rw-r--r--packages/sol-doc/tslint.json2
-rw-r--r--packages/sol-resolver/CHANGELOG.json18
-rw-r--r--packages/sol-resolver/CHANGELOG.md10
-rw-r--r--packages/sol-resolver/README.md12
-rw-r--r--packages/sol-resolver/package.json13
-rw-r--r--packages/sol-resolver/tslint.json2
-rw-r--r--packages/sra-report/.npmignore6
-rw-r--r--packages/sra-report/CHANGELOG.json289
-rw-r--r--packages/sra-report/CHANGELOG.md132
-rw-r--r--packages/sra-report/README.md138
-rwxr-xr-xpackages/sra-report/bin/sra-report.js2
-rw-r--r--packages/sra-report/package.json73
-rw-r--r--packages/sra-report/postman_collections/sra_report.postman_collection.json910
-rw-r--r--packages/sra-report/src/contract_addresses/kovan_addresses.ts5
-rw-r--r--packages/sra-report/src/contract_addresses/mainnet_addresses.ts5
-rw-r--r--packages/sra-report/src/contract_addresses/rinkeby_addresses.ts5
-rw-r--r--packages/sra-report/src/contract_addresses/ropsten_addresses.ts5
-rw-r--r--packages/sra-report/src/globals.d.ts4
-rw-r--r--packages/sra-report/src/index.ts111
-rw-r--r--packages/sra-report/src/postman_environment_factory.ts144
-rw-r--r--packages/sra-report/src/utils.ts6
-rw-r--r--packages/sra-report/test/environments/postman_environment.json223
-rw-r--r--packages/sra-report/test/fixtures/v0/token_pairs/default_request.json3698
-rw-r--r--packages/sra-report/test/fixtures/v0/token_pairs/malformed.json30
-rw-r--r--packages/sra-report/test/fixtures/v0/token_pairs/token_a_and_token_b_params.json16
-rw-r--r--packages/sra-report/test/fixtures/v0/token_pairs/token_a_param.json1864
-rw-r--r--packages/sra-report/test/fixtures/v0/token_pairs/token_b_param.json1864
-rw-r--r--packages/sra-report/test/postman_collection_v0_test.ts76
-rw-r--r--packages/sra-report/test/test_runner.ts143
-rw-r--r--packages/sra-report/tslint.json3
-rw-r--r--packages/sra-spec/CHANGELOG.json19
-rw-r--r--packages/sra-spec/CHANGELOG.md10
-rw-r--r--packages/sra-spec/README.md8
-rw-r--r--packages/sra-spec/package.json12
-rw-r--r--packages/sra-spec/src/json-schemas.ts8
-rw-r--r--packages/sra-spec/src/md/introduction.md4
-rw-r--r--packages/sra-spec/tslint.json2
-rw-r--r--packages/subproviders/CHANGELOG.json16
-rw-r--r--packages/subproviders/CHANGELOG.md12
-rw-r--r--packages/subproviders/README.md10
-rw-r--r--packages/subproviders/package.json27
-rw-r--r--packages/subproviders/src/index.ts9
-rw-r--r--packages/subproviders/src/subproviders/base_wallet_subprovider.ts4
-rw-r--r--packages/subproviders/src/subproviders/eth_lightwallet_subprovider.ts2
-rw-r--r--packages/subproviders/src/subproviders/ledger.ts4
-rw-r--r--packages/subproviders/src/subproviders/metamask_subprovider.ts2
-rw-r--r--packages/subproviders/src/subproviders/mnemonic_wallet.ts6
-rw-r--r--packages/subproviders/src/subproviders/private_key_wallet.ts6
-rw-r--r--packages/subproviders/src/subproviders/redundant_subprovider.ts2
-rw-r--r--packages/subproviders/src/subproviders/rpc_subprovider.ts6
-rw-r--r--packages/subproviders/src/subproviders/signer.ts2
-rw-r--r--packages/subproviders/src/subproviders/subprovider.ts2
-rw-r--r--packages/subproviders/src/types.ts2
-rw-r--r--packages/subproviders/test/integration/ledger_subprovider_test.ts4
-rw-r--r--packages/subproviders/test/unit/nonce_tracker_subprovider_test.ts2
-rw-r--r--packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts2
-rw-r--r--packages/subproviders/test/utils/report_callback_errors.ts2
-rw-r--r--packages/subproviders/tslint.json2
-rw-r--r--packages/testnet-faucets/README.md6
-rw-r--r--packages/testnet-faucets/package.json20
-rw-r--r--packages/testnet-faucets/src/ts/dispatch_queue.ts2
-rw-r--r--packages/testnet-faucets/src/ts/dispense_asset_tasks.ts4
-rw-r--r--packages/testnet-faucets/src/ts/error_reporter.ts2
-rw-r--r--packages/testnet-faucets/src/ts/handler.ts13
-rw-r--r--packages/testnet-faucets/src/ts/parameter_transformer.ts2
-rw-r--r--packages/testnet-faucets/tslint.json2
-rw-r--r--packages/tslint-config/CHANGELOG.json18
-rw-r--r--packages/tslint-config/CHANGELOG.md10
-rw-r--r--packages/tslint-config/README.md10
-rw-r--r--packages/tslint-config/package.json7
-rw-r--r--packages/types/CHANGELOG.json16
-rw-r--r--packages/types/CHANGELOG.md12
-rw-r--r--packages/types/README.md12
-rw-r--r--packages/types/package.json11
-rw-r--r--packages/types/src/index.ts6
-rw-r--r--packages/types/tslint.json2
-rw-r--r--packages/typescript-typings/CHANGELOG.json18
-rw-r--r--packages/typescript-typings/CHANGELOG.md10
-rw-r--r--packages/typescript-typings/README.md10
-rw-r--r--packages/typescript-typings/package.json7
-rw-r--r--packages/utils/CHANGELOG.json18
-rw-r--r--packages/utils/CHANGELOG.md10
-rw-r--r--packages/utils/README.md12
-rw-r--r--packages/utils/package.json15
-rw-r--r--packages/utils/src/abi_decoder.ts10
-rw-r--r--packages/utils/src/configured_bignumber.ts23
-rw-r--r--packages/utils/src/sign_typed_data_utils.ts2
-rw-r--r--packages/utils/tslint.json2
-rw-r--r--packages/web3-wrapper/CHANGELOG.json14
-rw-r--r--packages/web3-wrapper/CHANGELOG.md13
-rw-r--r--packages/web3-wrapper/README.md10
-rw-r--r--packages/web3-wrapper/package.json21
-rw-r--r--packages/web3-wrapper/src/index.ts2
-rw-r--r--packages/web3-wrapper/src/marshaller.ts2
-rw-r--r--packages/web3-wrapper/src/utils.ts2
-rw-r--r--packages/web3-wrapper/src/web3_wrapper.ts22
-rw-r--r--packages/web3-wrapper/tslint.json2
-rw-r--r--packages/website/README.md4
-rw-r--r--packages/website/less/all.less13
-rw-r--r--packages/website/md/docs/asset_buyer/installation.md17
-rw-r--r--packages/website/md/docs/asset_buyer/introduction.md1
-rw-r--r--packages/website/md/docs/asset_buyer/usage.md39
-rw-r--r--packages/website/md/docs/connect/1/installation.md (renamed from packages/website/md/docs/connect/1.0.0/installation.md)0
-rw-r--r--packages/website/md/docs/connect/1/introduction.md (renamed from packages/website/md/docs/connect/1.0.0/introduction.md)0
-rw-r--r--packages/website/md/docs/connect/2/introduction.md (renamed from packages/website/md/docs/connect/2.0.0/introduction.md)0
-rw-r--r--packages/website/md/docs/connect/3/installation.md15
-rw-r--r--packages/website/md/docs/contract_wrappers/1/installation.md (renamed from packages/website/md/docs/contract_wrappers/installation.md)0
-rw-r--r--packages/website/md/docs/contract_wrappers/1/introduction.md (renamed from packages/website/md/docs/contract_wrappers/introduction.md)0
-rw-r--r--packages/website/md/docs/contract_wrappers/2/installation.md11
-rw-r--r--packages/website/md/docs/json_schemas/1/installation.md (renamed from packages/website/md/docs/json_schemas/1.0.0/installation.md)0
-rw-r--r--packages/website/md/docs/json_schemas/1/introduction.md (renamed from packages/website/md/docs/json_schemas/1.0.0/introduction.md)0
-rw-r--r--packages/website/md/docs/json_schemas/1/schemas.md (renamed from packages/website/md/docs/json_schemas/1.0.0/schemas.md)0
-rw-r--r--packages/website/md/docs/json_schemas/1/usage.md (renamed from packages/website/md/docs/json_schemas/1.0.0/usage.md)0
-rw-r--r--packages/website/md/docs/json_schemas/2.0.0/schemas.md28
-rw-r--r--packages/website/md/docs/json_schemas/2/schemas.md40
-rw-r--r--packages/website/md/docs/json_schemas/3/installation.md17
-rw-r--r--packages/website/md/docs/json_schemas/3/introduction.md3
-rw-r--r--packages/website/md/docs/json_schemas/3/schemas.md41
-rw-r--r--packages/website/md/docs/json_schemas/3/usage.md14
-rw-r--r--packages/website/md/docs/order_utils/1/installation.md (renamed from packages/website/md/docs/order_utils/1.0.0/installation.md)0
-rw-r--r--packages/website/md/docs/order_utils/1/introduction.md (renamed from packages/website/md/docs/order_utils/1.0.0/introduction.md)0
-rw-r--r--packages/website/md/docs/order_utils/2/installation.md17
-rw-r--r--packages/website/md/docs/order_utils/2/introduction.md1
-rw-r--r--packages/website/md/docs/order_watcher/1/installation.md (renamed from packages/website/md/docs/order_watcher/installation.md)0
-rw-r--r--packages/website/md/docs/order_watcher/1/introduction.md (renamed from packages/website/md/docs/order_watcher/introduction.md)0
-rw-r--r--packages/website/md/docs/order_watcher/2/installation.md17
-rw-r--r--packages/website/md/docs/order_watcher/2/introduction.md1
-rw-r--r--packages/website/md/docs/smart_contracts/1/introduction.md (renamed from packages/website/md/docs/smart_contracts/1.0.0/introduction.md)0
-rw-r--r--packages/website/md/docs/smart_contracts/2/introduction.md (renamed from packages/website/md/docs/smart_contracts/2.0.0/introduction.md)0
-rw-r--r--packages/website/md/docs/sol-compiler/1/installation.md (renamed from packages/website/md/docs/sol-compiler/installation.md)0
-rw-r--r--packages/website/md/docs/sol-compiler/1/introduction.md (renamed from packages/website/md/docs/sol-compiler/introduction.md)0
-rw-r--r--packages/website/md/docs/sol-compiler/1/usage.md (renamed from packages/website/md/docs/sol-compiler/usage.md)0
-rw-r--r--packages/website/md/docs/sol-compiler/2/installation.md23
-rw-r--r--packages/website/md/docs/sol-compiler/2/usage.md24
-rw-r--r--packages/website/md/docs/sol_cov/1/installation.md (renamed from packages/website/md/docs/sol_cov/installation.md)0
-rw-r--r--packages/website/md/docs/sol_cov/1/introduction.md (renamed from packages/website/md/docs/sol_cov/introduction.md)0
-rw-r--r--packages/website/md/docs/sol_cov/1/usage.md (renamed from packages/website/md/docs/sol_cov/usage.md)0
-rw-r--r--packages/website/md/docs/sol_cov/2/installation.md17
-rw-r--r--packages/website/md/docs/sol_cov/2/introduction.md1
-rw-r--r--packages/website/md/docs/sol_cov/2/usage.md62
-rw-r--r--packages/website/md/docs/subproviders/1/installation.md (renamed from packages/website/md/docs/subproviders/installation.md)0
-rw-r--r--packages/website/md/docs/subproviders/1/introduction.md (renamed from packages/website/md/docs/subproviders/introduction.md)0
-rw-r--r--packages/website/md/docs/subproviders/1/ledger_node_hid.md (renamed from packages/website/md/docs/subproviders/ledger_node_hid.md)0
-rw-r--r--packages/website/md/docs/subproviders/2/installation.md15
-rw-r--r--packages/website/md/docs/web3_wrapper/1/installation.md (renamed from packages/website/md/docs/web3_wrapper/installation.md)0
-rw-r--r--packages/website/md/docs/web3_wrapper/1/introduction.md (renamed from packages/website/md/docs/web3_wrapper/introduction.md)0
-rw-r--r--packages/website/md/docs/web3_wrapper/2/installation.md25
-rw-r--r--packages/website/package.json43
-rw-r--r--packages/website/public/css/basscss_responsive_custom.css12
-rw-r--r--packages/website/public/images/developers/tutorials/0x_order_basics.svg1
-rw-r--r--packages/website/public/images/developers/tutorials/build_a_relayer.svg3
-rw-r--r--packages/website/public/images/developers/tutorials/build_a_trading_bot.svg6
-rw-r--r--packages/website/public/images/developers/tutorials/develop_on_ethereum.svg4
-rw-r--r--packages/website/public/images/developers/tutorials/use_shared_liquidity.svg3
-rw-r--r--packages/website/public/images/docs_logo.svg24
-rw-r--r--packages/website/public/images/landing/0x_homepage.svg57
-rw-r--r--packages/website/translations/chinese.json21
-rw-r--r--packages/website/translations/english.json22
-rw-r--r--packages/website/translations/korean.json21
-rw-r--r--packages/website/translations/russian.json21
-rw-r--r--packages/website/translations/spanish.json21
-rw-r--r--packages/website/ts/blockchain.ts173
-rw-r--r--packages/website/ts/blockchain_watcher.ts4
-rw-r--r--packages/website/ts/components/dialogs/blockchain_err_dialog.tsx2
-rw-r--r--packages/website/ts/components/dialogs/eth_weth_conversion_dialog.tsx4
-rw-r--r--packages/website/ts/components/dialogs/ledger_config_dialog.tsx8
-rw-r--r--packages/website/ts/components/dialogs/portal_disclaimer_dialog.tsx2
-rw-r--r--packages/website/ts/components/dialogs/send_dialog.tsx2
-rw-r--r--packages/website/ts/components/dialogs/u2f_not_supported_dialog.tsx2
-rw-r--r--packages/website/ts/components/documentation/docs_logo.tsx20
-rw-r--r--packages/website/ts/components/documentation/docs_top_bar.tsx108
-rw-r--r--packages/website/ts/components/documentation/overview_content.tsx134
-rw-r--r--packages/website/ts/components/documentation/sidebar_header.tsx57
-rw-r--r--packages/website/ts/components/documentation/tutorial_button.tsx59
-rw-r--r--packages/website/ts/components/documentation/version_drop_down.tsx80
-rw-r--r--packages/website/ts/components/dropdowns/developers_drop_down.tsx162
-rw-r--r--packages/website/ts/components/dropdowns/network_drop_down.tsx2
-rw-r--r--packages/website/ts/components/eth_weth_conversion_button.tsx4
-rw-r--r--packages/website/ts/components/eth_wrappers.tsx8
-rw-r--r--packages/website/ts/components/fill_order.tsx16
-rw-r--r--packages/website/ts/components/fill_order_json.tsx4
-rw-r--r--packages/website/ts/components/fill_warning_dialog.tsx2
-rw-r--r--packages/website/ts/components/flash_messages/asset_send_completed.tsx6
-rw-r--r--packages/website/ts/components/flash_messages/transaction_submitted.tsx2
-rw-r--r--packages/website/ts/components/footer.tsx110
-rw-r--r--packages/website/ts/components/forms/subscribe_form.tsx2
-rw-r--r--packages/website/ts/components/generate_order/asset_picker.tsx2
-rw-r--r--packages/website/ts/components/generate_order/generate_order_form.tsx8
-rw-r--r--packages/website/ts/components/generate_order/new_token_form.tsx2
-rw-r--r--packages/website/ts/components/inputs/address_input.tsx4
-rw-r--r--packages/website/ts/components/inputs/allowance_state_toggle.tsx6
-rw-r--r--packages/website/ts/components/inputs/balance_bounded_input.tsx4
-rw-r--r--packages/website/ts/components/inputs/eth_amount_input.tsx4
-rw-r--r--packages/website/ts/components/inputs/expiration_input.tsx2
-rw-r--r--packages/website/ts/components/inputs/hash_input.tsx8
-rw-r--r--packages/website/ts/components/inputs/token_amount_input.tsx10
-rw-r--r--packages/website/ts/components/inputs/token_input.tsx2
-rw-r--r--packages/website/ts/components/nested_sidebar_menu.tsx92
-rw-r--r--packages/website/ts/components/onboarding/add_eth_onboarding_step.tsx2
-rw-r--r--packages/website/ts/components/onboarding/install_wallet_onboarding_step.tsx2
-rw-r--r--packages/website/ts/components/onboarding/onboarding_card.tsx2
-rw-r--r--packages/website/ts/components/onboarding/portal_onboarding_flow.tsx2
-rw-r--r--packages/website/ts/components/onboarding/wrap_eth_onboarding_step.tsx4
-rw-r--r--packages/website/ts/components/order_json.tsx2
-rw-r--r--packages/website/ts/components/portal/back_button.tsx6
-rw-r--r--packages/website/ts/components/portal/drawer_menu.tsx4
-rw-r--r--packages/website/ts/components/portal/menu.tsx8
-rw-r--r--packages/website/ts/components/portal/portal.tsx40
-rw-r--r--packages/website/ts/components/portal/text_header.tsx2
-rw-r--r--packages/website/ts/components/relayer_index/relayer_grid_tile.tsx48
-rw-r--r--packages/website/ts/components/relayer_index/relayer_index.tsx23
-rw-r--r--packages/website/ts/components/relayer_index/relayer_top_tokens.tsx2
-rw-r--r--packages/website/ts/components/send_button.tsx2
-rw-r--r--packages/website/ts/components/sidebar_header.tsx35
-rw-r--r--packages/website/ts/components/token_balances.tsx10
-rw-r--r--packages/website/ts/components/top_bar/provider_display.tsx2
-rw-r--r--packages/website/ts/components/top_bar/top_bar.tsx281
-rw-r--r--packages/website/ts/components/top_bar/top_bar_menu_item.tsx23
-rw-r--r--packages/website/ts/components/track_token_confirmation.tsx2
-rw-r--r--packages/website/ts/components/trade_history/trade_history_item.tsx6
-rw-r--r--packages/website/ts/components/ui/alert.tsx2
-rw-r--r--packages/website/ts/components/ui/allowance_state_view.tsx2
-rw-r--r--packages/website/ts/components/ui/balance.tsx2
-rw-r--r--packages/website/ts/components/ui/button.tsx9
-rw-r--r--packages/website/ts/components/ui/container.tsx4
-rw-r--r--packages/website/ts/components/ui/copy_icon.tsx4
-rw-r--r--packages/website/ts/components/ui/custom_menu_item.tsx (renamed from packages/website/ts/components/ui/menu_item.tsx)15
-rw-r--r--packages/website/ts/components/ui/drop_down.tsx12
-rw-r--r--packages/website/ts/components/ui/ethereum_address.tsx4
-rw-r--r--packages/website/ts/components/ui/etherscan_icon.tsx4
-rw-r--r--packages/website/ts/components/ui/fake_text_field.tsx2
-rw-r--r--packages/website/ts/components/ui/help_tooltip.tsx2
-rw-r--r--packages/website/ts/components/ui/icon_button.tsx2
-rw-r--r--packages/website/ts/components/ui/identicon.tsx2
-rw-r--r--packages/website/ts/components/ui/input.tsx2
-rw-r--r--packages/website/ts/components/ui/input_label.tsx2
-rw-r--r--packages/website/ts/components/ui/lifecycle_raised_button.tsx4
-rw-r--r--packages/website/ts/components/ui/party.tsx4
-rw-r--r--packages/website/ts/components/ui/pointer.tsx2
-rw-r--r--packages/website/ts/components/ui/required_label.tsx2
-rw-r--r--packages/website/ts/components/ui/simple_menu.tsx4
-rw-r--r--packages/website/ts/components/ui/spinner.tsx2
-rw-r--r--packages/website/ts/components/ui/swap_icon.tsx2
-rw-r--r--packages/website/ts/components/ui/text.tsx6
-rw-r--r--packages/website/ts/components/visual_order.tsx2
-rw-r--r--packages/website/ts/components/wallet/wallet.tsx6
-rw-r--r--packages/website/ts/components/wallet/wrap_ether_item.tsx6
-rw-r--r--packages/website/ts/containers/asset_buyer_documentation.ts71
-rw-r--r--packages/website/ts/containers/connect_documentation.ts30
-rw-r--r--packages/website/ts/containers/contract_wrappers_documentation.ts24
-rw-r--r--packages/website/ts/containers/docs_home.ts31
-rw-r--r--packages/website/ts/containers/ethereum_types_documentation.ts10
-rw-r--r--packages/website/ts/containers/generate_order_form.ts2
-rw-r--r--packages/website/ts/containers/inputs/eth_amount_input.ts4
-rw-r--r--packages/website/ts/containers/json_schemas_documentation.ts56
-rw-r--r--packages/website/ts/containers/order_utils_documentation.ts25
-rw-r--r--packages/website/ts/containers/order_watcher_documentation.ts25
-rw-r--r--packages/website/ts/containers/portal.ts2
-rw-r--r--packages/website/ts/containers/portal_onboarding_flow.ts2
-rw-r--r--packages/website/ts/containers/smart_contracts_documentation.ts16
-rw-r--r--packages/website/ts/containers/sol_compiler_documentation.ts31
-rw-r--r--packages/website/ts/containers/sol_cov_documentation.ts32
-rw-r--r--packages/website/ts/containers/subproviders_documentation.ts30
-rw-r--r--packages/website/ts/containers/web3_wrapper_documentation.ts28
-rw-r--r--packages/website/ts/containers/wiki.ts3
-rw-r--r--packages/website/ts/containers/zero_ex_js_documentation.ts31
-rw-r--r--packages/website/ts/index.tsx10
-rw-r--r--packages/website/ts/local_storage/trade_history_storage.tsx4
-rw-r--r--packages/website/ts/pages/about/about.tsx8
-rw-r--r--packages/website/ts/pages/about/profile.tsx2
-rw-r--r--packages/website/ts/pages/documentation/developers_page.tsx202
-rw-r--r--packages/website/ts/pages/documentation/doc_page.tsx113
-rw-r--r--packages/website/ts/pages/documentation/docs_home.tsx385
-rw-r--r--packages/website/ts/pages/faq/faq.tsx2
-rw-r--r--packages/website/ts/pages/faq/question.tsx2
-rw-r--r--packages/website/ts/pages/fullscreen_message.tsx2
-rw-r--r--packages/website/ts/pages/jobs/jobs.tsx2
-rw-r--r--packages/website/ts/pages/jobs/join_0x.tsx2
-rw-r--r--packages/website/ts/pages/landing/landing.tsx17
-rw-r--r--packages/website/ts/pages/wiki/wiki.tsx233
-rw-r--r--packages/website/ts/redux/dispatcher.ts2
-rw-r--r--packages/website/ts/redux/reducer.ts4
-rw-r--r--packages/website/ts/schemas/validator.ts2
-rw-r--r--packages/website/ts/style/colors.ts2
-rw-r--r--packages/website/ts/types.ts48
-rw-r--r--packages/website/ts/utils/analytics.ts4
-rw-r--r--packages/website/ts/utils/constants.ts31
-rw-r--r--packages/website/ts/utils/doc_utils.ts6
-rw-r--r--packages/website/ts/utils/error_reporter.ts4
-rw-r--r--packages/website/ts/utils/fake_token_registry.ts879
-rw-r--r--packages/website/ts/utils/fetch_utils.ts2
-rw-r--r--packages/website/ts/utils/mui_theme.ts2
-rw-r--r--packages/website/ts/utils/order_parser.ts4
-rw-r--r--packages/website/ts/utils/token_address_overrides.ts2
-rw-r--r--packages/website/ts/utils/translate.ts17
-rw-r--r--packages/website/ts/utils/utils.ts25
-rw-r--r--packages/website/tsconfig.json4
-rw-r--r--packages/website/tslint.json2
-rw-r--r--python-packages/order_utils/LICENSE13
-rw-r--r--python-packages/order_utils/README.md45
-rwxr-xr-x[-rw-r--r--]python-packages/order_utils/setup.py140
-rw-r--r--python-packages/order_utils/src/conf.py10
-rw-r--r--python-packages/order_utils/src/doc_static/.gitkeep (renamed from packages/sra-report/coverage/.gitkeep)0
-rw-r--r--python-packages/order_utils/src/doc_templates/.gitkeep (renamed from python-packages/order_utils/src/zero_ex/py.typed)0
-rw-r--r--python-packages/order_utils/src/index.rst14
-rw-r--r--python-packages/order_utils/src/zero_ex/__init__.py1
-rw-r--r--python-packages/order_utils/src/zero_ex/contract_artifacts/__init__.py1
l---------python-packages/order_utils/src/zero_ex/contract_artifacts/artifacts1
-rw-r--r--python-packages/order_utils/src/zero_ex/dev_utils/__init__.py1
-rw-r--r--python-packages/order_utils/src/zero_ex/dev_utils/abi_utils.py102
-rw-r--r--python-packages/order_utils/src/zero_ex/dev_utils/type_assertions.py58
-rw-r--r--python-packages/order_utils/src/zero_ex/order_utils/__init__.py12
-rw-r--r--python-packages/order_utils/src/zero_ex/order_utils/asset_data_utils.py143
-rw-r--r--python-packages/order_utils/src/zero_ex/order_utils/py.typed0
-rw-r--r--python-packages/order_utils/src/zero_ex/order_utils/signature_utils.py91
-rw-r--r--python-packages/order_utils/stubs/distutils/__init__.pyi0
-rw-r--r--python-packages/order_utils/stubs/distutils/command/__init__.pyi0
-rw-r--r--python-packages/order_utils/stubs/distutils/command/clean.pyi7
-rw-r--r--python-packages/order_utils/stubs/pytest/__init__.pyi0
-rw-r--r--python-packages/order_utils/stubs/pytest/raises.pyi1
-rw-r--r--python-packages/order_utils/stubs/setuptools/__init__.pyi8
-rw-r--r--python-packages/order_utils/stubs/setuptools/command/__init__.pyi0
-rw-r--r--python-packages/order_utils/stubs/setuptools/command/test.pyi3
-rw-r--r--python-packages/order_utils/stubs/web3/__init__.pyi26
-rw-r--r--python-packages/order_utils/stubs/web3/exceptions.pyi2
-rw-r--r--python-packages/order_utils/stubs/web3/utils/__init__.pyi0
-rw-r--r--python-packages/order_utils/stubs/web3/utils/datatypes.pyi3
-rw-r--r--python-packages/order_utils/test/test_abi_utils.py53
-rw-r--r--python-packages/order_utils/test/test_asset_data_utils.py72
-rw-r--r--python-packages/order_utils/test/test_doctest.py20
-rw-r--r--python-packages/order_utils/test/test_signature_utils.py130
-rw-r--r--python-packages/order_utils/tox.ini13
-rw-r--r--readthedocs.yaml7
-rw-r--r--requirements.readthedocs.txt1
-rw-r--r--tsconfig.json6
-rw-r--r--typedoc-tsconfig.json3
-rw-r--r--yarn.lock2229
1087 files changed, 30200 insertions, 62833 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 876b861d3..0ab512f58 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,357 +1,353 @@
version: 2
jobs:
- build:
- resource_class: medium+
- docker:
- - image: circleci/node:9
- environment:
- CONTRACTS_COMMIT_HASH: '9ed05f5'
- working_directory: ~/repo
- steps:
- - checkout
- - run: echo 'export PATH=$HOME/CIRCLE_PROJECT_REPONAME/node_modules/.bin:$PATH' >> $BASH_ENV
- - run:
- name: install-yarn
- command: sudo npm install --global yarn@1.9.4
- - run:
- name: yarn
- command: yarn --frozen-lockfile install || yarn --frozen-lockfile install
- - run: yarn build:ci:no_website
- - save_cache:
- key: repo-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo
- build-website:
- resource_class: medium+
- docker:
- - image: circleci/node:9
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - run: cd packages/website && yarn build
- test-contracts-ganache:
- docker:
- - image: circleci/node:9
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - run: yarn wsrun test:circleci contracts
- test-contracts-geth:
- docker:
- - image: circleci/node:9
- - image: 0xorg/devnet
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- # HACK(albrow): we need to sleep 10 seconds to ensure the devnet is
- # initialized
- - run: sleep 10 && TEST_PROVIDER=geth yarn wsrun test contracts
- test-publish:
- resource_class: medium+
- docker:
- - image: circleci/node:9
- - image: 0xorg/verdaccio
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - run: yarn test:publish:circleci
- test-doc-generation:
- docker:
- - image: circleci/node:9
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - run: yarn test:generate_docs:circleci
- test-rest:
- docker:
- - image: circleci/node:9
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - run: yarn wsrun test:circleci @0xproject/abi-gen
- - run: yarn wsrun test:circleci @0xproject/assert
- - run: yarn wsrun test:circleci @0xproject/base-contract
- - run: yarn wsrun test:circleci @0xproject/connect
- - run: yarn wsrun test:circleci @0xproject/contract-wrappers
- - run: yarn wsrun test:circleci @0xproject/dev-utils
- - run: yarn wsrun test:circleci @0xproject/json-schemas
- - run: yarn wsrun test:circleci @0xproject/metacoin
- - run: yarn wsrun test:circleci @0xproject/order-utils
- - run: yarn wsrun test:circleci @0xproject/order-watcher
- - run: yarn wsrun test:circleci @0xproject/sol-compiler
- - run: yarn wsrun test:circleci @0xproject/sol-cov
- - run: yarn wsrun test:circleci @0xproject/sol-doc
- - run: yarn wsrun test:circleci @0xproject/sra-report
- - run: yarn wsrun test:circleci @0xproject/subproviders
- - run: yarn wsrun test:circleci @0xproject/web3-wrapper
- - run: yarn wsrun test:circleci @0xproject/utils
- - save_cache:
- key: coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/abi-gen/coverage/lcov.info
- - save_cache:
- key: coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/assert/coverage/lcov.info
- - save_cache:
- key: coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/base-contract/coverage/lcov.info
- - save_cache:
- key: coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/connect/coverage/lcov.info
- - save_cache:
- key: coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/contract-wrappers/coverage/lcov.info
- - save_cache:
- key: coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/dev-utils/coverage/lcov.info
- - save_cache:
- key: coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/json-schemas/coverage/lcov.info
- - save_cache:
- key: coverage-metacoin-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/metacoin/coverage/lcov.info
- - save_cache:
- key: coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/order-utils/coverage/lcov.info
- - save_cache:
- key: coverage-order-watcher-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/order-watcher/coverage/lcov.info
- - save_cache:
- key: coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/sol-compiler/coverage/lcov.info
- - save_cache:
- key: coverage-sol-cov-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/sol-cov/coverage/lcov.info
- - save_cache:
- key: coverage-sol-doc-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/sol-doc/coverage/lcov.info
- - save_cache:
- key: coverage-sra-report-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/sra-report/coverage/lcov.info
- - save_cache:
- key: coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/subproviders/coverage/lcov.info
- - save_cache:
- key: coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/web3-wrapper/coverage/lcov.info
- test-python:
- working_directory: ~/repo
- docker:
- - image: circleci/python
- steps:
- - checkout
- - run: sudo chown -R circleci:circleci /usr/local/bin
- - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages
- - restore_cache:
- key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
- - run:
- command: |
- cd python-packages/order_utils
- python -m ensurepip
- python -m pip install -e .[dev]
- - save_cache:
- key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - "/usr/local/bin"
- - "/usr/local/lib/python3.7/site-packages"
- - ".eggs"
- - ".mypy_cache"
- - ".pytest_cache"
- - ".tox"
- - run:
- command: |
- cd python-packages/order_utils
- coverage run setup.py test
- - save_cache:
- key: coverage-python-order-utils-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/python-packages/order_utils/.coverage
- test-rest-python:
- working_directory: ~/repo
- docker:
- - image: circleci/python
- steps:
- - checkout
- - run: sudo chown -R circleci:circleci /usr/local/bin
- - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages
- - restore_cache:
- key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
- - run:
- command: |
- cd python-packages/order_utils
- python -m ensurepip
- python -m pip install -e .[dev]
- - save_cache:
- key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - "/usr/local/bin"
- - "/usr/local/lib/python3.7/site-packages"
- - ".eggs"
- - ".mypy_cache"
- - ".pytest_cache"
- - ".tox"
- - run:
- command: |
- cd python-packages/order_utils
- tox
- static-tests-python:
- working_directory: ~/repo
- docker:
- - image: circleci/python
- steps:
- - checkout
- - run: sudo chown -R circleci:circleci /usr/local/bin
- - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages
- - restore_cache:
- key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
- - run:
- command: |
- cd python-packages/order_utils
- python -m ensurepip
- python -m pip install -e .[dev]
- - save_cache:
- key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - "/usr/local/bin"
- - "/usr/local/lib/python3.7/site-packages"
- - run:
- command: |
- cd python-packages/order_utils
- python setup.py lint
- static-tests:
- working_directory: ~/repo
- docker:
- - image: circleci/node:9
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - run: yarn lerna run lint
- - run: yarn prettier:ci
- - run: cd packages/0x.js && yarn build:umd:prod
- - run: yarn bundlewatch
- submit-coverage:
- docker:
- - image: circleci/node:9
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-metacoin-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-order-watcher-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-sol-cov-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-sol-doc-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-sra-report-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-contracts-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-python-order-utils-{{ .Environment.CIRCLE_SHA1 }}
- - run: yarn report_coverage
+ build:
+ resource_class: medium+
+ docker:
+ - image: circleci/node:9
+ environment:
+ CONTRACTS_COMMIT_HASH: '9ed05f5'
+ working_directory: ~/repo
+ steps:
+ - checkout
+ - run: echo 'export PATH=$HOME/CIRCLE_PROJECT_REPONAME/node_modules/.bin:$PATH' >> $BASH_ENV
+ - run:
+ name: install-yarn
+ command: sudo npm install --global yarn@1.9.4
+ - run:
+ name: yarn
+ command: yarn --frozen-lockfile install || yarn --frozen-lockfile install
+ - run: yarn build:ci:no_website
+ - save_cache:
+ key: repo-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo
+ build-website:
+ resource_class: medium+
+ docker:
+ - image: circleci/node:9
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: cd packages/website && yarn build:prod
+ test-contracts-ganache:
+ docker:
+ - image: circleci/node:9
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn wsrun test:circleci contracts
+ test-contracts-geth:
+ docker:
+ - image: circleci/node:9
+ - image: 0xorg/devnet
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ # HACK(albrow): we need to sleep 10 seconds to ensure the devnet is
+ # initialized
+ - run: sleep 10 && TEST_PROVIDER=geth yarn wsrun test contracts
+ test-publish:
+ resource_class: medium+
+ docker:
+ - image: circleci/node:9
+ - image: 0xorg/verdaccio
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn test:publish:circleci
+ test-doc-generation:
+ docker:
+ - image: circleci/node:9
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn test:generate_docs:circleci
+ test-rest:
+ docker:
+ - image: circleci/node:9
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn wsrun test:circleci @0x/abi-gen
+ - run: yarn wsrun test:circleci @0x/assert
+ - run: yarn wsrun test:circleci @0x/base-contract
+ - run: yarn wsrun test:circleci @0x/connect
+ - run: yarn wsrun test:circleci @0x/contract-wrappers
+ - run: yarn wsrun test:circleci @0x/dev-utils
+ - run: yarn wsrun test:circleci @0x/json-schemas
+ - run: yarn wsrun test:circleci @0x/metacoin
+ - run: yarn wsrun test:circleci @0x/order-utils
+ - run: yarn wsrun test:circleci @0x/order-watcher
+ - run: yarn wsrun test:circleci @0x/sol-compiler
+ - run: yarn wsrun test:circleci @0x/sol-cov
+ - run: yarn wsrun test:circleci @0x/sol-doc
+ - run: yarn wsrun test:circleci @0x/subproviders
+ - run: yarn wsrun test:circleci @0x/web3-wrapper
+ - run: yarn wsrun test:circleci @0x/utils
+ - run: yarn wsrun test:circleci @0x/instant
+ - save_cache:
+ key: coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/abi-gen/coverage/lcov.info
+ - save_cache:
+ key: coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/assert/coverage/lcov.info
+ - save_cache:
+ key: coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/base-contract/coverage/lcov.info
+ - save_cache:
+ key: coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/connect/coverage/lcov.info
+ - save_cache:
+ key: coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/contract-wrappers/coverage/lcov.info
+ - save_cache:
+ key: coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/dev-utils/coverage/lcov.info
+ - save_cache:
+ key: coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/json-schemas/coverage/lcov.info
+ - save_cache:
+ key: coverage-metacoin-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/metacoin/coverage/lcov.info
+ - save_cache:
+ key: coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/order-utils/coverage/lcov.info
+ - save_cache:
+ key: coverage-order-watcher-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/order-watcher/coverage/lcov.info
+ - save_cache:
+ key: coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/sol-compiler/coverage/lcov.info
+ - save_cache:
+ key: coverage-sol-cov-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/sol-cov/coverage/lcov.info
+ - save_cache:
+ key: coverage-sol-doc-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/sol-doc/coverage/lcov.info
+ - save_cache:
+ key: coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/subproviders/coverage/lcov.info
+ - save_cache:
+ key: coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/web3-wrapper/coverage/lcov.info
+ test-python:
+ working_directory: ~/repo
+ docker:
+ - image: circleci/python
+ - image: 0xorg/ganache-cli
+ command: |
+ ganache-cli --gasLimit 10000000 --noVMErrorsOnRPCResponse --db /snapshot --noVMErrorsOnRPCResponse -p 8545 --networkId 50 -m "concert load couple harbor equip island argue ramp clarify fence smart topic"
+ steps:
+ - checkout
+ - run: sudo chown -R circleci:circleci /usr/local/bin
+ - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages
+ - restore_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ - run:
+ command: |
+ cd python-packages/order_utils
+ python -m ensurepip
+ python -m pip install -e .[dev]
+ - save_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - '/usr/local/bin'
+ - '/usr/local/lib/python3.7/site-packages'
+ - '.eggs'
+ - '.mypy_cache'
+ - '.pytest_cache'
+ - '.tox'
+ - run:
+ command: |
+ cd python-packages/order_utils
+ coverage run setup.py test
+ - save_cache:
+ key: coverage-python-order-utils-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/python-packages/order_utils/.coverage
+ test-rest-python:
+ working_directory: ~/repo
+ docker:
+ - image: circleci/python
+ steps:
+ - checkout
+ - run: sudo chown -R circleci:circleci /usr/local/bin
+ - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages
+ - restore_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ - run:
+ command: |
+ cd python-packages/order_utils
+ python -m ensurepip
+ python -m pip install -e .[dev]
+ - save_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - '/usr/local/bin'
+ - '/usr/local/lib/python3.7/site-packages'
+ - '.eggs'
+ - '.mypy_cache'
+ - '.pytest_cache'
+ - '.tox'
+ - run:
+ command: |
+ cd python-packages/order_utils
+ tox
+ static-tests-python:
+ working_directory: ~/repo
+ docker:
+ - image: circleci/python
+ steps:
+ - checkout
+ - run: sudo chown -R circleci:circleci /usr/local/bin
+ - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages
+ - restore_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ - run:
+ command: |
+ cd python-packages/order_utils
+ python -m ensurepip
+ python -m pip install -e .[dev]
+ - save_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - '/usr/local/bin'
+ - '/usr/local/lib/python3.7/site-packages'
+ - run:
+ command: |
+ cd python-packages/order_utils
+ python setup.py lint
+ static-tests:
+ working_directory: ~/repo
+ docker:
+ - image: circleci/node:9
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn lerna run lint
+ - run: yarn prettier:ci
+ - run: cd packages/0x.js && yarn build:umd:prod
+ - run: yarn bundlewatch
+ submit-coverage:
+ docker:
+ - image: circleci/node:9
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-metacoin-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-order-watcher-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-sol-cov-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-sol-doc-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-contracts-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-python-order-utils-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn report_coverage
workflows:
- version: 2
- main:
- jobs:
- - build
- - build-website:
- requires:
+ version: 2
+ main:
+ jobs:
- build
- - test-contracts-ganache:
- requires:
- - build
- - test-contracts-geth:
- requires:
- - build
- - test-rest:
- requires:
- - build
- - static-tests:
- requires:
- - build
- - test-publish:
- requires:
- - build
- - test-doc-generation:
- requires:
- - build
- - submit-coverage:
- requires:
- - test-rest
+ - build-website:
+ requires:
+ - build
+ - test-contracts-ganache:
+ requires:
+ - build
+ - test-contracts-geth:
+ requires:
+ - build
+ - test-rest:
+ requires:
+ - build
+ - static-tests:
+ requires:
+ - build
+ - test-publish:
+ requires:
+ - build
+ - test-doc-generation:
+ requires:
+ - build
+ - submit-coverage:
+ requires:
+ - test-rest
+ - test-python
- test-python
- - test-python
- - static-tests-python
- # skip python tox run for now, as we don't yet have multiple test environments to support.
- #- test-rest-python
+ - static-tests-python
+ # skip python tox run for now, as we don't yet have multiple test environments to support.
+ #- test-rest-python
diff --git a/.gitattributes b/.gitattributes
index 52031de51..f885b0127 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1 +1,7 @@
*.sol linguist-language=Solidity
+
+# Automatically collapse generated files in GitHub.
+*.svg linguist-generated
+packages/contract-artifacts/artifacts/*json linguist-generated
+packages/abi-gen-wrappers/wrappers/*.ts liguist-generated
+
diff --git a/.gitignore b/.gitignore
index 6143dedb0..9e43f20b0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -79,30 +79,14 @@ packages/react-docs/example/public/bundle*
packages/testnet-faucets/server/
# generated contract artifacts/
+packages/contracts/generated-artifacts/
packages/sol-cov/test/fixtures/artifacts/
packages/metacoin/artifacts/
-packages/order-watcher/test/artifacts/
-packages/contract-wrappers/test/artifacts/
-packages/contract-wrappers/src/artifacts/
-packages/order-watcher/src/artifacts/
-packages/0x.js/src/artifacts/
-packages/order-utils/src/artifacts/
-
-# unstable generated contract artifacts:
-packages/migrations/artifacts/development/
-
-# generated contract watcher
-packages/0x.js/src/generated_contract_wrappers/
-packages/contracts/generated_contract_wrappers/
-packages/contract-wrappers/src/contract_wrappers/generated/
+
+# generated contract wrappers
+packages/abi-gen-wrappers/wrappers
+packages/contracts/generated-wrappers/
packages/metacoin/src/contract_wrappers
-packages/fill-scenarios/src/generated_contract_wrappers/
-packages/order-watcher/src/generated_contract_wrappers/
-packages/order-utils/src/generated_contract_wrappers/
-packages/migrations/src/1.0.0/contract_wrappers
-packages/migrations/src/2.0.0-testnet/contract_wrappers
-packages/migrations/src/2.0.0/contract_wrappers
-packages/migrations/src/development/contract_wrappers
# solc-bin in sol-compiler
packages/sol-compiler/solc_bin/
@@ -115,6 +99,7 @@ packages/*/scripts/
.mypy_cache
.tox
python-packages/*/build
+python-packages/*/dist
__pycache__
python-packages/*/src/*.egg-info
python-packages/*/.coverage
diff --git a/.prettierignore b/.prettierignore
index 5d3e33770..7ef0f6735 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,27 +1,14 @@
lib
.nyc_output
-/packages/contract-wrappers/src/contract_wrappers/generated/
+/packages/contracts/generated-wrappers
+/packages/contracts/generated-artifacts
+/packages/abi-gen-wrappers/src/generated-wrappers
+/packages/contract-artifacts/artifacts
+/python-packages/order_utils/src/zero_ex/contract_artifacts/artifacts
+/packages/json-schemas/schemas
/packages/metacoin/src/contract_wrappers
-/packages/0x.js/src/generated_contract_wrappers/
-/packages/contracts/generated_contract_wrappers/
-/packages/fill-scenarios/src/generated_contract_wrappers/
-/packages/order-watcher/src/generated_contract_wrappers/
-/packages/order-utils/src/generated_contract_wrappers/
-/packages/migrations/src/1.0.0/contract_wrappers
-/packages/migrations/src/2.0.0-testnet/contract_wrappers
-/packages/migrations/src/2.0.0/contract_wrappers
-/packages/0x.js/src/artifacts
-/packages/contracts/src/artifacts
-/packages/contract-wrappers/src/artifacts
-/packages/order-watcher/src/artifacts
/packages/metacoin/artifacts
/packages/sra-spec/public/
-/packages/contract-wrappers/test/artifacts
-/packages/order-watcher/test/artifacts
-/packages/migrations/artifacts/1.0.0
-/packages/migrations/artifacts/2.0.0-testnet
-/packages/migrations/artifacts/2.0.0
-/packages/migrations/artifacts/development
package.json
scripts/postpublish_utils.js
packages/sol-cov/test/fixtures/artifacts
diff --git a/CODEOWNERS b/CODEOWNERS
index 9f9ba666e..3cf75fb2d 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -5,4 +5,31 @@
# https://git-scm.com/docs/gitignore#_pattern_format
# Website
-packages/website/ @BMillman19 @fragosti
+packages/asset-buyer/ @BMillman19 @fragosti @steveklebanoff
+packages/instant/ @BMillman19 @fragosti @steveklebanoff
+packages/website/ @BMillman19 @fragosti @fabioberger @steveklebanoff
+
+# Dev tools & setup
+.circleci/ @LogvinovLeon
+packages/abi-gen/ @LogvinovLeon
+packages/base-contract/ @LogvinovLeon
+packages/connect/ @fragosti
+packages/contract_templates/ @LogvinovLeon
+packages/contract-addresses/ @albrow
+packages/contract-artifacts/ @albrow
+packages/dev-utils/ @LogvinovLeon @fabioberger
+packages/devnet/ @albrow
+packages/ethereum-types/ @LogvinovLeon
+packages/metacoin/ @LogvinovLeon
+packages/monorepo-scripts/ @fabioberger
+packages/order-utils/ @fabioberger @LogvinovLeon
+packages/sol-compiler/ @LogvinovLeon
+packages/sol-cov/ @LogvinovLeon
+packages/sol-resolver/ @LogvinovLeon
+packages/subproviders/ @fabioberger @dekz
+packages/verdaccio/ @albrow
+packages/web3-wrapper/ @LogvinovLeon @fabioberger
+python-packages/ @feuGeneA
+
+# Protocol/smart contracts
+packages/contracts/test/ @albrow
diff --git a/README.md b/README.md
index d850d5703..5ceae41ba 100644
--- a/README.md
+++ b/README.md
@@ -20,39 +20,46 @@ If you're developing on 0x now or are interested in using 0x infrastructure in t
### Published Packages
-| Package | Version | Description |
-| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
-| [`0x.js`](/packages/0x.js) | [![npm](https://img.shields.io/npm/v/0x.js.svg)](https://www.npmjs.com/package/0x.js) | A Javascript library for interacting with the 0x protocol |
-| [`@0xproject/abi-gen`](/packages/abi-gen) | [![npm](https://img.shields.io/npm/v/@0xproject/abi-gen.svg)](https://www.npmjs.com/package/@0xproject/abi-gen) | Tool to generate TS wrappers from smart contract ABIs |
-| [`@0xproject/assert`](/packages/assert) | [![npm](https://img.shields.io/npm/v/@0xproject/assert.svg)](https://www.npmjs.com/package/@0xproject/assert) | Type and schema assertions used by our packages |
-| [`@0xproject/asset-buyer`](/packages/asset-buyer) | [![npm](https://img.shields.io/npm/v/@0xproject/asset-buyer.svg)](https://www.npmjs.com/package/@0xproject/asset-buyer) | Convenience package for discovering and buying assets with Ether. |
-| [`@0xproject/base-contract`](/packages/base-contract) | [![npm](https://img.shields.io/npm/v/@0xproject/base-contract.svg)](https://www.npmjs.com/package/@0xproject/base-contract) | BaseContract used by auto-generated `abi-gen` wrapper contracts |
-| [`@0xproject/connect`](/packages/connect) | [![npm](https://img.shields.io/npm/v/@0xproject/connect.svg)](https://www.npmjs.com/package/@0xproject/connect) | A Javascript library for interacting with the Standard Relayer API |
-| [`@0xproject/dev-utils`](/packages/dev-utils) | [![npm](https://img.shields.io/npm/v/@0xproject/dev-utils.svg)](https://www.npmjs.com/package/@0xproject/dev-utils) | Dev utils to be shared across 0x projects and packages |
-| [`@0xproject/json-schemas`](/packages/json-schemas) | [![npm](https://img.shields.io/npm/v/@0xproject/json-schemas.svg)](https://www.npmjs.com/package/@0xproject/json-schemas) | 0x-related json schemas |
-| [`@0xproject/monorepo-scripts`](/packages/monorepo-scripts) | [![npm](https://img.shields.io/npm/v/@0xproject/monorepo-scripts.svg)](https://www.npmjs.com/package/@0xproject/monorepo-scripts) | Monorepo scripts |
-| [`@0xproject/order-utils`](/packages/order-utils) | [![npm](https://img.shields.io/npm/v/@0xproject/order-utils.svg)](https://www.npmjs.com/package/@0xproject/order-utils) | A set of utilities for generating, parsing, signing and validating 0x orders. |
-| [`@0xproject/react-docs`](/packages/react-docs) | [![npm](https://img.shields.io/npm/v/@0xproject/react-docs.svg)](https://www.npmjs.com/package/@0xproject/react-docs) | React documentation component for rendering TypeDoc & Doxity generated JSON |
-| [`@0xproject/react-shared`](/packages/react-shared) | [![npm](https://img.shields.io/npm/v/@0xproject/react-shared.svg)](https://www.npmjs.com/package/@0xproject/react-shared) | 0x shared react components |
-| [`@0xproject/sol-compiler`](/packages/sol-compiler) | [![npm](https://img.shields.io/npm/v/@0xproject/sol-compiler.svg)](https://www.npmjs.com/package/@0xproject/sol-compiler) | A thin wrapper around Solc.js that outputs artifacts, resolves imports, only re-compiles when needed, and other niceties. |
-| [`@0xproject/sol-cov`](/packages/sol-cov) | [![npm](https://img.shields.io/npm/v/@0xproject/sol-cov.svg)](https://www.npmjs.com/package/@0xproject/sol-cov) | Solidity test coverage tool |
-| [`@0xproject/sra-spec`](/packages/sra-spec) | [![npm](https://img.shields.io/npm/v/@0xproject/sra-spec.svg)](https://www.npmjs.com/package/@0xproject/sra-spec) | OpenAPI specification for the standard relayer API |
-| [`@0xproject/sra-report`](/packages/sra-report) | [![npm](https://img.shields.io/npm/v/@0xproject/sra-report.svg)](https://www.npmjs.com/package/@0xproject/sra-report) | Generate reports for standard relayer API compliance |
-| [`@0xproject/subproviders`](/packages/subproviders) | [![npm](https://img.shields.io/npm/v/@0xproject/subproviders.svg)](https://www.npmjs.com/package/@0xproject/subproviders) | Useful web3 subproviders (e.g LedgerSubprovider) |
-| [`@0xproject/tslint-config`](/packages/tslint-config) | [![npm](https://img.shields.io/npm/v/@0xproject/tslint-config.svg)](https://www.npmjs.com/package/@0xproject/tslint-config) | Custom 0x development TSLint rules |
-| [`@0xproject/types`](/packages/types) | [![npm](https://img.shields.io/npm/v/@0xproject/types.svg)](https://www.npmjs.com/package/@0xproject/types) | Shared type declarations |
-| [`@0xproject/typescript-typings`](/packages/typescript-typings) | [![npm](https://img.shields.io/npm/v/@0xproject/typescript-typings.svg)](https://www.npmjs.com/package/@0xproject/typescript-typings) | Repository of types for external packages |
-| [`@0xproject/utils`](/packages/utils) | [![npm](https://img.shields.io/npm/v/@0xproject/utils.svg)](https://www.npmjs.com/package/@0xproject/utils) | Shared utilities |
-| [`@0xproject/web3-wrapper`](/packages/web3-wrapper) | [![npm](https://img.shields.io/npm/v/@0xproject/web3-wrapper.svg)](https://www.npmjs.com/package/@0xproject/web3-wrapper) | Web3 wrapper |
+| Package | Version | Description |
+| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
+| [`0x.js`](/packages/0x.js) | [![npm](https://img.shields.io/npm/v/0x.js.svg)](https://www.npmjs.com/package/0x.js) | A Javascript library for interacting with the 0x protocol |
+| [`@0x/abi-gen`](/packages/abi-gen) | [![npm](https://img.shields.io/npm/v/@0x/abi-gen.svg)](https://www.npmjs.com/package/@0x/abi-gen) | Tool to generate TS wrappers from smart contract ABIs |
+| [`@0x/abi-gen-wrappers`](/packages/abi-gen-wrappers) | [![npm](https://img.shields.io/npm/v/@0x/abi-gen-wrappers.svg)](https://www.npmjs.com/package/@0x/abi-gen-wrappers) | Low-level 0x smart contract wrappers generated using @0x/abi-gen |
+| [`@0x/assert`](/packages/assert) | [![npm](https://img.shields.io/npm/v/@0x/assert.svg)](https://www.npmjs.com/package/@0x/assert) | Type and schema assertions used by our packages |
+| [`@0x/asset-buyer`](/packages/asset-buyer) | [![npm](https://img.shields.io/npm/v/@0x/asset-buyer.svg)](https://www.npmjs.com/package/@0x/asset-buyer) | Convenience package for discovering and buying assets with Ether |
+| [`@0x/base-contract`](/packages/base-contract) | [![npm](https://img.shields.io/npm/v/@0x/base-contract.svg)](https://www.npmjs.com/package/@0x/base-contract) | BaseContract used by auto-generated `abi-gen` wrapper contracts |
+| [`@0x/connect`](/packages/connect) | [![npm](https://img.shields.io/npm/v/@0x/connect.svg)](https://www.npmjs.com/package/@0x/connect) | A Javascript library for interacting with the Standard Relayer API |
+| [`@0x/contract-addresses`](/packages/contract-addresses) | [![npm](https://img.shields.io/npm/v/@0x/contract-addresses.svg)](https://www.npmjs.com/package/@0x/contract-addresses) | Used to get known addresses of deployed 0x contracts |
+| [`@0x/contract-artifacts`](/packages/contract-artifacts) | [![npm](https://img.shields.io/npm/v/@0x/contract-artifacts.svg)](https://www.npmjs.com/package/@0x/contract-artifacts) | 0x smart contract compilation artifacts |
+| [`@0x/contract-wrappers`](/packages/contract-wrappers) | [![npm](https://img.shields.io/npm/v/@0x/contract-wrappers.svg)](https://www.npmjs.com/package/@0x/contract-wrappers) | Smart TS wrappers for 0x smart contracts |
+| [`@0x/dev-utils`](/packages/dev-utils) | [![npm](https://img.shields.io/npm/v/@0x/dev-utils.svg)](https://www.npmjs.com/package/@0x/dev-utils) | Dev utils to be shared across 0x projects and packages |
+| [`@0x/fill-scenarios`](/packages/fill-scenarios) | [![npm](https://img.shields.io/npm/v/@0x/fill-scenarios.svg)](https://www.npmjs.com/package/@0x/fill-scenarios) | 0x order fill scenario generation |
+| [`@0x/json-schemas`](/packages/json-schemas) | [![npm](https://img.shields.io/npm/v/@0x/json-schemas.svg)](https://www.npmjs.com/package/@0x/json-schemas) | 0x-related json schemas |
+| [`@0x/migrations`](/packages/migrations) | [![npm](https://img.shields.io/npm/v/@0x/migrations.svg)](https://www.npmjs.com/package/@0x/migrations) | 0x smart contract migrations |
+| [`@0x/order-utils`](/packages/order-utils) | [![npm](https://img.shields.io/npm/v/@0x/order-utils.svg)](https://www.npmjs.com/package/@0x/order-utils) | A set of utilities for generating, parsing, signing and validating 0x orders |
+| [`@0x/order-watcher`](/packages/order-watcher) | [![npm](https://img.shields.io/npm/v/@0x/order-watcher.svg)](https://www.npmjs.com/package/@0x/order-watcher) | An order watcher daemon that watches for order validity |
+| [`@0x/react-docs`](/packages/react-docs) | [![npm](https://img.shields.io/npm/v/@0x/react-docs.svg)](https://www.npmjs.com/package/@0x/react-docs) | React documentation component for rendering TypeDoc & Doxity generated JSON |
+| [`@0x/react-shared`](/packages/react-shared) | [![npm](https://img.shields.io/npm/v/@0x/react-shared.svg)](https://www.npmjs.com/package/@0x/react-shared) | 0x shared react components |
+| [`@0x/sol-compiler`](/packages/sol-compiler) | [![npm](https://img.shields.io/npm/v/@0x/sol-compiler.svg)](https://www.npmjs.com/package/@0x/sol-compiler) | A thin wrapper around Solc.js that outputs artifacts, resolves imports, only re-compiles when needed, and other niceties |
+| [`@0x/sol-cov`](/packages/sol-cov) | [![npm](https://img.shields.io/npm/v/@0x/sol-cov.svg)](https://www.npmjs.com/package/@0x/sol-cov) | Solidity test coverage tool |
+| [`@0x/sol-doc`](/packages/sol-doc) | [![npm](https://img.shields.io/npm/v/@0x/sol-doc.svg)](https://www.npmjs.com/package/@0x/sol-doc) | Solidity documentation generator |
+| [`@0x/sol-resolver`](/packages/sol-resolver) | [![npm](https://img.shields.io/npm/v/@0x/sol-resolver.svg)](https://www.npmjs.com/package/@0x/sol-resolver) | Import resolver for smart contracts dependencies |
+| [`@0x/sra-spec`](/packages/sra-spec) | [![npm](https://img.shields.io/npm/v/@0x/sra-spec.svg)](https://www.npmjs.com/package/@0x/sra-spec) | OpenAPI specification for the standard relayer API |
+| [`@0x/subproviders`](/packages/subproviders) | [![npm](https://img.shields.io/npm/v/@0x/subproviders.svg)](https://www.npmjs.com/package/@0x/subproviders) | Useful web3 subproviders (e.g. LedgerSubprovider) |
+| [`@0x/tslint-config`](/packages/tslint-config) | [![npm](https://img.shields.io/npm/v/@0x/tslint-config.svg)](https://www.npmjs.com/package/@0x/tslint-config) | Custom 0x development TSLint rules |
+| [`@0x/types`](/packages/types) | [![npm](https://img.shields.io/npm/v/@0x/types.svg)](https://www.npmjs.com/package/@0x/types) | Shared type declarations |
+| [`@0x/typescript-typings`](/packages/typescript-typings) | [![npm](https://img.shields.io/npm/v/@0x/typescript-typings.svg)](https://www.npmjs.com/package/@0x/typescript-typings) | Repository of types for external packages |
+| [`@0x/utils`](/packages/utils) | [![npm](https://img.shields.io/npm/v/@0x/utils.svg)](https://www.npmjs.com/package/@0x/utils) | Shared utilities |
+| [`@0x/web3-wrapper`](/packages/web3-wrapper) | [![npm](https://img.shields.io/npm/v/@0x/web3-wrapper.svg)](https://www.npmjs.com/package/@0x/web3-wrapper) | Web3 wrapper |
### Private Packages
-| Package | Description |
-| --------------------------------------------------------------- | ---------------------------------------------------------------- |
-| [`@0xproject/contracts`](/packages/contracts) | 0x solidity smart contracts & tests |
-| [`@0xproject/react-docs-example`](/packages/react-docs-example) | Example documentation site created with `@0xproject/react-docs` |
-| [`@0xproject/testnet-faucets`](/packages/testnet-faucets) | A faucet micro-service that dispenses test ERC20 tokens or Ether |
-| [`@0xproject/website`](/packages/website) | 0x website & Portal DApp |
+| Package | Description |
+| -------------------------------------------------------- | ---------------------------------------------------------------- |
+| [`@0x/contracts`](/packages/contracts) | 0x solidity smart contracts & tests |
+| [`@0x/react-docs-example`](/packages/react-docs-example) | Example documentation site created with `@0x/react-docs` |
+| [`@0x/testnet-faucets`](/packages/testnet-faucets) | A faucet micro-service that dispenses test ERC20 tokens or Ether |
+| [`@0x/website`](/packages/website) | 0x website & Portal DApp |
## Usage
@@ -71,10 +78,10 @@ Dedicated documentation pages:
Node version >= 6.12 is required.
Most of the packages require additional typings for external dependencies.
-You can include those by prepending the `@0xproject/typescript-typings` package to your [`typeRoots`](http://www.typescriptlang.org/docs/handbook/tsconfig-json.html) config.
+You can include those by prepending the `@0x/typescript-typings` package to your [`typeRoots`](http://www.typescriptlang.org/docs/handbook/tsconfig-json.html) config.
```json
-"typeRoots": ["node_modules/@0xproject/typescript-typings/types", "node_modules/@types"],
+"typeRoots": ["node_modules/@0x/typescript-typings/types", "node_modules/@types"],
```
## Contributing
@@ -87,6 +94,10 @@ We strongly recommend that the community help us make improvements and determine
Make sure you are using Yarn v1.9.4. To install using brew:
+```bash
+brew install yarn@1.9.4
+```
+
Then install dependencies
```bash
@@ -104,7 +115,7 @@ yarn build
To build a specific package:
```bash
-PKG=@0xproject/web3-wrapper yarn build
+PKG=@0x/web3-wrapper yarn build
```
### Watch
@@ -121,7 +132,7 @@ To watch a specific package and all it's dependent packages:
PKG=[NPM_PACKAGE_NAME] yarn watch
e.g
-PKG=@0xproject/web3-wrapper yarn watch
+PKG=@0x/web3-wrapper yarn watch
```
### Clean
@@ -177,5 +188,5 @@ yarn test
Run a specific package's test:
```bash
-PKG=@0xproject/web3-wrapper yarn test
+PKG=@0x/web3-wrapper yarn test
```
diff --git a/package.json b/package.json
index e6ae0ebde..e598ac2d3 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,6 @@
"report_coverage": "lcov-result-merger './{packages/*/coverage/lcov.info,python-packages/*/.coverage}' | coveralls",
"test:installation": "node ./packages/monorepo-scripts/lib/test_installation.js",
"test:installation:local": "IS_LOCAL_PUBLISH=true node ./packages/monorepo-scripts/lib/test_installation.js",
- "test:publish:circleci:comment": "HACK(albrow) We need an automated way to login to npm and echo+sleep piped to stdin was the only way I could find to do it.",
"test:publish:circleci": "yarn npm-cli-login -u test -p test -e test@example.com -r http://localhost:4873 && IS_LOCAL_PUBLISH=true run-s script:publish test:installation:local",
"run:publish": "run-s install:all build:monorepo_scripts script:prepublish_checks rebuild:no_website script:publish",
"run:publish:local": "IS_LOCAL_PUBLISH=true yarn run:publish",
@@ -24,9 +23,9 @@
"wsrun": "wsrun",
"lerna": "lerna",
"build": "wsrun build $PKG --fast-exit -r --stages",
- "build:no_website": "wsrun build $PKG --fast-exit -r --stages --exclude @0xproject/website",
- "build:ci:no_website": "wsrun build:ci $PKG --fast-exit -r --stages --exclude @0xproject/website",
- "build:monorepo_scripts": "PKG=@0xproject/monorepo-scripts yarn build",
+ "build:no_website": "wsrun build $PKG --fast-exit -r --stages --exclude @0x/website",
+ "build:ci:no_website": "wsrun build:ci $PKG --fast-exit -r --stages --exclude @0x/website",
+ "build:monorepo_scripts": "PKG=@0x/monorepo-scripts yarn build",
"build:ts": "tsc -b",
"watch:ts": "tsc -b -w",
"clean": "wsrun clean $PKG --fast-exit -r --parallel",
@@ -41,9 +40,9 @@
},
"config": {
"mnemonic": "concert load couple harbor equip island argue ramp clarify fence smart topic",
- "packagesWithDocPages": "0x.js connect json-schemas subproviders web3-wrapper contract-wrappers order-utils order-watcher sol-compiler sol-cov ethereum-types"
+ "packagesWithDocPages": "0x.js connect json-schemas subproviders web3-wrapper contract-wrappers order-utils order-watcher sol-compiler sol-cov ethereum-types asset-buyer"
},
- "bundlewatch" : {
+ "bundlewatch": {
"files": [
{
"path": "packages/0x.js/_bundles/index.min.js",
@@ -51,22 +50,26 @@
},
{
"path": "packages/instant/public/main.bundle.js",
- "maxSize": "350kB"
+ "maxSize": "1000kB"
}
],
"ci": {
- "trackBranches": ["master", "development"],
+ "trackBranches": [
+ "master",
+ "development"
+ ],
"repoBranchBase": "development"
}
},
"devDependencies": {
"@0x-lerna-fork/lerna": "3.0.0-beta.25",
+ "@0xproject/npm-cli-login": "^0.0.11",
"async-child-process": "^1.1.1",
"bundlewatch": "^0.2.1",
"coveralls": "^3.0.0",
"ganache-cli": "6.1.8",
"lcov-result-merger": "^3.0.0",
- "npm-cli-login": "^0.0.10",
+ "lerna": "^3.0.0-beta.25",
"npm-run-all": "^4.1.2",
"prettier": "^1.11.1",
"source-map-support": "^0.5.6",
diff --git a/packages/0x.js/CHANGELOG.json b/packages/0x.js/CHANGELOG.json
index 6dfcc3d33..7d9cb8312 100644
--- a/packages/0x.js/CHANGELOG.json
+++ b/packages/0x.js/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ],
+ "timestamp": 1541740904
+ },
+ {
"version": "2.0.0",
"changes": [
{
@@ -15,8 +24,22 @@
"note":
"Removed `SignerType` (including `SignerType.Metamask`). Please use the `MetamaskSubprovider` to wrap `web3.currentProvider`.",
"pr": 1102
+ },
+ {
+ "note":
+ "Updated to use new modularized artifacts and the latest version of @0xproject/contract-wrappers",
+ "pr": 1105
+ },
+ {
+ "note": "Make web3-provider-engine types a 'dependency' so it's available to users of the library",
+ "pr": 1105
+ },
+ {
+ "note": "Export new `AssetData` type from types",
+ "pr": 1131
}
- ]
+ ],
+ "timestamp": 1539871071
},
{
"version": "1.0.8",
diff --git a/packages/0x.js/CHANGELOG.md b/packages/0x.js/CHANGELOG.md
index 27702413d..d312b2c9b 100644
--- a/packages/0x.js/CHANGELOG.md
+++ b/packages/0x.js/CHANGELOG.md
@@ -5,6 +5,19 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.1 - _November 9, 2018_
+
+ * Dependencies updated
+
+## v2.0.0 - _October 18, 2018_
+
+ * Add support for `eth_signTypedData`. (#1102)
+ * Added `MetamaskSubprovider` to handle inconsistencies in Metamask's signing JSON RPC endpoints. (#1102)
+ * Removed `SignerType` (including `SignerType.Metamask`). Please use the `MetamaskSubprovider` to wrap `web3.currentProvider`. (#1102)
+ * Updated to use new modularized artifacts and the latest version of @0xproject/contract-wrappers (#1105)
+ * Make web3-provider-engine types a 'dependency' so it's available to users of the library (#1105)
+ * Export new `AssetData` type from types (#1131)
+
## v1.0.8 - _October 4, 2018_
* Dependencies updated
@@ -49,7 +62,7 @@ CHANGELOG
* Re-organize the exported interface of 0x.js. Remove the `ZeroEx` class, and instead export the same exports as `0x.js`'s sub-packages: `@0xproject/contract-wrappers`, `@0xproject/order-utils` and `@0xproject/order-watcher` (#963)
-## v1.0.1-rc.3 - _August 13, 2018_
+## v1.0.1-rc.3 - _August 14, 2018_
* Dependencies updated
* Update ecSignOrderHashAsync to return the signature as a string for immediate use in contracts (#914)
diff --git a/packages/0x.js/README.md b/packages/0x.js/README.md
index 329037324..5b7a2308c 100644
--- a/packages/0x.js/README.md
+++ b/packages/0x.js/README.md
@@ -33,7 +33,7 @@ If your project is in [TypeScript](https://www.typescriptlang.org/), add the fol
```json
"compilerOptions": {
- "typeRoots": ["node_modules/@0xproject/typescript-typings/types", "node_modules/@types"],
+ "typeRoots": ["node_modules/@0x/typescript-typings/types", "node_modules/@types"],
}
```
diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json
index 1a57edd45..38478980f 100644
--- a/packages/0x.js/package.json
+++ b/packages/0x.js/package.json
@@ -1,6 +1,6 @@
{
"name": "0x.js",
- "version": "1.0.8",
+ "version": "2.0.1",
"engines": {
"node": ">=6.12"
},
@@ -18,7 +18,7 @@
"build": "yarn build:all",
"build:ci": "yarn build:commonjs",
"build:all": "run-p build:umd:prod build:commonjs",
- "lint": "tslint --project . --exclude **/src/generated_contract_wrappers/**/*",
+ "lint": "tslint --format stylish --project .",
"test:circleci": "run-s test:coverage",
"rebuild_and_test": "run-s build test",
"test:coverage": "nyc npm run test --all && yarn coverage:report:lcov",
@@ -42,16 +42,16 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@0xproject/abi-gen": "^1.0.13",
- "@0xproject/dev-utils": "^1.0.12",
- "@0xproject/migrations": "^1.0.14",
- "@0xproject/monorepo-scripts": "^1.0.11",
- "@0xproject/tslint-config": "^1.0.8",
+ "@0x/abi-gen": "^1.0.15",
+ "@0x/abi-gen-wrappers": "^1.0.2",
+ "@0x/contract-addresses": "^1.1.0",
+ "@0x/dev-utils": "^1.0.14",
+ "@0x/migrations": "^2.0.1",
+ "@0x/tslint-config": "^1.0.10",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
"@types/node": "*",
"@types/sinon": "^2.2.2",
- "@types/web3-provider-engine": "^14.0.0",
"awesome-typescript-loader": "^5.2.1",
"chai": "^4.0.1",
"chai-as-promised": "^7.1.0",
@@ -67,23 +67,24 @@
"sinon": "^4.0.0",
"source-map-support": "^0.5.0",
"tslint": "5.11.0",
- "typedoc": "0.12.0",
+ "typedoc": "0.13.0",
"typescript": "3.0.1",
"uglifyjs-webpack-plugin": "^2.0.1",
"webpack": "^4.20.2"
},
"dependencies": {
- "@0xproject/assert": "^1.0.13",
- "@0xproject/base-contract": "^3.0.1",
- "@0xproject/contract-wrappers": "^2.0.2",
- "@0xproject/order-utils": "^1.0.7",
- "@0xproject/order-watcher": "^2.1.1",
- "@0xproject/subproviders": "^2.0.7",
- "@0xproject/types": "^1.1.4",
- "@0xproject/typescript-typings": "^3.0.2",
- "@0xproject/utils": "^2.0.2",
- "@0xproject/web3-wrapper": "^3.0.3",
- "ethereum-types": "^1.0.11",
+ "@0x/assert": "^1.0.15",
+ "@0x/base-contract": "^3.0.3",
+ "@0x/contract-wrappers": "^3.0.1",
+ "@0x/order-utils": "^2.0.1",
+ "@0x/order-watcher": "^2.2.1",
+ "@0x/subproviders": "^2.1.1",
+ "@0x/types": "^1.2.1",
+ "@0x/typescript-typings": "^3.0.4",
+ "@0x/utils": "^2.0.4",
+ "@0x/web3-wrapper": "^3.1.1",
+ "@types/web3-provider-engine": "^14.0.0",
+ "ethereum-types": "^1.1.2",
"ethers": "~4.0.4",
"lodash": "^4.17.5",
"web3-provider-engine": "14.0.6"
diff --git a/packages/0x.js/src/globals.d.ts b/packages/0x.js/src/globals.d.ts
deleted file mode 100644
index 94e63a32d..000000000
--- a/packages/0x.js/src/globals.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-declare module '*.json' {
- const json: any;
- /* tslint:disable */
- export default json;
- /* tslint:enable */
-}
diff --git a/packages/0x.js/src/index.ts b/packages/0x.js/src/index.ts
index 6eb1fd8ee..2df360b96 100644
--- a/packages/0x.js/src/index.ts
+++ b/packages/0x.js/src/index.ts
@@ -1,4 +1,6 @@
-export { assetDataUtils, signatureUtils, generatePseudoRandomSalt, orderHashUtils } from '@0xproject/order-utils';
+export { ContractAddresses } from '@0x/contract-addresses';
+
+export { assetDataUtils, signatureUtils, generatePseudoRandomSalt, orderHashUtils } from '@0x/order-utils';
export {
ContractWrappers,
@@ -18,6 +20,16 @@ export {
TransactionOpts,
OrderStatus,
OrderInfo,
+ EventCallback,
+ DecodedLogEvent,
+ TransactionEncoder,
+ BalanceAndAllowance,
+ OrderAndTraderInfo,
+ TraderInfo,
+ ValidateOrderFillableOpts,
+} from '@0x/contract-wrappers';
+
+export {
WETH9Events,
WETH9WithdrawalEventArgs,
WETH9ApprovalEventArgs,
@@ -38,18 +50,11 @@ export {
ExchangeSignatureValidatorApprovalEventArgs,
ExchangeFillEventArgs,
ExchangeCancelEventArgs,
- ExchangeEvents,
- EventCallback,
- DecodedLogEvent,
ExchangeEventArgs,
- TransactionEncoder,
- BalanceAndAllowance,
- OrderAndTraderInfo,
- TraderInfo,
- ValidateOrderFillableOpts,
-} from '@0xproject/contract-wrappers';
+ ExchangeEvents,
+} from '@0x/abi-gen-wrappers';
-export { OrderWatcher, OnOrderStateChangeCallback, OrderWatcherConfig } from '@0xproject/order-watcher';
+export { OrderWatcher, OnOrderStateChangeCallback, OrderWatcherConfig } from '@0x/order-watcher';
export import Web3ProviderEngine = require('web3-provider-engine');
@@ -59,11 +64,11 @@ export {
JSONRPCRequestPayloadWithMethod,
ErrorCallback,
MetamaskSubprovider,
-} from '@0xproject/subproviders';
+} from '@0x/subproviders';
-export { AbiDecoder } from '@0xproject/utils';
+export { AbiDecoder } from '@0x/utils';
-export { BigNumber } from '@0xproject/utils';
+export { BigNumber } from '@0x/utils';
export {
ExchangeContractErrs,
@@ -74,11 +79,13 @@ export {
OrderStateInvalid,
OrderState,
AssetProxyId,
+ AssetData,
ERC20AssetData,
ERC721AssetData,
SignatureType,
OrderRelevantState,
-} from '@0xproject/types';
+ Stats,
+} from '@0x/types';
export {
BlockParamLiteral,
diff --git a/packages/0x.js/tslint.json b/packages/0x.js/tslint.json
index ffaefe83a..dd9053357 100644
--- a/packages/0x.js/tslint.json
+++ b/packages/0x.js/tslint.json
@@ -1,3 +1,3 @@
{
- "extends": ["@0xproject/tslint-config"]
+ "extends": ["@0x/tslint-config"]
}
diff --git a/packages/0x.js/typedoc-tsconfig.json b/packages/0x.js/typedoc-tsconfig.json
index c9b0af1ae..a4c669cb6 100644
--- a/packages/0x.js/typedoc-tsconfig.json
+++ b/packages/0x.js/typedoc-tsconfig.json
@@ -3,5 +3,5 @@
"compilerOptions": {
"outDir": "lib"
},
- "include": ["./src/**/*", "./test/**/*"]
+ "include": ["./src/**/*"]
}
diff --git a/packages/abi-gen-wrappers/CHANGELOG.json b/packages/abi-gen-wrappers/CHANGELOG.json
new file mode 100644
index 000000000..c3273536b
--- /dev/null
+++ b/packages/abi-gen-wrappers/CHANGELOG.json
@@ -0,0 +1,29 @@
+[
+ {
+ "version": "1.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ],
+ "timestamp": 1541740904
+ },
+ {
+ "timestamp": 1539871071,
+ "version": "1.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "version": "1.0.0",
+ "changes": [
+ {
+ "pr": 1105,
+ "note": "Initial release"
+ }
+ ]
+ }
+]
diff --git a/packages/abi-gen-wrappers/CHANGELOG.md b/packages/abi-gen-wrappers/CHANGELOG.md
new file mode 100644
index 000000000..18bd28cb8
--- /dev/null
+++ b/packages/abi-gen-wrappers/CHANGELOG.md
@@ -0,0 +1,18 @@
+<!--
+changelogUtils.file is auto-generated using the monorepo-scripts package. Don't edit directly.
+Edit the package's CHANGELOG.json file only.
+-->
+
+CHANGELOG
+
+## v1.0.2 - _November 9, 2018_
+
+ * Dependencies updated
+
+## v1.0.1 - _October 18, 2018_
+
+ * Dependencies updated
+
+## v1.0.0 - _Invalid date_
+
+ * Initial release (#1105)
diff --git a/packages/abi-gen-wrappers/README.md b/packages/abi-gen-wrappers/README.md
new file mode 100644
index 000000000..bcf58ae06
--- /dev/null
+++ b/packages/abi-gen-wrappers/README.md
@@ -0,0 +1,73 @@
+## @0x/abi-gen-wrappers
+
+Low-level 0x smart contract wrappers generated using @0x/abi-gen. These
+low-level wrappers are imported by other packages in the 0x monorepo and
+application developers are not expected to import this package directly.
+
+You may also be interested in the
+[@0x/contract-wrappers](../contract-wrappers/README.md) package which
+includes some higher-level features.
+
+## Installation
+
+```bash
+yarn add @0x/abi-gen-wrappers
+```
+
+**Import**
+
+```typescript
+import * as wrappers from '@0x/abi-gen-wrappers';
+```
+
+or
+
+```javascript
+var wrappers = require('@0x/abi-gen-wrappers');
+```
+
+## Contributing
+
+We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository.
+
+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/abi-gen-wrappers yarn build
+```
+
+### Clean
+
+```bash
+yarn clean
+```
+
+### Lint
+
+```bash
+yarn lint
+```
+
+### Run Tests
+
+```bash
+yarn test
+```
diff --git a/packages/abi-gen-wrappers/package.json b/packages/abi-gen-wrappers/package.json
new file mode 100644
index 000000000..a4316449f
--- /dev/null
+++ b/packages/abi-gen-wrappers/package.json
@@ -0,0 +1,48 @@
+{
+ "name": "@0x/abi-gen-wrappers",
+ "version": "1.0.2",
+ "engines": {
+ "node": ">=6.12"
+ },
+ "description": "Low-level 0x smart contract wrappers generated using @0x/abi-gen",
+ "main": "lib/src/index.js",
+ "directories": {
+ "test": "test"
+ },
+ "scripts": {
+ "build": "yarn pre_build && tsc -b",
+ "build:ci": "yarn build",
+ "lint": "tslint --format stylish --project .",
+ "pre_build": "yarn generate_contract_wrappers",
+ "clean": "shx rm -rf lib wrappers",
+ "generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/generated-wrappers --backend ethers"
+ },
+ "config": {
+ "abis": "../contract-artifacts/artifacts/@(AssetProxyOwner|DummyERC20Token|DummyERC721Token|ERC20Proxy|ERC20Token|ERC721Proxy|ERC721Token|Exchange|Forwarder|IValidator|IWallet|OrderValidator|WETH9|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/packages/abi-gen-wrappers/README.md",
+ "devDependencies": {
+ "@0x/abi-gen": "^1.0.15",
+ "@0x/tslint-config": "^1.0.10",
+ "@0x/utils": "^2.0.4",
+ "@0x/web3-wrapper": "^3.1.1",
+ "ethereum-types": "^1.1.2",
+ "ethers": "~4.0.4",
+ "lodash": "^4.17.5",
+ "shx": "^0.2.2"
+ },
+ "dependencies": {
+ "@0x/base-contract": "^3.0.3"
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts b/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts
new file mode 100644
index 000000000..8ca70e026
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts
@@ -0,0 +1,1876 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+export type AssetProxyOwnerEventArgs =
+ | AssetProxyOwnerAssetProxyRegistrationEventArgs
+ | AssetProxyOwnerConfirmationTimeSetEventArgs
+ | AssetProxyOwnerTimeLockChangeEventArgs
+ | AssetProxyOwnerConfirmationEventArgs
+ | AssetProxyOwnerRevocationEventArgs
+ | AssetProxyOwnerSubmissionEventArgs
+ | AssetProxyOwnerExecutionEventArgs
+ | AssetProxyOwnerExecutionFailureEventArgs
+ | AssetProxyOwnerDepositEventArgs
+ | AssetProxyOwnerOwnerAdditionEventArgs
+ | AssetProxyOwnerOwnerRemovalEventArgs
+ | AssetProxyOwnerRequirementChangeEventArgs;
+
+export enum AssetProxyOwnerEvents {
+ AssetProxyRegistration = 'AssetProxyRegistration',
+ ConfirmationTimeSet = 'ConfirmationTimeSet',
+ TimeLockChange = 'TimeLockChange',
+ Confirmation = 'Confirmation',
+ Revocation = 'Revocation',
+ Submission = 'Submission',
+ Execution = 'Execution',
+ ExecutionFailure = 'ExecutionFailure',
+ Deposit = 'Deposit',
+ OwnerAddition = 'OwnerAddition',
+ OwnerRemoval = 'OwnerRemoval',
+ RequirementChange = 'RequirementChange',
+}
+
+export interface AssetProxyOwnerAssetProxyRegistrationEventArgs extends DecodedLogArgs {
+ assetProxyContract: string;
+ isRegistered: boolean;
+}
+
+export interface AssetProxyOwnerConfirmationTimeSetEventArgs extends DecodedLogArgs {
+ transactionId: BigNumber;
+ confirmationTime: BigNumber;
+}
+
+export interface AssetProxyOwnerTimeLockChangeEventArgs extends DecodedLogArgs {
+ secondsTimeLocked: BigNumber;
+}
+
+export interface AssetProxyOwnerConfirmationEventArgs extends DecodedLogArgs {
+ sender: string;
+ transactionId: BigNumber;
+}
+
+export interface AssetProxyOwnerRevocationEventArgs extends DecodedLogArgs {
+ sender: string;
+ transactionId: BigNumber;
+}
+
+export interface AssetProxyOwnerSubmissionEventArgs extends DecodedLogArgs {
+ transactionId: BigNumber;
+}
+
+export interface AssetProxyOwnerExecutionEventArgs extends DecodedLogArgs {
+ transactionId: BigNumber;
+}
+
+export interface AssetProxyOwnerExecutionFailureEventArgs extends DecodedLogArgs {
+ transactionId: BigNumber;
+}
+
+export interface AssetProxyOwnerDepositEventArgs extends DecodedLogArgs {
+ sender: string;
+ value: BigNumber;
+}
+
+export interface AssetProxyOwnerOwnerAdditionEventArgs extends DecodedLogArgs {
+ owner: string;
+}
+
+export interface AssetProxyOwnerOwnerRemovalEventArgs extends DecodedLogArgs {
+ owner: string;
+}
+
+export interface AssetProxyOwnerRequirementChangeEventArgs extends DecodedLogArgs {
+ required: BigNumber;
+}
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class AssetProxyOwnerContract extends BaseContract {
+ public owners = {
+ async callAsync(
+ index_0: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'owners(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.owners;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'owners'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public removeOwner = {
+ async sendTransactionAsync(
+ owner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('removeOwner(address)').inputs;
+ [owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [owner
+ ]);
+ const encodedData = self._lookupEthersInterface('removeOwner(address)').functions.removeOwner.encode([owner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.removeOwner.estimateGasAsync.bind(
+ self,
+ owner
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ owner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('removeOwner(address)').inputs;
+ [owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('removeOwner(address)').functions.removeOwner.encode([owner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ owner: string,
+ ): string {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('removeOwner(address)').inputs;
+ [owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('removeOwner(address)').functions.removeOwner.encode([owner
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ owner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'removeOwner(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [owner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.removeOwner;
+ const encodedData = ethersFunction.encode([owner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'removeOwner'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public revokeConfirmation = {
+ async sendTransactionAsync(
+ transactionId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('revokeConfirmation(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId
+ ]);
+ const encodedData = self._lookupEthersInterface('revokeConfirmation(uint256)').functions.revokeConfirmation.encode([transactionId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.revokeConfirmation.estimateGasAsync.bind(
+ self,
+ transactionId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ transactionId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('revokeConfirmation(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('revokeConfirmation(uint256)').functions.revokeConfirmation.encode([transactionId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ transactionId: BigNumber,
+ ): string {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('revokeConfirmation(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('revokeConfirmation(uint256)').functions.revokeConfirmation.encode([transactionId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ transactionId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'revokeConfirmation(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.revokeConfirmation;
+ const encodedData = ethersFunction.encode([transactionId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'revokeConfirmation'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public isOwner = {
+ async callAsync(
+ index_0: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'isOwner(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isOwner;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'isOwner'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public confirmations = {
+ async callAsync(
+ index_0: BigNumber,
+ index_1: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'confirmations(uint256,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0,
+ index_1
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0,
+ index_1
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0,
+ index_1
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.confirmations;
+ const encodedData = ethersFunction.encode([index_0,
+ index_1
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'confirmations'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public executeRemoveAuthorizedAddressAtIndex = {
+ async sendTransactionAsync(
+ transactionId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('executeRemoveAuthorizedAddressAtIndex(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId
+ ]);
+ const encodedData = self._lookupEthersInterface('executeRemoveAuthorizedAddressAtIndex(uint256)').functions.executeRemoveAuthorizedAddressAtIndex.encode([transactionId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.executeRemoveAuthorizedAddressAtIndex.estimateGasAsync.bind(
+ self,
+ transactionId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ transactionId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('executeRemoveAuthorizedAddressAtIndex(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('executeRemoveAuthorizedAddressAtIndex(uint256)').functions.executeRemoveAuthorizedAddressAtIndex.encode([transactionId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ transactionId: BigNumber,
+ ): string {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('executeRemoveAuthorizedAddressAtIndex(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('executeRemoveAuthorizedAddressAtIndex(uint256)').functions.executeRemoveAuthorizedAddressAtIndex.encode([transactionId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ transactionId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'executeRemoveAuthorizedAddressAtIndex(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.executeRemoveAuthorizedAddressAtIndex;
+ const encodedData = ethersFunction.encode([transactionId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'executeRemoveAuthorizedAddressAtIndex'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public secondsTimeLocked = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'secondsTimeLocked()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.secondsTimeLocked;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'secondsTimeLocked'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public getTransactionCount = {
+ async callAsync(
+ pending: boolean,
+ executed: boolean,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'getTransactionCount(bool,bool)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [pending,
+ executed
+ ] = BaseContract._formatABIDataItemList(inputAbi, [pending,
+ executed
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [pending,
+ executed
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getTransactionCount;
+ const encodedData = ethersFunction.encode([pending,
+ executed
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getTransactionCount'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public registerAssetProxy = {
+ async sendTransactionAsync(
+ assetProxyContract: string,
+ isRegistered: boolean,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('registerAssetProxy(address,bool)').inputs;
+ [assetProxyContract,
+ isRegistered
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxyContract,
+ isRegistered
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [assetProxyContract,
+ isRegistered
+ ]);
+ const encodedData = self._lookupEthersInterface('registerAssetProxy(address,bool)').functions.registerAssetProxy.encode([assetProxyContract,
+ isRegistered
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.registerAssetProxy.estimateGasAsync.bind(
+ self,
+ assetProxyContract,
+ isRegistered
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ assetProxyContract: string,
+ isRegistered: boolean,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('registerAssetProxy(address,bool)').inputs;
+ [assetProxyContract,
+ isRegistered
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxyContract,
+ isRegistered
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('registerAssetProxy(address,bool)').functions.registerAssetProxy.encode([assetProxyContract,
+ isRegistered
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ assetProxyContract: string,
+ isRegistered: boolean,
+ ): string {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('registerAssetProxy(address,bool)').inputs;
+ [assetProxyContract,
+ isRegistered
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxyContract,
+ isRegistered
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('registerAssetProxy(address,bool)').functions.registerAssetProxy.encode([assetProxyContract,
+ isRegistered
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ assetProxyContract: string,
+ isRegistered: boolean,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'registerAssetProxy(address,bool)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [assetProxyContract,
+ isRegistered
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxyContract,
+ isRegistered
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [assetProxyContract,
+ isRegistered
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.registerAssetProxy;
+ const encodedData = ethersFunction.encode([assetProxyContract,
+ isRegistered
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'registerAssetProxy'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public addOwner = {
+ async sendTransactionAsync(
+ owner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('addOwner(address)').inputs;
+ [owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [owner
+ ]);
+ const encodedData = self._lookupEthersInterface('addOwner(address)').functions.addOwner.encode([owner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.addOwner.estimateGasAsync.bind(
+ self,
+ owner
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ owner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('addOwner(address)').inputs;
+ [owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('addOwner(address)').functions.addOwner.encode([owner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ owner: string,
+ ): string {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('addOwner(address)').inputs;
+ [owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('addOwner(address)').functions.addOwner.encode([owner
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ owner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'addOwner(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [owner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.addOwner;
+ const encodedData = ethersFunction.encode([owner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'addOwner'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public isConfirmed = {
+ async callAsync(
+ transactionId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'isConfirmed(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isConfirmed;
+ const encodedData = ethersFunction.encode([transactionId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'isConfirmed'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public changeTimeLock = {
+ async sendTransactionAsync(
+ _secondsTimeLocked: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('changeTimeLock(uint256)').inputs;
+ [_secondsTimeLocked
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_secondsTimeLocked
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_secondsTimeLocked
+ ]);
+ const encodedData = self._lookupEthersInterface('changeTimeLock(uint256)').functions.changeTimeLock.encode([_secondsTimeLocked
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.changeTimeLock.estimateGasAsync.bind(
+ self,
+ _secondsTimeLocked
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _secondsTimeLocked: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('changeTimeLock(uint256)').inputs;
+ [_secondsTimeLocked
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_secondsTimeLocked
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('changeTimeLock(uint256)').functions.changeTimeLock.encode([_secondsTimeLocked
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _secondsTimeLocked: BigNumber,
+ ): string {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('changeTimeLock(uint256)').inputs;
+ [_secondsTimeLocked
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_secondsTimeLocked
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('changeTimeLock(uint256)').functions.changeTimeLock.encode([_secondsTimeLocked
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _secondsTimeLocked: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'changeTimeLock(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_secondsTimeLocked
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_secondsTimeLocked
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_secondsTimeLocked
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.changeTimeLock;
+ const encodedData = ethersFunction.encode([_secondsTimeLocked
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'changeTimeLock'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public isAssetProxyRegistered = {
+ async callAsync(
+ index_0: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'isAssetProxyRegistered(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isAssetProxyRegistered;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'isAssetProxyRegistered'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public getConfirmationCount = {
+ async callAsync(
+ transactionId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'getConfirmationCount(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getConfirmationCount;
+ const encodedData = ethersFunction.encode([transactionId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getConfirmationCount'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transactions = {
+ async callAsync(
+ index_0: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<[string, BigNumber, string, boolean]
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'transactions(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transactions;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transactions'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public getOwners = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string[]
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'getOwners()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getOwners;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getOwners'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public getTransactionIds = {
+ async callAsync(
+ from: BigNumber,
+ to: BigNumber,
+ pending: boolean,
+ executed: boolean,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber[]
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'getTransactionIds(uint256,uint256,bool,bool)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [from,
+ to,
+ pending,
+ executed
+ ] = BaseContract._formatABIDataItemList(inputAbi, [from,
+ to,
+ pending,
+ executed
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [from,
+ to,
+ pending,
+ executed
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getTransactionIds;
+ const encodedData = ethersFunction.encode([from,
+ to,
+ pending,
+ executed
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getTransactionIds'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public getConfirmations = {
+ async callAsync(
+ transactionId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string[]
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'getConfirmations(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getConfirmations;
+ const encodedData = ethersFunction.encode([transactionId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getConfirmations'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transactionCount = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'transactionCount()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transactionCount;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transactionCount'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public changeRequirement = {
+ async sendTransactionAsync(
+ _required: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('changeRequirement(uint256)').inputs;
+ [_required
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_required
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_required
+ ]);
+ const encodedData = self._lookupEthersInterface('changeRequirement(uint256)').functions.changeRequirement.encode([_required
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.changeRequirement.estimateGasAsync.bind(
+ self,
+ _required
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _required: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('changeRequirement(uint256)').inputs;
+ [_required
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_required
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('changeRequirement(uint256)').functions.changeRequirement.encode([_required
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _required: BigNumber,
+ ): string {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('changeRequirement(uint256)').inputs;
+ [_required
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_required
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('changeRequirement(uint256)').functions.changeRequirement.encode([_required
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _required: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'changeRequirement(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_required
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_required
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_required
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.changeRequirement;
+ const encodedData = ethersFunction.encode([_required
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'changeRequirement'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public confirmTransaction = {
+ async sendTransactionAsync(
+ transactionId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('confirmTransaction(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId
+ ]);
+ const encodedData = self._lookupEthersInterface('confirmTransaction(uint256)').functions.confirmTransaction.encode([transactionId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.confirmTransaction.estimateGasAsync.bind(
+ self,
+ transactionId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ transactionId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('confirmTransaction(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('confirmTransaction(uint256)').functions.confirmTransaction.encode([transactionId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ transactionId: BigNumber,
+ ): string {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('confirmTransaction(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('confirmTransaction(uint256)').functions.confirmTransaction.encode([transactionId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ transactionId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'confirmTransaction(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.confirmTransaction;
+ const encodedData = ethersFunction.encode([transactionId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'confirmTransaction'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public submitTransaction = {
+ async sendTransactionAsync(
+ destination: string,
+ value: BigNumber,
+ data: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('submitTransaction(address,uint256,bytes)').inputs;
+ [destination,
+ value,
+ data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [destination,
+ value,
+ data
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [destination,
+ value,
+ data
+ ]);
+ const encodedData = self._lookupEthersInterface('submitTransaction(address,uint256,bytes)').functions.submitTransaction.encode([destination,
+ value,
+ data
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.submitTransaction.estimateGasAsync.bind(
+ self,
+ destination,
+ value,
+ data
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ destination: string,
+ value: BigNumber,
+ data: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('submitTransaction(address,uint256,bytes)').inputs;
+ [destination,
+ value,
+ data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [destination,
+ value,
+ data
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('submitTransaction(address,uint256,bytes)').functions.submitTransaction.encode([destination,
+ value,
+ data
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ destination: string,
+ value: BigNumber,
+ data: string,
+ ): string {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('submitTransaction(address,uint256,bytes)').inputs;
+ [destination,
+ value,
+ data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [destination,
+ value,
+ data
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('submitTransaction(address,uint256,bytes)').functions.submitTransaction.encode([destination,
+ value,
+ data
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ destination: string,
+ value: BigNumber,
+ data: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'submitTransaction(address,uint256,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [destination,
+ value,
+ data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [destination,
+ value,
+ data
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [destination,
+ value,
+ data
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.submitTransaction;
+ const encodedData = ethersFunction.encode([destination,
+ value,
+ data
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'submitTransaction'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public confirmationTimes = {
+ async callAsync(
+ index_0: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'confirmationTimes(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.confirmationTimes;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'confirmationTimes'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public MAX_OWNER_COUNT = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'MAX_OWNER_COUNT()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.MAX_OWNER_COUNT;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'MAX_OWNER_COUNT'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public required = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'required()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.required;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'required'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public replaceOwner = {
+ async sendTransactionAsync(
+ owner: string,
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('replaceOwner(address,address)').inputs;
+ [owner,
+ newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner,
+ newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [owner,
+ newOwner
+ ]);
+ const encodedData = self._lookupEthersInterface('replaceOwner(address,address)').functions.replaceOwner.encode([owner,
+ newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.replaceOwner.estimateGasAsync.bind(
+ self,
+ owner,
+ newOwner
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ owner: string,
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('replaceOwner(address,address)').inputs;
+ [owner,
+ newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner,
+ newOwner
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('replaceOwner(address,address)').functions.replaceOwner.encode([owner,
+ newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ owner: string,
+ newOwner: string,
+ ): string {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('replaceOwner(address,address)').inputs;
+ [owner,
+ newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner,
+ newOwner
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('replaceOwner(address,address)').functions.replaceOwner.encode([owner,
+ newOwner
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ owner: string,
+ newOwner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'replaceOwner(address,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [owner,
+ newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [owner,
+ newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [owner,
+ newOwner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.replaceOwner;
+ const encodedData = ethersFunction.encode([owner,
+ newOwner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'replaceOwner'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public executeTransaction = {
+ async sendTransactionAsync(
+ transactionId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('executeTransaction(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId
+ ]);
+ const encodedData = self._lookupEthersInterface('executeTransaction(uint256)').functions.executeTransaction.encode([transactionId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.executeTransaction.estimateGasAsync.bind(
+ self,
+ transactionId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ transactionId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('executeTransaction(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('executeTransaction(uint256)').functions.executeTransaction.encode([transactionId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ transactionId: BigNumber,
+ ): string {
+ const self = this as any as AssetProxyOwnerContract;
+ const inputAbi = self._lookupAbi('executeTransaction(uint256)').inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('executeTransaction(uint256)').functions.executeTransaction.encode([transactionId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ transactionId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as AssetProxyOwnerContract;
+ const functionSignature = 'executeTransaction(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [transactionId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [transactionId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.executeTransaction;
+ const encodedData = ethersFunction.encode([transactionId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'executeTransaction'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ _owners: string[],
+ _assetProxyContracts: string[],
+ _required: BigNumber,
+ _secondsTimeLocked: BigNumber,
+ ): Promise<AssetProxyOwnerContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return AssetProxyOwnerContract.deployAsync(bytecode, abi, provider, txDefaults, _owners,
+_assetProxyContracts,
+_required,
+_secondsTimeLocked
+);
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ _owners: string[],
+ _assetProxyContracts: string[],
+ _required: BigNumber,
+ _secondsTimeLocked: BigNumber,
+ ): Promise<AssetProxyOwnerContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [_owners,
+_assetProxyContracts,
+_required,
+_secondsTimeLocked
+] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [_owners,
+_assetProxyContracts,
+_required,
+_secondsTimeLocked
+],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, [_owners,
+_assetProxyContracts,
+_required,
+_secondsTimeLocked
+]);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`AssetProxyOwner successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new AssetProxyOwnerContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [_owners,
+_assetProxyContracts,
+_required,
+_secondsTimeLocked
+];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('AssetProxyOwner', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts b/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts
new file mode 100644
index 000000000..1efeeed0a
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts
@@ -0,0 +1,1044 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+export type DummyERC20TokenEventArgs =
+ | DummyERC20TokenTransferEventArgs
+ | DummyERC20TokenApprovalEventArgs;
+
+export enum DummyERC20TokenEvents {
+ Transfer = 'Transfer',
+ Approval = 'Approval',
+}
+
+export interface DummyERC20TokenTransferEventArgs extends DecodedLogArgs {
+ _from: string;
+ _to: string;
+ _value: BigNumber;
+}
+
+export interface DummyERC20TokenApprovalEventArgs extends DecodedLogArgs {
+ _owner: string;
+ _spender: string;
+ _value: BigNumber;
+}
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class DummyERC20TokenContract extends BaseContract {
+ public name = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'name()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.name;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'name'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public approve = {
+ async sendTransactionAsync(
+ _spender: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_spender,
+ _value
+ ]);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_spender,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.approve.estimateGasAsync.bind(
+ self,
+ _spender,
+ _value
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _spender: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_spender,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _spender: string,
+ _value: BigNumber,
+ ): string {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_spender,
+ _value
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _spender: string,
+ _value: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'approve(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_spender,
+ _value
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.approve;
+ const encodedData = ethersFunction.encode([_spender,
+ _value
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'approve'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public totalSupply = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'totalSupply()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.totalSupply;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'totalSupply'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transferFrom = {
+ async sendTransactionAsync(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _value
+ ]);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferFrom.estimateGasAsync.bind(
+ self,
+ _from,
+ _to,
+ _value
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ ): string {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _value
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'transferFrom(address,address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _value
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferFrom;
+ const encodedData = ethersFunction.encode([_from,
+ _to,
+ _value
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferFrom'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public decimals = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'decimals()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.decimals;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'decimals'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public balanceOf = {
+ async callAsync(
+ _owner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'balanceOf(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.balanceOf;
+ const encodedData = ethersFunction.encode([_owner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'balanceOf'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public owner = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'owner()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.owner;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'owner'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public symbol = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'symbol()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.symbol;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'symbol'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public mint = {
+ async sendTransactionAsync(
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('mint(uint256)').inputs;
+ [_value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_value
+ ]);
+ const encodedData = self._lookupEthersInterface('mint(uint256)').functions.mint.encode([_value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.mint.estimateGasAsync.bind(
+ self,
+ _value
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('mint(uint256)').inputs;
+ [_value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_value
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('mint(uint256)').functions.mint.encode([_value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _value: BigNumber,
+ ): string {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('mint(uint256)').inputs;
+ [_value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_value
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('mint(uint256)').functions.mint.encode([_value
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _value: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'mint(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_value
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.mint;
+ const encodedData = ethersFunction.encode([_value
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'mint'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public transfer = {
+ async sendTransactionAsync(
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_to,
+ _value
+ ]);
+ const encodedData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([_to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transfer.estimateGasAsync.bind(
+ self,
+ _to,
+ _value
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([_to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _to: string,
+ _value: BigNumber,
+ ): string {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([_to,
+ _value
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _to: string,
+ _value: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'transfer(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_to,
+ _value
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transfer;
+ const encodedData = ethersFunction.encode([_to,
+ _value
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transfer'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public allowance = {
+ async callAsync(
+ _owner: string,
+ _spender: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'allowance(address,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_owner,
+ _spender
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner,
+ _spender
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner,
+ _spender
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.allowance;
+ const encodedData = ethersFunction.encode([_owner,
+ _spender
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'allowance'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public setBalance = {
+ async sendTransactionAsync(
+ _target: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('setBalance(address,uint256)').inputs;
+ [_target,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_target,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_target,
+ _value
+ ]);
+ const encodedData = self._lookupEthersInterface('setBalance(address,uint256)').functions.setBalance.encode([_target,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.setBalance.estimateGasAsync.bind(
+ self,
+ _target,
+ _value
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _target: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('setBalance(address,uint256)').inputs;
+ [_target,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_target,
+ _value
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('setBalance(address,uint256)').functions.setBalance.encode([_target,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _target: string,
+ _value: BigNumber,
+ ): string {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('setBalance(address,uint256)').inputs;
+ [_target,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_target,
+ _value
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('setBalance(address,uint256)').functions.setBalance.encode([_target,
+ _value
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _target: string,
+ _value: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'setBalance(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_target,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_target,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_target,
+ _value
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.setBalance;
+ const encodedData = ethersFunction.encode([_target,
+ _value
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'setBalance'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public transferOwnership = {
+ async sendTransactionAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferOwnership.estimateGasAsync.bind(
+ self,
+ newOwner
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ newOwner: string,
+ ): string {
+ const self = this as any as DummyERC20TokenContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ newOwner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'transferOwnership(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferOwnership;
+ const encodedData = ethersFunction.encode([newOwner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferOwnership'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public MAX_MINT_AMOUNT = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as DummyERC20TokenContract;
+ const functionSignature = 'MAX_MINT_AMOUNT()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.MAX_MINT_AMOUNT;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'MAX_MINT_AMOUNT'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ _name: string,
+ _symbol: string,
+ _decimals: BigNumber,
+ _totalSupply: BigNumber,
+ ): Promise<DummyERC20TokenContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return DummyERC20TokenContract.deployAsync(bytecode, abi, provider, txDefaults, _name,
+_symbol,
+_decimals,
+_totalSupply
+);
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ _name: string,
+ _symbol: string,
+ _decimals: BigNumber,
+ _totalSupply: BigNumber,
+ ): Promise<DummyERC20TokenContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [_name,
+_symbol,
+_decimals,
+_totalSupply
+] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [_name,
+_symbol,
+_decimals,
+_totalSupply
+],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, [_name,
+_symbol,
+_decimals,
+_totalSupply
+]);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`DummyERC20Token successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new DummyERC20TokenContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [_name,
+_symbol,
+_decimals,
+_totalSupply
+];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('DummyERC20Token', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts b/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts
new file mode 100644
index 000000000..cc5f9679f
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts
@@ -0,0 +1,1326 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+export type DummyERC721TokenEventArgs =
+ | DummyERC721TokenTransferEventArgs
+ | DummyERC721TokenApprovalEventArgs
+ | DummyERC721TokenApprovalForAllEventArgs;
+
+export enum DummyERC721TokenEvents {
+ Transfer = 'Transfer',
+ Approval = 'Approval',
+ ApprovalForAll = 'ApprovalForAll',
+}
+
+export interface DummyERC721TokenTransferEventArgs extends DecodedLogArgs {
+ _from: string;
+ _to: string;
+ _tokenId: BigNumber;
+}
+
+export interface DummyERC721TokenApprovalEventArgs extends DecodedLogArgs {
+ _owner: string;
+ _approved: string;
+ _tokenId: BigNumber;
+}
+
+export interface DummyERC721TokenApprovalForAllEventArgs extends DecodedLogArgs {
+ _owner: string;
+ _operator: string;
+ _approved: boolean;
+}
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class DummyERC721TokenContract extends BaseContract {
+ public name = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'name()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.name;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'name'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public getApproved = {
+ async callAsync(
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'getApproved(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getApproved;
+ const encodedData = ethersFunction.encode([_tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getApproved'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public approve = {
+ async sendTransactionAsync(
+ _approved: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_approved,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_approved,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_approved,
+ _tokenId
+ ]);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_approved,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.approve.estimateGasAsync.bind(
+ self,
+ _approved,
+ _tokenId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _approved: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_approved,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_approved,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_approved,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _approved: string,
+ _tokenId: BigNumber,
+ ): string {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_approved,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_approved,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_approved,
+ _tokenId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _approved: string,
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'approve(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_approved,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_approved,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_approved,
+ _tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.approve;
+ const encodedData = ethersFunction.encode([_approved,
+ _tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'approve'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public transferFrom = {
+ async sendTransactionAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId
+ ]);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferFrom.estimateGasAsync.bind(
+ self,
+ _from,
+ _to,
+ _tokenId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ ): string {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'transferFrom(address,address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferFrom;
+ const encodedData = ethersFunction.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferFrom'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public mint = {
+ async sendTransactionAsync(
+ _to: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('mint(address,uint256)').inputs;
+ [_to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_to,
+ _tokenId
+ ]);
+ const encodedData = self._lookupEthersInterface('mint(address,uint256)').functions.mint.encode([_to,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.mint.estimateGasAsync.bind(
+ self,
+ _to,
+ _tokenId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _to: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('mint(address,uint256)').inputs;
+ [_to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('mint(address,uint256)').functions.mint.encode([_to,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _to: string,
+ _tokenId: BigNumber,
+ ): string {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('mint(address,uint256)').inputs;
+ [_to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('mint(address,uint256)').functions.mint.encode([_to,
+ _tokenId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _to: string,
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'mint(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_to,
+ _tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.mint;
+ const encodedData = ethersFunction.encode([_to,
+ _tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'mint'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public safeTransferFrom1 = {
+ async sendTransactionAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId
+ ]);
+ const encodedData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.safeTransferFrom1.estimateGasAsync.bind(
+ self,
+ _from,
+ _to,
+ _tokenId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ ): string {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'safeTransferFrom(address,address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.safeTransferFrom;
+ const encodedData = ethersFunction.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'safeTransferFrom'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public ownerOf = {
+ async callAsync(
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'ownerOf(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.ownerOf;
+ const encodedData = ethersFunction.encode([_tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'ownerOf'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public balanceOf = {
+ async callAsync(
+ _owner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'balanceOf(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.balanceOf;
+ const encodedData = ethersFunction.encode([_owner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'balanceOf'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public owner = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'owner()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.owner;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'owner'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public symbol = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'symbol()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.symbol;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'symbol'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public burn = {
+ async sendTransactionAsync(
+ _owner: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('burn(address,uint256)').inputs;
+ [_owner,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner,
+ _tokenId
+ ]);
+ const encodedData = self._lookupEthersInterface('burn(address,uint256)').functions.burn.encode([_owner,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.burn.estimateGasAsync.bind(
+ self,
+ _owner,
+ _tokenId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _owner: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('burn(address,uint256)').inputs;
+ [_owner,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('burn(address,uint256)').functions.burn.encode([_owner,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _owner: string,
+ _tokenId: BigNumber,
+ ): string {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('burn(address,uint256)').inputs;
+ [_owner,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('burn(address,uint256)').functions.burn.encode([_owner,
+ _tokenId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _owner: string,
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'burn(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_owner,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner,
+ _tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.burn;
+ const encodedData = ethersFunction.encode([_owner,
+ _tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'burn'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public setApprovalForAll = {
+ async sendTransactionAsync(
+ _operator: string,
+ _approved: boolean,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('setApprovalForAll(address,bool)').inputs;
+ [_operator,
+ _approved
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_operator,
+ _approved
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_operator,
+ _approved
+ ]);
+ const encodedData = self._lookupEthersInterface('setApprovalForAll(address,bool)').functions.setApprovalForAll.encode([_operator,
+ _approved
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.setApprovalForAll.estimateGasAsync.bind(
+ self,
+ _operator,
+ _approved
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _operator: string,
+ _approved: boolean,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('setApprovalForAll(address,bool)').inputs;
+ [_operator,
+ _approved
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_operator,
+ _approved
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('setApprovalForAll(address,bool)').functions.setApprovalForAll.encode([_operator,
+ _approved
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _operator: string,
+ _approved: boolean,
+ ): string {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('setApprovalForAll(address,bool)').inputs;
+ [_operator,
+ _approved
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_operator,
+ _approved
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('setApprovalForAll(address,bool)').functions.setApprovalForAll.encode([_operator,
+ _approved
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _operator: string,
+ _approved: boolean,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'setApprovalForAll(address,bool)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_operator,
+ _approved
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_operator,
+ _approved
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_operator,
+ _approved
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.setApprovalForAll;
+ const encodedData = ethersFunction.encode([_operator,
+ _approved
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'setApprovalForAll'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public safeTransferFrom2 = {
+ async sendTransactionAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ _data: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256,bytes)').inputs;
+ [_from,
+ _to,
+ _tokenId,
+ _data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ const encodedData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256,bytes)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.safeTransferFrom2.estimateGasAsync.bind(
+ self,
+ _from,
+ _to,
+ _tokenId,
+ _data
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ _data: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256,bytes)').inputs;
+ [_from,
+ _to,
+ _tokenId,
+ _data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256,bytes)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ _data: string,
+ ): string {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256,bytes)').inputs;
+ [_from,
+ _to,
+ _tokenId,
+ _data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256,bytes)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ _data: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'safeTransferFrom(address,address,uint256,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_from,
+ _to,
+ _tokenId,
+ _data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.safeTransferFrom;
+ const encodedData = ethersFunction.encode([_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'safeTransferFrom'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public isApprovedForAll = {
+ async callAsync(
+ _owner: string,
+ _operator: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'isApprovedForAll(address,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_owner,
+ _operator
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner,
+ _operator
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner,
+ _operator
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isApprovedForAll;
+ const encodedData = ethersFunction.encode([_owner,
+ _operator
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'isApprovedForAll'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transferOwnership = {
+ async sendTransactionAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferOwnership.estimateGasAsync.bind(
+ self,
+ newOwner
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ newOwner: string,
+ ): string {
+ const self = this as any as DummyERC721TokenContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ newOwner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as DummyERC721TokenContract;
+ const functionSignature = 'transferOwnership(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferOwnership;
+ const encodedData = ethersFunction.encode([newOwner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferOwnership'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ _name: string,
+ _symbol: string,
+ ): Promise<DummyERC721TokenContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return DummyERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults, _name,
+_symbol
+);
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ _name: string,
+ _symbol: string,
+ ): Promise<DummyERC721TokenContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [_name,
+_symbol
+] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [_name,
+_symbol
+],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, [_name,
+_symbol
+]);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`DummyERC721Token successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new DummyERC721TokenContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [_name,
+_symbol
+];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('DummyERC721Token', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts b/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts
new file mode 100644
index 000000000..ab207b38e
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts
@@ -0,0 +1,649 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+export type ERC20ProxyEventArgs =
+ | ERC20ProxyAuthorizedAddressAddedEventArgs
+ | ERC20ProxyAuthorizedAddressRemovedEventArgs;
+
+export enum ERC20ProxyEvents {
+ AuthorizedAddressAdded = 'AuthorizedAddressAdded',
+ AuthorizedAddressRemoved = 'AuthorizedAddressRemoved',
+}
+
+export interface ERC20ProxyAuthorizedAddressAddedEventArgs extends DecodedLogArgs {
+ target: string;
+ caller: string;
+}
+
+export interface ERC20ProxyAuthorizedAddressRemovedEventArgs extends DecodedLogArgs {
+ target: string;
+ caller: string;
+}
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class ERC20ProxyContract extends BaseContract {
+ public addAuthorizedAddress = {
+ async sendTransactionAsync(
+ target: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('addAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target
+ ]);
+ const encodedData = self._lookupEthersInterface('addAuthorizedAddress(address)').functions.addAuthorizedAddress.encode([target
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.addAuthorizedAddress.estimateGasAsync.bind(
+ self,
+ target
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ target: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('addAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('addAuthorizedAddress(address)').functions.addAuthorizedAddress.encode([target
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ target: string,
+ ): string {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('addAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('addAuthorizedAddress(address)').functions.addAuthorizedAddress.encode([target
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ target: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC20ProxyContract;
+ const functionSignature = 'addAuthorizedAddress(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.addAuthorizedAddress;
+ const encodedData = ethersFunction.encode([target
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'addAuthorizedAddress'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public authorities = {
+ async callAsync(
+ index_0: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ERC20ProxyContract;
+ const functionSignature = 'authorities(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.authorities;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'authorities'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public removeAuthorizedAddress = {
+ async sendTransactionAsync(
+ target: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target
+ ]);
+ const encodedData = self._lookupEthersInterface('removeAuthorizedAddress(address)').functions.removeAuthorizedAddress.encode([target
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.removeAuthorizedAddress.estimateGasAsync.bind(
+ self,
+ target
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ target: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('removeAuthorizedAddress(address)').functions.removeAuthorizedAddress.encode([target
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ target: string,
+ ): string {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('removeAuthorizedAddress(address)').functions.removeAuthorizedAddress.encode([target
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ target: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC20ProxyContract;
+ const functionSignature = 'removeAuthorizedAddress(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.removeAuthorizedAddress;
+ const encodedData = ethersFunction.encode([target
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'removeAuthorizedAddress'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public owner = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ERC20ProxyContract;
+ const functionSignature = 'owner()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.owner;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'owner'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public removeAuthorizedAddressAtIndex = {
+ async sendTransactionAsync(
+ target: string,
+ index: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddressAtIndex(address,uint256)').inputs;
+ [target,
+ index
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target,
+ index
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target,
+ index
+ ]);
+ const encodedData = self._lookupEthersInterface('removeAuthorizedAddressAtIndex(address,uint256)').functions.removeAuthorizedAddressAtIndex.encode([target,
+ index
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(
+ self,
+ target,
+ index
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ target: string,
+ index: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddressAtIndex(address,uint256)').inputs;
+ [target,
+ index
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target,
+ index
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('removeAuthorizedAddressAtIndex(address,uint256)').functions.removeAuthorizedAddressAtIndex.encode([target,
+ index
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ target: string,
+ index: BigNumber,
+ ): string {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddressAtIndex(address,uint256)').inputs;
+ [target,
+ index
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target,
+ index
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('removeAuthorizedAddressAtIndex(address,uint256)').functions.removeAuthorizedAddressAtIndex.encode([target,
+ index
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ target: string,
+ index: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC20ProxyContract;
+ const functionSignature = 'removeAuthorizedAddressAtIndex(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [target,
+ index
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target,
+ index
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target,
+ index
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.removeAuthorizedAddressAtIndex;
+ const encodedData = ethersFunction.encode([target,
+ index
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'removeAuthorizedAddressAtIndex'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public getProxyId = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ERC20ProxyContract;
+ const functionSignature = 'getProxyId()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getProxyId;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getProxyId'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public authorized = {
+ async callAsync(
+ index_0: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ERC20ProxyContract;
+ const functionSignature = 'authorized(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.authorized;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'authorized'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public getAuthorizedAddresses = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string[]
+ > {
+ const self = this as any as ERC20ProxyContract;
+ const functionSignature = 'getAuthorizedAddresses()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getAuthorizedAddresses;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getAuthorizedAddresses'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transferOwnership = {
+ async sendTransactionAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferOwnership.estimateGasAsync.bind(
+ self,
+ newOwner
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ newOwner: string,
+ ): string {
+ const self = this as any as ERC20ProxyContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ newOwner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC20ProxyContract;
+ const functionSignature = 'transferOwnership(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferOwnership;
+ const encodedData = ethersFunction.encode([newOwner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferOwnership'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ERC20ProxyContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return ERC20ProxyContract.deployAsync(bytecode, abi, provider, txDefaults, );
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ERC20ProxyContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, []);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`ERC20Proxy successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new ERC20ProxyContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('ERC20Proxy', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts b/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts
new file mode 100644
index 000000000..8ee563b7e
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts
@@ -0,0 +1,556 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+export type ERC20TokenEventArgs =
+ | ERC20TokenTransferEventArgs
+ | ERC20TokenApprovalEventArgs;
+
+export enum ERC20TokenEvents {
+ Transfer = 'Transfer',
+ Approval = 'Approval',
+}
+
+export interface ERC20TokenTransferEventArgs extends DecodedLogArgs {
+ _from: string;
+ _to: string;
+ _value: BigNumber;
+}
+
+export interface ERC20TokenApprovalEventArgs extends DecodedLogArgs {
+ _owner: string;
+ _spender: string;
+ _value: BigNumber;
+}
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class ERC20TokenContract extends BaseContract {
+ public approve = {
+ async sendTransactionAsync(
+ _spender: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC20TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_spender,
+ _value
+ ]);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_spender,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.approve.estimateGasAsync.bind(
+ self,
+ _spender,
+ _value
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _spender: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC20TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_spender,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _spender: string,
+ _value: BigNumber,
+ ): string {
+ const self = this as any as ERC20TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_spender,
+ _value
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _spender: string,
+ _value: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ERC20TokenContract;
+ const functionSignature = 'approve(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_spender,
+ _value
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.approve;
+ const encodedData = ethersFunction.encode([_spender,
+ _value
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'approve'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public totalSupply = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as ERC20TokenContract;
+ const functionSignature = 'totalSupply()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.totalSupply;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'totalSupply'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transferFrom = {
+ async sendTransactionAsync(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC20TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _value
+ ]);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferFrom.estimateGasAsync.bind(
+ self,
+ _from,
+ _to,
+ _value
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC20TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ ): string {
+ const self = this as any as ERC20TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _value
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ERC20TokenContract;
+ const functionSignature = 'transferFrom(address,address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _value
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferFrom;
+ const encodedData = ethersFunction.encode([_from,
+ _to,
+ _value
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferFrom'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public balanceOf = {
+ async callAsync(
+ _owner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as ERC20TokenContract;
+ const functionSignature = 'balanceOf(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.balanceOf;
+ const encodedData = ethersFunction.encode([_owner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'balanceOf'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transfer = {
+ async sendTransactionAsync(
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC20TokenContract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_to,
+ _value
+ ]);
+ const encodedData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([_to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transfer.estimateGasAsync.bind(
+ self,
+ _to,
+ _value
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC20TokenContract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([_to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _to: string,
+ _value: BigNumber,
+ ): string {
+ const self = this as any as ERC20TokenContract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([_to,
+ _value
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _to: string,
+ _value: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ERC20TokenContract;
+ const functionSignature = 'transfer(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_to,
+ _value
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transfer;
+ const encodedData = ethersFunction.encode([_to,
+ _value
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transfer'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public allowance = {
+ async callAsync(
+ _owner: string,
+ _spender: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as ERC20TokenContract;
+ const functionSignature = 'allowance(address,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_owner,
+ _spender
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner,
+ _spender
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner,
+ _spender
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.allowance;
+ const encodedData = ethersFunction.encode([_owner,
+ _spender
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'allowance'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ERC20TokenContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return ERC20TokenContract.deployAsync(bytecode, abi, provider, txDefaults, );
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ERC20TokenContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, []);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`ERC20Token successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new ERC20TokenContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('ERC20Token', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts b/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts
new file mode 100644
index 000000000..691c55578
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts
@@ -0,0 +1,649 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+export type ERC721ProxyEventArgs =
+ | ERC721ProxyAuthorizedAddressAddedEventArgs
+ | ERC721ProxyAuthorizedAddressRemovedEventArgs;
+
+export enum ERC721ProxyEvents {
+ AuthorizedAddressAdded = 'AuthorizedAddressAdded',
+ AuthorizedAddressRemoved = 'AuthorizedAddressRemoved',
+}
+
+export interface ERC721ProxyAuthorizedAddressAddedEventArgs extends DecodedLogArgs {
+ target: string;
+ caller: string;
+}
+
+export interface ERC721ProxyAuthorizedAddressRemovedEventArgs extends DecodedLogArgs {
+ target: string;
+ caller: string;
+}
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class ERC721ProxyContract extends BaseContract {
+ public addAuthorizedAddress = {
+ async sendTransactionAsync(
+ target: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('addAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target
+ ]);
+ const encodedData = self._lookupEthersInterface('addAuthorizedAddress(address)').functions.addAuthorizedAddress.encode([target
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.addAuthorizedAddress.estimateGasAsync.bind(
+ self,
+ target
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ target: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('addAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('addAuthorizedAddress(address)').functions.addAuthorizedAddress.encode([target
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ target: string,
+ ): string {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('addAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('addAuthorizedAddress(address)').functions.addAuthorizedAddress.encode([target
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ target: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC721ProxyContract;
+ const functionSignature = 'addAuthorizedAddress(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.addAuthorizedAddress;
+ const encodedData = ethersFunction.encode([target
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'addAuthorizedAddress'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public authorities = {
+ async callAsync(
+ index_0: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ERC721ProxyContract;
+ const functionSignature = 'authorities(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.authorities;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'authorities'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public removeAuthorizedAddress = {
+ async sendTransactionAsync(
+ target: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target
+ ]);
+ const encodedData = self._lookupEthersInterface('removeAuthorizedAddress(address)').functions.removeAuthorizedAddress.encode([target
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.removeAuthorizedAddress.estimateGasAsync.bind(
+ self,
+ target
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ target: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('removeAuthorizedAddress(address)').functions.removeAuthorizedAddress.encode([target
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ target: string,
+ ): string {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddress(address)').inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('removeAuthorizedAddress(address)').functions.removeAuthorizedAddress.encode([target
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ target: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC721ProxyContract;
+ const functionSignature = 'removeAuthorizedAddress(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [target
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.removeAuthorizedAddress;
+ const encodedData = ethersFunction.encode([target
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'removeAuthorizedAddress'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public owner = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ERC721ProxyContract;
+ const functionSignature = 'owner()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.owner;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'owner'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public removeAuthorizedAddressAtIndex = {
+ async sendTransactionAsync(
+ target: string,
+ index: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddressAtIndex(address,uint256)').inputs;
+ [target,
+ index
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target,
+ index
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target,
+ index
+ ]);
+ const encodedData = self._lookupEthersInterface('removeAuthorizedAddressAtIndex(address,uint256)').functions.removeAuthorizedAddressAtIndex.encode([target,
+ index
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(
+ self,
+ target,
+ index
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ target: string,
+ index: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddressAtIndex(address,uint256)').inputs;
+ [target,
+ index
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target,
+ index
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('removeAuthorizedAddressAtIndex(address,uint256)').functions.removeAuthorizedAddressAtIndex.encode([target,
+ index
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ target: string,
+ index: BigNumber,
+ ): string {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('removeAuthorizedAddressAtIndex(address,uint256)').inputs;
+ [target,
+ index
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target,
+ index
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('removeAuthorizedAddressAtIndex(address,uint256)').functions.removeAuthorizedAddressAtIndex.encode([target,
+ index
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ target: string,
+ index: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC721ProxyContract;
+ const functionSignature = 'removeAuthorizedAddressAtIndex(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [target,
+ index
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target,
+ index
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target,
+ index
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.removeAuthorizedAddressAtIndex;
+ const encodedData = ethersFunction.encode([target,
+ index
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'removeAuthorizedAddressAtIndex'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public getProxyId = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ERC721ProxyContract;
+ const functionSignature = 'getProxyId()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getProxyId;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getProxyId'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public authorized = {
+ async callAsync(
+ index_0: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ERC721ProxyContract;
+ const functionSignature = 'authorized(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.authorized;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'authorized'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public getAuthorizedAddresses = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string[]
+ > {
+ const self = this as any as ERC721ProxyContract;
+ const functionSignature = 'getAuthorizedAddresses()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getAuthorizedAddresses;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getAuthorizedAddresses'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transferOwnership = {
+ async sendTransactionAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferOwnership.estimateGasAsync.bind(
+ self,
+ newOwner
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ newOwner: string,
+ ): string {
+ const self = this as any as ERC721ProxyContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ newOwner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC721ProxyContract;
+ const functionSignature = 'transferOwnership(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferOwnership;
+ const encodedData = ethersFunction.encode([newOwner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferOwnership'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ERC721ProxyContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return ERC721ProxyContract.deployAsync(bytecode, abi, provider, txDefaults, );
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ERC721ProxyContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, []);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`ERC721Proxy successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new ERC721ProxyContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('ERC721Proxy', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts b/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts
new file mode 100644
index 000000000..d1a2d5670
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts
@@ -0,0 +1,893 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+export type ERC721TokenEventArgs =
+ | ERC721TokenTransferEventArgs
+ | ERC721TokenApprovalEventArgs
+ | ERC721TokenApprovalForAllEventArgs;
+
+export enum ERC721TokenEvents {
+ Transfer = 'Transfer',
+ Approval = 'Approval',
+ ApprovalForAll = 'ApprovalForAll',
+}
+
+export interface ERC721TokenTransferEventArgs extends DecodedLogArgs {
+ _from: string;
+ _to: string;
+ _tokenId: BigNumber;
+}
+
+export interface ERC721TokenApprovalEventArgs extends DecodedLogArgs {
+ _owner: string;
+ _approved: string;
+ _tokenId: BigNumber;
+}
+
+export interface ERC721TokenApprovalForAllEventArgs extends DecodedLogArgs {
+ _owner: string;
+ _operator: string;
+ _approved: boolean;
+}
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class ERC721TokenContract extends BaseContract {
+ public getApproved = {
+ async callAsync(
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ERC721TokenContract;
+ const functionSignature = 'getApproved(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getApproved;
+ const encodedData = ethersFunction.encode([_tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getApproved'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public approve = {
+ async sendTransactionAsync(
+ _approved: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_approved,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_approved,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_approved,
+ _tokenId
+ ]);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_approved,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.approve.estimateGasAsync.bind(
+ self,
+ _approved,
+ _tokenId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _approved: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_approved,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_approved,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_approved,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _approved: string,
+ _tokenId: BigNumber,
+ ): string {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_approved,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_approved,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_approved,
+ _tokenId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _approved: string,
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC721TokenContract;
+ const functionSignature = 'approve(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_approved,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_approved,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_approved,
+ _tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.approve;
+ const encodedData = ethersFunction.encode([_approved,
+ _tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'approve'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public transferFrom = {
+ async sendTransactionAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId
+ ]);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferFrom.estimateGasAsync.bind(
+ self,
+ _from,
+ _to,
+ _tokenId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ ): string {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC721TokenContract;
+ const functionSignature = 'transferFrom(address,address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferFrom;
+ const encodedData = ethersFunction.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferFrom'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public safeTransferFrom1 = {
+ async sendTransactionAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId
+ ]);
+ const encodedData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.safeTransferFrom1.estimateGasAsync.bind(
+ self,
+ _from,
+ _to,
+ _tokenId
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ ): string {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC721TokenContract;
+ const functionSignature = 'safeTransferFrom(address,address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_from,
+ _to,
+ _tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.safeTransferFrom;
+ const encodedData = ethersFunction.encode([_from,
+ _to,
+ _tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'safeTransferFrom'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public ownerOf = {
+ async callAsync(
+ _tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ERC721TokenContract;
+ const functionSignature = 'ownerOf(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.ownerOf;
+ const encodedData = ethersFunction.encode([_tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'ownerOf'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public balanceOf = {
+ async callAsync(
+ _owner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as ERC721TokenContract;
+ const functionSignature = 'balanceOf(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.balanceOf;
+ const encodedData = ethersFunction.encode([_owner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'balanceOf'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public setApprovalForAll = {
+ async sendTransactionAsync(
+ _operator: string,
+ _approved: boolean,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('setApprovalForAll(address,bool)').inputs;
+ [_operator,
+ _approved
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_operator,
+ _approved
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_operator,
+ _approved
+ ]);
+ const encodedData = self._lookupEthersInterface('setApprovalForAll(address,bool)').functions.setApprovalForAll.encode([_operator,
+ _approved
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.setApprovalForAll.estimateGasAsync.bind(
+ self,
+ _operator,
+ _approved
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _operator: string,
+ _approved: boolean,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('setApprovalForAll(address,bool)').inputs;
+ [_operator,
+ _approved
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_operator,
+ _approved
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('setApprovalForAll(address,bool)').functions.setApprovalForAll.encode([_operator,
+ _approved
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _operator: string,
+ _approved: boolean,
+ ): string {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('setApprovalForAll(address,bool)').inputs;
+ [_operator,
+ _approved
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_operator,
+ _approved
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('setApprovalForAll(address,bool)').functions.setApprovalForAll.encode([_operator,
+ _approved
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _operator: string,
+ _approved: boolean,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC721TokenContract;
+ const functionSignature = 'setApprovalForAll(address,bool)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_operator,
+ _approved
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_operator,
+ _approved
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_operator,
+ _approved
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.setApprovalForAll;
+ const encodedData = ethersFunction.encode([_operator,
+ _approved
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'setApprovalForAll'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public safeTransferFrom2 = {
+ async sendTransactionAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ _data: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256,bytes)').inputs;
+ [_from,
+ _to,
+ _tokenId,
+ _data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ const encodedData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256,bytes)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.safeTransferFrom2.estimateGasAsync.bind(
+ self,
+ _from,
+ _to,
+ _tokenId,
+ _data
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ _data: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256,bytes)').inputs;
+ [_from,
+ _to,
+ _tokenId,
+ _data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256,bytes)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ _data: string,
+ ): string {
+ const self = this as any as ERC721TokenContract;
+ const inputAbi = self._lookupAbi('safeTransferFrom(address,address,uint256,bytes)').inputs;
+ [_from,
+ _to,
+ _tokenId,
+ _data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('safeTransferFrom(address,address,uint256,bytes)').functions.safeTransferFrom.encode([_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _from: string,
+ _to: string,
+ _tokenId: BigNumber,
+ _data: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ERC721TokenContract;
+ const functionSignature = 'safeTransferFrom(address,address,uint256,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_from,
+ _to,
+ _tokenId,
+ _data
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.safeTransferFrom;
+ const encodedData = ethersFunction.encode([_from,
+ _to,
+ _tokenId,
+ _data
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'safeTransferFrom'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public isApprovedForAll = {
+ async callAsync(
+ _owner: string,
+ _operator: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ERC721TokenContract;
+ const functionSignature = 'isApprovedForAll(address,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_owner,
+ _operator
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner,
+ _operator
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner,
+ _operator
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isApprovedForAll;
+ const encodedData = ethersFunction.encode([_owner,
+ _operator
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'isApprovedForAll'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ERC721TokenContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return ERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults, );
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ERC721TokenContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, []);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`ERC721Token successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new ERC721TokenContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('ERC721Token', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts b/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts
new file mode 100644
index 000000000..ffd498055
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts
@@ -0,0 +1,3072 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+export type ExchangeEventArgs =
+ | ExchangeSignatureValidatorApprovalEventArgs
+ | ExchangeFillEventArgs
+ | ExchangeCancelEventArgs
+ | ExchangeCancelUpToEventArgs
+ | ExchangeAssetProxyRegisteredEventArgs;
+
+export enum ExchangeEvents {
+ SignatureValidatorApproval = 'SignatureValidatorApproval',
+ Fill = 'Fill',
+ Cancel = 'Cancel',
+ CancelUpTo = 'CancelUpTo',
+ AssetProxyRegistered = 'AssetProxyRegistered',
+}
+
+export interface ExchangeSignatureValidatorApprovalEventArgs extends DecodedLogArgs {
+ signerAddress: string;
+ validatorAddress: string;
+ approved: boolean;
+}
+
+export interface ExchangeFillEventArgs extends DecodedLogArgs {
+ makerAddress: string;
+ feeRecipientAddress: string;
+ takerAddress: string;
+ senderAddress: string;
+ makerAssetFilledAmount: BigNumber;
+ takerAssetFilledAmount: BigNumber;
+ makerFeePaid: BigNumber;
+ takerFeePaid: BigNumber;
+ orderHash: string;
+ makerAssetData: string;
+ takerAssetData: string;
+}
+
+export interface ExchangeCancelEventArgs extends DecodedLogArgs {
+ makerAddress: string;
+ feeRecipientAddress: string;
+ senderAddress: string;
+ orderHash: string;
+ makerAssetData: string;
+ takerAssetData: string;
+}
+
+export interface ExchangeCancelUpToEventArgs extends DecodedLogArgs {
+ makerAddress: string;
+ senderAddress: string;
+ orderEpoch: BigNumber;
+}
+
+export interface ExchangeAssetProxyRegisteredEventArgs extends DecodedLogArgs {
+ id: string;
+ assetProxy: string;
+}
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class ExchangeContract extends BaseContract {
+ public filled = {
+ async callAsync(
+ index_0: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'filled(bytes32)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.filled;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'filled'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public batchFillOrders = {
+ async sendTransactionAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchFillOrders(tuple[],uint256[],bytes[])').inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const encodedData = self._lookupEthersInterface('batchFillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrders.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.batchFillOrders.estimateGasAsync.bind(
+ self,
+ orders,
+ takerAssetFillAmounts,
+ signatures
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchFillOrders(tuple[],uint256[],bytes[])').inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('batchFillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrders.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchFillOrders(tuple[],uint256[],bytes[])').inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('batchFillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrders.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'batchFillOrders(tuple[],uint256[],bytes[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.batchFillOrders;
+ const encodedData = ethersFunction.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'batchFillOrders'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public cancelled = {
+ async callAsync(
+ index_0: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'cancelled(bytes32)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.cancelled;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'cancelled'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public preSign = {
+ async sendTransactionAsync(
+ hash: string,
+ signerAddress: string,
+ signature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('preSign(bytes32,address,bytes)').inputs;
+ [hash,
+ signerAddress,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
+ signerAddress,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [hash,
+ signerAddress,
+ signature
+ ]);
+ const encodedData = self._lookupEthersInterface('preSign(bytes32,address,bytes)').functions.preSign.encode([hash,
+ signerAddress,
+ signature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.preSign.estimateGasAsync.bind(
+ self,
+ hash,
+ signerAddress,
+ signature
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ hash: string,
+ signerAddress: string,
+ signature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('preSign(bytes32,address,bytes)').inputs;
+ [hash,
+ signerAddress,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
+ signerAddress,
+ signature
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('preSign(bytes32,address,bytes)').functions.preSign.encode([hash,
+ signerAddress,
+ signature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ hash: string,
+ signerAddress: string,
+ signature: string,
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('preSign(bytes32,address,bytes)').inputs;
+ [hash,
+ signerAddress,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
+ signerAddress,
+ signature
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('preSign(bytes32,address,bytes)').functions.preSign.encode([hash,
+ signerAddress,
+ signature
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ hash: string,
+ signerAddress: string,
+ signature: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'preSign(bytes32,address,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [hash,
+ signerAddress,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
+ signerAddress,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [hash,
+ signerAddress,
+ signature
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.preSign;
+ const encodedData = ethersFunction.encode([hash,
+ signerAddress,
+ signature
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'preSign'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public matchOrders = {
+ async sendTransactionAsync(
+ leftOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ rightOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ leftSignature: string,
+ rightSignature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').inputs;
+ [leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ]);
+ const encodedData = self._lookupEthersInterface('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').functions.matchOrders.encode([leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.matchOrders.estimateGasAsync.bind(
+ self,
+ leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ leftOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ rightOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ leftSignature: string,
+ rightSignature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').inputs;
+ [leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').functions.matchOrders.encode([leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ leftOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ rightOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ leftSignature: string,
+ rightSignature: string,
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').inputs;
+ [leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)').functions.matchOrders.encode([leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ leftOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ rightOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ leftSignature: string,
+ rightSignature: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{left: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};right: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};leftMakerAssetSpreadAmount: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'matchOrders({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},{address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},bytes,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.matchOrders;
+ const encodedData = ethersFunction.encode([leftOrder,
+ rightOrder,
+ leftSignature,
+ rightSignature
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'matchOrders'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public fillOrderNoThrow = {
+ async sendTransactionAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const encodedData = self._lookupEthersInterface('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrderNoThrow.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.fillOrderNoThrow.estimateGasAsync.bind(
+ self,
+ order,
+ takerAssetFillAmount,
+ signature
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrderNoThrow.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrderNoThrow.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'fillOrderNoThrow({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.fillOrderNoThrow;
+ const encodedData = ethersFunction.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'fillOrderNoThrow'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public assetProxies = {
+ async callAsync(
+ index_0: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'assetProxies(bytes4)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.assetProxies;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'assetProxies'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public batchCancelOrders = {
+ async sendTransactionAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchCancelOrders(tuple[])').inputs;
+ [orders
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders
+ ]);
+ const encodedData = self._lookupEthersInterface('batchCancelOrders(tuple[])').functions.batchCancelOrders.encode([orders
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.batchCancelOrders.estimateGasAsync.bind(
+ self,
+ orders
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchCancelOrders(tuple[])').inputs;
+ [orders
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('batchCancelOrders(tuple[])').functions.batchCancelOrders.encode([orders
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchCancelOrders(tuple[])').inputs;
+ [orders
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('batchCancelOrders(tuple[])').functions.batchCancelOrders.encode([orders
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'batchCancelOrders(tuple[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.batchCancelOrders;
+ const encodedData = ethersFunction.encode([orders
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'batchCancelOrders'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public batchFillOrKillOrders = {
+ async sendTransactionAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchFillOrKillOrders(tuple[],uint256[],bytes[])').inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const encodedData = self._lookupEthersInterface('batchFillOrKillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrKillOrders.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.batchFillOrKillOrders.estimateGasAsync.bind(
+ self,
+ orders,
+ takerAssetFillAmounts,
+ signatures
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchFillOrKillOrders(tuple[],uint256[],bytes[])').inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('batchFillOrKillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrKillOrders.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchFillOrKillOrders(tuple[],uint256[],bytes[])').inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('batchFillOrKillOrders(tuple[],uint256[],bytes[])').functions.batchFillOrKillOrders.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'batchFillOrKillOrders(tuple[],uint256[],bytes[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.batchFillOrKillOrders;
+ const encodedData = ethersFunction.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'batchFillOrKillOrders'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public cancelOrdersUpTo = {
+ async sendTransactionAsync(
+ targetOrderEpoch: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('cancelOrdersUpTo(uint256)').inputs;
+ [targetOrderEpoch
+ ] = BaseContract._formatABIDataItemList(inputAbi, [targetOrderEpoch
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [targetOrderEpoch
+ ]);
+ const encodedData = self._lookupEthersInterface('cancelOrdersUpTo(uint256)').functions.cancelOrdersUpTo.encode([targetOrderEpoch
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.cancelOrdersUpTo.estimateGasAsync.bind(
+ self,
+ targetOrderEpoch
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ targetOrderEpoch: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('cancelOrdersUpTo(uint256)').inputs;
+ [targetOrderEpoch
+ ] = BaseContract._formatABIDataItemList(inputAbi, [targetOrderEpoch
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('cancelOrdersUpTo(uint256)').functions.cancelOrdersUpTo.encode([targetOrderEpoch
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ targetOrderEpoch: BigNumber,
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('cancelOrdersUpTo(uint256)').inputs;
+ [targetOrderEpoch
+ ] = BaseContract._formatABIDataItemList(inputAbi, [targetOrderEpoch
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('cancelOrdersUpTo(uint256)').functions.cancelOrdersUpTo.encode([targetOrderEpoch
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ targetOrderEpoch: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'cancelOrdersUpTo(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [targetOrderEpoch
+ ] = BaseContract._formatABIDataItemList(inputAbi, [targetOrderEpoch
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [targetOrderEpoch
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.cancelOrdersUpTo;
+ const encodedData = ethersFunction.encode([targetOrderEpoch
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'cancelOrdersUpTo'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public batchFillOrdersNoThrow = {
+ async sendTransactionAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const encodedData = self._lookupEthersInterface('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').functions.batchFillOrdersNoThrow.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.batchFillOrdersNoThrow.estimateGasAsync.bind(
+ self,
+ orders,
+ takerAssetFillAmounts,
+ signatures
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').functions.batchFillOrdersNoThrow.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('batchFillOrdersNoThrow(tuple[],uint256[],bytes[])').functions.batchFillOrdersNoThrow.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmounts: BigNumber[],
+ signatures: string[],
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'batchFillOrdersNoThrow(tuple[],uint256[],bytes[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders,
+ takerAssetFillAmounts,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.batchFillOrdersNoThrow;
+ const encodedData = ethersFunction.encode([orders,
+ takerAssetFillAmounts,
+ signatures
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'batchFillOrdersNoThrow'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public getAssetProxy = {
+ async callAsync(
+ assetProxyId: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'getAssetProxy(bytes4)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [assetProxyId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxyId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [assetProxyId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getAssetProxy;
+ const encodedData = ethersFunction.encode([assetProxyId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getAssetProxy'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transactions = {
+ async callAsync(
+ index_0: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'transactions(bytes32)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transactions;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transactions'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public fillOrKillOrder = {
+ async sendTransactionAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const encodedData = self._lookupEthersInterface('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrKillOrder.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.fillOrKillOrder.estimateGasAsync.bind(
+ self,
+ order,
+ takerAssetFillAmount,
+ signature
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrKillOrder.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrKillOrder.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'fillOrKillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.fillOrKillOrder;
+ const encodedData = ethersFunction.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'fillOrKillOrder'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public setSignatureValidatorApproval = {
+ async sendTransactionAsync(
+ validatorAddress: string,
+ approval: boolean,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('setSignatureValidatorApproval(address,bool)').inputs;
+ [validatorAddress,
+ approval
+ ] = BaseContract._formatABIDataItemList(inputAbi, [validatorAddress,
+ approval
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [validatorAddress,
+ approval
+ ]);
+ const encodedData = self._lookupEthersInterface('setSignatureValidatorApproval(address,bool)').functions.setSignatureValidatorApproval.encode([validatorAddress,
+ approval
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.setSignatureValidatorApproval.estimateGasAsync.bind(
+ self,
+ validatorAddress,
+ approval
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ validatorAddress: string,
+ approval: boolean,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('setSignatureValidatorApproval(address,bool)').inputs;
+ [validatorAddress,
+ approval
+ ] = BaseContract._formatABIDataItemList(inputAbi, [validatorAddress,
+ approval
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('setSignatureValidatorApproval(address,bool)').functions.setSignatureValidatorApproval.encode([validatorAddress,
+ approval
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ validatorAddress: string,
+ approval: boolean,
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('setSignatureValidatorApproval(address,bool)').inputs;
+ [validatorAddress,
+ approval
+ ] = BaseContract._formatABIDataItemList(inputAbi, [validatorAddress,
+ approval
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('setSignatureValidatorApproval(address,bool)').functions.setSignatureValidatorApproval.encode([validatorAddress,
+ approval
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ validatorAddress: string,
+ approval: boolean,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'setSignatureValidatorApproval(address,bool)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [validatorAddress,
+ approval
+ ] = BaseContract._formatABIDataItemList(inputAbi, [validatorAddress,
+ approval
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [validatorAddress,
+ approval
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.setSignatureValidatorApproval;
+ const encodedData = ethersFunction.encode([validatorAddress,
+ approval
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'setSignatureValidatorApproval'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public allowedValidators = {
+ async callAsync(
+ index_0: string,
+ index_1: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'allowedValidators(address,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0,
+ index_1
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0,
+ index_1
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0,
+ index_1
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.allowedValidators;
+ const encodedData = ethersFunction.encode([index_0,
+ index_1
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'allowedValidators'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public marketSellOrders = {
+ async sendTransactionAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmount: BigNumber,
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketSellOrders(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ takerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ const encodedData = self._lookupEthersInterface('marketSellOrders(tuple[],uint256,bytes[])').functions.marketSellOrders.encode([orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.marketSellOrders.estimateGasAsync.bind(
+ self,
+ orders,
+ takerAssetFillAmount,
+ signatures
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmount: BigNumber,
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketSellOrders(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ takerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('marketSellOrders(tuple[],uint256,bytes[])').functions.marketSellOrders.encode([orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmount: BigNumber,
+ signatures: string[],
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketSellOrders(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ takerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('marketSellOrders(tuple[],uint256,bytes[])').functions.marketSellOrders.encode([orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmount: BigNumber,
+ signatures: string[],
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'marketSellOrders(tuple[],uint256,bytes[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders,
+ takerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.marketSellOrders;
+ const encodedData = ethersFunction.encode([orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'marketSellOrders'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public getOrdersInfo = {
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<Array<{orderStatus: number;orderHash: string;orderTakerAssetFilledAmount: BigNumber}>
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'getOrdersInfo(tuple[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getOrdersInfo;
+ const encodedData = ethersFunction.encode([orders
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getOrdersInfo'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public preSigned = {
+ async callAsync(
+ index_0: string,
+ index_1: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'preSigned(bytes32,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0,
+ index_1
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0,
+ index_1
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0,
+ index_1
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.preSigned;
+ const encodedData = ethersFunction.encode([index_0,
+ index_1
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'preSigned'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public owner = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'owner()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.owner;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'owner'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public isValidSignature = {
+ async callAsync(
+ hash: string,
+ signerAddress: string,
+ signature: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'isValidSignature(bytes32,address,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [hash,
+ signerAddress,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
+ signerAddress,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [hash,
+ signerAddress,
+ signature
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isValidSignature;
+ const encodedData = ethersFunction.encode([hash,
+ signerAddress,
+ signature
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'isValidSignature'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public marketBuyOrdersNoThrow = {
+ async sendTransactionAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ const encodedData = self._lookupEthersInterface('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketBuyOrdersNoThrow.encode([orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.marketBuyOrdersNoThrow.estimateGasAsync.bind(
+ self,
+ orders,
+ makerAssetFillAmount,
+ signatures
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketBuyOrdersNoThrow.encode([orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('marketBuyOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketBuyOrdersNoThrow.encode([orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'marketBuyOrdersNoThrow(tuple[],uint256,bytes[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.marketBuyOrdersNoThrow;
+ const encodedData = ethersFunction.encode([orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'marketBuyOrdersNoThrow'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public fillOrder = {
+ async sendTransactionAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const encodedData = self._lookupEthersInterface('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrder.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.fillOrder.estimateGasAsync.bind(
+ self,
+ order,
+ takerAssetFillAmount,
+ signature
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrder.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)').functions.fillOrder.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAssetFillAmount: BigNumber,
+ signature: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'fillOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},uint256,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [order,
+ takerAssetFillAmount,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.fillOrder;
+ const encodedData = ethersFunction.encode([order,
+ takerAssetFillAmount,
+ signature
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'fillOrder'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public executeTransaction = {
+ async sendTransactionAsync(
+ salt: BigNumber,
+ signerAddress: string,
+ data: string,
+ signature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('executeTransaction(uint256,address,bytes,bytes)').inputs;
+ [salt,
+ signerAddress,
+ data,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [salt,
+ signerAddress,
+ data,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [salt,
+ signerAddress,
+ data,
+ signature
+ ]);
+ const encodedData = self._lookupEthersInterface('executeTransaction(uint256,address,bytes,bytes)').functions.executeTransaction.encode([salt,
+ signerAddress,
+ data,
+ signature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.executeTransaction.estimateGasAsync.bind(
+ self,
+ salt,
+ signerAddress,
+ data,
+ signature
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ salt: BigNumber,
+ signerAddress: string,
+ data: string,
+ signature: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('executeTransaction(uint256,address,bytes,bytes)').inputs;
+ [salt,
+ signerAddress,
+ data,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [salt,
+ signerAddress,
+ data,
+ signature
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('executeTransaction(uint256,address,bytes,bytes)').functions.executeTransaction.encode([salt,
+ signerAddress,
+ data,
+ signature
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ salt: BigNumber,
+ signerAddress: string,
+ data: string,
+ signature: string,
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('executeTransaction(uint256,address,bytes,bytes)').inputs;
+ [salt,
+ signerAddress,
+ data,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [salt,
+ signerAddress,
+ data,
+ signature
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('executeTransaction(uint256,address,bytes,bytes)').functions.executeTransaction.encode([salt,
+ signerAddress,
+ data,
+ signature
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ salt: BigNumber,
+ signerAddress: string,
+ data: string,
+ signature: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'executeTransaction(uint256,address,bytes,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [salt,
+ signerAddress,
+ data,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [salt,
+ signerAddress,
+ data,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [salt,
+ signerAddress,
+ data,
+ signature
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.executeTransaction;
+ const encodedData = ethersFunction.encode([salt,
+ signerAddress,
+ data,
+ signature
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'executeTransaction'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public registerAssetProxy = {
+ async sendTransactionAsync(
+ assetProxy: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('registerAssetProxy(address)').inputs;
+ [assetProxy
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxy
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [assetProxy
+ ]);
+ const encodedData = self._lookupEthersInterface('registerAssetProxy(address)').functions.registerAssetProxy.encode([assetProxy
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.registerAssetProxy.estimateGasAsync.bind(
+ self,
+ assetProxy
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ assetProxy: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('registerAssetProxy(address)').inputs;
+ [assetProxy
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxy
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('registerAssetProxy(address)').functions.registerAssetProxy.encode([assetProxy
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ assetProxy: string,
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('registerAssetProxy(address)').inputs;
+ [assetProxy
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxy
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('registerAssetProxy(address)').functions.registerAssetProxy.encode([assetProxy
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ assetProxy: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'registerAssetProxy(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [assetProxy
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetProxy
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [assetProxy
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.registerAssetProxy;
+ const encodedData = ethersFunction.encode([assetProxy
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'registerAssetProxy'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public getOrderInfo = {
+ async callAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{orderStatus: number;orderHash: string;orderTakerAssetFilledAmount: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'getOrderInfo({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [order
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [order
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getOrderInfo;
+ const encodedData = ethersFunction.encode([order
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getOrderInfo'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public cancelOrder = {
+ async sendTransactionAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').inputs;
+ [order
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [order
+ ]);
+ const encodedData = self._lookupEthersInterface('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').functions.cancelOrder.encode([order
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.cancelOrder.estimateGasAsync.bind(
+ self,
+ order
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').inputs;
+ [order
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').functions.cancelOrder.encode([order
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').inputs;
+ [order
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})').functions.cancelOrder.encode([order
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'cancelOrder({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes})';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [order
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [order
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.cancelOrder;
+ const encodedData = ethersFunction.encode([order
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'cancelOrder'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public orderEpoch = {
+ async callAsync(
+ index_0: string,
+ index_1: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'orderEpoch(address,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0,
+ index_1
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0,
+ index_1
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0,
+ index_1
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.orderEpoch;
+ const encodedData = ethersFunction.encode([index_0,
+ index_1
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'orderEpoch'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public ZRX_ASSET_DATA = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'ZRX_ASSET_DATA()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.ZRX_ASSET_DATA;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'ZRX_ASSET_DATA'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public marketSellOrdersNoThrow = {
+ async sendTransactionAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmount: BigNumber,
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ takerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ const encodedData = self._lookupEthersInterface('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketSellOrdersNoThrow.encode([orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.marketSellOrdersNoThrow.estimateGasAsync.bind(
+ self,
+ orders,
+ takerAssetFillAmount,
+ signatures
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmount: BigNumber,
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ takerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketSellOrdersNoThrow.encode([orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmount: BigNumber,
+ signatures: string[],
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ takerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('marketSellOrdersNoThrow(tuple[],uint256,bytes[])').functions.marketSellOrdersNoThrow.encode([orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAssetFillAmount: BigNumber,
+ signatures: string[],
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'marketSellOrdersNoThrow(tuple[],uint256,bytes[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders,
+ takerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.marketSellOrdersNoThrow;
+ const encodedData = ethersFunction.encode([orders,
+ takerAssetFillAmount,
+ signatures
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'marketSellOrdersNoThrow'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public EIP712_DOMAIN_HASH = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'EIP712_DOMAIN_HASH()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.EIP712_DOMAIN_HASH;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'EIP712_DOMAIN_HASH'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public marketBuyOrders = {
+ async sendTransactionAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketBuyOrders(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ const encodedData = self._lookupEthersInterface('marketBuyOrders(tuple[],uint256,bytes[])').functions.marketBuyOrders.encode([orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.marketBuyOrders.estimateGasAsync.bind(
+ self,
+ orders,
+ makerAssetFillAmount,
+ signatures
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketBuyOrders(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('marketBuyOrders(tuple[],uint256,bytes[])').functions.marketBuyOrders.encode([orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('marketBuyOrders(tuple[],uint256,bytes[])').inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('marketBuyOrders(tuple[],uint256,bytes[])').functions.marketBuyOrders.encode([orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'marketBuyOrders(tuple[],uint256,bytes[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.marketBuyOrders;
+ const encodedData = ethersFunction.encode([orders,
+ makerAssetFillAmount,
+ signatures
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'marketBuyOrders'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public currentContextAddress = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'currentContextAddress()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.currentContextAddress;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'currentContextAddress'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transferOwnership = {
+ async sendTransactionAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferOwnership.estimateGasAsync.bind(
+ self,
+ newOwner
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ newOwner: string,
+ ): string {
+ const self = this as any as ExchangeContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ newOwner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'transferOwnership(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferOwnership;
+ const encodedData = ethersFunction.encode([newOwner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferOwnership'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public VERSION = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ExchangeContract;
+ const functionSignature = 'VERSION()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.VERSION;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'VERSION'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ExchangeContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return ExchangeContract.deployAsync(bytecode, abi, provider, txDefaults, );
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ExchangeContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, []);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`Exchange successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new ExchangeContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('Exchange', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts b/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts
new file mode 100644
index 000000000..80bbc52c7
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts
@@ -0,0 +1,730 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class ForwarderContract extends BaseContract {
+ public marketBuyOrdersWithEth = {
+ async sendTransactionAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ feeOrders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ feeSignatures: string[],
+ feePercentage: BigNumber,
+ feeRecipient: string,
+ txData: Partial<TxDataPayable> = {},
+ ): Promise<string> {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('marketBuyOrdersWithEth(tuple[],uint256,bytes[],tuple[],bytes[],uint256,address)').inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ const encodedData = self._lookupEthersInterface('marketBuyOrdersWithEth(tuple[],uint256,bytes[],tuple[],bytes[],uint256,address)').functions.marketBuyOrdersWithEth.encode([orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.marketBuyOrdersWithEth.estimateGasAsync.bind(
+ self,
+ orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ feeOrders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ feeSignatures: string[],
+ feePercentage: BigNumber,
+ feeRecipient: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('marketBuyOrdersWithEth(tuple[],uint256,bytes[],tuple[],bytes[],uint256,address)').inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('marketBuyOrdersWithEth(tuple[],uint256,bytes[],tuple[],bytes[],uint256,address)').functions.marketBuyOrdersWithEth.encode([orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ feeOrders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ feeSignatures: string[],
+ feePercentage: BigNumber,
+ feeRecipient: string,
+ ): string {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('marketBuyOrdersWithEth(tuple[],uint256,bytes[],tuple[],bytes[],uint256,address)').inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('marketBuyOrdersWithEth(tuple[],uint256,bytes[],tuple[],bytes[],uint256,address)').functions.marketBuyOrdersWithEth.encode([orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ makerAssetFillAmount: BigNumber,
+ signatures: string[],
+ feeOrders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ feeSignatures: string[],
+ feePercentage: BigNumber,
+ feeRecipient: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<[{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}, {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}]
+ > {
+ const self = this as any as ForwarderContract;
+ const functionSignature = 'marketBuyOrdersWithEth(tuple[],uint256,bytes[],tuple[],bytes[],uint256,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.marketBuyOrdersWithEth;
+ const encodedData = ethersFunction.encode([orders,
+ makerAssetFillAmount,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'marketBuyOrdersWithEth'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public withdrawAsset = {
+ async sendTransactionAsync(
+ assetData: string,
+ amount: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('withdrawAsset(bytes,uint256)').inputs;
+ [assetData,
+ amount
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetData,
+ amount
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [assetData,
+ amount
+ ]);
+ const encodedData = self._lookupEthersInterface('withdrawAsset(bytes,uint256)').functions.withdrawAsset.encode([assetData,
+ amount
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.withdrawAsset.estimateGasAsync.bind(
+ self,
+ assetData,
+ amount
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ assetData: string,
+ amount: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('withdrawAsset(bytes,uint256)').inputs;
+ [assetData,
+ amount
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetData,
+ amount
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('withdrawAsset(bytes,uint256)').functions.withdrawAsset.encode([assetData,
+ amount
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ assetData: string,
+ amount: BigNumber,
+ ): string {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('withdrawAsset(bytes,uint256)').inputs;
+ [assetData,
+ amount
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetData,
+ amount
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('withdrawAsset(bytes,uint256)').functions.withdrawAsset.encode([assetData,
+ amount
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ assetData: string,
+ amount: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ForwarderContract;
+ const functionSignature = 'withdrawAsset(bytes,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [assetData,
+ amount
+ ] = BaseContract._formatABIDataItemList(inputAbi, [assetData,
+ amount
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [assetData,
+ amount
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.withdrawAsset;
+ const encodedData = ethersFunction.encode([assetData,
+ amount
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'withdrawAsset'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public owner = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ForwarderContract;
+ const functionSignature = 'owner()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.owner;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'owner'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public marketSellOrdersWithEth = {
+ async sendTransactionAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ signatures: string[],
+ feeOrders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ feeSignatures: string[],
+ feePercentage: BigNumber,
+ feeRecipient: string,
+ txData: Partial<TxDataPayable> = {},
+ ): Promise<string> {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('marketSellOrdersWithEth(tuple[],bytes[],tuple[],bytes[],uint256,address)').inputs;
+ [orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ const encodedData = self._lookupEthersInterface('marketSellOrdersWithEth(tuple[],bytes[],tuple[],bytes[],uint256,address)').functions.marketSellOrdersWithEth.encode([orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.marketSellOrdersWithEth.estimateGasAsync.bind(
+ self,
+ orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ signatures: string[],
+ feeOrders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ feeSignatures: string[],
+ feePercentage: BigNumber,
+ feeRecipient: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('marketSellOrdersWithEth(tuple[],bytes[],tuple[],bytes[],uint256,address)').inputs;
+ [orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('marketSellOrdersWithEth(tuple[],bytes[],tuple[],bytes[],uint256,address)').functions.marketSellOrdersWithEth.encode([orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ signatures: string[],
+ feeOrders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ feeSignatures: string[],
+ feePercentage: BigNumber,
+ feeRecipient: string,
+ ): string {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('marketSellOrdersWithEth(tuple[],bytes[],tuple[],bytes[],uint256,address)').inputs;
+ [orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('marketSellOrdersWithEth(tuple[],bytes[],tuple[],bytes[],uint256,address)').functions.marketSellOrdersWithEth.encode([orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ signatures: string[],
+ feeOrders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ feeSignatures: string[],
+ feePercentage: BigNumber,
+ feeRecipient: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<[{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}, {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}]
+ > {
+ const self = this as any as ForwarderContract;
+ const functionSignature = 'marketSellOrdersWithEth(tuple[],bytes[],tuple[],bytes[],uint256,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.marketSellOrdersWithEth;
+ const encodedData = ethersFunction.encode([orders,
+ signatures,
+ feeOrders,
+ feeSignatures,
+ feePercentage,
+ feeRecipient
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'marketSellOrdersWithEth'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public transferOwnership = {
+ async sendTransactionAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferOwnership.estimateGasAsync.bind(
+ self,
+ newOwner
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ newOwner: string,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ newOwner: string,
+ ): string {
+ const self = this as any as ForwarderContract;
+ const inputAbi = self._lookupAbi('transferOwnership(address)').inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferOwnership(address)').functions.transferOwnership.encode([newOwner
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ newOwner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as ForwarderContract;
+ const functionSignature = 'transferOwnership(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [newOwner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [newOwner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [newOwner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferOwnership;
+ const encodedData = ethersFunction.encode([newOwner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferOwnership'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ _exchange: string,
+ _zrxAssetData: string,
+ _wethAssetData: string,
+ ): Promise<ForwarderContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return ForwarderContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange,
+_zrxAssetData,
+_wethAssetData
+);
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ _exchange: string,
+ _zrxAssetData: string,
+ _wethAssetData: string,
+ ): Promise<ForwarderContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [_exchange,
+_zrxAssetData,
+_wethAssetData
+] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [_exchange,
+_zrxAssetData,
+_wethAssetData
+],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, [_exchange,
+_zrxAssetData,
+_wethAssetData
+]);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`Forwarder successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new ForwarderContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [_exchange,
+_zrxAssetData,
+_wethAssetData
+];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('Forwarder', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts b/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts
new file mode 100644
index 000000000..203a66b6d
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts
@@ -0,0 +1,108 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class IValidatorContract extends BaseContract {
+ public isValidSignature = {
+ async callAsync(
+ hash: string,
+ signerAddress: string,
+ signature: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as IValidatorContract;
+ const functionSignature = 'isValidSignature(bytes32,address,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [hash,
+ signerAddress,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
+ signerAddress,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [hash,
+ signerAddress,
+ signature
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isValidSignature;
+ const encodedData = ethersFunction.encode([hash,
+ signerAddress,
+ signature
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'isValidSignature'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<IValidatorContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return IValidatorContract.deployAsync(bytecode, abi, provider, txDefaults, );
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<IValidatorContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, []);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`IValidator successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new IValidatorContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('IValidator', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts b/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts
new file mode 100644
index 000000000..99809a049
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts
@@ -0,0 +1,103 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class IWalletContract extends BaseContract {
+ public isValidSignature = {
+ async callAsync(
+ hash: string,
+ signature: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as IWalletContract;
+ const functionSignature = 'isValidSignature(bytes32,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [hash,
+ signature
+ ] = BaseContract._formatABIDataItemList(inputAbi, [hash,
+ signature
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [hash,
+ signature
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isValidSignature;
+ const encodedData = ethersFunction.encode([hash,
+ signature
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'isValidSignature'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<IWalletContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return IWalletContract.deployAsync(bytecode, abi, provider, txDefaults, );
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<IWalletContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, []);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`IWallet successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new IWalletContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('IWallet', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts b/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts
new file mode 100644
index 000000000..38233af3f
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts
@@ -0,0 +1,357 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class OrderValidatorContract extends BaseContract {
+ public getOrderAndTraderInfo = {
+ async callAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAddress: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<[{orderStatus: number;orderHash: string;orderTakerAssetFilledAmount: BigNumber}, {makerBalance: BigNumber;makerAllowance: BigNumber;takerBalance: BigNumber;takerAllowance: BigNumber;makerZrxBalance: BigNumber;makerZrxAllowance: BigNumber;takerZrxBalance: BigNumber;takerZrxAllowance: BigNumber}]
+ > {
+ const self = this as any as OrderValidatorContract;
+ const functionSignature = 'getOrderAndTraderInfo({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [order,
+ takerAddress
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAddress
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [order,
+ takerAddress
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getOrderAndTraderInfo;
+ const encodedData = ethersFunction.encode([order,
+ takerAddress
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getOrderAndTraderInfo'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public getBalanceAndAllowance = {
+ async callAsync(
+ target: string,
+ assetData: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<[BigNumber, BigNumber]
+ > {
+ const self = this as any as OrderValidatorContract;
+ const functionSignature = 'getBalanceAndAllowance(address,bytes)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [target,
+ assetData
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target,
+ assetData
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target,
+ assetData
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getBalanceAndAllowance;
+ const encodedData = ethersFunction.encode([target,
+ assetData
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getBalanceAndAllowance'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public getOrdersAndTradersInfo = {
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAddresses: string[],
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<[Array<{orderStatus: number;orderHash: string;orderTakerAssetFilledAmount: BigNumber}>, Array<{makerBalance: BigNumber;makerAllowance: BigNumber;takerBalance: BigNumber;takerAllowance: BigNumber;makerZrxBalance: BigNumber;makerZrxAllowance: BigNumber;takerZrxBalance: BigNumber;takerZrxAllowance: BigNumber}>]
+ > {
+ const self = this as any as OrderValidatorContract;
+ const functionSignature = 'getOrdersAndTradersInfo(tuple[],address[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders,
+ takerAddresses
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAddresses
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAddresses
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getOrdersAndTradersInfo;
+ const encodedData = ethersFunction.encode([orders,
+ takerAddresses
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getOrdersAndTradersInfo'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public getTradersInfo = {
+ async callAsync(
+ orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,
+ takerAddresses: string[],
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<Array<{makerBalance: BigNumber;makerAllowance: BigNumber;takerBalance: BigNumber;takerAllowance: BigNumber;makerZrxBalance: BigNumber;makerZrxAllowance: BigNumber;takerZrxBalance: BigNumber;takerZrxAllowance: BigNumber}>
+ > {
+ const self = this as any as OrderValidatorContract;
+ const functionSignature = 'getTradersInfo(tuple[],address[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [orders,
+ takerAddresses
+ ] = BaseContract._formatABIDataItemList(inputAbi, [orders,
+ takerAddresses
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [orders,
+ takerAddresses
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getTradersInfo;
+ const encodedData = ethersFunction.encode([orders,
+ takerAddresses
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getTradersInfo'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public getERC721TokenOwner = {
+ async callAsync(
+ token: string,
+ tokenId: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as OrderValidatorContract;
+ const functionSignature = 'getERC721TokenOwner(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [token,
+ tokenId
+ ] = BaseContract._formatABIDataItemList(inputAbi, [token,
+ tokenId
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [token,
+ tokenId
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getERC721TokenOwner;
+ const encodedData = ethersFunction.encode([token,
+ tokenId
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getERC721TokenOwner'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public getBalancesAndAllowances = {
+ async callAsync(
+ target: string,
+ assetData: string[],
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<[BigNumber[], BigNumber[]]
+ > {
+ const self = this as any as OrderValidatorContract;
+ const functionSignature = 'getBalancesAndAllowances(address,bytes[])';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [target,
+ assetData
+ ] = BaseContract._formatABIDataItemList(inputAbi, [target,
+ assetData
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [target,
+ assetData
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getBalancesAndAllowances;
+ const encodedData = ethersFunction.encode([target,
+ assetData
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getBalancesAndAllowances'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public getTraderInfo = {
+ async callAsync(
+ order: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string},
+ takerAddress: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<{makerBalance: BigNumber;makerAllowance: BigNumber;takerBalance: BigNumber;takerAllowance: BigNumber;makerZrxBalance: BigNumber;makerZrxAllowance: BigNumber;takerZrxBalance: BigNumber;takerZrxAllowance: BigNumber}
+ > {
+ const self = this as any as OrderValidatorContract;
+ const functionSignature = 'getTraderInfo({address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes},address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [order,
+ takerAddress
+ ] = BaseContract._formatABIDataItemList(inputAbi, [order,
+ takerAddress
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [order,
+ takerAddress
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getTraderInfo;
+ const encodedData = ethersFunction.encode([order,
+ takerAddress
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'getTraderInfo'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ _exchange: string,
+ _zrxAssetData: string,
+ ): Promise<OrderValidatorContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return OrderValidatorContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange,
+_zrxAssetData
+);
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ _exchange: string,
+ _zrxAssetData: string,
+ ): Promise<OrderValidatorContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [_exchange,
+_zrxAssetData
+] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [_exchange,
+_zrxAssetData
+],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, [_exchange,
+_zrxAssetData
+]);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`OrderValidator successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new OrderValidatorContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [_exchange,
+_zrxAssetData
+];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('OrderValidator', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts b/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts
new file mode 100644
index 000000000..86d1031db
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts
@@ -0,0 +1,835 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+export type WETH9EventArgs =
+ | WETH9ApprovalEventArgs
+ | WETH9TransferEventArgs
+ | WETH9DepositEventArgs
+ | WETH9WithdrawalEventArgs;
+
+export enum WETH9Events {
+ Approval = 'Approval',
+ Transfer = 'Transfer',
+ Deposit = 'Deposit',
+ Withdrawal = 'Withdrawal',
+}
+
+export interface WETH9ApprovalEventArgs extends DecodedLogArgs {
+ _owner: string;
+ _spender: string;
+ _value: BigNumber;
+}
+
+export interface WETH9TransferEventArgs extends DecodedLogArgs {
+ _from: string;
+ _to: string;
+ _value: BigNumber;
+}
+
+export interface WETH9DepositEventArgs extends DecodedLogArgs {
+ _owner: string;
+ _value: BigNumber;
+}
+
+export interface WETH9WithdrawalEventArgs extends DecodedLogArgs {
+ _owner: string;
+ _value: BigNumber;
+}
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class WETH9Contract extends BaseContract {
+ public name = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as WETH9Contract;
+ const functionSignature = 'name()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.name;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'name'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public approve = {
+ async sendTransactionAsync(
+ guy: string,
+ wad: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [guy,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [guy,
+ wad
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [guy,
+ wad
+ ]);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([guy,
+ wad
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.approve.estimateGasAsync.bind(
+ self,
+ guy,
+ wad
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ guy: string,
+ wad: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [guy,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [guy,
+ wad
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([guy,
+ wad
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ guy: string,
+ wad: BigNumber,
+ ): string {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [guy,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [guy,
+ wad
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([guy,
+ wad
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ guy: string,
+ wad: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as WETH9Contract;
+ const functionSignature = 'approve(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [guy,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [guy,
+ wad
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [guy,
+ wad
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.approve;
+ const encodedData = ethersFunction.encode([guy,
+ wad
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'approve'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public totalSupply = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as WETH9Contract;
+ const functionSignature = 'totalSupply()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.totalSupply;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'totalSupply'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transferFrom = {
+ async sendTransactionAsync(
+ src: string,
+ dst: string,
+ wad: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [src,
+ dst,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [src,
+ dst,
+ wad
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [src,
+ dst,
+ wad
+ ]);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([src,
+ dst,
+ wad
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferFrom.estimateGasAsync.bind(
+ self,
+ src,
+ dst,
+ wad
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ src: string,
+ dst: string,
+ wad: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [src,
+ dst,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [src,
+ dst,
+ wad
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([src,
+ dst,
+ wad
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ src: string,
+ dst: string,
+ wad: BigNumber,
+ ): string {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [src,
+ dst,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [src,
+ dst,
+ wad
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([src,
+ dst,
+ wad
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ src: string,
+ dst: string,
+ wad: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as WETH9Contract;
+ const functionSignature = 'transferFrom(address,address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [src,
+ dst,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [src,
+ dst,
+ wad
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [src,
+ dst,
+ wad
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferFrom;
+ const encodedData = ethersFunction.encode([src,
+ dst,
+ wad
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferFrom'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public withdraw = {
+ async sendTransactionAsync(
+ wad: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('withdraw(uint256)').inputs;
+ [wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [wad
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [wad
+ ]);
+ const encodedData = self._lookupEthersInterface('withdraw(uint256)').functions.withdraw.encode([wad
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.withdraw.estimateGasAsync.bind(
+ self,
+ wad
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ wad: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('withdraw(uint256)').inputs;
+ [wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [wad
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('withdraw(uint256)').functions.withdraw.encode([wad
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ wad: BigNumber,
+ ): string {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('withdraw(uint256)').inputs;
+ [wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [wad
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('withdraw(uint256)').functions.withdraw.encode([wad
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ wad: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as WETH9Contract;
+ const functionSignature = 'withdraw(uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [wad
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [wad
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.withdraw;
+ const encodedData = ethersFunction.encode([wad
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'withdraw'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public decimals = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<number
+ > {
+ const self = this as any as WETH9Contract;
+ const functionSignature = 'decimals()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.decimals;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'decimals'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public balanceOf = {
+ async callAsync(
+ index_0: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as WETH9Contract;
+ const functionSignature = 'balanceOf(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.balanceOf;
+ const encodedData = ethersFunction.encode([index_0
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'balanceOf'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public symbol = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as WETH9Contract;
+ const functionSignature = 'symbol()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.symbol;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'symbol'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transfer = {
+ async sendTransactionAsync(
+ dst: string,
+ wad: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [dst,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [dst,
+ wad
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [dst,
+ wad
+ ]);
+ const encodedData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([dst,
+ wad
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transfer.estimateGasAsync.bind(
+ self,
+ dst,
+ wad
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ dst: string,
+ wad: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [dst,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [dst,
+ wad
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([dst,
+ wad
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ dst: string,
+ wad: BigNumber,
+ ): string {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [dst,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [dst,
+ wad
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([dst,
+ wad
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ dst: string,
+ wad: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as WETH9Contract;
+ const functionSignature = 'transfer(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [dst,
+ wad
+ ] = BaseContract._formatABIDataItemList(inputAbi, [dst,
+ wad
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [dst,
+ wad
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transfer;
+ const encodedData = ethersFunction.encode([dst,
+ wad
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transfer'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public deposit = {
+ async sendTransactionAsync(
+ txData: Partial<TxDataPayable> = {},
+ ): Promise<string> {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('deposit()').inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const encodedData = self._lookupEthersInterface('deposit()').functions.deposit.encode([]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.deposit.estimateGasAsync.bind(
+ self,
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('deposit()').inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('deposit()').functions.deposit.encode([]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ ): string {
+ const self = this as any as WETH9Contract;
+ const inputAbi = self._lookupAbi('deposit()').inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('deposit()').functions.deposit.encode([]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<void
+ > {
+ const self = this as any as WETH9Contract;
+ const functionSignature = 'deposit()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.deposit;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'deposit'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray;
+ },
+ };
+ public allowance = {
+ async callAsync(
+ index_0: string,
+ index_1: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as WETH9Contract;
+ const functionSignature = 'allowance(address,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [index_0,
+ index_1
+ ] = BaseContract._formatABIDataItemList(inputAbi, [index_0,
+ index_1
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0,
+ index_1
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.allowance;
+ const encodedData = ethersFunction.encode([index_0,
+ index_1
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'allowance'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<WETH9Contract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return WETH9Contract.deployAsync(bytecode, abi, provider, txDefaults, );
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<WETH9Contract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, []);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`WETH9 successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new WETH9Contract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('WETH9', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts b/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts
new file mode 100644
index 000000000..98079e77b
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts
@@ -0,0 +1,646 @@
+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name
+// tslint:disable:no-unused-variable
+// tslint:disable:no-unbound-method
+import { BaseContract } from '@0x/base-contract';
+import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, Provider, TxData, TxDataPayable } from 'ethereum-types';
+import { BigNumber, classUtils, logUtils } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
+import * as ethers from 'ethers';
+import * as _ from 'lodash';
+// tslint:enable:no-unused-variable
+
+export type ZRXTokenEventArgs =
+ | ZRXTokenTransferEventArgs
+ | ZRXTokenApprovalEventArgs;
+
+export enum ZRXTokenEvents {
+ Transfer = 'Transfer',
+ Approval = 'Approval',
+}
+
+export interface ZRXTokenTransferEventArgs extends DecodedLogArgs {
+ _from: string;
+ _to: string;
+ _value: BigNumber;
+}
+
+export interface ZRXTokenApprovalEventArgs extends DecodedLogArgs {
+ _owner: string;
+ _spender: string;
+ _value: BigNumber;
+}
+
+
+/* istanbul ignore next */
+// tslint:disable:no-parameter-reassignment
+// tslint:disable-next-line:class-name
+export class ZRXTokenContract extends BaseContract {
+ public name = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ZRXTokenContract;
+ const functionSignature = 'name()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.name;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'name'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public approve = {
+ async sendTransactionAsync(
+ _spender: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ZRXTokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_spender,
+ _value
+ ]);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_spender,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.approve.estimateGasAsync.bind(
+ self,
+ _spender,
+ _value
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _spender: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ZRXTokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_spender,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _spender: string,
+ _value: BigNumber,
+ ): string {
+ const self = this as any as ZRXTokenContract;
+ const inputAbi = self._lookupAbi('approve(address,uint256)').inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('approve(address,uint256)').functions.approve.encode([_spender,
+ _value
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _spender: string,
+ _value: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ZRXTokenContract;
+ const functionSignature = 'approve(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_spender,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_spender,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_spender,
+ _value
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.approve;
+ const encodedData = ethersFunction.encode([_spender,
+ _value
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'approve'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public totalSupply = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as ZRXTokenContract;
+ const functionSignature = 'totalSupply()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.totalSupply;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'totalSupply'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transferFrom = {
+ async sendTransactionAsync(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ZRXTokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _value
+ ]);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transferFrom.estimateGasAsync.bind(
+ self,
+ _from,
+ _to,
+ _value
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ZRXTokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ ): string {
+ const self = this as any as ZRXTokenContract;
+ const inputAbi = self._lookupAbi('transferFrom(address,address,uint256)').inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transferFrom(address,address,uint256)').functions.transferFrom.encode([_from,
+ _to,
+ _value
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _from: string,
+ _to: string,
+ _value: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ZRXTokenContract;
+ const functionSignature = 'transferFrom(address,address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_from,
+ _to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_from,
+ _to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_from,
+ _to,
+ _value
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transferFrom;
+ const encodedData = ethersFunction.encode([_from,
+ _to,
+ _value
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transferFrom'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public decimals = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<number
+ > {
+ const self = this as any as ZRXTokenContract;
+ const functionSignature = 'decimals()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.decimals;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'decimals'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public balanceOf = {
+ async callAsync(
+ _owner: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as ZRXTokenContract;
+ const functionSignature = 'balanceOf(address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_owner
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.balanceOf;
+ const encodedData = ethersFunction.encode([_owner
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'balanceOf'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public symbol = {
+ async callAsync(
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<string
+ > {
+ const self = this as any as ZRXTokenContract;
+ const functionSignature = 'symbol()';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, []);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.symbol;
+ const encodedData = ethersFunction.encode([]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'symbol'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public transfer = {
+ async sendTransactionAsync(
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<string> {
+ const self = this as any as ZRXTokenContract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_to,
+ _value
+ ]);
+ const encodedData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([_to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ self.transfer.estimateGasAsync.bind(
+ self,
+ _to,
+ _value
+ ),
+ );
+ const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ return txHash;
+ },
+ async estimateGasAsync(
+ _to: string,
+ _value: BigNumber,
+ txData: Partial<TxData> = {},
+ ): Promise<number> {
+ const self = this as any as ZRXTokenContract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const encodedData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([_to,
+ _value
+ ]);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...txData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults);
+ return gas;
+ },
+ getABIEncodedTransactionData(
+ _to: string,
+ _value: BigNumber,
+ ): string {
+ const self = this as any as ZRXTokenContract;
+ const inputAbi = self._lookupAbi('transfer(address,uint256)').inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString);
+ const abiEncodedTransactionData = self._lookupEthersInterface('transfer(address,uint256)').functions.transfer.encode([_to,
+ _value
+ ]);
+ return abiEncodedTransactionData;
+ },
+ async callAsync(
+ _to: string,
+ _value: BigNumber,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<boolean
+ > {
+ const self = this as any as ZRXTokenContract;
+ const functionSignature = 'transfer(address,uint256)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_to,
+ _value
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_to,
+ _value
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_to,
+ _value
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transfer;
+ const encodedData = ethersFunction.encode([_to,
+ _value
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'transfer'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public allowance = {
+ async callAsync(
+ _owner: string,
+ _spender: string,
+ callData: Partial<CallData> = {},
+ defaultBlock?: BlockParam,
+ ): Promise<BigNumber
+ > {
+ const self = this as any as ZRXTokenContract;
+ const functionSignature = 'allowance(address,address)';
+ const inputAbi = self._lookupAbi(functionSignature).inputs;
+ [_owner,
+ _spender
+ ] = BaseContract._formatABIDataItemList(inputAbi, [_owner,
+ _spender
+ ], BaseContract._bigNumberToString.bind(self));
+ BaseContract.strictArgumentEncodingCheck(inputAbi, [_owner,
+ _spender
+ ]);
+ const ethersFunction = self._lookupEthersInterface(functionSignature).functions.allowance;
+ const encodedData = ethersFunction.encode([_owner,
+ _spender
+ ]);
+ const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {
+ to: self.address,
+ ...callData,
+ data: encodedData,
+ },
+ self._web3Wrapper.getContractDefaults(),
+ );
+ const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock);
+ BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);
+ let resultArray = ethersFunction.decode(rawCallResult);
+ const outputAbi = (_.find(self.abi, {name: 'allowance'}) as MethodAbi).outputs;
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._lowercaseAddress.bind(this));
+ resultArray = BaseContract._formatABIDataItemList(outputAbi, resultArray, BaseContract._bnToBigNumber.bind(this));
+ return resultArray[0];
+ },
+ };
+ public static async deployFrom0xArtifactAsync(
+ artifact: ContractArtifact,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ZRXTokenContract> {
+ if (_.isUndefined(artifact.compilerOutput)) {
+ throw new Error('Compiler output not found in the artifact file');
+ }
+ const bytecode = artifact.compilerOutput.evm.bytecode.object;
+ const abi = artifact.compilerOutput.abi;
+ return ZRXTokenContract.deployAsync(bytecode, abi, provider, txDefaults, );
+ }
+ public static async deployAsync(
+ bytecode: string,
+ abi: ContractAbi,
+ provider: Provider,
+ txDefaults: Partial<TxData>,
+ ): Promise<ZRXTokenContract> {
+ const constructorAbi = BaseContract._lookupConstructorAbi(abi);
+ [] = BaseContract._formatABIDataItemList(
+ constructorAbi.inputs,
+ [],
+ BaseContract._bigNumberToString,
+ );
+ const iface = new ethers.utils.Interface(abi);
+ const deployInfo = iface.deployFunction;
+ const txData = deployInfo.encode(bytecode, []);
+ const web3Wrapper = new Web3Wrapper(provider);
+ const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync(
+ {data: txData},
+ txDefaults,
+ web3Wrapper.estimateGasAsync.bind(web3Wrapper),
+ );
+ const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults);
+ logUtils.log(`transactionHash: ${txHash}`);
+ const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash);
+ logUtils.log(`ZRXToken successfully deployed at ${txReceipt.contractAddress}`);
+ const contractInstance = new ZRXTokenContract(abi, txReceipt.contractAddress as string, provider, txDefaults);
+ contractInstance.constructorArgs = [];
+ return contractInstance;
+ }
+ constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) {
+ super('ZRXToken', abi, address, provider, txDefaults);
+ classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']);
+ }
+} // tslint:disable:max-file-line-count
+// tslint:enable:no-unbound-method
diff --git a/packages/abi-gen-wrappers/src/index.ts b/packages/abi-gen-wrappers/src/index.ts
new file mode 100644
index 000000000..de418214b
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/index.ts
@@ -0,0 +1,14 @@
+export * from './generated-wrappers/asset_proxy_owner';
+export * from './generated-wrappers/dummy_erc20_token';
+export * from './generated-wrappers/dummy_erc721_token';
+export * from './generated-wrappers/erc20_proxy';
+export * from './generated-wrappers/erc20_token';
+export * from './generated-wrappers/erc721_proxy';
+export * from './generated-wrappers/erc721_token';
+export * from './generated-wrappers/exchange';
+export * from './generated-wrappers/forwarder';
+export * from './generated-wrappers/i_validator';
+export * from './generated-wrappers/i_wallet';
+export * from './generated-wrappers/order_validator';
+export * from './generated-wrappers/weth9';
+export * from './generated-wrappers/zrx_token';
diff --git a/packages/sra-report/tsconfig.json b/packages/abi-gen-wrappers/tsconfig.json
index 2ee711adc..233008d61 100644
--- a/packages/sra-report/tsconfig.json
+++ b/packages/abi-gen-wrappers/tsconfig.json
@@ -4,5 +4,5 @@
"outDir": "lib",
"rootDir": "."
},
- "include": ["./src/**/*", "./test/**/*"]
+ "include": ["./src/**/*"]
}
diff --git a/packages/abi-gen-wrappers/tslint.json b/packages/abi-gen-wrappers/tslint.json
new file mode 100644
index 000000000..dd9053357
--- /dev/null
+++ b/packages/abi-gen-wrappers/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": ["@0x/tslint-config"]
+}
diff --git a/packages/abi-gen/CHANGELOG.json b/packages/abi-gen/CHANGELOG.json
index d5e0f9469..658a997f4 100644
--- a/packages/abi-gen/CHANGELOG.json
+++ b/packages/abi-gen/CHANGELOG.json
@@ -1,5 +1,23 @@
[
{
+ "version": "1.0.15",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ],
+ "timestamp": 1541740904
+ },
+ {
+ "timestamp": 1539871071,
+ "version": "1.0.14",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "1.0.13",
"changes": [
{
diff --git a/packages/abi-gen/CHANGELOG.md b/packages/abi-gen/CHANGELOG.md
index ed955a051..21fda1656 100644
--- a/packages/abi-gen/CHANGELOG.md
+++ b/packages/abi-gen/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.0.15 - _November 9, 2018_
+
+ * Dependencies updated
+
+## v1.0.14 - _October 18, 2018_
+
+ * Dependencies updated
+
## v1.0.13 - _October 4, 2018_
* Dependencies updated
@@ -37,7 +45,7 @@ CHANGELOG
* Dependencies updated
-## v1.0.5 - _August 13, 2018_
+## v1.0.5 - _August 14, 2018_
* Dependencies updated
diff --git a/packages/abi-gen/README.md b/packages/abi-gen/README.md
index b6dd37cd1..20b9d4f30 100644
--- a/packages/abi-gen/README.md
+++ b/packages/abi-gen/README.md
@@ -8,7 +8,7 @@ You can write your custom handlebars templates which will allow you to seamlessl
## Installation
-`yarn add -g @0xproject/abi-gen`
+`yarn add -g @0x/abi-gen`
## Usage
@@ -82,13 +82,13 @@ yarn install
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
```bash
-PKG=@0xproject/abi-gen yarn build
+PKG=@0x/abi-gen yarn build
```
Or continuously rebuild on change:
```bash
-PKG=@0xproject/abi-gen yarn watch
+PKG=@0x/abi-gen yarn watch
```
### Clean
diff --git a/packages/abi-gen/package.json b/packages/abi-gen/package.json
index d6cd80978..5367c9c29 100644
--- a/packages/abi-gen/package.json
+++ b/packages/abi-gen/package.json
@@ -1,6 +1,6 @@
{
- "name": "@0xproject/abi-gen",
- "version": "1.0.13",
+ "name": "@0x/abi-gen",
+ "version": "1.0.15",
"engines": {
"node": ">=6.12"
},
@@ -8,7 +8,7 @@
"main": "lib/src/index.js",
"types": "lib/src/index.d.ts",
"scripts": {
- "lint": "tslint --project .",
+ "lint": "tslint --format stylish --project .",
"clean": "shx rm -rf lib",
"build": "tsc -b",
"build:ci": "yarn build",
@@ -31,10 +31,10 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/abi-gen/README.md",
"dependencies": {
- "@0xproject/typescript-typings": "^3.0.2",
- "@0xproject/utils": "^2.0.2",
+ "@0x/typescript-typings": "^3.0.4",
+ "@0x/utils": "^2.0.4",
"chalk": "^2.3.0",
- "ethereum-types": "^1.0.11",
+ "ethereum-types": "^1.1.2",
"glob": "^7.1.2",
"handlebars": "^4.0.11",
"lodash": "^4.17.5",
@@ -45,7 +45,7 @@
"yargs": "^10.0.3"
},
"devDependencies": {
- "@0xproject/tslint-config": "^1.0.8",
+ "@0x/tslint-config": "^1.0.10",
"@types/glob": "5.0.35",
"@types/handlebars": "^4.0.36",
"@types/mkdirp": "^0.5.1",
@@ -54,7 +54,6 @@
"@types/tmp": "^0.0.33",
"@types/yargs": "^10.0.0",
"chai": "^4.1.2",
- "copyfiles": "^2.0.0",
"dirty-chai": "^2.0.1",
"make-promises-safe": "^1.1.0",
"mocha": "^5.2.0",
diff --git a/packages/abi-gen/src/index.ts b/packages/abi-gen/src/index.ts
index f5283b97a..5bad920ca 100644
--- a/packages/abi-gen/src/index.ts
+++ b/packages/abi-gen/src/index.ts
@@ -1,6 +1,6 @@
#!/usr/bin/env node
-import { abiUtils, logUtils } from '@0xproject/utils';
+import { abiUtils, logUtils } from '@0x/utils';
import chalk from 'chalk';
import { AbiDefinition, ConstructorAbi, EventAbi, MethodAbi } from 'ethereum-types';
import { sync as globSync } from 'glob';
diff --git a/packages/abi-gen/tslint.json b/packages/abi-gen/tslint.json
index ffaefe83a..dd9053357 100644
--- a/packages/abi-gen/tslint.json
+++ b/packages/abi-gen/tslint.json
@@ -1,3 +1,3 @@
{
- "extends": ["@0xproject/tslint-config"]
+ "extends": ["@0x/tslint-config"]
}
diff --git a/packages/assert/CHANGELOG.json b/packages/assert/CHANGELOG.json
index ec84f099e..82c0938cf 100644
--- a/packages/assert/CHANGELOG.json
+++ b/packages/assert/CHANGELOG.json
@@ -1,5 +1,23 @@
[
{
+ "version": "1.0.15",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ],
+ "timestamp": 1541740904
+ },
+ {
+ "timestamp": 1539871071,
+ "version": "1.0.14",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "1.0.13",
"changes": [
{
diff --git a/packages/assert/CHANGELOG.md b/packages/assert/CHANGELOG.md
index b9f097c4e..7d0895eca 100644
--- a/packages/assert/CHANGELOG.md
+++ b/packages/assert/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v1.0.15 - _November 9, 2018_
+
+ * Dependencies updated
+
+## v1.0.14 - _October 18, 2018_
+
+ * Dependencies updated
+
## v1.0.13 - _October 4, 2018_
* Dependencies updated
@@ -37,7 +45,7 @@ CHANGELOG
* Dependencies updated
-## v1.0.5 - _August 13, 2018_
+## v1.0.5 - _August 14, 2018_
* Dependencies updated
diff --git a/packages/assert/README.md b/packages/assert/README.md
index 1f2139d47..647586f15 100644
--- a/packages/assert/README.md
+++ b/packages/assert/README.md
@@ -1,17 +1,17 @@
-## @0xproject/assert
+## @0x/assert
Standard type and schema assertions to be used across all 0x projects and packages
## Installation
```bash
-yarn add @0xproject/assert
+yarn add @0x/assert
```
## Usage
```typescript
-import { assert } from '@0xproject/assert';
+import { assert } from '@0x/assert';
assert.isValidBaseUnitAmount('baseUnitAmount', baseUnitAmount);
```
@@ -20,7 +20,7 @@ If your project is in [TypeScript](https://www.typescriptlang.org/), add the fol
```json
"compilerOptions": {
- "typeRoots": ["node_modules/@0xproject/typescript-typings/types", "node_modules/@types"],
+ "typeRoots": ["node_modules/@0x/typescript-typings/types", "node_modules/@types"],
}
```
@@ -49,13 +49,13 @@ yarn install
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
```bash
-PKG=@0xproject/assert yarn build
+PKG=@0x/assert yarn build
```
Or continuously rebuild on change:
```bash
-PKG=@0xproject/assert yarn watch
+PKG=@0x/assert yarn watch
```
### Clean
diff --git a/packages/assert/package.json b/packages/assert/package.json
index 795010cd0..cc2fdaae9 100644
--- a/packages/assert/package.json
+++ b/packages/assert/package.json
@@ -1,6 +1,6 @@
{
- "name": "@0xproject/assert",
- "version": "1.0.13",
+ "name": "@0x/assert",
+ "version": "1.0.15",
"engines": {
"node": ">=6.12"
},
@@ -11,7 +11,7 @@
"build": "tsc -b",
"build:ci": "yarn build",
"clean": "shx rm -rf lib test_temp",
- "lint": "tslint --project .",
+ "lint": "tslint --format stylish --project .",
"run_mocha": "mocha --require source-map-support/register --require make-promises-safe lib/test/**/*_test.js --exit",
"test": "yarn run_mocha",
"rebuild_and_test": "run-s clean build test",
@@ -29,12 +29,11 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/assert/README.md",
"devDependencies": {
- "@0xproject/tslint-config": "^1.0.8",
+ "@0x/tslint-config": "^1.0.10",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
"@types/valid-url": "^1.0.2",
"chai": "^4.0.1",
- "copyfiles": "^2.0.0",
"dirty-chai": "^2.0.1",
"make-promises-safe": "^1.1.0",
"mocha": "^4.1.0",
@@ -45,9 +44,9 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0xproject/json-schemas": "^1.0.7",
- "@0xproject/typescript-typings": "^3.0.2",
- "@0xproject/utils": "^2.0.2",
+ "@0x/json-schemas": "^2.0.1",
+ "@0x/typescript-typings": "^3.0.4",
+ "@0x/utils": "^2.0.4",
"lodash": "^4.17.5",
"valid-url": "^1.0.9"
},
diff --git a/packages/assert/src/index.ts b/packages/assert/src/index.ts
index ccf2c9ad8..2d28d51e1 100644
--- a/packages/assert/src/index.ts
+++ b/packages/assert/src/index.ts
@@ -1,5 +1,5 @@
-import { Schema, SchemaValidator } from '@0xproject/json-schemas';
-import { addressUtils, BigNumber } from '@0xproject/utils';
+import { Schema, SchemaValidator } from '@0x/json-schemas';
+import { addressUtils, BigNumber } from '@0x/utils';
import * as _ from 'lodash';
import * as validUrl from 'valid-url';
diff --git a/packages/assert/test/assert_test.ts b/packages/assert/test/assert_test.ts
index cbbfe39db..9266496ac 100644
--- a/packages/assert/test/assert_test.ts
+++ b/packages/assert/test/assert_test.ts
@@ -1,5 +1,5 @@
-import { schemas } from '@0xproject/json-schemas';
-import { BigNumber } from '@0xproject/utils';
+import { schemas } from '@0x/json-schemas';
+import { BigNumber } from '@0x/utils';
import * as chai from 'chai';
import * as dirtyChai from 'dirty-chai';
import 'mocha';
diff --git a/packages/assert/tslint.json b/packages/assert/tslint.json
index ffaefe83a..dd9053357 100644
--- a/packages/assert/tslint.json
+++ b/packages/assert/tslint.json
@@ -1,3 +1,3 @@
{
- "extends": ["@0xproject/tslint-config"]
+ "extends": ["@0x/tslint-config"]
}
diff --git a/packages/asset-buyer/CHANGELOG.json b/packages/asset-buyer/CHANGELOG.json
index dbb801b69..df4531063 100644
--- a/packages/asset-buyer/CHANGELOG.json
+++ b/packages/asset-buyer/CHANGELOG.json
@@ -1,11 +1,70 @@
[
{
+ "version": "2.2.0",
+ "changes": [
+ {
+ "note": "`getAssetBuyerForProvidedOrders` factory function now takes 3 args instead of 4",
+ "pr": 1187
+ },
+ {
+ "note":
+ "the `OrderProvider` now requires a new method `getAvailableMakerAssetDatasAsync` and the `StandardRelayerAPIOrderProvider` requires the network id at init.",
+ "pr": 1203
+ },
+ {
+ "note": "No longer require that provided orders all have the same maker and taker asset data",
+ "pr": 1197
+ },
+ {
+ "note":
+ "Fix bug where `BuyQuoteInfo` objects could return `totalEthAmount` and `feeEthAmount` that were not whole numbers",
+ "pr": 1207
+ },
+ {
+ "note":
+ "Fix bug where default values for `AssetBuyer` public facing methods could get overriden by `undefined` values",
+ "pr": 1207
+ },
+ {
+ "note": "Lower default expiry buffer from 5 minutes to 2 minutes",
+ "pr": 1217
+ }
+ ],
+ "timestamp": 1541740904
+ },
+ {
"version": "2.1.0",
"changes": [
{
"note": "Add `gasLimit` and `gasPrice` as optional properties on `BuyQuoteExecutionOpts`"
+ },
+ {
+ "note": "Export `BuyQuoteInfo` type",
+ "pr": 1131
+ },
+ {
+ "note":
+ "Updated to use new modularized artifacts and the latest version of @0xproject/contract-wrappers",
+ "pr": 1105
+ },
+ {
+ "note": "Add `gasLimit` and `gasPrice` as optional properties on `BuyQuoteExecutionOpts`",
+ "pr": 1116
+ },
+ {
+ "note": "Add `docs:json` command to package.json",
+ "pr": 1139
+ },
+ {
+ "note": "Add missing types to public interface",
+ "pr": 1139
+ },
+ {
+ "note": "Throw `SignatureRequestDenied` and `TransactionValueTooLow` errors when executing buy",
+ "pr": 1147
}
- ]
+ ],
+ "timestamp": 1539871071
},
{
"version": "2.0.0",
diff --git a/packages/asset-buyer/CHANGELOG.md b/packages/asset-buyer/CHANGELOG.md
index 65d190a2d..d6220767e 100644
--- a/packages/asset-buyer/CHANGELOG.md
+++ b/packages/asset-buyer/CHANGELOG.md
@@ -5,6 +5,25 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.2.0 - _November 9, 2018_
+
+ * `getAssetBuyerForProvidedOrders` factory function now takes 3 args instead of 4 (#1187)
+ * the `OrderProvider` now requires a new method `getAvailableMakerAssetDatasAsync` and the `StandardRelayerAPIOrderProvider` requires the network id at init. (#1203)
+ * No longer require that provided orders all have the same maker and taker asset data (#1197)
+ * Fix bug where `BuyQuoteInfo` objects could return `totalEthAmount` and `feeEthAmount` that were not whole numbers (#1207)
+ * Fix bug where default values for `AssetBuyer` public facing methods could get overriden by `undefined` values (#1207)
+ * Lower default expiry buffer from 5 minutes to 2 minutes (#1217)
+
+## v2.1.0 - _October 18, 2018_
+
+ * Add `gasLimit` and `gasPrice` as optional properties on `BuyQuoteExecutionOpts`
+ * Export `BuyQuoteInfo` type (#1131)
+ * Updated to use new modularized artifacts and the latest version of @0xproject/contract-wrappers (#1105)
+ * Add `gasLimit` and `gasPrice` as optional properties on `BuyQuoteExecutionOpts` (#1116)
+ * Add `docs:json` command to package.json (#1139)
+ * Add missing types to public interface (#1139)
+ * Throw `SignatureRequestDenied` and `TransactionValueTooLow` errors when executing buy (#1147)
+
## v2.0.0 - _October 4, 2018_
* Expand AssetBuyer to work with multiple assets at once (#1086)
diff --git a/packages/asset-buyer/README.md b/packages/asset-buyer/README.md
index 81c7e1e85..383a3836a 100644
--- a/packages/asset-buyer/README.md
+++ b/packages/asset-buyer/README.md
@@ -1,4 +1,4 @@
-## @0xproject/asset-buyer
+## @0x/asset-buyer
**Warning: In Beta, has not been extensively tested.**
@@ -9,26 +9,26 @@ In its more advanced and useful form, it integrates with the [Standard Relayer A
## Installation
```bash
-yarn add @0xproject/asset-buyer
+yarn add @0x/asset-buyer
```
**Import**
```typescript
-import { AssetBuyer } from '@0xproject/asset-buyer';
+import { AssetBuyer } from '@0x/asset-buyer';
```
or
```javascript
-var AssetBuyer = require('@0xproject/asset-buyer').AssetBuyer;
+var AssetBuyer = require('@0x/asset-buyer').AssetBuyer;
```
If your project is in [TypeScript](https://www.typescriptlang.org/), add the following to your `tsconfig.json`:
```json
"compilerOptions": {
- "typeRoots": ["node_modules/@0xproject/typescript-typings/types", "node_modules/@types"],
+ "typeRoots": ["node_modules/@0x/typescript-typings/types", "node_modules/@types"],
}
```
@@ -57,13 +57,13 @@ yarn install
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
```bash
-PKG=@0xproject/asset-buyer yarn build
+PKG=@0x/asset-buyer yarn build
```
Or continuously rebuild on change:
```bash
-PKG=@0xproject/asset-buyer yarn watch
+PKG=@0x/asset-buyer yarn watch
```
### Clean
diff --git a/packages/asset-buyer/package.json b/packages/asset-buyer/package.json
index 291342169..fc2414952 100644
--- a/packages/asset-buyer/package.json
+++ b/packages/asset-buyer/package.json
@@ -1,6 +1,6 @@
{
- "name": "@0xproject/asset-buyer",
- "version": "2.0.0",
+ "name": "@0x/asset-buyer",
+ "version": "2.2.0",
"engines": {
"node": ">=6.12"
},
@@ -8,18 +8,17 @@
"main": "lib/src/index.js",
"types": "lib/src/index.d.ts",
"scripts": {
- "watch_without_deps": "tsc -w",
- "lint": "tslint --project .",
+ "build": "yarn tsc -b",
+ "build:ci": "yarn build",
+ "lint": "tslint --format stylish --project .",
"test": "yarn run_mocha",
"rebuild_and_test": "run-s clean build test",
"test:coverage": "nyc npm run test --all && yarn coverage:report:lcov",
"coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info",
"test:circleci": "yarn test:coverage",
"run_mocha": "mocha --require source-map-support/register --require make-promises-safe lib/test/**/*_test.js --exit",
- "clean": "shx rm -rf lib test_temp scripts",
- "build": "tsc && copyfiles -u 3 './lib/src/monorepo_scripts/**/*' ./scripts",
- "build:ci": "yarn build",
- "manual:postpublish": "yarn build; node ./scripts/postpublish.js"
+ "clean": "shx rm -rf lib test_temp",
+ "docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --tsconfig typedoc-tsconfig.json --json $JSON_FILE_PATH $PROJECT_FILES"
},
"config": {
"postpublish": {
@@ -37,28 +36,27 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/asset-buyer/README.md",
"dependencies": {
- "@0xproject/assert": "^1.0.13",
- "@0xproject/connect": "^3.0.1",
- "@0xproject/contract-wrappers": "^2.0.2",
- "@0xproject/json-schemas": "^1.0.7",
- "@0xproject/order-utils": "^1.0.7",
- "@0xproject/subproviders": "^2.0.7",
- "@0xproject/types": "^1.1.4",
- "@0xproject/typescript-typings": "^3.0.2",
- "@0xproject/utils": "^2.0.2",
- "@0xproject/web3-wrapper": "^3.0.3",
- "ethereum-types": "^1.0.11",
+ "@0x/assert": "^1.0.15",
+ "@0x/connect": "^3.0.3",
+ "@0x/contract-wrappers": "^3.0.1",
+ "@0x/json-schemas": "^2.0.1",
+ "@0x/order-utils": "^2.0.1",
+ "@0x/subproviders": "^2.1.1",
+ "@0x/types": "^1.2.1",
+ "@0x/typescript-typings": "^3.0.4",
+ "@0x/utils": "^2.0.4",
+ "@0x/web3-wrapper": "^3.1.1",
+ "ethereum-types": "^1.1.2",
"lodash": "^4.17.10"
},
"devDependencies": {
- "@0xproject/tslint-config": "^1.0.8",
+ "@0x/tslint-config": "^1.0.10",
"@types/lodash": "^4.14.116",
"@types/mocha": "^2.2.42",
"@types/node": "*",
"chai": "^4.0.1",
"chai-as-promised": "^7.1.0",
"chai-bignumber": "^2.0.1",
- "copyfiles": "^1.2.0",
"dirty-chai": "^2.0.1",
"make-promises-safe": "^1.1.0",
"mocha": "^4.1.0",
@@ -66,7 +64,7 @@
"nyc": "^11.0.1",
"shx": "^0.2.2",
"tslint": "5.11.0",
- "typedoc": "0.12.0",
+ "typedoc": "0.13.0",
"typescript": "3.0.1"
},
"publishConfig": {
diff --git a/packages/asset-buyer/src/asset_buyer.ts b/packages/asset-buyer/src/asset_buyer.ts
index 50343efde..934410c55 100644
--- a/packages/asset-buyer/src/asset_buyer.ts
+++ b/packages/asset-buyer/src/asset_buyer.ts
@@ -1,9 +1,9 @@
-import { ContractWrappers } from '@0xproject/contract-wrappers';
-import { schemas } from '@0xproject/json-schemas';
-import { SignedOrder } from '@0xproject/order-utils';
-import { ObjectMap } from '@0xproject/types';
-import { BigNumber } from '@0xproject/utils';
-import { Web3Wrapper } from '@0xproject/web3-wrapper';
+import { ContractWrappers, ContractWrappersError, ForwarderWrapperError } from '@0x/contract-wrappers';
+import { schemas } from '@0x/json-schemas';
+import { SignedOrder } from '@0x/order-utils';
+import { ObjectMap } from '@0x/types';
+import { BigNumber } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
import { Provider } from 'ethereum-types';
import * as _ from 'lodash';
@@ -52,16 +52,12 @@ export class AssetBuyer {
public static getAssetBuyerForProvidedOrders(
provider: Provider,
orders: SignedOrder[],
- feeOrders: SignedOrder[] = [],
options: Partial<AssetBuyerOpts> = {},
): AssetBuyer {
assert.isWeb3Provider('provider', provider);
assert.doesConformToSchema('orders', orders, schemas.signedOrdersSchema);
- assert.doesConformToSchema('feeOrders', feeOrders, schemas.signedOrdersSchema);
- assert.areValidProvidedOrders('orders', orders);
- assert.areValidProvidedOrders('feeOrders', feeOrders);
assert.assert(orders.length !== 0, `Expected orders to contain at least one order`);
- const orderProvider = new BasicOrderProvider(_.concat(orders, feeOrders));
+ const orderProvider = new BasicOrderProvider(orders);
const assetBuyer = new AssetBuyer(provider, orderProvider, options);
return assetBuyer;
}
@@ -80,7 +76,8 @@ export class AssetBuyer {
): AssetBuyer {
assert.isWeb3Provider('provider', provider);
assert.isWebUri('sraApiUrl', sraApiUrl);
- const orderProvider = new StandardRelayerAPIOrderProvider(sraApiUrl);
+ const networkId = options.networkId || constants.DEFAULT_ASSET_BUYER_OPTS.networkId;
+ const orderProvider = new StandardRelayerAPIOrderProvider(sraApiUrl, networkId);
const assetBuyer = new AssetBuyer(provider, orderProvider, options);
return assetBuyer;
}
@@ -93,10 +90,11 @@ export class AssetBuyer {
* @return An instance of AssetBuyer
*/
constructor(provider: Provider, orderProvider: OrderProvider, options: Partial<AssetBuyerOpts> = {}) {
- const { networkId, orderRefreshIntervalMs, expiryBufferSeconds } = {
- ...constants.DEFAULT_ASSET_BUYER_OPTS,
- ...options,
- };
+ const { networkId, orderRefreshIntervalMs, expiryBufferSeconds } = _.merge(
+ {},
+ constants.DEFAULT_ASSET_BUYER_OPTS,
+ options,
+ );
assert.isWeb3Provider('provider', provider);
assert.isValidOrderProvider('orderProvider', orderProvider);
assert.isNumber('networkId', networkId);
@@ -125,19 +123,25 @@ export class AssetBuyer {
assetBuyAmount: BigNumber,
options: Partial<BuyQuoteRequestOpts> = {},
): Promise<BuyQuote> {
- const { feePercentage, shouldForceOrderRefresh, slippagePercentage } = {
- ...constants.DEFAULT_BUY_QUOTE_REQUEST_OPTS,
- ...options,
- };
+ const { feePercentage, shouldForceOrderRefresh, slippagePercentage } = _.merge(
+ {},
+ constants.DEFAULT_BUY_QUOTE_REQUEST_OPTS,
+ options,
+ );
assert.isString('assetData', assetData);
assert.isBigNumber('assetBuyAmount', assetBuyAmount);
assert.isValidPercentage('feePercentage', feePercentage);
assert.isBoolean('shouldForceOrderRefresh', shouldForceOrderRefresh);
assert.isNumber('slippagePercentage', slippagePercentage);
const zrxTokenAssetData = this._getZrxTokenAssetDataOrThrow();
+ const isMakerAssetZrxToken = assetData === zrxTokenAssetData;
+ // get the relevant orders for the makerAsset and fees
+ // if the requested assetData is ZRX, don't get the fee info
const [ordersAndFillableAmounts, feeOrdersAndFillableAmounts] = await Promise.all([
this._getOrdersAndFillableAmountsAsync(assetData, shouldForceOrderRefresh),
- this._getOrdersAndFillableAmountsAsync(zrxTokenAssetData, shouldForceOrderRefresh),
+ isMakerAssetZrxToken
+ ? Promise.resolve(constants.EMPTY_ORDERS_AND_FILLABLE_AMOUNTS)
+ : this._getOrdersAndFillableAmountsAsync(zrxTokenAssetData, shouldForceOrderRefresh),
shouldForceOrderRefresh,
]);
if (ordersAndFillableAmounts.orders.length === 0) {
@@ -149,6 +153,7 @@ export class AssetBuyer {
assetBuyAmount,
feePercentage,
slippagePercentage,
+ isMakerAssetZrxToken,
);
return buyQuote;
}
@@ -183,10 +188,11 @@ export class AssetBuyer {
buyQuote: BuyQuote,
options: Partial<BuyQuoteExecutionOpts> = {},
): Promise<string> {
- const { ethAmount, takerAddress, feeRecipient, gasLimit, gasPrice } = {
- ...constants.DEFAULT_BUY_QUOTE_EXECUTION_OPTS,
- ...options,
- };
+ const { ethAmount, takerAddress, feeRecipient, gasLimit, gasPrice } = _.merge(
+ {},
+ constants.DEFAULT_BUY_QUOTE_EXECUTION_OPTS,
+ options,
+ );
assert.isValidBuyQuote('buyQuote', buyQuote);
if (!_.isUndefined(ethAmount)) {
assert.isBigNumber('ethAmount', ethAmount);
@@ -195,6 +201,12 @@ export class AssetBuyer {
assert.isETHAddressHex('takerAddress', takerAddress);
}
assert.isETHAddressHex('feeRecipient', feeRecipient);
+ if (!_.isUndefined(gasLimit)) {
+ assert.isNumber('gasLimit', gasLimit);
+ }
+ if (!_.isUndefined(gasPrice)) {
+ assert.isBigNumber('gasPrice', gasPrice);
+ }
const { orders, feeOrders, feePercentage, assetBuyAmount, worstCaseQuoteInfo } = buyQuote;
// if no takerAddress is provided, try to get one from the provider
let finalTakerAddress;
@@ -210,21 +222,41 @@ export class AssetBuyer {
throw new Error(AssetBuyerError.NoAddressAvailable);
}
}
- // if no ethAmount is provided, default to the worst ethAmount from buyQuote
- const txHash = await this._contractWrappers.forwarder.marketBuyOrdersWithEthAsync(
- orders,
- assetBuyAmount,
- finalTakerAddress,
- ethAmount || worstCaseQuoteInfo.totalEthAmount,
- feeOrders,
- feePercentage,
- feeRecipient,
- {
- gasLimit,
- gasPrice,
- },
- );
- return txHash;
+ try {
+ // if no ethAmount is provided, default to the worst ethAmount from buyQuote
+ const txHash = await this._contractWrappers.forwarder.marketBuyOrdersWithEthAsync(
+ orders,
+ assetBuyAmount,
+ finalTakerAddress,
+ ethAmount || worstCaseQuoteInfo.totalEthAmount,
+ feeOrders,
+ feePercentage,
+ feeRecipient,
+ {
+ gasLimit,
+ gasPrice,
+ shouldValidate: true,
+ },
+ );
+ return txHash;
+ } catch (err) {
+ if (_.includes(err.message, ContractWrappersError.SignatureRequestDenied)) {
+ throw new Error(AssetBuyerError.SignatureRequestDenied);
+ } else if (_.includes(err.message, ForwarderWrapperError.CompleteFillFailed)) {
+ throw new Error(AssetBuyerError.TransactionValueTooLow);
+ } else {
+ throw err;
+ }
+ }
+ }
+ /**
+ * Get the asset data of all assets that are purchaseable with ether token (wETH) in the order provider passed in at init.
+ *
+ * @return An array of asset data strings that can be purchased using wETH.
+ */
+ public async getAvailableAssetDatasAsync(): Promise<string[]> {
+ const etherTokenAssetData = this._getEtherTokenAssetDataOrThrow();
+ return this.orderProvider.getAvailableMakerAssetDatasAsync(etherTokenAssetData);
}
/**
* Grab orders from the map, if there is a miss or it is time to refresh, fetch and process the orders
@@ -283,13 +315,13 @@ export class AssetBuyer {
* Will throw if WETH does not exist for the current network.
*/
private _getEtherTokenAssetDataOrThrow(): string {
- return assetDataUtils.getEtherTokenAssetDataOrThrow(this._contractWrappers);
+ return assetDataUtils.getEtherTokenAssetData(this._contractWrappers);
}
/**
* Get the assetData that represents the ZRX token.
* Will throw if ZRX does not exist for the current network.
*/
private _getZrxTokenAssetDataOrThrow(): string {
- return assetDataUtils.getZrxTokenAssetDataOrThrow(this._contractWrappers);
+ return this._contractWrappers.exchange.getZRXAssetData();
}
}
diff --git a/packages/asset-buyer/src/constants.ts b/packages/asset-buyer/src/constants.ts
index e095dee06..c0e1bf27d 100644
--- a/packages/asset-buyer/src/constants.ts
+++ b/packages/asset-buyer/src/constants.ts
@@ -1,6 +1,7 @@
-import { BigNumber } from '@0xproject/utils';
+import { SignedOrder } from '@0x/types';
+import { BigNumber } from '@0x/utils';
-import { AssetBuyerOpts, BuyQuoteExecutionOpts, BuyQuoteRequestOpts } from './types';
+import { AssetBuyerOpts, BuyQuoteExecutionOpts, BuyQuoteRequestOpts, OrdersAndFillableAmounts } from './types';
const NULL_ADDRESS = '0x0000000000000000000000000000000000000000';
const MAINNET_NETWORK_ID = 1;
@@ -8,7 +9,7 @@ const MAINNET_NETWORK_ID = 1;
const DEFAULT_ASSET_BUYER_OPTS: AssetBuyerOpts = {
networkId: MAINNET_NETWORK_ID,
orderRefreshIntervalMs: 10000, // 10 seconds
- expiryBufferSeconds: 300, // 5 minutes
+ expiryBufferSeconds: 120, // 2 minutes
};
const DEFAULT_BUY_QUOTE_REQUEST_OPTS: BuyQuoteRequestOpts = {
@@ -22,6 +23,11 @@ const DEFAULT_BUY_QUOTE_EXECUTION_OPTS: BuyQuoteExecutionOpts = {
feeRecipient: NULL_ADDRESS,
};
+const EMPTY_ORDERS_AND_FILLABLE_AMOUNTS: OrdersAndFillableAmounts = {
+ orders: [] as SignedOrder[],
+ remainingFillableMakerAssetAmounts: [] as BigNumber[],
+};
+
export const constants = {
ZERO_AMOUNT: new BigNumber(0),
NULL_ADDRESS,
@@ -30,5 +36,5 @@ export const constants = {
DEFAULT_ASSET_BUYER_OPTS,
DEFAULT_BUY_QUOTE_EXECUTION_OPTS,
DEFAULT_BUY_QUOTE_REQUEST_OPTS,
- MAX_PER_PAGE: 10000,
+ EMPTY_ORDERS_AND_FILLABLE_AMOUNTS,
};
diff --git a/packages/asset-buyer/src/index.ts b/packages/asset-buyer/src/index.ts
index 2da2724d7..8418edb42 100644
--- a/packages/asset-buyer/src/index.ts
+++ b/packages/asset-buyer/src/index.ts
@@ -1,6 +1,12 @@
-export { Provider } from 'ethereum-types';
-export { SignedOrder } from '@0xproject/types';
-export { BigNumber } from '@0xproject/utils';
+export {
+ JSONRPCRequestPayload,
+ JSONRPCResponsePayload,
+ JSONRPCResponseError,
+ JSONRPCErrorCallback,
+ Provider,
+} from 'ethereum-types';
+export { SignedOrder } from '@0x/types';
+export { BigNumber } from '@0x/utils';
export { AssetBuyer } from './asset_buyer';
export { BasicOrderProvider } from './order_providers/basic_order_provider';
@@ -10,6 +16,7 @@ export {
AssetBuyerOpts,
BuyQuote,
BuyQuoteExecutionOpts,
+ BuyQuoteInfo,
BuyQuoteRequestOpts,
OrderProvider,
OrderProviderRequest,
diff --git a/packages/asset-buyer/src/order_providers/basic_order_provider.ts b/packages/asset-buyer/src/order_providers/basic_order_provider.ts
index 9bb2d90ac..76685f27a 100644
--- a/packages/asset-buyer/src/order_providers/basic_order_provider.ts
+++ b/packages/asset-buyer/src/order_providers/basic_order_provider.ts
@@ -1,5 +1,5 @@
-import { schemas } from '@0xproject/json-schemas';
-import { SignedOrder } from '@0xproject/types';
+import { schemas } from '@0x/json-schemas';
+import { SignedOrder } from '@0x/types';
import * as _ from 'lodash';
import { OrderProvider, OrderProviderRequest, OrderProviderResponse } from '../types';
@@ -29,4 +29,13 @@ export class BasicOrderProvider implements OrderProvider {
});
return { orders };
}
+ /**
+ * Given a taker asset data string, return all availabled paired maker asset data strings.
+ * @param takerAssetData A string representing the taker asset data.
+ * @return An array of asset data strings that can be purchased using takerAssetData.
+ */
+ public async getAvailableMakerAssetDatasAsync(takerAssetData: string): Promise<string[]> {
+ const ordersWithTakerAssetData = _.filter(this.orders, { takerAssetData });
+ return _.map(ordersWithTakerAssetData, order => order.makerAssetData);
+ }
}
diff --git a/packages/asset-buyer/src/order_providers/standard_relayer_api_order_provider.ts b/packages/asset-buyer/src/order_providers/standard_relayer_api_order_provider.ts
index 31942c25b..be1fc55d6 100644
--- a/packages/asset-buyer/src/order_providers/standard_relayer_api_order_provider.ts
+++ b/packages/asset-buyer/src/order_providers/standard_relayer_api_order_provider.ts
@@ -1,5 +1,5 @@
-import { HttpClient } from '@0xproject/connect';
-import { APIOrder, OrderbookResponse } from '@0xproject/types';
+import { HttpClient } from '@0x/connect';
+import { APIOrder, AssetPairsResponse, OrderbookResponse } from '@0x/types';
import * as _ from 'lodash';
import {
@@ -14,6 +14,7 @@ import { orderUtils } from '../utils/order_utils';
export class StandardRelayerAPIOrderProvider implements OrderProvider {
public readonly apiUrl: string;
+ public readonly networkId: number;
private readonly _sraClient: HttpClient;
/**
* Given an array of APIOrder objects from a standard relayer api, return an array
@@ -30,7 +31,7 @@ export class StandardRelayerAPIOrderProvider implements OrderProvider {
'remainingTakerAssetAmount',
order.takerAssetAmount,
);
- const remainingFillableMakerAssetAmount = orderUtils.calculateRemainingMakerAssetAmount(
+ const remainingFillableMakerAssetAmount = orderUtils.getRemainingMakerAmount(
order,
remainingFillableTakerAssetAmount,
);
@@ -44,12 +45,15 @@ export class StandardRelayerAPIOrderProvider implements OrderProvider {
}
/**
* Instantiates a new StandardRelayerAPIOrderProvider instance
- * @param apiUrl The standard relayer API base HTTP url you would like to source orders from.
+ * @param apiUrl The standard relayer API base HTTP url you would like to source orders from.
+ * @param networkId The ethereum network id.
* @return An instance of StandardRelayerAPIOrderProvider
*/
- constructor(apiUrl: string) {
+ constructor(apiUrl: string, networkId: number) {
assert.isWebUri('apiUrl', apiUrl);
+ assert.isNumber('networkId', networkId);
this.apiUrl = apiUrl;
+ this.networkId = networkId;
this._sraClient = new HttpClient(apiUrl);
}
/**
@@ -59,9 +63,9 @@ export class StandardRelayerAPIOrderProvider implements OrderProvider {
*/
public async getOrdersAsync(orderProviderRequest: OrderProviderRequest): Promise<OrderProviderResponse> {
assert.isValidOrderProviderRequest('orderProviderRequest', orderProviderRequest);
- const { makerAssetData, takerAssetData, networkId } = orderProviderRequest;
+ const { makerAssetData, takerAssetData } = orderProviderRequest;
const orderbookRequest = { baseAssetData: makerAssetData, quoteAssetData: takerAssetData };
- const requestOpts = { networkId };
+ const requestOpts = { networkId: this.networkId };
let orderbook: OrderbookResponse;
try {
orderbook = await this._sraClient.getOrderbookAsync(orderbookRequest, requestOpts);
@@ -76,4 +80,26 @@ export class StandardRelayerAPIOrderProvider implements OrderProvider {
orders,
};
}
+ /**
+ * Given a taker asset data string, return all availabled paired maker asset data strings.
+ * @param takerAssetData A string representing the taker asset data.
+ * @return An array of asset data strings that can be purchased using takerAssetData.
+ */
+ public async getAvailableMakerAssetDatasAsync(takerAssetData: string): Promise<string[]> {
+ // Return a maximum of 1000 asset datas
+ const maxPerPage = 1000;
+ const requestOpts = { networkId: this.networkId, perPage: maxPerPage };
+ const assetPairsRequest = { assetDataA: takerAssetData };
+ const fullRequest = {
+ ...requestOpts,
+ ...assetPairsRequest,
+ };
+ let response: AssetPairsResponse;
+ try {
+ response = await this._sraClient.getAssetPairsAsync(fullRequest);
+ } catch (err) {
+ throw new Error(AssetBuyerError.StandardRelayerApiError);
+ }
+ return _.map(response.records, item => item.assetDataB.assetData);
+ }
}
diff --git a/packages/asset-buyer/src/types.ts b/packages/asset-buyer/src/types.ts
index 6218f4ba4..3f1e6ff21 100644
--- a/packages/asset-buyer/src/types.ts
+++ b/packages/asset-buyer/src/types.ts
@@ -1,5 +1,5 @@
-import { SignedOrder } from '@0xproject/types';
-import { BigNumber } from '@0xproject/utils';
+import { SignedOrder } from '@0x/types';
+import { BigNumber } from '@0x/utils';
/**
* makerAssetData: The assetData representing the desired makerAsset.
@@ -9,7 +9,6 @@ import { BigNumber } from '@0xproject/utils';
export interface OrderProviderRequest {
makerAssetData: string;
takerAssetData: string;
- networkId: number;
}
/**
@@ -27,10 +26,12 @@ export interface SignedOrderWithRemainingFillableMakerAssetAmount extends Signed
remainingFillableMakerAssetAmount?: BigNumber;
}
/**
- * Given an OrderProviderRequest, get an OrderProviderResponse.
+ * gerOrdersAsync: Given an OrderProviderRequest, get an OrderProviderResponse.
+ * getAvailableMakerAssetDatasAsync: Given a taker asset data string, return all availabled paired maker asset data strings.
*/
export interface OrderProvider {
getOrdersAsync: (orderProviderRequest: OrderProviderRequest) => Promise<OrderProviderResponse>;
+ getAvailableMakerAssetDatasAsync: (takerAssetData: string) => Promise<string[]>;
}
/**
@@ -112,6 +113,8 @@ export enum AssetBuyerError {
NoAddressAvailable = 'NO_ADDRESS_AVAILABLE',
InvalidOrderProviderResponse = 'INVALID_ORDER_PROVIDER_RESPONSE',
AssetUnavailable = 'ASSET_UNAVAILABLE',
+ SignatureRequestDenied = 'SIGNATURE_REQUEST_DENIED',
+ TransactionValueTooLow = 'TRANSACTION_VALUE_TOO_LOW',
}
export interface OrdersAndFillableAmounts {
diff --git a/packages/asset-buyer/src/utils/assert.ts b/packages/asset-buyer/src/utils/assert.ts
index d43b71fee..2466f53a4 100644
--- a/packages/asset-buyer/src/utils/assert.ts
+++ b/packages/asset-buyer/src/utils/assert.ts
@@ -1,6 +1,5 @@
-import { assert as sharedAssert } from '@0xproject/assert';
-import { schemas } from '@0xproject/json-schemas';
-import { SignedOrder } from '@0xproject/types';
+import { assert as sharedAssert } from '@0x/assert';
+import { schemas } from '@0x/json-schemas';
import * as _ from 'lodash';
import { BuyQuote, BuyQuoteInfo, OrderProvider, OrderProviderRequest } from '../types';
@@ -29,22 +28,6 @@ export const assert = {
isValidOrderProviderRequest(variableName: string, orderFetcherRequest: OrderProviderRequest): void {
sharedAssert.isHexString(`${variableName}.makerAssetData`, orderFetcherRequest.makerAssetData);
sharedAssert.isHexString(`${variableName}.takerAssetData`, orderFetcherRequest.takerAssetData);
- sharedAssert.isNumber(`${variableName}.networkId`, orderFetcherRequest.networkId);
- },
- areValidProvidedOrders(variableName: string, orders: SignedOrder[]): void {
- if (orders.length === 0) {
- return;
- }
- const makerAssetData = orders[0].makerAssetData;
- const takerAssetData = orders[0].takerAssetData;
- const filteredOrders = _.filter(
- orders,
- order => order.makerAssetData === makerAssetData && order.takerAssetData === takerAssetData,
- );
- sharedAssert.assert(
- orders.length === filteredOrders.length,
- `Expected all orders in ${variableName} to have the same makerAssetData and takerAssetData.`,
- );
},
isValidPercentage(variableName: string, percentage: number): void {
assert.isNumber(variableName, percentage);
diff --git a/packages/asset-buyer/src/utils/asset_data_utils.ts b/packages/asset-buyer/src/utils/asset_data_utils.ts
index d05ff2504..70f646902 100644
--- a/packages/asset-buyer/src/utils/asset_data_utils.ts
+++ b/packages/asset-buyer/src/utils/asset_data_utils.ts
@@ -1,26 +1,12 @@
-import { ContractWrappers } from '@0xproject/contract-wrappers';
-import { assetDataUtils as sharedAssetDataUtils } from '@0xproject/order-utils';
+import { ContractWrappers } from '@0x/contract-wrappers';
+import { assetDataUtils as sharedAssetDataUtils } from '@0x/order-utils';
import * as _ from 'lodash';
-import { AssetBuyerError } from '../types';
-
export const assetDataUtils = {
...sharedAssetDataUtils,
- getEtherTokenAssetDataOrThrow(contractWrappers: ContractWrappers): string {
- const etherTokenAddressIfExists = contractWrappers.etherToken.getContractAddressIfExists();
- if (_.isUndefined(etherTokenAddressIfExists)) {
- throw new Error(AssetBuyerError.NoEtherTokenContractFound);
- }
- const etherTokenAssetData = sharedAssetDataUtils.encodeERC20AssetData(etherTokenAddressIfExists);
+ getEtherTokenAssetData(contractWrappers: ContractWrappers): string {
+ const etherTokenAddress = contractWrappers.forwarder.etherTokenAddress;
+ const etherTokenAssetData = sharedAssetDataUtils.encodeERC20AssetData(etherTokenAddress);
return etherTokenAssetData;
},
- getZrxTokenAssetDataOrThrow(contractWrappers: ContractWrappers): string {
- let zrxTokenAssetData: string;
- try {
- zrxTokenAssetData = contractWrappers.exchange.getZRXAssetData();
- } catch (err) {
- throw new Error(AssetBuyerError.NoZrxTokenContractFound);
- }
- return zrxTokenAssetData;
- },
};
diff --git a/packages/asset-buyer/src/utils/buy_quote_calculator.ts b/packages/asset-buyer/src/utils/buy_quote_calculator.ts
index a1d334eef..6a67ed1ed 100644
--- a/packages/asset-buyer/src/utils/buy_quote_calculator.ts
+++ b/packages/asset-buyer/src/utils/buy_quote_calculator.ts
@@ -1,10 +1,12 @@
-import { marketUtils, rateUtils } from '@0xproject/order-utils';
-import { BigNumber } from '@0xproject/utils';
+import { marketUtils, SignedOrder } from '@0x/order-utils';
+import { BigNumber } from '@0x/utils';
import * as _ from 'lodash';
import { constants } from '../constants';
import { AssetBuyerError, BuyQuote, BuyQuoteInfo, OrdersAndFillableAmounts } from '../types';
+import { orderUtils } from './order_utils';
+
// Calculates a buy quote for orders that have WETH as the takerAsset
export const buyQuoteCalculator = {
calculate(
@@ -13,6 +15,7 @@ export const buyQuoteCalculator = {
assetBuyAmount: BigNumber,
feePercentage: number,
slippagePercentage: number,
+ isMakerAssetZrxToken: boolean,
): BuyQuote {
const orders = ordersAndFillableAmounts.orders;
const remainingFillableMakerAssetAmounts = ordersAndFillableAmounts.remainingFillableMakerAssetAmounts;
@@ -32,22 +35,31 @@ export const buyQuoteCalculator = {
if (remainingFillAmount.gt(constants.ZERO_AMOUNT)) {
throw new Error(AssetBuyerError.InsufficientAssetLiquidity);
}
+ // if we are not buying ZRX:
// given the orders calculated above, find the fee-orders that cover the desired assetBuyAmount (with slippage)
// TODO(bmillman): optimization
// update this logic to find the minimum amount of feeOrders to cover the worst case as opposed to
// finding order that cover all fees, this will help with estimating ETH and minimizing gas usage
- const {
- resultFeeOrders,
- remainingFeeAmount,
- feeOrdersRemainingFillableMakerAssetAmounts,
- } = marketUtils.findFeeOrdersThatCoverFeesForTargetOrders(resultOrders, feeOrders, {
- remainingFillableMakerAssetAmounts: ordersRemainingFillableMakerAssetAmounts,
- remainingFillableFeeAmounts,
- });
- // if we do not have enough feeOrders to cover the fees, throw
- if (remainingFeeAmount.gt(constants.ZERO_AMOUNT)) {
- throw new Error(AssetBuyerError.InsufficientZrxLiquidity);
+ let resultFeeOrders = [] as SignedOrder[];
+ let feeOrdersRemainingFillableMakerAssetAmounts = [] as BigNumber[];
+ if (!isMakerAssetZrxToken) {
+ const feeOrdersAndRemainingFeeAmount = marketUtils.findFeeOrdersThatCoverFeesForTargetOrders(
+ resultOrders,
+ feeOrders,
+ {
+ remainingFillableMakerAssetAmounts: ordersRemainingFillableMakerAssetAmounts,
+ remainingFillableFeeAmounts,
+ },
+ );
+ // if we do not have enough feeOrders to cover the fees, throw
+ if (feeOrdersAndRemainingFeeAmount.remainingFeeAmount.gt(constants.ZERO_AMOUNT)) {
+ throw new Error(AssetBuyerError.InsufficientZrxLiquidity);
+ }
+ resultFeeOrders = feeOrdersAndRemainingFeeAmount.resultFeeOrders;
+ feeOrdersRemainingFillableMakerAssetAmounts =
+ feeOrdersAndRemainingFeeAmount.feeOrdersRemainingFillableMakerAssetAmounts;
}
+
// assetData information for the result
const assetData = orders[0].makerAssetData;
// compile the resulting trimmed set of orders for makerAsset and feeOrders that are needed for assetBuyAmount
@@ -64,6 +76,7 @@ export const buyQuoteCalculator = {
trimmedFeeOrdersAndFillableAmounts,
assetBuyAmount,
feePercentage,
+ isMakerAssetZrxToken,
);
// in order to calculate the maxRate, reverse the ordersAndFillableAmounts such that they are sorted from worst rate to best rate
const worstCaseQuoteInfo = calculateQuoteInfo(
@@ -71,6 +84,7 @@ export const buyQuoteCalculator = {
reverseOrdersAndFillableAmounts(trimmedFeeOrdersAndFillableAmounts),
assetBuyAmount,
feePercentage,
+ isMakerAssetZrxToken,
);
return {
assetData,
@@ -89,22 +103,30 @@ function calculateQuoteInfo(
feeOrdersAndFillableAmounts: OrdersAndFillableAmounts,
assetBuyAmount: BigNumber,
feePercentage: number,
+ isMakerAssetZrxToken: boolean,
): BuyQuoteInfo {
// find the total eth and zrx needed to buy assetAmount from the resultOrders from left to right
- const [ethAmountToBuyAsset, zrxAmountToBuyAsset] = findEthAndZrxAmountNeededToBuyAsset(
- ordersAndFillableAmounts,
- assetBuyAmount,
- );
- // find the total eth needed to buy fees
- const ethAmountToBuyFees = findEthAmountNeededToBuyFees(feeOrdersAndFillableAmounts, zrxAmountToBuyAsset);
- const affiliateFeeEthAmount = ethAmountToBuyAsset.mul(feePercentage);
- const totalEthAmountWithoutAffiliateFee = ethAmountToBuyAsset.plus(ethAmountToBuyFees);
- const totalEthAmount = totalEthAmountWithoutAffiliateFee.plus(affiliateFeeEthAmount);
+ let ethAmountToBuyAsset = constants.ZERO_AMOUNT;
+ let ethAmountToBuyZrx = constants.ZERO_AMOUNT;
+ if (isMakerAssetZrxToken) {
+ ethAmountToBuyAsset = findEthAmountNeededToBuyZrx(ordersAndFillableAmounts, assetBuyAmount);
+ } else {
+ // find eth and zrx amounts needed to buy
+ const ethAndZrxAmountToBuyAsset = findEthAndZrxAmountNeededToBuyAsset(ordersAndFillableAmounts, assetBuyAmount);
+ ethAmountToBuyAsset = ethAndZrxAmountToBuyAsset[0];
+ const zrxAmountToBuyAsset = ethAndZrxAmountToBuyAsset[1];
+ // find eth amount needed to buy zrx
+ ethAmountToBuyZrx = findEthAmountNeededToBuyZrx(feeOrdersAndFillableAmounts, zrxAmountToBuyAsset);
+ }
+ /// find the eth amount needed to buy the affiliate fee
+ const ethAmountToBuyAffiliateFee = ethAmountToBuyAsset.mul(feePercentage).ceil();
+ const totalEthAmountWithoutAffiliateFee = ethAmountToBuyAsset.plus(ethAmountToBuyZrx);
+ const ethAmountTotal = totalEthAmountWithoutAffiliateFee.plus(ethAmountToBuyAffiliateFee);
// divide into the assetBuyAmount in order to find rate of makerAsset / WETH
const ethPerAssetPrice = totalEthAmountWithoutAffiliateFee.div(assetBuyAmount);
return {
- totalEthAmount,
- feeEthAmount: affiliateFeeEthAmount,
+ totalEthAmount: ethAmountTotal,
+ feeEthAmount: ethAmountToBuyAffiliateFee,
ethPerAssetPrice,
};
}
@@ -119,29 +141,38 @@ function reverseOrdersAndFillableAmounts(ordersAndFillableAmounts: OrdersAndFill
};
}
-function findEthAmountNeededToBuyFees(
+function findEthAmountNeededToBuyZrx(
feeOrdersAndFillableAmounts: OrdersAndFillableAmounts,
- feeAmount: BigNumber,
+ zrxBuyAmount: BigNumber,
): BigNumber {
const { orders, remainingFillableMakerAssetAmounts } = feeOrdersAndFillableAmounts;
const result = _.reduce(
orders,
(acc, order, index) => {
+ const { totalEthAmount, remainingZrxBuyAmount } = acc;
const remainingFillableMakerAssetAmount = remainingFillableMakerAssetAmounts[index];
- const amountToFill = BigNumber.min(acc.remainingFeeAmount, remainingFillableMakerAssetAmount);
- const feeAdjustedRate = rateUtils.getFeeAdjustedRateOfFeeOrder(order);
- const ethAmountForThisOrder = feeAdjustedRate.mul(amountToFill);
+ const makerFillAmount = BigNumber.min(remainingZrxBuyAmount, remainingFillableMakerAssetAmount);
+ const [takerFillAmount, adjustedMakerFillAmount] = orderUtils.getTakerFillAmountForFeeOrder(
+ order,
+ makerFillAmount,
+ );
+ const extraFeeAmount = remainingFillableMakerAssetAmount.greaterThanOrEqualTo(adjustedMakerFillAmount)
+ ? constants.ZERO_AMOUNT
+ : adjustedMakerFillAmount.sub(makerFillAmount);
return {
- ethAmount: acc.ethAmount.plus(ethAmountForThisOrder),
- remainingFeeAmount: BigNumber.max(constants.ZERO_AMOUNT, acc.remainingFeeAmount.minus(amountToFill)),
+ totalEthAmount: totalEthAmount.plus(takerFillAmount),
+ remainingZrxBuyAmount: BigNumber.max(
+ constants.ZERO_AMOUNT,
+ remainingZrxBuyAmount.minus(makerFillAmount).plus(extraFeeAmount),
+ ),
};
},
{
- ethAmount: constants.ZERO_AMOUNT,
- remainingFeeAmount: feeAmount,
+ totalEthAmount: constants.ZERO_AMOUNT,
+ remainingZrxBuyAmount: zrxBuyAmount,
},
);
- return result.ethAmount;
+ return result.totalEthAmount;
}
function findEthAndZrxAmountNeededToBuyAsset(
@@ -152,28 +183,25 @@ function findEthAndZrxAmountNeededToBuyAsset(
const result = _.reduce(
orders,
(acc, order, index) => {
+ const { totalEthAmount, totalZrxAmount, remainingAssetBuyAmount } = acc;
const remainingFillableMakerAssetAmount = remainingFillableMakerAssetAmounts[index];
- const amountToFill = BigNumber.min(acc.remainingAssetBuyAmount, remainingFillableMakerAssetAmount);
- // find the amount of eth required to fill amountToFill (amountToFill / makerAssetAmount) * takerAssetAmount
- const ethAmountForThisOrder = amountToFill
- .mul(order.takerAssetAmount)
- .dividedToIntegerBy(order.makerAssetAmount);
- // find the amount of zrx required to fill fees for amountToFill (amountToFill / makerAssetAmount) * takerFee
- const zrxAmountForThisOrder = amountToFill.mul(order.takerFee).dividedToIntegerBy(order.makerAssetAmount);
+ const makerFillAmount = BigNumber.min(acc.remainingAssetBuyAmount, remainingFillableMakerAssetAmount);
+ const takerFillAmount = orderUtils.getTakerFillAmount(order, makerFillAmount);
+ const takerFeeAmount = orderUtils.getTakerFeeAmount(order, takerFillAmount);
return {
- ethAmount: acc.ethAmount.plus(ethAmountForThisOrder),
- zrxAmount: acc.zrxAmount.plus(zrxAmountForThisOrder),
+ totalEthAmount: totalEthAmount.plus(takerFillAmount),
+ totalZrxAmount: totalZrxAmount.plus(takerFeeAmount),
remainingAssetBuyAmount: BigNumber.max(
constants.ZERO_AMOUNT,
- acc.remainingAssetBuyAmount.minus(amountToFill),
+ remainingAssetBuyAmount.minus(makerFillAmount),
),
};
},
{
- ethAmount: constants.ZERO_AMOUNT,
- zrxAmount: constants.ZERO_AMOUNT,
+ totalEthAmount: constants.ZERO_AMOUNT,
+ totalZrxAmount: constants.ZERO_AMOUNT,
remainingAssetBuyAmount: assetBuyAmount,
},
);
- return [result.ethAmount, result.zrxAmount];
+ return [result.totalEthAmount, result.totalZrxAmount];
}
diff --git a/packages/asset-buyer/src/utils/order_provider_response_processor.ts b/packages/asset-buyer/src/utils/order_provider_response_processor.ts
index 74eec162d..28f684f3c 100644
--- a/packages/asset-buyer/src/utils/order_provider_response_processor.ts
+++ b/packages/asset-buyer/src/utils/order_provider_response_processor.ts
@@ -1,8 +1,8 @@
-import { OrderAndTraderInfo, OrderStatus, OrderValidatorWrapper } from '@0xproject/contract-wrappers';
-import { sortingUtils } from '@0xproject/order-utils';
-import { RemainingFillableCalculator } from '@0xproject/order-utils/lib/src/remaining_fillable_calculator';
-import { SignedOrder } from '@0xproject/types';
-import { BigNumber } from '@0xproject/utils';
+import { OrderAndTraderInfo, OrderStatus, OrderValidatorWrapper } from '@0x/contract-wrappers';
+import { sortingUtils } from '@0x/order-utils';
+import { RemainingFillableCalculator } from '@0x/order-utils/lib/src/remaining_fillable_calculator';
+import { SignedOrder } from '@0x/types';
+import { BigNumber } from '@0x/utils';
import * as _ from 'lodash';
import { constants } from '../constants';
@@ -110,10 +110,7 @@ function getValidOrdersWithRemainingFillableMakerAssetAmountsFromOnChain(
traderInfo.makerZrxBalance,
]);
const remainingTakerAssetAmount = order.takerAssetAmount.minus(orderInfo.orderTakerAssetFilledAmount);
- const remainingMakerAssetAmount = orderUtils.calculateRemainingMakerAssetAmount(
- order,
- remainingTakerAssetAmount,
- );
+ const remainingMakerAssetAmount = orderUtils.getRemainingMakerAmount(order, remainingTakerAssetAmount);
const remainingFillableCalculator = new RemainingFillableCalculator(
order.makerFee,
order.makerAssetAmount,
diff --git a/packages/asset-buyer/src/utils/order_utils.ts b/packages/asset-buyer/src/utils/order_utils.ts
index cfc13a8a1..1cc2cf95f 100644
--- a/packages/asset-buyer/src/utils/order_utils.ts
+++ b/packages/asset-buyer/src/utils/order_utils.ts
@@ -1,5 +1,5 @@
-import { SignedOrder } from '@0xproject/types';
-import { BigNumber } from '@0xproject/utils';
+import { SignedOrder } from '@0x/types';
+import { BigNumber } from '@0x/utils';
import { constants } from '../constants';
@@ -12,19 +12,63 @@ export const orderUtils = {
const currentUnixTimestampSec = new BigNumber(Date.now() / millisecondsInSecond).round();
return order.expirationTimeSeconds.lessThan(currentUnixTimestampSec.plus(secondsFromNow));
},
- calculateRemainingMakerAssetAmount(order: SignedOrder, remainingTakerAssetAmount: BigNumber): BigNumber {
- if (remainingTakerAssetAmount.eq(0)) {
- return constants.ZERO_AMOUNT;
- }
- return remainingTakerAssetAmount.times(order.makerAssetAmount).dividedToIntegerBy(order.takerAssetAmount);
- },
- calculateRemainingTakerAssetAmount(order: SignedOrder, remainingMakerAssetAmount: BigNumber): BigNumber {
- if (remainingMakerAssetAmount.eq(0)) {
- return constants.ZERO_AMOUNT;
- }
- return remainingMakerAssetAmount.times(order.takerAssetAmount).dividedToIntegerBy(order.makerAssetAmount);
- },
isOpenOrder(order: SignedOrder): boolean {
return order.takerAddress === constants.NULL_ADDRESS;
},
+ // given a remaining amount of takerAsset, calculate how much makerAsset is available
+ getRemainingMakerAmount(order: SignedOrder, remainingTakerAmount: BigNumber): BigNumber {
+ const remainingMakerAmount = remainingTakerAmount
+ .times(order.makerAssetAmount)
+ .div(order.takerAssetAmount)
+ .floor();
+ return remainingMakerAmount;
+ },
+ // given a desired amount of makerAsset, calculate how much takerAsset is required to fill that amount
+ getTakerFillAmount(order: SignedOrder, makerFillAmount: BigNumber): BigNumber {
+ // Round up because exchange rate favors Maker
+ const takerFillAmount = makerFillAmount
+ .mul(order.takerAssetAmount)
+ .div(order.makerAssetAmount)
+ .ceil();
+ return takerFillAmount;
+ },
+ // given a desired amount of takerAsset to fill, calculate how much fee is required by the taker to fill that amount
+ getTakerFeeAmount(order: SignedOrder, takerFillAmount: BigNumber): BigNumber {
+ // Round down because Taker fee rate favors Taker
+ const takerFeeAmount = takerFillAmount
+ .mul(order.takerFee)
+ .div(order.takerAssetAmount)
+ .floor();
+ return takerFeeAmount;
+ },
+ // given a desired amount of takerAsset to fill, calculate how much makerAsset will be filled
+ getMakerFillAmount(order: SignedOrder, takerFillAmount: BigNumber): BigNumber {
+ // Round down because exchange rate favors Maker
+ const makerFillAmount = takerFillAmount
+ .mul(order.makerAssetAmount)
+ .div(order.takerAssetAmount)
+ .floor();
+ return makerFillAmount;
+ },
+ // given a desired amount of makerAsset, calculate how much fee is required by the maker to fill that amount
+ getMakerFeeAmount(order: SignedOrder, makerFillAmount: BigNumber): BigNumber {
+ // Round down because Maker fee rate favors Maker
+ const makerFeeAmount = makerFillAmount
+ .mul(order.makerFee)
+ .div(order.makerAssetAmount)
+ .floor();
+ return makerFeeAmount;
+ },
+ // given a desired amount of ZRX from a fee order, calculate how much takerAsset is required to fill that amount
+ // also calculate how much ZRX needs to be bought in order fill the desired amount + takerFee
+ getTakerFillAmountForFeeOrder(order: SignedOrder, makerFillAmount: BigNumber): [BigNumber, BigNumber] {
+ // For each unit of TakerAsset we buy (MakerAsset - TakerFee)
+ const adjustedTakerFillAmount = makerFillAmount
+ .mul(order.takerAssetAmount)
+ .div(order.makerAssetAmount.sub(order.takerFee))
+ .ceil();
+ // The amount that we buy will be greater than makerFillAmount, since we buy some amount for fees.
+ const adjustedMakerFillAmount = orderUtils.getMakerFillAmount(order, adjustedTakerFillAmount);
+ return [adjustedTakerFillAmount, adjustedMakerFillAmount];
+ },
};
diff --git a/packages/asset-buyer/test/buy_quote_calculator_test.ts b/packages/asset-buyer/test/buy_quote_calculator_test.ts
index fda6958cd..0ea371982 100644
--- a/packages/asset-buyer/test/buy_quote_calculator_test.ts
+++ b/packages/asset-buyer/test/buy_quote_calculator_test.ts
@@ -1,5 +1,5 @@
-import { orderFactory } from '@0xproject/order-utils/lib/src/order_factory';
-import { BigNumber } from '@0xproject/utils';
+import { orderFactory } from '@0x/order-utils/lib/src/order_factory';
+import { BigNumber } from '@0x/utils';
import * as chai from 'chai';
import * as _ from 'lodash';
import 'mocha';
@@ -49,9 +49,9 @@ describe('buyQuoteCalculator', () => {
remainingFillableMakerAssetAmounts: [smallFeeOrder.makerAssetAmount],
};
const largeFeeOrder = orderFactory.createSignedOrderFromPartial({
- makerAssetAmount: new BigNumber(110),
+ makerAssetAmount: new BigNumber(113),
takerAssetAmount: new BigNumber(200),
- takerFee: new BigNumber(10),
+ takerFee: new BigNumber(11),
});
allFeeOrdersAndFillableAmounts = {
orders: [smallFeeOrder, largeFeeOrder],
@@ -70,6 +70,7 @@ describe('buyQuoteCalculator', () => {
new BigNumber(500),
0,
0,
+ false,
),
).to.throw(AssetBuyerError.InsufficientAssetLiquidity);
});
@@ -82,6 +83,7 @@ describe('buyQuoteCalculator', () => {
new BigNumber(300),
0,
0,
+ false,
),
).to.throw(AssetBuyerError.InsufficientZrxLiquidity);
});
@@ -97,6 +99,7 @@ describe('buyQuoteCalculator', () => {
assetBuyAmount,
feePercentage,
slippagePercentage,
+ false,
);
// test if orders are correct
expect(buyQuote.orders).to.deep.equal([ordersAndFillableAmounts.orders[0]]);
@@ -134,6 +137,7 @@ describe('buyQuoteCalculator', () => {
assetBuyAmount,
feePercentage,
slippagePercentage,
+ false,
);
// test if orders are correct
expect(buyQuote.orders).to.deep.equal(ordersAndFillableAmounts.orders);
@@ -149,9 +153,9 @@ describe('buyQuoteCalculator', () => {
expect(buyQuote.bestCaseQuoteInfo.feeEthAmount).to.bignumber.equal(expectedFeeEthAmount);
expect(buyQuote.bestCaseQuoteInfo.totalEthAmount).to.bignumber.equal(expectedTotalEthAmount);
expect(buyQuote.bestCaseQuoteInfo.ethPerAssetPrice).to.bignumber.equal(expectedEthPerAssetPrice);
- // 100 eth to fill the first order + 200 eth for fees
+ // 100 eth to fill the first order + 208 eth for fees
const expectedWorstEthAmountForAsset = new BigNumber(100);
- const expectedWorstEthAmountForZrxFees = new BigNumber(200);
+ const expectedWorstEthAmountForZrxFees = new BigNumber(208);
const expectedWorstFillEthAmount = expectedWorstEthAmountForAsset.plus(expectedWorstEthAmountForZrxFees);
const expectedWorstFeeEthAmount = expectedWorstEthAmountForAsset.mul(feePercentage);
const expectedWorstTotalEthAmount = expectedWorstFillEthAmount.plus(expectedWorstFeeEthAmount);
diff --git a/packages/asset-buyer/tslint.json b/packages/asset-buyer/tslint.json
index ffaefe83a..dd9053357 100644
--- a/packages/asset-buyer/tslint.json
+++ b/packages/asset-buyer/tslint.json
@@ -1,3 +1,3 @@
{
- "extends": ["@0xproject/tslint-config"]
+ "extends": ["@0x/tslint-config"]
}
diff --git a/packages/base-contract/CHANGELOG.json b/packages/base-contract/CHANGELOG.json
index eca1717d5..f8a1051d6 100644
--- a/packages/base-contract/CHANGELOG.json
+++ b/packages/base-contract/CHANGELOG.json
@@ -1,5 +1,23 @@
[
{
+ "version": "3.0.3",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ],
+ "timestamp": 1541740904
+ },
+ {
+ "timestamp": 1539871071,
+ "version": "3.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "3.0.1",
"changes": [
{
diff --git a/packages/base-contract/CHANGELOG.md b/packages/base-contract/CHANGELOG.md
index 114cac90f..d544f4f99 100644
--- a/packages/base-contract/CHANGELOG.md
+++ b/packages/base-contract/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.3 - _November 9, 2018_
+
+ * Dependencies updated
+
+## v3.0.2 - _October 18, 2018_
+
+ * Dependencies updated
+
## v3.0.1 - _October 4, 2018_
* Dependencies updated
@@ -38,7 +46,7 @@ CHANGELOG
* Dependencies updated
-## v2.0.0-rc.1 - _August 13, 2018_
+## v2.0.0-rc.1 - _August 14, 2018_
* Added strict encoding/decoding checks for sendTransaction and call (#915)
diff --git a/packages/base-contract/README.md b/packages/base-contract/README.md
index 4f2426c2e..b6ea05b74 100644
--- a/packages/base-contract/README.md
+++ b/packages/base-contract/README.md
@@ -1,25 +1,25 @@
-## @0xproject/base-contract
+## @0x/base-contract
BaseContract to derive all auto-generated wrappers from
## Installation
```bash
-yarn add @0xproject/base-contract
+yarn add @0x/base-contract
```
If your project is in [TypeScript](https://www.typescriptlang.org/), add the following to your `tsconfig.json`:
```json
"compilerOptions": {
- "typeRoots": ["node_modules/@0xproject/typescript-typings/types", "node_modules/@types"],
+ "typeRoots": ["node_modules/@0x/typescript-typings/types", "node_modules/@types"],
}
```
## Usage
```javascript
-import { BaseContract } from '@0xproject/base-contract';
+import { BaseContract } from '@0x/base-contract';
```
## Contributing
@@ -47,13 +47,13 @@ yarn install
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
```bash
-PKG=@0xproject/base-contract yarn build
+PKG=@0x/base-contract yarn build
```
Or continuously rebuild on change:
```bash
-PKG=@0xproject/base-contract yarn watch
+PKG=@0x/base-contract yarn watch
```
### Lint
diff --git a/packages/base-contract/package.json b/packages/base-contract/package.json
index 4ee471219..efa4a5c81 100644
--- a/packages/base-contract/package.json
+++ b/packages/base-contract/package.json
@@ -1,6 +1,6 @@
{
- "name": "@0xproject/base-contract",
- "version": "3.0.1",
+ "name": "@0x/base-contract",
+ "version": "3.0.3",
"engines": {
"node": ">=6.12"
},
@@ -17,7 +17,7 @@
"run_mocha": "mocha --require source-map-support/register --require make-promises-safe lib/test/**/*_test.js --bail --exit",
"test:coverage": "nyc npm run test --all && yarn coverage:report:lcov",
"coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info",
- "lint": "tslint --project . --exclude **/src/contract_wrappers/**/*"
+ "lint": "tslint --format stylish --project ."
},
"license": "Apache-2.0",
"repository": {
@@ -29,10 +29,9 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/base-contract/README.md",
"devDependencies": {
- "@0xproject/tslint-config": "^1.0.8",
+ "@0x/tslint-config": "^1.0.10",
"@types/lodash": "4.14.104",
"chai": "^4.0.1",
- "copyfiles": "^2.0.0",
"make-promises-safe": "^1.1.0",
"mocha": "^4.1.0",
"npm-run-all": "^4.1.2",
@@ -41,10 +40,10 @@
"typescript": "3.0.1"
},
"dependencies": {
- "@0xproject/typescript-typings": "^3.0.2",
- "@0xproject/utils": "^2.0.2",
- "@0xproject/web3-wrapper": "^3.0.3",
- "ethereum-types": "^1.0.11",
+ "@0x/typescript-typings": "^3.0.4",
+ "@0x/utils": "^2.0.4",
+ "@0x/web3-wrapper": "^3.1.1",
+ "ethereum-types": "^1.1.2",
"ethers": "~4.0.4",
"lodash": "^4.17.5"
},
diff --git a/packages/base-contract/src/index.ts b/packages/base-contract/src/index.ts
index a8e4ad2e2..fbb8478b7 100644
--- a/packages/base-contract/src/index.ts
+++ b/packages/base-contract/src/index.ts
@@ -1,5 +1,5 @@
-import { abiUtils, BigNumber } from '@0xproject/utils';
-import { Web3Wrapper } from '@0xproject/web3-wrapper';
+import { abiUtils, BigNumber } from '@0x/utils';
+import { Web3Wrapper } from '@0x/web3-wrapper';
import {
AbiDefinition,
AbiType,
@@ -129,7 +129,8 @@ export class BaseContract {
if (abiDefinition.type !== AbiType.Function) {
return false;
}
- const abiFunctionSignature = abiUtils.getFunctionSignature(abiDefinition);
+ // tslint:disable-next-line:no-unnecessary-type-assertion
+ const abiFunctionSignature = abiUtils.getFunctionSignature(abiDefinition as MethodAbi);
if (abiFunctionSignature === functionSignature) {
return true;
}
diff --git a/packages/base-contract/test/utils_test.ts b/packages/base-contract/test/utils_test.ts
index c083704f4..0608b72a2 100644
--- a/packages/base-contract/test/utils_test.ts
+++ b/packages/base-contract/test/utils_test.ts
@@ -1,4 +1,4 @@
-import { BigNumber } from '@0xproject/utils';
+import { BigNumber } from '@0x/utils';
import * as chai from 'chai';
import 'mocha';
diff --git a/packages/base-contract/tslint.json b/packages/base-contract/tslint.json
index ffaefe83a..dd9053357 100644
--- a/packages/base-contract/tslint.json
+++ b/packages/base-contract/tslint.json
@@ -1,3 +1,3 @@
{
- "extends": ["@0xproject/tslint-config"]
+ "extends": ["@0x/tslint-config"]
}
diff --git a/packages/connect/CHANGELOG.json b/packages/connect/CHANGELOG.json
index 04488504d..52ad9d575 100644
--- a/packages/connect/CHANGELOG.json
+++ b/packages/connect/CHANGELOG.json
@@ -1,5 +1,23 @@
[
{
+ "version": "3.0.3",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ],
+ "timestamp": 1541740904
+ },
+ {
+ "timestamp": 1539871071,
+ "version": "3.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "3.0.1",
"changes": [
{
diff --git a/packages/connect/CHANGELOG.md b/packages/connect/CHANGELOG.md
index 16e35a0d5..8e38e16de 100644
--- a/packages/connect/CHANGELOG.md
+++ b/packages/connect/CHANGELOG.md
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.3 - _November 9, 2018_
+
+ * Dependencies updated
+
+## v3.0.2 - _October 18, 2018_
+
+ * Dependencies updated
+
## v3.0.1 - _October 4, 2018_
* Dependencies updated
@@ -42,7 +50,7 @@ CHANGELOG
* Updated for SRA v2 (#974)
* Stopped exporting `Order` type (#924)
-## v1.0.5 - _August 13, 2018_
+## v1.0.5 - _August 14, 2018_
* Dependencies updated
diff --git a/packages/connect/README.md b/packages/connect/README.md
index 9d8cb9215..6d3ee66a0 100644
--- a/packages/connect/README.md
+++ b/packages/connect/README.md
@@ -1,18 +1,18 @@
-## @0xproject/connect
+## @0x/connect
This repository contains a Javascript library that makes it easy to interact with Relayers that conform to the [Standard Relayer API](https://github.com/0xProject/standard-relayer-api)
## Installation
```bash
-yarn add @0xproject/connect
+yarn add @0x/connect
```
If your project is in [TypeScript](https://www.typescriptlang.org/), add the following to your `tsconfig.json`:
```json
"compilerOptions": {
- "typeRoots": ["node_modules/@0xproject/typescript-typings/types", "node_modules/@types"],
+ "typeRoots": ["node_modules/@0x/typescript-typings/types", "node_modules/@types"],
}
```
@@ -46,13 +46,13 @@ yarn install
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
```bash
-PKG=@0xproject/connect yarn build
+PKG=@0x/connect yarn build
```
Or continuously rebuild on change:
```bash
-PKG=@0xproject/connect yarn watch
+PKG=@0x/connect yarn watch
```
### Clean
diff --git a/packages/connect/package.json b/packages/connect/package.json
index e47ca3b79..527ac5bdc 100644
--- a/packages/connect/package.json
+++ b/packages/connect/package.json
@@ -1,6 +1,6 @@
{
- "name": "@0xproject/connect",
- "version": "3.0.1",
+ "name": "@0x/connect",
+ "version": "3.0.3",
"engines": {
"node": ">=6.12"
},
@@ -19,7 +19,7 @@
"build:ci": "yarn build",
"clean": "shx rm -rf lib test_temp generated_docs",
"copy_test_fixtures": "copyfiles -u 2 './test/fixtures/**/*.json' ./lib/test/fixtures",
- "lint": "tslint --project .",
+ "lint": "tslint --format stylish --project .",
"run_mocha": "mocha --require source-map-support/register --require make-promises-safe lib/test/**/*_test.js --exit",
"test": "run-s copy_test_fixtures run_mocha",
"rebuild_and_test": "run-s clean build test",
@@ -44,12 +44,12 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/connect/README.md",
"dependencies": {
- "@0xproject/assert": "^1.0.13",
- "@0xproject/json-schemas": "^1.0.7",
- "@0xproject/order-utils": "^1.0.7",
- "@0xproject/types": "^1.1.4",
- "@0xproject/typescript-typings": "^3.0.2",
- "@0xproject/utils": "^2.0.2",
+ "@0x/assert": "^1.0.15",
+ "@0x/json-schemas": "^2.0.1",
+ "@0x/order-utils": "^2.0.1",
+ "@0x/types": "^1.2.1",
+ "@0x/typescript-typings": "^3.0.4",
+ "@0x/utils": "^2.0.4",
"lodash": "^4.17.5",
"query-string": "^5.0.1",
"sinon": "^4.0.0",
@@ -57,7 +57,7 @@
"websocket": "^1.0.25"
},
"devDependencies": {
- "@0xproject/tslint-config": "^1.0.8",
+ "@0x/tslint-config": "^1.0.10",
"@types/fetch-mock": "^6.0.3",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
@@ -77,7 +77,7 @@
"nyc": "^11.0.1",
"shx": "^0.2.2",
"tslint": "5.11.0",
- "typedoc": "0.12.0",
+ "typedoc": "0.13.0",
"typescript": "3.0.1"
},
"publishConfig": {
diff --git a/packages/connect/src/http_client.ts b/packages/connect/src/http_client.ts
index bbd0d2042..b6c031fa8 100644
--- a/packages/connect/src/http_client.ts
+++ b/packages/connect/src/http_client.ts
@@ -1,5 +1,5 @@
-import { assert } from '@0xproject/assert';
-import { schemas } from '@0xproject/json-schemas';
+import { assert } from '@0x/assert';
+import { schemas } from '@0x/json-schemas';
import {
APIOrder,
AssetPairsRequestOpts,
@@ -14,8 +14,8 @@ import {
PagedRequestOpts,
RequestOpts,
SignedOrder,
-} from '@0xproject/types';
-import { fetchAsync } from '@0xproject/utils';
+} from '@0x/types';
+import { fetchAsync } from '@0x/utils';
import * as _ from 'lodash';
import * as queryString from 'query-string';
diff --git a/packages/connect/src/index.ts b/packages/connect/src/index.ts
index 0ec5a0f68..f319d63cb 100644
--- a/packages/connect/src/index.ts
+++ b/packages/connect/src/index.ts
@@ -17,4 +17,4 @@ export {
PaginatedCollection,
RequestOpts,
SignedOrder,
-} from '@0xproject/types';
+} from '@0x/types';
diff --git a/packages/connect/src/types.ts b/packages/connect/src/types.ts
index 4bb0ae534..08a4506ac 100644
--- a/packages/connect/src/types.ts
+++ b/packages/connect/src/types.ts
@@ -12,7 +12,7 @@ import {
PagedRequestOpts,
PaginatedCollection,
SignedOrder,
-} from '@0xproject/types';
+} from '@0x/types';
export interface Client {
getAssetPairsAsync: (
diff --git a/packages/connect/src/utils/assert.ts b/packages/connect/src/utils/assert.ts
index 3d8f1c799..de7536ffe 100644
--- a/packages/connect/src/utils/assert.ts
+++ b/packages/connect/src/utils/assert.ts
@@ -1,11 +1,11 @@
-import { assert as sharedAssert } from '@0xproject/assert';
+import { assert as sharedAssert } from '@0x/assert';
// HACK: We need those two unused imports because they're actually used by sharedAssert which gets injected here
// tslint:disable-next-line:no-unused-variable
-import { Schema, schemas } from '@0xproject/json-schemas';
+import { Schema, schemas } from '@0x/json-schemas';
// tslint:disable-next-line:no-unused-variable
-import { ECSignature } from '@0xproject/types';
+import { ECSignature } from '@0x/types';
// tslint:disable-next-line:no-unused-variable
-import { BigNumber } from '@0xproject/utils';
+import { BigNumber } from '@0x/utils';
import * as _ from 'lodash';
export const assert = {
@@ -14,7 +14,7 @@ export const assert = {
sharedAssert.doesConformToSchema(
variableName,
subscriptionOpts,
- schemas.relayerApiOrdersChannelSubscribePayload,
+ schemas.relayerApiOrdersChannelSubscribePayloadSchema,
);
},
isOrdersChannelHandler(variableName: string, handler: any): void {
diff --git a/packages/connect/src/utils/orders_channel_message_parser.ts b/packages/connect/src/utils/orders_channel_message_parser.ts
index 943d7802e..1306a74b1 100644
--- a/packages/connect/src/utils/orders_channel_message_parser.ts
+++ b/packages/connect/src/utils/orders_channel_message_parser.ts
@@ -1,8 +1,8 @@
-import { assert } from '@0xproject/assert';
-import { schemas } from '@0xproject/json-schemas';
+import { assert } from '@0x/assert';
+import { schemas } from '@0x/json-schemas';
import * as _ from 'lodash';
-import { OrdersChannelMessage, OrdersChannelMessageTypes } from '@0xproject/types';
+import { OrdersChannelMessage, OrdersChannelMessageTypes } from '@0x/types';
import { relayerResponseJsonParsers } from './relayer_response_json_parsers';
diff --git a/packages/connect/src/utils/relayer_response_json_parsers.ts b/packages/connect/src/utils/relayer_response_json_parsers.ts
index 356e2dde6..2b1a658d1 100644
--- a/packages/connect/src/utils/relayer_response_json_parsers.ts
+++ b/packages/connect/src/utils/relayer_response_json_parsers.ts
@@ -1,6 +1,6 @@
-import { assert } from '@0xproject/assert';
-import { schemas } from '@0xproject/json-schemas';
-import { orderParsingUtils } from '@0xproject/order-utils';
+import { assert } from '@0x/assert';
+import { schemas } from '@0x/json-schemas';
+import { orderParsingUtils } from '@0x/order-utils';
import {
APIOrder,
@@ -9,7 +9,7 @@ import {
OrderbookResponse,
OrderConfigResponse,
OrdersResponse,
-} from '@0xproject/types';
+} from '@0x/types';
import { typeConverters } from './type_converters';
diff --git a/packages/connect/src/utils/type_converters.ts b/packages/connect/src/utils/type_converters.ts
index 99760cf74..b262a516b 100644
--- a/packages/connect/src/utils/type_converters.ts
+++ b/packages/connect/src/utils/type_converters.ts
@@ -1,7 +1,7 @@
-import { orderParsingUtils } from '@0xproject/order-utils';
+import { orderParsingUtils } from '@0x/order-utils';
import * as _ from 'lodash';
-import { APIOrder } from '@0xproject/types';
+import { APIOrder } from '@0x/types';
export const typeConverters = {
convertOrderbookStringFieldsToBigNumber(orderbook: any): any {
diff --git a/packages/connect/src/ws_orders_channel.ts b/packages/connect/src/ws_orders_channel.ts
index bf5e8508d..70a357c61 100644
--- a/packages/connect/src/ws_orders_channel.ts
+++ b/packages/connect/src/ws_orders_channel.ts
@@ -1,4 +1,4 @@
-import { OrdersChannelMessageTypes, OrdersChannelSubscriptionOpts } from '@0xproject/types';
+import { OrdersChannelMessageTypes, OrdersChannelSubscriptionOpts } from '@0x/types';
import * as _ from 'lodash';
import { v4 as uuid } from 'uuid';
import * as WebSocket from 'websocket';
diff --git a/packages/connect/test/fixtures/standard_relayer_api/asset_pairs.ts b/packages/connect/test/fixtures/standard_relayer_api/asset_pairs.ts
index 27216e421..3ceeffdc8 100644
--- a/packages/connect/test/fixtures/standard_relayer_api/asset_pairs.ts
+++ b/packages/connect/test/fixtures/standard_relayer_api/asset_pairs.ts
@@ -1,6 +1,6 @@
-import { BigNumber } from '@0xproject/utils';
+import { BigNumber } from '@0x/utils';
-import { AssetPairsResponse } from '@0xproject/types';
+import { AssetPairsResponse } from '@0x/types';
export const assetDataPairsResponse: AssetPairsResponse = {
total: 43,
diff --git a/packages/connect/test/fixtures/standard_relayer_api/fee_recipients.ts b/packages/connect/test/fixtures/standard_relayer_api/fee_recipients.ts
index 6f544e9d3..694433128 100644
--- a/packages/connect/test/fixtures/standard_relayer_api/fee_recipients.ts
+++ b/packages/connect/test/fixtures/standard_relayer_api/fee_recipients.ts
@@ -1,4 +1,4 @@
-import { FeeRecipientsResponse } from '@0xproject/types';
+import { FeeRecipientsResponse } from '@0x/types';
export const feeRecipientsResponse: FeeRecipientsResponse = {
total: 3,
diff --git a/packages/connect/test/fixtures/standard_relayer_api/order/0xabc67323774bdbd24d94f977fa9ac94a50f016026fd13f42990861238897721f.ts b/packages/connect/test/fixtures/standard_relayer_api/order/0xabc67323774bdbd24d94f977fa9ac94a50f016026fd13f42990861238897721f.ts
index c8a669b3b..3d2fbdba8 100644
--- a/packages/connect/test/fixtures/standard_relayer_api/order/0xabc67323774bdbd24d94f977fa9ac94a50f016026fd13f42990861238897721f.ts
+++ b/packages/connect/test/fixtures/standard_relayer_api/order/0xabc67323774bdbd24d94f977fa9ac94a50f016026fd13f42990861238897721f.ts
@@ -1,4 +1,4 @@
-import { BigNumber } from '@0xproject/utils';
+import { BigNumber } from '@0x/utils';
export const orderResponse = {
order: {
diff --git a/packages/connect/test/fixtures/standard_relayer_api/order_config.ts b/packages/connect/test/fixtures/standard_relayer_api/order_config.ts
index 56a4ac550..2290c39c0 100644
--- a/packages/connect/test/fixtures/standard_relayer_api/order_config.ts
+++ b/packages/connect/test/fixtures/standard_relayer_api/order_config.ts
@@ -1,6 +1,6 @@
-import { BigNumber } from '@0xproject/utils';
+import { BigNumber } from '@0x/utils';
-import { OrderConfigResponse } from '@0xproject/types';
+import { OrderConfigResponse } from '@0x/types';
export const orderConfigResponse: OrderConfigResponse = {
senderAddress: '0xa2b31dacf30a9c50ca473337c01d8a201ae33e32',
diff --git a/packages/connect/test/fixtures/standard_relayer_api/orderbook.ts b/packages/connect/test/fixtures/standard_relayer_api/orderbook.ts
index 21d51da74..de2d4eaea 100644
--- a/packages/connect/test/fixtures/standard_relayer_api/orderbook.ts
+++ b/packages/connect/test/fixtures/standard_relayer_api/orderbook.ts
@@ -1,6 +1,6 @@
-import { BigNumber } from '@0xproject/utils';
+import { BigNumber } from '@0x/utils';
-import { OrderbookResponse } from '@0xproject/types';
+import { OrderbookResponse } from '@0x/types';
export const orderbookResponse: OrderbookResponse = {
bids: {
diff --git a/packages/connect/test/fixtures/standard_relayer_api/orders.ts b/packages/connect/test/fixtures/standard_relayer_api/orders.ts
index fb85990d0..ed1f588df 100644
--- a/packages/connect/test/fixtures/standard_relayer_api/orders.ts
+++ b/packages/connect/test/fixtures/standard_relayer_api/orders.ts
@@ -1,6 +1,6 @@
-import { BigNumber } from '@0xproject/utils';
+import { BigNumber } from '@0x/utils';
-import { OrdersResponse } from '@0xproject/types';
+import { OrdersResponse } from '@0x/types';
export const ordersResponse: OrdersResponse = {
total: 984,
diff --git a/packages/connect/test/http_client_test.ts b/packages/connect/test/http_client_test.ts
index e9fc9372e..f799ca849 100644
--- a/packages/connect/test/http_client_test.ts
+++ b/packages/connect/test/http_client_test.ts
@@ -1,4 +1,4 @@
-import { BigNumber } from '@0xproject/utils';
+import { BigNumber } from '@0x/utils';
import * as chai from 'chai';
import * as chaiAsPromised from 'chai-as-promised';
import * as dirtyChai from 'dirty-chai';
diff --git a/packages/connect/tslint.json b/packages/connect/tslint.json
index ffaefe83a..dd9053357 100644
--- a/packages/connect/tslint.json
+++ b/packages/connect/tslint.json
@@ -1,3 +1,3 @@
{
- "extends": ["@0xproject/tslint-config"]
+ "extends": ["@0x/tslint-config"]
}
diff --git a/packages/contract-addresses/CHANGELOG.json b/packages/contract-addresses/CHANGELOG.json
new file mode 100644
index 000000000..307d73545
--- /dev/null
+++ b/packages/contract-addresses/CHANGELOG.json
@@ -0,0 +1,30 @@
+[
+ {
+ "version": "1.1.0",
+ "changes": [
+ {
+ "pr": 1192,
+ "note": "Update Forwarder addresses"
+ }
+ ],
+ "timestamp": 1541740904
+ },
+ {
+ "version": "1.0.1",
+ "changes": [
+ {
+ "pr": 1105,
+ "note": "Initial release"
+ }
+ ],
+ "timestamp": 1539871071
+ },
+ {
+ "version": "1.0.0",
+ "changes": [
+ {
+ "note": "Unpublished Package"
+ }
+ ]
+ }
+]
diff --git a/packages/contract-addresses/CHANGELOG.md b/packages/contract-addresses/CHANGELOG.md
new file mode 100644
index 000000000..20e52cd8b
--- /dev/null
+++ b/packages/contract-addresses/CHANGELOG.md
@@ -0,0 +1,18 @@
+<!--
+changelogUtils.file is auto-generated using the monorepo-scripts package. Don't edit directly.
+Edit the package's CHANGELOG.json file only.
+-->
+
+CHANGELOG
+
+## v1.1.0 - _November 9, 2018_
+
+ * Update Forwarder addresses (#1192)
+
+## v1.0.1 - _October 18, 2018_
+
+ * Initial release (#1105)
+
+## v1.0.0 - _Invalid date_
+
+ * Unpublished Package
diff --git a/packages/contract-addresses/README.md b/packages/contract-addresses/README.md
new file mode 100644
index 000000000..a4040cb54
--- /dev/null
+++ b/packages/contract-addresses/README.md
@@ -0,0 +1,68 @@
+## @0x/contract-addresses
+
+A tiny utility library for getting known deployed contract addresses for a
+particular network.
+
+## Installation
+
+```bash
+yarn add @0x/contract-addresses
+```
+
+**Import**
+
+```typescript
+import { getContractAddressesForNetworkOrThrow } from '@0x/contract-addresses';
+```
+
+or
+
+```javascript
+var getContractAddressesForNetworkOrThrow = require('@0x/contract-addresses').getContractAddressesForNetworkOrThrow;
+```
+
+## Contributing
+
+We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository.
+
+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/contract-addresses yarn build
+```
+
+### Clean
+
+```bash
+yarn clean
+```
+
+### Lint
+
+```bash
+yarn lint
+```
+
+### Run Tests
+
+```bash
+yarn test
+```
diff --git a/packages/contract-addresses/package.json b/packages/contract-addresses/package.json
new file mode 100644
index 000000000..47258edef
--- /dev/null
+++ b/packages/contract-addresses/package.json
@@ -0,0 +1,37 @@
+{
+ "name": "@0x/contract-addresses",
+ "version": "1.1.0",
+ "engines": {
+ "node": ">=6.12"
+ },
+ "description": "Used to get known addresses of deployed 0x contracts",
+ "main": "lib/src/index.js",
+ "directories": {
+ "test": "test"
+ },
+ "scripts": {
+ "build": "yarn tsc -b",
+ "build:ci": "yarn build",
+ "clean": "shx rm -rf lib"
+ },
+ "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/packages/contract-addresses/README.md",
+ "devDependencies": {
+ "@types/lodash": "4.14.104",
+ "shx": "^0.2.2",
+ "typescript": "3.0.1"
+ },
+ "dependencies": {
+ "lodash": "^4.17.5"
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/packages/contract-addresses/src/index.ts b/packages/contract-addresses/src/index.ts
new file mode 100644
index 000000000..f5fd8d0be
--- /dev/null
+++ b/packages/contract-addresses/src/index.ts
@@ -0,0 +1,66 @@
+import * as _ from 'lodash';
+
+export interface ContractAddresses {
+ erc20Proxy: string;
+ erc721Proxy: string;
+ zrxToken: string;
+ etherToken: string;
+ exchange: string;
+ assetProxyOwner: string;
+ forwarder: string;
+ orderValidator: string;
+}
+
+export enum NetworkId {
+ Mainnet = 1,
+ Ropsten = 3,
+ Kovan = 42,
+}
+
+const networkToAddresses: { [networkId: number]: ContractAddresses } = {
+ 1: {
+ erc20Proxy: '0x2240dab907db71e64d3e0dba4800c83b5c502d4e',
+ erc721Proxy: '0x208e41fb445f1bb1b6780d58356e81405f3e6127',
+ zrxToken: '0xe41d2489571d322189246dafa5ebde1f4699f498',
+ etherToken: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
+ exchange: '0x4f833a24e1f95d70f028921e27040ca56e09ab0b',
+ assetProxyOwner: '0x17992e4ffb22730138e4b62aaa6367fa9d3699a6',
+ forwarder: '0x5468a1dc173652ee28d249c271fa9933144746b1',
+ orderValidator: '0x9463e518dea6810309563c81d5266c1b1d149138',
+ },
+ 3: {
+ erc20Proxy: '0xb1408f4c245a23c31b98d2c626777d4c0d766caa',
+ erc721Proxy: '0xe654aac058bfbf9f83fcaee7793311dd82f6ddb4',
+ zrxToken: '0xff67881f8d12f372d91baae9752eb3631ff0ed00',
+ etherToken: '0xc778417e063141139fce010982780140aa0cd5ab',
+ exchange: '0x4530c0483a1633c7a1c97d2c53721caff2caaaaf',
+ assetProxyOwner: '0xf5fa5b5fed2727a0e44ac67f6772e97977aa358b',
+ forwarder: '0x2240dab907db71e64d3e0dba4800c83b5c502d4e',
+ orderValidator: '0x90431a90516ab49af23a0530e04e8c7836e7122f',
+ },
+ 42: {
+ erc20Proxy: '0xf1ec01d6236d3cd881a0bf0130ea25fe4234003e',
+ erc721Proxy: '0x2a9127c745688a165106c11cd4d647d2220af821',
+ zrxToken: '0x2002d3812f58e35f0ea1ffbf80a75a38c32175fa',
+ etherToken: '0xd0a1e359811322d97991e03f863a0c30c2cf029c',
+ exchange: '0x35dd2932454449b14cee11a94d3674a936d5d7b2',
+ assetProxyOwner: '0x2c824d2882baa668e0d5202b1e7f2922278703f8',
+ forwarder: '0x17992e4ffb22730138e4b62aaa6367fa9d3699a6',
+ orderValidator: '0xb389da3d204b412df2f75c6afb3d0a7ce0bc283d',
+ },
+};
+
+/**
+ * Used to get addresses of contracts that have been deployed to either the
+ * Ethereum mainnet or a supported testnet. Throws if there are no known
+ * contracts deployed on the corresponding network.
+ * @param networkId The desired networkId.
+ * @returns The set of addresses for contracts which have been deployed on the
+ * given networkId.
+ */
+export function getContractAddressesForNetworkOrThrow(networkId: NetworkId): ContractAddresses {
+ if (_.isUndefined(networkToAddresses[networkId])) {
+ throw new Error(`Unknown network id (${networkId}). No known 0x contracts have been deployed on this network.`);
+ }
+ return networkToAddresses[networkId];
+}
diff --git a/packages/contract-addresses/tsconfig.json b/packages/contract-addresses/tsconfig.json
new file mode 100644
index 000000000..233008d61
--- /dev/null
+++ b/packages/contract-addresses/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "extends": "../../tsconfig",
+ "compilerOptions": {
+ "outDir": "lib",
+ "rootDir": "."
+ },
+ "include": ["./src/**/*"]
+}
diff --git a/packages/contract-addresses/tslint.json b/packages/contract-addresses/tslint.json
new file mode 100644
index 000000000..dd9053357
--- /dev/null
+++ b/packages/contract-addresses/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": ["@0x/tslint-config"]
+}
diff --git a/packages/contract-artifacts/CHANGELOG.json b/packages/contract-artifacts/CHANGELOG.json
new file mode 100644
index 000000000..8833255ed
--- /dev/null
+++ b/packages/contract-artifacts/CHANGELOG.json
@@ -0,0 +1,30 @@
+[
+ {
+ "version": "1.1.0",
+ "changes": [
+ {
+ "pr": 1192,
+ "note": "Update Forwarder artifact"
+ }
+ ],
+ "timestamp": 1541740904
+ },
+ {
+ "version": "1.0.1",
+ "changes": [
+ {
+ "pr": 1105,
+ "note": "Initial release"
+ }
+ ],
+ "timestamp": 1539871071
+ },
+ {
+ "version": "1.0.0",
+ "changes": [
+ {
+ "note": "Unpublished Package"
+ }
+ ]
+ }
+]
diff --git a/packages/contract-artifacts/CHANGELOG.md b/packages/contract-artifacts/CHANGELOG.md
new file mode 100644
index 000000000..b3c399985
--- /dev/null
+++ b/packages/contract-artifacts/CHANGELOG.md
@@ -0,0 +1,18 @@
+<!--
+changelogUtils.file is auto-generated using the monorepo-scripts package. Don't edit directly.
+Edit the package's CHANGELOG.json file only.
+-->
+
+CHANGELOG
+
+## v1.1.0 - _November 9, 2018_
+
+ * Update Forwarder artifact (#1192)
+
+## v1.0.1 - _October 18, 2018_
+
+ * Initial release (#1105)
+
+## v1.0.0 - _Invalid date_
+
+ * Unpublished Package
diff --git a/packages/contract-artifacts/README.md b/packages/contract-artifacts/README.md
new file mode 100644
index 000000000..5a382c308
--- /dev/null
+++ b/packages/contract-artifacts/README.md
@@ -0,0 +1,67 @@
+## @0x/contract-artifacts
+
+Smart contract compilation artifacts for the latest version of the 0x Protocol.
+
+## Installation
+
+```bash
+yarn add @0x/contract-artifacts
+```
+
+**Import**
+
+```typescript
+import * as artifacts from '@0x/contract-artifacts';
+```
+
+or
+
+```javascript
+var artifacts = require('@0x/contract-artifacts');
+```
+
+## Contributing
+
+We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository.
+
+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/contract-artifacts yarn build
+```
+
+### Clean
+
+```bash
+yarn clean
+```
+
+### Lint
+
+```bash
+yarn lint
+```
+
+### Run Tests
+
+```bash
+yarn test
+```
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/AssetProxyOwner.json b/packages/contract-artifacts/artifacts/AssetProxyOwner.json
index a9e97c572..e5fad3aef 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/AssetProxyOwner.json
+++ b/packages/contract-artifacts/artifacts/AssetProxyOwner.json
@@ -695,30 +695,5 @@
}
}
},
- "networks": {
- "1": {
- "address": "0x17992e4ffb22730138e4b62aaa6367fa9d3699a6",
- "links": {},
- "constructorArgs":
- "[[\"0x257619b7155d247e43c8b6d90c8c17278ae481f0\",\"0x5ee2a00f8f01d099451844af7f894f26a57fcbf2\",\"0x894d623e0e0e8ed12c4a73dada999e275684a37d\"],[\"0x2240dab907db71e64d3e0dba4800c83b5c502d4e\",\"0x208e41fb445f1bb1b6780d58356e81405f3e6127\"],\"2\",\"1209600\"]"
- },
- "3": {
- "address": "0xf5fa5b5fed2727a0e44ac67f6772e97977aa358b",
- "links": {},
- "constructorArgs":
- "[[\"0x9df8137872ac09a8fee71d0da5c7539923fb9bf0\",\"0xcf34d44db312d188789f43a63d11cf2bebb4da15\",\"0x73fd50f2a6beac9cdac9fe87ef68a18edc415831\"],[\"0xb1408f4c245a23c31b98d2c626777d4c0d766caa\",\"0xe654aac058bfbf9f83fcaee7793311dd82f6ddb4\"],\"1\",\"0\"]"
- },
- "42": {
- "address": "0x2c824d2882baa668e0d5202b1e7f2922278703f8",
- "links": {},
- "constructorArgs":
- "[[\"0x9df8137872ac09a8fee71d0da5c7539923fb9bf0\",\"0xcf34d44db312d188789f43a63d11cf2bebb4da15\",\"0x73fd50f2a6beac9cdac9fe87ef68a18edc415831\"],[\"0xf1ec01d6236d3cd881a0bf0130ea25fe4234003e\",\"0x2a9127c745688a165106c11cd4d647d2220af821\"],\"1\",\"0\"]"
- },
- "50": {
- "address": "0x34d402f14d58e001d8efbe6585051bf9706aa064",
- "links": {},
- "constructorArgs":
- "[[\"0x9df8137872ac09a8fee71d0da5c7539923fb9bf0\",\"0xcf34d44db312d188789f43a63d11cf2bebb4da15\",\"0x73fd50f2a6beac9cdac9fe87ef68a18edc415831\"],[\"0x1dc4c1cefef38a777b15aa20260a54e584b16c48\",\"0x1d7022f5b17d2f8b695918fb48fa1089c9f85401\"],\"1\",\"0\"]"
- }
- }
+ "networks": {}
}
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/DummyERC20Token.json b/packages/contract-artifacts/artifacts/DummyERC20Token.json
index 1a5b796b9..7b8e7c3a8 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/DummyERC20Token.json
+++ b/packages/contract-artifacts/artifacts/DummyERC20Token.json
@@ -324,22 +324,5 @@
}
}
},
- "networks": {
- "3": {
- "address": "0xff67881f8d12f372d91baae9752eb3631ff0ed00",
- "links": {},
- "constructorArgs": "[\"0x Protocol Token\",\"ZRX\",\"18\",\"1000000000000000000000000000\"]"
- },
- "42": {
- "address": "0x2002d3812f58e35f0ea1ffbf80a75a38c32175fa",
- "links": {},
- "constructorArgs": "[\"0x Protocol Token\",\"ZRX\",\"18\",\"1000000000000000000000000000\"]"
- },
- "50": {
- "address": "0x871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c",
- "links": {},
- "constructorArgs":
- "[\"0x Protocol Token\",\"ZRX\",\"18\",\"115792089237316195423570985008687907853269984665640564039457584007913129639935\"]"
- }
- }
+ "networks": {}
}
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/DummyERC721Token.json b/packages/contract-artifacts/artifacts/DummyERC721Token.json
index 7472a5a03..7472a5a03 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/DummyERC721Token.json
+++ b/packages/contract-artifacts/artifacts/DummyERC721Token.json
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/ERC20Proxy.json b/packages/contract-artifacts/artifacts/ERC20Proxy.json
index 59531be20..33af866e7 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/ERC20Proxy.json
+++ b/packages/contract-artifacts/artifacts/ERC20Proxy.json
@@ -191,26 +191,5 @@
}
}
},
- "networks": {
- "1": {
- "address": "0x2240dab907db71e64d3e0dba4800c83b5c502d4e",
- "links": {},
- "constructorArgs": "[]"
- },
- "3": {
- "address": "0xb1408f4c245a23c31b98d2c626777d4c0d766caa",
- "links": {},
- "constructorArgs": "[]"
- },
- "42": {
- "address": "0xf1ec01d6236d3cd881a0bf0130ea25fe4234003e",
- "links": {},
- "constructorArgs": "[]"
- },
- "50": {
- "address": "0x1dc4c1cefef38a777b15aa20260a54e584b16c48",
- "links": {},
- "constructorArgs": "[]"
- }
- }
+ "networks": {}
}
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/ERC20Token.json b/packages/contract-artifacts/artifacts/ERC20Token.json
index d89d08a77..d89d08a77 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/ERC20Token.json
+++ b/packages/contract-artifacts/artifacts/ERC20Token.json
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/ERC721Proxy.json b/packages/contract-artifacts/artifacts/ERC721Proxy.json
index 44614fa1f..db01e40f0 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/ERC721Proxy.json
+++ b/packages/contract-artifacts/artifacts/ERC721Proxy.json
@@ -191,26 +191,5 @@
}
}
},
- "networks": {
- "1": {
- "address": "0x208e41fb445f1bb1b6780d58356e81405f3e6127",
- "links": {},
- "constructorArgs": "[]"
- },
- "3": {
- "address": "0xe654aac058bfbf9f83fcaee7793311dd82f6ddb4",
- "links": {},
- "constructorArgs": "[]"
- },
- "42": {
- "address": "0x2a9127c745688a165106c11cd4d647d2220af821",
- "links": {},
- "constructorArgs": "[]"
- },
- "50": {
- "address": "0x1d7022f5b17d2f8b695918fb48fa1089c9f85401",
- "links": {},
- "constructorArgs": "[]"
- }
- }
+ "networks": {}
}
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/ERC721Token.json b/packages/contract-artifacts/artifacts/ERC721Token.json
index d189090e8..d189090e8 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/ERC721Token.json
+++ b/packages/contract-artifacts/artifacts/ERC721Token.json
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/Exchange.json b/packages/contract-artifacts/artifacts/Exchange.json
index 3eb231c7a..893bc5eae 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/Exchange.json
+++ b/packages/contract-artifacts/artifacts/Exchange.json
@@ -1972,26 +1972,5 @@
}
}
},
- "networks": {
- "1": {
- "address": "0x4f833a24e1f95d70f028921e27040ca56e09ab0b",
- "links": {},
- "constructorArgs": "[]"
- },
- "3": {
- "address": "0x4530c0483a1633c7a1c97d2c53721caff2caaaaf",
- "links": {},
- "constructorArgs": "[\"0xf47261b0000000000000000000000000ff67881f8d12f372d91baae9752eb3631ff0ed00\"]"
- },
- "42": {
- "address": "0x35dd2932454449b14cee11a94d3674a936d5d7b2",
- "links": {},
- "constructorArgs": "[\"0xf47261b00000000000000000000000002002d3812f58e35f0ea1ffbf80a75a38c32175fa\"]"
- },
- "50": {
- "address": "0x48bacb9266a570d521063ef5dd96e61686dbe788",
- "links": {},
- "constructorArgs": "[\"0xf47261b0000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c\"]"
- }
- }
+ "networks": {}
}
diff --git a/packages/contract-artifacts/artifacts/Forwarder.json b/packages/contract-artifacts/artifacts/Forwarder.json
new file mode 100644
index 000000000..a7bd62f8e
--- /dev/null
+++ b/packages/contract-artifacts/artifacts/Forwarder.json
@@ -0,0 +1,447 @@
+{
+ "schemaVersion": "2.0.0",
+ "contractName": "Forwarder",
+ "compilerOutput": {
+ "abi": [
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "name": "makerAddress",
+ "type": "address"
+ },
+ {
+ "name": "takerAddress",
+ "type": "address"
+ },
+ {
+ "name": "feeRecipientAddress",
+ "type": "address"
+ },
+ {
+ "name": "senderAddress",
+ "type": "address"
+ },
+ {
+ "name": "makerAssetAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "takerAssetAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "makerFee",
+ "type": "uint256"
+ },
+ {
+ "name": "takerFee",
+ "type": "uint256"
+ },
+ {
+ "name": "expirationTimeSeconds",
+ "type": "uint256"
+ },
+ {
+ "name": "salt",
+ "type": "uint256"
+ },
+ {
+ "name": "makerAssetData",
+ "type": "bytes"
+ },
+ {
+ "name": "takerAssetData",
+ "type": "bytes"
+ }
+ ],
+ "name": "orders",
+ "type": "tuple[]"
+ },
+ {
+ "name": "makerAssetFillAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "signatures",
+ "type": "bytes[]"
+ },
+ {
+ "components": [
+ {
+ "name": "makerAddress",
+ "type": "address"
+ },
+ {
+ "name": "takerAddress",
+ "type": "address"
+ },
+ {
+ "name": "feeRecipientAddress",
+ "type": "address"
+ },
+ {
+ "name": "senderAddress",
+ "type": "address"
+ },
+ {
+ "name": "makerAssetAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "takerAssetAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "makerFee",
+ "type": "uint256"
+ },
+ {
+ "name": "takerFee",
+ "type": "uint256"
+ },
+ {
+ "name": "expirationTimeSeconds",
+ "type": "uint256"
+ },
+ {
+ "name": "salt",
+ "type": "uint256"
+ },
+ {
+ "name": "makerAssetData",
+ "type": "bytes"
+ },
+ {
+ "name": "takerAssetData",
+ "type": "bytes"
+ }
+ ],
+ "name": "feeOrders",
+ "type": "tuple[]"
+ },
+ {
+ "name": "feeSignatures",
+ "type": "bytes[]"
+ },
+ {
+ "name": "feePercentage",
+ "type": "uint256"
+ },
+ {
+ "name": "feeRecipient",
+ "type": "address"
+ }
+ ],
+ "name": "marketBuyOrdersWithEth",
+ "outputs": [
+ {
+ "components": [
+ {
+ "name": "makerAssetFilledAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "takerAssetFilledAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "makerFeePaid",
+ "type": "uint256"
+ },
+ {
+ "name": "takerFeePaid",
+ "type": "uint256"
+ }
+ ],
+ "name": "orderFillResults",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "name": "makerAssetFilledAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "takerAssetFilledAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "makerFeePaid",
+ "type": "uint256"
+ },
+ {
+ "name": "takerFeePaid",
+ "type": "uint256"
+ }
+ ],
+ "name": "feeOrderFillResults",
+ "type": "tuple"
+ }
+ ],
+ "payable": true,
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "name": "assetData",
+ "type": "bytes"
+ },
+ {
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawAsset",
+ "outputs": [],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "constant": true,
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "name": "makerAddress",
+ "type": "address"
+ },
+ {
+ "name": "takerAddress",
+ "type": "address"
+ },
+ {
+ "name": "feeRecipientAddress",
+ "type": "address"
+ },
+ {
+ "name": "senderAddress",
+ "type": "address"
+ },
+ {
+ "name": "makerAssetAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "takerAssetAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "makerFee",
+ "type": "uint256"
+ },
+ {
+ "name": "takerFee",
+ "type": "uint256"
+ },
+ {
+ "name": "expirationTimeSeconds",
+ "type": "uint256"
+ },
+ {
+ "name": "salt",
+ "type": "uint256"
+ },
+ {
+ "name": "makerAssetData",
+ "type": "bytes"
+ },
+ {
+ "name": "takerAssetData",
+ "type": "bytes"
+ }
+ ],
+ "name": "orders",
+ "type": "tuple[]"
+ },
+ {
+ "name": "signatures",
+ "type": "bytes[]"
+ },
+ {
+ "components": [
+ {
+ "name": "makerAddress",
+ "type": "address"
+ },
+ {
+ "name": "takerAddress",
+ "type": "address"
+ },
+ {
+ "name": "feeRecipientAddress",
+ "type": "address"
+ },
+ {
+ "name": "senderAddress",
+ "type": "address"
+ },
+ {
+ "name": "makerAssetAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "takerAssetAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "makerFee",
+ "type": "uint256"
+ },
+ {
+ "name": "takerFee",
+ "type": "uint256"
+ },
+ {
+ "name": "expirationTimeSeconds",
+ "type": "uint256"
+ },
+ {
+ "name": "salt",
+ "type": "uint256"
+ },
+ {
+ "name": "makerAssetData",
+ "type": "bytes"
+ },
+ {
+ "name": "takerAssetData",
+ "type": "bytes"
+ }
+ ],
+ "name": "feeOrders",
+ "type": "tuple[]"
+ },
+ {
+ "name": "feeSignatures",
+ "type": "bytes[]"
+ },
+ {
+ "name": "feePercentage",
+ "type": "uint256"
+ },
+ {
+ "name": "feeRecipient",
+ "type": "address"
+ }
+ ],
+ "name": "marketSellOrdersWithEth",
+ "outputs": [
+ {
+ "components": [
+ {
+ "name": "makerAssetFilledAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "takerAssetFilledAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "makerFeePaid",
+ "type": "uint256"
+ },
+ {
+ "name": "takerFeePaid",
+ "type": "uint256"
+ }
+ ],
+ "name": "orderFillResults",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "name": "makerAssetFilledAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "takerAssetFilledAmount",
+ "type": "uint256"
+ },
+ {
+ "name": "makerFeePaid",
+ "type": "uint256"
+ },
+ {
+ "name": "takerFeePaid",
+ "type": "uint256"
+ }
+ ],
+ "name": "feeOrderFillResults",
+ "type": "tuple"
+ }
+ ],
+ "payable": true,
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "constant": false,
+ "inputs": [
+ {
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "name": "_exchange",
+ "type": "address"
+ },
+ {
+ "name": "_zrxAssetData",
+ "type": "bytes"
+ },
+ {
+ "name": "_wethAssetData",
+ "type": "bytes"
+ }
+ ],
+ "payable": false,
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "payable": true,
+ "stateMutability": "payable",
+ "type": "fallback"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "linkReferences": {},
+ "object": "0x60806040523480156200001157600080fd5b5060405162002d2c38038062002d2c83398101806040526200003791908101906200051d565b6000805433600160a060020a031991821617825560018054909116600160a060020a0386161790558251849084908490849081906200007e906004906020870190620003d0565b50825162000094906005906020860190620003d0565b50620000b0836010640100000000620019476200036f82021704565b9150620000cd846010640100000000620019476200036f82021704565b60028054600160a060020a03948516600160a060020a031991821617909155600380549285169290911691909117905550600154604080517f4552433230546f6b656e28616464726573732900000000000000000000000000815290519081900360130181207f6070410800000000000000000000000000000000000000000000000000000000825291909216945063607041089350620001739250906004016200068e565b602060405180830381600087803b1580156200018e57600080fd5b505af1158015620001a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620001c99190810190620004f4565b9050600160a060020a038116151562000219576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021090620006b0565b60405180910390fd5b6002546040517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a039091169063095ea7b39062000268908490600019906004016200066f565b602060405180830381600087803b1580156200028357600080fd5b505af115801562000298573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620002be9190810190620005a1565b506003546040517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a039091169063095ea7b3906200030e908490600019906004016200066f565b602060405180830381600087803b1580156200032957600080fd5b505af11580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620003649190810190620005a1565b50505050506200077a565b600081601401835110151515620003b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000210906200069e565b506014818301810151910190600160a060020a03165b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200041357805160ff191683800117855562000443565b8280016001018555821562000443579182015b828111156200044357825182559160200191906001019062000426565b506200045192915062000455565b5090565b6200047291905b808211156200045157600081556001016200045c565b90565b600062000483825162000711565b9392505050565b600062000483825162000742565b6000601f82018313620004aa57600080fd5b8151620004c1620004bb82620006e9565b620006c2565b91508082526020830160208301858383011115620004de57600080fd5b620004eb83828462000747565b50505092915050565b6000602082840312156200050757600080fd5b600062000515848462000475565b949350505050565b6000806000606084860312156200053357600080fd5b600062000541868662000475565b93505060208401516001604060020a038111156200055e57600080fd5b6200056c8682870162000498565b92505060408401516001604060020a038111156200058957600080fd5b620005978682870162000498565b9150509250925092565b600060208284031215620005b457600080fd5b60006200051584846200048a565b620005cd8162000711565b82525050565b620005cd816200071d565b602681527f475245415445525f4f525f455155414c5f544f5f32305f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601881527f554e524547495354455245445f41535345545f50524f58590000000000000000602082015260400190565b620005cd8162000472565b604081016200067f8285620005c2565b62000483602083018462000664565b60208101620003ca8284620005d3565b60208082528101620003ca81620005de565b60208082528101620003ca8162000634565b6040518181016001604060020a0381118282101715620006e157600080fd5b604052919050565b60006001604060020a038211156200070057600080fd5b506020601f91909101601f19160190565b600160a060020a031690565b7fffffffff000000000000000000000000000000000000000000000000000000001690565b151590565b60005b83811015620007645781810151838201526020016200074a565b8381111562000774576000848401525b50505050565b6125a2806200078a6000396000f30060806040526004361061006c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318978e8281146100c8578063630f1e6c146100f25780638da5cb5b146101125780639395525c14610134578063f2fde38b14610147575b60025473ffffffffffffffffffffffffffffffffffffffff1633146100c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612388565b60405180910390fd5b005b6100db6100d6366004611df1565b610167565b6040516100e9929190612488565b60405180910390f35b3480156100fe57600080fd5b506100c661010d366004611eec565b6102f7565b34801561011e57600080fd5b50610127610388565b6040516100e99190612337565b6100db610142366004611d0b565b6103a4565b34801561015357600080fd5b506100c6610162366004611ce5565b61050a565b61016f6119fa565b6101776119fa565b6000806101826105bb565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815261025c939092909183018282801561022d5780601f106102025761010080835404028352916020019161022d565b820191906000526020600020905b81548152906001019060200180831161021057829003601f168201915b50505050508c600081518110151561024157fe5b6020908102909101015161014001519063ffffffff61069616565b156102875761026c8b8b8b6107c3565b935061028084600001518560600151610ac1565b90506102ae565b6102928b8b8b610b03565b9350836060015191506102a68883896107c3565b845190935090505b6102c2846020015184602001518888610d15565b6102e98b60008151811015156102d457fe5b90602001906020020151610140015182610f29565b505097509795505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610348576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612438565b61038383838080601f01602080910402602001604051908101604052809392919081815260200183838082843750879450610f299350505050565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6103ac6119fa565b6103b46119fa565b60008060006103c16105bb565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152610441939092909183018282801561022d5780601f106102025761010080835404028352916020019161022d565b156104925761046a670de0b6b3a7640000610464670de0b6b3a76400008a611045565b3461108f565b92506104778b848c6110e7565b945061048b85600001518660600151610ac1565b90506104d6565b6104ad670d2f13f7789f0000670de0b6b3a76400003461108f565b92506104ba8b848c6110e7565b9450846060015191506104ce89838a6107c3565b855190945090505b6104ea856020015185602001518989610d15565b6104fc8b60008151811015156102d457fe5b505050965096945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461055b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612438565b73ffffffffffffffffffffffffffffffffffffffff8116156105b857600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b600034116105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612398565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303818588803b15801561067b57600080fd5b505af115801561068f573d6000803e3d6000fd5b5050505050565b6000815183511480156107ba5750816040518082805190602001908083835b602083106106f257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016106b5565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604051919093018190038120885190955088945090928392508401908083835b6020831061078757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161074a565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916145b90505b92915050565b6107cb6119fa565b60608060008060008060006107de6119fa565b8a15156107ea57610ab2565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561088e5780601f106108635761010080835404028352916020019161088e565b820191906000526020600020905b81548152906001019060200180831161087157829003601f168201915b505060058054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152969e509194509250840190508282801561093d5780601f106109125761010080835404028352916020019161093d565b820191906000526020600020905b81548152906001019060200180831161092057829003601f168201915b50505050509650600095508b519450600093505b838514610a7857878c8581518110151561096757fe5b6020908102909101015161014001528b5187908d908690811061098657fe5b60209081029091010151610160015261099f8b87610ac1565b9250610a068c858151811015156109b257fe5b9060200190602002015160a00151610a008e878151811015156109d157fe5b90602001906020020151608001518f888151811015156109ed57fe5b9060200190602002015160e00151610ac1565b8561128b565b9150610a418c85815181101515610a1957fe5b90602001906020020151838c87815181101515610a3257fe5b906020019060200201516112e6565b9050610a4d898261135e565b610a5f89600001518a60600151610ac1565b95508a8610610a6d57610a78565b600190930192610951565b8a861015610ab2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612418565b50505050505050509392505050565b600082821115610afd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd906123b8565b50900390565b610b0b6119fa565b606080600080600080610b1c6119fa565b60008b6000815181101515610b2d57fe5b6020908102919091018101516101400151600580546040805160026001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190931692909204601f8101869004860283018601909152808252929b5092909190830182828015610be55780601f10610bba57610100808354040283529160200191610be5565b820191906000526020600020905b815481529060010190602001808311610bc857829003601f168201915b505050505096508b519550600094505b848614610cdb57878c86815181101515610c0b57fe5b6020908102909101015161014001528b5187908d9087908110610c2a57fe5b6020908102909101015161016001528851610c46908c90610ac1565b9350610c898c86815181101515610c5957fe5b9060200190602002015160a001518d87815181101515610c7557fe5b90602001906020020151608001518661128b565b9250610cb58c86815181101515610c9c57fe5b90602001906020020151848c88815181101515610a3257fe5b9150610cc1898361135e565b5087518a8110610cd057610cdb565b600190940193610bf5565b8a811015610ab2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612418565b600080808066b1a2bc2ec50000861115610d5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612448565b610d658888611045565b935034841115610da1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd906123a8565b610dab3485610ac1565b9250610dc086670de0b6b3a76400008a61108f565b915082821115610dfc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612428565b6000831115610f1f576002546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d90610e5b9086906004016124a4565b600060405180830381600087803b158015610e7557600080fd5b505af1158015610e89573d6000803e3d6000fd5b505050506000821115610edb5760405173ffffffffffffffffffffffffffffffffffffffff86169083156108fc029084906000818181858888f19350505050158015610ed9573d6000803e3d6000fd5b505b610ee58383610ac1565b90506000811115610f1f57604051339082156108fc029083906000818181858888f19350505050158015610f1d573d6000803e3d6000fd5b505b5050505050505050565b6000610f3b838263ffffffff6113c016565b604080517f4552433230546f6b656e28616464726573732900000000000000000000000000815290519081900360130190209091507fffffffff0000000000000000000000000000000000000000000000000000000080831691161415610fab57610fa6838361142d565b610383565b604080517f455243373231546f6b656e28616464726573732c75696e7432353629000000008152905190819003601c0190207fffffffff000000000000000000000000000000000000000000000000000000008281169116141561101357610fa6838361161b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd906123f8565b600082820183811015611084576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd906123e8565b8091505b5092915050565b60008083116110ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd906123d8565b6110dd6110d78584611703565b8461175e565b90505b9392505050565b6110ef6119fa565b60608060008060006110ff6119fa565b89600081518110151561110e57fe5b6020908102919091018101516101400151600580546040805160026001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190931692909204601f8101869004860283018601909152808252929950929091908301828280156111c65780601f1061119b576101008083540402835291602001916111c6565b820191906000526020600020905b8154815290600101906020018083116111a957829003601f168201915b5050505050945089519350600092505b82841461127e57858a848151811015156111ec57fe5b602090810290910101516101400152895185908b908590811061120b57fe5b90602001906020020151610160018190525061122b898860200151610ac1565b91506112578a8481518110151561123e57fe5b90602001906020020151838a86815181101515610a3257fe5b9050611263878261135e565b602087015189116112735761127e565b6001909201916111d6565b5050505050509392505050565b60008083116112c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd906123d8565b6110dd6110d76112d68685611703565b6112e1866001610ac1565b611045565b6112ee6119fa565b606060006112fd868686611775565b600154815191935073ffffffffffffffffffffffffffffffffffffffff1691506080908390602082016000855af1801561135457825184526020830151602085015260408301516040850152606083015160608501525b5050509392505050565b8151815161136c9190611045565b8252602080830151908201516113829190611045565b60208301526040808301519082015161139b9190611045565b6040830152606080830151908201516113b49190611045565b60609092019190915250565b600081600401835110151515611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612468565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60008061144184601063ffffffff61194716565b604080517f7472616e7366657228616464726573732c75696e7432353629000000000000008152905190819003601901812091935073ffffffffffffffffffffffffffffffffffffffff8416919061149f903390879060240161236d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931783525181519192909182919080838360005b8381101561154357818101518382015260200161152b565b50505050905090810190601f1680156115705780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1925050508015156115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612408565b3d156115dc575060003d602014156115dc5760206000803e506000515b801515611615576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612408565b50505050565b60008060018314611658576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612478565b61166984601063ffffffff61194716565b915061167c84602463ffffffff6119a816565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd906116d590309033908690600401612345565b600060405180830381600087803b1580156116ef57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b6000808315156117165760009150611088565b5082820282848281151561172657fe5b0414611084576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd906123e8565b600080828481151561176c57fe5b04949350505050565b604080517fb4be83d5000000000000000000000000000000000000000000000000000000006020808301919091526060602483018181528751608485019081528884015160a48601529488015160c48501529087015160e4840152608087015161010484015260a087015161012484015260c087015161014484015260e08701516101648401526101008701516101848401526101208701516101a4840152610140870180516101c485019081526101608901516101e4860152610180905251805161020485018190529394919384936044870192849261022489019291820191601f82010460005b8181101561187c57835185526020948501949093019260010161185e565b50505050818103610160808401919091528a0151805180835260209283019291820191601f82010460005b818110156118c55783518552602094850194909301926001016118a7565b50505089845250848103602093840190815288518083529093918201918981019190601f82010460005b8181101561190d5783518552602094850194909301926001016118ef565b5050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08883030188525060405250505050509392505050565b600081601401835110151515611989576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd90612458565b50016014015173ffffffffffffffffffffffffffffffffffffffff1690565b60006107ba83836000816020018351101515156119f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd906123c8565b50016020015190565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b60006107ba8235612540565b6000601f82018313611a4057600080fd5b8135611a53611a4e826124d9565b6124b2565b81815260209384019390925082018360005b83811015611a915781358601611a7b8882611b41565b8452506020928301929190910190600101611a65565b5050505092915050565b6000601f82018313611aac57600080fd5b8135611aba611a4e826124d9565b81815260209384019390925082018360005b83811015611a915781358601611ae28882611b90565b8452506020928301929190910190600101611acc565b600080601f83018413611b0a57600080fd5b50813567ffffffffffffffff811115611b2257600080fd5b602083019150836001820283011115611b3a57600080fd5b9250929050565b6000601f82018313611b5257600080fd5b8135611b60611a4e826124fa565b91508082526020830160208301858383011115611b7c57600080fd5b611b8783828461255c565b50505092915050565b60006101808284031215611ba357600080fd5b611bae6101806124b2565b90506000611bbc8484611a23565b8252506020611bcd84848301611a23565b6020830152506040611be184828501611a23565b6040830152506060611bf584828501611a23565b6060830152506080611c0984828501611cd9565b60808301525060a0611c1d84828501611cd9565b60a08301525060c0611c3184828501611cd9565b60c08301525060e0611c4584828501611cd9565b60e083015250610100611c5a84828501611cd9565b61010083015250610120611c7084828501611cd9565b6101208301525061014082013567ffffffffffffffff811115611c9257600080fd5b611c9e84828501611b41565b6101408301525061016082013567ffffffffffffffff811115611cc057600080fd5b611ccc84828501611b41565b6101608301525092915050565b60006107ba8235612559565b600060208284031215611cf757600080fd5b6000611d038484611a23565b949350505050565b60008060008060008060c08789031215611d2457600080fd5b863567ffffffffffffffff811115611d3b57600080fd5b611d4789828a01611a9b565b965050602087013567ffffffffffffffff811115611d6457600080fd5b611d7089828a01611a2f565b955050604087013567ffffffffffffffff811115611d8d57600080fd5b611d9989828a01611a9b565b945050606087013567ffffffffffffffff811115611db657600080fd5b611dc289828a01611a2f565b9350506080611dd389828a01611cd9565b92505060a0611de489828a01611a23565b9150509295509295509295565b600080600080600080600060e0888a031215611e0c57600080fd5b873567ffffffffffffffff811115611e2357600080fd5b611e2f8a828b01611a9b565b9750506020611e408a828b01611cd9565b965050604088013567ffffffffffffffff811115611e5d57600080fd5b611e698a828b01611a2f565b955050606088013567ffffffffffffffff811115611e8657600080fd5b611e928a828b01611a9b565b945050608088013567ffffffffffffffff811115611eaf57600080fd5b611ebb8a828b01611a2f565b93505060a0611ecc8a828b01611cd9565b92505060c0611edd8a828b01611a23565b91505092959891949750929550565b600080600060408486031215611f0157600080fd5b833567ffffffffffffffff811115611f1857600080fd5b611f2486828701611af8565b93509350506020611f3786828701611cd9565b9150509250925092565b611f4a81612540565b82525050565b602381527f44454641554c545f46554e4354494f4e5f574554485f434f4e54524143545f4f60208201527f4e4c590000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f494e56414c49445f4d53475f56414c5545000000000000000000000000000000602082015260400190565b600d81527f4f564552534f4c445f5745544800000000000000000000000000000000000000602082015260400190565b601181527f55494e543235365f554e444552464c4f57000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601081527f4449564953494f4e5f42595f5a45524f00000000000000000000000000000000602082015260400190565b601081527f55494e543235365f4f564552464c4f5700000000000000000000000000000000602082015260400190565b601781527f554e535550504f525445445f41535345545f50524f5859000000000000000000602082015260400190565b600f81527f5452414e534645525f4641494c45440000000000000000000000000000000000602082015260400190565b601481527f434f4d504c4554455f46494c4c5f4641494c4544000000000000000000000000602082015260400190565b601a81527f494e53554646494349454e545f4554485f52454d41494e494e47000000000000602082015260400190565b601381527f4f4e4c595f434f4e54524143545f4f574e455200000000000000000000000000602082015260400190565b601881527f4645455f50455243454e544147455f544f4f5f4c415247450000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f32305f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b600e81527f494e56414c49445f414d4f554e54000000000000000000000000000000000000602082015260400190565b805160808301906122f9848261232e565b50602082015161230c602085018261232e565b50604082015161231f604085018261232e565b50606082015161161560608501825b611f4a81612559565b602081016107bd8284611f41565b606081016123538286611f41565b6123606020830185611f41565b611d03604083018461232e565b6040810161237b8285611f41565b6110e0602083018461232e565b602080825281016107bd81611f50565b602080825281016107bd81611fa6565b602080825281016107bd81611fd6565b602080825281016107bd81612006565b602080825281016107bd81612036565b602080825281016107bd8161208c565b602080825281016107bd816120bc565b602080825281016107bd816120ec565b602080825281016107bd8161211c565b602080825281016107bd8161214c565b602080825281016107bd8161217c565b602080825281016107bd816121ac565b602080825281016107bd816121dc565b602080825281016107bd8161220c565b602080825281016107bd81612262565b602080825281016107bd816122b8565b610100810161249782856122e8565b6110e060808301846122e8565b602081016107bd828461232e565b60405181810167ffffffffffffffff811182821017156124d157600080fd5b604052919050565b600067ffffffffffffffff8211156124f057600080fd5b5060209081020190565b600067ffffffffffffffff82111561251157600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b828183375060009101525600a265627a7a72305820d9f418f11e0f91f06f6f9d22924be0add925495eeb76a6388b5417adb505eeb36c6578706572696d656e74616cf50037"
+ }
+ }
+ },
+ "networks": {}
+} \ No newline at end of file
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/IValidator.json b/packages/contract-artifacts/artifacts/IValidator.json
index 8ca99f261..8ca99f261 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/IValidator.json
+++ b/packages/contract-artifacts/artifacts/IValidator.json
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/IWallet.json b/packages/contract-artifacts/artifacts/IWallet.json
index 2a8f975cc..2a8f975cc 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/IWallet.json
+++ b/packages/contract-artifacts/artifacts/IWallet.json
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/OrderValidator.json b/packages/contract-artifacts/artifacts/OrderValidator.json
index 85032bbeb..90a92e7cb 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/OrderValidator.json
+++ b/packages/contract-artifacts/artifacts/OrderValidator.json
@@ -568,30 +568,5 @@
}
}
},
- "networks": {
- "1": {
- "address": "0x9463e518dea6810309563c81d5266c1b1d149138",
- "links": {},
- "constructorArgs":
- "[\"0x4f833a24e1f95d70f028921e27040ca56e09ab0b\",\"0xf47261b0000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f498\"]"
- },
- "3": {
- "address": "0x90431a90516ab49af23a0530e04e8c7836e7122f",
- "links": {},
- "constructorArgs":
- "[\"0x4530c0483a1633c7a1c97d2c53721caff2caaaaf\",\"0xf47261b0000000000000000000000000ff67881f8d12f372d91baae9752eb3631ff0ed00\"]"
- },
- "42": {
- "address": "0xb389da3d204b412df2f75c6afb3d0a7ce0bc283d",
- "links": {},
- "constructorArgs":
- "[\"0x35dd2932454449b14cee11a94d3674a936d5d7b2\",\"0xf47261b00000000000000000000000002002d3812f58e35f0ea1ffbf80a75a38c32175fa\"]"
- },
- "50": {
- "address": "0xe86bb98fcf9bff3512c74589b78fb168200cc546",
- "links": {},
- "constructorArgs":
- "[\"0x48bacb9266a570d521063ef5dd96e61686dbe788\",\"0xf47261b0000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c\"]"
- }
- }
+ "networks": {}
}
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/WETH9.json b/packages/contract-artifacts/artifacts/WETH9.json
index cd2d83104..e6ce25f7d 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/WETH9.json
+++ b/packages/contract-artifacts/artifacts/WETH9.json
@@ -289,26 +289,5 @@
}
}
},
- "networks": {
- "1": {
- "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
- "links": {},
- "constructorArgs": "[]"
- },
- "3": {
- "address": "0xc778417e063141139fce010982780140aa0cd5ab",
- "links": {},
- "constructorArgs": "[]"
- },
- "42": {
- "address": "0xd0a1e359811322d97991e03f863a0c30c2cf029c",
- "links": {},
- "constructorArgs": "[]"
- },
- "50": {
- "address": "0x0b1ba0af832d7c05fd64161e0db78e85978e8082",
- "links": {},
- "constructorArgs": "[]"
- }
- }
+ "networks": {}
}
diff --git a/packages/migrations/artifacts/2.0.0-trimmed/ZRXToken.json b/packages/contract-artifacts/artifacts/ZRXToken.json
index c2053578f..29bb55824 100644
--- a/packages/migrations/artifacts/2.0.0-trimmed/ZRXToken.json
+++ b/packages/contract-artifacts/artifacts/ZRXToken.json
@@ -223,26 +223,5 @@
}
}
},
- "networks": {
- "1": {
- "address": "0xe41d2489571d322189246dafa5ebde1f4699f498",
- "links": {},
- "constructorArgs": "[]"
- },
- "3": {
- "address": "0xff67881f8d12f372d91baae9752eb3631ff0ed00",
- "links": {},
- "constructorArgs": "[\"0x Protocol Token\",\"ZRX\",\"18\",\"1000000000000000000000000000\"]"
- },
- "42": {
- "address": "0x2002d3812f58e35f0ea1ffbf80a75a38c32175fa",
- "links": {},
- "constructorArgs": "[\"0x Protocol Token\",\"ZRX\",\"18\",\"1000000000000000000000000000\"]"
- },
- "50": {
- "address": "0x871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c",
- "links": {},
- "constructorArgs": "[]"
- }
- }
+ "networks": {}
}
diff --git a/packages/contract-artifacts/package.json b/packages/contract-artifacts/package.json
new file mode 100644
index 000000000..9c25e3ac5
--- /dev/null
+++ b/packages/contract-artifacts/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "@0x/contract-artifacts",
+ "version": "1.1.0",
+ "engines": {
+ "node": ">=6.12"
+ },
+ "description": "0x smart contract compilation artifacts",
+ "main": "lib/src/index.js",
+ "directories": {
+ "test": "test"
+ },
+ "scripts": {
+ "build": "yarn tsc -b",
+ "build:ci": "yarn build",
+ "clean": "shx rm -rf lib"
+ },
+ "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/packages/contract-artifacts/README.md",
+ "devDependencies": {
+ "shx": "^0.2.2",
+ "typescript": "3.0.1"
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/packages/contract-artifacts/src/index.ts b/packages/contract-artifacts/src/index.ts
new file mode 100644
index 000000000..f30276dd9
--- /dev/null
+++ b/packages/contract-artifacts/src/index.ts
@@ -0,0 +1,31 @@
+import * as AssetProxyOwner from '../artifacts/AssetProxyOwner.json';
+import * as DummyERC20Token from '../artifacts/DummyERC20Token.json';
+import * as DummyERC721Token from '../artifacts/DummyERC721Token.json';
+import * as ERC20Proxy from '../artifacts/ERC20Proxy.json';
+import * as ERC20Token from '../artifacts/ERC20Token.json';
+import * as ERC721Proxy from '../artifacts/ERC721Proxy.json';
+import * as ERC721Token from '../artifacts/ERC721Token.json';
+import * as Exchange from '../artifacts/Exchange.json';
+import * as Forwarder from '../artifacts/Forwarder.json';
+import * as IValidator from '../artifacts/IValidator.json';
+import * as IWallet from '../artifacts/IWallet.json';
+import * as OrderValidator from '../artifacts/OrderValidator.json';
+import * as WETH9 from '../artifacts/WETH9.json';
+import * as ZRXToken from '../artifacts/ZRXToken.json';
+
+export {
+ AssetProxyOwner,
+ DummyERC20Token,
+ DummyERC721Token,
+ ERC20Proxy,
+ ERC20Token,
+ ERC721Proxy,
+ ERC721Token,
+ Exchange,
+ Forwarder,
+ IValidator,
+ IWallet,
+ OrderValidator,
+ WETH9,
+ ZRXToken,
+};
diff --git a/packages/contract-artifacts/tsconfig.json b/packages/contract-artifacts/tsconfig.json
new file mode 100644
index 000000000..cce086209
--- /dev/null
+++ b/packages/contract-artifacts/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "extends": "../../tsconfig",
+ "compilerOptions": {
+ "outDir": "lib",
+ "rootDir": ".",
+ "resolveJsonModule": true
+ },
+ "include": ["./src/**/*"],
+ "files": [
+ "./artifacts/AssetProxyOwner.json",
+ "./artifacts/DummyERC20Token.json",
+ "./artifacts/DummyERC721Token.json",
+ "./artifacts/ERC20Proxy.json",
+ "./artifacts/ERC20Token.json",
+ "./artifacts/ERC721Proxy.json",
+ "./artifacts/ERC721Token.json",
+ "./artifacts/Exchange.json",
+ "./artifacts/Forwarder.json",
+ "./artifacts/IValidator.json",
+ "./artifacts/IWallet.json",
+ "./artifacts/OrderValidator.json",
+ "./artifacts/WETH9.json",
+ "./artifacts/ZRXToken.json"
+ ]
+}
diff --git a/packages/contract-artifacts/tslint.json b/packages/contract-artifacts/tslint.json
new file mode 100644
index 000000000..dd9053357
--- /dev/null
+++ b/packages/contract-artifacts/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": ["@0x/tslint-config"]
+}
diff --git a/packages/contract-wrappers/CHANGELOG.json b/packages/contract-wrappers/CHANGELOG.json
index 0770b6c0d..0ab5e5d08 100644
--- a/packages/contract-wrappers/CHANGELOG.json
+++ b/packages/contract-wrappers/CHANGELOG.json
@@ -1,13 +1,85 @@
[
{
- "version": "2.1.0",
+ "version": "4.0.0",
"changes": [
{
- "note": "Add optional validation to the forwarder wrapper methods"
+ "note":
+ "Add signature validation, regular cancellation and `cancelledUpTo` checks to `validateOrderFillableOrThrowAsync`",
+ "pr": 1235
+ },
+ {
+ "note":
+ "Improved the errors thrown by `validateOrderFillableOrThrowAsync` by making them more descriptive",
+ "pr": 1235
+ },
+ {
+ "note":
+ "Throw previously swallowed network errors when calling `validateOrderFillableOrThrowAsync` (see issue: #1218)",
+ "pr": 1235
}
]
},
{
+ "version": "3.0.1",
+ "changes": [
+ {
+ "note": "Fix bug in `ForwarderWrapper` where `feeRecipientAddress` was not correctly normalized.",
+ "pr": 1178
+ }
+ ],
+ "timestamp": 1541740904
+ },
+ {
+ "version": "3.0.0",
+ "changes": [
+ {
+ "note": "Add optional validation to the forwarder wrapper methods"
+ },
+ {
+ "note": "Updated to use new modularized artifacts.",
+ "pr": 1105
+ },
+ {
+ "note": "Top-level `ContractWrappers` class has a new optional `contractAddresses` parameter.",
+ "pr": 1105
+ },
+ {
+ "note":
+ "Default contract addresses are no longer stored in artifacts and are instead loaded from the `@0xproject/contract-addresses` package.",
+ "pr": 1105
+ },
+ {
+ "note":
+ "Most contract addresses are now defined at instantiation time and are available as properties (e.g., `exchangeWrapper.address`) instead of methods (e.g., `exchangeWrapper.getContractAddress()`).",
+ "pr": 1105
+ },
+ {
+ "note":
+ "Removed `setProvider` method in top-level `ContractWrapper` class and added new `unsubscribeAll` method.",
+ "pr": 1105
+ },
+ {
+ "note":
+ "Some properties and methods have been renamed. For example, some methods that previously could throw no longer can, and so their names have been updated accordingly.",
+ "pr": 1105
+ },
+ {
+ "note":
+ "Removed ContractNotFound errors. Checking for this error was somewhat ineffecient. Relevant methods/functions now return the default error from web3-wrapper, which we feel provides enough information.",
+ "pr": 1105
+ },
+ {
+ "note": "Add `ForwarderWrapperError` to public interface",
+ "pr": 1147
+ },
+ {
+ "note": "Add `ContractWrapperError.SignatureRequestDenied` to public interface",
+ "pr": 1147
+ }
+ ],
+ "timestamp": 1539871071
+ },
+ {
"version": "2.0.2",
"changes": [
{
diff --git a/packages/contract-wrappers/CHANGELOG.md b/packages/contract-wrappers/CHANGELOG.md
index 60675ddbe..1fe903dd9 100644
--- a/packages/contract-wrappers/CHANGELOG.md
+++ b/packages/contract-wrappers/CHANGELOG.md
@@ -5,6 +5,23 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v3.0.1 - _November 9, 2018_
+
+ * Fix bug in `ForwarderWrapper` where `feeRecipientAddress` was not correctly normalized. (#1178)
+
+## v3.0.0 - _October 18, 2018_
+
+ * Add optional validation to the forwarder wrapper methods
+ * Updated to use new modularized artifacts. (#1105)
+ * Top-level `ContractWrappers` class has a new optional `contractAddresses` parameter. (#1105)
+ * Default contract addresses are no longer stored in artifacts and are instead loaded from the `@0xproject/contract-addresses` package. (#1105)
+ * Most contract addresses are now defined at instantiation time and are available as properties (e.g., `exchangeWrapper.address`) instead of methods (e.g., `exchangeWrapper.getContractAddress()`). (#1105)
+ * Removed `setProvider` method in top-level `ContractWrapper` class and added new `unsubscribeAll` method. (#1105)
+ * Some properties and methods have been renamed. For example, some methods that previously could throw no longer can, and so their names have been updated accordingly. (#1105)
+ * Removed ContractNotFound errors. Checking for this error was somewhat ineffecient. Relevant methods/functions now return the default error from web3-wrapper, which we feel provides enough information. (#1105)
+ * Add `ForwarderWrapperError` to public interface (#1147)
+ * Add `ContractWrapperError.SignatureRequestDenied` to public interface (#1147)
+
## v2.0.2 - _October 4, 2018_
* Dependencies updated
@@ -51,7 +68,7 @@ CHANGELOG
* Remove superfluous exported types: `ContractEvent`, `Token`, `OrderFillRequest`, `ContractEventArgs`, `LogEvent`, `OnOrderStateChangeCallback`, `ECSignature`, `OrderStateValid`, `OrderStateInvalid`, `OrderState`, `FilterObject`, `TransactionReceipt` & `TransactionReceiptWithDecodedLogs` (#924)
* Added Transaction Encoder for use with 0x Exchange executeTransaction (#975)
-## v1.0.1-rc.3 - _August 13, 2018_
+## v1.0.1-rc.3 - _August 14, 2018_
* Added strict encoding/decoding checks for sendTransaction and call (#915)
* Add ForwarderWrapper (#934)
diff --git a/packages/contract-wrappers/README.md b/packages/contract-wrappers/README.md
index 6153f798e..36f2f48fb 100644
--- a/packages/contract-wrappers/README.md
+++ b/packages/contract-wrappers/README.md
@@ -1,4 +1,4 @@
-## @0xproject/contract-wrappers
+## @0x/contract-wrappers
Smart TS wrappers for 0x smart contracts. The wrappers have simplified interfaces, perform client-side validation on transactions and throw helpful error messages.
@@ -9,20 +9,20 @@ Smart TS wrappers for 0x smart contracts. The wrappers have simplified interface
**Install**
```bash
-npm install @0xproject/contract-wrappers --save
+npm install @0x/contract-wrappers --save
```
**Import**
```javascript
-import { ContractWrappers } from '@0xproject/contract-wrappers';
+import { ContractWrappers } from '@0x/contract-wrappers';
```
If your project is in [TypeScript](https://www.typescriptlang.org/), add the following to your `tsconfig.json`:
```json
"compilerOptions": {
- "typeRoots": ["node_modules/@0xproject/typescript-typings/types", "node_modules/@types"],
+ "typeRoots": ["node_modules/@0x/typescript-typings/types", "node_modules/@types"],
}
```
@@ -51,13 +51,13 @@ yarn install
To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
```bash
-PKG=@0xproject/contract-wrappers yarn build
+PKG=@0x/contract-wrappers yarn build
```
Or continuously rebuild on change:
```bash
-PKG=@0xproject/contract-wrappers yarn watch
+PKG=@0x/contract-wrappers yarn watch
```
```bash
diff --git a/packages/contract-wrappers/package.json b/packages/contract-wrappers/package.json
index 35f27d77c..cb69bbd33 100644
--- a/packages/contract-wrappers/package.json
+++ b/packages/contract-wrappers/package.json
@@ -1,6 +1,6 @@
{
- "name": "@0xproject/contract-wrappers",
- "version": "2.0.2",
+ "name": "@0x/contract-wrappers",
+ "version": "3.0.1",
"description": "Smart TS wrappers for 0x smart contracts",
"keywords": [
"0xproject",
@@ -11,24 +11,19 @@
"main": "lib/src/index.js",
"types": "lib/src/index.d.ts",
"scripts": {
- "build": "yarn pre_build && tsc -b",
+ "build": "tsc -b",
"build:ci": "yarn build",
- "pre_build": "run-s update_artifacts generate_contract_wrappers copy_artifacts",
- "generate_contract_wrappers": "abi-gen --abis 'src/artifacts/@(Exchange|DummyERC20Token|DummyERC721Token|ZRXToken|ERC20Token|ERC721Token|WETH9|ERC20Proxy|ERC721Proxy|Forwarder|OrderValidator).json' --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers/generated --backend ethers",
- "lint": "tslint --project . --exclude **/src/contract_wrappers/**/* --exclude **/lib/**/*",
+ "lint": "tslint --format stylish --project . --exclude **/lib/**/*",
"test:circleci": "run-s test:coverage",
"test": "yarn run_mocha",
"rebuild_and_test": "run-s build test",
"test:coverage": "nyc npm run test --all && yarn coverage:report:lcov",
"coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info",
- "update_artifacts": "for i in ${npm_package_config_contracts_v2}; do copyfiles -u 4 ../migrations/artifacts/2.0.0-trimmed/$i.json src/artifacts; done;",
- "copy_artifacts": "copyfiles -u 2 './src/artifacts/**/*.json' ./lib/src/artifacts",
- "clean": "shx rm -rf _bundles lib test_temp test/artifacts src/contract_wrappers/generated src/artifacts generated_docs",
+ "clean": "shx rm -rf _bundles lib test_temp generated_docs",
"run_mocha": "mocha --require source-map-support/register --require make-promises-safe lib/test/**/*_test.js lib/test/global_hooks.js --timeout 10000 --bail --exit",
"docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --tsconfig typedoc-tsconfig.json --json $JSON_FILE_PATH $PROJECT_FILES"
},
"config": {
- "contracts_v2": "AssetProxyOwner Exchange ERC20Proxy ERC20Token ERC721Proxy ERC721Token WETH9 ZRXToken Forwarder OrderValidator DummyERC20Token DummyERC721Token",
"postpublish": {
"assets": []
}
@@ -42,11 +37,10 @@
"node": ">=6.0.0"
},
"devDependencies": {
- "@0xproject/abi-gen": "^1.0.13",
- "@0xproject/dev-utils": "^1.0.12",
- "@0xproject/migrations": "^1.0.14",
- "@0xproject/subproviders": "^2.0.7",
- "@0xproject/tslint-config": "^1.0.8",
+ "@0x/dev-utils": "^1.0.14",
+ "@0x/migrations": "^2.0.1",
+ "@0x/subproviders": "^2.1.1",
+ "@0x/tslint-config": "^1.0.10",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
"@types/node": "*",
@@ -56,7 +50,6 @@
"chai": "^4.0.1",
"chai-as-promised": "^7.1.0",
"chai-bignumber": "^2.0.1",
- "copyfiles": "^2.0.0",
"dirty-chai": "^2.0.1",
"make-promises-safe": "^1.1.0",
"mocha": "^4.1.0",
@@ -67,21 +60,23 @@
"sinon": "^4.0.0",
"source-map-support": "^0.5.0",
"tslint": "5.11.0",
- "typedoc": "0.12.0",
+ "typedoc": "0.13.0",
"typescript": "3.0.1",
"web3-provider-engine": "14.0.6"
},
"dependencies": {
- "@0xproject/assert": "^1.0.13",
- "@0xproject/base-contract": "^3.0.1",
- "@0xproject/fill-scenarios": "^1.0.7",
- "@0xproject/json-schemas": "^1.0.7",
- "@0xproject/order-utils": "^1.0.7",
- "@0xproject/types": "^1.1.4",
- "@0xproject/typescript-typings": "^3.0.2",
- "@0xproject/utils": "^2.0.2",
- "@0xproject/web3-wrapper": "^3.0.3",
- "ethereum-types": "^1.0.11",
+ "@0x/abi-gen-wrappers": "^1.0.2",
+ "@0x/assert": "^1.0.15",
+ "@0x/contract-addresses": "^1.1.0",
+ "@0x/contract-artifacts": "^1.1.0",
+ "@0x/fill-scenarios": "^1.0.9",
+ "@0x/json-schemas": "^2.0.1",
+ "@0x/order-utils": "^2.0.1",
+ "@0x/types": "^1.2.1",
+ "@0x/typescript-typings": "^3.0.4",
+ "@0x/utils": "^2.0.4",
+ "@0x/web3-wrapper": "^3.1.1",
+ "ethereum-types": "^1.1.2",
"ethereumjs-blockstream": "6.0.0",
"ethereumjs-util": "^5.1.1",
"ethers": "~4.0.4",
diff --git a/packages/contract-wrappers/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.ts b/packages/contract-wrappers/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.ts
index 1f139f1ef..b095c8e79 100644
--- a/packages/contract-wrappers/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.ts
+++ b/packages/contract-wrappers/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.ts