diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts index d3cfe3e14f..727dffd79a 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts @@ -103,9 +103,11 @@ export class CoordinatorContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, [exchange, chainId]); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -482,242 +484,150 @@ export class CoordinatorContract extends BaseContract { public EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH(): ContractFunctionObj { const self = (this as any) as CoordinatorContract; + assert.isString('hash', hash); + assert.isString('signature', signature); + const functionSignature = 'getSignerAddress(bytes32,bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [hash, signature]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH()', - [], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [hash, signature]); + }, + }; + } + /** + * Calculates the EIP712 hash of a 0x transaction using the domain separator of the Exchange contract. + * @param transaction 0x transaction containing salt, signerAddress, and data. + * @returns EIP712 hash of the transaction with the domain separator of this contract. + */ + public getTransactionHash(transaction: { + salt: BigNumber; + signerAddress: string; + data: string; + }): ContractFunctionObj { + const self = (this as any) as CoordinatorContract; + + const functionSignature = 'getTransactionHash((uint256,address,bytes))'; + + return { + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [transaction]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [transaction]); }, }; } public EIP712_COORDINATOR_DOMAIN_HASH(): ContractFunctionObj { const self = (this as any) as CoordinatorContract; + const functionSignature = 'getCoordinatorApprovalHash((address,bytes32,bytes,uint256))'; + return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('EIP712_COORDINATOR_DOMAIN_HASH()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_COORDINATOR_DOMAIN_HASH()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [approval]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('EIP712_COORDINATOR_DOMAIN_HASH()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [approval]); }, }; } public EIP712_COORDINATOR_DOMAIN_NAME(): ContractFunctionObj { const self = (this as any) as CoordinatorContract; - return { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('EIP712_COORDINATOR_DOMAIN_NAME()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_COORDINATOR_DOMAIN_NAME()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('EIP712_COORDINATOR_DOMAIN_NAME()', []); - return abiEncodedTransactionData; - }, - }; - } - public EIP712_COORDINATOR_DOMAIN_VERSION(): ContractFunctionObj { - const self = (this as any) as CoordinatorContract; + assert.isString('txOrigin', txOrigin); + assert.isString('transactionSignature', transactionSignature); + assert.isArray('approvalExpirationTimeSeconds', approvalExpirationTimeSeconds); + assert.isArray('approvalSignatures', approvalSignatures); + const functionSignature = 'executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])'; return { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + async sendTransactionAsync( + txData?: Partial | undefined, + opts: SendTransactionOpts = { shouldValidate: true }, + ): Promise { + const encodedData = self._strictEncodeArguments(functionSignature, [ + transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + if (opts.shouldValidate !== false) { + await this.callAsync(txDataWithDefaults); } - const encodedData = self._strictEncodeArguments('EIP712_COORDINATOR_DOMAIN_VERSION()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_COORDINATOR_DOMAIN_VERSION()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + }, + awaitTransactionSuccessAsync( + txData?: Partial, + opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, + ): PromiseWithTransactionHash { + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); + }, + async estimateGasAsync(txData?: Partial | undefined): Promise { + const encodedData = self._strictEncodeArguments(functionSignature, [ + transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + }, + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures, + ]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'EIP712_COORDINATOR_DOMAIN_VERSION()', - [], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures, + ]); }, }; } public EIP712_EXCHANGE_DOMAIN_HASH(): ContractFunctionObj { const self = (this as any) as CoordinatorContract; + const functionSignature = 'EIP712_EXCHANGE_DOMAIN_HASH()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('EIP712_EXCHANGE_DOMAIN_HASH()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_EXCHANGE_DOMAIN_HASH()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('EIP712_EXCHANGE_DOMAIN_HASH()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -750,56 +660,31 @@ export class CoordinatorContract extends BaseContract { assert.isString('txOrigin', txOrigin); assert.isString('transactionSignature', transactionSignature); assert.isArray('approvalSignatures', approvalSignatures); + const functionSignature = + 'assertValidCoordinatorApprovals((uint256,address,bytes),address,bytes,uint256[],bytes[])'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'assertValidCoordinatorApprovals((uint256,uint256,uint256,address,bytes),address,bytes,bytes[])', - [transaction, txOrigin.toLowerCase(), transactionSignature, approvalSignatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'assertValidCoordinatorApprovals((uint256,uint256,uint256,address,bytes),address,bytes,bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'assertValidCoordinatorApprovals((uint256,uint256,uint256,address,bytes),address,bytes,bytes[])', - [transaction, txOrigin.toLowerCase(), transactionSignature, approvalSignatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + transaction, + txOrigin.toLowerCase(), + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures, + ]); }, }; } @@ -830,6 +715,7 @@ export class CoordinatorContract extends BaseContract { > { const self = (this as any) as CoordinatorContract; assert.isString('data', data); + const functionSignature = 'decodeOrdersFromFillData(bytes)'; return { async callAsync( @@ -853,29 +739,11 @@ export class CoordinatorContract extends BaseContract { takerFeeAssetData: string; }> > { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeOrdersFromFillData(bytes)', [data]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeOrdersFromFillData(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [data]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue< Array<{ makerAddress: string; takerAddress: string; @@ -893,14 +761,9 @@ export class CoordinatorContract extends BaseContract { takerFeeAssetData: string; }> >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeOrdersFromFillData(bytes)', [ - data, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [data]); }, }; } @@ -1063,101 +926,18 @@ export class CoordinatorContract extends BaseContract { transactionSignature: string; }): ContractFunctionObj { const self = (this as any) as CoordinatorContract; + const functionSignature = 'EIP712_COORDINATOR_DOMAIN_HASH()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getCoordinatorApprovalHash((address,bytes32,bytes))', [ - approval, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getCoordinatorApprovalHash((address,bytes32,bytes))'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getCoordinatorApprovalHash((address,bytes32,bytes))', - [approval], - ); - return abiEncodedTransactionData; - }, - }; - } - /** - * Recovers the address of a signer given a hash and signature. - * @param hash Any 32 byte hash. - * @param signature Proof that the hash has been signed by signer. - * @returns signerAddress Address of the signer. - */ - public getSignerAddress(hash: string, signature: string): ContractFunctionObj { - const self = (this as any) as CoordinatorContract; - assert.isString('hash', hash); - assert.isString('signature', signature); - - return { - async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, signature]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getSignerAddress(bytes32,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [ - hash, - signature, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } 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 24cacc11d4..439fa8265f 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts @@ -106,9 +106,11 @@ export class CoordinatorRegistryContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -283,114 +285,62 @@ export class CoordinatorRegistryContract extends BaseContract { public setCoordinatorEndpoint(coordinatorEndpoint: string): ContractTxFunctionObj { const self = (this as any) as CoordinatorRegistryContract; assert.isString('coordinatorEndpoint', coordinatorEndpoint); + const functionSignature = 'setCoordinatorEndpoint(string)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [coordinatorEndpoint]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [coordinatorEndpoint]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [ - coordinatorEndpoint, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('setCoordinatorEndpoint(string)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [coordinatorEndpoint]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [ - coordinatorEndpoint, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [coordinatorEndpoint]); + }, + }; + } + /** + * Gets the endpoint for a Coordinator. + * @param coordinatorOperator operator of the Coordinator endpoint. + */ + public getCoordinatorEndpoint(coordinatorOperator: string): ContractFunctionObj { + const self = (this as any) as CoordinatorRegistryContract; + assert.isString('coordinatorOperator', coordinatorOperator); + const functionSignature = 'getCoordinatorEndpoint(address)'; + + return { + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [coordinatorOperator.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); + }, + getABIEncodedTransactionData(): string { + return self._strictEncodeArguments(functionSignature, [coordinatorOperator.toLowerCase()]); }, }; } diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts b/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts index 4d18ea0ae6..9cc204185f 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/dev_utils.ts @@ -100,9 +100,11 @@ export class DevUtilsContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, [_exchange]); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -1516,43 +1518,21 @@ export class DevUtilsContract extends BaseContract { public decodeAssetProxyDispatchError(encoded: string): ContractFunctionObj<[number, string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeAssetProxyDispatchError(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[number, string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeAssetProxyDispatchError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeAssetProxyDispatchError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[number, string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[number, string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeAssetProxyDispatchError(bytes)', [ - encoded, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -1564,40 +1544,18 @@ export class DevUtilsContract extends BaseContract { public decodeAssetProxyExistsError(encoded: string): ContractFunctionObj<[string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeAssetProxyExistsError(bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise<[string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeAssetProxyExistsError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeAssetProxyExistsError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeAssetProxyExistsError(bytes)', [ - encoded, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -1610,38 +1568,18 @@ export class DevUtilsContract extends BaseContract { public decodeAssetProxyId(assetData: string): ContractFunctionObj { const self = (this as any) as DevUtilsContract; assert.isString('assetData', assetData); + const functionSignature = 'decodeAssetProxyId(bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeAssetProxyId(bytes)', [assetData]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeAssetProxyId(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [assetData]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeAssetProxyId(bytes)', [assetData]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetData]); }, }; } @@ -1653,43 +1591,21 @@ export class DevUtilsContract extends BaseContract { public decodeAssetProxyTransferError(encoded: string): ContractFunctionObj<[string, string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeAssetProxyTransferError(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[string, string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeAssetProxyTransferError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeAssetProxyTransferError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeAssetProxyTransferError(bytes)', [ - encoded, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -1701,43 +1617,21 @@ export class DevUtilsContract extends BaseContract { public decodeEIP1271SignatureError(encoded: string): ContractFunctionObj<[string, string, string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeEIP1271SignatureError(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[string, string, string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeEIP1271SignatureError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeEIP1271SignatureError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string, string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string, string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeEIP1271SignatureError(bytes)', [ - encoded, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -1752,45 +1646,23 @@ export class DevUtilsContract extends BaseContract { ): ContractFunctionObj<[string, string, BigNumber[], BigNumber[], string]> { const self = (this as any) as DevUtilsContract; assert.isString('assetData', assetData); + const functionSignature = 'decodeERC1155AssetData(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[string, string, BigNumber[], BigNumber[], string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeERC1155AssetData(bytes)', [assetData]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeERC1155AssetData(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string, BigNumber[], BigNumber[], string]>( + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [assetData]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string, BigNumber[], BigNumber[], string]>( rawCallResult, ); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeERC1155AssetData(bytes)', [ - assetData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetData]); }, }; } @@ -1802,40 +1674,18 @@ export class DevUtilsContract extends BaseContract { public decodeERC20AssetData(assetData: string): ContractFunctionObj<[string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('assetData', assetData); + const functionSignature = 'decodeERC20AssetData(bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise<[string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeERC20AssetData(bytes)', [assetData]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeERC20AssetData(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [assetData]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeERC20AssetData(bytes)', [ - assetData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetData]); }, }; } @@ -1848,43 +1698,21 @@ export class DevUtilsContract extends BaseContract { public decodeERC721AssetData(assetData: string): ContractFunctionObj<[string, string, BigNumber]> { const self = (this as any) as DevUtilsContract; assert.isString('assetData', assetData); + const functionSignature = 'decodeERC721AssetData(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[string, string, BigNumber]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeERC721AssetData(bytes)', [assetData]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeERC721AssetData(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string, BigNumber]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [assetData]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string, BigNumber]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeERC721AssetData(bytes)', [ - assetData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetData]); }, }; } @@ -1896,44 +1724,21 @@ export class DevUtilsContract extends BaseContract { public decodeExchangeInvalidContextError(encoded: string): ContractFunctionObj<[number, string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeExchangeInvalidContextError(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[number, string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeExchangeInvalidContextError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeExchangeInvalidContextError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[number, string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[number, string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'decodeExchangeInvalidContextError(bytes)', - [encoded], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -1945,38 +1750,18 @@ export class DevUtilsContract extends BaseContract { public decodeFillError(encoded: string): ContractFunctionObj<[number, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeFillError(bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise<[number, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeFillError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeFillError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[number, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[number, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeFillError(bytes)', [encoded]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -1988,43 +1773,21 @@ export class DevUtilsContract extends BaseContract { public decodeIncompleteFillError(encoded: string): ContractFunctionObj<[number, BigNumber, BigNumber]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeIncompleteFillError(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[number, BigNumber, BigNumber]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeIncompleteFillError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeIncompleteFillError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[number, BigNumber, BigNumber]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[number, BigNumber, BigNumber]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeIncompleteFillError(bytes)', [ - encoded, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -2036,43 +1799,21 @@ export class DevUtilsContract extends BaseContract { public decodeMultiAssetData(assetData: string): ContractFunctionObj<[string, BigNumber[], string[]]> { const self = (this as any) as DevUtilsContract; assert.isString('assetData', assetData); + const functionSignature = 'decodeMultiAssetData(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[string, BigNumber[], string[]]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeMultiAssetData(bytes)', [assetData]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeMultiAssetData(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, BigNumber[], string[]]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [assetData]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, BigNumber[], string[]]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeMultiAssetData(bytes)', [ - assetData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetData]); }, }; } @@ -2084,40 +1825,18 @@ export class DevUtilsContract extends BaseContract { public decodeNegativeSpreadError(encoded: string): ContractFunctionObj<[string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeNegativeSpreadError(bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise<[string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeNegativeSpreadError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeNegativeSpreadError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeNegativeSpreadError(bytes)', [ - encoded, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -2129,43 +1848,21 @@ export class DevUtilsContract extends BaseContract { public decodeOrderEpochError(encoded: string): ContractFunctionObj<[string, string, BigNumber]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeOrderEpochError(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[string, string, BigNumber]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeOrderEpochError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeOrderEpochError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string, BigNumber]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string, BigNumber]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeOrderEpochError(bytes)', [ - encoded, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -2177,40 +1874,18 @@ export class DevUtilsContract extends BaseContract { public decodeOrderStatusError(encoded: string): ContractFunctionObj<[string, number]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeOrderStatusError(bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise<[string, number]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeOrderStatusError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeOrderStatusError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, number]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, number]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeOrderStatusError(bytes)', [ - encoded, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -2222,41 +1897,21 @@ export class DevUtilsContract extends BaseContract { public decodeSignatureError(encoded: string): ContractFunctionObj<[number, string, string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeSignatureError(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[number, string, string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeSignatureError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeSignatureError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[number, string, string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[number, string, string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeSignatureError(bytes)', [encoded]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -2268,43 +1923,18 @@ export class DevUtilsContract extends BaseContract { public decodeSignatureValidatorNotApprovedError(encoded: string): ContractFunctionObj<[string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeSignatureValidatorNotApprovedError(bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise<[string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeSignatureValidatorNotApprovedError(bytes)', [ - encoded, - ]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeSignatureValidatorNotApprovedError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'decodeSignatureValidatorNotApprovedError(bytes)', - [encoded], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -2316,43 +1946,21 @@ export class DevUtilsContract extends BaseContract { public decodeSignatureWalletError(encoded: string): ContractFunctionObj<[string, string, string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeSignatureWalletError(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[string, string, string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeSignatureWalletError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeSignatureWalletError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string, string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string, string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeSignatureWalletError(bytes)', [ - encoded, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -2365,43 +1973,21 @@ export class DevUtilsContract extends BaseContract { public decodeStaticCallAssetData(assetData: string): ContractFunctionObj<[string, string, string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('assetData', assetData); + const functionSignature = 'decodeStaticCallAssetData(bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[string, string, string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeStaticCallAssetData(bytes)', [assetData]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeStaticCallAssetData(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string, string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [assetData]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string, string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeStaticCallAssetData(bytes)', [ - assetData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetData]); }, }; } @@ -2413,40 +1999,18 @@ export class DevUtilsContract extends BaseContract { public decodeTransactionError(encoded: string): ContractFunctionObj<[number, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeTransactionError(bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise<[number, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeTransactionError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeTransactionError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[number, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[number, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeTransactionError(bytes)', [ - encoded, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -2458,41 +2022,18 @@ export class DevUtilsContract extends BaseContract { public decodeTransactionExecutionError(encoded: string): ContractFunctionObj<[string, string]> { const self = (this as any) as DevUtilsContract; assert.isString('encoded', encoded); + const functionSignature = 'decodeTransactionExecutionError(bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise<[string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeTransactionExecutionError(bytes)', [encoded]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeTransactionExecutionError(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [encoded]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'decodeTransactionExecutionError(bytes)', - [encoded], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [encoded]); }, }; } @@ -2529,6 +2070,7 @@ export class DevUtilsContract extends BaseContract { > { const self = (this as any) as DevUtilsContract; assert.isString('transactionData', transactionData); + const functionSignature = 'decodeZeroExTransactionData(bytes)'; return { async callAsync( @@ -2557,31 +2099,11 @@ export class DevUtilsContract extends BaseContract { string[] ] > { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decodeZeroExTransactionData(bytes)', [ - transactionData, - ]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decodeZeroExTransactionData(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [transactionData]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue< [ string, Array<{ @@ -2604,14 +2126,9 @@ export class DevUtilsContract extends BaseContract { string[] ] >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decodeZeroExTransactionData(bytes)', [ - transactionData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [transactionData]); }, }; } @@ -2636,44 +2153,28 @@ export class DevUtilsContract extends BaseContract { assert.isArray('tokenIds', tokenIds); assert.isArray('tokenValues', tokenValues); assert.isString('callbackData', callbackData); + const functionSignature = 'encodeERC1155AssetData(address,uint256[],uint256[],bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + tokenAddress.toLowerCase(), + tokenIds, + tokenValues, + callbackData, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'encodeERC1155AssetData(address,uint256[],uint256[],bytes)', - [tokenAddress.toLowerCase(), tokenIds, tokenValues, callbackData], - ); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('encodeERC1155AssetData(address,uint256[],uint256[],bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'encodeERC1155AssetData(address,uint256[],uint256[],bytes)', - [tokenAddress.toLowerCase(), tokenIds, tokenValues, callbackData], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + tokenAddress.toLowerCase(), + tokenIds, + tokenValues, + callbackData, + ]); }, }; } @@ -2686,42 +2187,18 @@ export class DevUtilsContract extends BaseContract { public encodeERC20AssetData(tokenAddress: string): ContractFunctionObj { const self = (this as any) as DevUtilsContract; assert.isString('tokenAddress', tokenAddress); + const functionSignature = 'encodeERC20AssetData(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('encodeERC20AssetData(address)', [ - tokenAddress.toLowerCase(), - ]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('encodeERC20AssetData(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [tokenAddress.toLowerCase()]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('encodeERC20AssetData(address)', [ - tokenAddress.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [tokenAddress.toLowerCase()]); }, }; } @@ -2736,44 +2213,21 @@ export class DevUtilsContract extends BaseContract { const self = (this as any) as DevUtilsContract; assert.isString('tokenAddress', tokenAddress); assert.isBigNumber('tokenId', tokenId); + const functionSignature = 'encodeERC721AssetData(address,uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('encodeERC721AssetData(address,uint256)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ tokenAddress.toLowerCase(), tokenId, ]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('encodeERC721AssetData(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'encodeERC721AssetData(address,uint256)', - [tokenAddress.toLowerCase(), tokenId], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [tokenAddress.toLowerCase(), tokenId]); }, }; } @@ -2788,44 +2242,18 @@ export class DevUtilsContract extends BaseContract { const self = (this as any) as DevUtilsContract; assert.isArray('amounts', amounts); assert.isArray('nestedAssetData', nestedAssetData); + const functionSignature = 'encodeMultiAssetData(uint256[],bytes[])'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('encodeMultiAssetData(uint256[],bytes[])', [ - amounts, - nestedAssetData, - ]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('encodeMultiAssetData(uint256[],bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [amounts, nestedAssetData]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'encodeMultiAssetData(uint256[],bytes[])', - [amounts, nestedAssetData], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [amounts, nestedAssetData]); }, }; } @@ -2847,45 +2275,26 @@ export class DevUtilsContract extends BaseContract { assert.isString('staticCallTargetAddress', staticCallTargetAddress); assert.isString('staticCallData', staticCallData); assert.isString('expectedReturnDataHash', expectedReturnDataHash); + const functionSignature = 'encodeStaticCallAssetData(address,bytes,bytes32)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('encodeStaticCallAssetData(address,bytes,bytes32)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ staticCallTargetAddress.toLowerCase(), staticCallData, expectedReturnDataHash, ]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('encodeStaticCallAssetData(address,bytes,bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'encodeStaticCallAssetData(address,bytes,bytes32)', - [staticCallTargetAddress.toLowerCase(), staticCallData, expectedReturnDataHash], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + staticCallTargetAddress.toLowerCase(), + staticCallData, + expectedReturnDataHash, + ]); }, }; } @@ -2900,54 +2309,21 @@ export class DevUtilsContract extends BaseContract { const self = (this as any) as DevUtilsContract; assert.isString('ownerAddress', ownerAddress); assert.isString('assetData', assetData); + const functionSignature = 'getAssetProxyAllowance(address,bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getAssetProxyAllowance(address,bytes)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ ownerAddress.toLowerCase(), assetData, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getAssetProxyAllowance(address,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getAssetProxyAllowance(address,bytes)', [ - ownerAddress.toLowerCase(), - assetData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ownerAddress.toLowerCase(), assetData]); }, }; } @@ -2962,54 +2338,21 @@ export class DevUtilsContract extends BaseContract { const self = (this as any) as DevUtilsContract; assert.isString('ownerAddress', ownerAddress); assert.isString('assetData', assetData); + const functionSignature = 'getBalance(address,bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getBalance(address,bytes)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ ownerAddress.toLowerCase(), assetData, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getBalance(address,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getBalance(address,bytes)', [ - ownerAddress.toLowerCase(), - assetData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ownerAddress.toLowerCase(), assetData]); }, }; } @@ -3027,57 +2370,24 @@ export class DevUtilsContract extends BaseContract { const self = (this as any) as DevUtilsContract; assert.isString('ownerAddress', ownerAddress); assert.isString('assetData', assetData); + const functionSignature = 'getBalanceAndAssetProxyAllowance(address,bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber, BigNumber]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getBalanceAndAssetProxyAllowance(address,bytes)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ ownerAddress.toLowerCase(), assetData, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getBalanceAndAssetProxyAllowance(address,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber]>(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getBalanceAndAssetProxyAllowance(address,bytes)', - [ownerAddress.toLowerCase(), assetData], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ownerAddress.toLowerCase(), assetData]); }, }; } @@ -3092,54 +2402,21 @@ export class DevUtilsContract extends BaseContract { const self = (this as any) as DevUtilsContract; assert.isString('ownerAddress', ownerAddress); assert.isArray('assetData', assetData); + const functionSignature = 'getBatchAssetProxyAllowances(address,bytes[])'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getBatchAssetProxyAllowances(address,bytes[])', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ ownerAddress.toLowerCase(), assetData, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getBatchAssetProxyAllowances(address,bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getBatchAssetProxyAllowances(address,bytes[])', - [ownerAddress.toLowerCase(), assetData], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ownerAddress.toLowerCase(), assetData]); }, }; } @@ -3154,54 +2431,21 @@ export class DevUtilsContract extends BaseContract { const self = (this as any) as DevUtilsContract; assert.isString('ownerAddress', ownerAddress); assert.isArray('assetData', assetData); + const functionSignature = 'getBatchBalances(address,bytes[])'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getBatchBalances(address,bytes[])', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ ownerAddress.toLowerCase(), assetData, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getBatchBalances(address,bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getBatchBalances(address,bytes[])', [ - ownerAddress.toLowerCase(), - assetData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ownerAddress.toLowerCase(), assetData]); }, }; } @@ -3219,57 +2463,24 @@ export class DevUtilsContract extends BaseContract { const self = (this as any) as DevUtilsContract; assert.isString('ownerAddress', ownerAddress); assert.isArray('assetData', assetData); + const functionSignature = 'getBatchBalancesAndAssetProxyAllowances(address,bytes[])'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber[], BigNumber[]]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + ownerAddress.toLowerCase(), + assetData, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'getBatchBalancesAndAssetProxyAllowances(address,bytes[])', - [ownerAddress.toLowerCase(), assetData], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getBatchBalancesAndAssetProxyAllowances(address,bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber[], BigNumber[]]>(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber[], BigNumber[]]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getBatchBalancesAndAssetProxyAllowances(address,bytes[])', - [ownerAddress.toLowerCase(), assetData], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ownerAddress.toLowerCase(), assetData]); }, }; } @@ -3281,48 +2492,18 @@ export class DevUtilsContract extends BaseContract { public getEthBalances(addresses: string[]): ContractFunctionObj { const self = (this as any) as DevUtilsContract; assert.isArray('addresses', addresses); + const functionSignature = 'getEthBalances(address[])'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getEthBalances(address[])', [addresses]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getEthBalances(address[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [addresses]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getEthBalances(address[])', [addresses]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [addresses]); }, }; } @@ -3358,6 +2539,8 @@ export class DevUtilsContract extends BaseContract { const self = (this as any) as DevUtilsContract; assert.isString('signature', signature); + const functionSignature = + 'getOrderRelevantState((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes)'; return { async callAsync( @@ -3366,59 +2549,20 @@ export class DevUtilsContract extends BaseContract { ): Promise< [{ orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }, BigNumber, boolean] > { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'getOrderRelevantState((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes)', - [order, signature], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getOrderRelevantState((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [order, signature]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue< [ { orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }, BigNumber, boolean ] >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getOrderRelevantState((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes)', - [order, signature], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [order, signature]); }, }; } @@ -3458,6 +2602,8 @@ export class DevUtilsContract extends BaseContract { const self = (this as any) as DevUtilsContract; assert.isArray('orders', orders); assert.isArray('signatures', signatures); + const functionSignature = + 'getOrderRelevantStates((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[])'; return { async callAsync( @@ -3470,59 +2616,20 @@ export class DevUtilsContract extends BaseContract { boolean[] ] > { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'getOrderRelevantStates((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[])', - [orders, signatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getOrderRelevantStates((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [orders, signatures]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue< [ Array<{ orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }>, BigNumber[], boolean[] ] >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getOrderRelevantStates((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[])', - [orders, signatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders, signatures]); }, }; } @@ -3558,120 +2665,57 @@ export class DevUtilsContract extends BaseContract { assert.isString('takerAddress', takerAddress); assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); + const functionSignature = + 'getSimulatedOrderTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'getSimulatedOrderTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),address,uint256)', - [order, takerAddress.toLowerCase(), takerAssetFillAmount], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [ + order, + takerAddress.toLowerCase(), + takerAssetFillAmount, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'getSimulatedOrderTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),address,uint256)', - [order, takerAddress.toLowerCase(), takerAssetFillAmount], - ); - 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 encodedData = self._strictEncodeArguments(functionSignature, [ + order, + takerAddress.toLowerCase(), + takerAssetFillAmount, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + order, + takerAddress.toLowerCase(), + takerAssetFillAmount, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'getSimulatedOrderTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),address,uint256)', - [order, takerAddress.toLowerCase(), takerAssetFillAmount], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getSimulatedOrderTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),address,uint256)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getSimulatedOrderTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),address,uint256)', - [order, takerAddress.toLowerCase(), takerAssetFillAmount], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + order, + takerAddress.toLowerCase(), + takerAssetFillAmount, + ]); }, }; } @@ -3708,120 +2752,53 @@ export class DevUtilsContract extends BaseContract { assert.isArray('orders', orders); assert.isArray('takerAddresses', takerAddresses); assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); + const functionSignature = + 'getSimulatedOrdersTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],address[],uint256[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'getSimulatedOrdersTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],address[],uint256[])', - [orders, takerAddresses, takerAssetFillAmounts], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAddresses, + takerAssetFillAmounts, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'getSimulatedOrdersTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],address[],uint256[])', - [orders, takerAddresses, takerAssetFillAmounts], - ); - 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 encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAddresses, + takerAssetFillAmounts, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAddresses, + takerAssetFillAmounts, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'getSimulatedOrdersTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],address[],uint256[])', - [orders, takerAddresses, takerAssetFillAmounts], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getSimulatedOrdersTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],address[],uint256[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getSimulatedOrdersTransferResults((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],address[],uint256[])', - [orders, takerAddresses, takerAssetFillAmounts], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders, takerAddresses, takerAssetFillAmounts]); }, }; } @@ -3836,94 +2813,39 @@ export class DevUtilsContract extends BaseContract { const self = (this as any) as DevUtilsContract; assert.isString('ownerAddress', ownerAddress); assert.isString('assetData', assetData); + const functionSignature = 'getTransferableAssetAmount(address,bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getTransferableAssetAmount(address,bytes)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ ownerAddress.toLowerCase(), assetData, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getTransferableAssetAmount(address,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getTransferableAssetAmount(address,bytes)', - [ownerAddress.toLowerCase(), assetData], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ownerAddress.toLowerCase(), assetData]); }, }; } public revertIfInvalidAssetData(assetData: string): ContractFunctionObj { const self = (this as any) as DevUtilsContract; assert.isString('assetData', assetData); + const functionSignature = 'revertIfInvalidAssetData(bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('revertIfInvalidAssetData(bytes)', [assetData]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('revertIfInvalidAssetData(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [assetData]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('revertIfInvalidAssetData(bytes)', [ - assetData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetData]); }, }; } 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 54a21f2095..72bb26f1c3 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 @@ -130,9 +130,11 @@ export class DummyERC20TokenContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, [_name, _symbol, _decimals, _totalSupply]); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -502,48 +504,18 @@ export class DummyERC20TokenContract extends BaseContract { public MAX_MINT_AMOUNT(): ContractFunctionObj { const self = (this as any) as DummyERC20TokenContract; + const functionSignature = 'MAX_MINT_AMOUNT()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('MAX_MINT_AMOUNT()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('MAX_MINT_AMOUNT()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('MAX_MINT_AMOUNT()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -551,54 +523,21 @@ export class DummyERC20TokenContract extends BaseContract { const self = (this as any) as DummyERC20TokenContract; assert.isString('_owner', _owner); assert.isString('_spender', _spender); + const functionSignature = 'allowance(address,address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('allowance(address,address)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _owner.toLowerCase(), _spender.toLowerCase(), ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('allowance(address,address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('allowance(address,address)', [ - _owner.toLowerCase(), - _spender.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_owner.toLowerCase(), _spender.toLowerCase()]); }, }; } @@ -612,118 +551,40 @@ export class DummyERC20TokenContract extends BaseContract { const self = (this as any) as DummyERC20TokenContract; assert.isString('_spender', _spender); assert.isBigNumber('_value', _value); + const functionSignature = 'approve(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [_spender.toLowerCase(), _value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [_spender.toLowerCase(), _value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('approve(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_spender.toLowerCase(), _value]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_spender.toLowerCase(), _value]); }, }; } @@ -735,97 +596,35 @@ export class DummyERC20TokenContract extends BaseContract { public balanceOf(_owner: string): ContractFunctionObj { const self = (this as any) as DummyERC20TokenContract; assert.isString('_owner', _owner); + const functionSignature = 'balanceOf(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('balanceOf(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_owner.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [ - _owner.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_owner.toLowerCase()]); }, }; } public decimals(): ContractFunctionObj { const self = (this as any) as DummyERC20TokenContract; + const functionSignature = 'decimals()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decimals()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decimals()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decimals()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -836,200 +635,74 @@ export class DummyERC20TokenContract extends BaseContract { public mint(_value: BigNumber): ContractTxFunctionObj { const self = (this as any) as DummyERC20TokenContract; assert.isBigNumber('_value', _value); + const functionSignature = 'mint(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [_value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [_value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('mint(uint256)', [_value]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('mint(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_value]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('mint(uint256)', [_value]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_value]); }, }; } public name(): ContractFunctionObj { const self = (this as any) as DummyERC20TokenContract; + const functionSignature = 'name()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('name()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('name()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('name()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public owner(): ContractFunctionObj { const self = (this as any) as DummyERC20TokenContract; + const functionSignature = 'owner()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('owner()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('owner()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -1042,165 +715,57 @@ export class DummyERC20TokenContract extends BaseContract { const self = (this as any) as DummyERC20TokenContract; assert.isString('_target', _target); assert.isBigNumber('_value', _value); + const functionSignature = 'setBalance(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [_target.toLowerCase(), _value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [_target.toLowerCase(), _value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [ - _target.toLowerCase(), - _value, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('setBalance(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_target.toLowerCase(), _value]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('setBalance(address,uint256)', [ - _target.toLowerCase(), - _value, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_target.toLowerCase(), _value]); }, }; } public symbol(): ContractFunctionObj { const self = (this as any) as DummyERC20TokenContract; + const functionSignature = 'symbol()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('symbol()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('symbol()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('symbol()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -1210,48 +775,18 @@ export class DummyERC20TokenContract extends BaseContract { */ public totalSupply(): ContractFunctionObj { const self = (this as any) as DummyERC20TokenContract; + const functionSignature = 'totalSupply()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('totalSupply()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('totalSupply()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('totalSupply()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -1265,118 +800,40 @@ export class DummyERC20TokenContract extends BaseContract { const self = (this as any) as DummyERC20TokenContract; assert.isString('_to', _to); assert.isBigNumber('_value', _value); + const functionSignature = 'transfer(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [ - _to.toLowerCase(), - _value, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _value]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [ - _to.toLowerCase(), - _value, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _value]); }, }; } @@ -1392,230 +849,92 @@ export class DummyERC20TokenContract extends BaseContract { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_value', _value); + const functionSignature = 'transferFrom(address,address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _from.toLowerCase(), _to.toLowerCase(), _value, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _value, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_from.toLowerCase(), _to.toLowerCase(), _value]); }, }; } public transferOwnership(newOwner: string): ContractTxFunctionObj { const self = (this as any) as DummyERC20TokenContract; assert.isString('newOwner', newOwner); + const functionSignature = 'transferOwnership(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); }, }; } 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 6ff77684f4..e1e716e8be 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 @@ -134,9 +134,11 @@ export class DummyERC721TokenContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, [_name, _symbol]); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -563,118 +565,40 @@ export class DummyERC721TokenContract extends BaseContract { const self = (this as any) as DummyERC721TokenContract; assert.isString('_approved', _approved); assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'approve(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [_approved.toLowerCase(), _tokenId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [_approved.toLowerCase(), _tokenId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _approved.toLowerCase(), - _tokenId, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('approve(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_approved.toLowerCase(), _tokenId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [ - _approved.toLowerCase(), - _tokenId, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_approved.toLowerCase(), _tokenId]); }, }; } @@ -687,50 +611,18 @@ export class DummyERC721TokenContract extends BaseContract { public balanceOf(_owner: string): ContractFunctionObj { const self = (this as any) as DummyERC721TokenContract; assert.isString('_owner', _owner); + const functionSignature = 'balanceOf(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('balanceOf(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_owner.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [ - _owner.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_owner.toLowerCase()]); }, }; } @@ -744,118 +636,40 @@ export class DummyERC721TokenContract extends BaseContract { const self = (this as any) as DummyERC721TokenContract; assert.isString('_owner', _owner); assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'burn(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [_owner.toLowerCase(), _tokenId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [_owner.toLowerCase(), _tokenId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('burn(address,uint256)', [ - _owner.toLowerCase(), - _tokenId, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('burn(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_owner.toLowerCase(), _tokenId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('burn(address,uint256)', [ - _owner.toLowerCase(), - _tokenId, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_owner.toLowerCase(), _tokenId]); }, }; } @@ -867,48 +681,18 @@ export class DummyERC721TokenContract extends BaseContract { public getApproved(_tokenId: BigNumber): ContractFunctionObj { const self = (this as any) as DummyERC721TokenContract; assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'getApproved(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getApproved(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_tokenId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_tokenId]); }, }; } @@ -916,54 +700,21 @@ export class DummyERC721TokenContract extends BaseContract { const self = (this as any) as DummyERC721TokenContract; assert.isString('_owner', _owner); assert.isString('_operator', _operator); + const functionSignature = 'isApprovedForAll(address,address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _owner.toLowerCase(), _operator.toLowerCase(), ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('isApprovedForAll(address,address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('isApprovedForAll(address,address)', [ - _owner.toLowerCase(), - _operator.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_owner.toLowerCase(), _operator.toLowerCase()]); }, }; } @@ -977,203 +728,74 @@ export class DummyERC721TokenContract extends BaseContract { const self = (this as any) as DummyERC721TokenContract; assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'mint(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _tokenId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _tokenId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to.toLowerCase(), _tokenId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('mint(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _tokenId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('mint(address,uint256)', [ - _to.toLowerCase(), - _tokenId, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _tokenId]); }, }; } public name(): ContractFunctionObj { const self = (this as any) as DummyERC721TokenContract; + const functionSignature = 'name()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('name()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('name()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('name()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public owner(): ContractFunctionObj { const self = (this as any) as DummyERC721TokenContract; + const functionSignature = 'owner()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('owner()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('owner()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -1186,48 +808,18 @@ export class DummyERC721TokenContract extends BaseContract { public ownerOf(_tokenId: BigNumber): ContractFunctionObj { const self = (this as any) as DummyERC721TokenContract; assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'ownerOf(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('ownerOf(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_tokenId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_tokenId]); }, }; } @@ -1243,121 +835,56 @@ export class DummyERC721TokenContract extends BaseContract { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'safeTransferFrom(address,address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _from.toLowerCase(), _to.toLowerCase(), _tokenId, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'safeTransferFrom(address,address,uint256)', - [_from.toLowerCase(), _to.toLowerCase(), _tokenId], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + _from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + ]); }, }; } @@ -1385,124 +912,60 @@ export class DummyERC721TokenContract extends BaseContract { assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); assert.isString('_data', _data); + const functionSignature = 'safeTransferFrom(address,address,uint256,bytes)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _from.toLowerCase(), _to.toLowerCase(), _tokenId, _data, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'safeTransferFrom(address,address,uint256,bytes)', - [_from.toLowerCase(), _to.toLowerCase(), _tokenId, _data], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + _from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data, + ]); }, }; } @@ -1516,165 +979,66 @@ export class DummyERC721TokenContract extends BaseContract { const self = (this as any) as DummyERC721TokenContract; assert.isString('_operator', _operator); assert.isBoolean('_approved', _approved); + const functionSignature = 'setApprovalForAll(address,bool)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _operator.toLowerCase(), _approved, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('setApprovalForAll(address,bool)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ - _operator.toLowerCase(), - _approved, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_operator.toLowerCase(), _approved]); }, }; } public symbol(): ContractFunctionObj { const self = (this as any) as DummyERC721TokenContract; + const functionSignature = 'symbol()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('symbol()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('symbol()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('symbol()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -1692,230 +1056,96 @@ export class DummyERC721TokenContract extends BaseContract { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'transferFrom(address,address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _from.toLowerCase(), _to.toLowerCase(), _tokenId, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + return self._strictEncodeArguments(functionSignature, [ _from.toLowerCase(), _to.toLowerCase(), _tokenId, ]); - return abiEncodedTransactionData; }, }; } public transferOwnership(newOwner: string): ContractTxFunctionObj { const self = (this as any) as DummyERC721TokenContract; assert.isString('newOwner', newOwner); + const functionSignature = 'transferOwnership(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); }, }; } diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/erc1155_mintable.ts b/packages/abi-gen-wrappers/src/generated-wrappers/erc1155_mintable.ts index a5e41bca2f..1250a5072c 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/erc1155_mintable.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/erc1155_mintable.ts @@ -130,9 +130,11 @@ export class ERC1155MintableContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -721,95 +723,35 @@ export class ERC1155MintableContract extends BaseContract { public ERC1155_BATCH_RECEIVED(): ContractFunctionObj { const self = (this as any) as ERC1155MintableContract; + const functionSignature = 'ERC1155_BATCH_RECEIVED()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('ERC1155_BATCH_RECEIVED()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('ERC1155_BATCH_RECEIVED()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('ERC1155_BATCH_RECEIVED()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public ERC1155_RECEIVED(): ContractFunctionObj { const self = (this as any) as ERC1155MintableContract; + const functionSignature = 'ERC1155_RECEIVED()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('ERC1155_RECEIVED()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('ERC1155_RECEIVED()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('ERC1155_RECEIVED()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -817,54 +759,18 @@ export class ERC1155MintableContract extends BaseContract { const self = (this as any) as ERC1155MintableContract; assert.isString('owner', owner); assert.isBigNumber('id', id); + const functionSignature = 'balanceOf(address,uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('balanceOf(address,uint256)', [ - owner.toLowerCase(), - id, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('balanceOf(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [owner.toLowerCase(), id]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address,uint256)', [ - owner.toLowerCase(), - id, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [owner.toLowerCase(), id]); }, }; } @@ -872,51 +778,18 @@ export class ERC1155MintableContract extends BaseContract { const self = (this as any) as ERC1155MintableContract; assert.isArray('owners', owners); assert.isArray('ids', ids); + const functionSignature = 'balanceOfBatch(address[],uint256[])'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('balanceOfBatch(address[],uint256[])', [owners, ids]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('balanceOfBatch(address[],uint256[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [owners, ids]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOfBatch(address[],uint256[])', [ - owners, - ids, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [owners, ids]); }, }; } @@ -930,106 +803,40 @@ export class ERC1155MintableContract extends BaseContract { const self = (this as any) as ERC1155MintableContract; assert.isString('uri', uri); assert.isBoolean('isNF', isNF); + const functionSignature = 'create(string,bool)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('create(string,bool)', [uri, isNF]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [uri, isNF]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('create(string,bool)', [uri, isNF]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [uri, isNF]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('create(string,bool)', [uri, isNF]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('create(string,bool)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [uri, isNF]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('create(string,bool)', [uri, isNF]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [uri, isNF]); }, }; } @@ -1042,157 +849,58 @@ export class ERC1155MintableContract extends BaseContract { const self = (this as any) as ERC1155MintableContract; assert.isBigNumber('type_', type_); assert.isString('uri', uri); + const functionSignature = 'createWithType(uint256,string)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('createWithType(uint256,string)', [type_, uri]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [type_, uri]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('createWithType(uint256,string)', [type_, uri]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [type_, uri]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('createWithType(uint256,string)', [type_, uri]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('createWithType(uint256,string)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [type_, uri]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('createWithType(uint256,string)', [ - type_, - uri, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [type_, uri]); }, }; } public creators(index_0: BigNumber): ContractFunctionObj { const self = (this as any) as ERC1155MintableContract; assert.isBigNumber('index_0', index_0); + const functionSignature = 'creators(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('creators(uint256)', [index_0]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('creators(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('creators(uint256)', [index_0]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0]); }, }; } @@ -1202,38 +910,18 @@ export class ERC1155MintableContract extends BaseContract { public getNonFungibleBaseType(id: BigNumber): ContractFunctionObj { const self = (this as any) as ERC1155MintableContract; assert.isBigNumber('id', id); + const functionSignature = 'getNonFungibleBaseType(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getNonFungibleBaseType(uint256)', [id]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getNonFungibleBaseType(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [id]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getNonFungibleBaseType(uint256)', [id]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [id]); }, }; } @@ -1243,38 +931,18 @@ export class ERC1155MintableContract extends BaseContract { public getNonFungibleIndex(id: BigNumber): ContractFunctionObj { const self = (this as any) as ERC1155MintableContract; assert.isBigNumber('id', id); + const functionSignature = 'getNonFungibleIndex(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getNonFungibleIndex(uint256)', [id]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getNonFungibleIndex(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [id]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getNonFungibleIndex(uint256)', [id]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [id]); }, }; } @@ -1282,54 +950,21 @@ export class ERC1155MintableContract extends BaseContract { const self = (this as any) as ERC1155MintableContract; assert.isString('owner', owner); assert.isString('operator', operator); + const functionSignature = 'isApprovedForAll(address,address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ owner.toLowerCase(), operator.toLowerCase(), ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('isApprovedForAll(address,address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('isApprovedForAll(address,address)', [ - owner.toLowerCase(), - operator.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [owner.toLowerCase(), operator.toLowerCase()]); }, }; } @@ -1339,38 +974,18 @@ export class ERC1155MintableContract extends BaseContract { public isFungible(id: BigNumber): ContractFunctionObj { const self = (this as any) as ERC1155MintableContract; assert.isBigNumber('id', id); + const functionSignature = 'isFungible(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('isFungible(uint256)', [id]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('isFungible(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [id]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('isFungible(uint256)', [id]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [id]); }, }; } @@ -1380,38 +995,18 @@ export class ERC1155MintableContract extends BaseContract { public isNonFungible(id: BigNumber): ContractFunctionObj { const self = (this as any) as ERC1155MintableContract; assert.isBigNumber('id', id); + const functionSignature = 'isNonFungible(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('isNonFungible(uint256)', [id]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('isNonFungible(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [id]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('isNonFungible(uint256)', [id]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [id]); }, }; } @@ -1421,38 +1016,18 @@ export class ERC1155MintableContract extends BaseContract { public isNonFungibleBaseType(id: BigNumber): ContractFunctionObj { const self = (this as any) as ERC1155MintableContract; assert.isBigNumber('id', id); + const functionSignature = 'isNonFungibleBaseType(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('isNonFungibleBaseType(uint256)', [id]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('isNonFungibleBaseType(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [id]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('isNonFungibleBaseType(uint256)', [id]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [id]); }, }; } @@ -1462,86 +1037,36 @@ export class ERC1155MintableContract extends BaseContract { public isNonFungibleItem(id: BigNumber): ContractFunctionObj { const self = (this as any) as ERC1155MintableContract; assert.isBigNumber('id', id); + const functionSignature = 'isNonFungibleItem(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('isNonFungibleItem(uint256)', [id]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('isNonFungibleItem(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [id]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('isNonFungibleItem(uint256)', [id]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [id]); }, }; } public maxIndex(index_0: BigNumber): ContractFunctionObj { const self = (this as any) as ERC1155MintableContract; assert.isBigNumber('index_0', index_0); + const functionSignature = 'maxIndex(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('maxIndex(uint256)', [index_0]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('maxIndex(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('maxIndex(uint256)', [index_0]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0]); }, }; } @@ -1556,121 +1081,40 @@ export class ERC1155MintableContract extends BaseContract { assert.isBigNumber('id', id); assert.isArray('to', to); assert.isArray('quantities', quantities); + const functionSignature = 'mintFungible(uint256,address[],uint256[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('mintFungible(uint256,address[],uint256[])', [ - id, - to, - quantities, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [id, to, quantities]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('mintFungible(uint256,address[],uint256[])', [ - id, - to, - quantities, - ]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [id, to, quantities]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('mintFungible(uint256,address[],uint256[])', [ - id, - to, - quantities, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('mintFungible(uint256,address[],uint256[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [id, to, quantities]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'mintFungible(uint256,address[],uint256[])', - [id, to, quantities], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [id, to, quantities]); }, }; } @@ -1683,109 +1127,40 @@ export class ERC1155MintableContract extends BaseContract { const self = (this as any) as ERC1155MintableContract; assert.isBigNumber('type_', type_); assert.isArray('to', to); + const functionSignature = 'mintNonFungible(uint256,address[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('mintNonFungible(uint256,address[])', [type_, to]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [type_, to]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('mintNonFungible(uint256,address[])', [type_, to]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [type_, to]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('mintNonFungible(uint256,address[])', [type_, to]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('mintNonFungible(uint256,address[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [type_, to]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('mintNonFungible(uint256,address[])', [ - type_, - to, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [type_, to]); }, }; } @@ -1795,48 +1170,18 @@ export class ERC1155MintableContract extends BaseContract { public ownerOf(id: BigNumber): ContractFunctionObj { const self = (this as any) as ERC1155MintableContract; assert.isBigNumber('id', id); + const functionSignature = 'ownerOf(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('ownerOf(uint256)', [id]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('ownerOf(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [id]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('ownerOf(uint256)', [id]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [id]); }, }; } @@ -1861,120 +1206,64 @@ export class ERC1155MintableContract extends BaseContract { assert.isArray('ids', ids); assert.isArray('values', values); assert.isString('data', data); + const functionSignature = 'safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)', - [from.toLowerCase(), to.toLowerCase(), ids, values, 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 encodedData = self._strictEncodeArguments(functionSignature, [ + from.toLowerCase(), + to.toLowerCase(), + ids, + values, + data, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)', - [from.toLowerCase(), to.toLowerCase(), ids, values, 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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + from.toLowerCase(), + to.toLowerCase(), + ids, + values, + data, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + from.toLowerCase(), + to.toLowerCase(), + ids, + values, + data, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)', - [from.toLowerCase(), to.toLowerCase(), ids, values, data], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)', - [from.toLowerCase(), to.toLowerCase(), ids, values, data], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + from.toLowerCase(), + to.toLowerCase(), + ids, + values, + data, + ]); }, }; } @@ -1999,118 +1288,64 @@ export class ERC1155MintableContract extends BaseContract { assert.isBigNumber('id', id); assert.isBigNumber('value', value); assert.isString('data', data); + const functionSignature = 'safeTransferFrom(address,address,uint256,uint256,bytes)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'safeTransferFrom(address,address,uint256,uint256,bytes)', - [from.toLowerCase(), to.toLowerCase(), id, 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 encodedData = self._strictEncodeArguments(functionSignature, [ + from.toLowerCase(), + to.toLowerCase(), + id, + value, + data, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'safeTransferFrom(address,address,uint256,uint256,bytes)', - [from.toLowerCase(), to.toLowerCase(), id, 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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + from.toLowerCase(), + to.toLowerCase(), + id, + value, + data, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + from.toLowerCase(), + to.toLowerCase(), + id, + value, + data, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'safeTransferFrom(address,address,uint256,uint256,bytes)', - [from.toLowerCase(), to.toLowerCase(), id, value, data], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256,uint256,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'safeTransferFrom(address,address,uint256,uint256,bytes)', - [from.toLowerCase(), to.toLowerCase(), id, value, data], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + from.toLowerCase(), + to.toLowerCase(), + id, + value, + data, + ]); }, }; } @@ -2123,118 +1358,40 @@ export class ERC1155MintableContract extends BaseContract { const self = (this as any) as ERC1155MintableContract; assert.isString('operator', operator); assert.isBoolean('approved', approved); + const functionSignature = 'setApprovalForAll(address,bool)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [operator.toLowerCase(), approved]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [operator.toLowerCase(), approved]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ - operator.toLowerCase(), - approved, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('setApprovalForAll(address,bool)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [operator.toLowerCase(), approved]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ - operator.toLowerCase(), - approved, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [operator.toLowerCase(), approved]); }, }; } 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 c1d3579e53..236ef0e926 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts @@ -108,9 +108,11 @@ export class ERC20TokenContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -348,118 +350,40 @@ export class ERC20TokenContract extends BaseContract { const self = (this as any) as ERC20TokenContract; assert.isString('_spender', _spender); assert.isBigNumber('_value', _value); + const functionSignature = 'approve(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [_spender.toLowerCase(), _value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [_spender.toLowerCase(), _value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('approve(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_spender.toLowerCase(), _value]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [ - _spender.toLowerCase(), - _value, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_spender.toLowerCase(), _value]); }, }; } @@ -469,48 +393,18 @@ export class ERC20TokenContract extends BaseContract { */ public totalSupply(): ContractFunctionObj { const self = (this as any) as ERC20TokenContract; + const functionSignature = 'totalSupply()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('totalSupply()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('totalSupply()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('totalSupply()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -526,122 +420,52 @@ export class ERC20TokenContract extends BaseContract { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_value', _value); + const functionSignature = 'transferFrom(address,address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _from.toLowerCase(), _to.toLowerCase(), _value, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - _from.toLowerCase(), - _to.toLowerCase(), - _value, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_from.toLowerCase(), _to.toLowerCase(), _value]); }, }; } @@ -653,50 +477,18 @@ export class ERC20TokenContract extends BaseContract { public balanceOf(_owner: string): ContractFunctionObj { const self = (this as any) as ERC20TokenContract; assert.isString('_owner', _owner); + const functionSignature = 'balanceOf(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('balanceOf(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_owner.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [ - _owner.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_owner.toLowerCase()]); }, }; } @@ -710,118 +502,40 @@ export class ERC20TokenContract extends BaseContract { const self = (this as any) as ERC20TokenContract; assert.isString('_to', _to); assert.isBigNumber('_value', _value); + const functionSignature = 'transfer(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _value]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [ - _to.toLowerCase(), - _value, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _value]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [ - _to.toLowerCase(), - _value, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_to.toLowerCase(), _value]); }, }; } @@ -829,54 +543,21 @@ export class ERC20TokenContract extends BaseContract { const self = (this as any) as ERC20TokenContract; assert.isString('_owner', _owner); assert.isString('_spender', _spender); + const functionSignature = 'allowance(address,address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('allowance(address,address)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _owner.toLowerCase(), _spender.toLowerCase(), ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('allowance(address,address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('allowance(address,address)', [ - _owner.toLowerCase(), - _spender.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_owner.toLowerCase(), _spender.toLowerCase()]); }, }; } 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 7892de27fb..ebaac7a194 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts @@ -118,9 +118,11 @@ export class ERC721TokenContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -439,118 +441,40 @@ export class ERC721TokenContract extends BaseContract { const self = (this as any) as ERC721TokenContract; assert.isString('_approved', _approved); assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'approve(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [_approved.toLowerCase(), _tokenId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [_approved.toLowerCase(), _tokenId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [ - _approved.toLowerCase(), - _tokenId, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('approve(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_approved.toLowerCase(), _tokenId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [ - _approved.toLowerCase(), - _tokenId, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_approved.toLowerCase(), _tokenId]); }, }; } @@ -563,50 +487,18 @@ export class ERC721TokenContract extends BaseContract { public balanceOf(_owner: string): ContractFunctionObj { const self = (this as any) as ERC721TokenContract; assert.isString('_owner', _owner); + const functionSignature = 'balanceOf(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('balanceOf(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_owner.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [ - _owner.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_owner.toLowerCase()]); }, }; } @@ -618,48 +510,18 @@ export class ERC721TokenContract extends BaseContract { public getApproved(_tokenId: BigNumber): ContractFunctionObj { const self = (this as any) as ERC721TokenContract; assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'getApproved(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getApproved(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_tokenId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_tokenId]); }, }; } @@ -667,54 +529,21 @@ export class ERC721TokenContract extends BaseContract { const self = (this as any) as ERC721TokenContract; assert.isString('_owner', _owner); assert.isString('_operator', _operator); + const functionSignature = 'isApprovedForAll(address,address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _owner.toLowerCase(), _operator.toLowerCase(), ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('isApprovedForAll(address,address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('isApprovedForAll(address,address)', [ - _owner.toLowerCase(), - _operator.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_owner.toLowerCase(), _operator.toLowerCase()]); }, }; } @@ -727,48 +556,18 @@ export class ERC721TokenContract extends BaseContract { public ownerOf(_tokenId: BigNumber): ContractFunctionObj { const self = (this as any) as ERC721TokenContract; assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'ownerOf(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('ownerOf(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_tokenId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_tokenId]); }, }; } @@ -784,121 +583,56 @@ export class ERC721TokenContract extends BaseContract { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'safeTransferFrom(address,address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _from.toLowerCase(), _to.toLowerCase(), _tokenId, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'safeTransferFrom(address,address,uint256)', - [_from.toLowerCase(), _to.toLowerCase(), _tokenId], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + _from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + ]); }, }; } @@ -926,124 +660,60 @@ export class ERC721TokenContract extends BaseContract { assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); assert.isString('_data', _data); + const functionSignature = 'safeTransferFrom(address,address,uint256,bytes)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _from.toLowerCase(), _to.toLowerCase(), _tokenId, _data, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'safeTransferFrom(address,address,uint256,bytes)', - [_from.toLowerCase(), _to.toLowerCase(), _tokenId, _data], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + _from.toLowerCase(), + _to.toLowerCase(), + _tokenId, + _data, + ]); }, }; } @@ -1057,118 +727,49 @@ export class ERC721TokenContract extends BaseContract { const self = (this as any) as ERC721TokenContract; assert.isString('_operator', _operator); assert.isBoolean('_approved', _approved); + const functionSignature = 'setApprovalForAll(address,bool)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _operator.toLowerCase(), _approved, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('setApprovalForAll(address,bool)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [ - _operator.toLowerCase(), - _approved, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_operator.toLowerCase(), _approved]); }, }; } @@ -1186,122 +787,56 @@ export class ERC721TokenContract extends BaseContract { assert.isString('_from', _from); assert.isString('_to', _to); assert.isBigNumber('_tokenId', _tokenId); + const functionSignature = 'transferFrom(address,address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _from.toLowerCase(), _to.toLowerCase(), _tokenId, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + return self._strictEncodeArguments(functionSignature, [ _from.toLowerCase(), _to.toLowerCase(), _tokenId, ]); - return abiEncodedTransactionData; }, }; } diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts b/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts index d56ee22154..6b764c72f2 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts @@ -173,9 +173,11 @@ export class ExchangeContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, [chainId]); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -3105,95 +3107,35 @@ export class ExchangeContract extends BaseContract { public EIP1271_MAGIC_VALUE(): ContractFunctionObj { const self = (this as any) as ExchangeContract; + const functionSignature = 'EIP1271_MAGIC_VALUE()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('EIP1271_MAGIC_VALUE()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP1271_MAGIC_VALUE()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('EIP1271_MAGIC_VALUE()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public EIP712_EXCHANGE_DOMAIN_HASH(): ContractFunctionObj { const self = (this as any) as ExchangeContract; + const functionSignature = 'EIP712_EXCHANGE_DOMAIN_HASH()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('EIP712_EXCHANGE_DOMAIN_HASH()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_EXCHANGE_DOMAIN_HASH()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('EIP712_EXCHANGE_DOMAIN_HASH()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -3201,54 +3143,21 @@ export class ExchangeContract extends BaseContract { const self = (this as any) as ExchangeContract; assert.isString('index_0', index_0); assert.isString('index_1', index_1); + const functionSignature = 'allowedValidators(address,address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('allowedValidators(address,address)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ index_0.toLowerCase(), index_1.toLowerCase(), ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('allowedValidators(address,address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('allowedValidators(address,address)', [ - index_0.toLowerCase(), - index_1.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0.toLowerCase(), index_1.toLowerCase()]); }, }; } @@ -3276,120 +3185,41 @@ export class ExchangeContract extends BaseContract { ): ContractTxFunctionObj { const self = (this as any) as ExchangeContract; assert.isArray('orders', orders); + const functionSignature = + 'batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [orders]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [orders]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[])', - [orders], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [orders]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[])', - [orders], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders]); }, }; } @@ -3413,120 +3243,40 @@ export class ExchangeContract extends BaseContract { const self = (this as any) as ExchangeContract; assert.isArray('transactions', transactions); assert.isArray('signatures', signatures); + const functionSignature = 'batchExecuteTransactions((uint256,uint256,uint256,address,bytes)[],bytes[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'batchExecuteTransactions((uint256,uint256,uint256,address,bytes)[],bytes[])', - [transactions, 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 encodedData = self._strictEncodeArguments(functionSignature, [transactions, signatures]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'batchExecuteTransactions((uint256,uint256,uint256,address,bytes)[],bytes[])', - [transactions, 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; + const encodedData = self._strictEncodeArguments(functionSignature, [transactions, signatures]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'batchExecuteTransactions((uint256,uint256,uint256,address,bytes)[],bytes[])', - [transactions, signatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'batchExecuteTransactions((uint256,uint256,uint256,address,bytes)[],bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [transactions, signatures]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'batchExecuteTransactions((uint256,uint256,uint256,address,bytes)[],bytes[])', - [transactions, signatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [transactions, signatures]); }, }; } @@ -3570,71 +3320,39 @@ export class ExchangeContract extends BaseContract { assert.isArray('orders', orders); assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); assert.isArray('signatures', signatures); + const functionSignature = + 'batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmounts, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmounts, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -3648,44 +3366,15 @@ export class ExchangeContract extends BaseContract { protocolFeePaid: BigNumber; }> > { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmounts, + signatures, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue< Array<{ makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; @@ -3694,15 +3383,9 @@ export class ExchangeContract extends BaseContract { protocolFeePaid: BigNumber; }> >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders, takerAssetFillAmounts, signatures]); }, }; } @@ -3746,71 +3429,39 @@ export class ExchangeContract extends BaseContract { assert.isArray('orders', orders); assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); assert.isArray('signatures', signatures); + const functionSignature = + 'batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmounts, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmounts, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -3824,44 +3475,15 @@ export class ExchangeContract extends BaseContract { protocolFeePaid: BigNumber; }> > { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmounts, + signatures, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue< Array<{ makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; @@ -3870,15 +3492,9 @@ export class ExchangeContract extends BaseContract { protocolFeePaid: BigNumber; }> >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders, takerAssetFillAmounts, signatures]); }, }; } @@ -3922,71 +3538,39 @@ export class ExchangeContract extends BaseContract { assert.isArray('orders', orders); assert.isArray('takerAssetFillAmounts', takerAssetFillAmounts); assert.isArray('signatures', signatures); + const functionSignature = + 'batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmounts, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmounts, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -4000,44 +3584,15 @@ export class ExchangeContract extends BaseContract { protocolFeePaid: BigNumber; }> > { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmounts, + signatures, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue< Array<{ makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; @@ -4046,15 +3601,9 @@ export class ExchangeContract extends BaseContract { protocolFeePaid: BigNumber; }> >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256[],bytes[])', - [orders, takerAssetFillAmounts, signatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders, takerAssetFillAmounts, signatures]); }, }; } @@ -4128,71 +3677,41 @@ export class ExchangeContract extends BaseContract { assert.isArray('rightOrders', rightOrders); assert.isArray('leftSignatures', leftSignatures); assert.isArray('rightSignatures', rightSignatures); + const functionSignature = + 'batchMatchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'batchMatchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])', - [leftOrders, rightOrders, leftSignatures, rightSignatures], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrders, + rightOrders, + leftSignatures, + rightSignatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'batchMatchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])', - [leftOrders, rightOrders, leftSignatures, rightSignatures], - ); - 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 encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrders, + rightOrders, + leftSignatures, + rightSignatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -4215,44 +3734,16 @@ export class ExchangeContract extends BaseContract { profitInLeftMakerAsset: BigNumber; profitInRightMakerAsset: BigNumber; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrders, + rightOrders, + leftSignatures, + rightSignatures, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'batchMatchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])', - [leftOrders, rightOrders, leftSignatures, rightSignatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'batchMatchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ left: Array<{ makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; @@ -4270,15 +3761,14 @@ export class ExchangeContract extends BaseContract { profitInLeftMakerAsset: BigNumber; profitInRightMakerAsset: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'batchMatchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])', - [leftOrders, rightOrders, leftSignatures, rightSignatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + leftOrders, + rightOrders, + leftSignatures, + rightSignatures, + ]); }, }; } @@ -4353,71 +3843,41 @@ export class ExchangeContract extends BaseContract { assert.isArray('rightOrders', rightOrders); assert.isArray('leftSignatures', leftSignatures); assert.isArray('rightSignatures', rightSignatures); + const functionSignature = + 'batchMatchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'batchMatchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])', - [leftOrders, rightOrders, leftSignatures, rightSignatures], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrders, + rightOrders, + leftSignatures, + rightSignatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'batchMatchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])', - [leftOrders, rightOrders, leftSignatures, rightSignatures], - ); - 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 encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrders, + rightOrders, + leftSignatures, + rightSignatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -4440,44 +3900,16 @@ export class ExchangeContract extends BaseContract { profitInLeftMakerAsset: BigNumber; profitInRightMakerAsset: BigNumber; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrders, + rightOrders, + leftSignatures, + rightSignatures, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'batchMatchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])', - [leftOrders, rightOrders, leftSignatures, rightSignatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'batchMatchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ left: Array<{ makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; @@ -4495,15 +3927,14 @@ export class ExchangeContract extends BaseContract { profitInLeftMakerAsset: BigNumber; profitInRightMakerAsset: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'batchMatchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],bytes[])', - [leftOrders, rightOrders, leftSignatures, rightSignatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + leftOrders, + rightOrders, + leftSignatures, + rightSignatures, + ]); }, }; } @@ -4529,119 +3960,41 @@ export class ExchangeContract extends BaseContract { }): ContractTxFunctionObj { const self = (this as any) as ExchangeContract; + const functionSignature = + 'cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes))'; + return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [order]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [order]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes))', - [order], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes))', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [order]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes))', - [order], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [order]); }, }; } @@ -4654,203 +4007,75 @@ export class ExchangeContract extends BaseContract { public cancelOrdersUpTo(targetOrderEpoch: BigNumber): ContractTxFunctionObj { const self = (this as any) as ExchangeContract; assert.isBigNumber('targetOrderEpoch', targetOrderEpoch); + const functionSignature = 'cancelOrdersUpTo(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [targetOrderEpoch]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [targetOrderEpoch]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('cancelOrdersUpTo(uint256)', [targetOrderEpoch]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('cancelOrdersUpTo(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [targetOrderEpoch]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('cancelOrdersUpTo(uint256)', [ - targetOrderEpoch, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [targetOrderEpoch]); }, }; } public cancelled(index_0: string): ContractFunctionObj { const self = (this as any) as ExchangeContract; assert.isString('index_0', index_0); + const functionSignature = 'cancelled(bytes32)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('cancelled(bytes32)', [index_0]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('cancelled(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('cancelled(bytes32)', [index_0]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0]); }, }; } public currentContextAddress(): ContractFunctionObj { const self = (this as any) as ExchangeContract; + const functionSignature = 'currentContextAddress()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('currentContextAddress()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('currentContextAddress()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('currentContextAddress()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -4873,120 +4098,40 @@ export class ExchangeContract extends BaseContract { const self = (this as any) as ExchangeContract; assert.isString('signature', signature); + const functionSignature = 'executeTransaction((uint256,uint256,uint256,address,bytes),bytes)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'executeTransaction((uint256,uint256,uint256,address,bytes),bytes)', - [transaction, 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 encodedData = self._strictEncodeArguments(functionSignature, [transaction, signature]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'executeTransaction((uint256,uint256,uint256,address,bytes),bytes)', - [transaction, 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; + const encodedData = self._strictEncodeArguments(functionSignature, [transaction, signature]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'executeTransaction((uint256,uint256,uint256,address,bytes),bytes)', - [transaction, signature], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'executeTransaction((uint256,uint256,uint256,address,bytes),bytes)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [transaction, signature]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'executeTransaction((uint256,uint256,uint256,address,bytes),bytes)', - [transaction, signature], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [transaction, signature]); }, }; } @@ -5026,71 +4171,39 @@ export class ExchangeContract extends BaseContract { assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isString('signature', signature); + const functionSignature = + 'fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),uint256,bytes)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [ + order, + takerAssetFillAmount, + signature, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + order, + takerAssetFillAmount, + signature, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -5102,59 +4215,24 @@ export class ExchangeContract extends BaseContract { takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + order, + takerAssetFillAmount, + signature, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),uint256,bytes)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; makerFeePaid: BigNumber; takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [order, takerAssetFillAmount, signature]); }, }; } @@ -5195,71 +4273,39 @@ export class ExchangeContract extends BaseContract { assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isString('signature', signature); + const functionSignature = + 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),uint256,bytes)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [ + order, + takerAssetFillAmount, + signature, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + order, + takerAssetFillAmount, + signature, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -5271,107 +4317,42 @@ export class ExchangeContract extends BaseContract { takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + order, + takerAssetFillAmount, + signature, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),uint256,bytes)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; makerFeePaid: BigNumber; takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),uint256,bytes)', - [order, takerAssetFillAmount, signature], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [order, takerAssetFillAmount, signature]); }, }; } public filled(index_0: string): ContractFunctionObj { const self = (this as any) as ExchangeContract; assert.isString('index_0', index_0); + const functionSignature = 'filled(bytes32)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('filled(bytes32)', [index_0]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('filled(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('filled(bytes32)', [index_0]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0]); }, }; } @@ -5383,48 +4364,18 @@ export class ExchangeContract extends BaseContract { public getAssetProxy(assetProxyId: string): ContractFunctionObj { const self = (this as any) as ExchangeContract; assert.isString('assetProxyId', assetProxyId); + const functionSignature = 'getAssetProxy(bytes4)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getAssetProxy(bytes4)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [assetProxyId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetProxyId]); }, }; } @@ -5451,62 +4402,26 @@ export class ExchangeContract extends BaseContract { }): ContractFunctionObj<{ orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }> { const self = (this as any) as ExchangeContract; + const functionSignature = + 'getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes))'; + return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<{ orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes))', - [order], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes))', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [order]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes))', - [order], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [order]); }, }; } @@ -5522,55 +4437,22 @@ export class ExchangeContract extends BaseContract { assert.isString('hash', hash); assert.isString('signerAddress', signerAddress); assert.isString('signature', signature); + const functionSignature = 'isValidHashSignature(bytes32,address,bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('isValidHashSignature(bytes32,address,bytes)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ hash, signerAddress.toLowerCase(), signature, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('isValidHashSignature(bytes32,address,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'isValidHashSignature(bytes32,address,bytes)', - [hash, signerAddress.toLowerCase(), signature], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [hash, signerAddress.toLowerCase(), signature]); }, }; } @@ -5602,56 +4484,19 @@ export class ExchangeContract extends BaseContract { const self = (this as any) as ExchangeContract; assert.isString('signature', signature); + const functionSignature = + 'isValidOrderSignature((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'isValidOrderSignature((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes)', - [order, signature], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'isValidOrderSignature((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [order, signature]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'isValidOrderSignature((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes)', - [order, signature], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [order, signature]); }, }; } @@ -5674,56 +4519,18 @@ export class ExchangeContract extends BaseContract { const self = (this as any) as ExchangeContract; assert.isString('signature', signature); + const functionSignature = 'isValidTransactionSignature((uint256,uint256,uint256,address,bytes),bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'isValidTransactionSignature((uint256,uint256,uint256,address,bytes),bytes)', - [transaction, signature], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'isValidTransactionSignature((uint256,uint256,uint256,address,bytes),bytes)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [transaction, signature]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'isValidTransactionSignature((uint256,uint256,uint256,address,bytes),bytes)', - [transaction, signature], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [transaction, signature]); }, }; } @@ -5765,71 +4572,39 @@ export class ExchangeContract extends BaseContract { assert.isArray('orders', orders); assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); assert.isArray('signatures', signatures); + const functionSignature = + 'marketBuyOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + makerAssetFillAmount, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + makerAssetFillAmount, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -5841,59 +4616,24 @@ export class ExchangeContract extends BaseContract { takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + makerAssetFillAmount, + signatures, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - [orders, makerAssetFillAmount, signatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketBuyOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; makerFeePaid: BigNumber; takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketBuyOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - [orders, makerAssetFillAmount, signatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders, makerAssetFillAmount, signatures]); }, }; } @@ -5936,71 +4676,39 @@ export class ExchangeContract extends BaseContract { assert.isArray('orders', orders); assert.isBigNumber('makerAssetFillAmount', makerAssetFillAmount); assert.isArray('signatures', signatures); + const functionSignature = + 'marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + makerAssetFillAmount, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + makerAssetFillAmount, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -6012,59 +4720,24 @@ export class ExchangeContract extends BaseContract { takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + makerAssetFillAmount, + signatures, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - [orders, makerAssetFillAmount, signatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; makerFeePaid: BigNumber; takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - [orders, makerAssetFillAmount, signatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders, makerAssetFillAmount, signatures]); }, }; } @@ -6106,71 +4779,39 @@ export class ExchangeContract extends BaseContract { assert.isArray('orders', orders); assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isArray('signatures', signatures); + const functionSignature = + 'marketSellOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmount, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmount, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -6182,59 +4823,24 @@ export class ExchangeContract extends BaseContract { takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmount, + signatures, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - [orders, takerAssetFillAmount, signatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketSellOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; makerFeePaid: BigNumber; takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketSellOrdersFillOrKill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - [orders, takerAssetFillAmount, signatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders, takerAssetFillAmount, signatures]); }, }; } @@ -6277,71 +4883,39 @@ export class ExchangeContract extends BaseContract { assert.isArray('orders', orders); assert.isBigNumber('takerAssetFillAmount', takerAssetFillAmount); assert.isArray('signatures', signatures); + const functionSignature = + 'marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmount, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmount, + signatures, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -6353,59 +4927,24 @@ export class ExchangeContract extends BaseContract { takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + takerAssetFillAmount, + signatures, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - [orders, takerAssetFillAmount, signatures], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; makerFeePaid: BigNumber; takerFeePaid: BigNumber; protocolFeePaid: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[])', - [orders, takerAssetFillAmount, signatures], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders, takerAssetFillAmount, signatures]); }, }; } @@ -6477,71 +5016,41 @@ export class ExchangeContract extends BaseContract { assert.isString('leftSignature', leftSignature); assert.isString('rightSignature', rightSignature); + const functionSignature = + 'matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes,bytes)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrder, + rightOrder, + leftSignature, + rightSignature, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrder, + rightOrder, + leftSignature, + rightSignature, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -6564,44 +5073,16 @@ export class ExchangeContract extends BaseContract { profitInLeftMakerAsset: BigNumber; profitInRightMakerAsset: BigNumber; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrder, + rightOrder, + leftSignature, + rightSignature, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes,bytes)', - [leftOrder, rightOrder, leftSignature, rightSignature], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes,bytes)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ left: { makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; @@ -6619,15 +5100,14 @@ export class ExchangeContract extends BaseContract { profitInLeftMakerAsset: BigNumber; profitInRightMakerAsset: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes,bytes)', - [leftOrder, rightOrder, leftSignature, rightSignature], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + leftOrder, + rightOrder, + leftSignature, + rightSignature, + ]); }, }; } @@ -6699,71 +5179,41 @@ export class ExchangeContract extends BaseContract { assert.isString('leftSignature', leftSignature); assert.isString('rightSignature', rightSignature); + const functionSignature = + 'matchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes,bytes)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'matchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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 encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrder, + rightOrder, + leftSignature, + rightSignature, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'matchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrder, + rightOrder, + leftSignature, + rightSignature, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, @@ -6786,44 +5236,16 @@ export class ExchangeContract extends BaseContract { profitInLeftMakerAsset: BigNumber; profitInRightMakerAsset: BigNumber; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + leftOrder, + rightOrder, + leftSignature, + rightSignature, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'matchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes,bytes)', - [leftOrder, rightOrder, leftSignature, rightSignature], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'matchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes,bytes)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ left: { makerAssetFilledAmount: BigNumber; takerAssetFilledAmount: BigNumber; @@ -6841,15 +5263,14 @@ export class ExchangeContract extends BaseContract { profitInLeftMakerAsset: BigNumber; profitInRightMakerAsset: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'matchOrdersWithMaximalFill((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes),bytes,bytes)', - [leftOrder, rightOrder, leftSignature, rightSignature], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + leftOrder, + rightOrder, + leftSignature, + rightSignature, + ]); }, }; } @@ -6857,101 +5278,38 @@ export class ExchangeContract extends BaseContract { const self = (this as any) as ExchangeContract; assert.isString('index_0', index_0); assert.isString('index_1', index_1); + const functionSignature = 'orderEpoch(address,address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('orderEpoch(address,address)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ index_0.toLowerCase(), index_1.toLowerCase(), ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('orderEpoch(address,address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('orderEpoch(address,address)', [ - index_0.toLowerCase(), - index_1.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0.toLowerCase(), index_1.toLowerCase()]); }, }; } public owner(): ContractFunctionObj { const self = (this as any) as ExchangeContract; + const functionSignature = 'owner()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('owner()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('owner()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -6963,106 +5321,40 @@ export class ExchangeContract extends BaseContract { public preSign(hash: string): ContractTxFunctionObj { const self = (this as any) as ExchangeContract; assert.isString('hash', hash); + const functionSignature = 'preSign(bytes32)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('preSign(bytes32)', [hash]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [hash]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('preSign(bytes32)', [hash]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [hash]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('preSign(bytes32)', [hash]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('preSign(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [hash]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('preSign(bytes32)', [hash]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [hash]); }, }; } @@ -7070,148 +5362,52 @@ export class ExchangeContract extends BaseContract { const self = (this as any) as ExchangeContract; assert.isString('index_0', index_0); assert.isString('index_1', index_1); + const functionSignature = 'preSigned(bytes32,address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('preSigned(bytes32,address)', [ - index_0, - index_1.toLowerCase(), - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('preSigned(bytes32,address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0, index_1.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('preSigned(bytes32,address)', [ - index_0, - index_1.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0, index_1.toLowerCase()]); }, }; } public protocolFeeCollector(): ContractFunctionObj { const self = (this as any) as ExchangeContract; + const functionSignature = 'protocolFeeCollector()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('protocolFeeCollector()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('protocolFeeCollector()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('protocolFeeCollector()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public protocolFeeMultiplier(): ContractFunctionObj { const self = (this as any) as ExchangeContract; + const functionSignature = 'protocolFeeMultiplier()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('protocolFeeMultiplier()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('protocolFeeMultiplier()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('protocolFeeMultiplier()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -7223,114 +5419,40 @@ export class ExchangeContract extends BaseContract { public registerAssetProxy(assetProxy: string): ContractTxFunctionObj { const self = (this as any) as ExchangeContract; assert.isString('assetProxy', assetProxy); + const functionSignature = 'registerAssetProxy(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [assetProxy.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [assetProxy.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [ - assetProxy.toLowerCase(), - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('registerAssetProxy(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [assetProxy.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address)', [ - assetProxy.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetProxy.toLowerCase()]); }, }; } @@ -7342,115 +5464,46 @@ export class ExchangeContract extends BaseContract { public setProtocolFeeCollectorAddress(updatedProtocolFeeCollector: string): ContractTxFunctionObj { const self = (this as any) as ExchangeContract; assert.isString('updatedProtocolFeeCollector', updatedProtocolFeeCollector); + const functionSignature = 'setProtocolFeeCollectorAddress(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('setProtocolFeeCollectorAddress(address)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ updatedProtocolFeeCollector.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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('setProtocolFeeCollectorAddress(address)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ updatedProtocolFeeCollector.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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('setProtocolFeeCollectorAddress(address)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ updatedProtocolFeeCollector.toLowerCase(), ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('setProtocolFeeCollectorAddress(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'setProtocolFeeCollectorAddress(address)', - [updatedProtocolFeeCollector.toLowerCase()], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [updatedProtocolFeeCollector.toLowerCase()]); }, }; } @@ -7461,114 +5514,40 @@ export class ExchangeContract extends BaseContract { public setProtocolFeeMultiplier(updatedProtocolFeeMultiplier: BigNumber): ContractTxFunctionObj { const self = (this as any) as ExchangeContract; assert.isBigNumber('updatedProtocolFeeMultiplier', updatedProtocolFeeMultiplier); + const functionSignature = 'setProtocolFeeMultiplier(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('setProtocolFeeMultiplier(uint256)', [ - updatedProtocolFeeMultiplier, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [updatedProtocolFeeMultiplier]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('setProtocolFeeMultiplier(uint256)', [ - updatedProtocolFeeMultiplier, - ]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [updatedProtocolFeeMultiplier]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('setProtocolFeeMultiplier(uint256)', [ - updatedProtocolFeeMultiplier, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('setProtocolFeeMultiplier(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [updatedProtocolFeeMultiplier]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('setProtocolFeeMultiplier(uint256)', [ - updatedProtocolFeeMultiplier, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [updatedProtocolFeeMultiplier]); }, }; } @@ -7582,118 +5561,49 @@ export class ExchangeContract extends BaseContract { const self = (this as any) as ExchangeContract; assert.isString('validatorAddress', validatorAddress); assert.isBoolean('approval', approval); + const functionSignature = 'setSignatureValidatorApproval(address,bool)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('setSignatureValidatorApproval(address,bool)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ 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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('setSignatureValidatorApproval(address,bool)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ 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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('setSignatureValidatorApproval(address,bool)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ validatorAddress.toLowerCase(), approval, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('setSignatureValidatorApproval(address,bool)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'setSignatureValidatorApproval(address,bool)', - [validatorAddress.toLowerCase(), approval], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [validatorAddress.toLowerCase(), approval]); }, }; } @@ -7720,278 +5630,113 @@ export class ExchangeContract extends BaseContract { assert.isArray('fromAddresses', fromAddresses); assert.isArray('toAddresses', toAddresses); assert.isArray('amounts', amounts); + const functionSignature = 'simulateDispatchTransferFromCalls(bytes[],address[],address[],uint256[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'simulateDispatchTransferFromCalls(bytes[],address[],address[],uint256[])', - [assetData, fromAddresses, toAddresses, amounts], - ); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [ + assetData, + fromAddresses, + toAddresses, + amounts, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'simulateDispatchTransferFromCalls(bytes[],address[],address[],uint256[])', - [assetData, fromAddresses, toAddresses, amounts], - ); - 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 encodedData = self._strictEncodeArguments(functionSignature, [ + assetData, + fromAddresses, + toAddresses, + amounts, + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + assetData, + fromAddresses, + toAddresses, + amounts, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'simulateDispatchTransferFromCalls(bytes[],address[],address[],uint256[])', - [assetData, fromAddresses, toAddresses, amounts], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'simulateDispatchTransferFromCalls(bytes[],address[],address[],uint256[])', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'simulateDispatchTransferFromCalls(bytes[],address[],address[],uint256[])', - [assetData, fromAddresses, toAddresses, amounts], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetData, fromAddresses, toAddresses, amounts]); }, }; } public transactionsExecuted(index_0: string): ContractFunctionObj { const self = (this as any) as ExchangeContract; assert.isString('index_0', index_0); + const functionSignature = 'transactionsExecuted(bytes32)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transactionsExecuted(bytes32)', [index_0]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transactionsExecuted(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transactionsExecuted(bytes32)', [ - index_0, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0]); }, }; } public transferOwnership(newOwner: string): ContractTxFunctionObj { const self = (this as any) as ExchangeContract; assert.isString('newOwner', newOwner); + const functionSignature = 'transferOwnership(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); }, }; } diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts b/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts index 9de6c3f8f2..98a475c349 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts @@ -102,9 +102,11 @@ export class ForwarderContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, [_exchange, _wethAssetData]); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -449,108 +451,40 @@ export class ForwarderContract extends BaseContract { public approveMakerAssetProxy(assetData: string): ContractTxFunctionObj { const self = (this as any) as ForwarderContract; assert.isString('assetData', assetData); + const functionSignature = 'approveMakerAssetProxy(bytes)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('approveMakerAssetProxy(bytes)', [assetData]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [assetData]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('approveMakerAssetProxy(bytes)', [assetData]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [assetData]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('approveMakerAssetProxy(bytes)', [assetData]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('approveMakerAssetProxy(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [assetData]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('approveMakerAssetProxy(bytes)', [ - assetData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetData]); }, }; } @@ -596,123 +530,68 @@ export class ForwarderContract extends BaseContract { assert.isArray('signatures', signatures); assert.isBigNumber('feePercentage', feePercentage); assert.isString('feeRecipient', feeRecipient); + const functionSignature = + 'marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[],uint256,address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[],uint256,address)', - [orders, makerAssetBuyAmount, signatures, 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 encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + makerAssetBuyAmount, + signatures, + feePercentage, + feeRecipient.toLowerCase(), + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[],uint256,address)', - [orders, makerAssetBuyAmount, signatures, 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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + makerAssetBuyAmount, + signatures, + feePercentage, + feeRecipient.toLowerCase(), + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber, BigNumber, BigNumber]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + makerAssetBuyAmount, + signatures, + feePercentage, + feeRecipient.toLowerCase(), ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[],uint256,address)', - [orders, makerAssetBuyAmount, signatures, feePercentage, feeRecipient.toLowerCase()], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[],uint256,address)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber, BigNumber]>(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber, BigNumber]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],uint256,bytes[],uint256,address)', - [orders, makerAssetBuyAmount, signatures, feePercentage, feeRecipient.toLowerCase()], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + orders, + makerAssetBuyAmount, + signatures, + feePercentage, + feeRecipient.toLowerCase(), + ]); }, }; } @@ -753,278 +632,121 @@ export class ForwarderContract extends BaseContract { assert.isArray('signatures', signatures); assert.isBigNumber('feePercentage', feePercentage); assert.isString('feeRecipient', feeRecipient); + const functionSignature = + 'marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],uint256,address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],uint256,address)', - [orders, signatures, 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 encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + signatures, + feePercentage, + feeRecipient.toLowerCase(), + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],uint256,address)', - [orders, signatures, 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; + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + signatures, + feePercentage, + feeRecipient.toLowerCase(), + ]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber, BigNumber, BigNumber]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + orders, + signatures, + feePercentage, + feeRecipient.toLowerCase(), ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],uint256,address)', - [orders, signatures, feePercentage, feeRecipient.toLowerCase()], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder( - 'marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],uint256,address)', - ); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber, BigNumber]>(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber, BigNumber]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes,bytes,bytes)[],bytes[],uint256,address)', - [orders, signatures, feePercentage, feeRecipient.toLowerCase()], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + orders, + signatures, + feePercentage, + feeRecipient.toLowerCase(), + ]); }, }; } public owner(): ContractFunctionObj { const self = (this as any) as ForwarderContract; + const functionSignature = 'owner()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('owner()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('owner()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public transferOwnership(newOwner: string): ContractTxFunctionObj { const self = (this as any) as ForwarderContract; assert.isString('newOwner', newOwner); + const functionSignature = 'transferOwnership(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); }, }; } @@ -1039,109 +761,40 @@ export class ForwarderContract extends BaseContract { const self = (this as any) as ForwarderContract; assert.isString('assetData', assetData); assert.isBigNumber('amount', amount); + const functionSignature = 'withdrawAsset(bytes,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [assetData, amount]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [assetData, amount]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData, amount]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('withdrawAsset(bytes,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [assetData, amount]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [ - assetData, - amount, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [assetData, amount]); }, }; } 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 b629383e3b..ebae55c344 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts @@ -86,9 +86,11 @@ export class IValidatorContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -180,55 +182,22 @@ export class IValidatorContract extends BaseContract { assert.isString('hash', hash); assert.isString('signerAddress', signerAddress); assert.isString('signature', signature); + const functionSignature = 'isValidSignature(bytes32,address,bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ hash, signerAddress.toLowerCase(), signature, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('isValidSignature(bytes32,address,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'isValidSignature(bytes32,address,bytes)', - [hash, signerAddress.toLowerCase(), signature], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [hash, signerAddress.toLowerCase(), signature]); }, }; } 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 c2515d963c..a049228b46 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts @@ -86,9 +86,11 @@ export class IWalletContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -174,51 +176,18 @@ export class IWalletContract extends BaseContract { const self = (this as any) as IWalletContract; assert.isString('hash', hash); assert.isString('signature', signature); + const functionSignature = 'isValidSignature(bytes32,bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('isValidSignature(bytes32,bytes)', [hash, signature]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('isValidSignature(bytes32,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [hash, signature]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('isValidSignature(bytes32,bytes)', [ - hash, - signature, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [hash, signature]); }, }; } 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 0629a8c2e6..58ca0c6753 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts @@ -102,9 +102,11 @@ export class OrderValidatorContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, [_exchange, _zrxAssetData]); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -748,6 +750,8 @@ export class OrderValidatorContract extends BaseContract { const self = (this as any) as OrderValidatorContract; assert.isString('takerAddress', takerAddress); + const functionSignature = + 'getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)'; return { async callAsync( @@ -768,44 +772,11 @@ export class OrderValidatorContract extends BaseContract { } ] > { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', - [order, takerAddress.toLowerCase()], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - 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< + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [order, takerAddress.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue< [ { orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }, { @@ -820,15 +791,9 @@ export class OrderValidatorContract extends BaseContract { } ] >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', - [order, takerAddress.toLowerCase()], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [order, takerAddress.toLowerCase()]); }, }; } @@ -836,57 +801,21 @@ export class OrderValidatorContract extends BaseContract { const self = (this as any) as OrderValidatorContract; assert.isString('target', target); assert.isString('assetData', assetData); + const functionSignature = 'getBalanceAndAllowance(address,bytes)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber, BigNumber]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getBalanceAndAllowance(address,bytes)', [ - target.toLowerCase(), - assetData, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getBalanceAndAllowance(address,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase(), assetData]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getBalanceAndAllowance(address,bytes)', [ - target.toLowerCase(), - assetData, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [target.toLowerCase(), assetData]); }, }; } @@ -924,6 +853,8 @@ export class OrderValidatorContract extends BaseContract { const self = (this as any) as OrderValidatorContract; assert.isArray('orders', orders); assert.isArray('takerAddresses', takerAddresses); + const functionSignature = + 'getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])'; return { async callAsync( @@ -944,44 +875,11 @@ export class OrderValidatorContract extends BaseContract { }> ] > { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', - [orders, takerAddresses], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - 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< + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [orders, takerAddresses]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue< [ Array<{ orderStatus: number; orderHash: string; orderTakerAssetFilledAmount: BigNumber }>, Array<{ @@ -996,15 +894,9 @@ export class OrderValidatorContract extends BaseContract { }> ] >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', - [orders, takerAddresses], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders, takerAddresses]); }, }; } @@ -1039,6 +931,8 @@ export class OrderValidatorContract extends BaseContract { const self = (this as any) as OrderValidatorContract; assert.isArray('orders', orders); assert.isArray('takerAddresses', takerAddresses); + const functionSignature = + 'getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])'; return { async callAsync( @@ -1056,44 +950,11 @@ export class OrderValidatorContract extends BaseContract { takerZrxAllowance: BigNumber; }> > { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', - [orders, takerAddresses], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - 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< + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [orders, takerAddresses]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue< Array<{ makerBalance: BigNumber; makerAllowance: BigNumber; @@ -1105,15 +966,9 @@ export class OrderValidatorContract extends BaseContract { takerZrxAllowance: BigNumber; }> >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', - [orders, takerAddresses], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [orders, takerAddresses]); }, }; } @@ -1121,54 +976,18 @@ export class OrderValidatorContract extends BaseContract { const self = (this as any) as OrderValidatorContract; assert.isString('token', token); assert.isBigNumber('tokenId', tokenId); + const functionSignature = 'getERC721TokenOwner(address,uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getERC721TokenOwner(address,uint256)', [ - token.toLowerCase(), - tokenId, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getERC721TokenOwner(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [token.toLowerCase(), tokenId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getERC721TokenOwner(address,uint256)', [ - token.toLowerCase(), - tokenId, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [token.toLowerCase(), tokenId]); }, }; } @@ -1179,57 +998,21 @@ export class OrderValidatorContract extends BaseContract { const self = (this as any) as OrderValidatorContract; assert.isString('target', target); assert.isArray('assetData', assetData); + const functionSignature = 'getBalancesAndAllowances(address,bytes[])'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber[], BigNumber[]]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getBalancesAndAllowances(address,bytes[])', [ - target.toLowerCase(), - assetData, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getBalancesAndAllowances(address,bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber[], BigNumber[]]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase(), assetData]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber[], BigNumber[]]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getBalancesAndAllowances(address,bytes[])', - [target.toLowerCase(), assetData], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [target.toLowerCase(), assetData]); }, }; } @@ -1262,6 +1045,8 @@ export class OrderValidatorContract extends BaseContract { const self = (this as any) as OrderValidatorContract; assert.isString('takerAddress', takerAddress); + const functionSignature = + 'getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)'; return { async callAsync( @@ -1277,44 +1062,11 @@ export class OrderValidatorContract extends BaseContract { takerZrxBalance: BigNumber; takerZrxAllowance: BigNumber; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', - [order, takerAddress.toLowerCase()], - ); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - 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<{ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [order, takerAddress.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ makerBalance: BigNumber; makerAllowance: BigNumber; takerBalance: BigNumber; @@ -1324,15 +1076,9 @@ export class OrderValidatorContract extends BaseContract { takerZrxBalance: BigNumber; takerZrxAllowance: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', - [order, takerAddress.toLowerCase()], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [order, takerAddress.toLowerCase()]); }, }; } diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/staking.ts b/packages/abi-gen-wrappers/src/generated-wrappers/staking.ts index 8f844b9780..500c3bbd4c 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/staking.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/staking.ts @@ -235,9 +235,11 @@ export class StakingContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, [wethAddress, zrxVaultAddress]); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -1646,114 +1648,40 @@ export class StakingContract extends BaseContract { public addAuthorizedAddress(target: string): ContractTxFunctionObj { const self = (this as any) as StakingContract; assert.isString('target', target); + const functionSignature = 'addAuthorizedAddress(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); }, }; } @@ -1764,108 +1692,40 @@ export class StakingContract extends BaseContract { public addExchangeAddress(addr: string): ContractTxFunctionObj { const self = (this as any) as StakingContract; assert.isString('addr', addr); + const functionSignature = 'addExchangeAddress(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('addExchangeAddress(address)', [addr.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 encodedData = self._strictEncodeArguments(functionSignature, [addr.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('addExchangeAddress(address)', [addr.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; + const encodedData = self._strictEncodeArguments(functionSignature, [addr.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('addExchangeAddress(address)', [addr.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('addExchangeAddress(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [addr.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('addExchangeAddress(address)', [ - addr.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [addr.toLowerCase()]); }, }; } @@ -1874,247 +1734,93 @@ export class StakingContract extends BaseContract { ): ContractFunctionObj<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]> { const self = (this as any) as StakingContract; assert.isBigNumber('index_0', index_0); + const functionSignature = 'aggregatedStatsByEpoch(uint256)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('aggregatedStatsByEpoch(uint256)', [index_0]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>( + rawCallResult, ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('aggregatedStatsByEpoch(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< - [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] - >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('aggregatedStatsByEpoch(uint256)', [ - index_0, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0]); }, }; } public authorities(index_0: BigNumber): ContractFunctionObj { const self = (this as any) as StakingContract; assert.isBigNumber('index_0', index_0); + const functionSignature = 'authorities(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('authorities(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('authorities(uint256)', [index_0]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0]); }, }; } public authorized(index_0: string): ContractFunctionObj { const self = (this as any) as StakingContract; assert.isString('index_0', index_0); + const functionSignature = 'authorized(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('authorized(address)', [index_0.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('authorized(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('authorized(address)', [ - index_0.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); }, }; } public cobbDouglasAlphaDenominator(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'cobbDouglasAlphaDenominator()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('cobbDouglasAlphaDenominator()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('cobbDouglasAlphaDenominator()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('cobbDouglasAlphaDenominator()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public cobbDouglasAlphaNumerator(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'cobbDouglasAlphaNumerator()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('cobbDouglasAlphaNumerator()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('cobbDouglasAlphaNumerator()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('cobbDouglasAlphaNumerator()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -2128,54 +1834,18 @@ export class StakingContract extends BaseContract { const self = (this as any) as StakingContract; assert.isString('poolId', poolId); assert.isString('member', member); + const functionSignature = 'computeRewardBalanceOfDelegator(bytes32,address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('computeRewardBalanceOfDelegator(bytes32,address)', [ - poolId, - member.toLowerCase(), - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('computeRewardBalanceOfDelegator(bytes32,address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [poolId, member.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'computeRewardBalanceOfDelegator(bytes32,address)', - [poolId, member.toLowerCase()], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [poolId, member.toLowerCase()]); }, }; } @@ -2187,51 +1857,18 @@ export class StakingContract extends BaseContract { public computeRewardBalanceOfOperator(poolId: string): ContractFunctionObj { const self = (this as any) as StakingContract; assert.isString('poolId', poolId); + const functionSignature = 'computeRewardBalanceOfOperator(bytes32)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('computeRewardBalanceOfOperator(bytes32)', [poolId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('computeRewardBalanceOfOperator(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'computeRewardBalanceOfOperator(bytes32)', - [poolId], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [poolId]); }, }; } @@ -2249,212 +1886,74 @@ export class StakingContract extends BaseContract { const self = (this as any) as StakingContract; assert.isNumberOrBigNumber('operatorShare', operatorShare); assert.isBoolean('addOperatorAsMaker', addOperatorAsMaker); + const functionSignature = 'createStakingPool(uint32,bool)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('createStakingPool(uint32,bool)', [ - operatorShare, - addOperatorAsMaker, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [operatorShare, addOperatorAsMaker]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('createStakingPool(uint32,bool)', [ - operatorShare, - addOperatorAsMaker, - ]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [operatorShare, addOperatorAsMaker]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('createStakingPool(uint32,bool)', [ - operatorShare, - addOperatorAsMaker, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('createStakingPool(uint32,bool)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [operatorShare, addOperatorAsMaker]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('createStakingPool(uint32,bool)', [ - operatorShare, - addOperatorAsMaker, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [operatorShare, addOperatorAsMaker]); }, }; } public currentEpoch(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'currentEpoch()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('currentEpoch()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('currentEpoch()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('currentEpoch()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public currentEpochStartTimeInSeconds(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'currentEpochStartTimeInSeconds()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('currentEpochStartTimeInSeconds()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('currentEpochStartTimeInSeconds()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('currentEpochStartTimeInSeconds()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -2471,118 +1970,40 @@ export class StakingContract extends BaseContract { const self = (this as any) as StakingContract; assert.isString('poolId', poolId); assert.isNumberOrBigNumber('newOperatorShare', newOperatorShare); + const functionSignature = 'decreaseStakingPoolOperatorShare(bytes32,uint32)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('decreaseStakingPoolOperatorShare(bytes32,uint32)', [ - poolId, - newOperatorShare, - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [poolId, newOperatorShare]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('decreaseStakingPoolOperatorShare(bytes32,uint32)', [ - poolId, - newOperatorShare, - ]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [poolId, newOperatorShare]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decreaseStakingPoolOperatorShare(bytes32,uint32)', [ - poolId, - newOperatorShare, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decreaseStakingPoolOperatorShare(bytes32,uint32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [poolId, newOperatorShare]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'decreaseStakingPoolOperatorShare(bytes32,uint32)', - [poolId, newOperatorShare], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [poolId, newOperatorShare]); }, }; } @@ -2594,153 +2015,57 @@ export class StakingContract extends BaseContract { */ public endEpoch(): ContractTxFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'endEpoch()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('endEpoch()', []); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, []); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('endEpoch()', []); - 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 encodedData = self._strictEncodeArguments(functionSignature, []); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('endEpoch()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('endEpoch()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('endEpoch()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public epochDurationInSeconds(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'epochDurationInSeconds()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('epochDurationInSeconds()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('epochDurationInSeconds()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('epochDurationInSeconds()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -2755,106 +2080,40 @@ export class StakingContract extends BaseContract { public finalizePool(poolId: string): ContractTxFunctionObj { const self = (this as any) as StakingContract; assert.isString('poolId', poolId); + const functionSignature = 'finalizePool(bytes32)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('finalizePool(bytes32)', [poolId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('finalizePool(bytes32)', [poolId]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('finalizePool(bytes32)', [poolId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('finalizePool(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('finalizePool(bytes32)', [poolId]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [poolId]); }, }; } @@ -2864,48 +2123,18 @@ export class StakingContract extends BaseContract { */ public getAuthorizedAddresses(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'getAuthorizedAddresses()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getAuthorizedAddresses()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -2917,51 +2146,18 @@ export class StakingContract extends BaseContract { */ public getCurrentEpochEarliestEndTimeInSeconds(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'getCurrentEpochEarliestEndTimeInSeconds()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getCurrentEpochEarliestEndTimeInSeconds()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getCurrentEpochEarliestEndTimeInSeconds()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getCurrentEpochEarliestEndTimeInSeconds()', - [], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -2975,57 +2171,25 @@ export class StakingContract extends BaseContract { ): ContractFunctionObj<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber }> { const self = (this as any) as StakingContract; assert.isNumberOrBigNumber('stakeStatus', stakeStatus); + const functionSignature = 'getGlobalStakeByStatus(uint8)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getGlobalStakeByStatus(uint8)', [stakeStatus]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getGlobalStakeByStatus(uint8)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [stakeStatus]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getGlobalStakeByStatus(uint8)', [ - stakeStatus, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [stakeStatus]); }, }; } @@ -3042,61 +2206,25 @@ export class StakingContract extends BaseContract { const self = (this as any) as StakingContract; assert.isString('staker', staker); assert.isNumberOrBigNumber('stakeStatus', stakeStatus); + const functionSignature = 'getOwnerStakeByStatus(address,uint8)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getOwnerStakeByStatus(address,uint8)', [ - staker.toLowerCase(), - stakeStatus, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getOwnerStakeByStatus(address,uint8)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [staker.toLowerCase(), stakeStatus]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getOwnerStakeByStatus(address,uint8)', [ - staker.toLowerCase(), - stakeStatus, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [staker.toLowerCase(), stakeStatus]); }, }; } @@ -3106,53 +2234,23 @@ export class StakingContract extends BaseContract { */ public getParams(): ContractFunctionObj<[BigNumber, number, BigNumber, number, number]> { const self = (this as any) as StakingContract; + const functionSignature = 'getParams()'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber, number, BigNumber, number, number]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getParams()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getParams()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber, number, BigNumber, number, number]>( + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber, number, BigNumber, number, number]>( rawCallResult, ); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getParams()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -3169,61 +2267,25 @@ export class StakingContract extends BaseContract { const self = (this as any) as StakingContract; assert.isString('staker', staker); assert.isString('poolId', poolId); + const functionSignature = 'getStakeDelegatedToPoolByOwner(address,bytes32)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getStakeDelegatedToPoolByOwner(address,bytes32)', [ - staker.toLowerCase(), - poolId, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getStakeDelegatedToPoolByOwner(address,bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [staker.toLowerCase(), poolId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'getStakeDelegatedToPoolByOwner(address,bytes32)', - [staker.toLowerCase(), poolId], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [staker.toLowerCase(), poolId]); }, }; } @@ -3234,53 +2296,21 @@ export class StakingContract extends BaseContract { public getStakingPool(poolId: string): ContractFunctionObj<{ operator: string; operatorShare: number }> { const self = (this as any) as StakingContract; assert.isString('poolId', poolId); + const functionSignature = 'getStakingPool(bytes32)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<{ operator: string; operatorShare: number }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getStakingPool(bytes32)', [poolId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getStakingPool(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ operator: string; operatorShare: number }>( - rawCallResult, - ); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ operator: string; operatorShare: number }>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getStakingPool(bytes32)', [poolId]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [poolId]); }, }; } @@ -3294,57 +2324,25 @@ export class StakingContract extends BaseContract { ): ContractFunctionObj<{ feesCollected: BigNumber; weightedStake: BigNumber; membersStake: BigNumber }> { const self = (this as any) as StakingContract; assert.isString('poolId', poolId); + const functionSignature = 'getStakingPoolStatsThisEpoch(bytes32)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<{ feesCollected: BigNumber; weightedStake: BigNumber; membersStake: BigNumber }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getStakingPoolStatsThisEpoch(bytes32)', [poolId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getStakingPoolStatsThisEpoch(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ feesCollected: BigNumber; weightedStake: BigNumber; membersStake: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getStakingPoolStatsThisEpoch(bytes32)', [ - poolId, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [poolId]); }, }; } @@ -3356,50 +2354,18 @@ export class StakingContract extends BaseContract { public getTotalStake(staker: string): ContractFunctionObj { const self = (this as any) as StakingContract; assert.isString('staker', staker); + const functionSignature = 'getTotalStake(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getTotalStake(address)', [staker.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getTotalStake(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [staker.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getTotalStake(address)', [ - staker.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [staker.toLowerCase()]); }, }; } @@ -3414,57 +2380,25 @@ export class StakingContract extends BaseContract { ): ContractFunctionObj<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber }> { const self = (this as any) as StakingContract; assert.isString('poolId', poolId); + const functionSignature = 'getTotalStakeDelegatedToPool(bytes32)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getTotalStakeDelegatedToPool(bytes32)', [poolId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getTotalStakeDelegatedToPool(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ currentEpoch: BigNumber; currentEpochBalance: BigNumber; nextEpochBalance: BigNumber; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getTotalStakeDelegatedToPool(bytes32)', [ - poolId, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [poolId]); }, }; } @@ -3474,48 +2408,18 @@ export class StakingContract extends BaseContract { */ public getWethContract(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'getWethContract()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getWethContract()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getWethContract()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getWethContract()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -3525,48 +2429,18 @@ export class StakingContract extends BaseContract { */ public getZrxVault(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'getZrxVault()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getZrxVault()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getZrxVault()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getZrxVault()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -3577,106 +2451,40 @@ export class StakingContract extends BaseContract { */ public init(): ContractTxFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'init()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('init()', []); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, []); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('init()', []); - 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 encodedData = self._strictEncodeArguments(functionSignature, []); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('init()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('init()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('init()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -3687,202 +2495,74 @@ export class StakingContract extends BaseContract { public joinStakingPoolAsMaker(poolId: string): ContractTxFunctionObj { const self = (this as any) as StakingContract; assert.isString('poolId', poolId); + const functionSignature = 'joinStakingPoolAsMaker(bytes32)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('joinStakingPoolAsMaker(bytes32)', [poolId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('joinStakingPoolAsMaker(bytes32)', [poolId]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('joinStakingPoolAsMaker(bytes32)', [poolId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('joinStakingPoolAsMaker(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('joinStakingPoolAsMaker(bytes32)', [ - poolId, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [poolId]); }, }; } public lastPoolId(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'lastPoolId()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('lastPoolId()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('lastPoolId()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('lastPoolId()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public minimumPoolStake(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'minimumPoolStake()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('minimumPoolStake()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('minimumPoolStake()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('minimumPoolStake()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -3902,168 +2582,57 @@ export class StakingContract extends BaseContract { const self = (this as any) as StakingContract; assert.isBigNumber('amount', amount); + const functionSignature = 'moveStake((uint8,bytes32),(uint8,bytes32),uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('moveStake((uint8,bytes32),(uint8,bytes32),uint256)', [ - from, - to, - 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 encodedData = self._strictEncodeArguments(functionSignature, [from, to, amount]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('moveStake((uint8,bytes32),(uint8,bytes32),uint256)', [ - from, - to, - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [from, to, amount]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('moveStake((uint8,bytes32),(uint8,bytes32),uint256)', [ - from, - to, - amount, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('moveStake((uint8,bytes32),(uint8,bytes32),uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [from, to, amount]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'moveStake((uint8,bytes32),(uint8,bytes32),uint256)', - [from, to, amount], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [from, to, amount]); }, }; } public owner(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'owner()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('owner()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('owner()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -4085,171 +2654,74 @@ export class StakingContract extends BaseContract { assert.isString('makerAddress', makerAddress); assert.isString('payerAddress', payerAddress); assert.isBigNumber('protocolFee', protocolFee); + const functionSignature = 'payProtocolFee(address,address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('payProtocolFee(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ makerAddress.toLowerCase(), payerAddress.toLowerCase(), protocolFee, ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('payProtocolFee(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ makerAddress.toLowerCase(), payerAddress.toLowerCase(), protocolFee, ]); - 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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('payProtocolFee(address,address,uint256)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ makerAddress.toLowerCase(), payerAddress.toLowerCase(), protocolFee, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('payProtocolFee(address,address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'payProtocolFee(address,address,uint256)', - [makerAddress.toLowerCase(), payerAddress.toLowerCase(), protocolFee], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + makerAddress.toLowerCase(), + payerAddress.toLowerCase(), + protocolFee, + ]); }, }; } public poolIdByMaker(index_0: string): ContractFunctionObj { const self = (this as any) as StakingContract; assert.isString('index_0', index_0); + const functionSignature = 'poolIdByMaker(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('poolIdByMaker(address)', [index_0.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('poolIdByMaker(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('poolIdByMaker(address)', [ - index_0.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); }, }; } @@ -4260,57 +2732,21 @@ export class StakingContract extends BaseContract { const self = (this as any) as StakingContract; assert.isString('index_0', index_0); assert.isBigNumber('index_1', index_1); + const functionSignature = 'poolStatsByEpoch(bytes32,uint256)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber, BigNumber, BigNumber]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('poolStatsByEpoch(bytes32,uint256)', [ - index_0, - index_1, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('poolStatsByEpoch(bytes32,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber, BigNumber]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0, index_1]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber, BigNumber]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('poolStatsByEpoch(bytes32,uint256)', [ - index_0, - index_1, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0, index_1]); }, }; } @@ -4321,114 +2757,40 @@ export class StakingContract extends BaseContract { public removeAuthorizedAddress(target: string): ContractTxFunctionObj { const self = (this as any) as StakingContract; assert.isString('target', target); + const functionSignature = 'removeAuthorizedAddress(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); }, }; } @@ -4441,118 +2803,40 @@ export class StakingContract extends BaseContract { const self = (this as any) as StakingContract; assert.isString('target', target); assert.isBigNumber('index', index); + const functionSignature = 'removeAuthorizedAddressAtIndex(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase(), index]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase(), index]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ - target.toLowerCase(), - index, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase(), index]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'removeAuthorizedAddressAtIndex(address,uint256)', - [target.toLowerCase(), index], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [target.toLowerCase(), index]); }, }; } @@ -4563,203 +2847,75 @@ export class StakingContract extends BaseContract { public removeExchangeAddress(addr: string): ContractTxFunctionObj { const self = (this as any) as StakingContract; assert.isString('addr', addr); + const functionSignature = 'removeExchangeAddress(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('removeExchangeAddress(address)', [addr.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 encodedData = self._strictEncodeArguments(functionSignature, [addr.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('removeExchangeAddress(address)', [addr.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; + const encodedData = self._strictEncodeArguments(functionSignature, [addr.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('removeExchangeAddress(address)', [addr.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('removeExchangeAddress(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [addr.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('removeExchangeAddress(address)', [ - addr.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [addr.toLowerCase()]); }, }; } public rewardDelegatedStakeWeight(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'rewardDelegatedStakeWeight()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('rewardDelegatedStakeWeight()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('rewardDelegatedStakeWeight()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('rewardDelegatedStakeWeight()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public rewardsByPoolId(index_0: string): ContractFunctionObj { const self = (this as any) as StakingContract; assert.isString('index_0', index_0); + const functionSignature = 'rewardsByPoolId(bytes32)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('rewardsByPoolId(bytes32)', [index_0]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('rewardsByPoolId(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('rewardsByPoolId(bytes32)', [index_0]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0]); }, }; } @@ -4787,133 +2943,64 @@ export class StakingContract extends BaseContract { assert.isBigNumber('_minimumPoolStake', _minimumPoolStake); assert.isNumberOrBigNumber('_cobbDouglasAlphaNumerator', _cobbDouglasAlphaNumerator); assert.isNumberOrBigNumber('_cobbDouglasAlphaDenominator', _cobbDouglasAlphaDenominator); + const functionSignature = 'setParams(uint256,uint32,uint256,uint32,uint32)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('setParams(uint256,uint32,uint256,uint32,uint32)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _epochDurationInSeconds, _rewardDelegatedStakeWeight, _minimumPoolStake, _cobbDouglasAlphaNumerator, _cobbDouglasAlphaDenominator, ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('setParams(uint256,uint32,uint256,uint32,uint32)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ _epochDurationInSeconds, _rewardDelegatedStakeWeight, _minimumPoolStake, _cobbDouglasAlphaNumerator, _cobbDouglasAlphaDenominator, ]); - 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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('setParams(uint256,uint32,uint256,uint32,uint32)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ _epochDurationInSeconds, _rewardDelegatedStakeWeight, _minimumPoolStake, _cobbDouglasAlphaNumerator, _cobbDouglasAlphaDenominator, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('setParams(uint256,uint32,uint256,uint32,uint32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'setParams(uint256,uint32,uint256,uint32,uint32)', - [ - _epochDurationInSeconds, - _rewardDelegatedStakeWeight, - _minimumPoolStake, - _cobbDouglasAlphaNumerator, - _cobbDouglasAlphaDenominator, - ], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [ + _epochDurationInSeconds, + _rewardDelegatedStakeWeight, + _minimumPoolStake, + _cobbDouglasAlphaNumerator, + _cobbDouglasAlphaDenominator, + ]); }, }; } @@ -4925,261 +3012,97 @@ export class StakingContract extends BaseContract { public stake(amount: BigNumber): ContractTxFunctionObj { const self = (this as any) as StakingContract; assert.isBigNumber('amount', amount); + const functionSignature = 'stake(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('stake(uint256)', [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 encodedData = self._strictEncodeArguments(functionSignature, [amount]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('stake(uint256)', [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; + const encodedData = self._strictEncodeArguments(functionSignature, [amount]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('stake(uint256)', [amount]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('stake(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [amount]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('stake(uint256)', [amount]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [amount]); }, }; } public stakingContract(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'stakingContract()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('stakingContract()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('stakingContract()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('stakingContract()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public transferOwnership(newOwner: string): ContractTxFunctionObj { const self = (this as any) as StakingContract; assert.isString('newOwner', newOwner); + const functionSignature = 'transferOwnership(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); }, }; } @@ -5192,203 +3115,75 @@ export class StakingContract extends BaseContract { public unstake(amount: BigNumber): ContractTxFunctionObj { const self = (this as any) as StakingContract; assert.isBigNumber('amount', amount); + const functionSignature = 'unstake(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('unstake(uint256)', [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 encodedData = self._strictEncodeArguments(functionSignature, [amount]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('unstake(uint256)', [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; + const encodedData = self._strictEncodeArguments(functionSignature, [amount]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('unstake(uint256)', [amount]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('unstake(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [amount]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('unstake(uint256)', [amount]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [amount]); }, }; } public validExchanges(index_0: string): ContractFunctionObj { const self = (this as any) as StakingContract; assert.isString('index_0', index_0); + const functionSignature = 'validExchanges(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('validExchanges(address)', [index_0.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('validExchanges(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('validExchanges(address)', [ - index_0.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); }, }; } public wethReservedForPoolRewards(): ContractFunctionObj { const self = (this as any) as StakingContract; + const functionSignature = 'wethReservedForPoolRewards()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('wethReservedForPoolRewards()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('wethReservedForPoolRewards()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('wethReservedForPoolRewards()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -5400,108 +3195,40 @@ export class StakingContract extends BaseContract { public withdrawDelegatorRewards(poolId: string): ContractTxFunctionObj { const self = (this as any) as StakingContract; assert.isString('poolId', poolId); + const functionSignature = 'withdrawDelegatorRewards(bytes32)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('withdrawDelegatorRewards(bytes32)', [poolId]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('withdrawDelegatorRewards(bytes32)', [poolId]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('withdrawDelegatorRewards(bytes32)', [poolId]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('withdrawDelegatorRewards(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [poolId]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('withdrawDelegatorRewards(bytes32)', [ - poolId, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [poolId]); }, }; } diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/staking_proxy.ts b/packages/abi-gen-wrappers/src/generated-wrappers/staking_proxy.ts index f30c275c1f..a790278485 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/staking_proxy.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/staking_proxy.ts @@ -138,9 +138,11 @@ export class StakingProxyContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, [_stakingContract]); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -733,114 +735,40 @@ export class StakingProxyContract extends BaseContract { public addAuthorizedAddress(target: string): ContractTxFunctionObj { const self = (this as any) as StakingProxyContract; assert.isString('target', target); + const functionSignature = 'addAuthorizedAddress(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); }, }; } @@ -849,55 +777,23 @@ export class StakingProxyContract extends BaseContract { ): ContractFunctionObj<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]> { const self = (this as any) as StakingProxyContract; assert.isBigNumber('index_0', index_0); + const functionSignature = 'aggregatedStatsByEpoch(uint256)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('aggregatedStatsByEpoch(uint256)', [index_0]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>( + rawCallResult, ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('aggregatedStatsByEpoch(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< - [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] - >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('aggregatedStatsByEpoch(uint256)', [ - index_0, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0]); }, }; } @@ -906,48 +802,18 @@ export class StakingProxyContract extends BaseContract { */ public assertValidStorageParams(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'assertValidStorageParams()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('assertValidStorageParams()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('assertValidStorageParams()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('assertValidStorageParams()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -958,212 +824,76 @@ export class StakingProxyContract extends BaseContract { public attachStakingContract(_stakingContract: string): ContractTxFunctionObj { const self = (this as any) as StakingProxyContract; assert.isString('_stakingContract', _stakingContract); + const functionSignature = 'attachStakingContract(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('attachStakingContract(address)', [ - _stakingContract.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 encodedData = self._strictEncodeArguments(functionSignature, [_stakingContract.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('attachStakingContract(address)', [ - _stakingContract.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; + const encodedData = self._strictEncodeArguments(functionSignature, [_stakingContract.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('attachStakingContract(address)', [ - _stakingContract.toLowerCase(), - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('attachStakingContract(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [_stakingContract.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('attachStakingContract(address)', [ - _stakingContract.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [_stakingContract.toLowerCase()]); }, }; } public authorities(index_0: BigNumber): ContractFunctionObj { const self = (this as any) as StakingProxyContract; assert.isBigNumber('index_0', index_0); + const functionSignature = 'authorities(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('authorities(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('authorities(uint256)', [index_0]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0]); }, }; } public authorized(index_0: string): ContractFunctionObj { const self = (this as any) as StakingProxyContract; assert.isString('index_0', index_0); + const functionSignature = 'authorized(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('authorized(address)', [index_0.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('authorized(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('authorized(address)', [ - index_0.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); }, }; } @@ -1175,294 +905,108 @@ export class StakingProxyContract extends BaseContract { public batchExecute(data: string[]): ContractTxFunctionObj { const self = (this as any) as StakingProxyContract; assert.isArray('data', data); + const functionSignature = 'batchExecute(bytes[])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('batchExecute(bytes[])', [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 encodedData = self._strictEncodeArguments(functionSignature, [data]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('batchExecute(bytes[])', [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; + const encodedData = self._strictEncodeArguments(functionSignature, [data]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('batchExecute(bytes[])', [data]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('batchExecute(bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [data]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('batchExecute(bytes[])', [data]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [data]); }, }; } public cobbDouglasAlphaDenominator(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'cobbDouglasAlphaDenominator()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('cobbDouglasAlphaDenominator()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('cobbDouglasAlphaDenominator()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('cobbDouglasAlphaDenominator()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public cobbDouglasAlphaNumerator(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'cobbDouglasAlphaNumerator()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('cobbDouglasAlphaNumerator()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('cobbDouglasAlphaNumerator()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('cobbDouglasAlphaNumerator()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public currentEpoch(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'currentEpoch()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('currentEpoch()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('currentEpoch()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('currentEpoch()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public currentEpochStartTimeInSeconds(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'currentEpochStartTimeInSeconds()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('currentEpochStartTimeInSeconds()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('currentEpochStartTimeInSeconds()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('currentEpochStartTimeInSeconds()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -1471,153 +1015,57 @@ export class StakingProxyContract extends BaseContract { */ public detachStakingContract(): ContractTxFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'detachStakingContract()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('detachStakingContract()', []); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, []); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('detachStakingContract()', []); - 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 encodedData = self._strictEncodeArguments(functionSignature, []); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('detachStakingContract()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('detachStakingContract()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('detachStakingContract()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public epochDurationInSeconds(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'epochDurationInSeconds()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('epochDurationInSeconds()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('epochDurationInSeconds()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('epochDurationInSeconds()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -1627,239 +1075,87 @@ export class StakingProxyContract extends BaseContract { */ public getAuthorizedAddresses(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'getAuthorizedAddresses()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('getAuthorizedAddresses()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public lastPoolId(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'lastPoolId()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('lastPoolId()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('lastPoolId()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('lastPoolId()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public minimumPoolStake(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'minimumPoolStake()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('minimumPoolStake()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('minimumPoolStake()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('minimumPoolStake()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public owner(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'owner()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('owner()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('owner()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('owner()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public poolIdByMaker(index_0: string): ContractFunctionObj { const self = (this as any) as StakingProxyContract; assert.isString('index_0', index_0); + const functionSignature = 'poolIdByMaker(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('poolIdByMaker(address)', [index_0.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('poolIdByMaker(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('poolIdByMaker(address)', [ - index_0.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); }, }; } @@ -1870,57 +1166,21 @@ export class StakingProxyContract extends BaseContract { const self = (this as any) as StakingProxyContract; assert.isString('index_0', index_0); assert.isBigNumber('index_1', index_1); + const functionSignature = 'poolStatsByEpoch(bytes32,uint256)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber, BigNumber, BigNumber]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('poolStatsByEpoch(bytes32,uint256)', [ - index_0, - index_1, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('poolStatsByEpoch(bytes32,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber, BigNumber]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0, index_1]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber, BigNumber]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('poolStatsByEpoch(bytes32,uint256)', [ - index_0, - index_1, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0, index_1]); }, }; } @@ -1931,114 +1191,40 @@ export class StakingProxyContract extends BaseContract { public removeAuthorizedAddress(target: string): ContractTxFunctionObj { const self = (this as any) as StakingProxyContract; assert.isString('target', target); + const functionSignature = 'removeAuthorizedAddress(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [ - target.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [target.toLowerCase()]); }, }; } @@ -2051,465 +1237,167 @@ export class StakingProxyContract extends BaseContract { const self = (this as any) as StakingProxyContract; assert.isString('target', target); assert.isBigNumber('index', index); + const functionSignature = 'removeAuthorizedAddressAtIndex(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase(), index]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase(), index]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [ - target.toLowerCase(), - index, - ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [target.toLowerCase(), index]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'removeAuthorizedAddressAtIndex(address,uint256)', - [target.toLowerCase(), index], - ); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [target.toLowerCase(), index]); }, }; } public rewardDelegatedStakeWeight(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'rewardDelegatedStakeWeight()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('rewardDelegatedStakeWeight()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('rewardDelegatedStakeWeight()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('rewardDelegatedStakeWeight()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public rewardsByPoolId(index_0: string): ContractFunctionObj { const self = (this as any) as StakingProxyContract; assert.isString('index_0', index_0); + const functionSignature = 'rewardsByPoolId(bytes32)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('rewardsByPoolId(bytes32)', [index_0]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('rewardsByPoolId(bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('rewardsByPoolId(bytes32)', [index_0]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0]); }, }; } public stakingContract(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'stakingContract()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('stakingContract()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('stakingContract()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('stakingContract()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public transferOwnership(newOwner: string): ContractTxFunctionObj { const self = (this as any) as StakingProxyContract; assert.isString('newOwner', newOwner); + const functionSignature = 'transferOwnership(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transferOwnership(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [ - newOwner.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [newOwner.toLowerCase()]); }, }; } public validExchanges(index_0: string): ContractFunctionObj { const self = (this as any) as StakingProxyContract; assert.isString('index_0', index_0); + const functionSignature = 'validExchanges(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('validExchanges(address)', [index_0.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('validExchanges(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('validExchanges(address)', [ - index_0.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); }, }; } public wethReservedForPoolRewards(): ContractFunctionObj { const self = (this as any) as StakingProxyContract; + const functionSignature = 'wethReservedForPoolRewards()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('wethReservedForPoolRewards()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('wethReservedForPoolRewards()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('wethReservedForPoolRewards()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts b/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts index a8f5b15c5f..c62e08d489 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts @@ -124,9 +124,11 @@ export class WETH9Contract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -464,48 +466,18 @@ export class WETH9Contract extends BaseContract { public name(): ContractFunctionObj { const self = (this as any) as WETH9Contract; + const functionSignature = 'name()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('name()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('name()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('name()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -513,156 +485,57 @@ export class WETH9Contract extends BaseContract { const self = (this as any) as WETH9Contract; assert.isString('guy', guy); assert.isBigNumber('wad', wad); + const functionSignature = 'approve(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [guy.toLowerCase(), wad]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [guy.toLowerCase(), wad]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy.toLowerCase(), wad]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('approve(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [guy.toLowerCase(), wad]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [ - guy.toLowerCase(), - wad, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [guy.toLowerCase(), wad]); }, }; } public totalSupply(): ContractFunctionObj { const self = (this as any) as WETH9Contract; + const functionSignature = 'totalSupply()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('totalSupply()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('totalSupply()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('totalSupply()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -671,372 +544,144 @@ export class WETH9Contract extends BaseContract { assert.isString('src', src); assert.isString('dst', dst); assert.isBigNumber('wad', wad); + const functionSignature = 'transferFrom(address,address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ 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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + const encodedData = self._strictEncodeArguments(functionSignature, [ 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; + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ src.toLowerCase(), dst.toLowerCase(), wad, ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [ - src.toLowerCase(), - dst.toLowerCase(), - wad, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [src.toLowerCase(), dst.toLowerCase(), wad]); }, }; } public withdraw(wad: BigNumber): ContractTxFunctionObj { const self = (this as any) as WETH9Contract; assert.isBigNumber('wad', wad); + const functionSignature = 'withdraw(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [wad]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [wad]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('withdraw(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [wad]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('withdraw(uint256)', [wad]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [wad]); }, }; } public decimals(): ContractFunctionObj { const self = (this as any) as WETH9Contract; + const functionSignature = 'decimals()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('decimals()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('decimals()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('decimals()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } public balanceOf(index_0: string): ContractFunctionObj { const self = (this as any) as WETH9Contract; assert.isString('index_0', index_0); + const functionSignature = 'balanceOf(address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('balanceOf(address)', [index_0.toLowerCase()]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('balanceOf(address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('balanceOf(address)', [ - index_0.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0.toLowerCase()]); }, }; } public symbol(): ContractFunctionObj { const self = (this as any) as WETH9Contract; + const functionSignature = 'symbol()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('symbol()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('symbol()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('symbol()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -1044,214 +689,79 @@ export class WETH9Contract extends BaseContract { const self = (this as any) as WETH9Contract; assert.isString('dst', dst); assert.isBigNumber('wad', wad); + const functionSignature = 'transfer(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [dst.toLowerCase(), wad]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, [dst.toLowerCase(), wad]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst.toLowerCase(), wad]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [dst.toLowerCase(), wad]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [ - dst.toLowerCase(), - wad, - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [dst.toLowerCase(), wad]); }, }; } public deposit(): ContractTxFunctionObj { const self = (this as any) as WETH9Contract; + const functionSignature = 'deposit()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, []); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { - 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; + const encodedData = self._strictEncodeArguments(functionSignature, []); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('deposit()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('deposit()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('deposit()', []); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, []); }, }; } @@ -1259,54 +769,21 @@ export class WETH9Contract extends BaseContract { const self = (this as any) as WETH9Contract; assert.isString('index_0', index_0); assert.isString('index_1', index_1); + const functionSignature = 'allowance(address,address)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('allowance(address,address)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ index_0.toLowerCase(), index_1.toLowerCase(), ]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('allowance(address,address)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('allowance(address,address)', [ - index_0.toLowerCase(), - index_1.toLowerCase(), - ]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [index_0.toLowerCase(), index_1.toLowerCase()]); }, }; } diff --git a/packages/abi-gen/templates/TypeScript/contract.handlebars b/packages/abi-gen/templates/TypeScript/contract.handlebars index 8a06e04f6d..46d8f3c2ba 100644 --- a/packages/abi-gen/templates/TypeScript/contract.handlebars +++ b/packages/abi-gen/templates/TypeScript/contract.handlebars @@ -121,9 +121,11 @@ export class {{contractName}}Contract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, [{{> params inputs=ctor.inputs}}]); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - {data: txData}, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -209,7 +211,8 @@ export class {{contractName}}Contract extends BaseContract { {{#each inputs}} {{#assertionType name type}}{{/assertionType}} {{/each}} - + const functionSignature = '{{this.functionSignature}}'; + return { {{^this.constant}} {{> method_tx}} @@ -309,7 +312,7 @@ export class {{contractName}}Contract extends BaseContract { } }) } -} +} // 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/templates/TypeScript/partials/method_call.handlebars b/packages/abi-gen/templates/TypeScript/partials/method_call.handlebars index 25e07f1188..c1c1e5438b 100644 --- a/packages/abi-gen/templates/TypeScript/partials/method_call.handlebars +++ b/packages/abi-gen/templates/TypeScript/partials/method_call.handlebars @@ -2,47 +2,16 @@ async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<{{> return_type outputs=outputs}}> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('{{this.functionSignature}}', [{{> normalized_params inputs=inputs}}]); - let rawCallResult; - + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [{{> normalized_params inputs=inputs}}]); {{#ifEquals this.stateMutability "pure"}} - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); + const rawCallResult = await self._evmExecAsync(encodedData); {{else}} - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from ? callDataWithDefaults.from.toLowerCase() : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); {{/ifEquals}} - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('{{this.functionSignature}}'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{{> return_type outputs=outputs}}>(rawCallResult); - // tslint:enable boolean-naming - return result; + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{{> return_type outputs=outputs}}>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('{{this.functionSignature}}', [{{> normalized_params inputs=inputs}}]); - return abiEncodedTransactionData; + return self._strictEncodeArguments(functionSignature, [{{> normalized_params inputs=inputs}}]); }, diff --git a/packages/abi-gen/templates/TypeScript/partials/method_tx.handlebars b/packages/abi-gen/templates/TypeScript/partials/method_tx.handlebars index 6262c3d39e..7438490e3c 100644 --- a/packages/abi-gen/templates/TypeScript/partials/method_tx.handlebars +++ b/packages/abi-gen/templates/TypeScript/partials/method_tx.handlebars @@ -2,61 +2,23 @@ async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('{{this.functionSignature}}', [{{> normalized_params inputs=inputs}}]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, [{{> normalized_params inputs=inputs}}]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({...txData, data: encodedData}); if (opts.shouldValidate !== false) { - await this.callAsync( - txDataWithDefaults, - ); + await this.callAsync(txDataWithDefaults); } - - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; + return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { - const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { - const encodedData = self._strictEncodeArguments('{{this.functionSignature}}', [{{> normalized_params inputs=inputs}}]); - 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 encodedData = self._strictEncodeArguments(functionSignature, [{{> normalized_params inputs=inputs}}]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData, }); + return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, diff --git a/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts b/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts index b1ec054a4b..0ee4aa6f1f 100644 --- a/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts +++ b/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts @@ -107,9 +107,11 @@ export class AbiGenDummyContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -836,37 +838,18 @@ export class AbiGenDummyContract extends BaseContract { public acceptsAnArrayOfBytes(a: string[]): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; assert.isArray('a', a); + const functionSignature = 'acceptsAnArrayOfBytes(bytes[])'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('acceptsAnArrayOfBytes(bytes[])', [a]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('acceptsAnArrayOfBytes(bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [a]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('acceptsAnArrayOfBytes(bytes[])', [a]); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [a]); return abiEncodedTransactionData; }, }; @@ -874,37 +857,18 @@ export class AbiGenDummyContract extends BaseContract { public acceptsBytes(a: string): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; assert.isString('a', a); + const functionSignature = 'acceptsBytes(bytes)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('acceptsBytes(bytes)', [a]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('acceptsBytes(bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [a]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('acceptsBytes(bytes)', [a]); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [a]); return abiEncodedTransactionData; }, }; @@ -924,6 +888,8 @@ export class AbiGenDummyContract extends BaseContract { }> { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'complexInputComplexOutput((uint256,bytes,string))'; + return { async callAsync( callData: Partial = {}, @@ -934,44 +900,19 @@ export class AbiGenDummyContract extends BaseContract { ipsum: string; dolor: string; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('complexInputComplexOutput((uint256,bytes,string))', [ - complexInput, - ]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('complexInputComplexOutput((uint256,bytes,string))'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [complexInput]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ input: { foo: BigNumber; bar: string; car: string }; lorem: string; ipsum: string; dolor: string; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'complexInputComplexOutput((uint256,bytes,string))', - [complexInput], - ); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [complexInput]); return abiEncodedTransactionData; }, }; @@ -993,74 +934,36 @@ export class AbiGenDummyContract extends BaseContract { assert.isNumberOrBigNumber('v', v); assert.isString('r', r); assert.isString('s', s); + const functionSignature = 'ecrecoverFn(bytes32,uint8,bytes32,bytes32)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('ecrecoverFn(bytes32,uint8,bytes32,bytes32)', [ - hash, - v, - r, - s, - ]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('ecrecoverFn(bytes32,uint8,bytes32,bytes32)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [hash, v, r, s]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'ecrecoverFn(bytes32,uint8,bytes32,bytes32)', - [hash, v, r, s], - ); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [hash, v, r, s]); return abiEncodedTransactionData; }, }; } public emitSimpleEvent(): ContractTxFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'emitSimpleEvent()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('emitSimpleEvent()', []); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, []); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); return txHash; }, @@ -1069,74 +972,23 @@ export class AbiGenDummyContract extends BaseContract { opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(txHashPromise, opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { const encodedData = self._strictEncodeArguments('emitSimpleEvent()', []); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); return gas; }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('emitSimpleEvent()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('emitSimpleEvent()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('emitSimpleEvent()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; @@ -1145,6 +997,7 @@ export class AbiGenDummyContract extends BaseContract { Array<{ someBytes: string; anInteger: number; aDynamicArrayOfBytes: string[]; aString: string }> > { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'methodReturningArrayOfStructs()'; return { async callAsync( @@ -1153,73 +1006,34 @@ export class AbiGenDummyContract extends BaseContract { ): Promise< Array<{ someBytes: string; anInteger: number; aDynamicArrayOfBytes: string[]; aString: string }> > { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('methodReturningArrayOfStructs()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('methodReturningArrayOfStructs()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue< + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue< Array<{ someBytes: string; anInteger: number; aDynamicArrayOfBytes: string[]; aString: string }> >(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('methodReturningArrayOfStructs()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; } public methodReturningMultipleValues(): ContractFunctionObj<[BigNumber, string]> { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'methodReturningMultipleValues()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise<[BigNumber, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('methodReturningMultipleValues()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('methodReturningMultipleValues()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[BigNumber, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[BigNumber, string]>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('methodReturningMultipleValues()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; @@ -1228,48 +1042,21 @@ export class AbiGenDummyContract extends BaseContract { innerStruct: { aField: BigNumber }; }> { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'methodUsingNestedStructWithInnerStructNotUsedElsewhere()'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<{ innerStruct: { aField: BigNumber } }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'methodUsingNestedStructWithInnerStructNotUsedElsewhere()', - [], - ); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('methodUsingNestedStructWithInnerStructNotUsedElsewhere()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ innerStruct: { aField: BigNumber } }>( - rawCallResult, - ); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ innerStruct: { aField: BigNumber } }>(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'methodUsingNestedStructWithInnerStructNotUsedElsewhere()', - [], - ); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; @@ -1286,47 +1073,25 @@ export class AbiGenDummyContract extends BaseContract { assert.isBigNumber('index_0', index_0); assert.isString('index_1', index_1); assert.isString('index_2', index_2); + const functionSignature = 'multiInputMultiOutput(uint256,bytes,string)'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[string, string, string]> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('multiInputMultiOutput(uint256,bytes,string)', [ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0, index_1, index_2]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<[string, string, string]>(rawCallResult); + }, + getABIEncodedTransactionData(): string { + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [ index_0, index_1, index_2, ]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('multiInputMultiOutput(uint256,bytes,string)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<[string, string, string]>(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'multiInputMultiOutput(uint256,bytes,string)', - [index_0, index_1, index_2], - ); return abiEncodedTransactionData; }, }; @@ -1342,42 +1107,18 @@ export class AbiGenDummyContract extends BaseContract { }): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'nestedStructInput(((bytes,uint32,bytes[],string),string))'; + return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'nestedStructInput(((bytes,uint32,bytes[],string),string))', - [n], - ); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('nestedStructInput(((bytes,uint32,bytes[],string),string))'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [n]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'nestedStructInput(((bytes,uint32,bytes[],string),string))', - [n], - ); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [n]); return abiEncodedTransactionData; }, }; @@ -1387,6 +1128,7 @@ export class AbiGenDummyContract extends BaseContract { description: string; }> { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'nestedStructOutput()'; return { async callAsync( @@ -1396,29 +1138,11 @@ export class AbiGenDummyContract extends BaseContract { innerStruct: { someBytes: string; anInteger: number; aDynamicArrayOfBytes: string[]; aString: string }; description: string; }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('nestedStructOutput()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('nestedStructOutput()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ innerStruct: { someBytes: string; anInteger: number; @@ -1427,11 +1151,9 @@ export class AbiGenDummyContract extends BaseContract { }; description: string; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('nestedStructOutput()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; @@ -1441,37 +1163,18 @@ export class AbiGenDummyContract extends BaseContract { */ public noInputNoOutput(): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'noInputNoOutput()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('noInputNoOutput()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('noInputNoOutput()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('noInputNoOutput()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; @@ -1481,66 +1184,36 @@ export class AbiGenDummyContract extends BaseContract { */ public noInputSimpleOutput(): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'noInputSimpleOutput()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('noInputSimpleOutput()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('noInputSimpleOutput()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('noInputSimpleOutput()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; } public nonPureMethod(): ContractTxFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'nonPureMethod()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('nonPureMethod()', []); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, []); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); return txHash; }, @@ -1549,103 +1222,41 @@ export class AbiGenDummyContract extends BaseContract { opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(txHashPromise, opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { const encodedData = self._strictEncodeArguments('nonPureMethod()', []); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); return gas; }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('nonPureMethod()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('nonPureMethod()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('nonPureMethod()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; } public nonPureMethodThatReturnsNothing(): ContractTxFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'nonPureMethodThatReturnsNothing()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - const encodedData = self._strictEncodeArguments('nonPureMethodThatReturnsNothing()', []); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const encodedData = self._strictEncodeArguments(functionSignature, []); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); return txHash; }, @@ -1654,74 +1265,23 @@ export class AbiGenDummyContract extends BaseContract { opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(txHashPromise, opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { const encodedData = self._strictEncodeArguments('nonPureMethodThatReturnsNothing()', []); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - if (txDataWithDefaults.from !== undefined) { - txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); - } - + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); return gas; }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('nonPureMethodThatReturnsNothing()', []); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('nonPureMethodThatReturnsNothing()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('nonPureMethodThatReturnsNothing()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; @@ -1729,37 +1289,18 @@ export class AbiGenDummyContract extends BaseContract { public overloadedMethod2(a: string): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; assert.isString('a', a); + const functionSignature = 'overloadedMethod(string)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('overloadedMethod(string)', [a]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('overloadedMethod(string)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [a]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('overloadedMethod(string)', [a]); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [a]); return abiEncodedTransactionData; }, }; @@ -1767,148 +1308,72 @@ export class AbiGenDummyContract extends BaseContract { public overloadedMethod1(a: BigNumber): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; assert.isBigNumber('a', a); + const functionSignature = 'overloadedMethod(int256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('overloadedMethod(int256)', [a]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('overloadedMethod(int256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [a]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('overloadedMethod(int256)', [a]); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [a]); return abiEncodedTransactionData; }, }; } public pureFunctionWithConstant(): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'pureFunctionWithConstant()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('pureFunctionWithConstant()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('pureFunctionWithConstant()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('pureFunctionWithConstant()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; } public requireWithConstant(): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'requireWithConstant()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('requireWithConstant()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('requireWithConstant()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('requireWithConstant()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; } public revertWithConstant(): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'revertWithConstant()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('revertWithConstant()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('revertWithConstant()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('revertWithConstant()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; @@ -1919,39 +1384,18 @@ export class AbiGenDummyContract extends BaseContract { public simpleInputNoOutput(index_0: BigNumber): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; assert.isBigNumber('index_0', index_0); + const functionSignature = 'simpleInputNoOutput(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('simpleInputNoOutput(uint256)', [index_0]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('simpleInputNoOutput(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('simpleInputNoOutput(uint256)', [ - index_0, - ]); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [index_0]); return abiEncodedTransactionData; }, }; @@ -1962,76 +1406,36 @@ export class AbiGenDummyContract extends BaseContract { public simpleInputSimpleOutput(index_0: BigNumber): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; assert.isBigNumber('index_0', index_0); + const functionSignature = 'simpleInputSimpleOutput(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('simpleInputSimpleOutput(uint256)', [index_0]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('simpleInputSimpleOutput(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [index_0]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('simpleInputSimpleOutput(uint256)', [ - index_0, - ]); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [index_0]); return abiEncodedTransactionData; }, }; } public simplePureFunction(): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'simplePureFunction()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('simplePureFunction()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('simplePureFunction()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('simplePureFunction()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; @@ -2039,113 +1443,54 @@ export class AbiGenDummyContract extends BaseContract { public simplePureFunctionWithInput(x: BigNumber): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; assert.isBigNumber('x', x); + const functionSignature = 'simplePureFunctionWithInput(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('simplePureFunctionWithInput(uint256)', [x]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('simplePureFunctionWithInput(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [x]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('simplePureFunctionWithInput(uint256)', [ - x, - ]); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [x]); return abiEncodedTransactionData; }, }; } public simpleRequire(): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'simpleRequire()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('simpleRequire()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('simpleRequire()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('simpleRequire()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; } public simpleRevert(): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'simpleRevert()'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('simpleRevert()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('simpleRevert()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('simpleRevert()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; @@ -2158,39 +1503,18 @@ export class AbiGenDummyContract extends BaseContract { }): ContractFunctionObj { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'structInput((bytes,uint32,bytes[],string))'; + return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('structInput((bytes,uint32,bytes[],string))', [s]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('structInput((bytes,uint32,bytes[],string))'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [s]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'structInput((bytes,uint32,bytes[],string))', - [s], - ); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [s]); return abiEncodedTransactionData; }, }; @@ -2206,45 +1530,26 @@ export class AbiGenDummyContract extends BaseContract { aString: string; }> { const self = (this as any) as AbiGenDummyContract; + const functionSignature = 'structOutput()'; return { async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<{ someBytes: string; anInteger: number; aDynamicArrayOfBytes: string[]; aString: string }> { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('structOutput()', []); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('structOutput()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue<{ + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, []); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue<{ someBytes: string; anInteger: number; aDynamicArrayOfBytes: string[]; aString: string; }>(rawCallResult); - // tslint:enable boolean-naming - return result; }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('structOutput()', []); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, []); return abiEncodedTransactionData; }, }; @@ -2262,43 +1567,30 @@ export class AbiGenDummyContract extends BaseContract { assert.isBigNumber('b', b); assert.isString('y', y); assert.isBigNumber('c', c); + const functionSignature = 'withAddressInput(address,uint256,uint256,address,uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [ + x.toLowerCase(), + a, + b, + y.toLowerCase(), + c, ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments( - 'withAddressInput(address,uint256,uint256,address,uint256)', - [x.toLowerCase(), a, b, y.toLowerCase(), c], - ); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('withAddressInput(address,uint256,uint256,address,uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments( - 'withAddressInput(address,uint256,uint256,address,uint256)', - [x.toLowerCase(), a, b, y.toLowerCase(), c], - ); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [ + x.toLowerCase(), + a, + b, + y.toLowerCase(), + c, + ]); return abiEncodedTransactionData; }, }; @@ -2306,29 +1598,18 @@ export class AbiGenDummyContract extends BaseContract { public withdraw(wad: BigNumber): ContractTxFunctionObj { const self = (this as any) as AbiGenDummyContract; assert.isBigNumber('wad', wad); + const functionSignature = 'withdraw(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { - 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 encodedData = self._strictEncodeArguments(functionSignature, [wad]); + const txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); return txHash; }, @@ -2337,74 +1618,23 @@ export class AbiGenDummyContract extends BaseContract { opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { const txHashPromise = this.sendTransactionAsync(txData, opts); - return new PromiseWithTransactionHash( - txHashPromise, - (async (): Promise => { - // When the transaction hash resolves, wait for it to be mined. - return self._web3Wrapper.awaitTransactionSuccessAsync( - await txHashPromise, - opts.pollingIntervalMs, - opts.timeoutMs, - ); - })(), - ); + return self._promiseWithTransactionHash(txHashPromise, opts); }, async estimateGasAsync(txData?: Partial | undefined): Promise { 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 txDataWithDefaults = await self._applyDefaultsToTxDataAsync({ ...txData, data: encodedData }); const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); return gas; }, async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad]); - let rawCallResult; - - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - callDataWithDefaults.from = callDataWithDefaults.from - ? callDataWithDefaults.from.toLowerCase() - : callDataWithDefaults.from; - try { - rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('withdraw(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [wad]); + const rawCallResult = await self._performCallAsync({ ...callData, data: encodedData }, defaultBlock); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('withdraw(uint256)', [wad]); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [wad]); return abiEncodedTransactionData; }, }; diff --git a/packages/abi-gen/test-cli/output/typescript/lib_dummy.ts b/packages/abi-gen/test-cli/output/typescript/lib_dummy.ts index f36975f234..6196624f8c 100644 --- a/packages/abi-gen/test-cli/output/typescript/lib_dummy.ts +++ b/packages/abi-gen/test-cli/output/typescript/lib_dummy.ts @@ -86,9 +86,11 @@ export class LibDummyContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); diff --git a/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts b/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts index fb3801014c..6e0d0e4ad1 100644 --- a/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts +++ b/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts @@ -87,9 +87,11 @@ export class TestLibDummyContract extends BaseContract { const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { data: txData }, - txDefaults, + const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( + { + data: txData, + ...txDefaults, + }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); @@ -183,37 +185,18 @@ export class TestLibDummyContract extends BaseContract { public publicAddConstant(x: BigNumber): ContractFunctionObj { const self = (this as any) as TestLibDummyContract; assert.isBigNumber('x', x); + const functionSignature = 'publicAddConstant(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('publicAddConstant(uint256)', [x]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('publicAddConstant(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [x]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('publicAddConstant(uint256)', [x]); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [x]); return abiEncodedTransactionData; }, }; @@ -221,37 +204,18 @@ export class TestLibDummyContract extends BaseContract { public publicAddOne(x: BigNumber): ContractFunctionObj { const self = (this as any) as TestLibDummyContract; assert.isBigNumber('x', x); + const functionSignature = 'publicAddOne(uint256)'; return { async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { - assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ - schemas.addressSchema, - schemas.numberSchema, - schemas.jsNumber, - ]); - if (defaultBlock !== undefined) { - assert.isBlockParam('defaultBlock', defaultBlock); - } - const encodedData = self._strictEncodeArguments('publicAddOne(uint256)', [x]); - let rawCallResult; - - const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); - try { - rawCallResult = await self._evmExecAsync(encodedDataBytes); - } catch (err) { - BaseContract._throwIfThrownErrorIsRevertError(err); - throw err; - } - - BaseContract._throwIfCallResultIsRevertError(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('publicAddOne(uint256)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; + BaseContract._assertCallParams(callData, defaultBlock); + const encodedData = self._strictEncodeArguments(functionSignature, [x]); + const rawCallResult = await self._evmExecAsync(encodedData); + const abiEncoder = self._lookupAbiEncoder(functionSignature); + return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { - const abiEncodedTransactionData = self._strictEncodeArguments('publicAddOne(uint256)', [x]); + const abiEncodedTransactionData = self._strictEncodeArguments(functionSignature, [x]); return abiEncodedTransactionData; }, }; diff --git a/packages/base-contract/src/index.ts b/packages/base-contract/src/index.ts index 1eb2d0fd67..8b181ec494 100644 --- a/packages/base-contract/src/index.ts +++ b/packages/base-contract/src/index.ts @@ -14,12 +14,14 @@ import { Web3Wrapper } from '@0x/web3-wrapper'; import { AbiDefinition, AbiType, + BlockParam, CallData, ConstructorAbi, ContractAbi, DataItem, MethodAbi, SupportedProvider, + TransactionReceiptWithDecodedLogs, TxData, TxDataPayable, } from 'ethereum-types'; @@ -31,6 +33,7 @@ import * as _ from 'lodash'; export { methodAbiToFunctionSignature } from './utils'; +import { AwaitTransactionSuccessOpts } from './types'; import { formatABIDataItem } from './utils'; export { SubscriptionManager } from './subscription_manager'; @@ -125,26 +128,6 @@ export class BaseContract { return defaultConstructorAbi; } } - protected static async _applyDefaultsToTxDataAsync>( - txData: T, - txDefaults: Partial | undefined, - estimateGasAsync?: (txData: T) => Promise, - ): Promise { - // Gas amount sourced with the following priorities: - // 1. Optional param passed in to public method call - // 2. Global config passed in at library instantiation - // 3. Gas estimate calculation + safety margin - const removeUndefinedProperties = _.pickBy.bind(_); - const finalTxDefaults: Partial = txDefaults || {}; - const txDataWithDefaults = { - ...removeUndefinedProperties(finalTxDefaults), - ...removeUndefinedProperties(txData), - }; - if (txDataWithDefaults.gas === undefined && estimateGasAsync !== undefined) { - txDataWithDefaults.gas = await estimateGasAsync(txDataWithDefaults); - } - return txDataWithDefaults; - } protected static _throwIfCallResultIsRevertError(rawCallResult: string): void { // Try to decode the call result as a revert error. let revert: RevertError; @@ -193,7 +176,70 @@ export class BaseContract { } return rawEncoded; } - protected async _evmExecAsync(input: Buffer): Promise { + protected static async _applyDefaultsToContractTxDataAsync>( + txData: T, + estimateGasAsync?: (txData: T) => Promise, + ): Promise { + const removeUndefinedProperties = _.pickBy.bind(_); + const txDataWithDefaults = removeUndefinedProperties(txData); + if (txDataWithDefaults.gas === undefined && estimateGasAsync !== undefined) { + txDataWithDefaults.gas = await estimateGasAsync(txDataWithDefaults); + } + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + return txDataWithDefaults; + } + protected static _assertCallParams(callData: Partial, defaultBlock?: BlockParam): void { + assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [ + schemas.addressSchema, + schemas.numberSchema, + schemas.jsNumber, + ]); + if (defaultBlock !== undefined) { + assert.isBlockParam('defaultBlock', defaultBlock); + } + } + protected _promiseWithTransactionHash( + txHashPromise: Promise, + opts: AwaitTransactionSuccessOpts, + ): PromiseWithTransactionHash { + return new PromiseWithTransactionHash( + txHashPromise, + (async (): Promise => { + // When the transaction hash resolves, wait for it to be mined. + return this._web3Wrapper.awaitTransactionSuccessAsync( + await txHashPromise, + opts.pollingIntervalMs, + opts.timeoutMs, + ); + })(), + ); + } + protected async _applyDefaultsToTxDataAsync>( + txData: T, + estimateGasAsync?: (txData: T) => Promise, + ): Promise { + // Gas amount sourced with the following priorities: + // 1. Optional param passed in to public method call + // 2. Global config passed in at library instantiation + // 3. Gas estimate calculation + safety margin + const removeUndefinedProperties = _.pickBy.bind(_); + const txDataWithDefaults = { + to: this.address, + ...removeUndefinedProperties(this._web3Wrapper.getContractDefaults()), + ...removeUndefinedProperties(txData), + }; + if (txDataWithDefaults.gas === undefined && estimateGasAsync !== undefined) { + txDataWithDefaults.gas = await estimateGasAsync(txDataWithDefaults); + } + if (txDataWithDefaults.from !== undefined) { + txDataWithDefaults.from = txDataWithDefaults.from.toLowerCase(); + } + return txDataWithDefaults; + } + protected async _evmExecAsync(encodedData: string): Promise { + const encodedDataBytes = Buffer.from(encodedData.substr(2), 'hex'); const addressBuf = Buffer.from(this.address.substr(2), 'hex'); // should only run once, the first time it is called if (this._evmIfExists === undefined) { @@ -217,15 +263,34 @@ export class BaseContract { this._evmIfExists = vm; this._evmAccountIfExists = accountAddress; } - const result = await this._evmIfExists.runCall({ - to: addressBuf, - caller: this._evmAccountIfExists, - origin: this._evmAccountIfExists, - data: input, - }); + let rawCallResult; + try { + const result = await this._evmIfExists.runCall({ + to: addressBuf, + caller: this._evmAccountIfExists, + origin: this._evmAccountIfExists, + data: encodedDataBytes, + }); + rawCallResult = `0x${result.execResult.returnValue.toString('hex')}`; + } catch (err) { + BaseContract._throwIfThrownErrorIsRevertError(err); + throw err; + } - const hexReturnValue = `0x${result.execResult.returnValue.toString('hex')}`; - return hexReturnValue; + BaseContract._throwIfCallResultIsRevertError(rawCallResult); + return rawCallResult; + } + protected async _performCallAsync(callData: Partial, defaultBlock?: BlockParam): Promise { + const callDataWithDefaults = await this._applyDefaultsToTxDataAsync(callData); + let rawCallResult: string; + try { + rawCallResult = await this._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + } catch (err) { + BaseContract._throwIfThrownErrorIsRevertError(err); + throw err; + } + BaseContract._throwIfCallResultIsRevertError(rawCallResult); + return rawCallResult; } protected _lookupAbiEncoder(functionSignature: string): AbiEncoder.Method { const abiEncoder = this._abiEncoderByFunctionSignature[functionSignature];