/** * AUTO-Generated Class: 2024-05-17 00:25 * Implementation: https://bscscan.com/address/0xa80240Eb5d7E05d3F250cF000eEc0891d00b51CC#code */ import di from 'a-di'; import { TAddress } from '@dequanto/models/TAddress'; import { TAccount } from '@dequanto/models/TAccount'; import { TBufferLike } from '@dequanto/models/TBufferLike'; import { ClientEventsStream, TClientEventsStreamData } from '@dequanto/clients/ClientEventsStream'; import { ContractBase } from '@dequanto/contracts/ContractBase'; import { ContractBaseUtils } from '@dequanto/contracts/utils/ContractBaseUtils'; import { ContractStorageReaderBase } from '@dequanto/contracts/ContractStorageReaderBase'; import { TxWriter } from '@dequanto/txs/TxWriter'; import { ITxLogItem } from '@dequanto/txs/receipt/ITxLogItem'; import { Web3Client } from '@dequanto/clients/Web3Client'; import { IBlockchainExplorer } from '@dequanto/explorer/IBlockchainExplorer'; import { SubjectStream } from '@dequanto/class/SubjectStream'; import type { ContractWriter } from '@dequanto/contracts/ContractWriter'; import type { TAbiItem } from '@dequanto/types/TAbi'; import type { TEth } from '@dequanto/models/TEth'; import type { TOverrideReturns } from '@dequanto/utils/types'; import { Bscscan } from '@dequanto/explorer/Bscscan' import { BscWeb3Client } from '@dequanto/clients/BscWeb3Client' export class AmmVaultV2Contract extends ContractBase { constructor( public address: TEth.Address = '0xa80240Eb5d7E05d3F250cF000eEc0891d00b51CC', public client: Web3Client = di.resolve(BscWeb3Client, ), public explorer: IBlockchainExplorer = di.resolve(Bscscan, ), ) { super(address, client, explorer) this.storage = new AmmVaultV2ContractStorageReader(this.address, this.client, this.explorer); } Types: TAmmVaultV2ContractTypes; $meta = { "class": "./src/prebuilt/amm/AmmVaultV2Contract/AmmVaultV2Contract.ts" } async $constructor (deployer: TSender, _token: TAddress, _receiptToken: TAddress, _masterchef: TAddress, _admin: TAddress, _treasury: TAddress): Promise { throw new Error('Not implemented. Typing purpose. Use the ContractDeployer class to deploy the contract'); } // 0x2ad5a53f async MAX_CALL_FEE (): Promise { return this.$read(this.$getAbiItem('function', 'MAX_CALL_FEE')); } // 0xbdca9165 async MAX_PERFORMANCE_FEE (): Promise { return this.$read(this.$getAbiItem('function', 'MAX_PERFORMANCE_FEE')); } // 0xd4b0de2f async MAX_WITHDRAW_FEE (): Promise { return this.$read(this.$getAbiItem('function', 'MAX_WITHDRAW_FEE')); } // 0x2cfc5f01 async MAX_WITHDRAW_FEE_PERIOD (): Promise { return this.$read(this.$getAbiItem('function', 'MAX_WITHDRAW_FEE_PERIOD')); } // 0xf851a440 async admin (): Promise { return this.$read(this.$getAbiItem('function', 'admin')); } // 0x48a0d754 async available (): Promise { return this.$read(this.$getAbiItem('function', 'available')); } // 0x722713f7 async balanceOf (): Promise { return this.$read(this.$getAbiItem('function', 'balanceOf')); } // 0x9d72596b async calculateHarvestCakeRewards (): Promise { return this.$read(this.$getAbiItem('function', 'calculateHarvestCakeRewards')); } // 0x58ebceb6 async calculateTotalPendingCakeRewards (): Promise { return this.$read(this.$getAbiItem('function', 'calculateTotalPendingCakeRewards')); } // 0x90321e1a async callFee (): Promise { return this.$read(this.$getAbiItem('function', 'callFee')); } // 0xb6b55f25 async deposit (sender: TSender, _amount: bigint): Promise { return this.$write(this.$getAbiItem('function', 'deposit'), sender, _amount); } // 0xdb2e21bc async emergencyWithdraw (sender: TSender, ): Promise { return this.$write(this.$getAbiItem('function', 'emergencyWithdraw'), sender); } // 0x77c7b8fc async getPricePerFullShare (): Promise { return this.$read(this.$getAbiItem('function', 'getPricePerFullShare')); } // 0x4641257d async harvest (sender: TSender, ): Promise { return this.$write(this.$getAbiItem('function', 'harvest'), sender); } // 0xdef68a9c async inCaseTokensGetStuck (sender: TSender, _token: TAddress): Promise { return this.$write(this.$getAbiItem('function', 'inCaseTokensGetStuck'), sender, _token); } // 0xb60f0531 async lastHarvestedTime (): Promise { return this.$read(this.$getAbiItem('function', 'lastHarvestedTime')); } // 0xfb1db278 async masterchef (): Promise { return this.$read(this.$getAbiItem('function', 'masterchef')); } // 0x8da5cb5b async owner (): Promise { return this.$read(this.$getAbiItem('function', 'owner')); } // 0x8456cb59 async pause (sender: TSender, ): Promise { return this.$write(this.$getAbiItem('function', 'pause'), sender); } // 0x5c975abb async paused (): Promise { return this.$read(this.$getAbiItem('function', 'paused')); } // 0x87788782 async performanceFee (): Promise { return this.$read(this.$getAbiItem('function', 'performanceFee')); } // 0xec78e832 async receiptToken (): Promise { return this.$read(this.$getAbiItem('function', 'receiptToken')); } // 0x715018a6 async renounceOwnership (sender: TSender, ): Promise { return this.$write(this.$getAbiItem('function', 'renounceOwnership'), sender); } // 0x704b6c02 async setAdmin (sender: TSender, _admin: TAddress): Promise { return this.$write(this.$getAbiItem('function', 'setAdmin'), sender, _admin); } // 0x26465826 async setCallFee (sender: TSender, _callFee: bigint): Promise { return this.$write(this.$getAbiItem('function', 'setCallFee'), sender, _callFee); } // 0x70897b23 async setPerformanceFee (sender: TSender, _performanceFee: bigint): Promise { return this.$write(this.$getAbiItem('function', 'setPerformanceFee'), sender, _performanceFee); } // 0xf0f44260 async setTreasury (sender: TSender, _treasury: TAddress): Promise { return this.$write(this.$getAbiItem('function', 'setTreasury'), sender, _treasury); } // 0xb6ac642a async setWithdrawFee (sender: TSender, _withdrawFee: bigint): Promise { return this.$write(this.$getAbiItem('function', 'setWithdrawFee'), sender, _withdrawFee); } // 0x1efac1b8 async setWithdrawFeePeriod (sender: TSender, _withdrawFeePeriod: bigint): Promise { return this.$write(this.$getAbiItem('function', 'setWithdrawFeePeriod'), sender, _withdrawFeePeriod); } // 0xfc0c546a async token (): Promise { return this.$read(this.$getAbiItem('function', 'token')); } // 0x3a98ef39 async totalShares (): Promise { return this.$read(this.$getAbiItem('function', 'totalShares')); } // 0xf2fde38b async transferOwnership (sender: TSender, newOwner: TAddress): Promise { return this.$write(this.$getAbiItem('function', 'transferOwnership'), sender, newOwner); } // 0x61d027b3 async treasury (): Promise { return this.$read(this.$getAbiItem('function', 'treasury')); } // 0x3f4ba83a async unpause (sender: TSender, ): Promise { return this.$write(this.$getAbiItem('function', 'unpause'), sender); } // 0x1959a002 async userInfo (input0: TAddress): Promise<{ shares: bigint, lastDepositedTime: bigint, cakeAtLastUserAction: bigint, lastUserActionTime: bigint }> { return this.$read(this.$getAbiItem('function', 'userInfo'), input0); } // 0x2e1a7d4d async withdraw (sender: TSender, _shares: bigint): Promise { return this.$write(this.$getAbiItem('function', 'withdraw'), sender, _shares); } // 0x853828b6 async withdrawAll (sender: TSender, ): Promise { return this.$write(this.$getAbiItem('function', 'withdrawAll'), sender); } // 0xe941fa78 async withdrawFee (): Promise { return this.$read(this.$getAbiItem('function', 'withdrawFee')); } // 0xdf10b4e6 async withdrawFeePeriod (): Promise { return this.$read(this.$getAbiItem('function', 'withdrawFeePeriod')); } $call () { return super.$call() as IAmmVaultV2ContractTxCaller; } $signed (): TOverrideReturns> { return super.$signed() as any; } $data (): IAmmVaultV2ContractTxData { return super.$data() as IAmmVaultV2ContractTxData; } $gas (): TOverrideReturns> { return super.$gas() as any; } onTransaction (method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx block: TEth.Block calldata: { method: TMethod arguments: TAmmVaultV2ContractTypes['Methods'][TMethod]['arguments'] } }> { options ??= {}; options.filter ??= {}; options.filter.method = method; return this.$onTransaction(options); } onLog (event: keyof TEvents, cb?: (event: TClientEventsStreamData) => void): ClientEventsStream { return this.$onLog(event, cb); } async getPastLogs ( events: TEventName[] , options?: TEventLogOptions> ): Promise, TEventName>[]> async getPastLogs ( event: TEventName , options?: TEventLogOptions> ): Promise, TEventName>[]> async getPastLogs (mix: any, options?): Promise { return await super.getPastLogs(mix, options) as any; } onDeposit (fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>> { return this.$onLog('Deposit', fn); } onHarvest (fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>> { return this.$onLog('Harvest', fn); } onOwnershipTransferred (fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>> { return this.$onLog('OwnershipTransferred', fn); } onPause (fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>> { return this.$onLog('Pause', fn); } onPaused (fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>> { return this.$onLog('Paused', fn); } onUnpause (fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>> { return this.$onLog('Unpause', fn); } onUnpaused (fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>> { return this.$onLog('Unpaused', fn); } onWithdraw (fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>> { return this.$onLog('Withdraw', fn); } extractLogsDeposit (tx: TEth.TxReceipt): ITxLogItem>[] { let abi = this.$getAbiItem('event', 'Deposit'); return this.$extractLogs(tx, abi) as any as ITxLogItem>[]; } extractLogsHarvest (tx: TEth.TxReceipt): ITxLogItem>[] { let abi = this.$getAbiItem('event', 'Harvest'); return this.$extractLogs(tx, abi) as any as ITxLogItem>[]; } extractLogsOwnershipTransferred (tx: TEth.TxReceipt): ITxLogItem>[] { let abi = this.$getAbiItem('event', 'OwnershipTransferred'); return this.$extractLogs(tx, abi) as any as ITxLogItem>[]; } extractLogsPause (tx: TEth.TxReceipt): ITxLogItem>[] { let abi = this.$getAbiItem('event', 'Pause'); return this.$extractLogs(tx, abi) as any as ITxLogItem>[]; } extractLogsPaused (tx: TEth.TxReceipt): ITxLogItem>[] { let abi = this.$getAbiItem('event', 'Paused'); return this.$extractLogs(tx, abi) as any as ITxLogItem>[]; } extractLogsUnpause (tx: TEth.TxReceipt): ITxLogItem>[] { let abi = this.$getAbiItem('event', 'Unpause'); return this.$extractLogs(tx, abi) as any as ITxLogItem>[]; } extractLogsUnpaused (tx: TEth.TxReceipt): ITxLogItem>[] { let abi = this.$getAbiItem('event', 'Unpaused'); return this.$extractLogs(tx, abi) as any as ITxLogItem>[]; } extractLogsWithdraw (tx: TEth.TxReceipt): ITxLogItem>[] { let abi = this.$getAbiItem('event', 'Withdraw'); return this.$extractLogs(tx, abi) as any as ITxLogItem>[]; } async getPastLogsDeposit (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { sender?: TAddress } }): Promise>[]> { return await this.$getPastLogsParsed('Deposit', options) as any; } async getPastLogsHarvest (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { sender?: TAddress } }): Promise>[]> { return await this.$getPastLogsParsed('Harvest', options) as any; } async getPastLogsOwnershipTransferred (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { previousOwner?: TAddress,newOwner?: TAddress } }): Promise>[]> { return await this.$getPastLogsParsed('OwnershipTransferred', options) as any; } async getPastLogsPause (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise>[]> { return await this.$getPastLogsParsed('Pause', options) as any; } async getPastLogsPaused (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise>[]> { return await this.$getPastLogsParsed('Paused', options) as any; } async getPastLogsUnpause (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise>[]> { return await this.$getPastLogsParsed('Unpause', options) as any; } async getPastLogsUnpaused (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise>[]> { return await this.$getPastLogsParsed('Unpaused', options) as any; } async getPastLogsWithdraw (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { sender?: TAddress } }): Promise>[]> { return await this.$getPastLogsParsed('Withdraw', options) as any; } abi: TAbiItem[] = [{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"contract IERC20","name":"_receiptToken","type":"address"},{"internalType":"contract IMasterChef","name":"_masterchef","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lastDepositedTime","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"performanceFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"callFee","type":"uint256"}],"name":"Harvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"MAX_CALL_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PERFORMANCE_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_WITHDRAW_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_WITHDRAW_FEE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calculateHarvestCakeRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calculateTotalPendingCakeRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"callFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPricePerFullShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"inCaseTokensGetStuck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastHarvestedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"masterchef","outputs":[{"internalType":"contract IMasterChef","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"performanceFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiptToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_callFee","type":"uint256"}],"name":"setCallFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_performanceFee","type":"uint256"}],"name":"setPerformanceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_withdrawFee","type":"uint256"}],"name":"setWithdrawFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_withdrawFeePeriod","type":"uint256"}],"name":"setWithdrawFeePeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"lastDepositedTime","type":"uint256"},{"internalType":"uint256","name":"cakeAtLastUserAction","type":"uint256"},{"internalType":"uint256","name":"lastUserActionTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shares","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawFeePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}] declare storage: AmmVaultV2ContractStorageReader } type TSender = TAccount & { value?: string | number | bigint } type TEventLogOptions = { fromBlock?: number | Date toBlock?: number | Date params?: TParams } export type TAmmVaultV2ContractTypes = { Events: { Deposit: { outputParams: { _sender: TAddress, amount: bigint, shares: bigint, lastDepositedTime: bigint }, outputArgs: [ _sender: TAddress, amount: bigint, shares: bigint, lastDepositedTime: bigint ], } Harvest: { outputParams: { _sender: TAddress, performanceFee: bigint, callFee: bigint }, outputArgs: [ _sender: TAddress, performanceFee: bigint, callFee: bigint ], } OwnershipTransferred: { outputParams: { previousOwner: TAddress, newOwner: TAddress }, outputArgs: [ previousOwner: TAddress, newOwner: TAddress ], } Pause: { outputParams: { }, outputArgs: [ ], } Paused: { outputParams: { account: TAddress }, outputArgs: [ account: TAddress ], } Unpause: { outputParams: { }, outputArgs: [ ], } Unpaused: { outputParams: { account: TAddress }, outputArgs: [ account: TAddress ], } Withdraw: { outputParams: { _sender: TAddress, amount: bigint, shares: bigint }, outputArgs: [ _sender: TAddress, amount: bigint, shares: bigint ], } }, Methods: { MAX_CALL_FEE: { method: "MAX_CALL_FEE" arguments: [ ] } MAX_PERFORMANCE_FEE: { method: "MAX_PERFORMANCE_FEE" arguments: [ ] } MAX_WITHDRAW_FEE: { method: "MAX_WITHDRAW_FEE" arguments: [ ] } MAX_WITHDRAW_FEE_PERIOD: { method: "MAX_WITHDRAW_FEE_PERIOD" arguments: [ ] } admin: { method: "admin" arguments: [ ] } available: { method: "available" arguments: [ ] } balanceOf: { method: "balanceOf" arguments: [ ] } calculateHarvestCakeRewards: { method: "calculateHarvestCakeRewards" arguments: [ ] } calculateTotalPendingCakeRewards: { method: "calculateTotalPendingCakeRewards" arguments: [ ] } callFee: { method: "callFee" arguments: [ ] } deposit: { method: "deposit" arguments: [ _amount: bigint ] } emergencyWithdraw: { method: "emergencyWithdraw" arguments: [ ] } getPricePerFullShare: { method: "getPricePerFullShare" arguments: [ ] } harvest: { method: "harvest" arguments: [ ] } inCaseTokensGetStuck: { method: "inCaseTokensGetStuck" arguments: [ _token: TAddress ] } lastHarvestedTime: { method: "lastHarvestedTime" arguments: [ ] } masterchef: { method: "masterchef" arguments: [ ] } owner: { method: "owner" arguments: [ ] } pause: { method: "pause" arguments: [ ] } paused: { method: "paused" arguments: [ ] } performanceFee: { method: "performanceFee" arguments: [ ] } receiptToken: { method: "receiptToken" arguments: [ ] } renounceOwnership: { method: "renounceOwnership" arguments: [ ] } setAdmin: { method: "setAdmin" arguments: [ _admin: TAddress ] } setCallFee: { method: "setCallFee" arguments: [ _callFee: bigint ] } setPerformanceFee: { method: "setPerformanceFee" arguments: [ _performanceFee: bigint ] } setTreasury: { method: "setTreasury" arguments: [ _treasury: TAddress ] } setWithdrawFee: { method: "setWithdrawFee" arguments: [ _withdrawFee: bigint ] } setWithdrawFeePeriod: { method: "setWithdrawFeePeriod" arguments: [ _withdrawFeePeriod: bigint ] } token: { method: "token" arguments: [ ] } totalShares: { method: "totalShares" arguments: [ ] } transferOwnership: { method: "transferOwnership" arguments: [ newOwner: TAddress ] } treasury: { method: "treasury" arguments: [ ] } unpause: { method: "unpause" arguments: [ ] } userInfo: { method: "userInfo" arguments: [ input0: TAddress ] } withdraw: { method: "withdraw" arguments: [ _shares: bigint ] } withdrawAll: { method: "withdrawAll" arguments: [ ] } withdrawFee: { method: "withdrawFee" arguments: [ ] } withdrawFeePeriod: { method: "withdrawFeePeriod" arguments: [ ] } } } class AmmVaultV2ContractStorageReader extends ContractStorageReaderBase { constructor( public address: TAddress, public client: Web3Client, public explorer: IBlockchainExplorer, ) { super(address, client, explorer); this.$createHandler(this.$slots); } async _owner(): Promise { return this.$storage.get(['_owner', ]); } async _paused(): Promise { return this.$storage.get(['_paused', ]); } async userInfo(key: TAddress): Promise<{ shares: bigint, lastDepositedTime: bigint, cakeAtLastUserAction: bigint, lastUserActionTime: bigint }> { return this.$storage.get(['userInfo', key]); } async totalShares(): Promise { return this.$storage.get(['totalShares', ]); } async lastHarvestedTime(): Promise { return this.$storage.get(['lastHarvestedTime', ]); } async admin(): Promise { return this.$storage.get(['admin', ]); } async treasury(): Promise { return this.$storage.get(['treasury', ]); } async performanceFee(): Promise { return this.$storage.get(['performanceFee', ]); } async callFee(): Promise { return this.$storage.get(['callFee', ]); } async withdrawFee(): Promise { return this.$storage.get(['withdrawFee', ]); } async withdrawFeePeriod(): Promise { return this.$storage.get(['withdrawFeePeriod', ]); } $slots = [ { "slot": 0, "position": 0, "name": "_owner", "size": 160, "type": "address" }, { "slot": 0, "position": 160, "name": "_paused", "size": 8, "type": "bool" }, { "slot": 1, "position": 0, "name": "userInfo", "size": null, "type": "mapping(address => (uint256 shares, uint256 lastDepositedTime, uint256 cakeAtLastUserAction, uint256 lastUserActionTime))" }, { "slot": 2, "position": 0, "name": "totalShares", "size": 256, "type": "uint256" }, { "slot": 3, "position": 0, "name": "lastHarvestedTime", "size": 256, "type": "uint256" }, { "slot": 4, "position": 0, "name": "admin", "size": 160, "type": "address" }, { "slot": 5, "position": 0, "name": "treasury", "size": 160, "type": "address" }, { "slot": 6, "position": 0, "name": "performanceFee", "size": 256, "type": "uint256" }, { "slot": 7, "position": 0, "name": "callFee", "size": 256, "type": "uint256" }, { "slot": 8, "position": 0, "name": "withdrawFee", "size": 256, "type": "uint256" }, { "slot": 9, "position": 0, "name": "withdrawFeePeriod", "size": 256, "type": "uint256" } ] } interface IAmmVaultV2ContractTxCaller { deposit (sender: TSender, _amount: bigint): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> emergencyWithdraw (sender: TSender, ): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> harvest (sender: TSender, ): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> inCaseTokensGetStuck (sender: TSender, _token: TAddress): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> pause (sender: TSender, ): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> renounceOwnership (sender: TSender, ): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> setAdmin (sender: TSender, _admin: TAddress): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> setCallFee (sender: TSender, _callFee: bigint): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> setPerformanceFee (sender: TSender, _performanceFee: bigint): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> setTreasury (sender: TSender, _treasury: TAddress): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> setWithdrawFee (sender: TSender, _withdrawFee: bigint): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> setWithdrawFeePeriod (sender: TSender, _withdrawFeePeriod: bigint): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> transferOwnership (sender: TSender, newOwner: TAddress): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> unpause (sender: TSender, ): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> withdraw (sender: TSender, _shares: bigint): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> withdrawAll (sender: TSender, ): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> } interface IAmmVaultV2ContractTxData { deposit (sender: TSender, _amount: bigint): Promise emergencyWithdraw (sender: TSender, ): Promise harvest (sender: TSender, ): Promise inCaseTokensGetStuck (sender: TSender, _token: TAddress): Promise pause (sender: TSender, ): Promise renounceOwnership (sender: TSender, ): Promise setAdmin (sender: TSender, _admin: TAddress): Promise setCallFee (sender: TSender, _callFee: bigint): Promise setPerformanceFee (sender: TSender, _performanceFee: bigint): Promise setTreasury (sender: TSender, _treasury: TAddress): Promise setWithdrawFee (sender: TSender, _withdrawFee: bigint): Promise setWithdrawFeePeriod (sender: TSender, _withdrawFeePeriod: bigint): Promise transferOwnership (sender: TSender, newOwner: TAddress): Promise unpause (sender: TSender, ): Promise withdraw (sender: TSender, _shares: bigint): Promise withdrawAll (sender: TSender, ): Promise } type TEvents = TAmmVaultV2ContractTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial;