0xweb
Version:
Contract package manager and other web3 tools
819 lines (712 loc) • 36.6 kB
text/typescript
/**
* 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<TxWriter> {
throw new Error('Not implemented. Typing purpose. Use the ContractDeployer class to deploy the contract');
}
// 0x2ad5a53f
async MAX_CALL_FEE (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'MAX_CALL_FEE'));
}
// 0xbdca9165
async MAX_PERFORMANCE_FEE (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'MAX_PERFORMANCE_FEE'));
}
// 0xd4b0de2f
async MAX_WITHDRAW_FEE (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'MAX_WITHDRAW_FEE'));
}
// 0x2cfc5f01
async MAX_WITHDRAW_FEE_PERIOD (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'MAX_WITHDRAW_FEE_PERIOD'));
}
// 0xf851a440
async admin (): Promise<TAddress> {
return this.$read(this.$getAbiItem('function', 'admin'));
}
// 0x48a0d754
async available (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'available'));
}
// 0x722713f7
async balanceOf (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'balanceOf'));
}
// 0x9d72596b
async calculateHarvestCakeRewards (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'calculateHarvestCakeRewards'));
}
// 0x58ebceb6
async calculateTotalPendingCakeRewards (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'calculateTotalPendingCakeRewards'));
}
// 0x90321e1a
async callFee (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'callFee'));
}
// 0xb6b55f25
async deposit (sender: TSender, _amount: bigint): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'deposit'), sender, _amount);
}
// 0xdb2e21bc
async emergencyWithdraw (sender: TSender, ): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'emergencyWithdraw'), sender);
}
// 0x77c7b8fc
async getPricePerFullShare (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'getPricePerFullShare'));
}
// 0x4641257d
async harvest (sender: TSender, ): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'harvest'), sender);
}
// 0xdef68a9c
async inCaseTokensGetStuck (sender: TSender, _token: TAddress): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'inCaseTokensGetStuck'), sender, _token);
}
// 0xb60f0531
async lastHarvestedTime (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'lastHarvestedTime'));
}
// 0xfb1db278
async masterchef (): Promise<TAddress> {
return this.$read(this.$getAbiItem('function', 'masterchef'));
}
// 0x8da5cb5b
async owner (): Promise<TAddress> {
return this.$read(this.$getAbiItem('function', 'owner'));
}
// 0x8456cb59
async pause (sender: TSender, ): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'pause'), sender);
}
// 0x5c975abb
async paused (): Promise<boolean> {
return this.$read(this.$getAbiItem('function', 'paused'));
}
// 0x87788782
async performanceFee (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'performanceFee'));
}
// 0xec78e832
async receiptToken (): Promise<TAddress> {
return this.$read(this.$getAbiItem('function', 'receiptToken'));
}
// 0x715018a6
async renounceOwnership (sender: TSender, ): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'renounceOwnership'), sender);
}
// 0x704b6c02
async setAdmin (sender: TSender, _admin: TAddress): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'setAdmin'), sender, _admin);
}
// 0x26465826
async setCallFee (sender: TSender, _callFee: bigint): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'setCallFee'), sender, _callFee);
}
// 0x70897b23
async setPerformanceFee (sender: TSender, _performanceFee: bigint): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'setPerformanceFee'), sender, _performanceFee);
}
// 0xf0f44260
async setTreasury (sender: TSender, _treasury: TAddress): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'setTreasury'), sender, _treasury);
}
// 0xb6ac642a
async setWithdrawFee (sender: TSender, _withdrawFee: bigint): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'setWithdrawFee'), sender, _withdrawFee);
}
// 0x1efac1b8
async setWithdrawFeePeriod (sender: TSender, _withdrawFeePeriod: bigint): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'setWithdrawFeePeriod'), sender, _withdrawFeePeriod);
}
// 0xfc0c546a
async token (): Promise<TAddress> {
return this.$read(this.$getAbiItem('function', 'token'));
}
// 0x3a98ef39
async totalShares (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'totalShares'));
}
// 0xf2fde38b
async transferOwnership (sender: TSender, newOwner: TAddress): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'transferOwnership'), sender, newOwner);
}
// 0x61d027b3
async treasury (): Promise<TAddress> {
return this.$read(this.$getAbiItem('function', 'treasury'));
}
// 0x3f4ba83a
async unpause (sender: TSender, ): Promise<TxWriter> {
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<TxWriter> {
return this.$write(this.$getAbiItem('function', 'withdraw'), sender, _shares);
}
// 0x853828b6
async withdrawAll (sender: TSender, ): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'withdrawAll'), sender);
}
// 0xe941fa78
async withdrawFee (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'withdrawFee'));
}
// 0xdf10b4e6
async withdrawFeePeriod (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'withdrawFeePeriod'));
}
$call () {
return super.$call() as IAmmVaultV2ContractTxCaller;
}
$signed (): TOverrideReturns<IAmmVaultV2ContractTxCaller, Promise<{ signed: TEth.Hex, error?: Error & { data?: { type: string, params } } }>> {
return super.$signed() as any;
}
$data (): IAmmVaultV2ContractTxData {
return super.$data() as IAmmVaultV2ContractTxData;
}
$gas (): TOverrideReturns<IAmmVaultV2ContractTxCaller, Promise<{ gas?: bigint, price?: bigint, error?: Error & { data?: { type: string, params } } }>> {
return super.$gas() as any;
}
onTransaction <TMethod extends keyof TAmmVaultV2ContractTypes['Methods']> (method: TMethod, options: Parameters<ContractBase['$onTransaction']>[0]): SubjectStream<{
tx: TEth.Tx
block: TEth.Block<TEth.Hex>
calldata: {
method: TMethod
arguments: TAmmVaultV2ContractTypes['Methods'][TMethod]['arguments']
}
}> {
options ??= {};
options.filter ??= {};
options.filter.method = method;
return <any> this.$onTransaction(options);
}
onLog (event: keyof TEvents, cb?: (event: TClientEventsStreamData) => void): ClientEventsStream<TClientEventsStreamData> {
return this.$onLog(event, cb);
}
async getPastLogs <TEventName extends keyof TEvents> (
events: TEventName[]
, options?: TEventLogOptions<TEventParams<TEventName>>
): Promise<ITxLogItem<TEventParams<TEventName>, TEventName>[]>
async getPastLogs <TEventName extends keyof TEvents> (
event: TEventName
, options?: TEventLogOptions<TEventParams<TEventName>>
): Promise<ITxLogItem<TEventParams<TEventName>, TEventName>[]>
async getPastLogs (mix: any, options?): Promise<any> {
return await super.getPastLogs(mix, options) as any;
}
onDeposit (fn?: (event: TClientEventsStreamData<TEventArguments<'Deposit'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'Deposit'>>> {
return this.$onLog('Deposit', fn);
}
onHarvest (fn?: (event: TClientEventsStreamData<TEventArguments<'Harvest'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'Harvest'>>> {
return this.$onLog('Harvest', fn);
}
onOwnershipTransferred (fn?: (event: TClientEventsStreamData<TEventArguments<'OwnershipTransferred'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'OwnershipTransferred'>>> {
return this.$onLog('OwnershipTransferred', fn);
}
onPause (fn?: (event: TClientEventsStreamData<TEventArguments<'Pause'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'Pause'>>> {
return this.$onLog('Pause', fn);
}
onPaused (fn?: (event: TClientEventsStreamData<TEventArguments<'Paused'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'Paused'>>> {
return this.$onLog('Paused', fn);
}
onUnpause (fn?: (event: TClientEventsStreamData<TEventArguments<'Unpause'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'Unpause'>>> {
return this.$onLog('Unpause', fn);
}
onUnpaused (fn?: (event: TClientEventsStreamData<TEventArguments<'Unpaused'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'Unpaused'>>> {
return this.$onLog('Unpaused', fn);
}
onWithdraw (fn?: (event: TClientEventsStreamData<TEventArguments<'Withdraw'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'Withdraw'>>> {
return this.$onLog('Withdraw', fn);
}
extractLogsDeposit (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'Deposit'>>[] {
let abi = this.$getAbiItem('event', 'Deposit');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'Deposit'>>[];
}
extractLogsHarvest (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'Harvest'>>[] {
let abi = this.$getAbiItem('event', 'Harvest');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'Harvest'>>[];
}
extractLogsOwnershipTransferred (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'OwnershipTransferred'>>[] {
let abi = this.$getAbiItem('event', 'OwnershipTransferred');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'OwnershipTransferred'>>[];
}
extractLogsPause (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'Pause'>>[] {
let abi = this.$getAbiItem('event', 'Pause');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'Pause'>>[];
}
extractLogsPaused (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'Paused'>>[] {
let abi = this.$getAbiItem('event', 'Paused');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'Paused'>>[];
}
extractLogsUnpause (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'Unpause'>>[] {
let abi = this.$getAbiItem('event', 'Unpause');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'Unpause'>>[];
}
extractLogsUnpaused (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'Unpaused'>>[] {
let abi = this.$getAbiItem('event', 'Unpaused');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'Unpaused'>>[];
}
extractLogsWithdraw (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'Withdraw'>>[] {
let abi = this.$getAbiItem('event', 'Withdraw');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'Withdraw'>>[];
}
async getPastLogsDeposit (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { sender?: TAddress }
}): Promise<ITxLogItem<TEventParams<'Deposit'>>[]> {
return await this.$getPastLogsParsed('Deposit', options) as any;
}
async getPastLogsHarvest (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { sender?: TAddress }
}): Promise<ITxLogItem<TEventParams<'Harvest'>>[]> {
return await this.$getPastLogsParsed('Harvest', options) as any;
}
async getPastLogsOwnershipTransferred (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { previousOwner?: TAddress,newOwner?: TAddress }
}): Promise<ITxLogItem<TEventParams<'OwnershipTransferred'>>[]> {
return await this.$getPastLogsParsed('OwnershipTransferred', options) as any;
}
async getPastLogsPause (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { }
}): Promise<ITxLogItem<TEventParams<'Pause'>>[]> {
return await this.$getPastLogsParsed('Pause', options) as any;
}
async getPastLogsPaused (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { }
}): Promise<ITxLogItem<TEventParams<'Paused'>>[]> {
return await this.$getPastLogsParsed('Paused', options) as any;
}
async getPastLogsUnpause (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { }
}): Promise<ITxLogItem<TEventParams<'Unpause'>>[]> {
return await this.$getPastLogsParsed('Unpause', options) as any;
}
async getPastLogsUnpaused (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { }
}): Promise<ITxLogItem<TEventParams<'Unpaused'>>[]> {
return await this.$getPastLogsParsed('Unpaused', options) as any;
}
async getPastLogsWithdraw (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { sender?: TAddress }
}): Promise<ITxLogItem<TEventParams<'Withdraw'>>[]> {
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<TParams> = {
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<TAddress> {
return this.$storage.get(['_owner', ]);
}
async _paused(): Promise<boolean> {
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<bigint> {
return this.$storage.get(['totalShares', ]);
}
async lastHarvestedTime(): Promise<bigint> {
return this.$storage.get(['lastHarvestedTime', ]);
}
async admin(): Promise<TAddress> {
return this.$storage.get(['admin', ]);
}
async treasury(): Promise<TAddress> {
return this.$storage.get(['treasury', ]);
}
async performanceFee(): Promise<bigint> {
return this.$storage.get(['performanceFee', ]);
}
async callFee(): Promise<bigint> {
return this.$storage.get(['callFee', ]);
}
async withdrawFee(): Promise<bigint> {
return this.$storage.get(['withdrawFee', ]);
}
async withdrawFeePeriod(): Promise<bigint> {
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<TEth.TxLike>
emergencyWithdraw (sender: TSender, ): Promise<TEth.TxLike>
harvest (sender: TSender, ): Promise<TEth.TxLike>
inCaseTokensGetStuck (sender: TSender, _token: TAddress): Promise<TEth.TxLike>
pause (sender: TSender, ): Promise<TEth.TxLike>
renounceOwnership (sender: TSender, ): Promise<TEth.TxLike>
setAdmin (sender: TSender, _admin: TAddress): Promise<TEth.TxLike>
setCallFee (sender: TSender, _callFee: bigint): Promise<TEth.TxLike>
setPerformanceFee (sender: TSender, _performanceFee: bigint): Promise<TEth.TxLike>
setTreasury (sender: TSender, _treasury: TAddress): Promise<TEth.TxLike>
setWithdrawFee (sender: TSender, _withdrawFee: bigint): Promise<TEth.TxLike>
setWithdrawFeePeriod (sender: TSender, _withdrawFeePeriod: bigint): Promise<TEth.TxLike>
transferOwnership (sender: TSender, newOwner: TAddress): Promise<TEth.TxLike>
unpause (sender: TSender, ): Promise<TEth.TxLike>
withdraw (sender: TSender, _shares: bigint): Promise<TEth.TxLike>
withdrawAll (sender: TSender, ): Promise<TEth.TxLike>
}
type TEvents = TAmmVaultV2ContractTypes['Events'];
type TEventParams<TEventName extends keyof TEvents> = Partial<TEvents[TEventName]['outputParams']>;
type TEventArguments<TEventName extends keyof TEvents> = Partial<TEvents[TEventName]['outputArgs']>;