diff --git a/contracts/asset-proxy/test/authorizable.ts b/contracts/asset-proxy/test/authorizable.ts index ccceb0862a..d86c5d9579 100644 --- a/contracts/asset-proxy/test/authorizable.ts +++ b/contracts/asset-proxy/test/authorizable.ts @@ -37,6 +37,7 @@ describe('Authorizable', () => { artifacts.MixinAuthorizable, provider, txDefaults, + artifacts, ); }); beforeEach(async () => { diff --git a/contracts/asset-proxy/test/erc1155_proxy.ts b/contracts/asset-proxy/test/erc1155_proxy.ts index 5048af635c..4e1730af32 100644 --- a/contracts/asset-proxy/test/erc1155_proxy.ts +++ b/contracts/asset-proxy/test/erc1155_proxy.ts @@ -23,7 +23,7 @@ import { LogWithDecodedArgs } from 'ethereum-types'; import * as ethUtil from 'ethereumjs-util'; import * as _ from 'lodash'; -import { ERC1155ProxyContract, ERC1155ProxyWrapper } from '../src'; +import { artifacts, ERC1155ProxyContract, ERC1155ProxyWrapper } from '../src'; chaiSetup.configure(); const expect = chai.expect; @@ -89,6 +89,7 @@ describe('ERC1155Proxy', () => { erc1155Artifacts.DummyERC1155Receiver, provider, txDefaults, + artifacts, ); receiverContract = erc1155Receiver.address; await erc1155ProxyWrapper.setBalancesAndAllowancesAsync(); diff --git a/contracts/asset-proxy/test/proxies.ts b/contracts/asset-proxy/test/proxies.ts index f6c21e7699..aba9e08071 100644 --- a/contracts/asset-proxy/test/proxies.ts +++ b/contracts/asset-proxy/test/proxies.ts @@ -101,6 +101,7 @@ describe('Asset Transfer Proxies', () => { artifacts.MultiAssetProxy, provider, txDefaults, + artifacts, ); // Configure ERC20Proxy @@ -173,6 +174,7 @@ describe('Asset Transfer Proxies', () => { erc20Artifacts.DummyNoReturnERC20Token, provider, txDefaults, + artifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, constants.DUMMY_TOKEN_DECIMALS, @@ -182,6 +184,7 @@ describe('Asset Transfer Proxies', () => { erc20Artifacts.DummyMultipleReturnERC20Token, provider, txDefaults, + artifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, constants.DUMMY_TOKEN_DECIMALS, @@ -224,6 +227,7 @@ describe('Asset Transfer Proxies', () => { erc721Artifacts.DummyERC721Receiver, provider, txDefaults, + artifacts, ); await erc721Wrapper.setBalancesAndAllowancesAsync(); diff --git a/contracts/asset-proxy/test/static_call_proxy.ts b/contracts/asset-proxy/test/static_call_proxy.ts index 36f38785a2..a1cf95a4d3 100644 --- a/contracts/asset-proxy/test/static_call_proxy.ts +++ b/contracts/asset-proxy/test/static_call_proxy.ts @@ -41,12 +41,14 @@ describe('StaticCallProxy', () => { artifacts.StaticCallProxy, provider, txDefaults, + artifacts, ); staticCallProxy = new IAssetProxyContract(staticCallProxyWithoutTransferFrom.address, provider, txDefaults); staticCallTarget = await TestStaticCallTargetContract.deployFrom0xArtifactAsync( artifacts.TestStaticCallTarget, provider, txDefaults, + artifacts, ); }); beforeEach(async () => { diff --git a/contracts/asset-proxy/test/utils/erc1155_proxy_wrapper.ts b/contracts/asset-proxy/test/utils/erc1155_proxy_wrapper.ts index 294fbada5b..d770027f5c 100644 --- a/contracts/asset-proxy/test/utils/erc1155_proxy_wrapper.ts +++ b/contracts/asset-proxy/test/utils/erc1155_proxy_wrapper.ts @@ -54,6 +54,7 @@ export class ERC1155ProxyWrapper { erc1155Artifacts.ERC1155Mintable, this._provider, txDefaults, + artifacts, ); const erc1155Wrapper = new Erc1155Wrapper(erc1155Contract, this._provider, this._contractOwnerAddress); this._dummyTokenWrappers.push(erc1155Wrapper); @@ -69,6 +70,7 @@ export class ERC1155ProxyWrapper { artifacts.ERC1155Proxy, this._provider, txDefaults, + artifacts, ); this._proxyIdIfExists = await this._proxyContract.getProxyId.callAsync(); return this._proxyContract; diff --git a/contracts/asset-proxy/test/utils/erc20_wrapper.ts b/contracts/asset-proxy/test/utils/erc20_wrapper.ts index 2bb1702222..8fdd210b24 100644 --- a/contracts/asset-proxy/test/utils/erc20_wrapper.ts +++ b/contracts/asset-proxy/test/utils/erc20_wrapper.ts @@ -37,6 +37,7 @@ export class ERC20Wrapper { erc20Artifacts.DummyERC20Token, this._provider, txDefaults, + artifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, decimals, @@ -51,6 +52,7 @@ export class ERC20Wrapper { artifacts.ERC20Proxy, this._provider, txDefaults, + artifacts, ); this._proxyIdIfExists = await this._proxyContract.getProxyId.callAsync(); return this._proxyContract; diff --git a/contracts/asset-proxy/test/utils/erc721_wrapper.ts b/contracts/asset-proxy/test/utils/erc721_wrapper.ts index b52d54d7d7..4f34db29d3 100644 --- a/contracts/asset-proxy/test/utils/erc721_wrapper.ts +++ b/contracts/asset-proxy/test/utils/erc721_wrapper.ts @@ -29,6 +29,7 @@ export class ERC721Wrapper { erc721Artifacts.DummyERC721Token, this._provider, txDefaults, + artifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, ), @@ -41,6 +42,7 @@ export class ERC721Wrapper { artifacts.ERC721Proxy, this._provider, txDefaults, + artifacts, ); this._proxyIdIfExists = await this._proxyContract.getProxyId.callAsync(); return this._proxyContract; diff --git a/contracts/coordinator/test/coordinator.ts b/contracts/coordinator/test/coordinator.ts index 912d48d922..a76fa574f5 100644 --- a/contracts/coordinator/test/coordinator.ts +++ b/contracts/coordinator/test/coordinator.ts @@ -74,6 +74,7 @@ describe('Coordinator tests', () => { exchangeArtifacts.Exchange, provider, txDefaults, + artifacts, assetDataUtils.encodeERC20AssetData(zrxToken.address), ); @@ -91,6 +92,7 @@ describe('Coordinator tests', () => { artifacts.Coordinator, provider, txDefaults, + artifacts, exchange.address, ); diff --git a/contracts/coordinator/test/libs.ts b/contracts/coordinator/test/libs.ts index 8c08f0ec59..df1dbbf8c3 100644 --- a/contracts/coordinator/test/libs.ts +++ b/contracts/coordinator/test/libs.ts @@ -25,6 +25,7 @@ describe('Libs tests', () => { artifacts.Coordinator, provider, txDefaults, + artifacts, exchangeAddress, ); }); diff --git a/contracts/coordinator/test/mixins.ts b/contracts/coordinator/test/mixins.ts index a500333048..9ccf2d28f8 100644 --- a/contracts/coordinator/test/mixins.ts +++ b/contracts/coordinator/test/mixins.ts @@ -44,6 +44,7 @@ describe('Mixins tests', () => { artifacts.Coordinator, provider, txDefaults, + artifacts, exchangeAddress, ); const accounts = await web3Wrapper.getAvailableAddressesAsync(); diff --git a/contracts/coordinator/test/utils/coordinator_registry_wrapper.ts b/contracts/coordinator/test/utils/coordinator_registry_wrapper.ts index 3c80714225..3d7a2999ef 100644 --- a/contracts/coordinator/test/utils/coordinator_registry_wrapper.ts +++ b/contracts/coordinator/test/utils/coordinator_registry_wrapper.ts @@ -24,6 +24,7 @@ export class CoordinatorRegistryWrapper { artifacts.CoordinatorRegistry, this._provider, txDefaults, + artifacts, ); if (this._coordinatorRegistryContract === undefined) { throw new Error(`Failed to deploy Coordinator Registry contract.`); diff --git a/contracts/dev-utils/test/lib_asset_data.ts b/contracts/dev-utils/test/lib_asset_data.ts index 0276fb5f75..7c7d0deb6f 100644 --- a/contracts/dev-utils/test/lib_asset_data.ts +++ b/contracts/dev-utils/test/lib_asset_data.ts @@ -92,6 +92,7 @@ describe('LibAssetData', () => { exchangeArtifacts.Exchange, provider, txDefaults, + artifacts, constants.NULL_BYTES, ); @@ -99,26 +100,31 @@ describe('LibAssetData', () => { proxyArtifacts.ERC20Proxy, provider, txDefaults, + artifacts, ); erc721Proxy = await ERC721ProxyContract.deployFrom0xArtifactAsync( proxyArtifacts.ERC721Proxy, provider, txDefaults, + artifacts, ); erc1155Proxy = await ERC1155ProxyContract.deployFrom0xArtifactAsync( proxyArtifacts.ERC1155Proxy, provider, txDefaults, + artifacts, ); multiAssetProxy = await MultiAssetProxyContract.deployFrom0xArtifactAsync( proxyArtifacts.MultiAssetProxy, provider, txDefaults, + artifacts, ); staticCallProxy = await StaticCallProxyContract.deployFrom0xArtifactAsync( proxyArtifacts.StaticCallProxy, provider, txDefaults, + artifacts, ); await exchange.registerAssetProxy.awaitTransactionSuccessAsync(erc20Proxy.address); @@ -131,6 +137,7 @@ describe('LibAssetData', () => { artifacts.LibAssetData, provider, txDefaults, + artifacts, exchange.address, ); @@ -138,6 +145,7 @@ describe('LibAssetData', () => { proxyArtifacts.TestStaticCallTarget, provider, txDefaults, + artifacts, ); [tokenOwnerAddress] = await web3Wrapper.getAvailableAddressesAsync(); @@ -146,6 +154,7 @@ describe('LibAssetData', () => { erc20Artifacts.DummyERC20Token, provider, txDefaults, + artifacts, 'Dummy', 'DUM', new BigNumber(1), @@ -156,6 +165,7 @@ describe('LibAssetData', () => { erc721Artifacts.DummyERC721Token, provider, txDefaults, + artifacts, 'Dummy', 'DUM', ); @@ -172,6 +182,7 @@ describe('LibAssetData', () => { erc1155Artifacts.ERC1155Mintable, provider, txDefaults, + artifacts, ); const logDecoder = new LogDecoder(web3Wrapper, erc1155Artifacts); diff --git a/contracts/dev-utils/test/lib_transaction_decoder.ts b/contracts/dev-utils/test/lib_transaction_decoder.ts index 3719574aa3..9cde98881a 100644 --- a/contracts/dev-utils/test/lib_transaction_decoder.ts +++ b/contracts/dev-utils/test/lib_transaction_decoder.ts @@ -37,6 +37,7 @@ describe('LibTransactionDecoder', () => { artifacts.LibTransactionDecoder, provider, txDefaults, + artifacts, ); }); after(async () => { diff --git a/contracts/dev-utils/test/order_validation_utils.ts b/contracts/dev-utils/test/order_validation_utils.ts index d03cefc18e..28ac3196a0 100644 --- a/contracts/dev-utils/test/order_validation_utils.ts +++ b/contracts/dev-utils/test/order_validation_utils.ts @@ -83,6 +83,7 @@ describe('OrderValidationUtils', () => { exchangeArtifacts.Exchange, provider, txDefaults, + artifacts, zrxAssetData, ); @@ -90,6 +91,7 @@ describe('OrderValidationUtils', () => { proxyArtifacts.MultiAssetProxy, provider, txDefaults, + artifacts, ); const exchangeWrapper = new ExchangeWrapper(exchange, provider); await exchangeWrapper.registerAssetProxyAsync(erc20Proxy.address, owner); @@ -102,6 +104,7 @@ describe('OrderValidationUtils', () => { artifacts.DevUtils, provider, txDefaults, + artifacts, exchange.address, zrxAssetData, ); diff --git a/contracts/erc1155/test/erc1155_token.ts b/contracts/erc1155/test/erc1155_token.ts index d948c6c86c..858eb17548 100644 --- a/contracts/erc1155/test/erc1155_token.ts +++ b/contracts/erc1155/test/erc1155_token.ts @@ -60,11 +60,13 @@ describe('ERC1155Token', () => { artifacts.ERC1155Mintable, provider, txDefaults, + artifacts, ); erc1155Receiver = await DummyERC1155ReceiverContract.deployFrom0xArtifactAsync( artifacts.DummyERC1155Receiver, provider, txDefaults, + artifacts, ); receiver = erc1155Receiver.address; // create wrapper & mint erc1155 tokens diff --git a/contracts/erc20/test/unlimited_allowance_token.ts b/contracts/erc20/test/unlimited_allowance_token.ts index f0b8e53a46..b9d4bd4296 100644 --- a/contracts/erc20/test/unlimited_allowance_token.ts +++ b/contracts/erc20/test/unlimited_allowance_token.ts @@ -37,6 +37,7 @@ describe('UnlimitedAllowanceToken', () => { artifacts.DummyERC20Token, provider, txDefaults, + artifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, constants.DUMMY_TOKEN_DECIMALS, diff --git a/contracts/erc20/test/weth9.ts b/contracts/erc20/test/weth9.ts index 6a3948e2c3..1fc73e5294 100644 --- a/contracts/erc20/test/weth9.ts +++ b/contracts/erc20/test/weth9.ts @@ -33,10 +33,15 @@ describe('EtherToken', () => { const accounts = await web3Wrapper.getAvailableAddressesAsync(); account = accounts[0]; - etherToken = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, { - gasPrice, - ...txDefaults, - }); + etherToken = await WETH9Contract.deployFrom0xArtifactAsync( + artifacts.WETH9, + provider, + { + gasPrice, + ...txDefaults, + }, + artifacts, + ); }); beforeEach(async () => { await blockchainLifecycle.startAsync(); diff --git a/contracts/erc20/test/zrx_token.ts b/contracts/erc20/test/zrx_token.ts index 820b054e6b..a148fc0d85 100644 --- a/contracts/erc20/test/zrx_token.ts +++ b/contracts/erc20/test/zrx_token.ts @@ -26,7 +26,12 @@ describe('ZRXToken', () => { const accounts = await web3Wrapper.getAvailableAddressesAsync(); owner = accounts[0]; spender = accounts[1]; - zrxToken = await ZRXTokenContract.deployFrom0xArtifactAsync(artifacts.ZRXToken, provider, txDefaults); + zrxToken = await ZRXTokenContract.deployFrom0xArtifactAsync( + artifacts.ZRXToken, + provider, + txDefaults, + artifacts, + ); MAX_UINT = constants.UNLIMITED_ALLOWANCE_IN_BASE_UNITS; }); beforeEach(async () => { diff --git a/contracts/erc721/test/erc721_token.ts b/contracts/erc721/test/erc721_token.ts index 13332cd35c..b3c0ba4141 100644 --- a/contracts/erc721/test/erc721_token.ts +++ b/contracts/erc721/test/erc721_token.ts @@ -48,6 +48,7 @@ describe('ERC721Token', () => { artifacts.DummyERC721Token, provider, txDefaults, + artifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, ); @@ -55,6 +56,7 @@ describe('ERC721Token', () => { artifacts.DummyERC721Receiver, provider, txDefaults, + artifacts, ); logDecoder = new LogDecoder(web3Wrapper, artifacts); await web3Wrapper.awaitTransactionSuccessAsync( @@ -176,6 +178,7 @@ describe('ERC721Token', () => { artifacts.DummyERC721Token, provider, txDefaults, + artifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, ); @@ -190,6 +193,7 @@ describe('ERC721Token', () => { artifacts.InvalidERC721Receiver, provider, txDefaults, + artifacts, ); const from = owner; const to = invalidErc721Receiver.address; @@ -237,6 +241,7 @@ describe('ERC721Token', () => { artifacts.DummyERC721Token, provider, txDefaults, + artifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, ); @@ -251,6 +256,7 @@ describe('ERC721Token', () => { artifacts.InvalidERC721Receiver, provider, txDefaults, + artifacts, ); const from = owner; const to = invalidErc721Receiver.address; diff --git a/contracts/exchange-forwarder/test/forwarder.ts b/contracts/exchange-forwarder/test/forwarder.ts index 1c518c141b..7f418c0770 100644 --- a/contracts/exchange-forwarder/test/forwarder.ts +++ b/contracts/exchange-forwarder/test/forwarder.ts @@ -32,6 +32,7 @@ const DECIMALS_DEFAULT = 18; const MAX_WETH_FILL_PERCENTAGE = 95; describe(ContractName.Forwarder, () => { + const dependencyArtifacts = { ...artifacts, ...erc20Artifacts, ...exchangeArtifacts }; let makerAddress: string; let owner: string; let takerAddress: string; @@ -88,7 +89,12 @@ describe(ContractName.Forwarder, () => { const erc721Balances = await erc721Wrapper.getBalancesAsync(); erc721MakerAssetIds = erc721Balances[makerAddress][erc721Token.address]; - wethContract = await WETH9Contract.deployFrom0xArtifactAsync(erc20Artifacts.WETH9, provider, txDefaults); + wethContract = await WETH9Contract.deployFrom0xArtifactAsync( + erc20Artifacts.WETH9, + provider, + txDefaults, + dependencyArtifacts, + ); weth = new DummyERC20TokenContract(wethContract.address, provider); erc20Wrapper.addDummyTokenContract(weth); @@ -98,6 +104,7 @@ describe(ContractName.Forwarder, () => { exchangeArtifacts.Exchange, provider, txDefaults, + dependencyArtifacts, zrxAssetData, ); exchangeWrapper = new ExchangeWrapper(exchangeInstance, provider); @@ -131,6 +138,7 @@ describe(ContractName.Forwarder, () => { artifacts.Forwarder, provider, txDefaults, + dependencyArtifacts, exchangeInstance.address, zrxAssetData, wethAssetData, @@ -169,6 +177,7 @@ describe(ContractName.Forwarder, () => { exchangeArtifacts.Exchange, provider, txDefaults, + dependencyArtifacts, zrxAssetData, ); return expectContractCreationFailedAsync( @@ -176,6 +185,7 @@ describe(ContractName.Forwarder, () => { artifacts.Forwarder, provider, txDefaults, + dependencyArtifacts, exchangeInstance.address, zrxAssetData, wethAssetData, diff --git a/contracts/exchange-libs/test/exchange_libs.ts b/contracts/exchange-libs/test/exchange_libs.ts index b613231895..5716b32f56 100644 --- a/contracts/exchange-libs/test/exchange_libs.ts +++ b/contracts/exchange-libs/test/exchange_libs.ts @@ -35,7 +35,7 @@ describe('Exchange libs', () => { before(async () => { const accounts = await web3Wrapper.getAvailableAddressesAsync(); const makerAddress = accounts[0]; - libs = await TestLibsContract.deployFrom0xArtifactAsync(artifacts.TestLibs, provider, txDefaults); + libs = await TestLibsContract.deployFrom0xArtifactAsync(artifacts.TestLibs, provider, txDefaults, artifacts); const defaultOrderParams = { ...constants.STATIC_ORDER_PARAMS, diff --git a/contracts/exchange/test/core.ts b/contracts/exchange/test/core.ts index c617db9e39..f34af68f7b 100644 --- a/contracts/exchange/test/core.ts +++ b/contracts/exchange/test/core.ts @@ -119,11 +119,13 @@ describe('Exchange core', () => { proxyArtifacts.MultiAssetProxy, provider, txDefaults, + dependencyArtifacts, ); staticCallProxy = await StaticCallProxyContract.deployFrom0xArtifactAsync( proxyArtifacts.StaticCallProxy, provider, txDefaults, + dependencyArtifacts, ); const numDummyErc20ToDeploy = 3; [erc20TokenA, erc20TokenB, zrxToken] = await erc20Wrapper.deployDummyTokensAsync( @@ -354,6 +356,7 @@ describe('Exchange core', () => { erc20Artifacts.DummyNoReturnERC20Token, provider, txDefaults, + dependencyArtifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, constants.DUMMY_TOKEN_DECIMALS, @@ -384,7 +387,7 @@ describe('Exchange core', () => { const initialTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress); const initialFeeRecipientZrxBalance = await zrxToken.balanceOf.callAsync(feeRecipientAddress); - const txReceipt = await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress); + await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress); const finalMakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(makerAddress); const finalMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress); @@ -1479,6 +1482,7 @@ describe('Exchange core', () => { proxyArtifacts.TestStaticCallTarget, provider, txDefaults, + dependencyArtifacts, ); }); it('should revert if the staticcall is unsuccessful', async () => { diff --git a/contracts/exchange/test/dispatcher.ts b/contracts/exchange/test/dispatcher.ts index 08b1aa55a3..18192b7e8c 100644 --- a/contracts/exchange/test/dispatcher.ts +++ b/contracts/exchange/test/dispatcher.ts @@ -137,6 +137,7 @@ describe('AssetProxyDispatcher', () => { proxyArtifacts.ERC20Proxy, provider, txDefaults, + dependencyArtifacts, ); // Register new ERC20 Transfer Proxy contract return expectTransactionFailedAsync( diff --git a/contracts/exchange/test/utils/dependency_artifacts.ts b/contracts/exchange/test/utils/dependency_artifacts.ts index 047e7c8eff..3e0eb253da 100644 --- a/contracts/exchange/test/utils/dependency_artifacts.ts +++ b/contracts/exchange/test/utils/dependency_artifacts.ts @@ -6,4 +6,4 @@ export const dependencyArtifacts = { ...erc20Artifacts, ...erc721Artifacts, ...erc1155Artifacts, -}; \ No newline at end of file +}; diff --git a/contracts/exchange/test/utils/exchange_wrapper.ts b/contracts/exchange/test/utils/exchange_wrapper.ts index f9bd120320..97005606b5 100644 --- a/contracts/exchange/test/utils/exchange_wrapper.ts +++ b/contracts/exchange/test/utils/exchange_wrapper.ts @@ -1,25 +1,17 @@ -import { artifacts as erc1155Artifacts } from '@0x/contracts-erc1155'; -import { artifacts as erc20Artifacts } from '@0x/contracts-erc20'; -import { artifacts as erc721Artifacts } from '@0x/contracts-erc721'; -import { - FillResults, - formatters, - OrderInfo, - orderUtils, - Web3ProviderEngine, -} from '@0x/contracts-test-utils'; +import { FillResults, formatters, OrderInfo, orderUtils, Web3ProviderEngine } from '@0x/contracts-test-utils'; import { SignedOrder, SignedZeroExTransaction } from '@0x/types'; import { AbiEncoder, BigNumber } from '@0x/utils'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { MethodAbi, TransactionReceiptWithDecodedLogs, ZeroExProvider } from 'ethereum-types'; import * as _ from 'lodash'; -import { artifacts, ExchangeContract } from '../../src'; +import { ExchangeContract } from '../../src'; import { AbiDecodedFillOrderData } from './types'; export class ExchangeWrapper { private readonly _exchange: ExchangeContract; + // tslint:disable no-unused-variable private readonly _web3Wrapper: Web3Wrapper; constructor(exchangeContract: ExchangeContract, provider: Web3ProviderEngine | ZeroExProvider) { this._exchange = exchangeContract; @@ -186,7 +178,9 @@ export class ExchangeWrapper { assetProxyAddress: string, from: string, ): Promise { - const txReceipt = await this._exchange.registerAssetProxy.awaitTransactionSuccessAsync(assetProxyAddress, { from }); + const txReceipt = await this._exchange.registerAssetProxy.awaitTransactionSuccessAsync(assetProxyAddress, { + from, + }); return txReceipt; } public async executeTransactionAsync( diff --git a/contracts/exchange/test/utils/fill_order_combinatorial_utils.ts b/contracts/exchange/test/utils/fill_order_combinatorial_utils.ts index a42511ad3a..85b411a179 100644 --- a/contracts/exchange/test/utils/fill_order_combinatorial_utils.ts +++ b/contracts/exchange/test/utils/fill_order_combinatorial_utils.ts @@ -137,6 +137,7 @@ export async function fillOrderCombinatorialUtilsFactoryAsync( libsArtifacts.TestLibs, provider, txDefaults, + dependencyArtifacts, ); const fillOrderCombinatorialUtils = new FillOrderCombinatorialUtils( diff --git a/contracts/extensions/test/balance_threshold_filter.ts b/contracts/extensions/test/balance_threshold_filter.ts index 530eefd51b..f364a6d2d0 100644 --- a/contracts/extensions/test/balance_threshold_filter.ts +++ b/contracts/extensions/test/balance_threshold_filter.ts @@ -130,6 +130,7 @@ describe(ContractName.BalanceThresholdFilter, () => { artifacts.Exchange, provider, txDefaults, + artifacts, zrxAssetData, ); exchangeWrapper = new ExchangeWrapper(exchangeInstance, provider); @@ -148,6 +149,7 @@ describe(ContractName.BalanceThresholdFilter, () => { artifacts.BalanceThresholdFilter, provider, txDefaults, + artifacts, exchangeInstance.address, erc721BalanceThresholdAsset.address, erc721alanceThreshold, @@ -157,6 +159,7 @@ describe(ContractName.BalanceThresholdFilter, () => { artifacts.BalanceThresholdFilter, provider, txDefaults, + artifacts, exchangeInstance.address, erc20BalanceThresholdAsset.address, erc20BalanceThreshold, diff --git a/contracts/extensions/test/dutch_auction.ts b/contracts/extensions/test/dutch_auction.ts index 639f61999d..01c8e4a25a 100644 --- a/contracts/extensions/test/dutch_auction.ts +++ b/contracts/extensions/test/dutch_auction.ts @@ -82,7 +82,7 @@ describe(ContractName.DutchAuction, () => { const erc721Balances = await erc721Wrapper.getBalancesAsync(); erc721MakerAssetIds = erc721Balances[makerAddress][erc721Token.address]; - wethContract = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults); + wethContract = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults, artifacts); erc20Wrapper.addDummyTokenContract(wethContract as any); const zrxAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address); @@ -90,6 +90,7 @@ describe(ContractName.DutchAuction, () => { artifacts.Exchange, provider, txDefaults, + artifacts, zrxAssetData, ); const exchangeWrapper = new ExchangeWrapper(exchangeInstance, provider); @@ -107,6 +108,7 @@ describe(ContractName.DutchAuction, () => { artifacts.DutchAuction, provider, txDefaults, + artifacts, exchangeInstance.address, ); dutchAuctionContract = new DutchAuctionContract(dutchAuctionInstance.address, provider); diff --git a/contracts/extensions/test/order_matcher.ts b/contracts/extensions/test/order_matcher.ts index 99ec0d06d9..6c6c368c07 100644 --- a/contracts/extensions/test/order_matcher.ts +++ b/contracts/extensions/test/order_matcher.ts @@ -103,12 +103,14 @@ describe('OrderMatcher', () => { proxyArtifacts.ERC721Proxy, provider, txDefaults, + artifacts, ); // Depoy exchange exchange = await ExchangeContract.deployFrom0xArtifactAsync( artifacts.Exchange, provider, txDefaults, + artifacts, assetDataUtils.encodeERC20AssetData(zrxToken.address), ); exchangeWrapper = new ExchangeWrapper(exchange, provider); @@ -126,6 +128,7 @@ describe('OrderMatcher', () => { artifacts.OrderMatcher, provider, txDefaults, + artifacts, exchange.address, ); // Set default addresses @@ -198,6 +201,7 @@ describe('OrderMatcher', () => { artifacts.Exchange, provider, txDefaults, + artifacts, constants.NULL_BYTES, ); return expectContractCreationFailedAsync( @@ -205,6 +209,7 @@ describe('OrderMatcher', () => { artifacts.OrderMatcher, provider, txDefaults, + artifacts, exchangeInstance.address, ) as any) as sendTransactionResult, RevertReason.UnregisteredAssetProxy, @@ -727,6 +732,7 @@ describe('OrderMatcher', () => { erc721Artifacts.DummyERC721Token, provider, txDefaults, + artifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, ); @@ -772,6 +778,7 @@ describe('OrderMatcher', () => { erc721Artifacts.DummyERC721Token, provider, txDefaults, + artifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, ); @@ -789,6 +796,7 @@ describe('OrderMatcher', () => { erc721Artifacts.DummyERC721Token, provider, txDefaults, + artifacts, constants.DUMMY_TOKEN_NAME, constants.DUMMY_TOKEN_SYMBOL, ); diff --git a/contracts/multisig/test/asset_proxy_owner.ts b/contracts/multisig/test/asset_proxy_owner.ts index 62081554be..ff9f6b5c50 100644 --- a/contracts/multisig/test/asset_proxy_owner.ts +++ b/contracts/multisig/test/asset_proxy_owner.ts @@ -61,17 +61,20 @@ describe('AssetProxyOwner', () => { proxyArtifacts.MixinAuthorizable, provider, txDefaults, + artifacts, ); erc721Proxy = await MixinAuthorizableContract.deployFrom0xArtifactAsync( proxyArtifacts.MixinAuthorizable, provider, txDefaults, + artifacts, ); const defaultAssetProxyContractAddresses: string[] = []; testAssetProxyOwner = await TestAssetProxyOwnerContract.deployFrom0xArtifactAsync( artifacts.TestAssetProxyOwner, provider, txDefaults, + artifacts, owners, defaultAssetProxyContractAddresses, REQUIRED_APPROVALS, @@ -105,6 +108,7 @@ describe('AssetProxyOwner', () => { artifacts.AssetProxyOwner, provider, txDefaults, + artifacts, owners, assetProxyContractAddresses, REQUIRED_APPROVALS, @@ -122,6 +126,7 @@ describe('AssetProxyOwner', () => { artifacts.AssetProxyOwner, provider, txDefaults, + artifacts, owners, assetProxyContractAddresses, REQUIRED_APPROVALS, diff --git a/contracts/multisig/test/multi_sig_with_time_lock.ts b/contracts/multisig/test/multi_sig_with_time_lock.ts index 9596271514..6208f23a53 100644 --- a/contracts/multisig/test/multi_sig_with_time_lock.ts +++ b/contracts/multisig/test/multi_sig_with_time_lock.ts @@ -66,6 +66,7 @@ describe('MultiSigWalletWithTimeLock', () => { artifacts.MultiSigWalletWithTimeLock, provider, txDefaults, + artifacts, owners, REQUIRED_APPROVALS, secondsTimeLocked, @@ -81,6 +82,7 @@ describe('MultiSigWalletWithTimeLock', () => { artifacts.MultiSigWalletWithTimeLock, provider, txDefaults, + artifacts, owners, REQUIRED_APPROVALS, secondsTimeLocked, @@ -135,6 +137,7 @@ describe('MultiSigWalletWithTimeLock', () => { artifacts.MultiSigWalletWithTimeLock, provider, txDefaults, + artifacts, owners, REQUIRED_APPROVALS, secondsTimeLocked, @@ -198,6 +201,7 @@ describe('MultiSigWalletWithTimeLock', () => { artifacts.TestRejectEther, provider, txDefaults, + artifacts, ); const data = constants.NULL_BYTES; const value = new BigNumber(10); @@ -234,6 +238,7 @@ describe('MultiSigWalletWithTimeLock', () => { artifacts.MultiSigWalletWithTimeLock, provider, txDefaults, + artifacts, owners, REQUIRED_APPROVALS, secondsTimeLocked, @@ -308,6 +313,7 @@ describe('MultiSigWalletWithTimeLock', () => { artifacts.MultiSigWalletWithTimeLock, provider, txDefaults, + artifacts, owners, REQUIRED_APPROVALS, SECONDS_TIME_LOCKED, diff --git a/contracts/utils/test/lib_address_array.ts b/contracts/utils/test/lib_address_array.ts index bb0d441a5c..4b96262a63 100644 --- a/contracts/utils/test/lib_address_array.ts +++ b/contracts/utils/test/lib_address_array.ts @@ -28,6 +28,7 @@ describe('LibAddressArray', () => { artifacts.TestLibAddressArray, provider, txDefaults, + artifacts, ); }); after(async () => { diff --git a/contracts/utils/test/lib_bytes.ts b/contracts/utils/test/lib_bytes.ts index cedcb9d80a..69aa650803 100644 --- a/contracts/utils/test/lib_bytes.ts +++ b/contracts/utils/test/lib_bytes.ts @@ -68,7 +68,12 @@ describe('LibBytes', () => { testAddress = accounts[1]; testAddressB = accounts[2]; // Deploy LibBytes - libBytes = await TestLibBytesContract.deployFrom0xArtifactAsync(artifacts.TestLibBytes, provider, txDefaults); + libBytes = await TestLibBytesContract.deployFrom0xArtifactAsync( + artifacts.TestLibBytes, + provider, + txDefaults, + artifacts, + ); // Verify lengths of test data const byteArrayShorterThan32BytesLength = ethUtil.toBuffer(byteArrayShorterThan32Bytes).byteLength; expect(byteArrayShorterThan32BytesLength).to.be.lessThan(32); diff --git a/contracts/utils/test/libs.ts b/contracts/utils/test/libs.ts index 77dc6e2ba5..6d50ca8fac 100644 --- a/contracts/utils/test/libs.ts +++ b/contracts/utils/test/libs.ts @@ -24,6 +24,7 @@ describe('Libs', () => { artifacts.TestConstants, provider, txDefaults, + artifacts, ); const isValid = await testConstants.assertValidZrxAssetData.callAsync(); expect(isValid).to.be.equal(true); 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 index 45f96008b2..98f51c02d7 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,6 +26,7 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable export type AssetProxyOwnerEventArgs = @@ -113,6 +111,7 @@ export interface AssetProxyOwnerRequirementChangeEventArgs extends DecodedLogArg required: BigNumber; } + /* istanbul ignore next */ // tslint:disable:no-parameter-reassignment // tslint:disable-next-line:class-name @@ -122,7 +121,8 @@ export class AssetProxyOwnerContract extends BaseContract { index_0: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -132,8 +132,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('owners(uint256)', [index_0]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('owners(uint256)', [index_0 + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -142,45 +143,54 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('owners(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: BigNumber): string { + getABIEncodedTransactionData( + index_0: BigNumber, + ): string { assert.isBigNumber('index_0', index_0); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('owners(uint256)', [index_0]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('owners(uint256)', [index_0 + ]); return abiEncodedTransactionData; }, }; public removeOwner = { - async sendTransactionAsync(owner: string, txData?: Partial | undefined): Promise { - assert.isString('owner', owner); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('removeOwner(address)', [owner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.removeOwner.estimateGasAsync.bind(self, owner.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + owner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('owner', owner); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('removeOwner(address)', [owner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.removeOwner.estimateGasAsync.bind( + self, + owner.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( owner: string, @@ -188,41 +198,51 @@ export class AssetProxyOwnerContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('owner', owner); - const self = (this as any) as AssetProxyOwnerContract; - const txHashPromise = self.removeOwner.sendTransactionAsync(owner.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('owner', owner); + const self = this as any as AssetProxyOwnerContract; + const txHashPromise = self.removeOwner.sendTransactionAsync(owner.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(owner: string, txData?: Partial | undefined): Promise { - assert.isString('owner', owner); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('removeOwner(address)', [owner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + owner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('owner', owner); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('removeOwner(address)', [owner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(owner: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + owner: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('owner', owner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -232,8 +252,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('removeOwner(address)', [owner.toLowerCase()]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('removeOwner(address)', [owner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -242,47 +263,54 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('removeOwner(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(owner: string): string { + getABIEncodedTransactionData( + owner: string, + ): string { assert.isString('owner', owner); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('removeOwner(address)', [ - owner.toLowerCase(), - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('removeOwner(address)', [owner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public revokeConfirmation = { - async sendTransactionAsync(transactionId: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.revokeConfirmation.estimateGasAsync.bind(self, transactionId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + transactionId: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.revokeConfirmation.estimateGasAsync.bind( + self, + transactionId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( transactionId: BigNumber, @@ -290,45 +318,51 @@ export class AssetProxyOwnerContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const txHashPromise = self.revokeConfirmation.sendTransactionAsync(transactionId, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const txHashPromise = self.revokeConfirmation.sendTransactionAsync(transactionId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(transactionId: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + transactionId: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( transactionId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('transactionId', transactionId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -338,8 +372,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -348,24 +383,24 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('revokeConfirmation(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(transactionId: BigNumber): string { + getABIEncodedTransactionData( + transactionId: BigNumber, + ): string { assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('revokeConfirmation(uint256)', [ - transactionId, - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId + ]); return abiEncodedTransactionData; }, }; @@ -374,7 +409,8 @@ export class AssetProxyOwnerContract extends BaseContract { index_0: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -384,8 +420,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('isOwner(address)', [index_0.toLowerCase()]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('isOwner(address)', [index_0.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -394,22 +431,24 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('isOwner(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string): string { + getABIEncodedTransactionData( + index_0: string, + ): string { assert.isString('index_0', index_0); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('isOwner(address)', [index_0.toLowerCase()]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('isOwner(address)', [index_0.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -419,7 +458,8 @@ export class AssetProxyOwnerContract extends BaseContract { index_1: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('index_0', index_0); assert.isString('index_1', index_1); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -430,11 +470,10 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('confirmations(uint256,address)', [ - index_0, - index_1.toLowerCase(), - ]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('confirmations(uint256,address)', [index_0, + index_1.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -443,51 +482,57 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('confirmations(uint256,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: BigNumber, index_1: string): string { + getABIEncodedTransactionData( + index_0: BigNumber, + index_1: string, + ): string { assert.isBigNumber('index_0', index_0); assert.isString('index_1', index_1); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('confirmations(uint256,address)', [ - index_0, - index_1.toLowerCase(), - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('confirmations(uint256,address)', [index_0, + index_1.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public executeRemoveAuthorizedAddressAtIndex = { - async sendTransactionAsync(transactionId: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [ - transactionId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.executeRemoveAuthorizedAddressAtIndex.estimateGasAsync.bind(self, transactionId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + transactionId: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.executeRemoveAuthorizedAddressAtIndex.estimateGasAsync.bind( + self, + transactionId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( transactionId: BigNumber, @@ -495,50 +540,51 @@ export class AssetProxyOwnerContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const txHashPromise = self.executeRemoveAuthorizedAddressAtIndex.sendTransactionAsync( - transactionId, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const txHashPromise = self.executeRemoveAuthorizedAddressAtIndex.sendTransactionAsync(transactionId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(transactionId: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [ - transactionId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + transactionId: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( transactionId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('transactionId', transactionId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -548,10 +594,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [ - transactionId, - ]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -560,30 +605,33 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('executeRemoveAuthorizedAddressAtIndex(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(transactionId: BigNumber): string { + getABIEncodedTransactionData( + transactionId: BigNumber, + ): string { assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'executeRemoveAuthorizedAddressAtIndex(uint256)', - [transactionId], - ); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId + ]); return abiEncodedTransactionData; }, }; public secondsTimeLocked = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -592,7 +640,7 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; + const self = this as any as AssetProxyOwnerContract; const encodedData = self._strictEncodeArguments('secondsTimeLocked()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -602,20 +650,20 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('secondsTimeLocked()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as AssetProxyOwnerContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as AssetProxyOwnerContract; const abiEncodedTransactionData = self._strictEncodeArguments('secondsTimeLocked()', []); return abiEncodedTransactionData; }, @@ -626,7 +674,8 @@ export class AssetProxyOwnerContract extends BaseContract { executed: boolean, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBoolean('pending', pending); assert.isBoolean('executed', executed); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -637,8 +686,10 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('getTransactionCount(bool,bool)', [pending, executed]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('getTransactionCount(bool,bool)', [pending, + executed + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -647,26 +698,27 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getTransactionCount(bool,bool)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(pending: boolean, executed: boolean): string { + getABIEncodedTransactionData( + pending: boolean, + executed: boolean, + ): string { assert.isBoolean('pending', pending); assert.isBoolean('executed', executed); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getTransactionCount(bool,bool)', [ - pending, - executed, - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getTransactionCount(bool,bool)', [pending, + executed + ]); return abiEncodedTransactionData; }, }; @@ -674,30 +726,33 @@ export class AssetProxyOwnerContract extends BaseContract { async sendTransactionAsync( assetProxyContract: string, isRegistered: boolean, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('assetProxyContract', assetProxyContract); - assert.isBoolean('isRegistered', isRegistered); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [ + assert.isString('assetProxyContract', assetProxyContract); + assert.isBoolean('isRegistered', isRegistered); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract.toLowerCase(), + isRegistered + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.registerAssetProxy.estimateGasAsync.bind( + self, assetProxyContract.toLowerCase(), - isRegistered, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.registerAssetProxy.estimateGasAsync.bind(self, assetProxyContract.toLowerCase(), isRegistered), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + isRegistered + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( assetProxyContract: string, @@ -706,59 +761,57 @@ export class AssetProxyOwnerContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('assetProxyContract', assetProxyContract); - assert.isBoolean('isRegistered', isRegistered); - const self = (this as any) as AssetProxyOwnerContract; - const txHashPromise = self.registerAssetProxy.sendTransactionAsync( - assetProxyContract.toLowerCase(), - isRegistered, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('assetProxyContract', assetProxyContract); + assert.isBoolean('isRegistered', isRegistered); + const self = this as any as AssetProxyOwnerContract; + const txHashPromise = self.registerAssetProxy.sendTransactionAsync(assetProxyContract.toLowerCase(), + isRegistered + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( assetProxyContract: string, isRegistered: boolean, txData?: Partial | undefined, ): Promise { - assert.isString('assetProxyContract', assetProxyContract); - assert.isBoolean('isRegistered', isRegistered); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [ - assetProxyContract.toLowerCase(), - isRegistered, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('assetProxyContract', assetProxyContract); + assert.isBoolean('isRegistered', isRegistered); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract.toLowerCase(), + isRegistered + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( assetProxyContract: string, isRegistered: boolean, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('assetProxyContract', assetProxyContract); assert.isBoolean('isRegistered', isRegistered); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -769,11 +822,10 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [ - assetProxyContract.toLowerCase(), - isRegistered, - ]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract.toLowerCase(), + isRegistered + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -782,49 +834,57 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('registerAssetProxy(address,bool)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(assetProxyContract: string, isRegistered: boolean): string { + getABIEncodedTransactionData( + assetProxyContract: string, + isRegistered: boolean, + ): string { assert.isString('assetProxyContract', assetProxyContract); assert.isBoolean('isRegistered', isRegistered); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [ - assetProxyContract.toLowerCase(), - isRegistered, - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract.toLowerCase(), + isRegistered + ]); return abiEncodedTransactionData; }, }; public addOwner = { - async sendTransactionAsync(owner: string, txData?: Partial | undefined): Promise { - assert.isString('owner', owner); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('addOwner(address)', [owner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.addOwner.estimateGasAsync.bind(self, owner.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + owner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('owner', owner); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('addOwner(address)', [owner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.addOwner.estimateGasAsync.bind( + self, + owner.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( owner: string, @@ -832,41 +892,51 @@ export class AssetProxyOwnerContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('owner', owner); - const self = (this as any) as AssetProxyOwnerContract; - const txHashPromise = self.addOwner.sendTransactionAsync(owner.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('owner', owner); + const self = this as any as AssetProxyOwnerContract; + const txHashPromise = self.addOwner.sendTransactionAsync(owner.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(owner: string, txData?: Partial | undefined): Promise { - assert.isString('owner', owner); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('addOwner(address)', [owner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + owner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('owner', owner); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('addOwner(address)', [owner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(owner: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + owner: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('owner', owner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -876,8 +946,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('addOwner(address)', [owner.toLowerCase()]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('addOwner(address)', [owner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -886,22 +957,24 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('addOwner(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(owner: string): string { + getABIEncodedTransactionData( + owner: string, + ): string { assert.isString('owner', owner); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('addOwner(address)', [owner.toLowerCase()]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('addOwner(address)', [owner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -910,7 +983,8 @@ export class AssetProxyOwnerContract extends BaseContract { transactionId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('transactionId', transactionId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -920,8 +994,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('isConfirmed(uint256)', [transactionId]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('isConfirmed(uint256)', [transactionId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -930,48 +1005,54 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('isConfirmed(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(transactionId: BigNumber): string { + getABIEncodedTransactionData( + transactionId: BigNumber, + ): string { assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('isConfirmed(uint256)', [transactionId]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('isConfirmed(uint256)', [transactionId + ]); return abiEncodedTransactionData; }, }; public changeTimeLock = { async sendTransactionAsync( _secondsTimeLocked: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isBigNumber('_secondsTimeLocked', _secondsTimeLocked); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.changeTimeLock.estimateGasAsync.bind(self, _secondsTimeLocked), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isBigNumber('_secondsTimeLocked', _secondsTimeLocked); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.changeTimeLock.estimateGasAsync.bind( + self, + _secondsTimeLocked + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _secondsTimeLocked: BigNumber, @@ -979,45 +1060,51 @@ export class AssetProxyOwnerContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('_secondsTimeLocked', _secondsTimeLocked); - const self = (this as any) as AssetProxyOwnerContract; - const txHashPromise = self.changeTimeLock.sendTransactionAsync(_secondsTimeLocked, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isBigNumber('_secondsTimeLocked', _secondsTimeLocked); + const self = this as any as AssetProxyOwnerContract; + const txHashPromise = self.changeTimeLock.sendTransactionAsync(_secondsTimeLocked + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(_secondsTimeLocked: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('_secondsTimeLocked', _secondsTimeLocked); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + _secondsTimeLocked: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('_secondsTimeLocked', _secondsTimeLocked); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _secondsTimeLocked: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('_secondsTimeLocked', _secondsTimeLocked); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1027,8 +1114,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1037,24 +1125,24 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('changeTimeLock(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_secondsTimeLocked: BigNumber): string { + getABIEncodedTransactionData( + _secondsTimeLocked: BigNumber, + ): string { assert.isBigNumber('_secondsTimeLocked', _secondsTimeLocked); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('changeTimeLock(uint256)', [ - _secondsTimeLocked, - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked + ]); return abiEncodedTransactionData; }, }; @@ -1063,7 +1151,8 @@ export class AssetProxyOwnerContract extends BaseContract { index_0: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1073,8 +1162,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('isAssetProxyRegistered(address)', [index_0.toLowerCase()]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('isAssetProxyRegistered(address)', [index_0.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1083,24 +1173,24 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('isAssetProxyRegistered(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string): string { + getABIEncodedTransactionData( + index_0: string, + ): string { assert.isString('index_0', index_0); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('isAssetProxyRegistered(address)', [ - index_0.toLowerCase(), - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('isAssetProxyRegistered(address)', [index_0.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -1109,7 +1199,8 @@ export class AssetProxyOwnerContract extends BaseContract { transactionId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('transactionId', transactionId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1119,8 +1210,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('getConfirmationCount(uint256)', [transactionId]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('getConfirmationCount(uint256)', [transactionId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1129,24 +1221,24 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getConfirmationCount(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(transactionId: BigNumber): string { + getABIEncodedTransactionData( + transactionId: BigNumber, + ): string { assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getConfirmationCount(uint256)', [ - transactionId, - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getConfirmationCount(uint256)', [transactionId + ]); return abiEncodedTransactionData; }, }; @@ -1155,7 +1247,8 @@ export class AssetProxyOwnerContract extends BaseContract { index_0: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise<[string, BigNumber, string, boolean]> { + ): Promise<[string, BigNumber, string, boolean] + > { assert.isBigNumber('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1165,8 +1258,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('transactions(uint256)', [index_0]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('transactions(uint256)', [index_0 + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1175,27 +1269,33 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transactions(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, BigNumber, string, boolean]>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<[string, BigNumber, string, boolean] + >(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: BigNumber): string { + getABIEncodedTransactionData( + index_0: BigNumber, + ): string { assert.isBigNumber('index_0', index_0); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transactions(uint256)', [index_0]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transactions(uint256)', [index_0 + ]); return abiEncodedTransactionData; }, }; public getOwners = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -1204,7 +1304,7 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; + const self = this as any as AssetProxyOwnerContract; const encodedData = self._strictEncodeArguments('getOwners()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -1214,20 +1314,20 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getOwners()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as AssetProxyOwnerContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as AssetProxyOwnerContract; const abiEncodedTransactionData = self._strictEncodeArguments('getOwners()', []); return abiEncodedTransactionData; }, @@ -1240,7 +1340,8 @@ export class AssetProxyOwnerContract extends BaseContract { executed: boolean, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('from', from); assert.isBigNumber('to', to); assert.isBoolean('pending', pending); @@ -1253,13 +1354,12 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('getTransactionIds(uint256,uint256,bool,bool)', [ - from, - to, - pending, - executed, - ]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('getTransactionIds(uint256,uint256,bool,bool)', [from, + to, + pending, + executed + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1268,28 +1368,33 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getTransactionIds(uint256,uint256,bool,bool)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(from: BigNumber, to: BigNumber, pending: boolean, executed: boolean): string { + getABIEncodedTransactionData( + from: BigNumber, + to: BigNumber, + pending: boolean, + executed: boolean, + ): string { assert.isBigNumber('from', from); assert.isBigNumber('to', to); assert.isBoolean('pending', pending); assert.isBoolean('executed', executed); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getTransactionIds(uint256,uint256,bool,bool)', - [from, to, pending, executed], - ); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getTransactionIds(uint256,uint256,bool,bool)', [from, + to, + pending, + executed + ]); return abiEncodedTransactionData; }, }; @@ -1298,7 +1403,8 @@ export class AssetProxyOwnerContract extends BaseContract { transactionId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('transactionId', transactionId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1308,8 +1414,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('getConfirmations(uint256)', [transactionId]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('getConfirmations(uint256)', [transactionId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1318,27 +1425,33 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getConfirmations(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(transactionId: BigNumber): string { + getABIEncodedTransactionData( + transactionId: BigNumber, + ): string { assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getConfirmations(uint256)', [transactionId]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getConfirmations(uint256)', [transactionId + ]); return abiEncodedTransactionData; }, }; public transactionCount = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -1347,7 +1460,7 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; + const self = this as any as AssetProxyOwnerContract; const encodedData = self._strictEncodeArguments('transactionCount()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -1357,44 +1470,51 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transactionCount()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as AssetProxyOwnerContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as AssetProxyOwnerContract; const abiEncodedTransactionData = self._strictEncodeArguments('transactionCount()', []); return abiEncodedTransactionData; }, }; public changeRequirement = { - async sendTransactionAsync(_required: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('_required', _required); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.changeRequirement.estimateGasAsync.bind(self, _required), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + _required: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('_required', _required); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.changeRequirement.estimateGasAsync.bind( + self, + _required + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _required: BigNumber, @@ -1402,45 +1522,51 @@ export class AssetProxyOwnerContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('_required', _required); - const self = (this as any) as AssetProxyOwnerContract; - const txHashPromise = self.changeRequirement.sendTransactionAsync(_required, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isBigNumber('_required', _required); + const self = this as any as AssetProxyOwnerContract; + const txHashPromise = self.changeRequirement.sendTransactionAsync(_required + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(_required: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('_required', _required); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + _required: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('_required', _required); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _required: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('_required', _required); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1450,8 +1576,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1460,45 +1587,54 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('changeRequirement(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_required: BigNumber): string { + getABIEncodedTransactionData( + _required: BigNumber, + ): string { assert.isBigNumber('_required', _required); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('changeRequirement(uint256)', [_required]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('changeRequirement(uint256)', [_required + ]); return abiEncodedTransactionData; }, }; public confirmTransaction = { - async sendTransactionAsync(transactionId: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.confirmTransaction.estimateGasAsync.bind(self, transactionId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + transactionId: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.confirmTransaction.estimateGasAsync.bind( + self, + transactionId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( transactionId: BigNumber, @@ -1506,45 +1642,51 @@ export class AssetProxyOwnerContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const txHashPromise = self.confirmTransaction.sendTransactionAsync(transactionId, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const txHashPromise = self.confirmTransaction.sendTransactionAsync(transactionId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(transactionId: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + transactionId: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( transactionId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('transactionId', transactionId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1554,8 +1696,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1564,24 +1707,24 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('confirmTransaction(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(transactionId: BigNumber): string { + getABIEncodedTransactionData( + transactionId: BigNumber, + ): string { assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('confirmTransaction(uint256)', [ - transactionId, - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId + ]); return abiEncodedTransactionData; }, }; @@ -1590,32 +1733,36 @@ export class AssetProxyOwnerContract extends BaseContract { destination: string, value: BigNumber, data: string, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('destination', destination); - assert.isBigNumber('value', value); - assert.isString('data', data); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [ + assert.isString('destination', destination); + assert.isBigNumber('value', value); + assert.isString('data', data); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination.toLowerCase(), + value, + data + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.submitTransaction.estimateGasAsync.bind( + self, destination.toLowerCase(), value, - data, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.submitTransaction.estimateGasAsync.bind(self, destination.toLowerCase(), value, data), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + data + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( destination: string, @@ -1625,27 +1772,25 @@ export class AssetProxyOwnerContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('destination', destination); - assert.isBigNumber('value', value); - assert.isString('data', data); - const self = (this as any) as AssetProxyOwnerContract; - const txHashPromise = self.submitTransaction.sendTransactionAsync( - destination.toLowerCase(), - value, - data, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('destination', destination); + assert.isBigNumber('value', value); + assert.isString('data', data); + const self = this as any as AssetProxyOwnerContract; + const txHashPromise = self.submitTransaction.sendTransactionAsync(destination.toLowerCase(), + value, + data + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( destination: string, @@ -1653,29 +1798,28 @@ export class AssetProxyOwnerContract extends BaseContract { data: string, txData?: Partial | undefined, ): Promise { - assert.isString('destination', destination); - assert.isBigNumber('value', value); - assert.isString('data', data); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [ - destination.toLowerCase(), - value, - data, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('destination', destination); + assert.isBigNumber('value', value); + assert.isString('data', data); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination.toLowerCase(), + value, + data + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( destination: string, @@ -1683,7 +1827,8 @@ export class AssetProxyOwnerContract extends BaseContract { data: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('destination', destination); assert.isBigNumber('value', value); assert.isString('data', data); @@ -1695,12 +1840,11 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [ - destination.toLowerCase(), - value, - data, - ]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination.toLowerCase(), + value, + data + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1709,28 +1853,30 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('submitTransaction(address,uint256,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(destination: string, value: BigNumber, data: string): string { + getABIEncodedTransactionData( + destination: string, + value: BigNumber, + data: string, + ): string { assert.isString('destination', destination); assert.isBigNumber('value', value); assert.isString('data', data); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [ - destination.toLowerCase(), - value, - data, - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination.toLowerCase(), + value, + data + ]); return abiEncodedTransactionData; }, }; @@ -1739,7 +1885,8 @@ export class AssetProxyOwnerContract extends BaseContract { index_0: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1749,8 +1896,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('confirmationTimes(uint256)', [index_0]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('confirmationTimes(uint256)', [index_0 + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1759,27 +1907,33 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('confirmationTimes(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: BigNumber): string { + getABIEncodedTransactionData( + index_0: BigNumber, + ): string { assert.isBigNumber('index_0', index_0); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('confirmationTimes(uint256)', [index_0]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('confirmationTimes(uint256)', [index_0 + ]); return abiEncodedTransactionData; }, }; public MAX_OWNER_COUNT = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -1788,7 +1942,7 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; + const self = this as any as AssetProxyOwnerContract; const encodedData = self._strictEncodeArguments('MAX_OWNER_COUNT()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -1798,26 +1952,30 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('MAX_OWNER_COUNT()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as AssetProxyOwnerContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as AssetProxyOwnerContract; const abiEncodedTransactionData = self._strictEncodeArguments('MAX_OWNER_COUNT()', []); return abiEncodedTransactionData; }, }; public required = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -1826,7 +1984,7 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; + const self = this as any as AssetProxyOwnerContract; const encodedData = self._strictEncodeArguments('required()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -1836,20 +1994,20 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('required()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as AssetProxyOwnerContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as AssetProxyOwnerContract; const abiEncodedTransactionData = self._strictEncodeArguments('required()', []); return abiEncodedTransactionData; }, @@ -1858,30 +2016,33 @@ export class AssetProxyOwnerContract extends BaseContract { async sendTransactionAsync( owner: string, newOwner: string, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('owner', owner); - assert.isString('newOwner', newOwner); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [ + assert.isString('owner', owner); + assert.isString('newOwner', newOwner); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner.toLowerCase(), + newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.replaceOwner.estimateGasAsync.bind( + self, owner.toLowerCase(), - newOwner.toLowerCase(), - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.replaceOwner.estimateGasAsync.bind(self, owner.toLowerCase(), newOwner.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + newOwner.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( owner: string, @@ -1890,55 +2051,57 @@ export class AssetProxyOwnerContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('owner', owner); - assert.isString('newOwner', newOwner); - const self = (this as any) as AssetProxyOwnerContract; - const txHashPromise = self.replaceOwner.sendTransactionAsync( - owner.toLowerCase(), - newOwner.toLowerCase(), - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('owner', owner); + assert.isString('newOwner', newOwner); + const self = this as any as AssetProxyOwnerContract; + const txHashPromise = self.replaceOwner.sendTransactionAsync(owner.toLowerCase(), + newOwner.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(owner: string, newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('owner', owner); - assert.isString('newOwner', newOwner); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [ - owner.toLowerCase(), - newOwner.toLowerCase(), - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + owner: string, + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('owner', owner); + assert.isString('newOwner', newOwner); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner.toLowerCase(), + newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( owner: string, newOwner: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('owner', owner); assert.isString('newOwner', newOwner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -1949,11 +2112,10 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [ - owner.toLowerCase(), - newOwner.toLowerCase(), - ]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner.toLowerCase(), + newOwner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1962,49 +2124,57 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('replaceOwner(address,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(owner: string, newOwner: string): string { + getABIEncodedTransactionData( + owner: string, + newOwner: string, + ): string { assert.isString('owner', owner); assert.isString('newOwner', newOwner); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('replaceOwner(address,address)', [ - owner.toLowerCase(), - newOwner.toLowerCase(), - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('replaceOwner(address,address)', [owner.toLowerCase(), + newOwner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public executeTransaction = { - async sendTransactionAsync(transactionId: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.executeTransaction.estimateGasAsync.bind(self, transactionId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + transactionId: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.executeTransaction.estimateGasAsync.bind( + self, + transactionId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( transactionId: BigNumber, @@ -2012,45 +2182,51 @@ export class AssetProxyOwnerContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const txHashPromise = self.executeTransaction.sendTransactionAsync(transactionId, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const txHashPromise = self.executeTransaction.sendTransactionAsync(transactionId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(transactionId: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + transactionId: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('transactionId', transactionId); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( transactionId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('transactionId', transactionId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -2060,8 +2236,9 @@ export class AssetProxyOwnerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as AssetProxyOwnerContract; - const encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId]); + const self = this as any as AssetProxyOwnerContract; + const encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -2070,36 +2247,37 @@ export class AssetProxyOwnerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('executeTransaction(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(transactionId: BigNumber): string { + getABIEncodedTransactionData( + transactionId: BigNumber, + ): string { assert.isBigNumber('transactionId', transactionId); - const self = (this as any) as AssetProxyOwnerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('executeTransaction(uint256)', [ - transactionId, - ]); + const self = this as any as AssetProxyOwnerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId + ]); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, - _owners: string[], - _assetProxyContracts: string[], - _required: BigNumber, - _secondsTimeLocked: BigNumber, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, + _owners: string[], + _assetProxyContracts: string[], + _required: BigNumber, + _secondsTimeLocked: BigNumber, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -2112,26 +2290,23 @@ export class AssetProxyOwnerContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return AssetProxyOwnerContract.deployAsync( - bytecode, - abi, - provider, - txDefaults, - _owners, - _assetProxyContracts, - _required, - _secondsTimeLocked, - ); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return AssetProxyOwnerContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, _owners, +_assetProxyContracts, +_required, +_secondsTimeLocked +); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, - _owners: string[], - _assetProxyContracts: string[], - _required: BigNumber, - _secondsTimeLocked: BigNumber, + abiDependencies: { [contractName: string]: ContractAbi }, + _owners: string[], + _assetProxyContracts: string[], + _required: BigNumber, + _secondsTimeLocked: BigNumber, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -2141,17 +2316,29 @@ export class AssetProxyOwnerContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [_owners, _assetProxyContracts, _required, _secondsTimeLocked] = BaseContract._formatABIDataItemList( + [_owners, +_assetProxyContracts, +_required, +_secondsTimeLocked +] = BaseContract._formatABIDataItemList( constructorAbi.inputs, - [_owners, _assetProxyContracts, _required, _secondsTimeLocked], + [_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 txData = deployInfo.encode(bytecode, [_owners, +_assetProxyContracts, +_required, +_secondsTimeLocked +]); const web3Wrapper = new Web3Wrapper(provider); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -2159,17 +2346,22 @@ export class AssetProxyOwnerContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`AssetProxyOwner successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new AssetProxyOwnerContract(txReceipt.contractAddress as string, provider, txDefaults); - contractInstance.constructorArgs = [_owners, _assetProxyContracts, _required, _secondsTimeLocked]; + const contractInstance = new AssetProxyOwnerContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); + contractInstance.constructorArgs = [_owners, +_assetProxyContracts, +_required, +_secondsTimeLocked +]; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, inputs: [ { @@ -2188,7 +2380,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -2197,12 +2389,13 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'removeOwner', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -2211,12 +2404,13 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'revokeConfirmation', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -2235,7 +2429,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -2258,7 +2452,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -2267,14 +2461,16 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'executeRemoveAuthorizedAddressAtIndex', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'secondsTimeLocked', outputs: [ { @@ -2286,7 +2482,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -2309,7 +2505,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -2322,12 +2518,13 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'registerAssetProxy', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -2336,12 +2533,13 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'addOwner', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -2360,7 +2558,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -2369,12 +2567,13 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'changeTimeLock', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -2393,7 +2592,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -2412,7 +2611,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -2443,9 +2642,10 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'getOwners', outputs: [ { @@ -2457,7 +2657,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -2488,7 +2688,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -2507,9 +2707,10 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'transactionCount', outputs: [ { @@ -2521,7 +2722,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -2530,12 +2731,13 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'changeRequirement', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -2544,12 +2746,13 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'confirmTransaction', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -2576,7 +2779,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -2595,9 +2798,10 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'MAX_OWNER_COUNT', outputs: [ { @@ -2609,9 +2813,10 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'required', outputs: [ { @@ -2623,7 +2828,7 @@ export class AssetProxyOwnerContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -2636,12 +2841,13 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'replaceOwner', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -2650,12 +2856,13 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'executeTransaction', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { inputs: [ { name: '_owners', @@ -2674,19 +2881,22 @@ export class AssetProxyOwnerContract extends BaseContract { type: 'uint256', }, ], - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'constructor', }, - { - inputs: [], - outputs: [], + { + inputs: [ + ], + outputs: [ + ], payable: true, stateMutability: 'payable', type: 'fallback', }, - { + { anonymous: false, inputs: [ { @@ -2701,10 +2911,11 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'AssetProxyRegistration', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -2719,10 +2930,11 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'ConfirmationTimeSet', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -2732,10 +2944,11 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'TimeLockChange', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -2750,10 +2963,11 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'Confirmation', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -2768,10 +2982,11 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'Revocation', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -2781,10 +2996,11 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'Submission', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -2794,10 +3010,11 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'Execution', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -2807,10 +3024,11 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'ExecutionFailure', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -2825,10 +3043,11 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'Deposit', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -2838,10 +3057,11 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'OwnerAddition', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -2851,10 +3071,11 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'OwnerRemoval', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -2864,7 +3085,8 @@ export class AssetProxyOwnerContract extends BaseContract { }, ], name: 'RequirementChange', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -2938,15 +3160,15 @@ export class AssetProxyOwnerContract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('AssetProxyOwner', AssetProxyOwnerContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('AssetProxyOwner', AssetProxyOwnerContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( AssetProxyOwnerContract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts index e75aec7ae0..e708dedb7e 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts @@ -1,7 +1,7 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { BaseContract, PromiseWithTransactionHash } from '@0x/base-contract'; +import { BaseContract,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -21,8 +21,10 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; 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 @@ -33,7 +35,8 @@ export class CoordinatorContract extends BaseContract { signature: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('hash', hash); assert.isString('signature', signature); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -44,8 +47,10 @@ export class CoordinatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as CoordinatorContract; - const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, signature]); + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, + signature + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -54,35 +59,38 @@ export class CoordinatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getSignerAddress(bytes32,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(hash: string, signature: string): string { + getABIEncodedTransactionData( + hash: string, + signature: string, + ): string { assert.isString('hash', hash); assert.isString('signature', signature); - const self = (this as any) as CoordinatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [ - hash, - signature, - ]); + const self = this as any as CoordinatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, + signature + ]); return abiEncodedTransactionData; }, }; public getTransactionHash = { async callAsync( - transaction: { salt: BigNumber; signerAddress: string; data: string }, + transaction: {salt: BigNumber;signerAddress: string;data: string}, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -91,10 +99,9 @@ export class CoordinatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as CoordinatorContract; - const encodedData = self._strictEncodeArguments('getTransactionHash((uint256,address,bytes))', [ - transaction, - ]); + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('getTransactionHash((uint256,address,bytes))', [transaction + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -103,38 +110,35 @@ export class CoordinatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getTransactionHash((uint256,address,bytes))'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(transaction: { salt: BigNumber; signerAddress: string; data: string }): string { - const self = (this as any) as CoordinatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getTransactionHash((uint256,address,bytes))', - [transaction], - ); + getABIEncodedTransactionData( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + ): string { + + const self = this as any as CoordinatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getTransactionHash((uint256,address,bytes))', [transaction + ]); return abiEncodedTransactionData; }, }; public getCoordinatorApprovalHash = { async callAsync( - approval: { - txOrigin: string; - transactionHash: string; - transactionSignature: string; - approvalExpirationTimeSeconds: BigNumber; - }, + approval: {txOrigin: string;transactionHash: string;transactionSignature: string;approvalExpirationTimeSeconds: BigNumber}, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -143,11 +147,9 @@ export class CoordinatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as CoordinatorContract; - const encodedData = self._strictEncodeArguments( - 'getCoordinatorApprovalHash((address,bytes32,bytes,uint256))', - [approval], - ); + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('getCoordinatorApprovalHash((address,bytes32,bytes,uint256))', [approval + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -156,81 +158,73 @@ export class CoordinatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getCoordinatorApprovalHash((address,bytes32,bytes,uint256))'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(approval: { - txOrigin: string; - transactionHash: string; - transactionSignature: string; - approvalExpirationTimeSeconds: BigNumber; - }): string { - const self = (this as any) as CoordinatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getCoordinatorApprovalHash((address,bytes32,bytes,uint256))', - [approval], - ); + getABIEncodedTransactionData( + approval: {txOrigin: string;transactionHash: string;transactionSignature: string;approvalExpirationTimeSeconds: BigNumber}, + ): string { + + const self = this as any as CoordinatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getCoordinatorApprovalHash((address,bytes32,bytes,uint256))', [approval + ]); return abiEncodedTransactionData; }, }; public executeTransaction = { async sendTransactionAsync( - transaction: { salt: BigNumber; signerAddress: string; data: string }, + transaction: {salt: BigNumber;signerAddress: string;data: string}, txOrigin: string, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('txOrigin', txOrigin); - assert.isString('transactionSignature', transactionSignature); - assert.isArray('approvalExpirationTimeSeconds', approvalExpirationTimeSeconds); - assert.isArray('approvalSignatures', approvalSignatures); - const self = (this as any) as CoordinatorContract; - const encodedData = self._strictEncodeArguments( - 'executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', - [ - transaction, - txOrigin.toLowerCase(), - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures, - ], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.executeTransaction.estimateGasAsync.bind( - self, - transaction, - txOrigin.toLowerCase(), - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures, - ), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + + assert.isString('txOrigin', txOrigin); + assert.isString('transactionSignature', transactionSignature); + assert.isArray('approvalExpirationTimeSeconds', approvalExpirationTimeSeconds); + assert.isArray('approvalSignatures', approvalSignatures); + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', [transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.executeTransaction.estimateGasAsync.bind( + self, + transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - transaction: { salt: BigNumber; signerAddress: string; data: string }, + transaction: {salt: BigNumber;signerAddress: string;data: string}, txOrigin: string, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], @@ -239,78 +233,76 @@ export class CoordinatorContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('txOrigin', txOrigin); - assert.isString('transactionSignature', transactionSignature); - assert.isArray('approvalExpirationTimeSeconds', approvalExpirationTimeSeconds); - assert.isArray('approvalSignatures', approvalSignatures); - const self = (this as any) as CoordinatorContract; - const txHashPromise = self.executeTransaction.sendTransactionAsync( - transaction, - txOrigin.toLowerCase(), - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + + assert.isString('txOrigin', txOrigin); + assert.isString('transactionSignature', transactionSignature); + assert.isArray('approvalExpirationTimeSeconds', approvalExpirationTimeSeconds); + assert.isArray('approvalSignatures', approvalSignatures); + const self = this as any as CoordinatorContract; + const txHashPromise = self.executeTransaction.sendTransactionAsync(transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( - transaction: { salt: BigNumber; signerAddress: string; data: string }, + transaction: {salt: BigNumber;signerAddress: string;data: string}, txOrigin: string, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], txData?: Partial | undefined, ): Promise { - assert.isString('txOrigin', txOrigin); - assert.isString('transactionSignature', transactionSignature); - assert.isArray('approvalExpirationTimeSeconds', approvalExpirationTimeSeconds); - assert.isArray('approvalSignatures', approvalSignatures); - const self = (this as any) as CoordinatorContract; - const encodedData = self._strictEncodeArguments( - 'executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', - [ - transaction, - txOrigin.toLowerCase(), - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures, - ], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + + assert.isString('txOrigin', txOrigin); + assert.isString('transactionSignature', transactionSignature); + assert.isArray('approvalExpirationTimeSeconds', approvalExpirationTimeSeconds); + assert.isArray('approvalSignatures', approvalSignatures); + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', [transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( - transaction: { salt: BigNumber; signerAddress: string; data: string }, + transaction: {salt: BigNumber;signerAddress: string;data: string}, txOrigin: string, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { + assert.isString('txOrigin', txOrigin); assert.isString('transactionSignature', transactionSignature); assert.isArray('approvalExpirationTimeSeconds', approvalExpirationTimeSeconds); @@ -323,17 +315,13 @@ export class CoordinatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as CoordinatorContract; - const encodedData = self._strictEncodeArguments( - 'executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', - [ - transaction, - txOrigin.toLowerCase(), - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures, - ], - ); + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', [transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -342,47 +330,45 @@ export class CoordinatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', - ); + const abiEncoder = self._lookupAbiEncoder('executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, getABIEncodedTransactionData( - transaction: { salt: BigNumber; signerAddress: string; data: string }, - txOrigin: string, - transactionSignature: string, - approvalExpirationTimeSeconds: BigNumber[], - approvalSignatures: string[], - ): string { + transaction: {salt: BigNumber;signerAddress: string;data: string}, + txOrigin: string, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + ): string { + assert.isString('txOrigin', txOrigin); assert.isString('transactionSignature', transactionSignature); assert.isArray('approvalExpirationTimeSeconds', approvalExpirationTimeSeconds); assert.isArray('approvalSignatures', approvalSignatures); - const self = (this as any) as CoordinatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', - [ - transaction, - txOrigin.toLowerCase(), - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures, - ], - ); + const self = this as any as CoordinatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', [transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); return abiEncodedTransactionData; }, }; public EIP712_EXCHANGE_DOMAIN_HASH = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -391,7 +377,7 @@ export class CoordinatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as CoordinatorContract; + const self = this as any as CoordinatorContract; const encodedData = self._strictEncodeArguments('EIP712_EXCHANGE_DOMAIN_HASH()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -401,34 +387,36 @@ export class CoordinatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('EIP712_EXCHANGE_DOMAIN_HASH()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as CoordinatorContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as CoordinatorContract; const abiEncodedTransactionData = self._strictEncodeArguments('EIP712_EXCHANGE_DOMAIN_HASH()', []); return abiEncodedTransactionData; }, }; public assertValidCoordinatorApprovals = { async callAsync( - transaction: { salt: BigNumber; signerAddress: string; data: string }, + transaction: {salt: BigNumber;signerAddress: string;data: string}, txOrigin: string, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { + assert.isString('txOrigin', txOrigin); assert.isString('transactionSignature', transactionSignature); assert.isArray('approvalExpirationTimeSeconds', approvalExpirationTimeSeconds); @@ -441,17 +429,13 @@ export class CoordinatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as CoordinatorContract; - const encodedData = self._strictEncodeArguments( - 'assertValidCoordinatorApprovals((uint256,address,bytes),address,bytes,uint256[],bytes[])', - [ - transaction, - txOrigin.toLowerCase(), - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures, - ], - ); + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('assertValidCoordinatorApprovals((uint256,address,bytes),address,bytes,uint256[],bytes[])', [transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -460,42 +444,36 @@ export class CoordinatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'assertValidCoordinatorApprovals((uint256,address,bytes),address,bytes,uint256[],bytes[])', - ); + const abiEncoder = self._lookupAbiEncoder('assertValidCoordinatorApprovals((uint256,address,bytes),address,bytes,uint256[],bytes[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, getABIEncodedTransactionData( - transaction: { salt: BigNumber; signerAddress: string; data: string }, - txOrigin: string, - transactionSignature: string, - approvalExpirationTimeSeconds: BigNumber[], - approvalSignatures: string[], - ): string { + transaction: {salt: BigNumber;signerAddress: string;data: string}, + txOrigin: string, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + ): string { + assert.isString('txOrigin', txOrigin); assert.isString('transactionSignature', transactionSignature); assert.isArray('approvalExpirationTimeSeconds', approvalExpirationTimeSeconds); assert.isArray('approvalSignatures', approvalSignatures); - const self = (this as any) as CoordinatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'assertValidCoordinatorApprovals((uint256,address,bytes),address,bytes,uint256[],bytes[])', - [ - transaction, - txOrigin.toLowerCase(), - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures, - ], - ); + const self = this as any as CoordinatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('assertValidCoordinatorApprovals((uint256,address,bytes),address,bytes,uint256[],bytes[])', [transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); return abiEncodedTransactionData; }, }; @@ -504,21 +482,7 @@ export class CoordinatorContract extends BaseContract { data: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise< - 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; - }> + ): Promise > { assert.isString('data', data); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -529,8 +493,9 @@ export class CoordinatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as CoordinatorContract; - const encodedData = self._strictEncodeArguments('decodeOrdersFromFillData(bytes)', [data]); + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('decodeOrdersFromFillData(bytes)', [data + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -539,42 +504,33 @@ export class CoordinatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('decodeOrdersFromFillData(bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< - 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; - }> - >(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue + >(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(data: string): string { + getABIEncodedTransactionData( + data: string, + ): string { assert.isString('data', data); - const self = (this as any) as CoordinatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments('decodeOrdersFromFillData(bytes)', [data]); + const self = this as any as CoordinatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('decodeOrdersFromFillData(bytes)', [data + ]); return abiEncodedTransactionData; }, }; public EIP712_COORDINATOR_DOMAIN_HASH = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -583,7 +539,7 @@ export class CoordinatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as CoordinatorContract; + const self = this as any as CoordinatorContract; const encodedData = self._strictEncodeArguments('EIP712_COORDINATOR_DOMAIN_HASH()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -593,29 +549,30 @@ export class CoordinatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('EIP712_COORDINATOR_DOMAIN_HASH()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as CoordinatorContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as CoordinatorContract; const abiEncodedTransactionData = self._strictEncodeArguments('EIP712_COORDINATOR_DOMAIN_HASH()', []); return abiEncodedTransactionData; }, }; - public static async deployFrom0xArtifactAsync( +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, - _exchange: string, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, + _exchange: string, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -628,14 +585,17 @@ export class CoordinatorContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return CoordinatorContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return CoordinatorContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, _exchange +); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, - _exchange: string, + abiDependencies: { [contractName: string]: ContractAbi }, + _exchange: string, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -645,17 +605,20 @@ export class CoordinatorContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [_exchange] = BaseContract._formatABIDataItemList( + [_exchange +] = BaseContract._formatABIDataItemList( constructorAbi.inputs, - [_exchange], + [_exchange +], BaseContract._bigNumberToString, ); const iface = new ethers.utils.Interface(abi); const deployInfo = iface.deployFunction; - const txData = deployInfo.encode(bytecode, [_exchange]); + const txData = deployInfo.encode(bytecode, [_exchange +]); const web3Wrapper = new Web3Wrapper(provider); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -663,17 +626,19 @@ export class CoordinatorContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`Coordinator successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new CoordinatorContract(txReceipt.contractAddress as string, provider, txDefaults); - contractInstance.constructorArgs = [_exchange]; + const contractInstance = new CoordinatorContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); + contractInstance.constructorArgs = [_exchange +]; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, inputs: [ { @@ -696,7 +661,7 @@ export class CoordinatorContract extends BaseContract { stateMutability: 'pure', type: 'function', }, - { + { constant: true, inputs: [ { @@ -715,7 +680,7 @@ export class CoordinatorContract extends BaseContract { name: 'data', type: 'bytes', }, - ], + ] }, ], name: 'getTransactionHash', @@ -729,7 +694,7 @@ export class CoordinatorContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -752,7 +717,7 @@ export class CoordinatorContract extends BaseContract { name: 'approvalExpirationTimeSeconds', type: 'uint256', }, - ], + ] }, ], name: 'getCoordinatorApprovalHash', @@ -766,7 +731,7 @@ export class CoordinatorContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -785,7 +750,7 @@ export class CoordinatorContract extends BaseContract { name: 'data', type: 'bytes', }, - ], + ] }, { name: 'txOrigin', @@ -805,14 +770,16 @@ export class CoordinatorContract extends BaseContract { }, ], name: 'executeTransaction', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'EIP712_EXCHANGE_DOMAIN_HASH', outputs: [ { @@ -824,7 +791,7 @@ export class CoordinatorContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -843,7 +810,7 @@ export class CoordinatorContract extends BaseContract { name: 'data', type: 'bytes', }, - ], + ] }, { name: 'txOrigin', @@ -863,12 +830,13 @@ export class CoordinatorContract extends BaseContract { }, ], name: 'assertValidCoordinatorApprovals', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -930,16 +898,17 @@ export class CoordinatorContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, ], payable: false, stateMutability: 'pure', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'EIP712_COORDINATOR_DOMAIN_HASH', outputs: [ { @@ -951,14 +920,15 @@ export class CoordinatorContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { inputs: [ { name: '_exchange', type: 'address', }, ], - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'constructor', @@ -966,11 +936,11 @@ export class CoordinatorContract extends BaseContract { ] as ContractAbi; return abi; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('Coordinator', CoordinatorContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('Coordinator', CoordinatorContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts index 427ea64aed..1783c8969d 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,9 +26,11 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable -export type CoordinatorRegistryEventArgs = CoordinatorRegistryCoordinatorEndpointSetEventArgs; +export type CoordinatorRegistryEventArgs = + | CoordinatorRegistryCoordinatorEndpointSetEventArgs; export enum CoordinatorRegistryEvents { CoordinatorEndpointSet = 'CoordinatorEndpointSet', @@ -42,30 +41,38 @@ export interface CoordinatorRegistryCoordinatorEndpointSetEventArgs extends Deco coordinatorEndpoint: string; } + /* istanbul ignore next */ // tslint:disable:no-parameter-reassignment // tslint:disable-next-line:class-name export class CoordinatorRegistryContract extends BaseContract { public setCoordinatorEndpoint = { - async sendTransactionAsync(coordinatorEndpoint: string, txData?: Partial | undefined): Promise { - assert.isString('coordinatorEndpoint', coordinatorEndpoint); - const self = (this as any) as CoordinatorRegistryContract; - const encodedData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [coordinatorEndpoint]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.setCoordinatorEndpoint.estimateGasAsync.bind(self, coordinatorEndpoint), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + coordinatorEndpoint: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('coordinatorEndpoint', coordinatorEndpoint); + const self = this as any as CoordinatorRegistryContract; + const encodedData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [coordinatorEndpoint + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.setCoordinatorEndpoint.estimateGasAsync.bind( + self, + coordinatorEndpoint + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( coordinatorEndpoint: string, @@ -73,45 +80,51 @@ export class CoordinatorRegistryContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('coordinatorEndpoint', coordinatorEndpoint); - const self = (this as any) as CoordinatorRegistryContract; - const txHashPromise = self.setCoordinatorEndpoint.sendTransactionAsync(coordinatorEndpoint, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('coordinatorEndpoint', coordinatorEndpoint); + const self = this as any as CoordinatorRegistryContract; + const txHashPromise = self.setCoordinatorEndpoint.sendTransactionAsync(coordinatorEndpoint + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(coordinatorEndpoint: string, txData?: Partial | undefined): Promise { - assert.isString('coordinatorEndpoint', coordinatorEndpoint); - const self = (this as any) as CoordinatorRegistryContract; - const encodedData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [coordinatorEndpoint]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + coordinatorEndpoint: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('coordinatorEndpoint', coordinatorEndpoint); + const self = this as any as CoordinatorRegistryContract; + const encodedData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [coordinatorEndpoint + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( coordinatorEndpoint: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('coordinatorEndpoint', coordinatorEndpoint); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -121,8 +134,9 @@ export class CoordinatorRegistryContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as CoordinatorRegistryContract; - const encodedData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [coordinatorEndpoint]); + const self = this as any as CoordinatorRegistryContract; + const encodedData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [coordinatorEndpoint + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -131,24 +145,24 @@ export class CoordinatorRegistryContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('setCoordinatorEndpoint(string)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(coordinatorEndpoint: string): string { + getABIEncodedTransactionData( + coordinatorEndpoint: string, + ): string { assert.isString('coordinatorEndpoint', coordinatorEndpoint); - const self = (this as any) as CoordinatorRegistryContract; - const abiEncodedTransactionData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [ - coordinatorEndpoint, - ]); + const self = this as any as CoordinatorRegistryContract; + const abiEncodedTransactionData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [coordinatorEndpoint + ]); return abiEncodedTransactionData; }, }; @@ -157,7 +171,8 @@ export class CoordinatorRegistryContract extends BaseContract { coordinatorOperator: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('coordinatorOperator', coordinatorOperator); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -167,10 +182,9 @@ export class CoordinatorRegistryContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as CoordinatorRegistryContract; - const encodedData = self._strictEncodeArguments('getCoordinatorEndpoint(address)', [ - coordinatorOperator.toLowerCase(), - ]); + const self = this as any as CoordinatorRegistryContract; + const encodedData = self._strictEncodeArguments('getCoordinatorEndpoint(address)', [coordinatorOperator.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -179,32 +193,33 @@ export class CoordinatorRegistryContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getCoordinatorEndpoint(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(coordinatorOperator: string): string { + getABIEncodedTransactionData( + coordinatorOperator: string, + ): string { assert.isString('coordinatorOperator', coordinatorOperator); - const self = (this as any) as CoordinatorRegistryContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getCoordinatorEndpoint(address)', [ - coordinatorOperator.toLowerCase(), - ]); + const self = this as any as CoordinatorRegistryContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getCoordinatorEndpoint(address)', [coordinatorOperator.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -217,13 +232,15 @@ export class CoordinatorRegistryContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return CoordinatorRegistryContract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return CoordinatorRegistryContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -233,13 +250,17 @@ export class CoordinatorRegistryContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -247,21 +268,18 @@ export class CoordinatorRegistryContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`CoordinatorRegistry successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new CoordinatorRegistryContract( - txReceipt.contractAddress as string, - provider, - txDefaults, - ); + const contractInstance = new CoordinatorRegistryContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: false, inputs: [ { @@ -270,12 +288,13 @@ export class CoordinatorRegistryContract extends BaseContract { }, ], name: 'setCoordinatorEndpoint', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -294,14 +313,16 @@ export class CoordinatorRegistryContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { - inputs: [], - outputs: [], + { + inputs: [ + ], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'constructor', }, - { + { anonymous: false, inputs: [ { @@ -316,7 +337,8 @@ export class CoordinatorRegistryContract extends BaseContract { }, ], name: 'CoordinatorEndpointSet', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -390,15 +412,15 @@ export class CoordinatorRegistryContract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('CoordinatorRegistry', CoordinatorRegistryContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('CoordinatorRegistry', CoordinatorRegistryContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( CoordinatorRegistryContract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align 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 index 7d32562817..e46d11a383 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,9 +26,12 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable -export type DummyERC20TokenEventArgs = DummyERC20TokenTransferEventArgs | DummyERC20TokenApprovalEventArgs; +export type DummyERC20TokenEventArgs = + | DummyERC20TokenTransferEventArgs + | DummyERC20TokenApprovalEventArgs; export enum DummyERC20TokenEvents { Transfer = 'Transfer', @@ -50,12 +50,17 @@ export interface DummyERC20TokenApprovalEventArgs extends DecodedLogArgs { _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 = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -64,7 +69,7 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; + const self = this as any as DummyERC20TokenContract; const encodedData = self._strictEncodeArguments('name()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -74,20 +79,20 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('name()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as DummyERC20TokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as DummyERC20TokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('name()', []); return abiEncodedTransactionData; }, @@ -96,30 +101,33 @@ export class DummyERC20TokenContract extends BaseContract { async sendTransactionAsync( _spender: string, _value: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_spender', _spender); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ + assert.isString('_spender', _spender); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.approve.estimateGasAsync.bind( + self, _spender.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.approve.estimateGasAsync.bind(self, _spender.toLowerCase(), _value), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _value + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _spender: string, @@ -128,55 +136,57 @@ export class DummyERC20TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_spender', _spender); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const txHashPromise = self.approve.sendTransactionAsync(_spender.toLowerCase(), _value, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_spender', _spender); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const txHashPromise = self.approve.sendTransactionAsync(_spender.toLowerCase(), + _value + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _spender: string, _value: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_spender', _spender); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_spender', _spender); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _spender: string, _value: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_spender', _spender); assert.isBigNumber('_value', _value); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -187,11 +197,10 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -200,31 +209,36 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('approve(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_spender: string, _value: BigNumber): string { + getABIEncodedTransactionData( + _spender: string, + _value: BigNumber, + ): string { assert.isString('_spender', _spender); assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); + const self = this as any as DummyERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); return abiEncodedTransactionData; }, }; public totalSupply = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -233,7 +247,7 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; + const self = this as any as DummyERC20TokenContract; const encodedData = self._strictEncodeArguments('totalSupply()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -243,20 +257,20 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('totalSupply()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as DummyERC20TokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as DummyERC20TokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('totalSupply()', []); return abiEncodedTransactionData; }, @@ -266,32 +280,36 @@ export class DummyERC20TokenContract extends BaseContract { _from: string, _to: string, _value: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferFrom.estimateGasAsync.bind( + self, _from.toLowerCase(), _to.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferFrom.estimateGasAsync.bind(self, _from.toLowerCase(), _to.toLowerCase(), _value), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _value + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _from: string, @@ -301,27 +319,25 @@ export class DummyERC20TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const txHashPromise = self.transferFrom.sendTransactionAsync( - _from.toLowerCase(), - _to.toLowerCase(), - _value, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const txHashPromise = self.transferFrom.sendTransactionAsync(_from.toLowerCase(), + _to.toLowerCase(), + _value + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _from: string, @@ -329,29 +345,28 @@ export class DummyERC20TokenContract extends BaseContract { _value: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _from: string, @@ -359,7 +374,8 @@ export class DummyERC20TokenContract extends BaseContract { _value: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_value', _value); @@ -371,12 +387,11 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _value, - ]); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -385,33 +400,39 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string { + getABIEncodedTransactionData( + _from: string, + _to: string, + _value: BigNumber, + ): string { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _value, - ]); + const self = this as any as DummyERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); return abiEncodedTransactionData; }, }; public decimals = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -420,7 +441,7 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; + const self = this as any as DummyERC20TokenContract; const encodedData = self._strictEncodeArguments('decimals()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -430,20 +451,20 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('decimals()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as DummyERC20TokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as DummyERC20TokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('decimals()', []); return abiEncodedTransactionData; }, @@ -453,7 +474,8 @@ export class DummyERC20TokenContract extends BaseContract { _owner: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_owner', _owner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -463,8 +485,9 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -473,27 +496,33 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('balanceOf(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_owner: string): string { + getABIEncodedTransactionData( + _owner: string, + ): string { assert.isString('_owner', _owner); - const self = (this as any) as DummyERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); + const self = this as any as DummyERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public owner = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -502,7 +531,7 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; + const self = this as any as DummyERC20TokenContract; const encodedData = self._strictEncodeArguments('owner()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -512,26 +541,30 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('owner()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as DummyERC20TokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as DummyERC20TokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); return abiEncodedTransactionData; }, }; public symbol = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -540,7 +573,7 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; + const self = this as any as DummyERC20TokenContract; const encodedData = self._strictEncodeArguments('symbol()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -550,44 +583,51 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('symbol()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as DummyERC20TokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as DummyERC20TokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('symbol()', []); return abiEncodedTransactionData; }, }; public mint = { - async sendTransactionAsync(_value: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('mint(uint256)', [_value]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.mint.estimateGasAsync.bind(self, _value), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + _value: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('mint(uint256)', [_value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.mint.estimateGasAsync.bind( + self, + _value + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _value: BigNumber, @@ -595,41 +635,51 @@ export class DummyERC20TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const txHashPromise = self.mint.sendTransactionAsync(_value, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const txHashPromise = self.mint.sendTransactionAsync(_value + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(_value: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('mint(uint256)', [_value]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + _value: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('mint(uint256)', [_value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(_value: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + _value: BigNumber, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isBigNumber('_value', _value); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -639,8 +689,9 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('mint(uint256)', [_value]); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('mint(uint256)', [_value + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -649,22 +700,24 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('mint(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_value: BigNumber): string { + getABIEncodedTransactionData( + _value: BigNumber, + ): string { assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('mint(uint256)', [_value]); + const self = this as any as DummyERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('mint(uint256)', [_value + ]); return abiEncodedTransactionData; }, }; @@ -672,27 +725,33 @@ export class DummyERC20TokenContract extends BaseContract { async sendTransactionAsync( _to: string, _value: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), _value]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transfer.estimateGasAsync.bind(self, _to.toLowerCase(), _value), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transfer.estimateGasAsync.bind( + self, + _to.toLowerCase(), + _value + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _to: string, @@ -701,48 +760,57 @@ export class DummyERC20TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const txHashPromise = self.transfer.sendTransactionAsync(_to.toLowerCase(), _value, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const txHashPromise = self.transfer.sendTransactionAsync(_to.toLowerCase(), + _value + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial | undefined): Promise { - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), _value]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + _to: string, + _value: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _to: string, _value: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_to', _to); assert.isBigNumber('_value', _value); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -753,8 +821,10 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), _value]); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -763,26 +833,27 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_to: string, _value: BigNumber): string { + getABIEncodedTransactionData( + _to: string, + _value: BigNumber, + ): string { assert.isString('_to', _to); assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [ - _to.toLowerCase(), - _value, - ]); + const self = this as any as DummyERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); return abiEncodedTransactionData; }, }; @@ -792,7 +863,8 @@ export class DummyERC20TokenContract extends BaseContract { _spender: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_owner', _owner); assert.isString('_spender', _spender); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -803,11 +875,10 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('allowance(address,address)', [ - _owner.toLowerCase(), - _spender.toLowerCase(), - ]); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner.toLowerCase(), + _spender.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -816,26 +887,27 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('allowance(address,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_owner: string, _spender: string): string { + getABIEncodedTransactionData( + _owner: string, + _spender: string, + ): string { assert.isString('_owner', _owner); assert.isString('_spender', _spender); - const self = (this as any) as DummyERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('allowance(address,address)', [ - _owner.toLowerCase(), - _spender.toLowerCase(), - ]); + const self = this as any as DummyERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('allowance(address,address)', [_owner.toLowerCase(), + _spender.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -843,30 +915,33 @@ export class DummyERC20TokenContract extends BaseContract { async sendTransactionAsync( _target: string, _value: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_target', _target); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [ + assert.isString('_target', _target); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.setBalance.estimateGasAsync.bind( + self, _target.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.setBalance.estimateGasAsync.bind(self, _target.toLowerCase(), _value), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _value + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _target: string, @@ -875,55 +950,57 @@ export class DummyERC20TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_target', _target); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const txHashPromise = self.setBalance.sendTransactionAsync(_target.toLowerCase(), _value, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_target', _target); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const txHashPromise = self.setBalance.sendTransactionAsync(_target.toLowerCase(), + _value + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _target: string, _value: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_target', _target); - assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [ - _target.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_target', _target); + assert.isBigNumber('_value', _value); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _target: string, _value: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_target', _target); assert.isBigNumber('_value', _value); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -934,11 +1011,10 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [ - _target.toLowerCase(), - _value, - ]); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target.toLowerCase(), + _value + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -947,49 +1023,57 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('setBalance(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_target: string, _value: BigNumber): string { + getABIEncodedTransactionData( + _target: string, + _value: BigNumber, + ): string { assert.isString('_target', _target); assert.isBigNumber('_value', _value); - const self = (this as any) as DummyERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('setBalance(address,uint256)', [ - _target.toLowerCase(), - _value, - ]); + const self = this as any as DummyERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('setBalance(address,uint256)', [_target.toLowerCase(), + _value + ]); return abiEncodedTransactionData; }, }; public transferOwnership = { - async sendTransactionAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferOwnership.estimateGasAsync.bind(self, newOwner.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferOwnership.estimateGasAsync.bind( + self, + newOwner.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( newOwner: string, @@ -997,41 +1081,51 @@ export class DummyERC20TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('newOwner', newOwner); - const self = (this as any) as DummyERC20TokenContract; - const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('newOwner', newOwner); + const self = this as any as DummyERC20TokenContract; + const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(newOwner: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + newOwner: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('newOwner', newOwner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1041,8 +1135,9 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); + const self = this as any as DummyERC20TokenContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1051,29 +1146,33 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(newOwner: string): string { + getABIEncodedTransactionData( + newOwner: string, + ): string { assert.isString('newOwner', newOwner); - const self = (this as any) as DummyERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); + const self = this as any as DummyERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public MAX_MINT_AMOUNT = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -1082,7 +1181,7 @@ export class DummyERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC20TokenContract; + const self = this as any as DummyERC20TokenContract; const encodedData = self._strictEncodeArguments('MAX_MINT_AMOUNT()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -1092,33 +1191,34 @@ export class DummyERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('MAX_MINT_AMOUNT()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as DummyERC20TokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as DummyERC20TokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('MAX_MINT_AMOUNT()', []); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, - _name: string, - _symbol: string, - _decimals: BigNumber, - _totalSupply: BigNumber, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, + _name: string, + _symbol: string, + _decimals: BigNumber, + _totalSupply: BigNumber, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -1131,26 +1231,23 @@ export class DummyERC20TokenContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return DummyERC20TokenContract.deployAsync( - bytecode, - abi, - provider, - txDefaults, - _name, - _symbol, - _decimals, - _totalSupply, - ); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return DummyERC20TokenContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, _name, +_symbol, +_decimals, +_totalSupply +); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, - _name: string, - _symbol: string, - _decimals: BigNumber, - _totalSupply: BigNumber, + abiDependencies: { [contractName: string]: ContractAbi }, + _name: string, + _symbol: string, + _decimals: BigNumber, + _totalSupply: BigNumber, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -1160,17 +1257,29 @@ export class DummyERC20TokenContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [_name, _symbol, _decimals, _totalSupply] = BaseContract._formatABIDataItemList( + [_name, +_symbol, +_decimals, +_totalSupply +] = BaseContract._formatABIDataItemList( constructorAbi.inputs, - [_name, _symbol, _decimals, _totalSupply], + [_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 txData = deployInfo.encode(bytecode, [_name, +_symbol, +_decimals, +_totalSupply +]); const web3Wrapper = new Web3Wrapper(provider); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -1178,19 +1287,25 @@ export class DummyERC20TokenContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`DummyERC20Token successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new DummyERC20TokenContract(txReceipt.contractAddress as string, provider, txDefaults); - contractInstance.constructorArgs = [_name, _symbol, _decimals, _totalSupply]; + const contractInstance = new DummyERC20TokenContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); + contractInstance.constructorArgs = [_name, +_symbol, +_decimals, +_totalSupply +]; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'name', outputs: [ { @@ -1202,7 +1317,7 @@ export class DummyERC20TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1225,9 +1340,10 @@ export class DummyERC20TokenContract extends BaseContract { stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'totalSupply', outputs: [ { @@ -1239,7 +1355,7 @@ export class DummyERC20TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1266,9 +1382,10 @@ export class DummyERC20TokenContract extends BaseContract { stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'decimals', outputs: [ { @@ -1280,7 +1397,7 @@ export class DummyERC20TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1299,9 +1416,10 @@ export class DummyERC20TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'owner', outputs: [ { @@ -1313,9 +1431,10 @@ export class DummyERC20TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'symbol', outputs: [ { @@ -1327,7 +1446,7 @@ export class DummyERC20TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1336,12 +1455,13 @@ export class DummyERC20TokenContract extends BaseContract { }, ], name: 'mint', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1364,7 +1484,7 @@ export class DummyERC20TokenContract extends BaseContract { stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1387,7 +1507,7 @@ export class DummyERC20TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1400,12 +1520,13 @@ export class DummyERC20TokenContract extends BaseContract { }, ], name: 'setBalance', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1414,14 +1535,16 @@ export class DummyERC20TokenContract extends BaseContract { }, ], name: 'transferOwnership', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'MAX_MINT_AMOUNT', outputs: [ { @@ -1433,7 +1556,7 @@ export class DummyERC20TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { inputs: [ { name: '_name', @@ -1452,12 +1575,13 @@ export class DummyERC20TokenContract extends BaseContract { type: 'uint256', }, ], - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'constructor', }, - { + { anonymous: false, inputs: [ { @@ -1477,10 +1601,11 @@ export class DummyERC20TokenContract extends BaseContract { }, ], name: 'Transfer', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -1500,7 +1625,8 @@ export class DummyERC20TokenContract extends BaseContract { }, ], name: 'Approval', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -1574,15 +1700,15 @@ export class DummyERC20TokenContract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('DummyERC20Token', DummyERC20TokenContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('DummyERC20Token', DummyERC20TokenContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( DummyERC20TokenContract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align 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 index ad2c8a15b5..095e6bfb3f 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,6 +26,7 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable export type DummyERC721TokenEventArgs = @@ -60,12 +58,17 @@ export interface DummyERC721TokenApprovalForAllEventArgs extends DecodedLogArgs _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 = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -74,7 +77,7 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; + const self = this as any as DummyERC721TokenContract; const encodedData = self._strictEncodeArguments('name()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -84,20 +87,20 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('name()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as DummyERC721TokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as DummyERC721TokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('name()', []); return abiEncodedTransactionData; }, @@ -107,7 +110,8 @@ export class DummyERC721TokenContract extends BaseContract { _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('_tokenId', _tokenId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -117,8 +121,9 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -127,22 +132,24 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getApproved(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_tokenId: BigNumber): string { + getABIEncodedTransactionData( + _tokenId: BigNumber, + ): string { assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId]); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId + ]); return abiEncodedTransactionData; }, }; @@ -150,30 +157,33 @@ export class DummyERC721TokenContract extends BaseContract { async sendTransactionAsync( _approved: string, _tokenId: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_approved', _approved); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ + assert.isString('_approved', _approved); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.approve.estimateGasAsync.bind( + self, _approved.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.approve.estimateGasAsync.bind(self, _approved.toLowerCase(), _tokenId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _tokenId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _approved: string, @@ -182,55 +192,57 @@ export class DummyERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_approved', _approved); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const txHashPromise = self.approve.sendTransactionAsync(_approved.toLowerCase(), _tokenId, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_approved', _approved); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const txHashPromise = self.approve.sendTransactionAsync(_approved.toLowerCase(), + _tokenId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _approved: string, _tokenId: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_approved', _approved); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _approved.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_approved', _approved); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _approved: string, _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_approved', _approved); assert.isBigNumber('_tokenId', _tokenId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -241,11 +253,10 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _approved.toLowerCase(), - _tokenId, - ]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved.toLowerCase(), + _tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -254,26 +265,27 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('approve(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_approved: string, _tokenId: BigNumber): string { + getABIEncodedTransactionData( + _approved: string, + _tokenId: BigNumber, + ): string { assert.isString('_approved', _approved); assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [ - _approved.toLowerCase(), - _tokenId, - ]); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_approved.toLowerCase(), + _tokenId + ]); return abiEncodedTransactionData; }, }; @@ -282,32 +294,36 @@ export class DummyERC721TokenContract extends BaseContract { _from: string, _to: string, _tokenId: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferFrom.estimateGasAsync.bind( + self, _from.toLowerCase(), _to.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferFrom.estimateGasAsync.bind(self, _from.toLowerCase(), _to.toLowerCase(), _tokenId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _tokenId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _from: string, @@ -317,27 +333,25 @@ export class DummyERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const txHashPromise = self.transferFrom.sendTransactionAsync( - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const txHashPromise = self.transferFrom.sendTransactionAsync(_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _from: string, @@ -345,29 +359,28 @@ export class DummyERC721TokenContract extends BaseContract { _tokenId: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _from: string, @@ -375,7 +388,8 @@ export class DummyERC721TokenContract extends BaseContract { _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); @@ -387,12 +401,11 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -401,28 +414,30 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string { + getABIEncodedTransactionData( + _from: string, + _to: string, + _tokenId: BigNumber, + ): string { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); return abiEncodedTransactionData; }, }; @@ -430,27 +445,33 @@ export class DummyERC721TokenContract extends BaseContract { async sendTransactionAsync( _to: string, _tokenId: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to.toLowerCase(), _tokenId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.mint.estimateGasAsync.bind(self, _to.toLowerCase(), _tokenId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.mint.estimateGasAsync.bind( + self, + _to.toLowerCase(), + _tokenId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _to: string, @@ -459,52 +480,57 @@ export class DummyERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const txHashPromise = self.mint.sendTransactionAsync(_to.toLowerCase(), _tokenId, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const txHashPromise = self.mint.sendTransactionAsync(_to.toLowerCase(), + _tokenId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _to: string, _tokenId: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to.toLowerCase(), _tokenId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _to: string, _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -515,8 +541,10 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to.toLowerCase(), _tokenId]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to.toLowerCase(), + _tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -525,26 +553,27 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('mint(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_to: string, _tokenId: BigNumber): string { + getABIEncodedTransactionData( + _to: string, + _tokenId: BigNumber, + ): string { assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('mint(address,uint256)', [ - _to.toLowerCase(), - _tokenId, - ]); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('mint(address,uint256)', [_to.toLowerCase(), + _tokenId + ]); return abiEncodedTransactionData; }, }; @@ -553,32 +582,36 @@ export class DummyERC721TokenContract extends BaseContract { _from: string, _to: string, _tokenId: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.safeTransferFrom1.estimateGasAsync.bind( + self, _from.toLowerCase(), _to.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.safeTransferFrom1.estimateGasAsync.bind(self, _from.toLowerCase(), _to.toLowerCase(), _tokenId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _tokenId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _from: string, @@ -588,27 +621,25 @@ export class DummyERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const txHashPromise = self.safeTransferFrom1.sendTransactionAsync( - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const txHashPromise = self.safeTransferFrom1.sendTransactionAsync(_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _from: string, @@ -616,29 +647,28 @@ export class DummyERC721TokenContract extends BaseContract { _tokenId: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _from: string, @@ -646,7 +676,8 @@ export class DummyERC721TokenContract extends BaseContract { _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); @@ -658,12 +689,11 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -672,28 +702,30 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string { + getABIEncodedTransactionData( + _from: string, + _to: string, + _tokenId: BigNumber, + ): string { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); return abiEncodedTransactionData; }, }; @@ -702,7 +734,8 @@ export class DummyERC721TokenContract extends BaseContract { _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('_tokenId', _tokenId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -712,8 +745,9 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -722,22 +756,24 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('ownerOf(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_tokenId: BigNumber): string { + getABIEncodedTransactionData( + _tokenId: BigNumber, + ): string { assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId]); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId + ]); return abiEncodedTransactionData; }, }; @@ -746,7 +782,8 @@ export class DummyERC721TokenContract extends BaseContract { _owner: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_owner', _owner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -756,8 +793,9 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -766,27 +804,33 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('balanceOf(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_owner: string): string { + getABIEncodedTransactionData( + _owner: string, + ): string { assert.isString('_owner', _owner); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public owner = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -795,7 +839,7 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; + const self = this as any as DummyERC721TokenContract; const encodedData = self._strictEncodeArguments('owner()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -805,26 +849,30 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('owner()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as DummyERC721TokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as DummyERC721TokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); return abiEncodedTransactionData; }, }; public symbol = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -833,7 +881,7 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; + const self = this as any as DummyERC721TokenContract; const encodedData = self._strictEncodeArguments('symbol()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -843,20 +891,20 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('symbol()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as DummyERC721TokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as DummyERC721TokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('symbol()', []); return abiEncodedTransactionData; }, @@ -865,27 +913,33 @@ export class DummyERC721TokenContract extends BaseContract { async sendTransactionAsync( _owner: string, _tokenId: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_owner', _owner); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner.toLowerCase(), _tokenId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.burn.estimateGasAsync.bind(self, _owner.toLowerCase(), _tokenId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isString('_owner', _owner); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.burn.estimateGasAsync.bind( + self, + _owner.toLowerCase(), + _tokenId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _owner: string, @@ -894,52 +948,57 @@ export class DummyERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_owner', _owner); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const txHashPromise = self.burn.sendTransactionAsync(_owner.toLowerCase(), _tokenId, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_owner', _owner); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const txHashPromise = self.burn.sendTransactionAsync(_owner.toLowerCase(), + _tokenId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _owner: string, _tokenId: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_owner', _owner); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner.toLowerCase(), _tokenId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_owner', _owner); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _owner: string, _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_owner', _owner); assert.isBigNumber('_tokenId', _tokenId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -950,8 +1009,10 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner.toLowerCase(), _tokenId]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner.toLowerCase(), + _tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -960,26 +1021,27 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('burn(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_owner: string, _tokenId: BigNumber): string { + getABIEncodedTransactionData( + _owner: string, + _tokenId: BigNumber, + ): string { assert.isString('_owner', _owner); assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('burn(address,uint256)', [ - _owner.toLowerCase(), - _tokenId, - ]); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('burn(address,uint256)', [_owner.toLowerCase(), + _tokenId + ]); return abiEncodedTransactionData; }, }; @@ -987,30 +1049,33 @@ export class DummyERC721TokenContract extends BaseContract { async sendTransactionAsync( _operator: string, _approved: boolean, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_operator', _operator); - assert.isBoolean('_approved', _approved); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ + assert.isString('_operator', _operator); + assert.isBoolean('_approved', _approved); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator.toLowerCase(), + _approved + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.setApprovalForAll.estimateGasAsync.bind( + self, _operator.toLowerCase(), - _approved, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.setApprovalForAll.estimateGasAsync.bind(self, _operator.toLowerCase(), _approved), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _approved + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _operator: string, @@ -1019,59 +1084,57 @@ export class DummyERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_operator', _operator); - assert.isBoolean('_approved', _approved); - const self = (this as any) as DummyERC721TokenContract; - const txHashPromise = self.setApprovalForAll.sendTransactionAsync( - _operator.toLowerCase(), - _approved, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_operator', _operator); + assert.isBoolean('_approved', _approved); + const self = this as any as DummyERC721TokenContract; + const txHashPromise = self.setApprovalForAll.sendTransactionAsync(_operator.toLowerCase(), + _approved + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _operator: string, _approved: boolean, txData?: Partial | undefined, ): Promise { - assert.isString('_operator', _operator); - assert.isBoolean('_approved', _approved); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ - _operator.toLowerCase(), - _approved, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_operator', _operator); + assert.isBoolean('_approved', _approved); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator.toLowerCase(), + _approved + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _operator: string, _approved: boolean, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_operator', _operator); assert.isBoolean('_approved', _approved); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -1082,11 +1145,10 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ - _operator.toLowerCase(), - _approved, - ]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator.toLowerCase(), + _approved + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1095,26 +1157,27 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('setApprovalForAll(address,bool)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_operator: string, _approved: boolean): string { + getABIEncodedTransactionData( + _operator: string, + _approved: boolean, + ): string { assert.isString('_operator', _operator); assert.isBoolean('_approved', _approved); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ - _operator.toLowerCase(), - _approved, - ]); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator.toLowerCase(), + _approved + ]); return abiEncodedTransactionData; }, }; @@ -1124,40 +1187,39 @@ export class DummyERC721TokenContract extends BaseContract { _to: string, _tokenId: BigNumber, _data: string, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - assert.isString('_data', _data); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + assert.isString('_data', _data); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.safeTransferFrom2.estimateGasAsync.bind( + self, _from.toLowerCase(), _to.toLowerCase(), _tokenId, - _data, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.safeTransferFrom2.estimateGasAsync.bind( - self, - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - _data, - ), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _data + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _from: string, @@ -1168,29 +1230,27 @@ export class DummyERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - assert.isString('_data', _data); - const self = (this as any) as DummyERC721TokenContract; - const txHashPromise = self.safeTransferFrom2.sendTransactionAsync( - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - _data, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + assert.isString('_data', _data); + const self = this as any as DummyERC721TokenContract; + const txHashPromise = self.safeTransferFrom2.sendTransactionAsync(_from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _from: string, @@ -1199,31 +1259,30 @@ export class DummyERC721TokenContract extends BaseContract { _data: string, txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - assert.isString('_data', _data); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - _data, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + assert.isString('_data', _data); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _from: string, @@ -1232,7 +1291,8 @@ export class DummyERC721TokenContract extends BaseContract { _data: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); @@ -1245,13 +1305,12 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - _data, - ]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1260,28 +1319,33 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber, _data: string): string { + getABIEncodedTransactionData( + _from: string, + _to: string, + _tokenId: BigNumber, + _data: string, + ): string { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); assert.isString('_data', _data); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'safeTransferFrom(address,address,uint256,bytes)', - [_from.toLowerCase(), _to.toLowerCase(), _tokenId, _data], - ); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data + ]); return abiEncodedTransactionData; }, }; @@ -1291,7 +1355,8 @@ export class DummyERC721TokenContract extends BaseContract { _operator: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_owner', _owner); assert.isString('_operator', _operator); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -1302,11 +1367,10 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [ - _owner.toLowerCase(), - _operator.toLowerCase(), - ]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [_owner.toLowerCase(), + _operator.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1315,49 +1379,57 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('isApprovedForAll(address,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_owner: string, _operator: string): string { + getABIEncodedTransactionData( + _owner: string, + _operator: string, + ): string { assert.isString('_owner', _owner); assert.isString('_operator', _operator); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('isApprovedForAll(address,address)', [ - _owner.toLowerCase(), - _operator.toLowerCase(), - ]); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('isApprovedForAll(address,address)', [_owner.toLowerCase(), + _operator.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public transferOwnership = { - async sendTransactionAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferOwnership.estimateGasAsync.bind(self, newOwner.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferOwnership.estimateGasAsync.bind( + self, + newOwner.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( newOwner: string, @@ -1365,41 +1437,51 @@ export class DummyERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('newOwner', newOwner); - const self = (this as any) as DummyERC721TokenContract; - const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('newOwner', newOwner); + const self = this as any as DummyERC721TokenContract; + const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(newOwner: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + newOwner: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('newOwner', newOwner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1409,8 +1491,9 @@ export class DummyERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DummyERC721TokenContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); + const self = this as any as DummyERC721TokenContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1419,34 +1502,35 @@ export class DummyERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(newOwner: string): string { + getABIEncodedTransactionData( + newOwner: string, + ): string { assert.isString('newOwner', newOwner); - const self = (this as any) as DummyERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); + const self = this as any as DummyERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, - _name: string, - _symbol: string, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, + _name: string, + _symbol: string, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -1459,15 +1543,19 @@ export class DummyERC721TokenContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return DummyERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults, _name, _symbol); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return DummyERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, _name, +_symbol +); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, - _name: string, - _symbol: string, + abiDependencies: { [contractName: string]: ContractAbi }, + _name: string, + _symbol: string, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -1477,17 +1565,23 @@ export class DummyERC721TokenContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [_name, _symbol] = BaseContract._formatABIDataItemList( + [_name, +_symbol +] = BaseContract._formatABIDataItemList( constructorAbi.inputs, - [_name, _symbol], + [_name, +_symbol +], BaseContract._bigNumberToString, ); const iface = new ethers.utils.Interface(abi); const deployInfo = iface.deployFunction; - const txData = deployInfo.encode(bytecode, [_name, _symbol]); + const txData = deployInfo.encode(bytecode, [_name, +_symbol +]); const web3Wrapper = new Web3Wrapper(provider); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -1495,23 +1589,23 @@ export class DummyERC721TokenContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`DummyERC721Token successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new DummyERC721TokenContract( - txReceipt.contractAddress as string, - provider, - txDefaults, - ); - contractInstance.constructorArgs = [_name, _symbol]; + const contractInstance = new DummyERC721TokenContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); + contractInstance.constructorArgs = [_name, +_symbol +]; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'name', outputs: [ { @@ -1523,7 +1617,7 @@ export class DummyERC721TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1542,7 +1636,7 @@ export class DummyERC721TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1555,12 +1649,13 @@ export class DummyERC721TokenContract extends BaseContract { }, ], name: 'approve', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1577,12 +1672,13 @@ export class DummyERC721TokenContract extends BaseContract { }, ], name: 'transferFrom', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1595,12 +1691,13 @@ export class DummyERC721TokenContract extends BaseContract { }, ], name: 'mint', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1617,12 +1714,13 @@ export class DummyERC721TokenContract extends BaseContract { }, ], name: 'safeTransferFrom', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1641,7 +1739,7 @@ export class DummyERC721TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1660,9 +1758,10 @@ export class DummyERC721TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'owner', outputs: [ { @@ -1674,9 +1773,10 @@ export class DummyERC721TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'symbol', outputs: [ { @@ -1688,7 +1788,7 @@ export class DummyERC721TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1701,12 +1801,13 @@ export class DummyERC721TokenContract extends BaseContract { }, ], name: 'burn', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1719,12 +1820,13 @@ export class DummyERC721TokenContract extends BaseContract { }, ], name: 'setApprovalForAll', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1745,12 +1847,13 @@ export class DummyERC721TokenContract extends BaseContract { }, ], name: 'safeTransferFrom', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1773,7 +1876,7 @@ export class DummyERC721TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1782,12 +1885,13 @@ export class DummyERC721TokenContract extends BaseContract { }, ], name: 'transferOwnership', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { inputs: [ { name: '_name', @@ -1798,12 +1902,13 @@ export class DummyERC721TokenContract extends BaseContract { type: 'string', }, ], - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'constructor', }, - { + { anonymous: false, inputs: [ { @@ -1823,10 +1928,11 @@ export class DummyERC721TokenContract extends BaseContract { }, ], name: 'Transfer', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -1846,10 +1952,11 @@ export class DummyERC721TokenContract extends BaseContract { }, ], name: 'Approval', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -1869,7 +1976,8 @@ export class DummyERC721TokenContract extends BaseContract { }, ], name: 'ApprovalForAll', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -1943,15 +2051,15 @@ export class DummyERC721TokenContract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('DummyERC721Token', DummyERC721TokenContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('DummyERC721Token', DummyERC721TokenContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( DummyERC721TokenContract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts b/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts index bb8ef3ad4b..27db00ac50 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts @@ -1,7 +1,7 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { BaseContract, PromiseWithTransactionHash } from '@0x/base-contract'; +import { BaseContract,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -21,146 +21,94 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; 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 DutchAuctionContract extends BaseContract { public getAuctionDetails = { 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 | undefined, + 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 | undefined, ): Promise { - const self = (this as any) as DutchAuctionContract; - const encodedData = self._strictEncodeArguments( - 'getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - [order], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.getAuctionDetails.estimateGasAsync.bind(self, order), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + + const self = this as any as DutchAuctionContract; + const encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.getAuctionDetails.estimateGasAsync.bind( + self, + order + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - const self = (this as any) as DutchAuctionContract; - const txHashPromise = self.getAuctionDetails.sendTransactionAsync(order, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + + const self = this as any as DutchAuctionContract; + const txHashPromise = self.getAuctionDetails.sendTransactionAsync(order + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }, + 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 | undefined, ): Promise { - const self = (this as any) as DutchAuctionContract; - const encodedData = self._strictEncodeArguments( - 'getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - [order], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + + const self = this as any as DutchAuctionContract; + const encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - beginTimeSeconds: BigNumber; - endTimeSeconds: BigNumber; - beginAmount: BigNumber; - endAmount: BigNumber; - currentAmount: BigNumber; - currentTimeSeconds: BigNumber; - }> { + ): Promise<{beginTimeSeconds: BigNumber;endTimeSeconds: BigNumber;beginAmount: BigNumber;endAmount: BigNumber;currentAmount: BigNumber;currentTimeSeconds: BigNumber} + > { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -169,11 +117,9 @@ export class DutchAuctionContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DutchAuctionContract; - const encodedData = self._strictEncodeArguments( - 'getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - [order], - ); + const self = this as any as DutchAuctionContract; + const encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -182,266 +128,141 @@ export class DutchAuctionContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - ); + const abiEncoder = self._lookupAbiEncoder('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - beginTimeSeconds: BigNumber; - endTimeSeconds: BigNumber; - beginAmount: BigNumber; - endAmount: BigNumber; - currentAmount: BigNumber; - currentTimeSeconds: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{beginTimeSeconds: BigNumber;endTimeSeconds: BigNumber;beginAmount: BigNumber;endAmount: BigNumber;currentAmount: BigNumber;currentTimeSeconds: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, - 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 DutchAuctionContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - [order], - ); + 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 DutchAuctionContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order + ]); return abiEncodedTransactionData; }, }; public matchOrders = { async sendTransactionAsync( - buyOrder: { - makerAddress: string; - takerAddress: string; - feeRecipientAddress: string; - senderAddress: string; - makerAssetAmount: BigNumber; - takerAssetAmount: BigNumber; - makerFee: BigNumber; - takerFee: BigNumber; - expirationTimeSeconds: BigNumber; - salt: BigNumber; - makerAssetData: string; - takerAssetData: string; - }, - sellOrder: { - makerAddress: string; - takerAddress: string; - feeRecipientAddress: string; - senderAddress: string; - makerAssetAmount: BigNumber; - takerAssetAmount: BigNumber; - makerFee: BigNumber; - takerFee: BigNumber; - expirationTimeSeconds: BigNumber; - salt: BigNumber; - makerAssetData: string; - takerAssetData: string; - }, + buyOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}, + sellOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}, buySignature: string, sellSignature: string, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('buySignature', buySignature); - assert.isString('sellSignature', sellSignature); - const self = (this as any) as DutchAuctionContract; - const encodedData = self._strictEncodeArguments( - '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)', - [buyOrder, sellOrder, buySignature, sellSignature], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.matchOrders.estimateGasAsync.bind(self, buyOrder, sellOrder, buySignature, sellSignature), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + + + assert.isString('buySignature', buySignature); + assert.isString('sellSignature', sellSignature); + const self = this as any as DutchAuctionContract; + const encodedData = self._strictEncodeArguments('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)', [buyOrder, + sellOrder, + buySignature, + sellSignature + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.matchOrders.estimateGasAsync.bind( + self, + buyOrder, + sellOrder, + buySignature, + sellSignature + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - buyOrder: { - makerAddress: string; - takerAddress: string; - feeRecipientAddress: string; - senderAddress: string; - makerAssetAmount: BigNumber; - takerAssetAmount: BigNumber; - makerFee: BigNumber; - takerFee: BigNumber; - expirationTimeSeconds: BigNumber; - salt: BigNumber; - makerAssetData: string; - takerAssetData: string; - }, - sellOrder: { - makerAddress: string; - takerAddress: string; - feeRecipientAddress: string; - senderAddress: string; - makerAssetAmount: BigNumber; - takerAssetAmount: BigNumber; - makerFee: BigNumber; - takerFee: BigNumber; - expirationTimeSeconds: BigNumber; - salt: BigNumber; - makerAssetData: string; - takerAssetData: string; - }, + buyOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}, + sellOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}, buySignature: string, sellSignature: string, txData?: Partial, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('buySignature', buySignature); - assert.isString('sellSignature', sellSignature); - const self = (this as any) as DutchAuctionContract; - const txHashPromise = self.matchOrders.sendTransactionAsync( - buyOrder, - sellOrder, - buySignature, - sellSignature, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + + + assert.isString('buySignature', buySignature); + assert.isString('sellSignature', sellSignature); + const self = this as any as DutchAuctionContract; + const txHashPromise = self.matchOrders.sendTransactionAsync(buyOrder, + sellOrder, + buySignature, + sellSignature + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( - buyOrder: { - makerAddress: string; - takerAddress: string; - feeRecipientAddress: string; - senderAddress: string; - makerAssetAmount: BigNumber; - takerAssetAmount: BigNumber; - makerFee: BigNumber; - takerFee: BigNumber; - expirationTimeSeconds: BigNumber; - salt: BigNumber; - makerAssetData: string; - takerAssetData: string; - }, - sellOrder: { - makerAddress: string; - takerAddress: string; - feeRecipientAddress: string; - senderAddress: string; - makerAssetAmount: BigNumber; - takerAssetAmount: BigNumber; - makerFee: BigNumber; - takerFee: BigNumber; - expirationTimeSeconds: BigNumber; - salt: BigNumber; - makerAssetData: string; - takerAssetData: string; - }, + buyOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}, + sellOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}, buySignature: string, sellSignature: string, txData?: Partial | undefined, ): Promise { - assert.isString('buySignature', buySignature); - assert.isString('sellSignature', sellSignature); - const self = (this as any) as DutchAuctionContract; - const encodedData = self._strictEncodeArguments( - '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)', - [buyOrder, sellOrder, buySignature, sellSignature], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + + + assert.isString('buySignature', buySignature); + assert.isString('sellSignature', sellSignature); + const self = this as any as DutchAuctionContract; + const encodedData = self._strictEncodeArguments('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)', [buyOrder, + sellOrder, + buySignature, + sellSignature + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( - buyOrder: { - makerAddress: string; - takerAddress: string; - feeRecipientAddress: string; - senderAddress: string; - makerAssetAmount: BigNumber; - takerAssetAmount: BigNumber; - makerFee: BigNumber; - takerFee: BigNumber; - expirationTimeSeconds: BigNumber; - salt: BigNumber; - makerAssetData: string; - takerAssetData: string; - }, - sellOrder: { - makerAddress: string; - takerAddress: string; - feeRecipientAddress: string; - senderAddress: string; - makerAssetAmount: BigNumber; - takerAssetAmount: BigNumber; - makerFee: BigNumber; - takerFee: BigNumber; - expirationTimeSeconds: BigNumber; - salt: BigNumber; - makerAssetData: string; - takerAssetData: string; - }, + buyOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}, + sellOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}, buySignature: string, sellSignature: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise<{ - left: { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }; - right: { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }; - leftMakerAssetSpreadAmount: BigNumber; - }> { + ): Promise<{left: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};right: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};leftMakerAssetSpreadAmount: BigNumber} + > { + + assert.isString('buySignature', buySignature); assert.isString('sellSignature', sellSignature); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -452,11 +273,12 @@ export class DutchAuctionContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as DutchAuctionContract; - const encodedData = self._strictEncodeArguments( - '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)', - [buyOrder, sellOrder, buySignature, sellSignature], - ); + const self = this as any as DutchAuctionContract; + const encodedData = self._strictEncodeArguments('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)', [buyOrder, + sellOrder, + buySignature, + sellSignature + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -465,81 +287,42 @@ export class DutchAuctionContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - '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 abiEncoder = self._lookupAbiEncoder('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)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - left: { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }; - right: { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }; - leftMakerAssetSpreadAmount: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{left: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};right: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};leftMakerAssetSpreadAmount: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, getABIEncodedTransactionData( - buyOrder: { - makerAddress: string; - takerAddress: string; - feeRecipientAddress: string; - senderAddress: string; - makerAssetAmount: BigNumber; - takerAssetAmount: BigNumber; - makerFee: BigNumber; - takerFee: BigNumber; - expirationTimeSeconds: BigNumber; - salt: BigNumber; - makerAssetData: string; - takerAssetData: string; - }, - sellOrder: { - makerAddress: string; - takerAddress: string; - feeRecipientAddress: string; - senderAddress: string; - makerAssetAmount: BigNumber; - takerAssetAmount: BigNumber; - makerFee: BigNumber; - takerFee: BigNumber; - expirationTimeSeconds: BigNumber; - salt: BigNumber; - makerAssetData: string; - takerAssetData: string; - }, - buySignature: string, - sellSignature: string, - ): string { + buyOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}, + sellOrder: {makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}, + buySignature: string, + sellSignature: string, + ): string { + + assert.isString('buySignature', buySignature); assert.isString('sellSignature', sellSignature); - const self = (this as any) as DutchAuctionContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - '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)', - [buyOrder, sellOrder, buySignature, sellSignature], - ); + const self = this as any as DutchAuctionContract; + const abiEncodedTransactionData = self._strictEncodeArguments('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)', [buyOrder, + sellOrder, + buySignature, + sellSignature + ]); return abiEncodedTransactionData; }, }; - public static async deployFrom0xArtifactAsync( +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, - _exchange: string, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, + _exchange: string, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -552,14 +335,17 @@ export class DutchAuctionContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return DutchAuctionContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return DutchAuctionContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, _exchange +); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, - _exchange: string, + abiDependencies: { [contractName: string]: ContractAbi }, + _exchange: string, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -569,17 +355,20 @@ export class DutchAuctionContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [_exchange] = BaseContract._formatABIDataItemList( + [_exchange +] = BaseContract._formatABIDataItemList( constructorAbi.inputs, - [_exchange], + [_exchange +], BaseContract._bigNumberToString, ); const iface = new ethers.utils.Interface(abi); const deployInfo = iface.deployFunction; - const txData = deployInfo.encode(bytecode, [_exchange]); + const txData = deployInfo.encode(bytecode, [_exchange +]); const web3Wrapper = new Web3Wrapper(provider); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -587,17 +376,19 @@ export class DutchAuctionContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`DutchAuction successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new DutchAuctionContract(txReceipt.contractAddress as string, provider, txDefaults); - contractInstance.constructorArgs = [_exchange]; + const contractInstance = new DutchAuctionContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); + contractInstance.constructorArgs = [_exchange +]; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: false, inputs: [ { @@ -652,7 +443,7 @@ export class DutchAuctionContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, ], name: 'getAuctionDetails', @@ -685,14 +476,14 @@ export class DutchAuctionContract extends BaseContract { name: 'currentTimeSeconds', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -747,7 +538,7 @@ export class DutchAuctionContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'sellOrder', @@ -801,7 +592,7 @@ export class DutchAuctionContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'buySignature', @@ -838,7 +629,7 @@ export class DutchAuctionContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, { name: 'right', @@ -860,27 +651,28 @@ export class DutchAuctionContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, { name: 'leftMakerAssetSpreadAmount', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { inputs: [ { name: '_exchange', type: 'address', }, ], - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'constructor', @@ -888,11 +680,11 @@ export class DutchAuctionContract extends BaseContract { ] as ContractAbi; return abi; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('DutchAuction', DutchAuctionContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('DutchAuction', DutchAuctionContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts b/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts index e9dbd86a3a..a72fb0c2c6 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,6 +26,7 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable export type ERC20ProxyEventArgs = @@ -50,30 +48,38 @@ export interface ERC20ProxyAuthorizedAddressRemovedEventArgs extends DecodedLogA 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 | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.addAuthorizedAddress.estimateGasAsync.bind(self, target.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.addAuthorizedAddress.estimateGasAsync.bind( + self, + target.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -81,41 +87,51 @@ export class ERC20ProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - const self = (this as any) as ERC20ProxyContract; - const txHashPromise = self.addAuthorizedAddress.sendTransactionAsync(target.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + const self = this as any as ERC20ProxyContract; + const txHashPromise = self.addAuthorizedAddress.sendTransactionAsync(target.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(target: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + target: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('target', target); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -125,8 +141,9 @@ export class ERC20ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -135,24 +152,24 @@ export class ERC20ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string): string { + getABIEncodedTransactionData( + target: string, + ): string { assert.isString('target', target); - const self = (this as any) as ERC20ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); + const self = this as any as ERC20ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -161,7 +178,8 @@ export class ERC20ProxyContract extends BaseContract { index_0: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -171,8 +189,9 @@ export class ERC20ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0]); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0 + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -181,45 +200,54 @@ export class ERC20ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('authorities(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: BigNumber): string { + getABIEncodedTransactionData( + index_0: BigNumber, + ): string { assert.isBigNumber('index_0', index_0); - const self = (this as any) as ERC20ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('authorities(uint256)', [index_0]); + const self = this as any as ERC20ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('authorities(uint256)', [index_0 + ]); return abiEncodedTransactionData; }, }; public removeAuthorizedAddress = { - async sendTransactionAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.removeAuthorizedAddress.estimateGasAsync.bind(self, target.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.removeAuthorizedAddress.estimateGasAsync.bind( + self, + target.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -227,41 +255,51 @@ export class ERC20ProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - const self = (this as any) as ERC20ProxyContract; - const txHashPromise = self.removeAuthorizedAddress.sendTransactionAsync(target.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + const self = this as any as ERC20ProxyContract; + const txHashPromise = self.removeAuthorizedAddress.sendTransactionAsync(target.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(target: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + target: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('target', target); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -271,8 +309,9 @@ export class ERC20ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -281,29 +320,33 @@ export class ERC20ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string): string { + getABIEncodedTransactionData( + target: string, + ): string { assert.isString('target', target); - const self = (this as any) as ERC20ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); + const self = this as any as ERC20ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public owner = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -312,7 +355,7 @@ export class ERC20ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20ProxyContract; + const self = this as any as ERC20ProxyContract; const encodedData = self._strictEncodeArguments('owner()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -322,20 +365,20 @@ export class ERC20ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('owner()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ERC20ProxyContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ERC20ProxyContract; const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); return abiEncodedTransactionData; }, @@ -344,30 +387,33 @@ export class ERC20ProxyContract extends BaseContract { async sendTransactionAsync( target: string, index: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind( + self, target.toLowerCase(), - index, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target.toLowerCase(), index), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + index + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -376,59 +422,57 @@ export class ERC20ProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as ERC20ProxyContract; - const txHashPromise = self.removeAuthorizedAddressAtIndex.sendTransactionAsync( - target.toLowerCase(), - index, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as ERC20ProxyContract; + const txHashPromise = self.removeAuthorizedAddressAtIndex.sendTransactionAsync(target.toLowerCase(), + index + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( target: string, index: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ - target.toLowerCase(), - index, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( target: string, index: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('target', target); assert.isBigNumber('index', index); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -439,11 +483,10 @@ export class ERC20ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ - target.toLowerCase(), - index, - ]); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -452,31 +495,36 @@ export class ERC20ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string, index: BigNumber): string { + getABIEncodedTransactionData( + target: string, + index: BigNumber, + ): string { assert.isString('target', target); assert.isBigNumber('index', index); - const self = (this as any) as ERC20ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'removeAuthorizedAddressAtIndex(address,uint256)', - [target.toLowerCase(), index], - ); + const self = this as any as ERC20ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); return abiEncodedTransactionData; }, }; public getProxyId = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -485,7 +533,7 @@ export class ERC20ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20ProxyContract; + const self = this as any as ERC20ProxyContract; const encodedData = self._strictEncodeArguments('getProxyId()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -495,20 +543,20 @@ export class ERC20ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getProxyId()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ERC20ProxyContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ERC20ProxyContract; const abiEncodedTransactionData = self._strictEncodeArguments('getProxyId()', []); return abiEncodedTransactionData; }, @@ -518,7 +566,8 @@ export class ERC20ProxyContract extends BaseContract { index_0: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -528,8 +577,9 @@ export class ERC20ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('authorized(address)', [index_0.toLowerCase()]); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('authorized(address)', [index_0.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -538,29 +588,33 @@ export class ERC20ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('authorized(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string): string { + getABIEncodedTransactionData( + index_0: string, + ): string { assert.isString('index_0', index_0); - const self = (this as any) as ERC20ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('authorized(address)', [ - index_0.toLowerCase(), - ]); + const self = this as any as ERC20ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('authorized(address)', [index_0.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public getAuthorizedAddresses = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -569,7 +623,7 @@ export class ERC20ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20ProxyContract; + const self = this as any as ERC20ProxyContract; const encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -579,44 +633,51 @@ export class ERC20ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ERC20ProxyContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ERC20ProxyContract; const abiEncodedTransactionData = self._strictEncodeArguments('getAuthorizedAddresses()', []); return abiEncodedTransactionData; }, }; public transferOwnership = { - async sendTransactionAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferOwnership.estimateGasAsync.bind(self, newOwner.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferOwnership.estimateGasAsync.bind( + self, + newOwner.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( newOwner: string, @@ -624,41 +685,51 @@ export class ERC20ProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('newOwner', newOwner); - const self = (this as any) as ERC20ProxyContract; - const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('newOwner', newOwner); + const self = this as any as ERC20ProxyContract; + const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(newOwner: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + newOwner: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('newOwner', newOwner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -668,8 +739,9 @@ export class ERC20ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20ProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); + const self = this as any as ERC20ProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -678,32 +750,33 @@ export class ERC20ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(newOwner: string): string { + getABIEncodedTransactionData( + newOwner: string, + ): string { assert.isString('newOwner', newOwner); - const self = (this as any) as ERC20ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); + const self = this as any as ERC20ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -716,13 +789,15 @@ export class ERC20ProxyContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return ERC20ProxyContract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return ERC20ProxyContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -732,13 +807,17 @@ export class ERC20ProxyContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -746,17 +825,18 @@ export class ERC20ProxyContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`ERC20Proxy successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new ERC20ProxyContract(txReceipt.contractAddress as string, provider, txDefaults); + const contractInstance = new ERC20ProxyContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: false, inputs: [ { @@ -765,12 +845,13 @@ export class ERC20ProxyContract extends BaseContract { }, ], name: 'addAuthorizedAddress', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -789,7 +870,7 @@ export class ERC20ProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -798,14 +879,16 @@ export class ERC20ProxyContract extends BaseContract { }, ], name: 'removeAuthorizedAddress', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'owner', outputs: [ { @@ -817,7 +900,7 @@ export class ERC20ProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -830,14 +913,16 @@ export class ERC20ProxyContract extends BaseContract { }, ], name: 'removeAuthorizedAddressAtIndex', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'getProxyId', outputs: [ { @@ -849,7 +934,7 @@ export class ERC20ProxyContract extends BaseContract { stateMutability: 'pure', type: 'function', }, - { + { constant: true, inputs: [ { @@ -868,9 +953,10 @@ export class ERC20ProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'getAuthorizedAddresses', outputs: [ { @@ -882,7 +968,7 @@ export class ERC20ProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -891,19 +977,22 @@ export class ERC20ProxyContract extends BaseContract { }, ], name: 'transferOwnership', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { - inputs: [], - outputs: [], + { + inputs: [ + ], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'fallback', }, - { + { anonymous: false, inputs: [ { @@ -918,10 +1007,11 @@ export class ERC20ProxyContract extends BaseContract { }, ], name: 'AuthorizedAddressAdded', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -936,7 +1026,8 @@ export class ERC20ProxyContract extends BaseContract { }, ], name: 'AuthorizedAddressRemoved', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -1010,15 +1101,15 @@ export class ERC20ProxyContract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('ERC20Proxy', ERC20ProxyContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('ERC20Proxy', ERC20ProxyContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( ERC20ProxyContract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts b/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts index d8c303fef3..2985e6d710 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,9 +26,12 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable -export type ERC20TokenEventArgs = ERC20TokenTransferEventArgs | ERC20TokenApprovalEventArgs; +export type ERC20TokenEventArgs = + | ERC20TokenTransferEventArgs + | ERC20TokenApprovalEventArgs; export enum ERC20TokenEvents { Transfer = 'Transfer', @@ -50,6 +50,7 @@ export interface ERC20TokenApprovalEventArgs extends DecodedLogArgs { _value: BigNumber; } + /* istanbul ignore next */ // tslint:disable:no-parameter-reassignment // tslint:disable-next-line:class-name @@ -58,30 +59,33 @@ export class ERC20TokenContract extends BaseContract { async sendTransactionAsync( _spender: string, _value: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_spender', _spender); - assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ + assert.isString('_spender', _spender); + assert.isBigNumber('_value', _value); + const self = this as any as ERC20TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.approve.estimateGasAsync.bind( + self, _spender.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.approve.estimateGasAsync.bind(self, _spender.toLowerCase(), _value), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _value + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _spender: string, @@ -90,55 +94,57 @@ export class ERC20TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_spender', _spender); - assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const txHashPromise = self.approve.sendTransactionAsync(_spender.toLowerCase(), _value, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_spender', _spender); + assert.isBigNumber('_value', _value); + const self = this as any as ERC20TokenContract; + const txHashPromise = self.approve.sendTransactionAsync(_spender.toLowerCase(), + _value + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _spender: string, _value: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_spender', _spender); - assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_spender', _spender); + assert.isBigNumber('_value', _value); + const self = this as any as ERC20TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _spender: string, _value: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_spender', _spender); assert.isBigNumber('_value', _value); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -149,11 +155,10 @@ export class ERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); + const self = this as any as ERC20TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -162,31 +167,36 @@ export class ERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('approve(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_spender: string, _value: BigNumber): string { + getABIEncodedTransactionData( + _spender: string, + _value: BigNumber, + ): string { assert.isString('_spender', _spender); assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); + const self = this as any as ERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); return abiEncodedTransactionData; }, }; public totalSupply = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -195,7 +205,7 @@ export class ERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20TokenContract; + const self = this as any as ERC20TokenContract; const encodedData = self._strictEncodeArguments('totalSupply()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -205,20 +215,20 @@ export class ERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('totalSupply()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ERC20TokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ERC20TokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('totalSupply()', []); return abiEncodedTransactionData; }, @@ -228,32 +238,36 @@ export class ERC20TokenContract extends BaseContract { _from: string, _to: string, _value: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ERC20TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferFrom.estimateGasAsync.bind( + self, _from.toLowerCase(), _to.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferFrom.estimateGasAsync.bind(self, _from.toLowerCase(), _to.toLowerCase(), _value), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _value + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _from: string, @@ -263,27 +277,25 @@ export class ERC20TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const txHashPromise = self.transferFrom.sendTransactionAsync( - _from.toLowerCase(), - _to.toLowerCase(), - _value, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ERC20TokenContract; + const txHashPromise = self.transferFrom.sendTransactionAsync(_from.toLowerCase(), + _to.toLowerCase(), + _value + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _from: string, @@ -291,29 +303,28 @@ export class ERC20TokenContract extends BaseContract { _value: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ERC20TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _from: string, @@ -321,7 +332,8 @@ export class ERC20TokenContract extends BaseContract { _value: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_value', _value); @@ -333,12 +345,11 @@ export class ERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _value, - ]); + const self = this as any as ERC20TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -347,28 +358,30 @@ export class ERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string { + getABIEncodedTransactionData( + _from: string, + _to: string, + _value: BigNumber, + ): string { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _value, - ]); + const self = this as any as ERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); return abiEncodedTransactionData; }, }; @@ -377,7 +390,8 @@ export class ERC20TokenContract extends BaseContract { _owner: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_owner', _owner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -387,8 +401,9 @@ export class ERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20TokenContract; - const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); + const self = this as any as ERC20TokenContract; + const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -397,22 +412,24 @@ export class ERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('balanceOf(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_owner: string): string { + getABIEncodedTransactionData( + _owner: string, + ): string { assert.isString('_owner', _owner); - const self = (this as any) as ERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); + const self = this as any as ERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -420,27 +437,33 @@ export class ERC20TokenContract extends BaseContract { async sendTransactionAsync( _to: string, _value: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), _value]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transfer.estimateGasAsync.bind(self, _to.toLowerCase(), _value), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ERC20TokenContract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transfer.estimateGasAsync.bind( + self, + _to.toLowerCase(), + _value + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _to: string, @@ -449,48 +472,57 @@ export class ERC20TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const txHashPromise = self.transfer.sendTransactionAsync(_to.toLowerCase(), _value, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ERC20TokenContract; + const txHashPromise = self.transfer.sendTransactionAsync(_to.toLowerCase(), + _value + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial | undefined): Promise { - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), _value]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + _to: string, + _value: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ERC20TokenContract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _to: string, _value: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_to', _to); assert.isBigNumber('_value', _value); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -501,8 +533,10 @@ export class ERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20TokenContract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), _value]); + const self = this as any as ERC20TokenContract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -511,26 +545,27 @@ export class ERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_to: string, _value: BigNumber): string { + getABIEncodedTransactionData( + _to: string, + _value: BigNumber, + ): string { assert.isString('_to', _to); assert.isBigNumber('_value', _value); - const self = (this as any) as ERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [ - _to.toLowerCase(), - _value, - ]); + const self = this as any as ERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); return abiEncodedTransactionData; }, }; @@ -540,7 +575,8 @@ export class ERC20TokenContract extends BaseContract { _spender: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_owner', _owner); assert.isString('_spender', _spender); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -551,11 +587,10 @@ export class ERC20TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC20TokenContract; - const encodedData = self._strictEncodeArguments('allowance(address,address)', [ - _owner.toLowerCase(), - _spender.toLowerCase(), - ]); + const self = this as any as ERC20TokenContract; + const encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner.toLowerCase(), + _spender.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -564,34 +599,36 @@ export class ERC20TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('allowance(address,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_owner: string, _spender: string): string { + getABIEncodedTransactionData( + _owner: string, + _spender: string, + ): string { assert.isString('_owner', _owner); assert.isString('_spender', _spender); - const self = (this as any) as ERC20TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('allowance(address,address)', [ - _owner.toLowerCase(), - _spender.toLowerCase(), - ]); + const self = this as any as ERC20TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('allowance(address,address)', [_owner.toLowerCase(), + _spender.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -604,13 +641,15 @@ export class ERC20TokenContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return ERC20TokenContract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return ERC20TokenContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -620,13 +659,17 @@ export class ERC20TokenContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -634,17 +677,18 @@ export class ERC20TokenContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`ERC20Token successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new ERC20TokenContract(txReceipt.contractAddress as string, provider, txDefaults); + const contractInstance = new ERC20TokenContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: false, inputs: [ { @@ -667,9 +711,10 @@ export class ERC20TokenContract extends BaseContract { stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'totalSupply', outputs: [ { @@ -681,7 +726,7 @@ export class ERC20TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -708,7 +753,7 @@ export class ERC20TokenContract extends BaseContract { stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -727,7 +772,7 @@ export class ERC20TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -750,7 +795,7 @@ export class ERC20TokenContract extends BaseContract { stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -773,7 +818,7 @@ export class ERC20TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { anonymous: false, inputs: [ { @@ -793,10 +838,11 @@ export class ERC20TokenContract extends BaseContract { }, ], name: 'Transfer', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -816,7 +862,8 @@ export class ERC20TokenContract extends BaseContract { }, ], name: 'Approval', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -890,15 +937,15 @@ export class ERC20TokenContract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('ERC20Token', ERC20TokenContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('ERC20Token', ERC20TokenContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( ERC20TokenContract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts b/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts index d9f18a654e..ffeb122490 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,6 +26,7 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable export type ERC721ProxyEventArgs = @@ -50,30 +48,38 @@ export interface ERC721ProxyAuthorizedAddressRemovedEventArgs extends DecodedLog 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 | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.addAuthorizedAddress.estimateGasAsync.bind(self, target.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.addAuthorizedAddress.estimateGasAsync.bind( + self, + target.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -81,41 +87,51 @@ export class ERC721ProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - const self = (this as any) as ERC721ProxyContract; - const txHashPromise = self.addAuthorizedAddress.sendTransactionAsync(target.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + const self = this as any as ERC721ProxyContract; + const txHashPromise = self.addAuthorizedAddress.sendTransactionAsync(target.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(target: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + target: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('target', target); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -125,8 +141,9 @@ export class ERC721ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -135,24 +152,24 @@ export class ERC721ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string): string { + getABIEncodedTransactionData( + target: string, + ): string { assert.isString('target', target); - const self = (this as any) as ERC721ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); + const self = this as any as ERC721ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -161,7 +178,8 @@ export class ERC721ProxyContract extends BaseContract { index_0: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -171,8 +189,9 @@ export class ERC721ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0]); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0 + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -181,45 +200,54 @@ export class ERC721ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('authorities(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: BigNumber): string { + getABIEncodedTransactionData( + index_0: BigNumber, + ): string { assert.isBigNumber('index_0', index_0); - const self = (this as any) as ERC721ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('authorities(uint256)', [index_0]); + const self = this as any as ERC721ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('authorities(uint256)', [index_0 + ]); return abiEncodedTransactionData; }, }; public removeAuthorizedAddress = { - async sendTransactionAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.removeAuthorizedAddress.estimateGasAsync.bind(self, target.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.removeAuthorizedAddress.estimateGasAsync.bind( + self, + target.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -227,41 +255,51 @@ export class ERC721ProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - const self = (this as any) as ERC721ProxyContract; - const txHashPromise = self.removeAuthorizedAddress.sendTransactionAsync(target.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + const self = this as any as ERC721ProxyContract; + const txHashPromise = self.removeAuthorizedAddress.sendTransactionAsync(target.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(target: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + target: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('target', target); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -271,8 +309,9 @@ export class ERC721ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -281,29 +320,33 @@ export class ERC721ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string): string { + getABIEncodedTransactionData( + target: string, + ): string { assert.isString('target', target); - const self = (this as any) as ERC721ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); + const self = this as any as ERC721ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public owner = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -312,7 +355,7 @@ export class ERC721ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721ProxyContract; + const self = this as any as ERC721ProxyContract; const encodedData = self._strictEncodeArguments('owner()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -322,20 +365,20 @@ export class ERC721ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('owner()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ERC721ProxyContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ERC721ProxyContract; const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); return abiEncodedTransactionData; }, @@ -344,30 +387,33 @@ export class ERC721ProxyContract extends BaseContract { async sendTransactionAsync( target: string, index: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind( + self, target.toLowerCase(), - index, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target.toLowerCase(), index), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + index + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -376,59 +422,57 @@ export class ERC721ProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as ERC721ProxyContract; - const txHashPromise = self.removeAuthorizedAddressAtIndex.sendTransactionAsync( - target.toLowerCase(), - index, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as ERC721ProxyContract; + const txHashPromise = self.removeAuthorizedAddressAtIndex.sendTransactionAsync(target.toLowerCase(), + index + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( target: string, index: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ - target.toLowerCase(), - index, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( target: string, index: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('target', target); assert.isBigNumber('index', index); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -439,11 +483,10 @@ export class ERC721ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ - target.toLowerCase(), - index, - ]); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -452,31 +495,36 @@ export class ERC721ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string, index: BigNumber): string { + getABIEncodedTransactionData( + target: string, + index: BigNumber, + ): string { assert.isString('target', target); assert.isBigNumber('index', index); - const self = (this as any) as ERC721ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'removeAuthorizedAddressAtIndex(address,uint256)', - [target.toLowerCase(), index], - ); + const self = this as any as ERC721ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); return abiEncodedTransactionData; }, }; public getProxyId = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -485,7 +533,7 @@ export class ERC721ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721ProxyContract; + const self = this as any as ERC721ProxyContract; const encodedData = self._strictEncodeArguments('getProxyId()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -495,20 +543,20 @@ export class ERC721ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getProxyId()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ERC721ProxyContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ERC721ProxyContract; const abiEncodedTransactionData = self._strictEncodeArguments('getProxyId()', []); return abiEncodedTransactionData; }, @@ -518,7 +566,8 @@ export class ERC721ProxyContract extends BaseContract { index_0: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -528,8 +577,9 @@ export class ERC721ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('authorized(address)', [index_0.toLowerCase()]); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('authorized(address)', [index_0.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -538,29 +588,33 @@ export class ERC721ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('authorized(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string): string { + getABIEncodedTransactionData( + index_0: string, + ): string { assert.isString('index_0', index_0); - const self = (this as any) as ERC721ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('authorized(address)', [ - index_0.toLowerCase(), - ]); + const self = this as any as ERC721ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('authorized(address)', [index_0.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public getAuthorizedAddresses = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -569,7 +623,7 @@ export class ERC721ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721ProxyContract; + const self = this as any as ERC721ProxyContract; const encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -579,44 +633,51 @@ export class ERC721ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ERC721ProxyContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ERC721ProxyContract; const abiEncodedTransactionData = self._strictEncodeArguments('getAuthorizedAddresses()', []); return abiEncodedTransactionData; }, }; public transferOwnership = { - async sendTransactionAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferOwnership.estimateGasAsync.bind(self, newOwner.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferOwnership.estimateGasAsync.bind( + self, + newOwner.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( newOwner: string, @@ -624,41 +685,51 @@ export class ERC721ProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('newOwner', newOwner); - const self = (this as any) as ERC721ProxyContract; - const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('newOwner', newOwner); + const self = this as any as ERC721ProxyContract; + const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(newOwner: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + newOwner: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('newOwner', newOwner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -668,8 +739,9 @@ export class ERC721ProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721ProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); + const self = this as any as ERC721ProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -678,32 +750,33 @@ export class ERC721ProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(newOwner: string): string { + getABIEncodedTransactionData( + newOwner: string, + ): string { assert.isString('newOwner', newOwner); - const self = (this as any) as ERC721ProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); + const self = this as any as ERC721ProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -716,13 +789,15 @@ export class ERC721ProxyContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return ERC721ProxyContract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return ERC721ProxyContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -732,13 +807,17 @@ export class ERC721ProxyContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -746,17 +825,18 @@ export class ERC721ProxyContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`ERC721Proxy successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new ERC721ProxyContract(txReceipt.contractAddress as string, provider, txDefaults); + const contractInstance = new ERC721ProxyContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: false, inputs: [ { @@ -765,12 +845,13 @@ export class ERC721ProxyContract extends BaseContract { }, ], name: 'addAuthorizedAddress', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -789,7 +870,7 @@ export class ERC721ProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -798,14 +879,16 @@ export class ERC721ProxyContract extends BaseContract { }, ], name: 'removeAuthorizedAddress', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'owner', outputs: [ { @@ -817,7 +900,7 @@ export class ERC721ProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -830,14 +913,16 @@ export class ERC721ProxyContract extends BaseContract { }, ], name: 'removeAuthorizedAddressAtIndex', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'getProxyId', outputs: [ { @@ -849,7 +934,7 @@ export class ERC721ProxyContract extends BaseContract { stateMutability: 'pure', type: 'function', }, - { + { constant: true, inputs: [ { @@ -868,9 +953,10 @@ export class ERC721ProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'getAuthorizedAddresses', outputs: [ { @@ -882,7 +968,7 @@ export class ERC721ProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -891,19 +977,22 @@ export class ERC721ProxyContract extends BaseContract { }, ], name: 'transferOwnership', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { - inputs: [], - outputs: [], + { + inputs: [ + ], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'fallback', }, - { + { anonymous: false, inputs: [ { @@ -918,10 +1007,11 @@ export class ERC721ProxyContract extends BaseContract { }, ], name: 'AuthorizedAddressAdded', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -936,7 +1026,8 @@ export class ERC721ProxyContract extends BaseContract { }, ], name: 'AuthorizedAddressRemoved', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -1010,15 +1101,15 @@ export class ERC721ProxyContract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('ERC721Proxy', ERC721ProxyContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('ERC721Proxy', ERC721ProxyContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( ERC721ProxyContract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts b/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts index 00f849aca6..c4b4d2a8c7 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,6 +26,7 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable export type ERC721TokenEventArgs = @@ -60,6 +58,7 @@ export interface ERC721TokenApprovalForAllEventArgs extends DecodedLogArgs { _approved: boolean; } + /* istanbul ignore next */ // tslint:disable:no-parameter-reassignment // tslint:disable-next-line:class-name @@ -69,7 +68,8 @@ export class ERC721TokenContract extends BaseContract { _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('_tokenId', _tokenId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -79,8 +79,9 @@ export class ERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId]); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -89,22 +90,24 @@ export class ERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getApproved(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_tokenId: BigNumber): string { + getABIEncodedTransactionData( + _tokenId: BigNumber, + ): string { assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId]); + const self = this as any as ERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId + ]); return abiEncodedTransactionData; }, }; @@ -112,30 +115,33 @@ export class ERC721TokenContract extends BaseContract { async sendTransactionAsync( _approved: string, _tokenId: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_approved', _approved); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ + assert.isString('_approved', _approved); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.approve.estimateGasAsync.bind( + self, _approved.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.approve.estimateGasAsync.bind(self, _approved.toLowerCase(), _tokenId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _tokenId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _approved: string, @@ -144,55 +150,57 @@ export class ERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_approved', _approved); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const txHashPromise = self.approve.sendTransactionAsync(_approved.toLowerCase(), _tokenId, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_approved', _approved); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as ERC721TokenContract; + const txHashPromise = self.approve.sendTransactionAsync(_approved.toLowerCase(), + _tokenId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _approved: string, _tokenId: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_approved', _approved); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _approved.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_approved', _approved); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _approved: string, _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_approved', _approved); assert.isBigNumber('_tokenId', _tokenId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -203,11 +211,10 @@ export class ERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _approved.toLowerCase(), - _tokenId, - ]); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved.toLowerCase(), + _tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -216,26 +223,27 @@ export class ERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('approve(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_approved: string, _tokenId: BigNumber): string { + getABIEncodedTransactionData( + _approved: string, + _tokenId: BigNumber, + ): string { assert.isString('_approved', _approved); assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [ - _approved.toLowerCase(), - _tokenId, - ]); + const self = this as any as ERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_approved.toLowerCase(), + _tokenId + ]); return abiEncodedTransactionData; }, }; @@ -244,32 +252,36 @@ export class ERC721TokenContract extends BaseContract { _from: string, _to: string, _tokenId: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferFrom.estimateGasAsync.bind( + self, _from.toLowerCase(), _to.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferFrom.estimateGasAsync.bind(self, _from.toLowerCase(), _to.toLowerCase(), _tokenId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _tokenId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _from: string, @@ -279,27 +291,25 @@ export class ERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const txHashPromise = self.transferFrom.sendTransactionAsync( - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as ERC721TokenContract; + const txHashPromise = self.transferFrom.sendTransactionAsync(_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _from: string, @@ -307,29 +317,28 @@ export class ERC721TokenContract extends BaseContract { _tokenId: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _from: string, @@ -337,7 +346,8 @@ export class ERC721TokenContract extends BaseContract { _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); @@ -349,12 +359,11 @@ export class ERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -363,28 +372,30 @@ export class ERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string { + getABIEncodedTransactionData( + _from: string, + _to: string, + _tokenId: BigNumber, + ): string { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); + const self = this as any as ERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); return abiEncodedTransactionData; }, }; @@ -393,32 +404,36 @@ export class ERC721TokenContract extends BaseContract { _from: string, _to: string, _tokenId: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.safeTransferFrom1.estimateGasAsync.bind( + self, _from.toLowerCase(), _to.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.safeTransferFrom1.estimateGasAsync.bind(self, _from.toLowerCase(), _to.toLowerCase(), _tokenId), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _tokenId + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _from: string, @@ -428,27 +443,25 @@ export class ERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const txHashPromise = self.safeTransferFrom1.sendTransactionAsync( - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as ERC721TokenContract; + const txHashPromise = self.safeTransferFrom1.sendTransactionAsync(_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _from: string, @@ -456,29 +469,28 @@ export class ERC721TokenContract extends BaseContract { _tokenId: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _from: string, @@ -486,7 +498,8 @@ export class ERC721TokenContract extends BaseContract { _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); @@ -498,12 +511,11 @@ export class ERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -512,28 +524,30 @@ export class ERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string { + getABIEncodedTransactionData( + _from: string, + _to: string, + _tokenId: BigNumber, + ): string { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - ]); + const self = this as any as ERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId + ]); return abiEncodedTransactionData; }, }; @@ -542,7 +556,8 @@ export class ERC721TokenContract extends BaseContract { _tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('_tokenId', _tokenId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -552,8 +567,9 @@ export class ERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId]); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -562,22 +578,24 @@ export class ERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('ownerOf(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_tokenId: BigNumber): string { + getABIEncodedTransactionData( + _tokenId: BigNumber, + ): string { assert.isBigNumber('_tokenId', _tokenId); - const self = (this as any) as ERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId]); + const self = this as any as ERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId + ]); return abiEncodedTransactionData; }, }; @@ -586,7 +604,8 @@ export class ERC721TokenContract extends BaseContract { _owner: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_owner', _owner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -596,8 +615,9 @@ export class ERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -606,22 +626,24 @@ export class ERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('balanceOf(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_owner: string): string { + getABIEncodedTransactionData( + _owner: string, + ): string { assert.isString('_owner', _owner); - const self = (this as any) as ERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); + const self = this as any as ERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -629,30 +651,33 @@ export class ERC721TokenContract extends BaseContract { async sendTransactionAsync( _operator: string, _approved: boolean, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_operator', _operator); - assert.isBoolean('_approved', _approved); - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ + assert.isString('_operator', _operator); + assert.isBoolean('_approved', _approved); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator.toLowerCase(), + _approved + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.setApprovalForAll.estimateGasAsync.bind( + self, _operator.toLowerCase(), - _approved, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.setApprovalForAll.estimateGasAsync.bind(self, _operator.toLowerCase(), _approved), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _approved + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _operator: string, @@ -661,59 +686,57 @@ export class ERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_operator', _operator); - assert.isBoolean('_approved', _approved); - const self = (this as any) as ERC721TokenContract; - const txHashPromise = self.setApprovalForAll.sendTransactionAsync( - _operator.toLowerCase(), - _approved, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_operator', _operator); + assert.isBoolean('_approved', _approved); + const self = this as any as ERC721TokenContract; + const txHashPromise = self.setApprovalForAll.sendTransactionAsync(_operator.toLowerCase(), + _approved + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _operator: string, _approved: boolean, txData?: Partial | undefined, ): Promise { - assert.isString('_operator', _operator); - assert.isBoolean('_approved', _approved); - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ - _operator.toLowerCase(), - _approved, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_operator', _operator); + assert.isBoolean('_approved', _approved); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator.toLowerCase(), + _approved + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _operator: string, _approved: boolean, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_operator', _operator); assert.isBoolean('_approved', _approved); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -724,11 +747,10 @@ export class ERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ - _operator.toLowerCase(), - _approved, - ]); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator.toLowerCase(), + _approved + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -737,26 +759,27 @@ export class ERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('setApprovalForAll(address,bool)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_operator: string, _approved: boolean): string { + getABIEncodedTransactionData( + _operator: string, + _approved: boolean, + ): string { assert.isString('_operator', _operator); assert.isBoolean('_approved', _approved); - const self = (this as any) as ERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ - _operator.toLowerCase(), - _approved, - ]); + const self = this as any as ERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator.toLowerCase(), + _approved + ]); return abiEncodedTransactionData; }, }; @@ -766,40 +789,39 @@ export class ERC721TokenContract extends BaseContract { _to: string, _tokenId: BigNumber, _data: string, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - assert.isString('_data', _data); - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + assert.isString('_data', _data); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.safeTransferFrom2.estimateGasAsync.bind( + self, _from.toLowerCase(), _to.toLowerCase(), _tokenId, - _data, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.safeTransferFrom2.estimateGasAsync.bind( - self, - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - _data, - ), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _data + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _from: string, @@ -810,29 +832,27 @@ export class ERC721TokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - assert.isString('_data', _data); - const self = (this as any) as ERC721TokenContract; - const txHashPromise = self.safeTransferFrom2.sendTransactionAsync( - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - _data, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + assert.isString('_data', _data); + const self = this as any as ERC721TokenContract; + const txHashPromise = self.safeTransferFrom2.sendTransactionAsync(_from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _from: string, @@ -841,31 +861,30 @@ export class ERC721TokenContract extends BaseContract { _data: string, txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_tokenId', _tokenId); - assert.isString('_data', _data); - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - _data, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_tokenId', _tokenId); + assert.isString('_data', _data); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _from: string, @@ -874,7 +893,8 @@ export class ERC721TokenContract extends BaseContract { _data: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); @@ -887,13 +907,12 @@ export class ERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _tokenId, - _data, - ]); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -902,28 +921,33 @@ export class ERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber, _data: string): string { + getABIEncodedTransactionData( + _from: string, + _to: string, + _tokenId: BigNumber, + _data: string, + ): string { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); assert.isString('_data', _data); - const self = (this as any) as ERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'safeTransferFrom(address,address,uint256,bytes)', - [_from.toLowerCase(), _to.toLowerCase(), _tokenId, _data], - ); + const self = this as any as ERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data + ]); return abiEncodedTransactionData; }, }; @@ -933,7 +957,8 @@ export class ERC721TokenContract extends BaseContract { _operator: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_owner', _owner); assert.isString('_operator', _operator); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -944,11 +969,10 @@ export class ERC721TokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ERC721TokenContract; - const encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [ - _owner.toLowerCase(), - _operator.toLowerCase(), - ]); + const self = this as any as ERC721TokenContract; + const encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [_owner.toLowerCase(), + _operator.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -957,34 +981,36 @@ export class ERC721TokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('isApprovedForAll(address,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_owner: string, _operator: string): string { + getABIEncodedTransactionData( + _owner: string, + _operator: string, + ): string { assert.isString('_owner', _owner); assert.isString('_operator', _operator); - const self = (this as any) as ERC721TokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('isApprovedForAll(address,address)', [ - _owner.toLowerCase(), - _operator.toLowerCase(), - ]); + const self = this as any as ERC721TokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('isApprovedForAll(address,address)', [_owner.toLowerCase(), + _operator.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -997,13 +1023,15 @@ export class ERC721TokenContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return ERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return ERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -1013,13 +1041,17 @@ export class ERC721TokenContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -1027,17 +1059,18 @@ export class ERC721TokenContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`ERC721Token successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new ERC721TokenContract(txReceipt.contractAddress as string, provider, txDefaults); + const contractInstance = new ERC721TokenContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, inputs: [ { @@ -1056,7 +1089,7 @@ export class ERC721TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1069,12 +1102,13 @@ export class ERC721TokenContract extends BaseContract { }, ], name: 'approve', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1091,12 +1125,13 @@ export class ERC721TokenContract extends BaseContract { }, ], name: 'transferFrom', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1113,12 +1148,13 @@ export class ERC721TokenContract extends BaseContract { }, ], name: 'safeTransferFrom', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1137,7 +1173,7 @@ export class ERC721TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1156,7 +1192,7 @@ export class ERC721TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1169,12 +1205,13 @@ export class ERC721TokenContract extends BaseContract { }, ], name: 'setApprovalForAll', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1195,12 +1232,13 @@ export class ERC721TokenContract extends BaseContract { }, ], name: 'safeTransferFrom', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1223,7 +1261,7 @@ export class ERC721TokenContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { anonymous: false, inputs: [ { @@ -1243,10 +1281,11 @@ export class ERC721TokenContract extends BaseContract { }, ], name: 'Transfer', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -1266,10 +1305,11 @@ export class ERC721TokenContract extends BaseContract { }, ], name: 'Approval', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -1289,7 +1329,8 @@ export class ERC721TokenContract extends BaseContract { }, ], name: 'ApprovalForAll', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -1363,15 +1404,15 @@ export class ERC721TokenContract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('ERC721Token', ERC721TokenContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('ERC721Token', ERC721TokenContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( ERC721TokenContract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/eth_balance_checker.ts b/packages/abi-gen-wrappers/src/generated-wrappers/eth_balance_checker.ts index 786f61b3a5..a6eecd9aad 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/eth_balance_checker.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/eth_balance_checker.ts @@ -1,7 +1,7 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { BaseContract, PromiseWithTransactionHash } from '@0x/base-contract'; +import { BaseContract,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -21,8 +21,10 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; 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 @@ -32,7 +34,8 @@ export class EthBalanceCheckerContract extends BaseContract { addresses: string[], callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isArray('addresses', addresses); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -42,8 +45,9 @@ export class EthBalanceCheckerContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as EthBalanceCheckerContract; - const encodedData = self._strictEncodeArguments('getEthBalances(address[])', [addresses]); + const self = this as any as EthBalanceCheckerContract; + const encodedData = self._strictEncodeArguments('getEthBalances(address[])', [addresses + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -52,29 +56,32 @@ export class EthBalanceCheckerContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getEthBalances(address[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(addresses: string[]): string { + getABIEncodedTransactionData( + addresses: string[], + ): string { assert.isArray('addresses', addresses); - const self = (this as any) as EthBalanceCheckerContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getEthBalances(address[])', [addresses]); + const self = this as any as EthBalanceCheckerContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getEthBalances(address[])', [addresses + ]); return abiEncodedTransactionData; }, }; - public static async deployFrom0xArtifactAsync( +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -87,13 +94,15 @@ export class EthBalanceCheckerContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return EthBalanceCheckerContract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return EthBalanceCheckerContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -103,13 +112,17 @@ export class EthBalanceCheckerContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -117,21 +130,18 @@ export class EthBalanceCheckerContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`EthBalanceChecker successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new EthBalanceCheckerContract( - txReceipt.contractAddress as string, - provider, - txDefaults, - ); + const contractInstance = new EthBalanceCheckerContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, inputs: [ { @@ -153,11 +163,11 @@ export class EthBalanceCheckerContract extends BaseContract { ] as ContractAbi; return abi; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('EthBalanceChecker', EthBalanceCheckerContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('EthBalanceChecker', EthBalanceCheckerContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts b/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts index 0cdd34e277..2b78ee980a 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,6 +26,7 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable export type ExchangeEventArgs = @@ -86,6 +84,7 @@ export interface ExchangeAssetProxyRegisteredEventArgs extends DecodedLogArgs { assetProxy: string; } + /* istanbul ignore next */ // tslint:disable:no-parameter-reassignment // tslint:disable-next-line:class-name @@ -95,7 +94,8 @@ export class ExchangeContract extends BaseContract { index_0: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -105,8 +105,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('filled(bytes32)', [index_0]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('filled(bytes32)', [index_0 + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -115,179 +116,128 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('filled(bytes32)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string): string { + getABIEncodedTransactionData( + index_0: string, + ): string { assert.isString('index_0', index_0); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('filled(bytes32)', [index_0]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('filled(bytes32)', [index_0 + ]); return abiEncodedTransactionData; }, }; 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; - }>, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [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), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isArray('orders', orders); + assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [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 + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }>, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isArray('orders', orders); - assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.batchFillOrders.sendTransactionAsync( - orders, - takerAssetFillAmounts, - signatures, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isArray('orders', orders); + assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const txHashPromise = self.batchFillOrders.sendTransactionAsync(orders, + takerAssetFillAmounts, + signatures + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }>, + 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 | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isArray('orders', orders); + assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [orders, + takerAssetFillAmounts, + signatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }> { + ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + > { assert.isArray('orders', orders); assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); assert.isArray('signatures', signatures); @@ -299,11 +249,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [orders, + takerAssetFillAmounts, + signatures + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -312,51 +262,30 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - ); + const abiEncoder = self._lookupAbiEncoder('batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { assert.isArray('orders', orders); assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [orders, + takerAssetFillAmounts, + signatures + ]); return abiEncodedTransactionData; }, }; @@ -365,7 +294,8 @@ export class ExchangeContract extends BaseContract { index_0: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -375,8 +305,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('cancelled(bytes32)', [index_0]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('cancelled(bytes32)', [index_0 + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -385,22 +316,24 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('cancelled(bytes32)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string): string { + getABIEncodedTransactionData( + index_0: string, + ): string { assert.isString('index_0', index_0); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('cancelled(bytes32)', [index_0]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('cancelled(bytes32)', [index_0 + ]); return abiEncodedTransactionData; }, }; @@ -409,32 +342,36 @@ export class ExchangeContract extends BaseContract { hash: string, signerAddress: string, signature: string, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('hash', hash); - assert.isString('signerAddress', signerAddress); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('preSign(bytes32,address,bytes)', [ + assert.isString('hash', hash); + assert.isString('signerAddress', signerAddress); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('preSign(bytes32,address,bytes)', [hash, + signerAddress.toLowerCase(), + signature + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.preSign.estimateGasAsync.bind( + self, hash, signerAddress.toLowerCase(), - signature, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.preSign.estimateGasAsync.bind(self, hash, signerAddress.toLowerCase(), signature), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + signature + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( hash: string, @@ -444,27 +381,25 @@ export class ExchangeContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('hash', hash); - assert.isString('signerAddress', signerAddress); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.preSign.sendTransactionAsync( - hash, - signerAddress.toLowerCase(), - signature, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('hash', hash); + assert.isString('signerAddress', signerAddress); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const txHashPromise = self.preSign.sendTransactionAsync(hash, + signerAddress.toLowerCase(), + signature + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( hash: string, @@ -472,29 +407,28 @@ export class ExchangeContract extends BaseContract { signature: string, txData?: Partial | undefined, ): Promise { - assert.isString('hash', hash); - assert.isString('signerAddress', signerAddress); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('preSign(bytes32,address,bytes)', [ - hash, - signerAddress.toLowerCase(), - signature, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('hash', hash); + assert.isString('signerAddress', signerAddress); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('preSign(bytes32,address,bytes)', [hash, + signerAddress.toLowerCase(), + signature + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( hash: string, @@ -502,7 +436,8 @@ export class ExchangeContract extends BaseContract { signature: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('hash', hash); assert.isString('signerAddress', signerAddress); assert.isString('signature', signature); @@ -514,12 +449,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('preSign(bytes32,address,bytes)', [ - hash, - signerAddress.toLowerCase(), - signature, - ]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('preSign(bytes32,address,bytes)', [hash, + signerAddress.toLowerCase(), + signature + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -528,248 +462,147 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('preSign(bytes32,address,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(hash: string, signerAddress: string, signature: string): string { + getABIEncodedTransactionData( + hash: string, + signerAddress: string, + signature: string, + ): string { assert.isString('hash', hash); assert.isString('signerAddress', signerAddress); assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('preSign(bytes32,address,bytes)', [ - hash, - signerAddress.toLowerCase(), - signature, - ]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('preSign(bytes32,address,bytes)', [hash, + signerAddress.toLowerCase(), + signature + ]); return abiEncodedTransactionData; }, }; 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; - }, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('leftSignature', leftSignature); - assert.isString('rightSignature', rightSignature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - '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)', - [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), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + + + assert.isString('leftSignature', leftSignature); + assert.isString('rightSignature', rightSignature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('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)', [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 + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('leftSignature', leftSignature); - assert.isString('rightSignature', rightSignature); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.matchOrders.sendTransactionAsync( - leftOrder, - rightOrder, - leftSignature, - rightSignature, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + + + assert.isString('leftSignature', leftSignature); + assert.isString('rightSignature', rightSignature); + const self = this as any as ExchangeContract; + const txHashPromise = self.matchOrders.sendTransactionAsync(leftOrder, + rightOrder, + leftSignature, + rightSignature + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }, + 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 | undefined, ): Promise { - assert.isString('leftSignature', leftSignature); - assert.isString('rightSignature', rightSignature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - '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)', - [leftOrder, rightOrder, leftSignature, rightSignature], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + + + assert.isString('leftSignature', leftSignature); + assert.isString('rightSignature', rightSignature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('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)', [leftOrder, + rightOrder, + leftSignature, + rightSignature + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - left: { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }; - right: { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }; - leftMakerAssetSpreadAmount: BigNumber; - }> { + ): Promise<{left: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};right: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};leftMakerAssetSpreadAmount: BigNumber} + > { + + assert.isString('leftSignature', leftSignature); assert.isString('rightSignature', rightSignature); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -780,11 +613,12 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - '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)', - [leftOrder, rightOrder, leftSignature, rightSignature], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('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)', [leftOrder, + rightOrder, + leftSignature, + rightSignature + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -793,227 +627,138 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - '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 abiEncoder = self._lookupAbiEncoder('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)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - left: { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }; - right: { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }; - leftMakerAssetSpreadAmount: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{left: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};right: {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber};leftMakerAssetSpreadAmount: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { + + assert.isString('leftSignature', leftSignature); assert.isString('rightSignature', rightSignature); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - '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)', - [leftOrder, rightOrder, leftSignature, rightSignature], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('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)', [leftOrder, + rightOrder, + leftSignature, + rightSignature + ]); return abiEncodedTransactionData; }, }; 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; - }, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [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), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [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 + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.fillOrderNoThrow.sendTransactionAsync( - order, - takerAssetFillAmount, - signature, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const txHashPromise = self.fillOrderNoThrow.sendTransactionAsync(order, + takerAssetFillAmount, + signature + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }, + 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 | undefined, ): Promise { - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [order, + takerAssetFillAmount, + signature + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }> { + ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + > { + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isString('signature', signature); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -1024,11 +769,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [order, + takerAssetFillAmount, + signature + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1037,55 +782,40 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - ); + const abiEncoder = self._lookupAbiEncoder('fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [order, + takerAssetFillAmount, + signature + ]); return abiEncodedTransactionData; }, }; public assetProxies = { - async callAsync(index_0: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + index_0: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1095,8 +825,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('assetProxies(bytes4)', [index_0]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('assetProxies(bytes4)', [index_0 + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1105,155 +836,106 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('assetProxies(bytes4)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string): string { + getABIEncodedTransactionData( + index_0: string, + ): string { assert.isString('index_0', index_0); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('assetProxies(bytes4)', [index_0]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('assetProxies(bytes4)', [index_0 + ]); return abiEncodedTransactionData; }, }; 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 | undefined, + 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 | undefined, ): Promise { - assert.isArray('orders', orders); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', - [orders], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.batchCancelOrders.estimateGasAsync.bind(self, orders), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isArray('orders', orders); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', [orders + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.batchCancelOrders.estimateGasAsync.bind( + self, + orders + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }>, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isArray('orders', orders); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.batchCancelOrders.sendTransactionAsync(orders, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isArray('orders', orders); + const self = this as any as ExchangeContract; + const txHashPromise = self.batchCancelOrders.sendTransactionAsync(orders + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }>, + 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 | undefined, ): Promise { - assert.isArray('orders', orders); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', - [orders], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isArray('orders', orders); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', [orders + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isArray('orders', orders); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1263,11 +945,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', - [orders], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', [orders + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1276,199 +956,128 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', - ); + const abiEncoder = self._lookupAbiEncoder('batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { assert.isArray('orders', orders); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', - [orders], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', [orders + ]); return abiEncodedTransactionData; }, }; 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; - }>, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [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), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isArray('orders', orders); + assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [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 + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }>, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isArray('orders', orders); - assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.batchFillOrKillOrders.sendTransactionAsync( - orders, - takerAssetFillAmounts, - signatures, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isArray('orders', orders); + assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const txHashPromise = self.batchFillOrKillOrders.sendTransactionAsync(orders, + takerAssetFillAmounts, + signatures + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }>, + 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 | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isArray('orders', orders); + assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [orders, + takerAssetFillAmounts, + signatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }> { + ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + > { assert.isArray('orders', orders); assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); assert.isArray('signatures', signatures); @@ -1480,11 +1089,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [orders, + takerAssetFillAmounts, + signatures + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1493,74 +1102,60 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - ); + const abiEncoder = self._lookupAbiEncoder('batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { assert.isArray('orders', orders); assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [orders, + takerAssetFillAmounts, + signatures + ]); return abiEncodedTransactionData; }, }; public cancelOrdersUpTo = { - async sendTransactionAsync(targetOrderEpoch: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('targetOrderEpoch', targetOrderEpoch); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('cancelOrdersUpTo(uint256)', [targetOrderEpoch]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.cancelOrdersUpTo.estimateGasAsync.bind(self, targetOrderEpoch), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + targetOrderEpoch: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('targetOrderEpoch', targetOrderEpoch); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('cancelOrdersUpTo(uint256)', [targetOrderEpoch + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.cancelOrdersUpTo.estimateGasAsync.bind( + self, + targetOrderEpoch + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( targetOrderEpoch: BigNumber, @@ -1568,45 +1163,51 @@ export class ExchangeContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('targetOrderEpoch', targetOrderEpoch); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.cancelOrdersUpTo.sendTransactionAsync(targetOrderEpoch, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isBigNumber('targetOrderEpoch', targetOrderEpoch); + const self = this as any as ExchangeContract; + const txHashPromise = self.cancelOrdersUpTo.sendTransactionAsync(targetOrderEpoch + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(targetOrderEpoch: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('targetOrderEpoch', targetOrderEpoch); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('cancelOrdersUpTo(uint256)', [targetOrderEpoch]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + targetOrderEpoch: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('targetOrderEpoch', targetOrderEpoch); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('cancelOrdersUpTo(uint256)', [targetOrderEpoch + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( targetOrderEpoch: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('targetOrderEpoch', targetOrderEpoch); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1616,8 +1217,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('cancelOrdersUpTo(uint256)', [targetOrderEpoch]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('cancelOrdersUpTo(uint256)', [targetOrderEpoch + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1626,181 +1228,128 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('cancelOrdersUpTo(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(targetOrderEpoch: BigNumber): string { + getABIEncodedTransactionData( + targetOrderEpoch: BigNumber, + ): string { assert.isBigNumber('targetOrderEpoch', targetOrderEpoch); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('cancelOrdersUpTo(uint256)', [ - targetOrderEpoch, - ]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('cancelOrdersUpTo(uint256)', [targetOrderEpoch + ]); return abiEncodedTransactionData; }, }; 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; - }>, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [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), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isArray('orders', orders); + assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [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 + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }>, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isArray('orders', orders); - assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.batchFillOrdersNoThrow.sendTransactionAsync( - orders, - takerAssetFillAmounts, - signatures, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isArray('orders', orders); + assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const txHashPromise = self.batchFillOrdersNoThrow.sendTransactionAsync(orders, + takerAssetFillAmounts, + signatures + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }>, + 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 | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isArray('orders', orders); + assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [orders, + takerAssetFillAmounts, + signatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }> { + ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + > { assert.isArray('orders', orders); assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); assert.isArray('signatures', signatures); @@ -1812,11 +1361,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [orders, + takerAssetFillAmounts, + signatures + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1825,51 +1374,30 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - ); + const abiEncoder = self._lookupAbiEncoder('batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { assert.isArray('orders', orders); assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])', [orders, + takerAssetFillAmounts, + signatures + ]); return abiEncodedTransactionData; }, }; @@ -1878,7 +1406,8 @@ export class ExchangeContract extends BaseContract { assetProxyId: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('assetProxyId', assetProxyId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1888,8 +1417,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1898,22 +1428,24 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getAssetProxy(bytes4)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(assetProxyId: string): string { + getABIEncodedTransactionData( + assetProxyId: string, + ): string { assert.isString('assetProxyId', assetProxyId); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId + ]); return abiEncodedTransactionData; }, }; @@ -1922,7 +1454,8 @@ export class ExchangeContract extends BaseContract { index_0: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1932,8 +1465,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('transactions(bytes32)', [index_0]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('transactions(bytes32)', [index_0 + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1942,176 +1476,129 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transactions(bytes32)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string): string { + getABIEncodedTransactionData( + index_0: string, + ): string { assert.isString('index_0', index_0); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transactions(bytes32)', [index_0]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transactions(bytes32)', [index_0 + ]); return abiEncodedTransactionData; }, }; 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; - }, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [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), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [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 + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.fillOrKillOrder.sendTransactionAsync( - order, - takerAssetFillAmount, - signature, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const txHashPromise = self.fillOrKillOrder.sendTransactionAsync(order, + takerAssetFillAmount, + signature + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }, + 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 | undefined, ): Promise { - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [order, + takerAssetFillAmount, + signature + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }> { + ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + > { + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isString('signature', signature); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -2122,11 +1609,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [order, + takerAssetFillAmount, + signature + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -2135,50 +1622,30 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - ); + const abiEncoder = self._lookupAbiEncoder('fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [order, + takerAssetFillAmount, + signature + ]); return abiEncodedTransactionData; }, }; @@ -2186,34 +1653,33 @@ export class ExchangeContract extends BaseContract { async sendTransactionAsync( validatorAddress: string, approval: boolean, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('validatorAddress', validatorAddress); - assert.isBoolean('approval', approval); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('setSignatureValidatorApproval(address,bool)', [ + assert.isString('validatorAddress', validatorAddress); + assert.isBoolean('approval', approval); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('setSignatureValidatorApproval(address,bool)', [validatorAddress.toLowerCase(), + approval + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.setSignatureValidatorApproval.estimateGasAsync.bind( + self, validatorAddress.toLowerCase(), - approval, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.setSignatureValidatorApproval.estimateGasAsync.bind( - self, - validatorAddress.toLowerCase(), - approval, - ), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + approval + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( validatorAddress: string, @@ -2222,59 +1688,57 @@ export class ExchangeContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('validatorAddress', validatorAddress); - assert.isBoolean('approval', approval); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.setSignatureValidatorApproval.sendTransactionAsync( - validatorAddress.toLowerCase(), - approval, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('validatorAddress', validatorAddress); + assert.isBoolean('approval', approval); + const self = this as any as ExchangeContract; + const txHashPromise = self.setSignatureValidatorApproval.sendTransactionAsync(validatorAddress.toLowerCase(), + approval + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( validatorAddress: string, approval: boolean, txData?: Partial | undefined, ): Promise { - assert.isString('validatorAddress', validatorAddress); - assert.isBoolean('approval', approval); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('setSignatureValidatorApproval(address,bool)', [ - validatorAddress.toLowerCase(), - approval, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('validatorAddress', validatorAddress); + assert.isBoolean('approval', approval); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('setSignatureValidatorApproval(address,bool)', [validatorAddress.toLowerCase(), + approval + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( validatorAddress: string, approval: boolean, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('validatorAddress', validatorAddress); assert.isBoolean('approval', approval); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -2285,11 +1749,10 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('setSignatureValidatorApproval(address,bool)', [ - validatorAddress.toLowerCase(), - approval, - ]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('setSignatureValidatorApproval(address,bool)', [validatorAddress.toLowerCase(), + approval + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -2298,26 +1761,27 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('setSignatureValidatorApproval(address,bool)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(validatorAddress: string, approval: boolean): string { + getABIEncodedTransactionData( + validatorAddress: string, + approval: boolean, + ): string { assert.isString('validatorAddress', validatorAddress); assert.isBoolean('approval', approval); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'setSignatureValidatorApproval(address,bool)', - [validatorAddress.toLowerCase(), approval], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('setSignatureValidatorApproval(address,bool)', [validatorAddress.toLowerCase(), + approval + ]); return abiEncodedTransactionData; }, }; @@ -2327,7 +1791,8 @@ export class ExchangeContract extends BaseContract { index_1: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.isString('index_1', index_1); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -2338,11 +1803,10 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('allowedValidators(address,address)', [ - index_0.toLowerCase(), - index_1.toLowerCase(), - ]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('allowedValidators(address,address)', [index_0.toLowerCase(), + index_1.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -2351,183 +1815,131 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('allowedValidators(address,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string, index_1: string): string { + getABIEncodedTransactionData( + index_0: string, + index_1: string, + ): string { assert.isString('index_0', index_0); assert.isString('index_1', index_1); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('allowedValidators(address,address)', [ - index_0.toLowerCase(), - index_1.toLowerCase(), - ]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('allowedValidators(address,address)', [index_0.toLowerCase(), + index_1.toLowerCase() + ]); return abiEncodedTransactionData; }, }; 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; - }>, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [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), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isArray('orders', orders); + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [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 + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }>, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isArray('orders', orders); - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.marketSellOrders.sendTransactionAsync( - orders, - takerAssetFillAmount, - signatures, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isArray('orders', orders); + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const txHashPromise = self.marketSellOrders.sendTransactionAsync(orders, + takerAssetFillAmount, + signatures + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }>, + 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 | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, takerAssetFillAmount, signatures], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isArray('orders', orders); + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + takerAssetFillAmount, + signatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }> { + ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + > { assert.isArray('orders', orders); assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isArray('signatures', signatures); @@ -2539,11 +1951,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, takerAssetFillAmount, signatures], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + takerAssetFillAmount, + signatures + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -2552,73 +1964,40 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - ); + const abiEncoder = self._lookupAbiEncoder('marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { assert.isArray('orders', orders); assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, takerAssetFillAmount, signatures], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + takerAssetFillAmount, + signatures + ]); return abiEncodedTransactionData; }, }; 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise> { + ): Promise + > { assert.isArray('orders', orders); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -2628,11 +2007,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', - [orders], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', [orders + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -2641,44 +2018,24 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', - ); + const abiEncoder = self._lookupAbiEncoder('getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< - Array<{ orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }> - >(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { assert.isArray('orders', orders); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', - [orders], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])', [orders + ]); return abiEncodedTransactionData; }, }; @@ -2688,7 +2045,8 @@ export class ExchangeContract extends BaseContract { index_1: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.isString('index_1', index_1); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -2699,11 +2057,10 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('preSigned(bytes32,address)', [ - index_0, - index_1.toLowerCase(), - ]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('preSigned(bytes32,address)', [index_0, + index_1.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -2712,31 +2069,36 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('preSigned(bytes32,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string, index_1: string): string { + getABIEncodedTransactionData( + index_0: string, + index_1: string, + ): string { assert.isString('index_0', index_0); assert.isString('index_1', index_1); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('preSigned(bytes32,address)', [ - index_0, - index_1.toLowerCase(), - ]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('preSigned(bytes32,address)', [index_0, + index_1.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public owner = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -2745,7 +2107,7 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; + const self = this as any as ExchangeContract; const encodedData = self._strictEncodeArguments('owner()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -2755,20 +2117,20 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('owner()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ExchangeContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ExchangeContract; const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); return abiEncodedTransactionData; }, @@ -2780,7 +2142,8 @@ export class ExchangeContract extends BaseContract { signature: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('hash', hash); assert.isString('signerAddress', signerAddress); assert.isString('signature', signature); @@ -2792,12 +2155,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [ - hash, - signerAddress.toLowerCase(), - signature, - ]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [hash, + signerAddress.toLowerCase(), + signature + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -2806,185 +2168,134 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('isValidSignature(bytes32,address,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(hash: string, signerAddress: string, signature: string): string { + getABIEncodedTransactionData( + hash: string, + signerAddress: string, + signature: string, + ): string { assert.isString('hash', hash); assert.isString('signerAddress', signerAddress); assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [ - hash, - signerAddress.toLowerCase(), - signature, - ]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [hash, + signerAddress.toLowerCase(), + signature + ]); return abiEncodedTransactionData; }, }; 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; - }>, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [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), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isArray('orders', orders); + assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [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 + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }>, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isArray('orders', orders); - assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.marketBuyOrdersNoThrow.sendTransactionAsync( - orders, - makerAssetFillAmount, - signatures, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isArray('orders', orders); + assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const txHashPromise = self.marketBuyOrdersNoThrow.sendTransactionAsync(orders, + makerAssetFillAmount, + signatures + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }>, + 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 | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, makerAssetFillAmount, signatures], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isArray('orders', orders); + assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + makerAssetFillAmount, + signatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }> { + ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + > { assert.isArray('orders', orders); assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); assert.isArray('signatures', signatures); @@ -2996,11 +2307,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, makerAssetFillAmount, signatures], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + makerAssetFillAmount, + signatures + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -3009,200 +2320,135 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - ); + const abiEncoder = self._lookupAbiEncoder('marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { assert.isArray('orders', orders); assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, makerAssetFillAmount, signatures], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + makerAssetFillAmount, + signatures + ]); return abiEncodedTransactionData; }, }; 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; - }, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [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), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [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 + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.fillOrder.sendTransactionAsync(order, takerAssetFillAmount, signature, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const txHashPromise = self.fillOrder.sendTransactionAsync(order, + takerAssetFillAmount, + signature + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }, + 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 | undefined, ): Promise { - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [order, + takerAssetFillAmount, + signature + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }> { + ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + > { + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isString('signature', signature); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -3213,11 +2459,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [order, + takerAssetFillAmount, + signature + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -3226,50 +2472,30 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - ); + const abiEncoder = self._lookupAbiEncoder('fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)', [order, + takerAssetFillAmount, + signature + ]); return abiEncodedTransactionData; }, }; @@ -3279,34 +2505,39 @@ export class ExchangeContract extends BaseContract { signerAddress: string, data: string, signature: string, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isBigNumber('salt', salt); - assert.isString('signerAddress', signerAddress); - assert.isString('data', data); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('executeTransaction(uint256,address,bytes,bytes)', [ + assert.isBigNumber('salt', salt); + assert.isString('signerAddress', signerAddress); + assert.isString('data', data); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('executeTransaction(uint256,address,bytes,bytes)', [salt, + signerAddress.toLowerCase(), + data, + signature + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.executeTransaction.estimateGasAsync.bind( + self, salt, signerAddress.toLowerCase(), data, - signature, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.executeTransaction.estimateGasAsync.bind(self, salt, signerAddress.toLowerCase(), data, signature), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + signature + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( salt: BigNumber, @@ -3317,29 +2548,27 @@ export class ExchangeContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('salt', salt); - assert.isString('signerAddress', signerAddress); - assert.isString('data', data); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.executeTransaction.sendTransactionAsync( - salt, - signerAddress.toLowerCase(), - data, - signature, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isBigNumber('salt', salt); + assert.isString('signerAddress', signerAddress); + assert.isString('data', data); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const txHashPromise = self.executeTransaction.sendTransactionAsync(salt, + signerAddress.toLowerCase(), + data, + signature + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( salt: BigNumber, @@ -3348,31 +2577,30 @@ export class ExchangeContract extends BaseContract { signature: string, txData?: Partial | undefined, ): Promise { - assert.isBigNumber('salt', salt); - assert.isString('signerAddress', signerAddress); - assert.isString('data', data); - assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('executeTransaction(uint256,address,bytes,bytes)', [ - salt, - signerAddress.toLowerCase(), - data, - signature, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isBigNumber('salt', salt); + assert.isString('signerAddress', signerAddress); + assert.isString('data', data); + assert.isString('signature', signature); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('executeTransaction(uint256,address,bytes,bytes)', [salt, + signerAddress.toLowerCase(), + data, + signature + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( salt: BigNumber, @@ -3381,7 +2609,8 @@ export class ExchangeContract extends BaseContract { signature: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('salt', salt); assert.isString('signerAddress', signerAddress); assert.isString('data', data); @@ -3394,13 +2623,12 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('executeTransaction(uint256,address,bytes,bytes)', [ - salt, - signerAddress.toLowerCase(), - data, - signature, - ]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('executeTransaction(uint256,address,bytes,bytes)', [salt, + signerAddress.toLowerCase(), + data, + signature + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -3409,51 +2637,63 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('executeTransaction(uint256,address,bytes,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(salt: BigNumber, signerAddress: string, data: string, signature: string): string { + getABIEncodedTransactionData( + salt: BigNumber, + signerAddress: string, + data: string, + signature: string, + ): string { assert.isBigNumber('salt', salt); assert.isString('signerAddress', signerAddress); assert.isString('data', data); assert.isString('signature', signature); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'executeTransaction(uint256,address,bytes,bytes)', - [salt, signerAddress.toLowerCase(), data, signature], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('executeTransaction(uint256,address,bytes,bytes)', [salt, + signerAddress.toLowerCase(), + data, + signature + ]); return abiEncodedTransactionData; }, }; public registerAssetProxy = { - async sendTransactionAsync(assetProxy: string, txData?: Partial | undefined): Promise { - assert.isString('assetProxy', assetProxy); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.registerAssetProxy.estimateGasAsync.bind(self, assetProxy.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + assetProxy: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('assetProxy', assetProxy); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.registerAssetProxy.estimateGasAsync.bind( + self, + assetProxy.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( assetProxy: string, @@ -3461,45 +2701,51 @@ export class ExchangeContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('assetProxy', assetProxy); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.registerAssetProxy.sendTransactionAsync(assetProxy.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('assetProxy', assetProxy); + const self = this as any as ExchangeContract; + const txHashPromise = self.registerAssetProxy.sendTransactionAsync(assetProxy.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(assetProxy: string, txData?: Partial | undefined): Promise { - assert.isString('assetProxy', assetProxy); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + assetProxy: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('assetProxy', assetProxy); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( assetProxy: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('assetProxy', assetProxy); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -3509,8 +2755,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase()]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -3519,46 +2766,35 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('registerAssetProxy(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(assetProxy: string): string { + getABIEncodedTransactionData( + assetProxy: string, + ): string { assert.isString('assetProxy', assetProxy); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address)', [ - assetProxy.toLowerCase(), - ]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase() + ]); return abiEncodedTransactionData; }, }; 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; - }, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }> { + ): Promise<{orderStatus: number;orderHash: string;orderTakerAssetFilledAmount: BigNumber} + > { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -3567,11 +2803,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - [order], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -3580,173 +2814,107 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - ); + const abiEncoder = self._lookupAbiEncoder('getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - orderStatus: number; - orderHash: string; - orderTakerAssetFilledAmount: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{orderStatus: number;orderHash: string;orderTakerAssetFilledAmount: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, - 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 abiEncodedTransactionData = self._strictEncodeArguments( - 'getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - [order], - ); + 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 abiEncodedTransactionData = self._strictEncodeArguments('getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order + ]); return abiEncodedTransactionData; }, }; 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 | undefined, + 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 | undefined, ): Promise { - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - [order], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.cancelOrder.estimateGasAsync.bind(self, order), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.cancelOrder.estimateGasAsync.bind( + self, + order + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - const self = (this as any) as ExchangeContract; - const txHashPromise = self.cancelOrder.sendTransactionAsync(order, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + + const self = this as any as ExchangeContract; + const txHashPromise = self.cancelOrder.sendTransactionAsync(order + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }, + 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 | undefined, ): Promise { - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - [order], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }, + 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 = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -3755,11 +2923,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - [order], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -3768,39 +2934,24 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - ); + const abiEncoder = self._lookupAbiEncoder('cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - 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 abiEncodedTransactionData = self._strictEncodeArguments( - 'cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', - [order], - ); + 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 abiEncodedTransactionData = self._strictEncodeArguments('cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order + ]); return abiEncodedTransactionData; }, }; @@ -3810,7 +2961,8 @@ export class ExchangeContract extends BaseContract { index_1: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.isString('index_1', index_1); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -3821,11 +2973,10 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('orderEpoch(address,address)', [ - index_0.toLowerCase(), - index_1.toLowerCase(), - ]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('orderEpoch(address,address)', [index_0.toLowerCase(), + index_1.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -3834,31 +2985,36 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('orderEpoch(address,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string, index_1: string): string { + getABIEncodedTransactionData( + index_0: string, + index_1: string, + ): string { assert.isString('index_0', index_0); assert.isString('index_1', index_1); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('orderEpoch(address,address)', [ - index_0.toLowerCase(), - index_1.toLowerCase(), - ]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('orderEpoch(address,address)', [index_0.toLowerCase(), + index_1.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public ZRX_ASSET_DATA = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -3867,7 +3023,7 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; + const self = this as any as ExchangeContract; const encodedData = self._strictEncodeArguments('ZRX_ASSET_DATA()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -3877,178 +3033,125 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('ZRX_ASSET_DATA()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ExchangeContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ExchangeContract; const abiEncodedTransactionData = self._strictEncodeArguments('ZRX_ASSET_DATA()', []); return abiEncodedTransactionData; }, }; 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; - }>, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [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), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isArray('orders', orders); + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [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 + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }>, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isArray('orders', orders); - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.marketSellOrdersNoThrow.sendTransactionAsync( - orders, - takerAssetFillAmount, - signatures, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isArray('orders', orders); + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const txHashPromise = self.marketSellOrdersNoThrow.sendTransactionAsync(orders, + takerAssetFillAmount, + signatures + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }>, + 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 | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, takerAssetFillAmount, signatures], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isArray('orders', orders); + assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + takerAssetFillAmount, + signatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }> { + ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + > { assert.isArray('orders', orders); assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isArray('signatures', signatures); @@ -4060,11 +3163,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, takerAssetFillAmount, signatures], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + takerAssetFillAmount, + signatures + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -4073,56 +3176,39 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - ); + const abiEncoder = self._lookupAbiEncoder('marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { assert.isArray('orders', orders); assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, takerAssetFillAmount, signatures], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + takerAssetFillAmount, + signatures + ]); return abiEncodedTransactionData; }, }; public EIP712_DOMAIN_HASH = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -4131,7 +3217,7 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; + const self = this as any as ExchangeContract; const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -4141,178 +3227,125 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ExchangeContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ExchangeContract; const abiEncodedTransactionData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); return abiEncodedTransactionData; }, }; 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; - }>, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [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), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isArray('orders', orders); + assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [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 + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }>, + 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, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isArray('orders', orders); - assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.marketBuyOrders.sendTransactionAsync( - orders, - makerAssetFillAmount, - signatures, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isArray('orders', orders); + assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const txHashPromise = self.marketBuyOrders.sendTransactionAsync(orders, + makerAssetFillAmount, + signatures + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }>, + 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 | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); - assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, makerAssetFillAmount, signatures], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isArray('orders', orders); + assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); + assert.isArray('signatures', signatures); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + makerAssetFillAmount, + signatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }> { + ): Promise<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + > { assert.isArray('orders', orders); assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); assert.isArray('signatures', signatures); @@ -4324,11 +3357,11 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments( - 'marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, makerAssetFillAmount, signatures], - ); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + makerAssetFillAmount, + signatures + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -4337,56 +3370,39 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - ); + const abiEncoder = self._lookupAbiEncoder('marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { assert.isArray('orders', orders); assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); assert.isArray('signatures', signatures); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', - [orders, makerAssetFillAmount, signatures], - ); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])', [orders, + makerAssetFillAmount, + signatures + ]); return abiEncodedTransactionData; }, }; public currentContextAddress = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -4395,7 +3411,7 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; + const self = this as any as ExchangeContract; const encodedData = self._strictEncodeArguments('currentContextAddress()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -4405,44 +3421,51 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('currentContextAddress()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ExchangeContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ExchangeContract; const abiEncodedTransactionData = self._strictEncodeArguments('currentContextAddress()', []); return abiEncodedTransactionData; }, }; public transferOwnership = { - async sendTransactionAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferOwnership.estimateGasAsync.bind(self, newOwner.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferOwnership.estimateGasAsync.bind( + self, + newOwner.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( newOwner: string, @@ -4450,41 +3473,51 @@ export class ExchangeContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('newOwner', newOwner); - const self = (this as any) as ExchangeContract; - const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('newOwner', newOwner); + const self = this as any as ExchangeContract; + const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(newOwner: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + newOwner: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('newOwner', newOwner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -4494,8 +3527,9 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); + const self = this as any as ExchangeContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -4504,29 +3538,33 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(newOwner: string): string { + getABIEncodedTransactionData( + newOwner: string, + ): string { assert.isString('newOwner', newOwner); - const self = (this as any) as ExchangeContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); + const self = this as any as ExchangeContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public VERSION = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -4535,7 +3573,7 @@ export class ExchangeContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ExchangeContract; + const self = this as any as ExchangeContract; const encodedData = self._strictEncodeArguments('VERSION()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -4545,30 +3583,31 @@ export class ExchangeContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('VERSION()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ExchangeContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ExchangeContract; const abiEncodedTransactionData = self._strictEncodeArguments('VERSION()', []); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, - _zrxAssetData: string, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, + _zrxAssetData: string, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -4581,14 +3620,17 @@ export class ExchangeContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return ExchangeContract.deployAsync(bytecode, abi, provider, txDefaults, _zrxAssetData); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return ExchangeContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, _zrxAssetData +); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, - _zrxAssetData: string, + abiDependencies: { [contractName: string]: ContractAbi }, + _zrxAssetData: string, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -4598,17 +3640,20 @@ export class ExchangeContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [_zrxAssetData] = BaseContract._formatABIDataItemList( + [_zrxAssetData +] = BaseContract._formatABIDataItemList( constructorAbi.inputs, - [_zrxAssetData], + [_zrxAssetData +], BaseContract._bigNumberToString, ); const iface = new ethers.utils.Interface(abi); const deployInfo = iface.deployFunction; - const txData = deployInfo.encode(bytecode, [_zrxAssetData]); + const txData = deployInfo.encode(bytecode, [_zrxAssetData +]); const web3Wrapper = new Web3Wrapper(provider); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -4616,17 +3661,19 @@ export class ExchangeContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`Exchange successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new ExchangeContract(txReceipt.contractAddress as string, provider, txDefaults); - contractInstance.constructorArgs = [_zrxAssetData]; + const contractInstance = new ExchangeContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); + contractInstance.constructorArgs = [_zrxAssetData +]; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, inputs: [ { @@ -4645,7 +3692,7 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -4700,7 +3747,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAssetFillAmounts', @@ -4733,14 +3780,14 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -4759,7 +3806,7 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -4776,12 +3823,13 @@ export class ExchangeContract extends BaseContract { }, ], name: 'preSign', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -4836,7 +3884,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'rightOrder', @@ -4890,7 +3938,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'leftSignature', @@ -4927,7 +3975,7 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, { name: 'right', @@ -4949,20 +3997,20 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, { name: 'leftMakerAssetSpreadAmount', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5017,7 +4065,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAssetFillAmount', @@ -5050,14 +4098,14 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -5076,7 +4124,7 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5131,16 +4179,17 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, ], name: 'batchCancelOrders', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5195,7 +4244,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAssetFillAmounts', @@ -5228,14 +4277,14 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5244,12 +4293,13 @@ export class ExchangeContract extends BaseContract { }, ], name: 'cancelOrdersUpTo', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5304,7 +4354,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAssetFillAmounts', @@ -5337,14 +4387,14 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -5363,7 +4413,7 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -5382,7 +4432,7 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5437,7 +4487,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAssetFillAmount', @@ -5470,14 +4520,14 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5490,12 +4540,13 @@ export class ExchangeContract extends BaseContract { }, ], name: 'setSignatureValidatorApproval', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -5518,7 +4569,7 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5573,7 +4624,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAssetFillAmount', @@ -5606,14 +4657,14 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -5668,7 +4719,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, ], name: 'getOrdersInfo', @@ -5689,14 +4740,14 @@ export class ExchangeContract extends BaseContract { name: 'orderTakerAssetFilledAmount', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -5719,9 +4770,10 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'owner', outputs: [ { @@ -5733,7 +4785,7 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -5760,7 +4812,7 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5815,7 +4867,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'makerAssetFillAmount', @@ -5848,14 +4900,14 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5910,7 +4962,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAssetFillAmount', @@ -5943,14 +4995,14 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5971,12 +5023,13 @@ export class ExchangeContract extends BaseContract { }, ], name: 'executeTransaction', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -5985,12 +5038,13 @@ export class ExchangeContract extends BaseContract { }, ], name: 'registerAssetProxy', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -6045,7 +5099,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, ], name: 'getOrderInfo', @@ -6066,14 +5120,14 @@ export class ExchangeContract extends BaseContract { name: 'orderTakerAssetFilledAmount', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -6128,16 +5182,17 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, ], name: 'cancelOrder', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -6160,9 +5215,10 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'ZRX_ASSET_DATA', outputs: [ { @@ -6174,7 +5230,7 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -6229,7 +5285,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAssetFillAmount', @@ -6262,16 +5318,17 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'EIP712_DOMAIN_HASH', outputs: [ { @@ -6283,7 +5340,7 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -6338,7 +5395,7 @@ export class ExchangeContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'makerAssetFillAmount', @@ -6371,16 +5428,17 @@ export class ExchangeContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'currentContextAddress', outputs: [ { @@ -6392,7 +5450,7 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -6401,14 +5459,16 @@ export class ExchangeContract extends BaseContract { }, ], name: 'transferOwnership', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'VERSION', outputs: [ { @@ -6420,19 +5480,20 @@ export class ExchangeContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { inputs: [ { name: '_zrxAssetData', type: 'bytes', }, ], - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'constructor', }, - { + { anonymous: false, inputs: [ { @@ -6452,10 +5513,11 @@ export class ExchangeContract extends BaseContract { }, ], name: 'SignatureValidatorApproval', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -6515,10 +5577,11 @@ export class ExchangeContract extends BaseContract { }, ], name: 'Fill', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -6553,10 +5616,11 @@ export class ExchangeContract extends BaseContract { }, ], name: 'Cancel', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -6576,10 +5640,11 @@ export class ExchangeContract extends BaseContract { }, ], name: 'CancelUpTo', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -6594,7 +5659,8 @@ export class ExchangeContract extends BaseContract { }, ], name: 'AssetProxyRegistered', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -6668,15 +5734,15 @@ export class ExchangeContract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('Exchange', ExchangeContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('Exchange', ExchangeContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( ExchangeContract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts b/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts index d183a2261c..8534657a74 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts @@ -1,7 +1,7 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { BaseContract, PromiseWithTransactionHash } from '@0x/base-contract'; +import { BaseContract,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -21,125 +21,71 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; 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; - }>, + 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; - }>, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); - assert.isArray('signatures', signatures); - assert.isArray('feeOrders', feeOrders); - assert.isArray('feeSignatures', feeSignatures); - assert.isBigNumber('feePercentage', feePercentage); - assert.isString('feeRecipient', feeRecipient); - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', - [ - orders, - makerAssetFillAmount, - signatures, - feeOrders, - feeSignatures, - feePercentage, - feeRecipient.toLowerCase(), - ], - ); - 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.toLowerCase(), - ), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isArray('orders', orders); + assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); + assert.isArray('signatures', signatures); + assert.isArray('feeOrders', feeOrders); + assert.isArray('feeSignatures', feeSignatures); + assert.isBigNumber('feePercentage', feePercentage); + assert.isString('feeRecipient', feeRecipient); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders, + makerAssetFillAmount, + signatures, + feeOrders, + feeSignatures, + feePercentage, + feeRecipient.toLowerCase() + ]); + 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.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }>, + 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; - }>, + 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, @@ -147,158 +93,86 @@ export class ForwarderContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isArray('orders', orders); - assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); - assert.isArray('signatures', signatures); - assert.isArray('feeOrders', feeOrders); - assert.isArray('feeSignatures', feeSignatures); - assert.isBigNumber('feePercentage', feePercentage); - assert.isString('feeRecipient', feeRecipient); - const self = (this as any) as ForwarderContract; - const txHashPromise = self.marketBuyOrdersWithEth.sendTransactionAsync( - orders, - makerAssetFillAmount, - signatures, - feeOrders, - feeSignatures, - feePercentage, - feeRecipient.toLowerCase(), - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isArray('orders', orders); + assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); + assert.isArray('signatures', signatures); + assert.isArray('feeOrders', feeOrders); + assert.isArray('feeSignatures', feeSignatures); + assert.isBigNumber('feePercentage', feePercentage); + assert.isString('feeRecipient', feeRecipient); + const self = this as any as ForwarderContract; + const txHashPromise = self.marketBuyOrdersWithEth.sendTransactionAsync(orders, + makerAssetFillAmount, + signatures, + feeOrders, + feeSignatures, + feePercentage, + feeRecipient.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }>, + 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; - }>, + 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 | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); - assert.isArray('signatures', signatures); - assert.isArray('feeOrders', feeOrders); - assert.isArray('feeSignatures', feeSignatures); - assert.isBigNumber('feePercentage', feePercentage); - assert.isString('feeRecipient', feeRecipient); - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', - [ - orders, - makerAssetFillAmount, - signatures, - feeOrders, - feeSignatures, - feePercentage, - feeRecipient.toLowerCase(), - ], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isArray('orders', orders); + assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); + assert.isArray('signatures', signatures); + assert.isArray('feeOrders', feeOrders); + assert.isArray('feeSignatures', feeSignatures); + assert.isBigNumber('feePercentage', feePercentage); + assert.isString('feeRecipient', feeRecipient); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders, + makerAssetFillAmount, + signatures, + feeOrders, + feeSignatures, + feePercentage, + feeRecipient.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }>, + 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise< - [ - { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }, - { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - } - ] + ): Promise<[{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}, {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}] > { assert.isArray('orders', orders); assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); @@ -315,19 +189,15 @@ export class ForwarderContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', - [ - orders, - makerAssetFillAmount, - signatures, - feeOrders, - feeSignatures, - feePercentage, - feeRecipient.toLowerCase(), - ], - ); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders, + makerAssetFillAmount, + signatures, + feeOrders, + feeSignatures, + feePercentage, + feeRecipient.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -336,70 +206,26 @@ export class ForwarderContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', - ); + const abiEncoder = self._lookupAbiEncoder('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< - [ - { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }, - { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - } - ] - >(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<[{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}, {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}] + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { assert.isArray('orders', orders); assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); assert.isArray('signatures', signatures); @@ -407,19 +233,15 @@ export class ForwarderContract extends BaseContract { assert.isArray('feeSignatures', feeSignatures); assert.isBigNumber('feePercentage', feePercentage); assert.isString('feeRecipient', feeRecipient); - const self = (this as any) as ForwarderContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', - [ - orders, - makerAssetFillAmount, - signatures, - feeOrders, - feeSignatures, - feePercentage, - feeRecipient.toLowerCase(), - ], - ); + const self = this as any as ForwarderContract; + const abiEncodedTransactionData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders, + makerAssetFillAmount, + signatures, + feeOrders, + feeSignatures, + feePercentage, + feeRecipient.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -427,27 +249,33 @@ export class ForwarderContract extends BaseContract { async sendTransactionAsync( assetData: string, amount: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('assetData', assetData); - assert.isBigNumber('amount', amount); - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData, amount]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.withdrawAsset.estimateGasAsync.bind(self, assetData, amount), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isString('assetData', assetData); + assert.isBigNumber('amount', amount); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData, + amount + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.withdrawAsset.estimateGasAsync.bind( + self, + assetData, + amount + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( assetData: string, @@ -456,52 +284,57 @@ export class ForwarderContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('assetData', assetData); - assert.isBigNumber('amount', amount); - const self = (this as any) as ForwarderContract; - const txHashPromise = self.withdrawAsset.sendTransactionAsync(assetData, amount, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('assetData', assetData); + assert.isBigNumber('amount', amount); + const self = this as any as ForwarderContract; + const txHashPromise = self.withdrawAsset.sendTransactionAsync(assetData, + amount + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( assetData: string, amount: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('assetData', assetData); - assert.isBigNumber('amount', amount); - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData, amount]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('assetData', assetData); + assert.isBigNumber('amount', amount); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData, + amount + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( assetData: string, amount: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('assetData', assetData); assert.isBigNumber('amount', amount); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -512,8 +345,10 @@ export class ForwarderContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData, amount]); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData, + amount + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -522,31 +357,36 @@ export class ForwarderContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('withdrawAsset(bytes,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(assetData: string, amount: BigNumber): string { + getABIEncodedTransactionData( + assetData: string, + amount: BigNumber, + ): string { assert.isString('assetData', assetData); assert.isBigNumber('amount', amount); - const self = (this as any) as ForwarderContract; - const abiEncodedTransactionData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [ - assetData, - amount, - ]); + const self = this as any as ForwarderContract; + const abiEncodedTransactionData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData, + amount + ]); return abiEncodedTransactionData; }, }; public owner = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -555,7 +395,7 @@ export class ForwarderContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ForwarderContract; + const self = this as any as ForwarderContract; const encodedData = self._strictEncodeArguments('owner()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -565,125 +405,76 @@ export class ForwarderContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('owner()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ForwarderContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ForwarderContract; const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); return abiEncodedTransactionData; }, }; 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; - }>, + 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; - }>, + 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 | undefined, + txData?: Partial | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isArray('signatures', signatures); - assert.isArray('feeOrders', feeOrders); - assert.isArray('feeSignatures', feeSignatures); - assert.isBigNumber('feePercentage', feePercentage); - assert.isString('feeRecipient', feeRecipient); - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', - [orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient.toLowerCase()], - ); - 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.toLowerCase(), - ), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isArray('orders', orders); + assert.isArray('signatures', signatures); + assert.isArray('feeOrders', feeOrders); + assert.isArray('feeSignatures', feeSignatures); + assert.isBigNumber('feePercentage', feePercentage); + assert.isString('feeRecipient', feeRecipient); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders, + signatures, + feeOrders, + feeSignatures, + feePercentage, + feeRecipient.toLowerCase() + ]); + 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.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( - 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; - }>, + 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; - }>, + 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, @@ -691,145 +482,80 @@ export class ForwarderContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isArray('orders', orders); - assert.isArray('signatures', signatures); - assert.isArray('feeOrders', feeOrders); - assert.isArray('feeSignatures', feeSignatures); - assert.isBigNumber('feePercentage', feePercentage); - assert.isString('feeRecipient', feeRecipient); - const self = (this as any) as ForwarderContract; - const txHashPromise = self.marketSellOrdersWithEth.sendTransactionAsync( - orders, - signatures, - feeOrders, - feeSignatures, - feePercentage, - feeRecipient.toLowerCase(), - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isArray('orders', orders); + assert.isArray('signatures', signatures); + assert.isArray('feeOrders', feeOrders); + assert.isArray('feeSignatures', feeSignatures); + assert.isBigNumber('feePercentage', feePercentage); + assert.isString('feeRecipient', feeRecipient); + const self = this as any as ForwarderContract; + const txHashPromise = self.marketSellOrdersWithEth.sendTransactionAsync(orders, + signatures, + feeOrders, + feeSignatures, + feePercentage, + feeRecipient.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, 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; - }>, + 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; - }>, + 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 | undefined, ): Promise { - assert.isArray('orders', orders); - assert.isArray('signatures', signatures); - assert.isArray('feeOrders', feeOrders); - assert.isArray('feeSignatures', feeSignatures); - assert.isBigNumber('feePercentage', feePercentage); - assert.isString('feeRecipient', feeRecipient); - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', - [orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient.toLowerCase()], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isArray('orders', orders); + assert.isArray('signatures', signatures); + assert.isArray('feeOrders', feeOrders); + assert.isArray('feeSignatures', feeSignatures); + assert.isBigNumber('feePercentage', feePercentage); + assert.isString('feeRecipient', feeRecipient); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders, + signatures, + feeOrders, + feeSignatures, + feePercentage, + feeRecipient.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, 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; - }>, + 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise< - [ - { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }, - { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - } - ] + ): Promise<[{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}, {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}] > { assert.isArray('orders', orders); assert.isArray('signatures', signatures); @@ -845,11 +571,14 @@ export class ForwarderContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', - [orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient.toLowerCase()], - ); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders, + signatures, + feeOrders, + feeSignatures, + feePercentage, + feeRecipient.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -858,103 +587,69 @@ export class ForwarderContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', - ); + const abiEncoder = self._lookupAbiEncoder('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< - [ - { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - }, - { - makerAssetFilledAmount: BigNumber; - takerAssetFilledAmount: BigNumber; - makerFeePaid: BigNumber; - takerFeePaid: BigNumber; - } - ] - >(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<[{makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}, {makerAssetFilledAmount: BigNumber;takerAssetFilledAmount: BigNumber;makerFeePaid: BigNumber;takerFeePaid: BigNumber}] + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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 { + 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 { assert.isArray('orders', orders); assert.isArray('signatures', signatures); assert.isArray('feeOrders', feeOrders); assert.isArray('feeSignatures', feeSignatures); assert.isBigNumber('feePercentage', feePercentage); assert.isString('feeRecipient', feeRecipient); - const self = (this as any) as ForwarderContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', - [orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient.toLowerCase()], - ); + const self = this as any as ForwarderContract; + const abiEncodedTransactionData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders, + signatures, + feeOrders, + feeSignatures, + feePercentage, + feeRecipient.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public transferOwnership = { - async sendTransactionAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferOwnership.estimateGasAsync.bind(self, newOwner.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferOwnership.estimateGasAsync.bind( + self, + newOwner.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( newOwner: string, @@ -962,41 +657,51 @@ export class ForwarderContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('newOwner', newOwner); - const self = (this as any) as ForwarderContract; - const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('newOwner', newOwner); + const self = this as any as ForwarderContract; + const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(newOwner: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + newOwner: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('newOwner', newOwner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -1006,8 +711,9 @@ export class ForwarderContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ForwarderContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); + const self = this as any as ForwarderContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -1016,34 +722,35 @@ export class ForwarderContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(newOwner: string): string { + getABIEncodedTransactionData( + newOwner: string, + ): string { assert.isString('newOwner', newOwner); - const self = (this as any) as ForwarderContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); + const self = this as any as ForwarderContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - public static async deployFrom0xArtifactAsync( +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, - _exchange: string, - _zrxAssetData: string, - _wethAssetData: string, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, + _exchange: string, + _zrxAssetData: string, + _wethAssetData: string, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -1056,24 +763,21 @@ export class ForwarderContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return ForwarderContract.deployAsync( - bytecode, - abi, - provider, - txDefaults, - _exchange, - _zrxAssetData, - _wethAssetData, - ); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return ForwarderContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, _exchange, +_zrxAssetData, +_wethAssetData +); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, - _exchange: string, - _zrxAssetData: string, - _wethAssetData: string, + abiDependencies: { [contractName: string]: ContractAbi }, + _exchange: string, + _zrxAssetData: string, + _wethAssetData: string, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -1083,17 +787,26 @@ export class ForwarderContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [_exchange, _zrxAssetData, _wethAssetData] = BaseContract._formatABIDataItemList( + [_exchange, +_zrxAssetData, +_wethAssetData +] = BaseContract._formatABIDataItemList( constructorAbi.inputs, - [_exchange, _zrxAssetData, _wethAssetData], + [_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 txData = deployInfo.encode(bytecode, [_exchange, +_zrxAssetData, +_wethAssetData +]); const web3Wrapper = new Web3Wrapper(provider); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -1101,17 +814,21 @@ export class ForwarderContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`Forwarder successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new ForwarderContract(txReceipt.contractAddress as string, provider, txDefaults); - contractInstance.constructorArgs = [_exchange, _zrxAssetData, _wethAssetData]; + const contractInstance = new ForwarderContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); + contractInstance.constructorArgs = [_exchange, +_zrxAssetData, +_wethAssetData +]; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: false, inputs: [ { @@ -1166,7 +883,7 @@ export class ForwarderContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'makerAssetFillAmount', @@ -1228,7 +945,7 @@ export class ForwarderContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'feeSignatures', @@ -1265,7 +982,7 @@ export class ForwarderContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, { name: 'feeOrderFillResults', @@ -1287,14 +1004,14 @@ export class ForwarderContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: true, stateMutability: 'payable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1307,14 +1024,16 @@ export class ForwarderContract extends BaseContract { }, ], name: 'withdrawAsset', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'owner', outputs: [ { @@ -1326,7 +1045,7 @@ export class ForwarderContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1381,7 +1100,7 @@ export class ForwarderContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'signatures', @@ -1439,7 +1158,7 @@ export class ForwarderContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'feeSignatures', @@ -1476,7 +1195,7 @@ export class ForwarderContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, { name: 'feeOrderFillResults', @@ -1498,14 +1217,14 @@ export class ForwarderContract extends BaseContract { name: 'takerFeePaid', type: 'uint256', }, - ], + ] }, ], payable: true, stateMutability: 'payable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1514,12 +1233,13 @@ export class ForwarderContract extends BaseContract { }, ], name: 'transferOwnership', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { inputs: [ { name: '_exchange', @@ -1534,14 +1254,17 @@ export class ForwarderContract extends BaseContract { type: 'bytes', }, ], - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'constructor', }, - { - inputs: [], - outputs: [], + { + inputs: [ + ], + outputs: [ + ], payable: true, stateMutability: 'payable', type: 'fallback', @@ -1549,11 +1272,11 @@ export class ForwarderContract extends BaseContract { ] as ContractAbi; return abi; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('Forwarder', ForwarderContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('Forwarder', ForwarderContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/i_asset_proxy.ts b/packages/abi-gen-wrappers/src/generated-wrappers/i_asset_proxy.ts index 08753c6a21..177f842968 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/i_asset_proxy.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/i_asset_proxy.ts @@ -1,7 +1,7 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { BaseContract, PromiseWithTransactionHash } from '@0x/base-contract'; +import { BaseContract,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -21,32 +21,41 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; 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 IAssetProxyContract extends BaseContract { public addAuthorizedAddress = { - async sendTransactionAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.addAuthorizedAddress.estimateGasAsync.bind(self, target.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.addAuthorizedAddress.estimateGasAsync.bind( + self, + target.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -54,41 +63,51 @@ export class IAssetProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - const self = (this as any) as IAssetProxyContract; - const txHashPromise = self.addAuthorizedAddress.sendTransactionAsync(target.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + const self = this as any as IAssetProxyContract; + const txHashPromise = self.addAuthorizedAddress.sendTransactionAsync(target.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(target: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + target: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('target', target); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -98,8 +117,9 @@ export class IAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -108,47 +128,54 @@ export class IAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string): string { + getABIEncodedTransactionData( + target: string, + ): string { assert.isString('target', target); - const self = (this as any) as IAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); + const self = this as any as IAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public removeAuthorizedAddress = { - async sendTransactionAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.removeAuthorizedAddress.estimateGasAsync.bind(self, target.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.removeAuthorizedAddress.estimateGasAsync.bind( + self, + target.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -156,41 +183,51 @@ export class IAssetProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - const self = (this as any) as IAssetProxyContract; - const txHashPromise = self.removeAuthorizedAddress.sendTransactionAsync(target.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + const self = this as any as IAssetProxyContract; + const txHashPromise = self.removeAuthorizedAddress.sendTransactionAsync(target.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(target: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + target: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('target', target); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -200,8 +237,9 @@ export class IAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -210,24 +248,24 @@ export class IAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string): string { + getABIEncodedTransactionData( + target: string, + ): string { assert.isString('target', target); - const self = (this as any) as IAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); + const self = this as any as IAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -235,30 +273,33 @@ export class IAssetProxyContract extends BaseContract { async sendTransactionAsync( target: string, index: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind( + self, target.toLowerCase(), - index, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target.toLowerCase(), index), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + index + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -267,59 +308,57 @@ export class IAssetProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as IAssetProxyContract; - const txHashPromise = self.removeAuthorizedAddressAtIndex.sendTransactionAsync( - target.toLowerCase(), - index, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as IAssetProxyContract; + const txHashPromise = self.removeAuthorizedAddressAtIndex.sendTransactionAsync(target.toLowerCase(), + index + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( target: string, index: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ - target.toLowerCase(), - index, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( target: string, index: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('target', target); assert.isBigNumber('index', index); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -330,11 +369,10 @@ export class IAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ - target.toLowerCase(), - index, - ]); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -343,26 +381,27 @@ export class IAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string, index: BigNumber): string { + getABIEncodedTransactionData( + target: string, + index: BigNumber, + ): string { assert.isString('target', target); assert.isBigNumber('index', index); - const self = (this as any) as IAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'removeAuthorizedAddressAtIndex(address,uint256)', - [target.toLowerCase(), index], - ); + const self = this as any as IAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); return abiEncodedTransactionData; }, }; @@ -372,34 +411,39 @@ export class IAssetProxyContract extends BaseContract { from: string, to: string, amount: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('assetData', assetData); - assert.isString('from', from); - assert.isString('to', to); - assert.isBigNumber('amount', amount); - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('transferFrom(bytes,address,address,uint256)', [ + assert.isString('assetData', assetData); + assert.isString('from', from); + assert.isString('to', to); + assert.isBigNumber('amount', amount); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('transferFrom(bytes,address,address,uint256)', [assetData, + from.toLowerCase(), + to.toLowerCase(), + amount + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferFrom.estimateGasAsync.bind( + self, assetData, from.toLowerCase(), to.toLowerCase(), - amount, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferFrom.estimateGasAsync.bind(self, assetData, from.toLowerCase(), to.toLowerCase(), amount), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + amount + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( assetData: string, @@ -410,29 +454,27 @@ export class IAssetProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('assetData', assetData); - assert.isString('from', from); - assert.isString('to', to); - assert.isBigNumber('amount', amount); - const self = (this as any) as IAssetProxyContract; - const txHashPromise = self.transferFrom.sendTransactionAsync( - assetData, - from.toLowerCase(), - to.toLowerCase(), - amount, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('assetData', assetData); + assert.isString('from', from); + assert.isString('to', to); + assert.isBigNumber('amount', amount); + const self = this as any as IAssetProxyContract; + const txHashPromise = self.transferFrom.sendTransactionAsync(assetData, + from.toLowerCase(), + to.toLowerCase(), + amount + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( assetData: string, @@ -441,31 +483,30 @@ export class IAssetProxyContract extends BaseContract { amount: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('assetData', assetData); - assert.isString('from', from); - assert.isString('to', to); - assert.isBigNumber('amount', amount); - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('transferFrom(bytes,address,address,uint256)', [ - assetData, - from.toLowerCase(), - to.toLowerCase(), - amount, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('assetData', assetData); + assert.isString('from', from); + assert.isString('to', to); + assert.isBigNumber('amount', amount); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('transferFrom(bytes,address,address,uint256)', [assetData, + from.toLowerCase(), + to.toLowerCase(), + amount + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( assetData: string, @@ -474,7 +515,8 @@ export class IAssetProxyContract extends BaseContract { amount: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('assetData', assetData); assert.isString('from', from); assert.isString('to', to); @@ -487,13 +529,12 @@ export class IAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('transferFrom(bytes,address,address,uint256)', [ - assetData, - from.toLowerCase(), - to.toLowerCase(), - amount, - ]); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('transferFrom(bytes,address,address,uint256)', [assetData, + from.toLowerCase(), + to.toLowerCase(), + amount + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -502,33 +543,42 @@ export class IAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferFrom(bytes,address,address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(assetData: string, from: string, to: string, amount: BigNumber): string { + getABIEncodedTransactionData( + assetData: string, + from: string, + to: string, + amount: BigNumber, + ): string { assert.isString('assetData', assetData); assert.isString('from', from); assert.isString('to', to); assert.isBigNumber('amount', amount); - const self = (this as any) as IAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'transferFrom(bytes,address,address,uint256)', - [assetData, from.toLowerCase(), to.toLowerCase(), amount], - ); + const self = this as any as IAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(bytes,address,address,uint256)', [assetData, + from.toLowerCase(), + to.toLowerCase(), + amount + ]); return abiEncodedTransactionData; }, }; public getProxyId = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -537,7 +587,7 @@ export class IAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as IAssetProxyContract; + const self = this as any as IAssetProxyContract; const encodedData = self._strictEncodeArguments('getProxyId()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -547,26 +597,30 @@ export class IAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getProxyId()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as IAssetProxyContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as IAssetProxyContract; const abiEncodedTransactionData = self._strictEncodeArguments('getProxyId()', []); return abiEncodedTransactionData; }, }; public getAuthorizedAddresses = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -575,7 +629,7 @@ export class IAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as IAssetProxyContract; + const self = this as any as IAssetProxyContract; const encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -585,44 +639,51 @@ export class IAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as IAssetProxyContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as IAssetProxyContract; const abiEncodedTransactionData = self._strictEncodeArguments('getAuthorizedAddresses()', []); return abiEncodedTransactionData; }, }; public transferOwnership = { - async sendTransactionAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferOwnership.estimateGasAsync.bind(self, newOwner.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferOwnership.estimateGasAsync.bind( + self, + newOwner.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( newOwner: string, @@ -630,41 +691,51 @@ export class IAssetProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('newOwner', newOwner); - const self = (this as any) as IAssetProxyContract; - const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('newOwner', newOwner); + const self = this as any as IAssetProxyContract; + const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(newOwner: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + newOwner: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('newOwner', newOwner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -674,8 +745,9 @@ export class IAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as IAssetProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); + const self = this as any as IAssetProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -684,31 +756,32 @@ export class IAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(newOwner: string): string { + getABIEncodedTransactionData( + newOwner: string, + ): string { assert.isString('newOwner', newOwner); - const self = (this as any) as IAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); + const self = this as any as IAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - public static async deployFrom0xArtifactAsync( +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -721,13 +794,15 @@ export class IAssetProxyContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return IAssetProxyContract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return IAssetProxyContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -737,13 +812,17 @@ export class IAssetProxyContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -751,17 +830,18 @@ export class IAssetProxyContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`IAssetProxy successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new IAssetProxyContract(txReceipt.contractAddress as string, provider, txDefaults); + const contractInstance = new IAssetProxyContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: false, inputs: [ { @@ -770,12 +850,13 @@ export class IAssetProxyContract extends BaseContract { }, ], name: 'addAuthorizedAddress', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -784,12 +865,13 @@ export class IAssetProxyContract extends BaseContract { }, ], name: 'removeAuthorizedAddress', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -802,12 +884,13 @@ export class IAssetProxyContract extends BaseContract { }, ], name: 'removeAuthorizedAddressAtIndex', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -828,14 +911,16 @@ export class IAssetProxyContract extends BaseContract { }, ], name: 'transferFrom', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'getProxyId', outputs: [ { @@ -847,9 +932,10 @@ export class IAssetProxyContract extends BaseContract { stateMutability: 'pure', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'getAuthorizedAddresses', outputs: [ { @@ -861,7 +947,7 @@ export class IAssetProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -870,7 +956,8 @@ export class IAssetProxyContract extends BaseContract { }, ], name: 'transferOwnership', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', @@ -878,11 +965,11 @@ export class IAssetProxyContract extends BaseContract { ] as ContractAbi; return abi; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('IAssetProxy', IAssetProxyContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('IAssetProxy', IAssetProxyContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts b/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts index 5f32cf4fea..ace17f02b1 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts @@ -1,7 +1,7 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { BaseContract, PromiseWithTransactionHash } from '@0x/base-contract'; +import { BaseContract,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -21,8 +21,10 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; 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 @@ -34,7 +36,8 @@ export class IValidatorContract extends BaseContract { signature: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('hash', hash); assert.isString('signerAddress', signerAddress); assert.isString('signature', signature); @@ -46,12 +49,11 @@ export class IValidatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as IValidatorContract; - const encodedData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [ - hash, - signerAddress.toLowerCase(), - signature, - ]); + const self = this as any as IValidatorContract; + const encodedData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [hash, + signerAddress.toLowerCase(), + signature + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -60,35 +62,38 @@ export class IValidatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('isValidSignature(bytes32,address,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(hash: string, signerAddress: string, signature: string): string { + getABIEncodedTransactionData( + hash: string, + signerAddress: string, + signature: string, + ): string { assert.isString('hash', hash); assert.isString('signerAddress', signerAddress); assert.isString('signature', signature); - const self = (this as any) as IValidatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [ - hash, - signerAddress.toLowerCase(), - signature, - ]); + const self = this as any as IValidatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [hash, + signerAddress.toLowerCase(), + signature + ]); return abiEncodedTransactionData; }, }; - public static async deployFrom0xArtifactAsync( +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -101,13 +106,15 @@ export class IValidatorContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return IValidatorContract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return IValidatorContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -117,13 +124,17 @@ export class IValidatorContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -131,17 +142,18 @@ export class IValidatorContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`IValidator successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new IValidatorContract(txReceipt.contractAddress as string, provider, txDefaults); + const contractInstance = new IValidatorContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, inputs: [ { @@ -171,11 +183,11 @@ export class IValidatorContract extends BaseContract { ] as ContractAbi; return abi; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('IValidator', IValidatorContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('IValidator', IValidatorContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts b/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts index 3f653ea9c3..4b8ac08133 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts @@ -1,7 +1,7 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { BaseContract, PromiseWithTransactionHash } from '@0x/base-contract'; +import { BaseContract,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -21,8 +21,10 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; 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 @@ -33,7 +35,8 @@ export class IWalletContract extends BaseContract { signature: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('hash', hash); assert.isString('signature', signature); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -44,8 +47,10 @@ export class IWalletContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as IWalletContract; - const encodedData = self._strictEncodeArguments('isValidSignature(bytes32,bytes)', [hash, signature]); + const self = this as any as IWalletContract; + const encodedData = self._strictEncodeArguments('isValidSignature(bytes32,bytes)', [hash, + signature + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -54,33 +59,35 @@ export class IWalletContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('isValidSignature(bytes32,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(hash: string, signature: string): string { + getABIEncodedTransactionData( + hash: string, + signature: string, + ): string { assert.isString('hash', hash); assert.isString('signature', signature); - const self = (this as any) as IWalletContract; - const abiEncodedTransactionData = self._strictEncodeArguments('isValidSignature(bytes32,bytes)', [ - hash, - signature, - ]); + const self = this as any as IWalletContract; + const abiEncodedTransactionData = self._strictEncodeArguments('isValidSignature(bytes32,bytes)', [hash, + signature + ]); return abiEncodedTransactionData; }, }; - public static async deployFrom0xArtifactAsync( +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -93,13 +100,15 @@ export class IWalletContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return IWalletContract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return IWalletContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -109,13 +118,17 @@ export class IWalletContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -123,17 +136,18 @@ export class IWalletContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`IWallet successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new IWalletContract(txReceipt.contractAddress as string, provider, txDefaults); + const contractInstance = new IWalletContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, inputs: [ { @@ -159,11 +173,11 @@ export class IWalletContract extends BaseContract { ] as ContractAbi; return abi; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('IWallet', IWalletContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('IWallet', IWalletContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts b/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts index 23da203f8b..746cba577e 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,6 +26,7 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable export type MultiAssetProxyEventArgs = @@ -57,12 +55,18 @@ export interface MultiAssetProxyAssetProxyRegisteredEventArgs extends DecodedLog assetProxy: string; } + /* istanbul ignore next */ // tslint:disable:no-parameter-reassignment // tslint:disable-next-line:class-name export class MultiAssetProxyContract extends BaseContract { public assetProxies = { - async callAsync(index_0: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + index_0: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -72,8 +76,9 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('assetProxies(bytes4)', [index_0]); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('assetProxies(bytes4)', [index_0 + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -82,45 +87,54 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('assetProxies(bytes4)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string): string { + getABIEncodedTransactionData( + index_0: string, + ): string { assert.isString('index_0', index_0); - const self = (this as any) as MultiAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('assetProxies(bytes4)', [index_0]); + const self = this as any as MultiAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('assetProxies(bytes4)', [index_0 + ]); return abiEncodedTransactionData; }, }; public addAuthorizedAddress = { - async sendTransactionAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.addAuthorizedAddress.estimateGasAsync.bind(self, target.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.addAuthorizedAddress.estimateGasAsync.bind( + self, + target.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -128,41 +142,51 @@ export class MultiAssetProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - const self = (this as any) as MultiAssetProxyContract; - const txHashPromise = self.addAuthorizedAddress.sendTransactionAsync(target.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + const self = this as any as MultiAssetProxyContract; + const txHashPromise = self.addAuthorizedAddress.sendTransactionAsync(target.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(target: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + target: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('target', target); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -172,8 +196,9 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase()]); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -182,24 +207,24 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string): string { + getABIEncodedTransactionData( + target: string, + ): string { assert.isString('target', target); - const self = (this as any) as MultiAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); + const self = this as any as MultiAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -208,7 +233,8 @@ export class MultiAssetProxyContract extends BaseContract { index_0: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isBigNumber('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -218,8 +244,9 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0]); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0 + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -228,22 +255,24 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('authorities(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: BigNumber): string { + getABIEncodedTransactionData( + index_0: BigNumber, + ): string { assert.isBigNumber('index_0', index_0); - const self = (this as any) as MultiAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('authorities(uint256)', [index_0]); + const self = this as any as MultiAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('authorities(uint256)', [index_0 + ]); return abiEncodedTransactionData; }, }; @@ -252,7 +281,8 @@ export class MultiAssetProxyContract extends BaseContract { assetProxyId: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('assetProxyId', assetProxyId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -262,8 +292,9 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId]); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -272,45 +303,54 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getAssetProxy(bytes4)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(assetProxyId: string): string { + getABIEncodedTransactionData( + assetProxyId: string, + ): string { assert.isString('assetProxyId', assetProxyId); - const self = (this as any) as MultiAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId]); + const self = this as any as MultiAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId + ]); return abiEncodedTransactionData; }, }; public removeAuthorizedAddress = { - async sendTransactionAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.removeAuthorizedAddress.estimateGasAsync.bind(self, target.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.removeAuthorizedAddress.estimateGasAsync.bind( + self, + target.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -318,41 +358,51 @@ export class MultiAssetProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - const self = (this as any) as MultiAssetProxyContract; - const txHashPromise = self.removeAuthorizedAddress.sendTransactionAsync(target.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + const self = this as any as MultiAssetProxyContract; + const txHashPromise = self.removeAuthorizedAddress.sendTransactionAsync(target.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(target: string, txData?: Partial | undefined): Promise { - assert.isString('target', target); - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + target: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('target', target); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(target: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + target: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('target', target); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -362,8 +412,9 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase()]); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -372,29 +423,33 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string): string { + getABIEncodedTransactionData( + target: string, + ): string { assert.isString('target', target); - const self = (this as any) as MultiAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); + const self = this as any as MultiAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public owner = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -403,7 +458,7 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; + const self = this as any as MultiAssetProxyContract; const encodedData = self._strictEncodeArguments('owner()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -413,20 +468,20 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('owner()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as MultiAssetProxyContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as MultiAssetProxyContract; const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); return abiEncodedTransactionData; }, @@ -435,30 +490,33 @@ export class MultiAssetProxyContract extends BaseContract { async sendTransactionAsync( target: string, index: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind( + self, target.toLowerCase(), - index, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target.toLowerCase(), index), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + index + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( target: string, @@ -467,59 +525,57 @@ export class MultiAssetProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as MultiAssetProxyContract; - const txHashPromise = self.removeAuthorizedAddressAtIndex.sendTransactionAsync( - target.toLowerCase(), - index, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as MultiAssetProxyContract; + const txHashPromise = self.removeAuthorizedAddressAtIndex.sendTransactionAsync(target.toLowerCase(), + index + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( target: string, index: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('target', target); - assert.isBigNumber('index', index); - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ - target.toLowerCase(), - index, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('target', target); + assert.isBigNumber('index', index); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( target: string, index: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('target', target); assert.isBigNumber('index', index); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -530,11 +586,10 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ - target.toLowerCase(), - index, - ]); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -543,31 +598,36 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string, index: BigNumber): string { + getABIEncodedTransactionData( + target: string, + index: BigNumber, + ): string { assert.isString('target', target); assert.isBigNumber('index', index); - const self = (this as any) as MultiAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'removeAuthorizedAddressAtIndex(address,uint256)', - [target.toLowerCase(), index], - ); + const self = this as any as MultiAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target.toLowerCase(), + index + ]); return abiEncodedTransactionData; }, }; public getProxyId = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -576,7 +636,7 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; + const self = this as any as MultiAssetProxyContract; const encodedData = self._strictEncodeArguments('getProxyId()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -586,20 +646,20 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getProxyId()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as MultiAssetProxyContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as MultiAssetProxyContract; const abiEncodedTransactionData = self._strictEncodeArguments('getProxyId()', []); return abiEncodedTransactionData; }, @@ -609,7 +669,8 @@ export class MultiAssetProxyContract extends BaseContract { index_0: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -619,8 +680,9 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('authorized(address)', [index_0.toLowerCase()]); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('authorized(address)', [index_0.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -629,47 +691,54 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('authorized(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string): string { + getABIEncodedTransactionData( + index_0: string, + ): string { assert.isString('index_0', index_0); - const self = (this as any) as MultiAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('authorized(address)', [ - index_0.toLowerCase(), - ]); + const self = this as any as MultiAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('authorized(address)', [index_0.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public registerAssetProxy = { - async sendTransactionAsync(assetProxy: string, txData?: Partial | undefined): Promise { - assert.isString('assetProxy', assetProxy); - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.registerAssetProxy.estimateGasAsync.bind(self, assetProxy.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + assetProxy: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('assetProxy', assetProxy); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.registerAssetProxy.estimateGasAsync.bind( + self, + assetProxy.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( assetProxy: string, @@ -677,45 +746,51 @@ export class MultiAssetProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('assetProxy', assetProxy); - const self = (this as any) as MultiAssetProxyContract; - const txHashPromise = self.registerAssetProxy.sendTransactionAsync(assetProxy.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('assetProxy', assetProxy); + const self = this as any as MultiAssetProxyContract; + const txHashPromise = self.registerAssetProxy.sendTransactionAsync(assetProxy.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(assetProxy: string, txData?: Partial | undefined): Promise { - assert.isString('assetProxy', assetProxy); - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + assetProxy: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('assetProxy', assetProxy); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( assetProxy: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('assetProxy', assetProxy); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -725,8 +800,9 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase()]); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -735,29 +811,33 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('registerAssetProxy(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(assetProxy: string): string { + getABIEncodedTransactionData( + assetProxy: string, + ): string { assert.isString('assetProxy', assetProxy); - const self = (this as any) as MultiAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address)', [ - assetProxy.toLowerCase(), - ]); + const self = this as any as MultiAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public getAuthorizedAddresses = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -766,7 +846,7 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; + const self = this as any as MultiAssetProxyContract; const encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -776,44 +856,51 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as MultiAssetProxyContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as MultiAssetProxyContract; const abiEncodedTransactionData = self._strictEncodeArguments('getAuthorizedAddresses()', []); return abiEncodedTransactionData; }, }; public transferOwnership = { - async sendTransactionAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferOwnership.estimateGasAsync.bind(self, newOwner.toLowerCase()), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferOwnership.estimateGasAsync.bind( + self, + newOwner.toLowerCase() + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( newOwner: string, @@ -821,41 +908,51 @@ export class MultiAssetProxyContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('newOwner', newOwner); - const self = (this as any) as MultiAssetProxyContract; - const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase(), txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('newOwner', newOwner); + const self = this as any as MultiAssetProxyContract; + const txHashPromise = self.transferOwnership.sendTransactionAsync(newOwner.toLowerCase() + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(newOwner: string, txData?: Partial | undefined): Promise { - assert.isString('newOwner', newOwner); - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + newOwner: string, + txData?: Partial | undefined, + ): Promise { + assert.isString('newOwner', newOwner); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(newOwner: string, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + newOwner: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isString('newOwner', newOwner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -865,8 +962,9 @@ export class MultiAssetProxyContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as MultiAssetProxyContract; - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); + const self = this as any as MultiAssetProxyContract; + const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -875,32 +973,33 @@ export class MultiAssetProxyContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(newOwner: string): string { + getABIEncodedTransactionData( + newOwner: string, + ): string { assert.isString('newOwner', newOwner); - const self = (this as any) as MultiAssetProxyContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); + const self = this as any as MultiAssetProxyContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -913,13 +1012,15 @@ export class MultiAssetProxyContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return MultiAssetProxyContract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return MultiAssetProxyContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -929,13 +1030,17 @@ export class MultiAssetProxyContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -943,17 +1048,18 @@ export class MultiAssetProxyContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`MultiAssetProxy successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new MultiAssetProxyContract(txReceipt.contractAddress as string, provider, txDefaults); + const contractInstance = new MultiAssetProxyContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, inputs: [ { @@ -972,7 +1078,7 @@ export class MultiAssetProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -981,12 +1087,13 @@ export class MultiAssetProxyContract extends BaseContract { }, ], name: 'addAuthorizedAddress', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1005,7 +1112,7 @@ export class MultiAssetProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1024,7 +1131,7 @@ export class MultiAssetProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1033,14 +1140,16 @@ export class MultiAssetProxyContract extends BaseContract { }, ], name: 'removeAuthorizedAddress', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'owner', outputs: [ { @@ -1052,7 +1161,7 @@ export class MultiAssetProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1065,14 +1174,16 @@ export class MultiAssetProxyContract extends BaseContract { }, ], name: 'removeAuthorizedAddressAtIndex', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'getProxyId', outputs: [ { @@ -1084,7 +1195,7 @@ export class MultiAssetProxyContract extends BaseContract { stateMutability: 'pure', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1103,7 +1214,7 @@ export class MultiAssetProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1112,14 +1223,16 @@ export class MultiAssetProxyContract extends BaseContract { }, ], name: 'registerAssetProxy', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'getAuthorizedAddresses', outputs: [ { @@ -1131,7 +1244,7 @@ export class MultiAssetProxyContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1140,19 +1253,22 @@ export class MultiAssetProxyContract extends BaseContract { }, ], name: 'transferOwnership', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { - inputs: [], - outputs: [], + { + inputs: [ + ], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'fallback', }, - { + { anonymous: false, inputs: [ { @@ -1167,10 +1283,11 @@ export class MultiAssetProxyContract extends BaseContract { }, ], name: 'AuthorizedAddressAdded', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -1185,10 +1302,11 @@ export class MultiAssetProxyContract extends BaseContract { }, ], name: 'AuthorizedAddressRemoved', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -1203,7 +1321,8 @@ export class MultiAssetProxyContract extends BaseContract { }, ], name: 'AssetProxyRegistered', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -1277,15 +1396,15 @@ export class MultiAssetProxyContract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('MultiAssetProxy', MultiAssetProxyContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('MultiAssetProxy', MultiAssetProxyContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( MultiAssetProxyContract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts b/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts index bf0e009c32..bd2513638d 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts @@ -1,7 +1,7 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { BaseContract, PromiseWithTransactionHash } from '@0x/base-contract'; +import { BaseContract,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -21,46 +21,23 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; 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; - }, + 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 = {}, 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; - } - ] + ): Promise<[{orderStatus: number;orderHash: string;orderTakerAssetFilledAmount: BigNumber}, {makerBalance: BigNumber;makerAllowance: BigNumber;takerBalance: BigNumber;takerAllowance: BigNumber;makerZrxBalance: BigNumber;makerZrxAllowance: BigNumber;takerZrxBalance: BigNumber;takerZrxAllowance: BigNumber}] > { + assert.isString('takerAddress', takerAddress); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -70,11 +47,10 @@ export class OrderValidatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as OrderValidatorContract; - const encodedData = self._strictEncodeArguments( - 'getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', - [order, takerAddress.toLowerCase()], - ); + const self = this as any as OrderValidatorContract; + const encodedData = self._strictEncodeArguments('getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', [order, + takerAddress.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -83,57 +59,27 @@ export class OrderValidatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', - ); + const abiEncoder = self._lookupAbiEncoder('getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< - [ - { orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }, - { - makerBalance: BigNumber; - makerAllowance: BigNumber; - takerBalance: BigNumber; - takerAllowance: BigNumber; - makerZrxBalance: BigNumber; - makerZrxAllowance: BigNumber; - takerZrxBalance: BigNumber; - takerZrxAllowance: BigNumber; - } - ] - >(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<[{orderStatus: number;orderHash: string;orderTakerAssetFilledAmount: BigNumber}, {makerBalance: BigNumber;makerAllowance: BigNumber;takerBalance: BigNumber;takerAllowance: BigNumber;makerZrxBalance: BigNumber;makerZrxAllowance: BigNumber;takerZrxBalance: BigNumber;takerZrxAllowance: BigNumber}] + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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; - }, - takerAddress: string, - ): string { + 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, + ): string { + assert.isString('takerAddress', takerAddress); - const self = (this as any) as OrderValidatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', - [order, takerAddress.toLowerCase()], - ); + const self = this as any as OrderValidatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', [order, + takerAddress.toLowerCase() + ]); return abiEncodedTransactionData; }, }; @@ -143,7 +89,8 @@ export class OrderValidatorContract extends BaseContract { assetData: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise<[BigNumber, BigNumber]> { + ): Promise<[BigNumber, BigNumber] + > { assert.isString('target', target); assert.isString('assetData', assetData); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -154,11 +101,10 @@ export class OrderValidatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as OrderValidatorContract; - const encodedData = self._strictEncodeArguments('getBalanceAndAllowance(address,bytes)', [ - target.toLowerCase(), - assetData, - ]); + const self = this as any as OrderValidatorContract; + const encodedData = self._strictEncodeArguments('getBalanceAndAllowance(address,bytes)', [target.toLowerCase(), + assetData + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -167,62 +113,37 @@ export class OrderValidatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getBalanceAndAllowance(address,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber]>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber] + >(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string, assetData: string): string { + getABIEncodedTransactionData( + target: string, + assetData: string, + ): string { assert.isString('target', target); assert.isString('assetData', assetData); - const self = (this as any) as OrderValidatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getBalanceAndAllowance(address,bytes)', [ - target.toLowerCase(), - assetData, - ]); + const self = this as any as OrderValidatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getBalanceAndAllowance(address,bytes)', [target.toLowerCase(), + assetData + ]); return abiEncodedTransactionData; }, }; 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; - }>, + 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 = {}, 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; - }> - ] + ): 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}>] > { assert.isArray('orders', orders); assert.isArray('takerAddresses', takerAddresses); @@ -234,11 +155,10 @@ export class OrderValidatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as OrderValidatorContract; - const encodedData = self._strictEncodeArguments( - 'getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', - [orders, takerAddresses], - ); + const self = this as any as OrderValidatorContract; + const encodedData = self._strictEncodeArguments('getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', [orders, + takerAddresses + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -247,91 +167,37 @@ export class OrderValidatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', - ); + const abiEncoder = self._lookupAbiEncoder('getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< - [ - Array<{ orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }>, - Array<{ - makerBalance: BigNumber; - makerAllowance: BigNumber; - takerBalance: BigNumber; - takerAllowance: BigNumber; - makerZrxBalance: BigNumber; - makerZrxAllowance: BigNumber; - takerZrxBalance: BigNumber; - takerZrxAllowance: BigNumber; - }> - ] - >(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<[Array<{orderStatus: number;orderHash: string;orderTakerAssetFilledAmount: BigNumber}>, Array<{makerBalance: BigNumber;makerAllowance: BigNumber;takerBalance: BigNumber;takerAllowance: BigNumber;makerZrxBalance: BigNumber;makerZrxAllowance: BigNumber;takerZrxBalance: BigNumber;takerZrxAllowance: BigNumber}>] + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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; - }>, - takerAddresses: string[], - ): string { + 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[], + ): string { assert.isArray('orders', orders); assert.isArray('takerAddresses', takerAddresses); - const self = (this as any) as OrderValidatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', - [orders, takerAddresses], - ); + const self = this as any as OrderValidatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', [orders, + takerAddresses + ]); return abiEncodedTransactionData; }, }; 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; - }>, + 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 = {}, defaultBlock?: BlockParam, - ): Promise< - Array<{ - makerBalance: BigNumber; - makerAllowance: BigNumber; - takerBalance: BigNumber; - takerAllowance: BigNumber; - makerZrxBalance: BigNumber; - makerZrxAllowance: BigNumber; - takerZrxBalance: BigNumber; - takerZrxAllowance: BigNumber; - }> + ): Promise > { assert.isArray('orders', orders); assert.isArray('takerAddresses', takerAddresses); @@ -343,11 +209,10 @@ export class OrderValidatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as OrderValidatorContract; - const encodedData = self._strictEncodeArguments( - 'getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', - [orders, takerAddresses], - ); + const self = this as any as OrderValidatorContract; + const encodedData = self._strictEncodeArguments('getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', [orders, + takerAddresses + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -356,55 +221,27 @@ export class OrderValidatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', - ); + const abiEncoder = self._lookupAbiEncoder('getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< - Array<{ - makerBalance: BigNumber; - makerAllowance: BigNumber; - takerBalance: BigNumber; - takerAllowance: BigNumber; - makerZrxBalance: BigNumber; - makerZrxAllowance: BigNumber; - takerZrxBalance: BigNumber; - takerZrxAllowance: BigNumber; - }> - >(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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; - }>, - takerAddresses: string[], - ): string { + 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[], + ): string { assert.isArray('orders', orders); assert.isArray('takerAddresses', takerAddresses); - const self = (this as any) as OrderValidatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', - [orders, takerAddresses], - ); + const self = this as any as OrderValidatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', [orders, + takerAddresses + ]); return abiEncodedTransactionData; }, }; @@ -414,7 +251,8 @@ export class OrderValidatorContract extends BaseContract { tokenId: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('token', token); assert.isBigNumber('tokenId', tokenId); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -425,11 +263,10 @@ export class OrderValidatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as OrderValidatorContract; - const encodedData = self._strictEncodeArguments('getERC721TokenOwner(address,uint256)', [ - token.toLowerCase(), - tokenId, - ]); + const self = this as any as OrderValidatorContract; + const encodedData = self._strictEncodeArguments('getERC721TokenOwner(address,uint256)', [token.toLowerCase(), + tokenId + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -438,26 +275,27 @@ export class OrderValidatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getERC721TokenOwner(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(token: string, tokenId: BigNumber): string { + getABIEncodedTransactionData( + token: string, + tokenId: BigNumber, + ): string { assert.isString('token', token); assert.isBigNumber('tokenId', tokenId); - const self = (this as any) as OrderValidatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getERC721TokenOwner(address,uint256)', [ - token.toLowerCase(), - tokenId, - ]); + const self = this as any as OrderValidatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getERC721TokenOwner(address,uint256)', [token.toLowerCase(), + tokenId + ]); return abiEncodedTransactionData; }, }; @@ -467,7 +305,8 @@ export class OrderValidatorContract extends BaseContract { assetData: string[], callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise<[BigNumber[], BigNumber[]]> { + ): Promise<[BigNumber[], BigNumber[]] + > { assert.isString('target', target); assert.isArray('assetData', assetData); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -478,11 +317,10 @@ export class OrderValidatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as OrderValidatorContract; - const encodedData = self._strictEncodeArguments('getBalancesAndAllowances(address,bytes[])', [ - target.toLowerCase(), - assetData, - ]); + const self = this as any as OrderValidatorContract; + const encodedData = self._strictEncodeArguments('getBalancesAndAllowances(address,bytes[])', [target.toLowerCase(), + assetData + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -491,58 +329,39 @@ export class OrderValidatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getBalancesAndAllowances(address,bytes[])'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber[], BigNumber[]]>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<[BigNumber[], BigNumber[]] + >(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(target: string, assetData: string[]): string { + getABIEncodedTransactionData( + target: string, + assetData: string[], + ): string { assert.isString('target', target); assert.isArray('assetData', assetData); - const self = (this as any) as OrderValidatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments('getBalancesAndAllowances(address,bytes[])', [ - target.toLowerCase(), - assetData, - ]); + const self = this as any as OrderValidatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getBalancesAndAllowances(address,bytes[])', [target.toLowerCase(), + assetData + ]); return abiEncodedTransactionData; }, }; 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; - }, + 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 = {}, defaultBlock?: BlockParam, - ): Promise<{ - makerBalance: BigNumber; - makerAllowance: BigNumber; - takerBalance: BigNumber; - takerAllowance: BigNumber; - makerZrxBalance: BigNumber; - makerZrxAllowance: BigNumber; - takerZrxBalance: BigNumber; - takerZrxAllowance: BigNumber; - }> { + ): Promise<{makerBalance: BigNumber;makerAllowance: BigNumber;takerBalance: BigNumber;takerAllowance: BigNumber;makerZrxBalance: BigNumber;makerZrxAllowance: BigNumber;takerZrxBalance: BigNumber;takerZrxAllowance: BigNumber} + > { + assert.isString('takerAddress', takerAddress); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -552,11 +371,10 @@ export class OrderValidatorContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as OrderValidatorContract; - const encodedData = self._strictEncodeArguments( - 'getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', - [order, takerAddress.toLowerCase()], - ); + const self = this as any as OrderValidatorContract; + const encodedData = self._strictEncodeArguments('getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', [order, + takerAddress.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -565,61 +383,37 @@ export class OrderValidatorContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', - ); + const abiEncoder = self._lookupAbiEncoder('getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ - makerBalance: BigNumber; - makerAllowance: BigNumber; - takerBalance: BigNumber; - takerAllowance: BigNumber; - makerZrxBalance: BigNumber; - makerZrxAllowance: BigNumber; - takerZrxBalance: BigNumber; - takerZrxAllowance: BigNumber; - }>(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue<{makerBalance: BigNumber;makerAllowance: BigNumber;takerBalance: BigNumber;takerAllowance: BigNumber;makerZrxBalance: BigNumber;makerZrxAllowance: BigNumber;takerZrxBalance: BigNumber;takerZrxAllowance: BigNumber} + >(rawCallResult); // tslint:enable boolean-naming return result; }, 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; - }, - takerAddress: string, - ): string { + 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, + ): string { + assert.isString('takerAddress', takerAddress); - const self = (this as any) as OrderValidatorContract; - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', - [order, takerAddress.toLowerCase()], - ); + const self = this as any as OrderValidatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', [order, + takerAddress.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - public static async deployFrom0xArtifactAsync( +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, - _exchange: string, - _zrxAssetData: string, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, + _exchange: string, + _zrxAssetData: string, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -632,15 +426,19 @@ export class OrderValidatorContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return OrderValidatorContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange, _zrxAssetData); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return OrderValidatorContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, _exchange, +_zrxAssetData +); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, - _exchange: string, - _zrxAssetData: string, + abiDependencies: { [contractName: string]: ContractAbi }, + _exchange: string, + _zrxAssetData: string, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -650,17 +448,23 @@ export class OrderValidatorContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [_exchange, _zrxAssetData] = BaseContract._formatABIDataItemList( + [_exchange, +_zrxAssetData +] = BaseContract._formatABIDataItemList( constructorAbi.inputs, - [_exchange, _zrxAssetData], + [_exchange, +_zrxAssetData +], BaseContract._bigNumberToString, ); const iface = new ethers.utils.Interface(abi); const deployInfo = iface.deployFunction; - const txData = deployInfo.encode(bytecode, [_exchange, _zrxAssetData]); + const txData = deployInfo.encode(bytecode, [_exchange, +_zrxAssetData +]); const web3Wrapper = new Web3Wrapper(provider); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -668,17 +472,20 @@ export class OrderValidatorContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`OrderValidator successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new OrderValidatorContract(txReceipt.contractAddress as string, provider, txDefaults); - contractInstance.constructorArgs = [_exchange, _zrxAssetData]; + const contractInstance = new OrderValidatorContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); + contractInstance.constructorArgs = [_exchange, +_zrxAssetData +]; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, inputs: [ { @@ -733,7 +540,7 @@ export class OrderValidatorContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAddress', @@ -758,7 +565,7 @@ export class OrderValidatorContract extends BaseContract { name: 'orderTakerAssetFilledAmount', type: 'uint256', }, - ], + ] }, { name: 'traderInfo', @@ -796,14 +603,14 @@ export class OrderValidatorContract extends BaseContract { name: 'takerZrxAllowance', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -830,7 +637,7 @@ export class OrderValidatorContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -885,7 +692,7 @@ export class OrderValidatorContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAddresses', @@ -910,7 +717,7 @@ export class OrderValidatorContract extends BaseContract { name: 'orderTakerAssetFilledAmount', type: 'uint256', }, - ], + ] }, { name: 'tradersInfo', @@ -948,14 +755,14 @@ export class OrderValidatorContract extends BaseContract { name: 'takerZrxAllowance', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1010,7 +817,7 @@ export class OrderValidatorContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAddresses', @@ -1055,14 +862,14 @@ export class OrderValidatorContract extends BaseContract { name: 'takerZrxAllowance', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1085,7 +892,7 @@ export class OrderValidatorContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1112,7 +919,7 @@ export class OrderValidatorContract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1167,7 +974,7 @@ export class OrderValidatorContract extends BaseContract { name: 'takerAssetData', type: 'bytes', }, - ], + ] }, { name: 'takerAddress', @@ -1212,14 +1019,14 @@ export class OrderValidatorContract extends BaseContract { name: 'takerZrxAllowance', type: 'uint256', }, - ], + ] }, ], payable: false, stateMutability: 'view', type: 'function', }, - { + { inputs: [ { name: '_exchange', @@ -1230,7 +1037,8 @@ export class OrderValidatorContract extends BaseContract { type: 'bytes', }, ], - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'constructor', @@ -1238,11 +1046,11 @@ export class OrderValidatorContract extends BaseContract { ] as ContractAbi; return abi; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('OrderValidator', OrderValidatorContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('OrderValidator', OrderValidatorContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts b/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts index 51de23f67f..dcb129edf7 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,6 +26,7 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable export type WETH9EventArgs = @@ -66,12 +64,17 @@ export interface WETH9WithdrawalEventArgs extends DecodedLogArgs { _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 = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -80,7 +83,7 @@ export class WETH9Contract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as WETH9Contract; + const self = this as any as WETH9Contract; const encodedData = self._strictEncodeArguments('name()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -90,45 +93,55 @@ export class WETH9Contract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('name()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as WETH9Contract; + getABIEncodedTransactionData( + ): string { + const self = this as any as WETH9Contract; const abiEncodedTransactionData = self._strictEncodeArguments('name()', []); return abiEncodedTransactionData; }, }; public approve = { - async sendTransactionAsync(guy: string, wad: BigNumber, txData?: Partial | undefined): Promise { - assert.isString('guy', guy); - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy.toLowerCase(), wad]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.approve.estimateGasAsync.bind(self, guy.toLowerCase(), wad), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + guy: string, + wad: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isString('guy', guy); + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy.toLowerCase(), + wad + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.approve.estimateGasAsync.bind( + self, + guy.toLowerCase(), + wad + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( guy: string, @@ -137,48 +150,57 @@ export class WETH9Contract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('guy', guy); - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const txHashPromise = self.approve.sendTransactionAsync(guy.toLowerCase(), wad, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('guy', guy); + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const txHashPromise = self.approve.sendTransactionAsync(guy.toLowerCase(), + wad + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(guy: string, wad: BigNumber, txData?: Partial | undefined): Promise { - assert.isString('guy', guy); - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy.toLowerCase(), wad]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + guy: string, + wad: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isString('guy', guy); + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy.toLowerCase(), + wad + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( guy: string, wad: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('guy', guy); assert.isBigNumber('wad', wad); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -189,8 +211,10 @@ export class WETH9Contract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy.toLowerCase(), wad]); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy.toLowerCase(), + wad + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -199,31 +223,36 @@ export class WETH9Contract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('approve(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(guy: string, wad: BigNumber): string { + getABIEncodedTransactionData( + guy: string, + wad: BigNumber, + ): string { assert.isString('guy', guy); assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [ - guy.toLowerCase(), - wad, - ]); + const self = this as any as WETH9Contract; + const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [guy.toLowerCase(), + wad + ]); return abiEncodedTransactionData; }, }; public totalSupply = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -232,7 +261,7 @@ export class WETH9Contract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as WETH9Contract; + const self = this as any as WETH9Contract; const encodedData = self._strictEncodeArguments('totalSupply()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -242,20 +271,20 @@ export class WETH9Contract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('totalSupply()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as WETH9Contract; + getABIEncodedTransactionData( + ): string { + const self = this as any as WETH9Contract; const abiEncodedTransactionData = self._strictEncodeArguments('totalSupply()', []); return abiEncodedTransactionData; }, @@ -265,32 +294,36 @@ export class WETH9Contract extends BaseContract { src: string, dst: string, wad: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('src', src); - assert.isString('dst', dst); - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + assert.isString('src', src); + assert.isString('dst', dst); + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src.toLowerCase(), + dst.toLowerCase(), + wad + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferFrom.estimateGasAsync.bind( + self, src.toLowerCase(), dst.toLowerCase(), - wad, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferFrom.estimateGasAsync.bind(self, src.toLowerCase(), dst.toLowerCase(), wad), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + wad + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( src: string, @@ -300,27 +333,25 @@ export class WETH9Contract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('src', src); - assert.isString('dst', dst); - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const txHashPromise = self.transferFrom.sendTransactionAsync( - src.toLowerCase(), - dst.toLowerCase(), - wad, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('src', src); + assert.isString('dst', dst); + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const txHashPromise = self.transferFrom.sendTransactionAsync(src.toLowerCase(), + dst.toLowerCase(), + wad + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( src: string, @@ -328,29 +359,28 @@ export class WETH9Contract extends BaseContract { wad: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('src', src); - assert.isString('dst', dst); - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - src.toLowerCase(), - dst.toLowerCase(), - wad, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('src', src); + assert.isString('dst', dst); + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src.toLowerCase(), + dst.toLowerCase(), + wad + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( src: string, @@ -358,7 +388,8 @@ export class WETH9Contract extends BaseContract { wad: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('src', src); assert.isString('dst', dst); assert.isBigNumber('wad', wad); @@ -370,12 +401,11 @@ export class WETH9Contract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - src.toLowerCase(), - dst.toLowerCase(), - wad, - ]); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src.toLowerCase(), + dst.toLowerCase(), + wad + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -384,51 +414,60 @@ export class WETH9Contract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(src: string, dst: string, wad: BigNumber): string { + getABIEncodedTransactionData( + src: string, + dst: string, + wad: BigNumber, + ): string { assert.isString('src', src); assert.isString('dst', dst); assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - src.toLowerCase(), - dst.toLowerCase(), - wad, - ]); + const self = this as any as WETH9Contract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src.toLowerCase(), + dst.toLowerCase(), + wad + ]); return abiEncodedTransactionData; }, }; public withdraw = { - async sendTransactionAsync(wad: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.withdraw.estimateGasAsync.bind(self, wad), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + wad: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.withdraw.estimateGasAsync.bind( + self, + wad + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( wad: BigNumber, @@ -436,41 +475,51 @@ export class WETH9Contract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const txHashPromise = self.withdraw.sendTransactionAsync(wad, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const txHashPromise = self.withdraw.sendTransactionAsync(wad + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(wad: BigNumber, txData?: Partial | undefined): Promise { - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + wad: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(wad: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + wad: BigNumber, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.isBigNumber('wad', wad); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -480,8 +529,9 @@ export class WETH9Contract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad]); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -490,27 +540,33 @@ export class WETH9Contract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('withdraw(uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(wad: BigNumber): string { + getABIEncodedTransactionData( + wad: BigNumber, + ): string { assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const abiEncodedTransactionData = self._strictEncodeArguments('withdraw(uint256)', [wad]); + const self = this as any as WETH9Contract; + const abiEncodedTransactionData = self._strictEncodeArguments('withdraw(uint256)', [wad + ]); return abiEncodedTransactionData; }, }; public decimals = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -519,7 +575,7 @@ export class WETH9Contract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as WETH9Contract; + const self = this as any as WETH9Contract; const encodedData = self._strictEncodeArguments('decimals()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -529,20 +585,20 @@ export class WETH9Contract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('decimals()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as WETH9Contract; + getABIEncodedTransactionData( + ): string { + const self = this as any as WETH9Contract; const abiEncodedTransactionData = self._strictEncodeArguments('decimals()', []); return abiEncodedTransactionData; }, @@ -552,7 +608,8 @@ export class WETH9Contract extends BaseContract { index_0: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -562,8 +619,9 @@ export class WETH9Contract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('balanceOf(address)', [index_0.toLowerCase()]); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('balanceOf(address)', [index_0.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -572,29 +630,33 @@ export class WETH9Contract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('balanceOf(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string): string { + getABIEncodedTransactionData( + index_0: string, + ): string { assert.isString('index_0', index_0); - const self = (this as any) as WETH9Contract; - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [ - index_0.toLowerCase(), - ]); + const self = this as any as WETH9Contract; + const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [index_0.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public symbol = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -603,7 +665,7 @@ export class WETH9Contract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as WETH9Contract; + const self = this as any as WETH9Contract; const encodedData = self._strictEncodeArguments('symbol()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -613,45 +675,55 @@ export class WETH9Contract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('symbol()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as WETH9Contract; + getABIEncodedTransactionData( + ): string { + const self = this as any as WETH9Contract; const abiEncodedTransactionData = self._strictEncodeArguments('symbol()', []); return abiEncodedTransactionData; }, }; public transfer = { - async sendTransactionAsync(dst: string, wad: BigNumber, txData?: Partial | undefined): Promise { - assert.isString('dst', dst); - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst.toLowerCase(), wad]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transfer.estimateGasAsync.bind(self, dst.toLowerCase(), wad), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + dst: string, + wad: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isString('dst', dst); + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst.toLowerCase(), + wad + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transfer.estimateGasAsync.bind( + self, + dst.toLowerCase(), + wad + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( dst: string, @@ -660,48 +732,57 @@ export class WETH9Contract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('dst', dst); - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const txHashPromise = self.transfer.sendTransactionAsync(dst.toLowerCase(), wad, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('dst', dst); + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const txHashPromise = self.transfer.sendTransactionAsync(dst.toLowerCase(), + wad + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(dst: string, wad: BigNumber, txData?: Partial | undefined): Promise { - assert.isString('dst', dst); - assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst.toLowerCase(), wad]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + dst: string, + wad: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isString('dst', dst); + assert.isBigNumber('wad', wad); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst.toLowerCase(), + wad + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( dst: string, wad: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('dst', dst); assert.isBigNumber('wad', wad); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -712,8 +793,10 @@ export class WETH9Contract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst.toLowerCase(), wad]); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst.toLowerCase(), + wad + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -722,87 +805,98 @@ export class WETH9Contract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(dst: string, wad: BigNumber): string { + getABIEncodedTransactionData( + dst: string, + wad: BigNumber, + ): string { assert.isString('dst', dst); assert.isBigNumber('wad', wad); - const self = (this as any) as WETH9Contract; - const abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [ - dst.toLowerCase(), - wad, - ]); + const self = this as any as WETH9Contract; + const abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [dst.toLowerCase(), + wad + ]); return abiEncodedTransactionData; }, }; public deposit = { - async sendTransactionAsync(txData?: Partial | undefined): Promise { - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('deposit()', []); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.deposit.estimateGasAsync.bind(self), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + async sendTransactionAsync( + txData?: Partial | undefined, + ): Promise { + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('deposit()', []); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.deposit.estimateGasAsync.bind( + self, + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( txData?: Partial, pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - const self = (this as any) as WETH9Contract; - const txHashPromise = self.deposit.sendTransactionAsync(txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + const self = this as any as WETH9Contract; + const txHashPromise = self.deposit.sendTransactionAsync(txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(txData?: Partial | undefined): Promise { - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('deposit()', []); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + txData?: Partial | undefined, + ): Promise { + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('deposit()', []); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -811,7 +905,7 @@ export class WETH9Contract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as WETH9Contract; + const self = this as any as WETH9Contract; const encodedData = self._strictEncodeArguments('deposit()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -821,20 +915,20 @@ export class WETH9Contract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('deposit()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as WETH9Contract; + getABIEncodedTransactionData( + ): string { + const self = this as any as WETH9Contract; const abiEncodedTransactionData = self._strictEncodeArguments('deposit()', []); return abiEncodedTransactionData; }, @@ -845,7 +939,8 @@ export class WETH9Contract extends BaseContract { index_1: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('index_0', index_0); assert.isString('index_1', index_1); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -856,11 +951,10 @@ export class WETH9Contract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as WETH9Contract; - const encodedData = self._strictEncodeArguments('allowance(address,address)', [ - index_0.toLowerCase(), - index_1.toLowerCase(), - ]); + const self = this as any as WETH9Contract; + const encodedData = self._strictEncodeArguments('allowance(address,address)', [index_0.toLowerCase(), + index_1.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -869,34 +963,36 @@ export class WETH9Contract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('allowance(address,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(index_0: string, index_1: string): string { + getABIEncodedTransactionData( + index_0: string, + index_1: string, + ): string { assert.isString('index_0', index_0); assert.isString('index_1', index_1); - const self = (this as any) as WETH9Contract; - const abiEncodedTransactionData = self._strictEncodeArguments('allowance(address,address)', [ - index_0.toLowerCase(), - index_1.toLowerCase(), - ]); + const self = this as any as WETH9Contract; + const abiEncodedTransactionData = self._strictEncodeArguments('allowance(address,address)', [index_0.toLowerCase(), + index_1.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -909,13 +1005,15 @@ export class WETH9Contract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return WETH9Contract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return WETH9Contract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -925,13 +1023,17 @@ export class WETH9Contract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -939,19 +1041,21 @@ export class WETH9Contract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`WETH9 successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new WETH9Contract(txReceipt.contractAddress as string, provider, txDefaults); + const contractInstance = new WETH9Contract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'name', outputs: [ { @@ -963,7 +1067,7 @@ export class WETH9Contract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -986,9 +1090,10 @@ export class WETH9Contract extends BaseContract { stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'totalSupply', outputs: [ { @@ -1000,7 +1105,7 @@ export class WETH9Contract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1027,7 +1132,7 @@ export class WETH9Contract extends BaseContract { stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1036,14 +1141,16 @@ export class WETH9Contract extends BaseContract { }, ], name: 'withdraw', - outputs: [], + outputs: [ + ], payable: false, stateMutability: 'nonpayable', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'decimals', outputs: [ { @@ -1055,7 +1162,7 @@ export class WETH9Contract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1074,9 +1181,10 @@ export class WETH9Contract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'symbol', outputs: [ { @@ -1088,7 +1196,7 @@ export class WETH9Contract extends BaseContract { stateMutability: 'view', type: 'function', }, - { + { constant: false, inputs: [ { @@ -1111,16 +1219,18 @@ export class WETH9Contract extends BaseContract { stateMutability: 'nonpayable', type: 'function', }, - { + { constant: false, - inputs: [], + inputs: [ + ], name: 'deposit', - outputs: [], + outputs: [ + ], payable: true, stateMutability: 'payable', type: 'function', }, - { + { constant: true, inputs: [ { @@ -1143,14 +1253,16 @@ export class WETH9Contract extends BaseContract { stateMutability: 'view', type: 'function', }, - { - inputs: [], - outputs: [], + { + inputs: [ + ], + outputs: [ + ], payable: true, stateMutability: 'payable', type: 'fallback', }, - { + { anonymous: false, inputs: [ { @@ -1170,10 +1282,11 @@ export class WETH9Contract extends BaseContract { }, ], name: 'Approval', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -1193,10 +1306,11 @@ export class WETH9Contract extends BaseContract { }, ], name: 'Transfer', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -1211,10 +1325,11 @@ export class WETH9Contract extends BaseContract { }, ], name: 'Deposit', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -1229,7 +1344,8 @@ export class WETH9Contract extends BaseContract { }, ], name: 'Withdrawal', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -1303,15 +1419,15 @@ export class WETH9Contract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('WETH9', WETH9Contract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('WETH9', WETH9Contract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( WETH9Contract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts b/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts index b0d5ff3df7..90feb73946 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts @@ -1,14 +1,11 @@ // tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable -import { - BaseContract, +import { BaseContract, BlockRange, EventCallback, IndexedFilterValues, - SubscriptionManager, - PromiseWithTransactionHash, -} from '@0x/base-contract'; + SubscriptionManager,PromiseWithTransactionHash } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, @@ -29,9 +26,12 @@ import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; +import * as _ from 'lodash'; // tslint:enable:no-unused-variable -export type ZRXTokenEventArgs = ZRXTokenTransferEventArgs | ZRXTokenApprovalEventArgs; +export type ZRXTokenEventArgs = + | ZRXTokenTransferEventArgs + | ZRXTokenApprovalEventArgs; export enum ZRXTokenEvents { Transfer = 'Transfer', @@ -50,12 +50,17 @@ export interface ZRXTokenApprovalEventArgs extends DecodedLogArgs { _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 = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -64,7 +69,7 @@ export class ZRXTokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ZRXTokenContract; + const self = this as any as ZRXTokenContract; const encodedData = self._strictEncodeArguments('name()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -74,20 +79,20 @@ export class ZRXTokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('name()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ZRXTokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ZRXTokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('name()', []); return abiEncodedTransactionData; }, @@ -96,30 +101,33 @@ export class ZRXTokenContract extends BaseContract { async sendTransactionAsync( _spender: string, _value: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_spender', _spender); - assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ + assert.isString('_spender', _spender); + assert.isBigNumber('_value', _value); + const self = this as any as ZRXTokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.approve.estimateGasAsync.bind( + self, _spender.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.approve.estimateGasAsync.bind(self, _spender.toLowerCase(), _value), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _value + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _spender: string, @@ -128,55 +136,57 @@ export class ZRXTokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_spender', _spender); - assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const txHashPromise = self.approve.sendTransactionAsync(_spender.toLowerCase(), _value, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_spender', _spender); + assert.isBigNumber('_value', _value); + const self = this as any as ZRXTokenContract; + const txHashPromise = self.approve.sendTransactionAsync(_spender.toLowerCase(), + _value + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _spender: string, _value: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_spender', _spender); - assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_spender', _spender); + assert.isBigNumber('_value', _value); + const self = this as any as ZRXTokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _spender: string, _value: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_spender', _spender); assert.isBigNumber('_value', _value); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -187,11 +197,10 @@ export class ZRXTokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ZRXTokenContract; - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); + const self = this as any as ZRXTokenContract; + const encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -200,31 +209,36 @@ export class ZRXTokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('approve(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_spender: string, _value: BigNumber): string { + getABIEncodedTransactionData( + _spender: string, + _value: BigNumber, + ): string { assert.isString('_spender', _spender); assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); + const self = this as any as ZRXTokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender.toLowerCase(), + _value + ]); return abiEncodedTransactionData; }, }; public totalSupply = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -233,7 +247,7 @@ export class ZRXTokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ZRXTokenContract; + const self = this as any as ZRXTokenContract; const encodedData = self._strictEncodeArguments('totalSupply()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -243,20 +257,20 @@ export class ZRXTokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('totalSupply()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ZRXTokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ZRXTokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('totalSupply()', []); return abiEncodedTransactionData; }, @@ -266,32 +280,36 @@ export class ZRXTokenContract extends BaseContract { _from: string, _to: string, _value: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ZRXTokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transferFrom.estimateGasAsync.bind( + self, _from.toLowerCase(), _to.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transferFrom.estimateGasAsync.bind(self, _from.toLowerCase(), _to.toLowerCase(), _value), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + _value + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _from: string, @@ -301,27 +319,25 @@ export class ZRXTokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const txHashPromise = self.transferFrom.sendTransactionAsync( - _from.toLowerCase(), - _to.toLowerCase(), - _value, - txData, - ); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ZRXTokenContract; + const txHashPromise = self.transferFrom.sendTransactionAsync(_from.toLowerCase(), + _to.toLowerCase(), + _value + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, async estimateGasAsync( _from: string, @@ -329,29 +345,28 @@ export class ZRXTokenContract extends BaseContract { _value: BigNumber, txData?: Partial | undefined, ): Promise { - assert.isString('_from', _from); - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _value, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + assert.isString('_from', _from); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ZRXTokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _from: string, @@ -359,7 +374,8 @@ export class ZRXTokenContract extends BaseContract { _value: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_value', _value); @@ -371,12 +387,11 @@ export class ZRXTokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ZRXTokenContract; - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _value, - ]); + const self = this as any as ZRXTokenContract; + const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -385,33 +400,39 @@ export class ZRXTokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string { + getABIEncodedTransactionData( + _from: string, + _to: string, + _value: BigNumber, + ): string { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _value, - ]); + const self = this as any as ZRXTokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from.toLowerCase(), + _to.toLowerCase(), + _value + ]); return abiEncodedTransactionData; }, }; public decimals = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -420,7 +441,7 @@ export class ZRXTokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ZRXTokenContract; + const self = this as any as ZRXTokenContract; const encodedData = self._strictEncodeArguments('decimals()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -430,20 +451,20 @@ export class ZRXTokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('decimals()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ZRXTokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ZRXTokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('decimals()', []); return abiEncodedTransactionData; }, @@ -453,7 +474,8 @@ export class ZRXTokenContract extends BaseContract { _owner: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_owner', _owner); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, @@ -463,8 +485,9 @@ export class ZRXTokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ZRXTokenContract; - const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); + const self = this as any as ZRXTokenContract; + const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -473,27 +496,33 @@ export class ZRXTokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('balanceOf(address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_owner: string): string { + getABIEncodedTransactionData( + _owner: string, + ): string { assert.isString('_owner', _owner); - const self = (this as any) as ZRXTokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); + const self = this as any as ZRXTokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase() + ]); return abiEncodedTransactionData; }, }; public symbol = { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ schemas.addressSchema, schemas.numberSchema, @@ -502,7 +531,7 @@ export class ZRXTokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ZRXTokenContract; + const self = this as any as ZRXTokenContract; const encodedData = self._strictEncodeArguments('symbol()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -512,20 +541,20 @@ export class ZRXTokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('symbol()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(): string { - const self = (this as any) as ZRXTokenContract; + getABIEncodedTransactionData( + ): string { + const self = this as any as ZRXTokenContract; const abiEncodedTransactionData = self._strictEncodeArguments('symbol()', []); return abiEncodedTransactionData; }, @@ -534,27 +563,33 @@ export class ZRXTokenContract extends BaseContract { async sendTransactionAsync( _to: string, _value: BigNumber, - txData?: Partial | undefined, + txData?: Partial | undefined, ): Promise { - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), _value]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.transfer.estimateGasAsync.bind(self, _to.toLowerCase(), _value), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ZRXTokenContract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.transfer.estimateGasAsync.bind( + self, + _to.toLowerCase(), + _value + ), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; }, awaitTransactionSuccessAsync( _to: string, @@ -563,48 +598,57 @@ export class ZRXTokenContract extends BaseContract { pollingIntervalMs?: number, timeoutMs?: number, ): PromiseWithTransactionHash { - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const txHashPromise = self.transfer.sendTransactionAsync(_to.toLowerCase(), _value, txData); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - pollingIntervalMs, - timeoutMs, - ); - })(), - ); + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ZRXTokenContract; + const txHashPromise = self.transfer.sendTransactionAsync(_to.toLowerCase(), + _value + , txData); + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return self._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + pollingIntervalMs, + timeoutMs, + ); + })(), + ); }, - async estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial | undefined): Promise { - assert.isString('_to', _to); - assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), _value]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; + async estimateGasAsync( + _to: string, + _value: BigNumber, + txData?: Partial | undefined, + ): Promise { + assert.isString('_to', _to); + assert.isBigNumber('_value', _value); + const self = this as any as ZRXTokenContract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; }, async callAsync( _to: string, _value: BigNumber, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_to', _to); assert.isBigNumber('_value', _value); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -615,8 +659,10 @@ export class ZRXTokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ZRXTokenContract; - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), _value]); + const self = this as any as ZRXTokenContract; + const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -625,26 +671,27 @@ export class ZRXTokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_to: string, _value: BigNumber): string { + getABIEncodedTransactionData( + _to: string, + _value: BigNumber, + ): string { assert.isString('_to', _to); assert.isBigNumber('_value', _value); - const self = (this as any) as ZRXTokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [ - _to.toLowerCase(), - _value, - ]); + const self = this as any as ZRXTokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to.toLowerCase(), + _value + ]); return abiEncodedTransactionData; }, }; @@ -654,7 +701,8 @@ export class ZRXTokenContract extends BaseContract { _spender: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { + ): Promise { assert.isString('_owner', _owner); assert.isString('_spender', _spender); assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ @@ -665,11 +713,10 @@ export class ZRXTokenContract extends BaseContract { if (defaultBlock !== undefined) { assert.isBlockParam('defaultBlock', defaultBlock); } - const self = (this as any) as ZRXTokenContract; - const encodedData = self._strictEncodeArguments('allowance(address,address)', [ - _owner.toLowerCase(), - _spender.toLowerCase(), - ]); + const self = this as any as ZRXTokenContract; + const encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner.toLowerCase(), + _spender.toLowerCase() + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -678,34 +725,36 @@ export class ZRXTokenContract extends BaseContract { }, self._web3Wrapper.getContractDefaults(), ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - + callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('allowance(address,address)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, - getABIEncodedTransactionData(_owner: string, _spender: string): string { + getABIEncodedTransactionData( + _owner: string, + _spender: string, + ): string { assert.isString('_owner', _owner); assert.isString('_spender', _spender); - const self = (this as any) as ZRXTokenContract; - const abiEncodedTransactionData = self._strictEncodeArguments('allowance(address,address)', [ - _owner.toLowerCase(), - _spender.toLowerCase(), - ]); + const self = this as any as ZRXTokenContract; + const abiEncodedTransactionData = self._strictEncodeArguments('allowance(address,address)', [_owner.toLowerCase(), + _spender.toLowerCase() + ]); return abiEncodedTransactionData; }, }; - private readonly _subscriptionManager: SubscriptionManager; - public static async deployFrom0xArtifactAsync( +private readonly _subscriptionManager: SubscriptionManager; +public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, + artifactDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, @@ -718,13 +767,15 @@ export class ZRXTokenContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return ZRXTokenContract.deployAsync(bytecode, abi, provider, txDefaults); + const abiDependencies = _.mapValues(artifactDependencies, (artifactDependency: ContractArtifact | SimpleContractArtifact) => {return artifactDependency.compilerOutput.abi}); + return ZRXTokenContract.deployAsync(bytecode, abi, provider, txDefaults, abiDependencies, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, + abiDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ @@ -734,13 +785,17 @@ export class ZRXTokenContract extends BaseContract { ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + [] = 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 }, + {data: txData}, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -748,19 +803,21 @@ export class ZRXTokenContract extends BaseContract { logUtils.log(`transactionHash: ${txHash}`); const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`ZRXToken successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new ZRXTokenContract(txReceipt.contractAddress as string, provider, txDefaults); + const contractInstance = new ZRXTokenContract(txReceipt.contractAddress as string, provider, txDefaults, abiDependencies); contractInstance.constructorArgs = []; return contractInstance; } + /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'name', outputs: [ { @@ -771,7 +828,7 @@ export class ZRXTokenContract extends BaseContract { payable: false, type: 'function', }, - { + { constant: false, inputs: [ { @@ -793,9 +850,10 @@ export class ZRXTokenContract extends BaseContract { payable: false, type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'totalSupply', outputs: [ { @@ -806,7 +864,7 @@ export class ZRXTokenContract extends BaseContract { payable: false, type: 'function', }, - { + { constant: false, inputs: [ { @@ -832,9 +890,10 @@ export class ZRXTokenContract extends BaseContract { payable: false, type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'decimals', outputs: [ { @@ -845,7 +904,7 @@ export class ZRXTokenContract extends BaseContract { payable: false, type: 'function', }, - { + { constant: true, inputs: [ { @@ -863,9 +922,10 @@ export class ZRXTokenContract extends BaseContract { payable: false, type: 'function', }, - { + { constant: true, - inputs: [], + inputs: [ + ], name: 'symbol', outputs: [ { @@ -876,7 +936,7 @@ export class ZRXTokenContract extends BaseContract { payable: false, type: 'function', }, - { + { constant: false, inputs: [ { @@ -898,7 +958,7 @@ export class ZRXTokenContract extends BaseContract { payable: false, type: 'function', }, - { + { constant: true, inputs: [ { @@ -920,13 +980,15 @@ export class ZRXTokenContract extends BaseContract { payable: false, type: 'function', }, - { - inputs: [], - outputs: [], + { + inputs: [ + ], + outputs: [ + ], payable: false, type: 'constructor', }, - { + { anonymous: false, inputs: [ { @@ -946,10 +1008,11 @@ export class ZRXTokenContract extends BaseContract { }, ], name: 'Transfer', - outputs: [], + outputs: [ + ], type: 'event', }, - { + { anonymous: false, inputs: [ { @@ -969,7 +1032,8 @@ export class ZRXTokenContract extends BaseContract { }, ], name: 'Approval', - outputs: [], + outputs: [ + ], type: 'event', }, ] as ContractAbi; @@ -1043,15 +1107,15 @@ export class ZRXTokenContract extends BaseContract { ); return logs; } - constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('ZRXToken', ZRXTokenContract.ABI(), address, supportedProvider, txDefaults); + constructor(address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }) { + super('ZRXToken', ZRXTokenContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( ZRXTokenContract.ABI(), this._web3Wrapper, ); } -} +} // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align diff --git a/packages/abi-gen/test-cli/test_typescript/test/abi_gen_dummy_test.ts b/packages/abi-gen/test-cli/test_typescript/test/abi_gen_dummy_test.ts index 6f145a6a4f..b33bb5a57a 100644 --- a/packages/abi-gen/test-cli/test_typescript/test/abi_gen_dummy_test.ts +++ b/packages/abi-gen/test-cli/test_typescript/test/abi_gen_dummy_test.ts @@ -30,7 +30,12 @@ describe('AbiGenDummy Contract', () => { let abiGenDummy: AbiGenDummyContract; before(async () => { providerUtils.startProviderEngine(provider); - abiGenDummy = await AbiGenDummyContract.deployFrom0xArtifactAsync(artifacts.AbiGenDummy, provider, txDefaults); + abiGenDummy = await AbiGenDummyContract.deployFrom0xArtifactAsync( + artifacts.AbiGenDummy, + provider, + txDefaults, + artifacts, + ); await blockchainLifecycle.startAsync(); }); after(async () => { @@ -146,7 +151,12 @@ describe('Lib dummy contract', () => { await blockchainLifecycle.revertAsync(); }); before(async () => { - libDummy = await TestLibDummyContract.deployFrom0xArtifactAsync(artifacts.TestLibDummy, provider, txDefaults); + libDummy = await TestLibDummyContract.deployFrom0xArtifactAsync( + artifacts.TestLibDummy, + provider, + txDefaults, + artifacts, + ); }); beforeEach(async () => { await blockchainLifecycle.startAsync(); diff --git a/packages/base-contract/src/index.ts b/packages/base-contract/src/index.ts index 1e79cae696..09287a00c1 100644 --- a/packages/base-contract/src/index.ts +++ b/packages/base-contract/src/index.ts @@ -212,8 +212,8 @@ export class BaseContract { this._abiEncoderByFunctionSignature[functionSignature] = abiEncoder; this._web3Wrapper.abiDecoder.addABI(abi, contractName); }); - _.each(abiDependencies, (abi, name) => { - this._web3Wrapper.abiDecoder.addABI(abi, name); + _.each(abiDependencies, (abiDependency, contractDependencyName) => { + this._web3Wrapper.abiDecoder.addABI(abiDependency, contractDependencyName); }); } } diff --git a/packages/contract-wrappers/test/exchange_wrapper_test.ts b/packages/contract-wrappers/test/exchange_wrapper_test.ts index 29d3bbfa3c..bcb226e2ff 100644 --- a/packages/contract-wrappers/test/exchange_wrapper_test.ts +++ b/packages/contract-wrappers/test/exchange_wrapper_test.ts @@ -351,10 +351,12 @@ describe('ExchangeWrapper', () => { }); }); it('should throw when the ERC20 token has transfer restrictions', async () => { + const artifactDependencies = {}; const untransferrableToken = await DummyERC20TokenContract.deployFrom0xArtifactAsync( UntransferrableDummyERC20Token, provider, { from: userAddresses[0] }, + artifactDependencies, 'UntransferrableToken', 'UTT', new BigNumber(constants.ZRX_DECIMALS), diff --git a/packages/migrations/src/migration.ts b/packages/migrations/src/migration.ts index ecb9fb5b17..f637fb6e7e 100644 --- a/packages/migrations/src/migration.ts +++ b/packages/migrations/src/migration.ts @@ -29,11 +29,13 @@ export async function runMigrationsAsync( artifacts.ERC20Proxy, provider, txDefaults, + artifacts, ); const erc721Proxy = await wrappers.ERC721ProxyContract.deployFrom0xArtifactAsync( artifacts.ERC721Proxy, provider, txDefaults, + artifacts, ); // ZRX @@ -41,10 +43,16 @@ export async function runMigrationsAsync( artifacts.ZRXToken, provider, txDefaults, + artifacts, ); // Ether token - const etherToken = await wrappers.WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults); + const etherToken = await wrappers.WETH9Contract.deployFrom0xArtifactAsync( + artifacts.WETH9, + provider, + txDefaults, + artifacts, + ); // Exchange const zrxAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address); @@ -52,6 +60,7 @@ export async function runMigrationsAsync( artifacts.Exchange, provider, txDefaults, + artifacts, zrxAssetData, ); @@ -63,6 +72,7 @@ export async function runMigrationsAsync( artifacts.DummyERC20Token, provider, txDefaults, + artifacts, token.name, token.symbol, token.decimals, @@ -76,6 +86,7 @@ export async function runMigrationsAsync( artifacts.DummyERC721Token, provider, txDefaults, + artifacts, erc721TokenInfo[0].name, erc721TokenInfo[0].symbol, ); @@ -84,6 +95,7 @@ export async function runMigrationsAsync( artifacts.MultiAssetProxy, provider, txDefaults, + artifacts, ); await web3Wrapper.awaitTransactionSuccessAsync( @@ -126,6 +138,7 @@ export async function runMigrationsAsync( artifacts.Forwarder, provider, txDefaults, + artifacts, exchange.address, assetDataUtils.encodeERC20AssetData(zrxToken.address), assetDataUtils.encodeERC20AssetData(etherToken.address), @@ -136,6 +149,7 @@ export async function runMigrationsAsync( artifacts.OrderValidator, provider, txDefaults, + artifacts, exchange.address, zrxAssetData, ); @@ -145,6 +159,7 @@ export async function runMigrationsAsync( artifacts.DutchAuction, provider, txDefaults, + artifacts, exchange.address, ); @@ -159,6 +174,7 @@ export async function runMigrationsAsync( artifacts.AssetProxyOwner, provider, txDefaults, + artifacts, owners, [erc20Proxy.address, erc721Proxy.address, multiAssetProxy.address], confirmationsRequired, @@ -188,6 +204,7 @@ export async function runMigrationsAsync( artifacts.CoordinatorRegistry, provider, txDefaults, + artifacts, ); // Coordinator @@ -195,6 +212,7 @@ export async function runMigrationsAsync( artifacts.Coordinator, provider, txDefaults, + artifacts, exchange.address, ); diff --git a/packages/order-utils/test/exchange_transfer_simulator_test.ts b/packages/order-utils/test/exchange_transfer_simulator_test.ts index c26eb19078..2f3e18dec2 100644 --- a/packages/order-utils/test/exchange_transfer_simulator_test.ts +++ b/packages/order-utils/test/exchange_transfer_simulator_test.ts @@ -46,6 +46,7 @@ describe('ExchangeTransferSimulator', async () => { artifacts.ERC20Proxy, provider, txDefaults, + artifacts, ); erc20ProxyAddress = erc20Proxy.address; @@ -58,6 +59,7 @@ describe('ExchangeTransferSimulator', async () => { artifacts.DummyERC20Token, provider, txDefaults, + artifacts, name, symbol, decimals,