import { TAddress } from '../../../models/TAddress'; import { TAccount } from '../../../models/TAccount'; import { ClientEventsStream, TClientEventsStreamData } from '../../../clients/ClientEventsStream'; import { ContractBase } from '../../../contracts/ContractBase'; import { ContractStorageReaderBase } from '../../../contracts/ContractStorageReaderBase'; import { TxWriter } from '../../../txs/TxWriter'; import { ITxLogItem } from '../../../txs/receipt/ITxLogItem'; import { Web3Client } from '../../../clients/Web3Client'; import { IBlockchainExplorer } from '../../../explorer/IBlockchainExplorer'; import { SubjectStream } from '../../../class/SubjectStream'; import type { TAbiItem } from '../../../types/TAbi'; import type { TEth } from '../../../models/TEth'; import type { TOverrideReturns } from '../../../utils/types'; export declare class AmmVaultV2Contract extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TAmmVaultV2ContractTypes; $meta: { class: string; }; $constructor(deployer: TSender, _token: TAddress, _receiptToken: TAddress, _masterchef: TAddress, _admin: TAddress, _treasury: TAddress): Promise; MAX_CALL_FEE(): Promise; MAX_PERFORMANCE_FEE(): Promise; MAX_WITHDRAW_FEE(): Promise; MAX_WITHDRAW_FEE_PERIOD(): Promise; admin(): Promise; available(): Promise; balanceOf(): Promise; calculateHarvestCakeRewards(): Promise; calculateTotalPendingCakeRewards(): Promise; callFee(): Promise; deposit(sender: TSender, _amount: bigint): Promise; emergencyWithdraw(sender: TSender): Promise; getPricePerFullShare(): Promise; harvest(sender: TSender): Promise; inCaseTokensGetStuck(sender: TSender, _token: TAddress): Promise; lastHarvestedTime(): Promise; masterchef(): Promise; owner(): Promise; pause(sender: TSender): Promise; paused(): Promise; performanceFee(): Promise; receiptToken(): 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; token(): Promise; totalShares(): Promise; transferOwnership(sender: TSender, newOwner: TAddress): Promise; treasury(): Promise; unpause(sender: TSender): Promise; userInfo(input0: TAddress): Promise<{ shares: bigint; lastDepositedTime: bigint; cakeAtLastUserAction: bigint; lastUserActionTime: bigint; }>; withdraw(sender: TSender, _shares: bigint): Promise; withdrawAll(sender: TSender): Promise; withdrawFee(): Promise; withdrawFeePeriod(): Promise; $call(): IAmmVaultV2ContractTxCaller; $signed(): TOverrideReturns>; $data(): IAmmVaultV2ContractTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TAmmVaultV2ContractTypes['Methods'][TMethod]['arguments']; }; }>; onLog(event: keyof TEvents, cb?: (event: TClientEventsStreamData) => void): ClientEventsStream; getPastLogs(events: TEventName[], options?: TEventLogOptions>): Promise, TEventName>[]>; getPastLogs(event: TEventName, options?: TEventLogOptions>): Promise, TEventName>[]>; onDeposit(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onHarvest(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onOwnershipTransferred(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onPause(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onPaused(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onUnpause(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onUnpaused(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onWithdraw(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsDeposit(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsHarvest(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsOwnershipTransferred(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsPause(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsPaused(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsUnpause(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsUnpaused(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsWithdraw(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsDeposit(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { sender?: TAddress; }; }): Promise>[]>; getPastLogsHarvest(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { sender?: TAddress; }; }): Promise>[]>; getPastLogsOwnershipTransferred(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { previousOwner?: TAddress; newOwner?: TAddress; }; }): Promise>[]>; getPastLogsPause(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsPaused(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsUnpause(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsUnpaused(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsWithdraw(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { sender?: TAddress; }; }): Promise>[]>; abi: TAbiItem[]; 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: []; }; }; }; declare class AmmVaultV2ContractStorageReader extends ContractStorageReaderBase { address: TAddress; client: Web3Client; explorer: IBlockchainExplorer; constructor(address: TAddress, client: Web3Client, explorer: IBlockchainExplorer); _owner(): Promise; _paused(): Promise; userInfo(key: TAddress): Promise<{ shares: bigint; lastDepositedTime: bigint; cakeAtLastUserAction: bigint; lastUserActionTime: bigint; }>; totalShares(): Promise; lastHarvestedTime(): Promise; admin(): Promise; treasury(): Promise; performanceFee(): Promise; callFee(): Promise; withdrawFee(): Promise; withdrawFeePeriod(): Promise; $slots: { slot: number; position: number; name: string; size: number; type: string; }[]; } interface IAmmVaultV2ContractTxCaller { deposit(sender: TSender, _amount: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; emergencyWithdraw(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; harvest(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; inCaseTokensGetStuck(sender: TSender, _token: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; pause(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; renounceOwnership(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setAdmin(sender: TSender, _admin: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setCallFee(sender: TSender, _callFee: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setPerformanceFee(sender: TSender, _performanceFee: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setTreasury(sender: TSender, _treasury: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setWithdrawFee(sender: TSender, _withdrawFee: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setWithdrawFeePeriod(sender: TSender, _withdrawFeePeriod: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; transferOwnership(sender: TSender, newOwner: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; unpause(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; withdraw(sender: TSender, _shares: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; withdrawAll(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } 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; export {};