// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma enum-naming // tslint:disable:whitespace no-unbound-method no-trailing-whitespace // tslint:disable:no-unused-variable import { AwaitTransactionSuccessOpts, ContractFunctionObj, ContractTxFunctionObj, SendTransactionOpts, BaseContract, SubscriptionManager,PromiseWithTransactionHash, methodAbiToFunctionSignature, linkLibrariesInBytecode, } from '@0x/base-contract'; import { schemas } from '@0x/json-schemas'; import { BlockParam, BlockParamLiteral, BlockRange, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, LogWithDecodedArgs, MethodAbi, TransactionReceiptWithDecodedLogs, TxData, TxDataPayable, SupportedProvider, } from 'ethereum-types'; import { BigNumber, classUtils, hexUtils, logUtils, providerUtils } from '@0x/utils'; import { EventCallback, IndexedFilterValues, SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { assert } from '@0x/assert'; import * as ethers from 'ethers'; // tslint:enable:no-unused-variable export type VaultEventArgs = | VaultTransferEventArgs | VaultApprovalEventArgs | VaultStrategyAddedEventArgs | VaultStrategyReportedEventArgs | VaultUpdateGovernanceEventArgs | VaultUpdateManagementEventArgs | VaultUpdateGuestListEventArgs | VaultUpdateRewardsEventArgs | VaultUpdateDepositLimitEventArgs | VaultUpdatePerformanceFeeEventArgs | VaultUpdateManagementFeeEventArgs | VaultUpdateGuardianEventArgs | VaultEmergencyShutdownEventArgs | VaultUpdateWithdrawalQueueEventArgs | VaultStrategyUpdateDebtLimitEventArgs | VaultStrategyUpdateRateLimitEventArgs | VaultStrategyUpdatePerformanceFeeEventArgs | VaultStrategyMigratedEventArgs | VaultStrategyRevokedEventArgs | VaultStrategyRemovedFromQueueEventArgs | VaultStrategyAddedToQueueEventArgs; export enum VaultEvents { Transfer = 'Transfer', Approval = 'Approval', StrategyAdded = 'StrategyAdded', StrategyReported = 'StrategyReported', UpdateGovernance = 'UpdateGovernance', UpdateManagement = 'UpdateManagement', UpdateGuestList = 'UpdateGuestList', UpdateRewards = 'UpdateRewards', UpdateDepositLimit = 'UpdateDepositLimit', UpdatePerformanceFee = 'UpdatePerformanceFee', UpdateManagementFee = 'UpdateManagementFee', UpdateGuardian = 'UpdateGuardian', EmergencyShutdown = 'EmergencyShutdown', UpdateWithdrawalQueue = 'UpdateWithdrawalQueue', StrategyUpdateDebtLimit = 'StrategyUpdateDebtLimit', StrategyUpdateRateLimit = 'StrategyUpdateRateLimit', StrategyUpdatePerformanceFee = 'StrategyUpdatePerformanceFee', StrategyMigrated = 'StrategyMigrated', StrategyRevoked = 'StrategyRevoked', StrategyRemovedFromQueue = 'StrategyRemovedFromQueue', StrategyAddedToQueue = 'StrategyAddedToQueue', } export interface VaultTransferEventArgs extends DecodedLogArgs { sender: string; receiver: string; value: BigNumber; } export interface VaultApprovalEventArgs extends DecodedLogArgs { owner: string; spender: string; value: BigNumber; } export interface VaultStrategyAddedEventArgs extends DecodedLogArgs { strategy: string; debtLimit: BigNumber; rateLimit: BigNumber; performanceFee: BigNumber; } export interface VaultStrategyReportedEventArgs extends DecodedLogArgs { strategy: string; gain: BigNumber; loss: BigNumber; totalGain: BigNumber; totalLoss: BigNumber; totalDebt: BigNumber; debtAdded: BigNumber; debtLimit: BigNumber; } export interface VaultUpdateGovernanceEventArgs extends DecodedLogArgs { governance: string; } export interface VaultUpdateManagementEventArgs extends DecodedLogArgs { management: string; } export interface VaultUpdateGuestListEventArgs extends DecodedLogArgs { guestList: string; } export interface VaultUpdateRewardsEventArgs extends DecodedLogArgs { rewards: string; } export interface VaultUpdateDepositLimitEventArgs extends DecodedLogArgs { depositLimit: BigNumber; } export interface VaultUpdatePerformanceFeeEventArgs extends DecodedLogArgs { performanceFee: BigNumber; } export interface VaultUpdateManagementFeeEventArgs extends DecodedLogArgs { managementFee: BigNumber; } export interface VaultUpdateGuardianEventArgs extends DecodedLogArgs { guardian: string; } export interface VaultEmergencyShutdownEventArgs extends DecodedLogArgs { active: boolean; } export interface VaultUpdateWithdrawalQueueEventArgs extends DecodedLogArgs { queue: string[]; } export interface VaultStrategyUpdateDebtLimitEventArgs extends DecodedLogArgs { strategy: string; debtLimit: BigNumber; } export interface VaultStrategyUpdateRateLimitEventArgs extends DecodedLogArgs { strategy: string; rateLimit: BigNumber; } export interface VaultStrategyUpdatePerformanceFeeEventArgs extends DecodedLogArgs { strategy: string; performanceFee: BigNumber; } export interface VaultStrategyMigratedEventArgs extends DecodedLogArgs { oldVersion: string; newVersion: string; } export interface VaultStrategyRevokedEventArgs extends DecodedLogArgs { strategy: string; } export interface VaultStrategyRemovedFromQueueEventArgs extends DecodedLogArgs { strategy: string; } export interface VaultStrategyAddedToQueueEventArgs extends DecodedLogArgs { strategy: string; } /* istanbul ignore next */ // tslint:disable:array-type // tslint:disable:no-parameter-reassignment // tslint:disable-next-line:class-name export class VaultContract extends BaseContract { /** * @ignore */ public static deployedBytecode: string | undefined; public static contractName = 'Vault'; private readonly _methodABIIndex: { [name: string]: number } = {}; private readonly _subscriptionManager: SubscriptionManager; public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, logDecodeDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, schemas.numberSchema, schemas.jsNumber, ]); if (artifact.compilerOutput === undefined) { throw new Error('Compiler output not found in the artifact file'); } const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; const logDecodeDependenciesAbiOnly: { [contractName: string]: ContractAbi } = {}; if (Object.keys(logDecodeDependencies) !== undefined) { for (const key of Object.keys(logDecodeDependencies)) { logDecodeDependenciesAbiOnly[key] = logDecodeDependencies[key].compilerOutput.abi; } } return VaultContract.deployAsync(bytecode, abi, provider, txDefaults, logDecodeDependenciesAbiOnly, ); } public static async deployWithLibrariesFrom0xArtifactAsync( artifact: ContractArtifact, libraryArtifacts: { [libraryName: string]: ContractArtifact }, supportedProvider: SupportedProvider, txDefaults: Partial, logDecodeDependencies: { [contractName: string]: (ContractArtifact | SimpleContractArtifact) }, ): Promise { assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, schemas.numberSchema, schemas.jsNumber, ]); if (artifact.compilerOutput === undefined) { throw new Error('Compiler output not found in the artifact file'); } const provider = providerUtils.standardizeOrThrow(supportedProvider); const abi = artifact.compilerOutput.abi; const logDecodeDependenciesAbiOnly: { [contractName: string]: ContractAbi } = {}; if (Object.keys(logDecodeDependencies) !== undefined) { for (const key of Object.keys(logDecodeDependencies)) { logDecodeDependenciesAbiOnly[key] = logDecodeDependencies[key].compilerOutput.abi; } } const libraryAddresses = await VaultContract._deployLibrariesAsync( artifact, libraryArtifacts, new Web3Wrapper(provider), txDefaults ); const bytecode = linkLibrariesInBytecode( artifact, libraryAddresses, ); return VaultContract.deployAsync(bytecode, abi, provider, txDefaults, logDecodeDependenciesAbiOnly, ); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, logDecodeDependencies: { [contractName: string]: ContractAbi }, ): Promise { assert.isHexString('bytecode', bytecode); assert.doesConformToSchema('txDefaults', txDefaults, schemas.txDataSchema, [ schemas.addressSchema, schemas.numberSchema, schemas.jsNumber, ]); const provider = providerUtils.standardizeOrThrow(supportedProvider); 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._applyDefaultsToContractTxDataAsync( { 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(`Vault successfully deployed at ${txReceipt.contractAddress}`); const contractInstance = new VaultContract(txReceipt.contractAddress as string, provider, txDefaults, logDecodeDependencies); contractInstance.constructorArgs = []; return contractInstance; } /** * @returns The contract ABI */ public static ABI(): ContractAbi { const abi = [ { anonymous: false, inputs: [ { name: 'sender', type: 'address', indexed: true, }, { name: 'receiver', type: 'address', indexed: true, }, { name: 'value', type: 'uint256', indexed: false, }, ], name: 'Transfer', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'owner', type: 'address', indexed: true, }, { name: 'spender', type: 'address', indexed: true, }, { name: 'value', type: 'uint256', indexed: false, }, ], name: 'Approval', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'strategy', type: 'address', indexed: true, }, { name: 'debtLimit', type: 'uint256', indexed: false, }, { name: 'rateLimit', type: 'uint256', indexed: false, }, { name: 'performanceFee', type: 'uint256', indexed: false, }, ], name: 'StrategyAdded', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'strategy', type: 'address', indexed: true, }, { name: 'gain', type: 'uint256', indexed: false, }, { name: 'loss', type: 'uint256', indexed: false, }, { name: 'totalGain', type: 'uint256', indexed: false, }, { name: 'totalLoss', type: 'uint256', indexed: false, }, { name: 'totalDebt', type: 'uint256', indexed: false, }, { name: 'debtAdded', type: 'uint256', indexed: false, }, { name: 'debtLimit', type: 'uint256', indexed: false, }, ], name: 'StrategyReported', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'governance', type: 'address', indexed: false, }, ], name: 'UpdateGovernance', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'management', type: 'address', indexed: false, }, ], name: 'UpdateManagement', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'guestList', type: 'address', indexed: false, }, ], name: 'UpdateGuestList', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'rewards', type: 'address', indexed: false, }, ], name: 'UpdateRewards', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'depositLimit', type: 'uint256', indexed: false, }, ], name: 'UpdateDepositLimit', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'performanceFee', type: 'uint256', indexed: false, }, ], name: 'UpdatePerformanceFee', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'managementFee', type: 'uint256', indexed: false, }, ], name: 'UpdateManagementFee', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'guardian', type: 'address', indexed: false, }, ], name: 'UpdateGuardian', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'active', type: 'bool', indexed: false, }, ], name: 'EmergencyShutdown', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'queue', type: 'address[20]', indexed: false, }, ], name: 'UpdateWithdrawalQueue', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'strategy', type: 'address', indexed: true, }, { name: 'debtLimit', type: 'uint256', indexed: false, }, ], name: 'StrategyUpdateDebtLimit', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'strategy', type: 'address', indexed: true, }, { name: 'rateLimit', type: 'uint256', indexed: false, }, ], name: 'StrategyUpdateRateLimit', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'strategy', type: 'address', indexed: true, }, { name: 'performanceFee', type: 'uint256', indexed: false, }, ], name: 'StrategyUpdatePerformanceFee', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'oldVersion', type: 'address', indexed: true, }, { name: 'newVersion', type: 'address', indexed: true, }, ], name: 'StrategyMigrated', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'strategy', type: 'address', indexed: true, }, ], name: 'StrategyRevoked', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'strategy', type: 'address', indexed: true, }, ], name: 'StrategyRemovedFromQueue', outputs: [ ], type: 'event', }, { anonymous: false, inputs: [ { name: 'strategy', type: 'address', indexed: true, }, ], name: 'StrategyAddedToQueue', outputs: [ ], type: 'event', }, { inputs: [ { name: 'token', type: 'address', }, { name: 'governance', type: 'address', }, { name: 'rewards', type: 'address', }, { name: 'nameOverride', type: 'string', }, { name: 'symbolOverride', type: 'string', }, ], name: 'initialize', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'token', type: 'address', }, { name: 'governance', type: 'address', }, { name: 'rewards', type: 'address', }, { name: 'nameOverride', type: 'string', }, { name: 'symbolOverride', type: 'string', }, { name: 'guardian', type: 'address', }, ], name: 'initialize', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ ], name: 'apiVersion', outputs: [ { name: '', type: 'string', }, ], stateMutability: 'pure', type: 'function', }, { inputs: [ { name: 'name', type: 'string', }, ], name: 'setName', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'symbol', type: 'string', }, ], name: 'setSymbol', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'governance', type: 'address', }, ], name: 'setGovernance', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ ], name: 'acceptGovernance', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'management', type: 'address', }, ], name: 'setManagement', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'guestList', type: 'address', }, ], name: 'setGuestList', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'rewards', type: 'address', }, ], name: 'setRewards', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'limit', type: 'uint256', }, ], name: 'setDepositLimit', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'fee', type: 'uint256', }, ], name: 'setPerformanceFee', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'fee', type: 'uint256', }, ], name: 'setManagementFee', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'guardian', type: 'address', }, ], name: 'setGuardian', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'active', type: 'bool', }, ], name: 'setEmergencyShutdown', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'queue', type: 'address[20]', }, ], name: 'setWithdrawalQueue', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'receiver', type: 'address', }, { name: 'amount', type: 'uint256', }, ], name: 'transfer', outputs: [ { name: '', type: 'bool', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'sender', type: 'address', }, { name: 'receiver', type: 'address', }, { name: 'amount', type: 'uint256', }, ], name: 'transferFrom', outputs: [ { name: '', type: 'bool', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'spender', type: 'address', }, { name: 'amount', type: 'uint256', }, ], name: 'approve', outputs: [ { name: '', type: 'bool', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'spender', type: 'address', }, { name: 'amount', type: 'uint256', }, ], name: 'increaseAllowance', outputs: [ { name: '', type: 'bool', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'spender', type: 'address', }, { name: 'amount', type: 'uint256', }, ], name: 'decreaseAllowance', outputs: [ { name: '', type: 'bool', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'owner', type: 'address', }, { name: 'spender', type: 'address', }, { name: 'amount', type: 'uint256', }, { name: 'expiry', type: 'uint256', }, { name: 'signature', type: 'bytes', }, ], name: 'permit', outputs: [ { name: '', type: 'bool', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ ], name: 'totalAssets', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'strategy', type: 'address', }, ], name: 'balanceSheetOfStrategy', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'strategies', type: 'address[40]', }, ], name: 'totalBalanceSheet', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'deposit', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: '_amount', type: 'uint256', }, ], name: 'deposit', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: '_amount', type: 'uint256', }, { name: 'recipient', type: 'address', }, ], name: 'deposit', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ ], name: 'maxAvailableShares', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'withdraw', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: '_shares', type: 'uint256', }, ], name: 'withdraw', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: '_shares', type: 'uint256', }, { name: 'recipient', type: 'address', }, ], name: 'withdraw', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ ], name: 'pricePerShare', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'strategy', type: 'address', }, { name: 'debtLimit', type: 'uint256', }, { name: 'rateLimit', type: 'uint256', }, { name: 'performanceFee', type: 'uint256', }, ], name: 'addStrategy', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'strategy', type: 'address', }, { name: 'debtLimit', type: 'uint256', }, ], name: 'updateStrategyDebtLimit', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'strategy', type: 'address', }, { name: 'rateLimit', type: 'uint256', }, ], name: 'updateStrategyRateLimit', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'strategy', type: 'address', }, { name: 'performanceFee', type: 'uint256', }, ], name: 'updateStrategyPerformanceFee', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'oldVersion', type: 'address', }, { name: 'newVersion', type: 'address', }, ], name: 'migrateStrategy', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ ], name: 'revokeStrategy', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'strategy', type: 'address', }, ], name: 'revokeStrategy', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'strategy', type: 'address', }, ], name: 'addStrategyToQueue', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'strategy', type: 'address', }, ], name: 'removeStrategyFromQueue', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ ], name: 'debtOutstanding', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'strategy', type: 'address', }, ], name: 'debtOutstanding', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'creditAvailable', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'strategy', type: 'address', }, ], name: 'creditAvailable', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'availableDepositLimit', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'expectedReturn', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'strategy', type: 'address', }, ], name: 'expectedReturn', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'gain', type: 'uint256', }, { name: 'loss', type: 'uint256', }, { name: '_debtPayment', type: 'uint256', }, ], name: 'report', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'token', type: 'address', }, ], name: 'sweep', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ { name: 'token', type: 'address', }, { name: 'amount', type: 'uint256', }, ], name: 'sweep', outputs: [ ], stateMutability: 'nonpayable', type: 'function', }, { inputs: [ ], name: 'name', outputs: [ { name: '', type: 'string', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'symbol', outputs: [ { name: '', type: 'string', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'decimals', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'arg0', type: 'address', }, ], name: 'balanceOf', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'arg0', type: 'address', }, { name: 'arg1', type: 'address', }, ], name: 'allowance', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'totalSupply', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'token', outputs: [ { name: '', type: 'address', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'governance', outputs: [ { name: '', type: 'address', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'management', outputs: [ { name: '', type: 'address', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'guardian', outputs: [ { name: '', type: 'address', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'guestList', outputs: [ { name: '', type: 'address', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'arg0', type: 'address', }, ], name: 'strategies', outputs: [ { name: 'performanceFee', type: 'uint256', }, { name: 'activation', type: 'uint256', }, { name: 'debtLimit', type: 'uint256', }, { name: 'rateLimit', type: 'uint256', }, { name: 'lastReport', type: 'uint256', }, { name: 'totalDebt', type: 'uint256', }, { name: 'totalGain', type: 'uint256', }, { name: 'totalLoss', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'arg0', type: 'uint256', }, ], name: 'withdrawalQueue', outputs: [ { name: '', type: 'address', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'emergencyShutdown', outputs: [ { name: '', type: 'bool', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'depositLimit', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'debtLimit', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'totalDebt', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'lastReport', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'activation', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'rewards', outputs: [ { name: '', type: 'address', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'managementFee', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'performanceFee', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ { name: 'arg0', type: 'address', }, ], name: 'nonces', outputs: [ { name: '', type: 'uint256', }, ], stateMutability: 'view', type: 'function', }, { inputs: [ ], name: 'DOMAIN_SEPARATOR', outputs: [ { name: '', type: 'bytes32', }, ], stateMutability: 'view', type: 'function', }, ] as ContractAbi; return abi; } protected static async _deployLibrariesAsync( artifact: ContractArtifact, libraryArtifacts: { [libraryName: string]: ContractArtifact }, web3Wrapper: Web3Wrapper, txDefaults: Partial, libraryAddresses: { [libraryName: string]: string } = {}, ): Promise<{ [libraryName: string]: string }> { const links = artifact.compilerOutput.evm.bytecode.linkReferences; // Go through all linked libraries, recursively deploying them if necessary. for (const link of Object.values(links)) { for (const libraryName of Object.keys(link)) { if (!libraryAddresses[libraryName]) { // Library not yet deployed. const libraryArtifact = libraryArtifacts[libraryName]; if (!libraryArtifact) { throw new Error(`Missing artifact for linked library "${libraryName}"`); } // Deploy any dependent libraries used by this library. await VaultContract._deployLibrariesAsync( libraryArtifact, libraryArtifacts, web3Wrapper, txDefaults, libraryAddresses, ); // Deploy this library. const linkedLibraryBytecode = linkLibrariesInBytecode( libraryArtifact, libraryAddresses, ); const txDataWithDefaults = await BaseContract._applyDefaultsToContractTxDataAsync( { data: linkedLibraryBytecode, ...txDefaults, }, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); logUtils.log(`transactionHash: ${txHash}`); const { contractAddress } = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`${libraryArtifact.contractName} successfully deployed at ${contractAddress}`); libraryAddresses[libraryArtifact.contractName] = contractAddress as string; } } } return libraryAddresses; } public getFunctionSignature(methodName: string): string { const index = this._methodABIIndex[methodName]; const methodAbi = VaultContract.ABI()[index] as MethodAbi; // tslint:disable-line:no-unnecessary-type-assertion const functionSignature = methodAbiToFunctionSignature(methodAbi); return functionSignature; } public getABIDecodedTransactionData(methodName: string, callData: string): T { const functionSignature = this.getFunctionSignature(methodName); const self = (this as any) as VaultContract; const abiEncoder = self._lookupAbiEncoder(functionSignature); const abiDecodedCallData = abiEncoder.strictDecode(callData); return abiDecodedCallData; } public getABIDecodedReturnData(methodName: string, callData: string): T { const functionSignature = this.getFunctionSignature(methodName); const self = (this as any) as VaultContract; const abiEncoder = self._lookupAbiEncoder(functionSignature); const abiDecodedCallData = abiEncoder.strictDecodeReturnValue(callData); return abiDecodedCallData; } public getSelector(methodName: string): string { const functionSignature = this.getFunctionSignature(methodName); const self = (this as any) as VaultContract; const abiEncoder = self._lookupAbiEncoder(functionSignature); return abiEncoder.getSelector(); } public initialize1( token: string, governance: string, rewards: string, nameOverride: string, symbolOverride: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('token', token); assert.isString('governance', governance); assert.isString('rewards', rewards); assert.isString('nameOverride', nameOverride); assert.isString('symbolOverride', symbolOverride); const functionSignature = 'initialize(address,address,address,string,string)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [token.toLowerCase(), governance.toLowerCase(), rewards.toLowerCase(), nameOverride, symbolOverride ]); }, } }; public initialize2( token: string, governance: string, rewards: string, nameOverride: string, symbolOverride: string, guardian: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('token', token); assert.isString('governance', governance); assert.isString('rewards', rewards); assert.isString('nameOverride', nameOverride); assert.isString('symbolOverride', symbolOverride); assert.isString('guardian', guardian); const functionSignature = 'initialize(address,address,address,string,string,address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [token.toLowerCase(), governance.toLowerCase(), rewards.toLowerCase(), nameOverride, symbolOverride, guardian.toLowerCase() ]); }, } }; public apiVersion( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'apiVersion()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); let rawCallResult; if (self._deployedBytecodeIfExists) { rawCallResult = await self._evmExecAsync(this.getABIEncodedTransactionData()); } else { rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); } const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public setName( name: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('name', name); const functionSignature = 'setName(string)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [name ]); }, } }; public setSymbol( symbol: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('symbol', symbol); const functionSignature = 'setSymbol(string)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [symbol ]); }, } }; public setGovernance( governance: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('governance', governance); const functionSignature = 'setGovernance(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [governance.toLowerCase() ]); }, } }; public acceptGovernance( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'acceptGovernance()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public setManagement( management: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('management', management); const functionSignature = 'setManagement(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [management.toLowerCase() ]); }, } }; public setGuestList( guestList: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('guestList', guestList); const functionSignature = 'setGuestList(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [guestList.toLowerCase() ]); }, } }; public setRewards( rewards: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('rewards', rewards); const functionSignature = 'setRewards(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [rewards.toLowerCase() ]); }, } }; public setDepositLimit( limit: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isBigNumber('limit', limit); const functionSignature = 'setDepositLimit(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [limit ]); }, } }; public setPerformanceFee( fee: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isBigNumber('fee', fee); const functionSignature = 'setPerformanceFee(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [fee ]); }, } }; public setManagementFee( fee: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isBigNumber('fee', fee); const functionSignature = 'setManagementFee(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [fee ]); }, } }; public setGuardian( guardian: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('guardian', guardian); const functionSignature = 'setGuardian(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [guardian.toLowerCase() ]); }, } }; public setEmergencyShutdown( active: boolean, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isBoolean('active', active); const functionSignature = 'setEmergencyShutdown(bool)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [active ]); }, } }; public setWithdrawalQueue( queue: string[], ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isArray('queue', queue); const functionSignature = 'setWithdrawalQueue(address[20])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [queue ]); }, } }; public transfer( receiver: string, amount: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('receiver', receiver); assert.isBigNumber('amount', amount); const functionSignature = 'transfer(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [receiver.toLowerCase(), amount ]); }, } }; public transferFrom( sender: string, receiver: string, amount: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('sender', sender); assert.isString('receiver', receiver); assert.isBigNumber('amount', amount); const functionSignature = 'transferFrom(address,address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [sender.toLowerCase(), receiver.toLowerCase(), amount ]); }, } }; public approve( spender: string, amount: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('spender', spender); assert.isBigNumber('amount', amount); const functionSignature = 'approve(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [spender.toLowerCase(), amount ]); }, } }; public increaseAllowance( spender: string, amount: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('spender', spender); assert.isBigNumber('amount', amount); const functionSignature = 'increaseAllowance(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [spender.toLowerCase(), amount ]); }, } }; public decreaseAllowance( spender: string, amount: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('spender', spender); assert.isBigNumber('amount', amount); const functionSignature = 'decreaseAllowance(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [spender.toLowerCase(), amount ]); }, } }; public permit( owner: string, spender: string, amount: BigNumber, expiry: BigNumber, signature: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('owner', owner); assert.isString('spender', spender); assert.isBigNumber('amount', amount); assert.isBigNumber('expiry', expiry); assert.isString('signature', signature); const functionSignature = 'permit(address,address,uint256,uint256,bytes)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [owner.toLowerCase(), spender.toLowerCase(), amount, expiry, signature ]); }, } }; public totalAssets( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'totalAssets()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public balanceSheetOfStrategy( strategy: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('strategy', strategy); const functionSignature = 'balanceSheetOfStrategy(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategy.toLowerCase() ]); }, } }; public totalBalanceSheet( strategies: string[], ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isArray('strategies', strategies); const functionSignature = 'totalBalanceSheet(address[40])'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategies ]); }, } }; public deposit1( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'deposit()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public deposit2( _amount: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isBigNumber('_amount', _amount); const functionSignature = 'deposit(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [_amount ]); }, } }; public deposit3( _amount: BigNumber, recipient: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isBigNumber('_amount', _amount); assert.isString('recipient', recipient); const functionSignature = 'deposit(uint256,address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [_amount, recipient.toLowerCase() ]); }, } }; public maxAvailableShares( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'maxAvailableShares()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public withdraw1( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'withdraw()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public withdraw2( _shares: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isBigNumber('_shares', _shares); const functionSignature = 'withdraw(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [_shares ]); }, } }; public withdraw3( _shares: BigNumber, recipient: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isBigNumber('_shares', _shares); assert.isString('recipient', recipient); const functionSignature = 'withdraw(uint256,address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [_shares, recipient.toLowerCase() ]); }, } }; public pricePerShare( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'pricePerShare()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public addStrategy( strategy: string, debtLimit: BigNumber, rateLimit: BigNumber, performanceFee: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('strategy', strategy); assert.isBigNumber('debtLimit', debtLimit); assert.isBigNumber('rateLimit', rateLimit); assert.isBigNumber('performanceFee', performanceFee); const functionSignature = 'addStrategy(address,uint256,uint256,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategy.toLowerCase(), debtLimit, rateLimit, performanceFee ]); }, } }; public updateStrategyDebtLimit( strategy: string, debtLimit: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('strategy', strategy); assert.isBigNumber('debtLimit', debtLimit); const functionSignature = 'updateStrategyDebtLimit(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategy.toLowerCase(), debtLimit ]); }, } }; public updateStrategyRateLimit( strategy: string, rateLimit: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('strategy', strategy); assert.isBigNumber('rateLimit', rateLimit); const functionSignature = 'updateStrategyRateLimit(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategy.toLowerCase(), rateLimit ]); }, } }; public updateStrategyPerformanceFee( strategy: string, performanceFee: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('strategy', strategy); assert.isBigNumber('performanceFee', performanceFee); const functionSignature = 'updateStrategyPerformanceFee(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategy.toLowerCase(), performanceFee ]); }, } }; public migrateStrategy( oldVersion: string, newVersion: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('oldVersion', oldVersion); assert.isString('newVersion', newVersion); const functionSignature = 'migrateStrategy(address,address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [oldVersion.toLowerCase(), newVersion.toLowerCase() ]); }, } }; public revokeStrategy1( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'revokeStrategy()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public revokeStrategy2( strategy: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('strategy', strategy); const functionSignature = 'revokeStrategy(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategy.toLowerCase() ]); }, } }; public addStrategyToQueue( strategy: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('strategy', strategy); const functionSignature = 'addStrategyToQueue(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategy.toLowerCase() ]); }, } }; public removeStrategyFromQueue( strategy: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('strategy', strategy); const functionSignature = 'removeStrategyFromQueue(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategy.toLowerCase() ]); }, } }; public debtOutstanding1( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'debtOutstanding()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public debtOutstanding2( strategy: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('strategy', strategy); const functionSignature = 'debtOutstanding(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategy.toLowerCase() ]); }, } }; public creditAvailable1( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'creditAvailable()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public creditAvailable2( strategy: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('strategy', strategy); const functionSignature = 'creditAvailable(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategy.toLowerCase() ]); }, } }; public availableDepositLimit( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'availableDepositLimit()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public expectedReturn1( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'expectedReturn()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public expectedReturn2( strategy: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('strategy', strategy); const functionSignature = 'expectedReturn(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [strategy.toLowerCase() ]); }, } }; public report( gain: BigNumber, loss: BigNumber, _debtPayment: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isBigNumber('gain', gain); assert.isBigNumber('loss', loss); assert.isBigNumber('_debtPayment', _debtPayment); const functionSignature = 'report(uint256,uint256,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [gain, loss, _debtPayment ]); }, } }; public sweep1( token: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('token', token); const functionSignature = 'sweep(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [token.toLowerCase() ]); }, } }; public sweep2( token: string, amount: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('token', token); assert.isBigNumber('amount', amount); const functionSignature = 'sweep(address,uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [token.toLowerCase(), amount ]); }, } }; public name( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'name()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public symbol( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'symbol()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public decimals( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'decimals()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public balanceOf( arg0: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('arg0', arg0); const functionSignature = 'balanceOf(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [arg0.toLowerCase() ]); }, } }; public allowance( arg0: string, arg1: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('arg0', arg0); assert.isString('arg1', arg1); const functionSignature = 'allowance(address,address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [arg0.toLowerCase(), arg1.toLowerCase() ]); }, } }; public totalSupply( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'totalSupply()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public token( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'token()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public governance( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'governance()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public management( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'management()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public guardian( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'guardian()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public guestList( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'guestList()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public strategies( arg0: string, ): ContractTxFunctionObj<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] > { const self = this as any as VaultContract; assert.isString('arg0', arg0); const functionSignature = 'strategies(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] > { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] >(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [arg0.toLowerCase() ]); }, } }; public withdrawalQueue( arg0: BigNumber, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isBigNumber('arg0', arg0); const functionSignature = 'withdrawalQueue(uint256)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [arg0 ]); }, } }; public emergencyShutdown( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'emergencyShutdown()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public depositLimit( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'depositLimit()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public debtLimit( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'debtLimit()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public totalDebt( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'totalDebt()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public lastReport( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'lastReport()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public activation( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'activation()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public rewards( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'rewards()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public managementFee( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'managementFee()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public performanceFee( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'performanceFee()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; public nonces( arg0: string, ): ContractTxFunctionObj { const self = this as any as VaultContract; assert.isString('arg0', arg0); const functionSignature = 'nonces(address)'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, [arg0.toLowerCase() ]); }, } }; public DOMAIN_SEPARATOR( ): ContractTxFunctionObj { const self = this as any as VaultContract; const functionSignature = 'DOMAIN_SEPARATOR()'; return { async sendTransactionAsync( txData?: Partial | undefined, opts: SendTransactionOpts = { shouldValidate: true }, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData }, this.estimateGasAsync.bind(this), ); if (opts.shouldValidate !== false) { await this.callAsync(txDataWithDefaults); } return self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); }, awaitTransactionSuccessAsync( txData?: Partial, opts: AwaitTransactionSuccessOpts = { shouldValidate: true }, ): PromiseWithTransactionHash { return self._promiseWithTransactionHash(this.sendTransactionAsync(txData, opts), opts); }, async estimateGasAsync( txData?: Partial | undefined, ): Promise { const txDataWithDefaults = await self._applyDefaultsToTxDataAsync( { data: this.getABIEncodedTransactionData(), ...txData } ); return self._web3Wrapper.estimateGasAsync(txDataWithDefaults); }, async callAsync( callData: Partial = {}, defaultBlock?: BlockParam, ): Promise { BaseContract._assertCallParams(callData, defaultBlock); const rawCallResult = await self._performCallAsync({ data: this.getABIEncodedTransactionData(), ...callData }, defaultBlock); const abiEncoder = self._lookupAbiEncoder(functionSignature); BaseContract._throwIfUnexpectedEmptyCallResult(rawCallResult, abiEncoder); return abiEncoder.strictDecodeReturnValue(rawCallResult); }, getABIEncodedTransactionData(): string { return self._strictEncodeArguments(functionSignature, []); }, } }; /** * Subscribe to an event type emitted by the Vault contract. * @param eventName The Vault contract event you would like to subscribe to. * @param indexFilterValues An object where the keys are indexed args returned by the event and * the value is the value you are interested in. E.g `{maker: aUserAddressHex}` * @param callback Callback that gets called when a log is added/removed * @param isVerbose Enable verbose subscription warnings (e.g recoverable network issues encountered) * @return Subscription token used later to unsubscribe */ public subscribe( eventName: VaultEvents, indexFilterValues: IndexedFilterValues, callback: EventCallback, isVerbose: boolean = false, blockPollingIntervalMs?: number, ): string { assert.doesBelongToStringEnum('eventName', eventName, VaultEvents); assert.doesConformToSchema('indexFilterValues', indexFilterValues, schemas.indexFilterValuesSchema); assert.isFunction('callback', callback); const subscriptionToken = this._subscriptionManager.subscribe( this.address, eventName, indexFilterValues, VaultContract.ABI(), callback, isVerbose, blockPollingIntervalMs, ); return subscriptionToken; } /** * Cancel a subscription * @param subscriptionToken Subscription token returned by `subscribe()` */ public unsubscribe(subscriptionToken: string): void { this._subscriptionManager.unsubscribe(subscriptionToken); } /** * Cancels all existing subscriptions */ public unsubscribeAll(): void { this._subscriptionManager.unsubscribeAll(); } /** * Gets historical logs without creating a subscription * @param eventName The Vault contract event you would like to subscribe to. * @param blockRange Block range to get logs from. * @param indexFilterValues An object where the keys are indexed args returned by the event and * the value is the value you are interested in. E.g `{_from: aUserAddressHex}` * @return Array of logs that match the parameters */ public async getLogsAsync( eventName: VaultEvents, blockRange: BlockRange, indexFilterValues: IndexedFilterValues, ): Promise>> { assert.doesBelongToStringEnum('eventName', eventName, VaultEvents); assert.doesConformToSchema('blockRange', blockRange, schemas.blockRangeSchema); assert.doesConformToSchema('indexFilterValues', indexFilterValues, schemas.indexFilterValuesSchema); const logs = await this._subscriptionManager.getLogsAsync( this.address, eventName, blockRange, indexFilterValues, VaultContract.ABI(), ); return logs; } constructor( address: string, supportedProvider: SupportedProvider, txDefaults?: Partial, logDecodeDependencies?: { [contractName: string]: ContractAbi }, deployedBytecode: string | undefined = VaultContract.deployedBytecode, ) { super('Vault', VaultContract.ABI(), address, supportedProvider, txDefaults, logDecodeDependencies, deployedBytecode); classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', '_web3Wrapper']); this._subscriptionManager = new SubscriptionManager( VaultContract.ABI(), this._web3Wrapper, ); VaultContract.ABI().forEach((item, index) => { if (item.type === 'function') { const methodAbi = item as MethodAbi; this._methodABIIndex[methodAbi.name] = index; } }); } } // tslint:disable:max-file-line-count // tslint:enable:no-unbound-method no-parameter-reassignment no-consecutive-blank-lines ordered-imports align // tslint:enable:trailing-comma whitespace no-trailing-whitespace