diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-11-23 21:03:48 +0800 |
---|---|---|
committer | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-12-03 19:09:28 +0800 |
commit | 0faa8b3231ddfc15723a4bdda0b6ed7aeb742bd4 (patch) | |
tree | 1d1f4ec74287ff12e305a18fee459772345c2ff1 /contracts/multisig/generated-wrappers | |
parent | 450c72035f13b02cb3cbd24f68a9fcb743aceb26 (diff) | |
download | dexon-sol-tools-0faa8b3231ddfc15723a4bdda0b6ed7aeb742bd4.tar dexon-sol-tools-0faa8b3231ddfc15723a4bdda0b6ed7aeb742bd4.tar.gz dexon-sol-tools-0faa8b3231ddfc15723a4bdda0b6ed7aeb742bd4.tar.bz2 dexon-sol-tools-0faa8b3231ddfc15723a4bdda0b6ed7aeb742bd4.tar.lz dexon-sol-tools-0faa8b3231ddfc15723a4bdda0b6ed7aeb742bd4.tar.xz dexon-sol-tools-0faa8b3231ddfc15723a4bdda0b6ed7aeb742bd4.tar.zst dexon-sol-tools-0faa8b3231ddfc15723a4bdda0b6ed7aeb742bd4.zip |
Refactor contracts-core into contracts-multisig, contracts-core and contracts-test-utils
Diffstat (limited to 'contracts/multisig/generated-wrappers')
3 files changed, 3173 insertions, 0 deletions
diff --git a/contracts/multisig/generated-wrappers/multi_sig_wallet.ts b/contracts/multisig/generated-wrappers/multi_sig_wallet.ts new file mode 100644 index 000000000..b40f1eaf8 --- /dev/null +++ b/contracts/multisig/generated-wrappers/multi_sig_wallet.ts @@ -0,0 +1,1449 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name +// tslint:disable:no-unused-variable +// tslint:disable:no-unbound-method +import { BaseContract } from '@0x/base-contract'; +import { + BlockParam, + BlockParamLiteral, + CallData, + ContractAbi, + ContractArtifact, + DecodedLogArgs, + MethodAbi, + Provider, + TxData, + TxDataPayable, +} from 'ethereum-types'; +import { BigNumber, classUtils, logUtils } from '@0x/utils'; +import { SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import * as ethers from 'ethers'; +import * as _ from 'lodash'; +// tslint:enable:no-unused-variable + +export type MultiSigWalletEventArgs = + | MultiSigWalletConfirmationEventArgs + | MultiSigWalletRevocationEventArgs + | MultiSigWalletSubmissionEventArgs + | MultiSigWalletExecutionEventArgs + | MultiSigWalletExecutionFailureEventArgs + | MultiSigWalletDepositEventArgs + | MultiSigWalletOwnerAdditionEventArgs + | MultiSigWalletOwnerRemovalEventArgs + | MultiSigWalletRequirementChangeEventArgs; + +export enum MultiSigWalletEvents { + Confirmation = 'Confirmation', + Revocation = 'Revocation', + Submission = 'Submission', + Execution = 'Execution', + ExecutionFailure = 'ExecutionFailure', + Deposit = 'Deposit', + OwnerAddition = 'OwnerAddition', + OwnerRemoval = 'OwnerRemoval', + RequirementChange = 'RequirementChange', +} + +export interface MultiSigWalletConfirmationEventArgs extends DecodedLogArgs { + sender: string; + transactionId: BigNumber; +} + +export interface MultiSigWalletRevocationEventArgs extends DecodedLogArgs { + sender: string; + transactionId: BigNumber; +} + +export interface MultiSigWalletSubmissionEventArgs extends DecodedLogArgs { + transactionId: BigNumber; +} + +export interface MultiSigWalletExecutionEventArgs extends DecodedLogArgs { + transactionId: BigNumber; +} + +export interface MultiSigWalletExecutionFailureEventArgs extends DecodedLogArgs { + transactionId: BigNumber; +} + +export interface MultiSigWalletDepositEventArgs extends DecodedLogArgs { + sender: string; + value: BigNumber; +} + +export interface MultiSigWalletOwnerAdditionEventArgs extends DecodedLogArgs { + owner: string; +} + +export interface MultiSigWalletOwnerRemovalEventArgs extends DecodedLogArgs { + owner: string; +} + +export interface MultiSigWalletRequirementChangeEventArgs extends DecodedLogArgs { + required: BigNumber; +} + +/* istanbul ignore next */ +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class MultiSigWalletContract extends BaseContract { + public owners = { + async callAsync( + index_0: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<string> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'owners(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [index_0] = BaseContract._formatABIDataItemList( + inputAbi, + [index_0], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.owners; + const encodedData = ethersFunction.encode([index_0]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'owners' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public removeOwner = { + async sendTransactionAsync(owner: string, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('removeOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner]); + const encodedData = self + ._lookupEthersInterface('removeOwner(address)') + .functions.removeOwner.encode([owner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.removeOwner.estimateGasAsync.bind(self, owner), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(owner: string, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('removeOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList(inputAbi, [owner], BaseContract._bigNumberToString); + const encodedData = self + ._lookupEthersInterface('removeOwner(address)') + .functions.removeOwner.encode([owner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(owner: string): string { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('removeOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList(inputAbi, [owner], BaseContract._bigNumberToString); + const abiEncodedTransactionData = self + ._lookupEthersInterface('removeOwner(address)') + .functions.removeOwner.encode([owner]); + return abiEncodedTransactionData; + }, + async callAsync(owner: string, callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<void> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'removeOwner(address)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [owner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.removeOwner; + const encodedData = ethersFunction.encode([owner]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'removeOwner' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public revokeConfirmation = { + async sendTransactionAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('revokeConfirmation(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const encodedData = self + ._lookupEthersInterface('revokeConfirmation(uint256)') + .functions.revokeConfirmation.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.revokeConfirmation.estimateGasAsync.bind(self, transactionId), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('revokeConfirmation(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const encodedData = self + ._lookupEthersInterface('revokeConfirmation(uint256)') + .functions.revokeConfirmation.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(transactionId: BigNumber): string { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('revokeConfirmation(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const abiEncodedTransactionData = self + ._lookupEthersInterface('revokeConfirmation(uint256)') + .functions.revokeConfirmation.encode([transactionId]); + return abiEncodedTransactionData; + }, + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<void> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'revokeConfirmation(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.revokeConfirmation; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'revokeConfirmation' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public isOwner = { + async callAsync( + index_0: string, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<boolean> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'isOwner(address)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [index_0] = BaseContract._formatABIDataItemList( + inputAbi, + [index_0], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isOwner; + const encodedData = ethersFunction.encode([index_0]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'isOwner' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public confirmations = { + async callAsync( + index_0: BigNumber, + index_1: string, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<boolean> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'confirmations(uint256,address)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [index_0, index_1] = BaseContract._formatABIDataItemList( + inputAbi, + [index_0, index_1], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0, index_1]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.confirmations; + const encodedData = ethersFunction.encode([index_0, index_1]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'confirmations' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public getTransactionCount = { + async callAsync( + pending: boolean, + executed: boolean, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'getTransactionCount(bool,bool)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [pending, executed] = BaseContract._formatABIDataItemList( + inputAbi, + [pending, executed], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [pending, executed]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getTransactionCount; + const encodedData = ethersFunction.encode([pending, executed]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'getTransactionCount' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public addOwner = { + async sendTransactionAsync(owner: string, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('addOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner]); + const encodedData = self._lookupEthersInterface('addOwner(address)').functions.addOwner.encode([owner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.addOwner.estimateGasAsync.bind(self, owner), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(owner: string, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('addOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList(inputAbi, [owner], BaseContract._bigNumberToString); + const encodedData = self._lookupEthersInterface('addOwner(address)').functions.addOwner.encode([owner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(owner: string): string { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('addOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList(inputAbi, [owner], BaseContract._bigNumberToString); + const abiEncodedTransactionData = self + ._lookupEthersInterface('addOwner(address)') + .functions.addOwner.encode([owner]); + return abiEncodedTransactionData; + }, + async callAsync(owner: string, callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<void> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'addOwner(address)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [owner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.addOwner; + const encodedData = ethersFunction.encode([owner]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'addOwner' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public isConfirmed = { + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<boolean> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'isConfirmed(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isConfirmed; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'isConfirmed' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public getConfirmationCount = { + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'getConfirmationCount(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getConfirmationCount; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'getConfirmationCount' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public transactions = { + async callAsync( + index_0: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<[string, BigNumber, string, boolean]> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'transactions(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [index_0] = BaseContract._formatABIDataItemList( + inputAbi, + [index_0], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transactions; + const encodedData = ethersFunction.encode([index_0]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'transactions' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public getOwners = { + async callAsync(callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<string[]> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'getOwners()'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self)); + BaseContract.strictArgumentEncodingCheck(inputAbi, []); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getOwners; + const encodedData = ethersFunction.encode([]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'getOwners' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public getTransactionIds = { + async callAsync( + from: BigNumber, + to: BigNumber, + pending: boolean, + executed: boolean, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<BigNumber[]> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'getTransactionIds(uint256,uint256,bool,bool)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [from, to, pending, executed] = BaseContract._formatABIDataItemList( + inputAbi, + [from, to, pending, executed], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [from, to, pending, executed]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getTransactionIds; + const encodedData = ethersFunction.encode([from, to, pending, executed]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'getTransactionIds' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public getConfirmations = { + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<string[]> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'getConfirmations(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getConfirmations; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'getConfirmations' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public transactionCount = { + async callAsync(callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'transactionCount()'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self)); + BaseContract.strictArgumentEncodingCheck(inputAbi, []); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transactionCount; + const encodedData = ethersFunction.encode([]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'transactionCount' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public changeRequirement = { + async sendTransactionAsync(_required: BigNumber, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('changeRequirement(uint256)').inputs; + [_required] = BaseContract._formatABIDataItemList( + inputAbi, + [_required], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [_required]); + const encodedData = self + ._lookupEthersInterface('changeRequirement(uint256)') + .functions.changeRequirement.encode([_required]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.changeRequirement.estimateGasAsync.bind(self, _required), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(_required: BigNumber, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('changeRequirement(uint256)').inputs; + [_required] = BaseContract._formatABIDataItemList(inputAbi, [_required], BaseContract._bigNumberToString); + const encodedData = self + ._lookupEthersInterface('changeRequirement(uint256)') + .functions.changeRequirement.encode([_required]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(_required: BigNumber): string { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('changeRequirement(uint256)').inputs; + [_required] = BaseContract._formatABIDataItemList(inputAbi, [_required], BaseContract._bigNumberToString); + const abiEncodedTransactionData = self + ._lookupEthersInterface('changeRequirement(uint256)') + .functions.changeRequirement.encode([_required]); + return abiEncodedTransactionData; + }, + async callAsync( + _required: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<void> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'changeRequirement(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [_required] = BaseContract._formatABIDataItemList( + inputAbi, + [_required], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [_required]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.changeRequirement; + const encodedData = ethersFunction.encode([_required]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'changeRequirement' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public confirmTransaction = { + async sendTransactionAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('confirmTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const encodedData = self + ._lookupEthersInterface('confirmTransaction(uint256)') + .functions.confirmTransaction.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.confirmTransaction.estimateGasAsync.bind(self, transactionId), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('confirmTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const encodedData = self + ._lookupEthersInterface('confirmTransaction(uint256)') + .functions.confirmTransaction.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(transactionId: BigNumber): string { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('confirmTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const abiEncodedTransactionData = self + ._lookupEthersInterface('confirmTransaction(uint256)') + .functions.confirmTransaction.encode([transactionId]); + return abiEncodedTransactionData; + }, + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<void> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'confirmTransaction(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.confirmTransaction; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'confirmTransaction' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public submitTransaction = { + async sendTransactionAsync( + destination: string, + value: BigNumber, + data: string, + txData: Partial<TxData> = {}, + ): Promise<string> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('submitTransaction(address,uint256,bytes)').inputs; + [destination, value, data] = BaseContract._formatABIDataItemList( + inputAbi, + [destination, value, data], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [destination, value, data]); + const encodedData = self + ._lookupEthersInterface('submitTransaction(address,uint256,bytes)') + .functions.submitTransaction.encode([destination, value, data]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.submitTransaction.estimateGasAsync.bind(self, destination, value, data), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync( + destination: string, + value: BigNumber, + data: string, + txData: Partial<TxData> = {}, + ): Promise<number> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('submitTransaction(address,uint256,bytes)').inputs; + [destination, value, data] = BaseContract._formatABIDataItemList( + inputAbi, + [destination, value, data], + BaseContract._bigNumberToString, + ); + const encodedData = self + ._lookupEthersInterface('submitTransaction(address,uint256,bytes)') + .functions.submitTransaction.encode([destination, value, data]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(destination: string, value: BigNumber, data: string): string { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('submitTransaction(address,uint256,bytes)').inputs; + [destination, value, data] = BaseContract._formatABIDataItemList( + inputAbi, + [destination, value, data], + BaseContract._bigNumberToString, + ); + const abiEncodedTransactionData = self + ._lookupEthersInterface('submitTransaction(address,uint256,bytes)') + .functions.submitTransaction.encode([destination, value, data]); + return abiEncodedTransactionData; + }, + async callAsync( + destination: string, + value: BigNumber, + data: string, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'submitTransaction(address,uint256,bytes)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [destination, value, data] = BaseContract._formatABIDataItemList( + inputAbi, + [destination, value, data], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [destination, value, data]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.submitTransaction; + const encodedData = ethersFunction.encode([destination, value, data]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'submitTransaction' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public MAX_OWNER_COUNT = { + async callAsync(callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'MAX_OWNER_COUNT()'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self)); + BaseContract.strictArgumentEncodingCheck(inputAbi, []); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.MAX_OWNER_COUNT; + const encodedData = ethersFunction.encode([]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'MAX_OWNER_COUNT' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public required = { + async callAsync(callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'required()'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self)); + BaseContract.strictArgumentEncodingCheck(inputAbi, []); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.required; + const encodedData = ethersFunction.encode([]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'required' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public replaceOwner = { + async sendTransactionAsync(owner: string, newOwner: string, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('replaceOwner(address,address)').inputs; + [owner, newOwner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner, newOwner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner, newOwner]); + const encodedData = self + ._lookupEthersInterface('replaceOwner(address,address)') + .functions.replaceOwner.encode([owner, newOwner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.replaceOwner.estimateGasAsync.bind(self, owner, newOwner), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(owner: string, newOwner: string, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('replaceOwner(address,address)').inputs; + [owner, newOwner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner, newOwner], + BaseContract._bigNumberToString, + ); + const encodedData = self + ._lookupEthersInterface('replaceOwner(address,address)') + .functions.replaceOwner.encode([owner, newOwner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(owner: string, newOwner: string): string { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('replaceOwner(address,address)').inputs; + [owner, newOwner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner, newOwner], + BaseContract._bigNumberToString, + ); + const abiEncodedTransactionData = self + ._lookupEthersInterface('replaceOwner(address,address)') + .functions.replaceOwner.encode([owner, newOwner]); + return abiEncodedTransactionData; + }, + async callAsync( + owner: string, + newOwner: string, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<void> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'replaceOwner(address,address)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [owner, newOwner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner, newOwner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner, newOwner]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.replaceOwner; + const encodedData = ethersFunction.encode([owner, newOwner]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'replaceOwner' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public executeTransaction = { + async sendTransactionAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('executeTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const encodedData = self + ._lookupEthersInterface('executeTransaction(uint256)') + .functions.executeTransaction.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.executeTransaction.estimateGasAsync.bind(self, transactionId), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('executeTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const encodedData = self + ._lookupEthersInterface('executeTransaction(uint256)') + .functions.executeTransaction.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(transactionId: BigNumber): string { + const self = (this as any) as MultiSigWalletContract; + const inputAbi = self._lookupAbi('executeTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const abiEncodedTransactionData = self + ._lookupEthersInterface('executeTransaction(uint256)') + .functions.executeTransaction.encode([transactionId]); + return abiEncodedTransactionData; + }, + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<void> { + const self = (this as any) as MultiSigWalletContract; + const functionSignature = 'executeTransaction(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.executeTransaction; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'executeTransaction' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + provider: Provider, + txDefaults: Partial<TxData>, + _owners: string[], + _required: BigNumber, + ): Promise<MultiSigWalletContract> { + if (_.isUndefined(artifact.compilerOutput)) { + throw new Error('Compiler output not found in the artifact file'); + } + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + return MultiSigWalletContract.deployAsync(bytecode, abi, provider, txDefaults, _owners, _required); + } + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + provider: Provider, + txDefaults: Partial<TxData>, + _owners: string[], + _required: BigNumber, + ): Promise<MultiSigWalletContract> { + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [_owners, _required] = BaseContract._formatABIDataItemList( + constructorAbi.inputs, + [_owners, _required], + BaseContract._bigNumberToString, + ); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, [_owners, _required]); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { data: txData }, + txDefaults, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`MultiSigWallet successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new MultiSigWalletContract( + abi, + txReceipt.contractAddress as string, + provider, + txDefaults, + ); + contractInstance.constructorArgs = [_owners, _required]; + return contractInstance; + } + constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) { + super('MultiSigWallet', abi, address, provider, txDefaults); + classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']); + } +} // tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method diff --git a/contracts/multisig/generated-wrappers/multi_sig_wallet_with_time_lock.ts b/contracts/multisig/generated-wrappers/multi_sig_wallet_with_time_lock.ts new file mode 100644 index 000000000..1108655dd --- /dev/null +++ b/contracts/multisig/generated-wrappers/multi_sig_wallet_with_time_lock.ts @@ -0,0 +1,1649 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name +// tslint:disable:no-unused-variable +// tslint:disable:no-unbound-method +import { BaseContract } from '@0x/base-contract'; +import { + BlockParam, + BlockParamLiteral, + CallData, + ContractAbi, + ContractArtifact, + DecodedLogArgs, + MethodAbi, + Provider, + TxData, + TxDataPayable, +} from 'ethereum-types'; +import { BigNumber, classUtils, logUtils } from '@0x/utils'; +import { SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import * as ethers from 'ethers'; +import * as _ from 'lodash'; +// tslint:enable:no-unused-variable + +export type MultiSigWalletWithTimeLockEventArgs = + | MultiSigWalletWithTimeLockConfirmationTimeSetEventArgs + | MultiSigWalletWithTimeLockTimeLockChangeEventArgs + | MultiSigWalletWithTimeLockConfirmationEventArgs + | MultiSigWalletWithTimeLockRevocationEventArgs + | MultiSigWalletWithTimeLockSubmissionEventArgs + | MultiSigWalletWithTimeLockExecutionEventArgs + | MultiSigWalletWithTimeLockExecutionFailureEventArgs + | MultiSigWalletWithTimeLockDepositEventArgs + | MultiSigWalletWithTimeLockOwnerAdditionEventArgs + | MultiSigWalletWithTimeLockOwnerRemovalEventArgs + | MultiSigWalletWithTimeLockRequirementChangeEventArgs; + +export enum MultiSigWalletWithTimeLockEvents { + ConfirmationTimeSet = 'ConfirmationTimeSet', + TimeLockChange = 'TimeLockChange', + Confirmation = 'Confirmation', + Revocation = 'Revocation', + Submission = 'Submission', + Execution = 'Execution', + ExecutionFailure = 'ExecutionFailure', + Deposit = 'Deposit', + OwnerAddition = 'OwnerAddition', + OwnerRemoval = 'OwnerRemoval', + RequirementChange = 'RequirementChange', +} + +export interface MultiSigWalletWithTimeLockConfirmationTimeSetEventArgs extends DecodedLogArgs { + transactionId: BigNumber; + confirmationTime: BigNumber; +} + +export interface MultiSigWalletWithTimeLockTimeLockChangeEventArgs extends DecodedLogArgs { + secondsTimeLocked: BigNumber; +} + +export interface MultiSigWalletWithTimeLockConfirmationEventArgs extends DecodedLogArgs { + sender: string; + transactionId: BigNumber; +} + +export interface MultiSigWalletWithTimeLockRevocationEventArgs extends DecodedLogArgs { + sender: string; + transactionId: BigNumber; +} + +export interface MultiSigWalletWithTimeLockSubmissionEventArgs extends DecodedLogArgs { + transactionId: BigNumber; +} + +export interface MultiSigWalletWithTimeLockExecutionEventArgs extends DecodedLogArgs { + transactionId: BigNumber; +} + +export interface MultiSigWalletWithTimeLockExecutionFailureEventArgs extends DecodedLogArgs { + transactionId: BigNumber; +} + +export interface MultiSigWalletWithTimeLockDepositEventArgs extends DecodedLogArgs { + sender: string; + value: BigNumber; +} + +export interface MultiSigWalletWithTimeLockOwnerAdditionEventArgs extends DecodedLogArgs { + owner: string; +} + +export interface MultiSigWalletWithTimeLockOwnerRemovalEventArgs extends DecodedLogArgs { + owner: string; +} + +export interface MultiSigWalletWithTimeLockRequirementChangeEventArgs extends DecodedLogArgs { + required: BigNumber; +} + +/* istanbul ignore next */ +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class MultiSigWalletWithTimeLockContract extends BaseContract { + public owners = { + async callAsync( + index_0: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<string> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'owners(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [index_0] = BaseContract._formatABIDataItemList( + inputAbi, + [index_0], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.owners; + const encodedData = ethersFunction.encode([index_0]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'owners' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public removeOwner = { + async sendTransactionAsync(owner: string, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('removeOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner]); + const encodedData = self + ._lookupEthersInterface('removeOwner(address)') + .functions.removeOwner.encode([owner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.removeOwner.estimateGasAsync.bind(self, owner), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(owner: string, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('removeOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList(inputAbi, [owner], BaseContract._bigNumberToString); + const encodedData = self + ._lookupEthersInterface('removeOwner(address)') + .functions.removeOwner.encode([owner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(owner: string): string { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('removeOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList(inputAbi, [owner], BaseContract._bigNumberToString); + const abiEncodedTransactionData = self + ._lookupEthersInterface('removeOwner(address)') + .functions.removeOwner.encode([owner]); + return abiEncodedTransactionData; + }, + async callAsync(owner: string, callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<void> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'removeOwner(address)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [owner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.removeOwner; + const encodedData = ethersFunction.encode([owner]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'removeOwner' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public revokeConfirmation = { + async sendTransactionAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('revokeConfirmation(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const encodedData = self + ._lookupEthersInterface('revokeConfirmation(uint256)') + .functions.revokeConfirmation.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.revokeConfirmation.estimateGasAsync.bind(self, transactionId), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('revokeConfirmation(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const encodedData = self + ._lookupEthersInterface('revokeConfirmation(uint256)') + .functions.revokeConfirmation.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(transactionId: BigNumber): string { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('revokeConfirmation(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const abiEncodedTransactionData = self + ._lookupEthersInterface('revokeConfirmation(uint256)') + .functions.revokeConfirmation.encode([transactionId]); + return abiEncodedTransactionData; + }, + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<void> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'revokeConfirmation(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.revokeConfirmation; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'revokeConfirmation' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public isOwner = { + async callAsync( + index_0: string, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<boolean> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'isOwner(address)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [index_0] = BaseContract._formatABIDataItemList( + inputAbi, + [index_0], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isOwner; + const encodedData = ethersFunction.encode([index_0]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'isOwner' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public confirmations = { + async callAsync( + index_0: BigNumber, + index_1: string, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<boolean> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'confirmations(uint256,address)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [index_0, index_1] = BaseContract._formatABIDataItemList( + inputAbi, + [index_0, index_1], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0, index_1]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.confirmations; + const encodedData = ethersFunction.encode([index_0, index_1]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'confirmations' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public secondsTimeLocked = { + async callAsync(callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'secondsTimeLocked()'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self)); + BaseContract.strictArgumentEncodingCheck(inputAbi, []); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.secondsTimeLocked; + const encodedData = ethersFunction.encode([]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'secondsTimeLocked' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public getTransactionCount = { + async callAsync( + pending: boolean, + executed: boolean, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'getTransactionCount(bool,bool)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [pending, executed] = BaseContract._formatABIDataItemList( + inputAbi, + [pending, executed], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [pending, executed]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getTransactionCount; + const encodedData = ethersFunction.encode([pending, executed]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'getTransactionCount' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public addOwner = { + async sendTransactionAsync(owner: string, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('addOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner]); + const encodedData = self._lookupEthersInterface('addOwner(address)').functions.addOwner.encode([owner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.addOwner.estimateGasAsync.bind(self, owner), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(owner: string, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('addOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList(inputAbi, [owner], BaseContract._bigNumberToString); + const encodedData = self._lookupEthersInterface('addOwner(address)').functions.addOwner.encode([owner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(owner: string): string { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('addOwner(address)').inputs; + [owner] = BaseContract._formatABIDataItemList(inputAbi, [owner], BaseContract._bigNumberToString); + const abiEncodedTransactionData = self + ._lookupEthersInterface('addOwner(address)') + .functions.addOwner.encode([owner]); + return abiEncodedTransactionData; + }, + async callAsync(owner: string, callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<void> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'addOwner(address)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [owner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.addOwner; + const encodedData = ethersFunction.encode([owner]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'addOwner' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public isConfirmed = { + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<boolean> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'isConfirmed(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.isConfirmed; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'isConfirmed' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public changeTimeLock = { + async sendTransactionAsync(_secondsTimeLocked: BigNumber, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('changeTimeLock(uint256)').inputs; + [_secondsTimeLocked] = BaseContract._formatABIDataItemList( + inputAbi, + [_secondsTimeLocked], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [_secondsTimeLocked]); + const encodedData = self + ._lookupEthersInterface('changeTimeLock(uint256)') + .functions.changeTimeLock.encode([_secondsTimeLocked]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.changeTimeLock.estimateGasAsync.bind(self, _secondsTimeLocked), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(_secondsTimeLocked: BigNumber, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('changeTimeLock(uint256)').inputs; + [_secondsTimeLocked] = BaseContract._formatABIDataItemList( + inputAbi, + [_secondsTimeLocked], + BaseContract._bigNumberToString, + ); + const encodedData = self + ._lookupEthersInterface('changeTimeLock(uint256)') + .functions.changeTimeLock.encode([_secondsTimeLocked]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(_secondsTimeLocked: BigNumber): string { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('changeTimeLock(uint256)').inputs; + [_secondsTimeLocked] = BaseContract._formatABIDataItemList( + inputAbi, + [_secondsTimeLocked], + BaseContract._bigNumberToString, + ); + const abiEncodedTransactionData = self + ._lookupEthersInterface('changeTimeLock(uint256)') + .functions.changeTimeLock.encode([_secondsTimeLocked]); + return abiEncodedTransactionData; + }, + async callAsync( + _secondsTimeLocked: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<void> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'changeTimeLock(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [_secondsTimeLocked] = BaseContract._formatABIDataItemList( + inputAbi, + [_secondsTimeLocked], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [_secondsTimeLocked]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.changeTimeLock; + const encodedData = ethersFunction.encode([_secondsTimeLocked]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'changeTimeLock' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public getConfirmationCount = { + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'getConfirmationCount(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getConfirmationCount; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'getConfirmationCount' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public transactions = { + async callAsync( + index_0: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<[string, BigNumber, string, boolean]> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'transactions(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [index_0] = BaseContract._formatABIDataItemList( + inputAbi, + [index_0], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transactions; + const encodedData = ethersFunction.encode([index_0]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'transactions' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public getOwners = { + async callAsync(callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<string[]> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'getOwners()'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self)); + BaseContract.strictArgumentEncodingCheck(inputAbi, []); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getOwners; + const encodedData = ethersFunction.encode([]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'getOwners' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public getTransactionIds = { + async callAsync( + from: BigNumber, + to: BigNumber, + pending: boolean, + executed: boolean, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<BigNumber[]> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'getTransactionIds(uint256,uint256,bool,bool)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [from, to, pending, executed] = BaseContract._formatABIDataItemList( + inputAbi, + [from, to, pending, executed], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [from, to, pending, executed]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getTransactionIds; + const encodedData = ethersFunction.encode([from, to, pending, executed]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'getTransactionIds' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public getConfirmations = { + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<string[]> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'getConfirmations(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.getConfirmations; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'getConfirmations' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public transactionCount = { + async callAsync(callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'transactionCount()'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self)); + BaseContract.strictArgumentEncodingCheck(inputAbi, []); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.transactionCount; + const encodedData = ethersFunction.encode([]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'transactionCount' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public changeRequirement = { + async sendTransactionAsync(_required: BigNumber, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('changeRequirement(uint256)').inputs; + [_required] = BaseContract._formatABIDataItemList( + inputAbi, + [_required], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [_required]); + const encodedData = self + ._lookupEthersInterface('changeRequirement(uint256)') + .functions.changeRequirement.encode([_required]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.changeRequirement.estimateGasAsync.bind(self, _required), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(_required: BigNumber, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('changeRequirement(uint256)').inputs; + [_required] = BaseContract._formatABIDataItemList(inputAbi, [_required], BaseContract._bigNumberToString); + const encodedData = self + ._lookupEthersInterface('changeRequirement(uint256)') + .functions.changeRequirement.encode([_required]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(_required: BigNumber): string { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('changeRequirement(uint256)').inputs; + [_required] = BaseContract._formatABIDataItemList(inputAbi, [_required], BaseContract._bigNumberToString); + const abiEncodedTransactionData = self + ._lookupEthersInterface('changeRequirement(uint256)') + .functions.changeRequirement.encode([_required]); + return abiEncodedTransactionData; + }, + async callAsync( + _required: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<void> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'changeRequirement(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [_required] = BaseContract._formatABIDataItemList( + inputAbi, + [_required], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [_required]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.changeRequirement; + const encodedData = ethersFunction.encode([_required]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'changeRequirement' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public confirmTransaction = { + async sendTransactionAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('confirmTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const encodedData = self + ._lookupEthersInterface('confirmTransaction(uint256)') + .functions.confirmTransaction.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.confirmTransaction.estimateGasAsync.bind(self, transactionId), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('confirmTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const encodedData = self + ._lookupEthersInterface('confirmTransaction(uint256)') + .functions.confirmTransaction.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(transactionId: BigNumber): string { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('confirmTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const abiEncodedTransactionData = self + ._lookupEthersInterface('confirmTransaction(uint256)') + .functions.confirmTransaction.encode([transactionId]); + return abiEncodedTransactionData; + }, + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<void> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'confirmTransaction(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.confirmTransaction; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'confirmTransaction' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public submitTransaction = { + async sendTransactionAsync( + destination: string, + value: BigNumber, + data: string, + txData: Partial<TxData> = {}, + ): Promise<string> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('submitTransaction(address,uint256,bytes)').inputs; + [destination, value, data] = BaseContract._formatABIDataItemList( + inputAbi, + [destination, value, data], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [destination, value, data]); + const encodedData = self + ._lookupEthersInterface('submitTransaction(address,uint256,bytes)') + .functions.submitTransaction.encode([destination, value, data]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.submitTransaction.estimateGasAsync.bind(self, destination, value, data), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync( + destination: string, + value: BigNumber, + data: string, + txData: Partial<TxData> = {}, + ): Promise<number> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('submitTransaction(address,uint256,bytes)').inputs; + [destination, value, data] = BaseContract._formatABIDataItemList( + inputAbi, + [destination, value, data], + BaseContract._bigNumberToString, + ); + const encodedData = self + ._lookupEthersInterface('submitTransaction(address,uint256,bytes)') + .functions.submitTransaction.encode([destination, value, data]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(destination: string, value: BigNumber, data: string): string { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('submitTransaction(address,uint256,bytes)').inputs; + [destination, value, data] = BaseContract._formatABIDataItemList( + inputAbi, + [destination, value, data], + BaseContract._bigNumberToString, + ); + const abiEncodedTransactionData = self + ._lookupEthersInterface('submitTransaction(address,uint256,bytes)') + .functions.submitTransaction.encode([destination, value, data]); + return abiEncodedTransactionData; + }, + async callAsync( + destination: string, + value: BigNumber, + data: string, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'submitTransaction(address,uint256,bytes)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [destination, value, data] = BaseContract._formatABIDataItemList( + inputAbi, + [destination, value, data], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [destination, value, data]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.submitTransaction; + const encodedData = ethersFunction.encode([destination, value, data]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'submitTransaction' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public confirmationTimes = { + async callAsync( + index_0: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'confirmationTimes(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [index_0] = BaseContract._formatABIDataItemList( + inputAbi, + [index_0], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [index_0]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.confirmationTimes; + const encodedData = ethersFunction.encode([index_0]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'confirmationTimes' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public MAX_OWNER_COUNT = { + async callAsync(callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'MAX_OWNER_COUNT()'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self)); + BaseContract.strictArgumentEncodingCheck(inputAbi, []); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.MAX_OWNER_COUNT; + const encodedData = ethersFunction.encode([]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'MAX_OWNER_COUNT' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public required = { + async callAsync(callData: Partial<CallData> = {}, defaultBlock?: BlockParam): Promise<BigNumber> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'required()'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [] = BaseContract._formatABIDataItemList(inputAbi, [], BaseContract._bigNumberToString.bind(self)); + BaseContract.strictArgumentEncodingCheck(inputAbi, []); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.required; + const encodedData = ethersFunction.encode([]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'required' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray[0]; + }, + }; + public replaceOwner = { + async sendTransactionAsync(owner: string, newOwner: string, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('replaceOwner(address,address)').inputs; + [owner, newOwner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner, newOwner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner, newOwner]); + const encodedData = self + ._lookupEthersInterface('replaceOwner(address,address)') + .functions.replaceOwner.encode([owner, newOwner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.replaceOwner.estimateGasAsync.bind(self, owner, newOwner), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(owner: string, newOwner: string, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('replaceOwner(address,address)').inputs; + [owner, newOwner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner, newOwner], + BaseContract._bigNumberToString, + ); + const encodedData = self + ._lookupEthersInterface('replaceOwner(address,address)') + .functions.replaceOwner.encode([owner, newOwner]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(owner: string, newOwner: string): string { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('replaceOwner(address,address)').inputs; + [owner, newOwner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner, newOwner], + BaseContract._bigNumberToString, + ); + const abiEncodedTransactionData = self + ._lookupEthersInterface('replaceOwner(address,address)') + .functions.replaceOwner.encode([owner, newOwner]); + return abiEncodedTransactionData; + }, + async callAsync( + owner: string, + newOwner: string, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<void> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'replaceOwner(address,address)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [owner, newOwner] = BaseContract._formatABIDataItemList( + inputAbi, + [owner, newOwner], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [owner, newOwner]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.replaceOwner; + const encodedData = ethersFunction.encode([owner, newOwner]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'replaceOwner' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public executeTransaction = { + async sendTransactionAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<string> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('executeTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const encodedData = self + ._lookupEthersInterface('executeTransaction(uint256)') + .functions.executeTransaction.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.executeTransaction.estimateGasAsync.bind(self, transactionId), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync(transactionId: BigNumber, txData: Partial<TxData> = {}): Promise<number> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('executeTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const encodedData = self + ._lookupEthersInterface('executeTransaction(uint256)') + .functions.executeTransaction.encode([transactionId]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData(transactionId: BigNumber): string { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const inputAbi = self._lookupAbi('executeTransaction(uint256)').inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString, + ); + const abiEncodedTransactionData = self + ._lookupEthersInterface('executeTransaction(uint256)') + .functions.executeTransaction.encode([transactionId]); + return abiEncodedTransactionData; + }, + async callAsync( + transactionId: BigNumber, + callData: Partial<CallData> = {}, + defaultBlock?: BlockParam, + ): Promise<void> { + const self = (this as any) as MultiSigWalletWithTimeLockContract; + const functionSignature = 'executeTransaction(uint256)'; + const inputAbi = self._lookupAbi(functionSignature).inputs; + [transactionId] = BaseContract._formatABIDataItemList( + inputAbi, + [transactionId], + BaseContract._bigNumberToString.bind(self), + ); + BaseContract.strictArgumentEncodingCheck(inputAbi, [transactionId]); + const ethersFunction = self._lookupEthersInterface(functionSignature).functions.executeTransaction; + const encodedData = ethersFunction.encode([transactionId]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + let resultArray = ethersFunction.decode(rawCallResult); + const outputAbi = (_.find(self.abi, { name: 'executeTransaction' }) as MethodAbi).outputs; + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._lowercaseAddress.bind(this), + ); + resultArray = BaseContract._formatABIDataItemList( + outputAbi, + resultArray, + BaseContract._bnToBigNumber.bind(this), + ); + return resultArray; + }, + }; + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + provider: Provider, + txDefaults: Partial<TxData>, + _owners: string[], + _required: BigNumber, + _secondsTimeLocked: BigNumber, + ): Promise<MultiSigWalletWithTimeLockContract> { + if (_.isUndefined(artifact.compilerOutput)) { + throw new Error('Compiler output not found in the artifact file'); + } + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + return MultiSigWalletWithTimeLockContract.deployAsync( + bytecode, + abi, + provider, + txDefaults, + _owners, + _required, + _secondsTimeLocked, + ); + } + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + provider: Provider, + txDefaults: Partial<TxData>, + _owners: string[], + _required: BigNumber, + _secondsTimeLocked: BigNumber, + ): Promise<MultiSigWalletWithTimeLockContract> { + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [_owners, _required, _secondsTimeLocked] = BaseContract._formatABIDataItemList( + constructorAbi.inputs, + [_owners, _required, _secondsTimeLocked], + BaseContract._bigNumberToString, + ); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, [_owners, _required, _secondsTimeLocked]); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { data: txData }, + txDefaults, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`MultiSigWalletWithTimeLock successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new MultiSigWalletWithTimeLockContract( + abi, + txReceipt.contractAddress as string, + provider, + txDefaults, + ); + contractInstance.constructorArgs = [_owners, _required, _secondsTimeLocked]; + return contractInstance; + } + constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) { + super('MultiSigWalletWithTimeLock', abi, address, provider, txDefaults); + classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']); + } +} // tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method diff --git a/contracts/multisig/generated-wrappers/test_reject_ether.ts b/contracts/multisig/generated-wrappers/test_reject_ether.ts new file mode 100644 index 000000000..0dd46d3de --- /dev/null +++ b/contracts/multisig/generated-wrappers/test_reject_ether.ts @@ -0,0 +1,75 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name +// tslint:disable:no-unused-variable +// tslint:disable:no-unbound-method +import { BaseContract } from '@0x/base-contract'; +import { + BlockParam, + BlockParamLiteral, + CallData, + ContractAbi, + ContractArtifact, + DecodedLogArgs, + MethodAbi, + Provider, + TxData, + TxDataPayable, +} from 'ethereum-types'; +import { BigNumber, classUtils, logUtils } from '@0x/utils'; +import { SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import * as ethers from 'ethers'; +import * as _ from 'lodash'; +// tslint:enable:no-unused-variable + +/* istanbul ignore next */ +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class TestRejectEtherContract extends BaseContract { + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + provider: Provider, + txDefaults: Partial<TxData>, + ): Promise<TestRejectEtherContract> { + if (_.isUndefined(artifact.compilerOutput)) { + throw new Error('Compiler output not found in the artifact file'); + } + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + return TestRejectEtherContract.deployAsync(bytecode, abi, provider, txDefaults); + } + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + provider: Provider, + txDefaults: Partial<TxData>, + ): Promise<TestRejectEtherContract> { + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, []); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { data: txData }, + txDefaults, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`TestRejectEther successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new TestRejectEtherContract( + abi, + txReceipt.contractAddress as string, + provider, + txDefaults, + ); + contractInstance.constructorArgs = []; + return contractInstance; + } + constructor(abi: ContractAbi, address: string, provider: Provider, txDefaults?: Partial<TxData>) { + super('TestRejectEther', abi, address, provider, txDefaults); + classUtils.bindAll(this, ['_ethersInterfacesByFunctionSignature', 'address', 'abi', '_web3Wrapper']); + } +} // tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method |