@stakewise/v3-sdk
Version:
StakeWise v3 SDK
956 lines (940 loc) • 471 kB
TypeScript
import BigDecimals from 'bignumber.js';
import * as ethers from 'ethers';
import { JsonRpcProvider, DeferredTopicFilter, EventFragment, EventLog, TransactionRequest, Typed, ContractTransactionResponse, FunctionFragment, ContractTransaction, LogDescription, BaseContract, ContractRunner, Interface, AddressLike, BytesLike, Result, Listener, ContractMethod, BigNumberish, InterfaceAbi, Provider, BrowserProvider, FallbackProvider } from 'ethers';
declare enum Network {
Mainnet = 1,
Gnosis = 100,
/**
* Network for mainnet testing
*/
Hoodi = 560048,
/**
* Network for gnosis testing
*/
Chiado = 10200
}
declare enum VaultType {
Default = "Default",
Private = "Private",
Blocklist = "Blocklist"
}
declare enum AllocatorActionType {
Redeemed = "Redeemed",
Migrated = "Migrated",
Deposited = "Deposited",
TransferIn = "TransferIn",
VaultCreated = "VaultCreated",
OsTokenMinted = "OsTokenMinted",
OsTokenBurned = "OsTokenBurned",
BoostDeposited = "BoostDeposited",
OsTokenRedeemed = "OsTokenRedeemed",
ExitQueueEntered = "ExitQueueEntered",
OsTokenLiquidated = "OsTokenLiquidated",
ExitedAssetsClaimed = "ExitedAssetsClaimed",
BoostExitedAssetsClaimed = "BoostExitedAssetsClaimed"
}
declare enum OsTokenPositionHealth {
Unhealthy = 0,
Moderate = 1,
Healthy = 2,
Risky = 3
}
declare enum BorrowStatus {
Healthy = 0,
Moderate = 1,
Risky = 2
}
type GetGasInput = {
provider: StakeWise.Provider;
estimatedGas: bigint;
};
declare const getGas: (value: GetGasInput) => Promise<bigint>;
declare const _default$1: {
1: {
readonly network: {
readonly id: "mainnet";
readonly name: "Ethereum";
readonly chainId: Network.Mainnet;
readonly hexadecimalChainId: "0x1";
readonly blockExplorerUrl: "https://etherscan.io";
readonly nativeCurrency: {
readonly symbol: "ETH";
readonly name: "Ethereum";
readonly decimals: 18;
};
readonly isTestnet: false;
};
readonly api: {
readonly backend: "https://mainnet-api-b.stakewise.io/graphql";
readonly subgraph: readonly ["https://graphs.stakewise.io/mainnet-a/subgraphs/name/stakewise/prod", "https://graphs.stakewise.io/mainnet-b/subgraphs/name/stakewise/prod"];
};
readonly pages: {
readonly beaconchain: "https://beaconcha.in";
};
readonly addresses: {
readonly tokens: {
readonly ssv: "0x9d65ff81a3c488d585bbfb0bfe3c7707c7917f54";
readonly obol: "0x0b010000b7624eb9b3dfbc279673c76e9d29d5f7";
readonly swise: "0x48C3399719B582dD63eB5AADf12A40B4C3f52FA2";
readonly mintToken: "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38";
readonly depositToken: string;
readonly v2RewardToken: "0x20BC832ca081b91433ff6c17f85701B6e92486c5";
readonly v2StakedToken: "0xFe2e637202056d30016725477c5da089Ab0A043A";
};
readonly base: {
readonly keeper: "0x6B5815467da09DaA7DC83Db21c9239d98Bb487b5";
readonly multicall: "0xeefBa1e63905eF1D7ACbA5a8513c70307C1cE441";
readonly priceOracle: "0x8023518b2192FB5384DAdc596765B3dD1cdFe471";
readonly vaultsRegistry: "0x3a0008a588772446f6e656133C2D5029CC4FC20E";
readonly sharedMevEscrow: "0x48319f97E5Da1233c21c48b80097c0FB7a20Ff86";
readonly mintTokenConfigV1: "0xE8822246F8864DA92015813A39ae776087Fb1Cd5";
readonly mintTokenConfigV2: "0x287d1e2A8dE183A8bf8f2b09Fa1340fBd766eb59";
readonly depositDataRegistry: "0x75AB6DdCe07556639333d3Df1eaa684F5735223e";
readonly mintTokenController: "0x2A261e60FB14586B474C208b1B7AC6D0f5000306";
readonly rewardSplitterFactory: "0x256aF27ce81282A0491A5361172c1Db08f6cC5F8";
};
readonly factories: {
readonly vault: "0xDF82E5D27E175618e5bC4581ee336F59AdabfBB2";
readonly erc20Vault: "0x978302cAcAdEDE5d503390E176e86F3889Df6Ce6";
readonly privateVault: "0x80fC05f62C35C1b1361bc8908ea0aF06C510D390";
readonly erc20PrivateVault: "0x291Fa5849215847081B475450cBE5De46CfD4fAE";
readonly blocklistVault: "0x8b6c2C9E09c6022780D164F3cFd882808b8bDBF0";
readonly erc20BlocklistVault: "0xe487EDDB7C5802e416385544f0A6a4426AF4AE87";
};
readonly special: {
readonly stakeCalculator: "0x75c57bd50A3EB7291Da3429956D3566E0153A38f";
readonly leverageStrategy: "0x48cD14FDB8e72A03C8D952af081DBB127D6281fc";
};
};
readonly tokens: {
readonly ssv: "SSV";
readonly obol: "Obol";
readonly swise: "SWISE";
readonly mintToken: "osETH";
readonly nativeToken: "ETH";
readonly depositToken: "ETH";
readonly v2RewardToken: "rETH2";
readonly v2StakedToken: "sETH2";
};
};
560048: {
readonly network: {
readonly id: "hoodi";
readonly name: "Hoodi Testnet";
readonly chainId: Network.Hoodi;
readonly hexadecimalChainId: "0x88bb0";
readonly blockExplorerUrl: "https://hoodi.etherscan.io";
readonly nativeCurrency: {
readonly symbol: "ETH";
readonly name: "Ethereum";
readonly decimals: 18;
};
readonly isTestnet: true;
};
readonly api: {
readonly backend: "https://hoodi-api.stakewise.io/graphql";
readonly subgraph: "https://graphs.stakewise.io/hoodi/subgraphs/name/stakewise/prod";
};
readonly pages: {
readonly beaconchain: "https://hoodi.beaconcha.in/";
};
readonly addresses: {
readonly tokens: {
readonly ssv: string;
readonly obol: string;
readonly swise: "0x3c5634a5437A394353F49fe04FE5db11961c5c2D";
readonly mintToken: "0x7345fC8268459413beE9e9dd327f31283C65Ee7e";
readonly depositToken: string;
readonly v2RewardToken: "0x75c57bd50A3EB7291Da3429956D3566E0153A38f";
readonly v2StakedToken: "0xe684eD3e740A3fD62e86b6bD6a8865e070568BCa";
};
readonly base: {
readonly keeper: "0xA7D1Ac9D6F32B404C75626874BA56f7654c1dC0f";
readonly multicall: "0xcA11bde05977b3631167028862bE2a173976CA11";
readonly priceOracle: "0xe8a222D887b468a71Ee8a27df4fa3b886A4B7BA1";
readonly vaultsRegistry: "0xf16fea93D3253A401C3f73B0De890C6586740B25";
readonly sharedMevEscrow: "0x51FD45BAEfB12f54766B5C4d639b360Ea50063bd";
readonly mintTokenConfigV1: string;
readonly mintTokenConfigV2: "0x5b817621EBE00622b9a71b53c942b392751c8197";
readonly depositDataRegistry: "0x93a3f880E07B27dacA6Ef2d3C23E77DBd6294487";
readonly mintTokenController: "0x140Fc69Eabd77fFF91d9852B612B2323256f7Ac1";
readonly rewardSplitterFactory: "0x80353898B72417AC5701a9809A9eF63F691BdE86";
};
readonly factories: {
readonly vault: "0x508e82B5119CCfB923C387d62D2Ae7B56Df79906";
readonly erc20Vault: "0xBb1B3E55315967c65133A0e942d8EA7a992aF6C7";
readonly privateVault: "0x9115E176C3d034339036194c3EB7014Ef04A2e4b";
readonly erc20PrivateVault: "0x76D90928645065b4D4212eE62ce1ba8f90718f14";
readonly blocklistVault: "0xE2121568066C0a9d794bbB95D0Ade0ebd81cCaf9";
readonly erc20BlocklistVault: "0x4E3dE90882B3d10D067b8954909D4A4b0Bb390D0";
};
readonly special: {
readonly stakeCalculator: "0xaE9A192Ed2030444eB9323C592F1b85801EA0Ec3";
readonly leverageStrategy: string;
};
};
readonly tokens: {
readonly ssv: "SSV";
readonly obol: "Obol";
readonly swise: "SWISE";
readonly mintToken: "osETH";
readonly nativeToken: "ETH";
readonly depositToken: "ETH";
readonly v2RewardToken: "rETH2";
readonly v2StakedToken: "sETH2";
};
};
100: {
readonly network: {
readonly id: "gnosis";
readonly name: "Gnosis Chain";
readonly chainId: Network.Gnosis;
readonly hexadecimalChainId: "0x64";
readonly blockExplorerUrl: "https://gnosisscan.io";
readonly nativeCurrency: {
readonly symbol: "xDAI";
readonly name: "xDAI";
readonly decimals: 18;
};
readonly isTestnet: false;
};
readonly api: {
readonly backend: "https://gnosis-api-b.stakewise.io/graphql";
readonly subgraph: "https://graphs.stakewise.io/gnosis/subgraphs/name/stakewise/prod";
};
readonly pages: {
readonly beaconchain: "https://gnosis.beaconcha.in";
};
readonly addresses: {
readonly tokens: {
readonly ssv: string;
readonly obol: string;
readonly swise: "0xfdA94F056346d2320d4B5E468D6Ad099b2277746";
readonly mintToken: "0xF490c80aAE5f2616d3e3BDa2483E30C4CB21d1A0";
readonly depositToken: "0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb";
readonly v2RewardToken: "0x6aC78efae880282396a335CA2F79863A1e6831D4";
readonly v2StakedToken: "0xA4eF9Da5BA71Cc0D2e5E877a910A37eC43420445";
};
readonly base: {
readonly keeper: "0xcAC0e3E35d3BA271cd2aaBE688ac9DB1898C26aa";
readonly multicall: "0xb5b692a88BDFc81ca69dcB1d924f59f0413A602a";
readonly priceOracle: "0x9B1b13afA6a57e54C03AD0428a4766C39707D272";
readonly vaultsRegistry: "0x7d014B3C6ee446563d4e0cB6fBD8C3D0419867cB";
readonly sharedMevEscrow: "0x30db0d10d3774e78f8cB214b9e8B72D4B402488a";
readonly mintTokenConfigV1: string;
readonly mintTokenConfigV2: "0xd6672fbE1D28877db598DC0ac2559A15745FC3ec";
readonly depositDataRegistry: "0x58e16621B5c0786D6667D2d54E28A20940269E16";
readonly mintTokenController: "0x60B2053d7f2a0bBa70fe6CDd88FB47b579B9179a";
readonly rewardSplitterFactory: "0x4c6306BA1821D88803e27A115433520F2d6276Fb";
};
readonly factories: {
readonly vault: "0xC2ecc7620416bd65bfab7010B0db955a0e49579a";
readonly erc20Vault: "0xF6BBBc05536Ab198d4b7Ab74a93f8e2d4cAd5354";
readonly privateVault: "0x574952EC88b2fC271d0C0dB130794c86Ea42139A";
readonly erc20PrivateVault: "0x48319f97E5Da1233c21c48b80097c0FB7a20Ff86";
readonly blocklistVault: "0x78FbfBd1DD38892476Ac469325df36604A27F5B7";
readonly erc20BlocklistVault: "0x99E4300326867FE3f97864a74e500d19654c19e9";
};
readonly special: {
readonly stakeCalculator: "0x2A415b65207049AC7481BF69ff9fc1B3Def97c9A";
readonly leverageStrategy: string;
};
};
readonly tokens: {
readonly ssv: "SSV";
readonly obol: "Obol";
readonly swise: "SWISE";
readonly mintToken: "osGNO";
readonly nativeToken: "xDAI";
readonly depositToken: "GNO";
readonly v2RewardToken: "rGNO";
readonly v2StakedToken: "sGNO";
};
};
10200: {
readonly network: {
readonly id: "chiado";
readonly name: "Chiado Testnet";
readonly chainId: Network.Chiado;
readonly hexadecimalChainId: "0x27D8";
readonly blockExplorerUrl: "https://gnosis-chiado.blockscout.com";
readonly nativeCurrency: {
readonly symbol: "xDAI";
readonly name: "xDAI";
readonly decimals: 18;
};
readonly isTestnet: true;
};
readonly api: {
readonly backend: "https://chiado-api.stakewise.io/graphql";
readonly subgraph: "https://graphs.stakewise.io/chiado/subgraphs/name/stakewise/prod";
};
readonly pages: {
readonly beaconchain: "https://beacon.chiadochain.net";
};
readonly addresses: {
readonly tokens: {
readonly ssv: string;
readonly obol: string;
readonly swise: "0x460d2c6c3254809949a7d0b4646ce15F77e9c545";
readonly mintToken: "0x0b4F6bFB694790051E0203Db83edbB5888099556";
readonly depositToken: "0x19C653Da7c37c66208fbfbE8908A5051B57b4C70";
readonly v2RewardToken: "0x14c74b1C7eCa8362D4ABcCd71051Ce174d61a3D4";
readonly v2StakedToken: "0xee2493a42861a0a49f88525c44aab8126d04b761";
};
readonly base: {
readonly keeper: "0x5f31eD13eBF81B67a9f9498F3d1D2Da553058988";
readonly multicall: "0xcA11bde05977b3631167028862bE2a173976CA11";
readonly priceOracle: "0x3CC131e6f6b975423151E5aaE8C466f4f81A8A4c";
readonly vaultsRegistry: "0x8750594B33516232e751C8B9C350a660cD5f1BB8";
readonly sharedMevEscrow: "0x453056f0bc4631abB15eEC656139f88067668E3E";
readonly mintTokenConfigV1: string;
readonly mintTokenConfigV2: "0x6D5957e075fd93b3B9F36Da93d7462F14387706d";
readonly depositDataRegistry: "0xFAce8504462AEb9BB6ae7Ecb206BD7B1EdF7956D";
readonly mintTokenController: "0x5518052f2d898f062ee59964004A560F24E2eE7d";
readonly rewardSplitterFactory: "0x6EE912596DCC3a8b7308164A65Af529a4276737C";
};
readonly factories: {
readonly vault: "0x7fEFdC8375E84Adb0bE5e4Ba5E238c021F1858fE";
readonly erc20Vault: "0x7eA0D7dB6cf2402eB2B1A56bfBf6c2C88e6c8284";
readonly privateVault: "0xA67D62F8D26Fe034426B512A6621D4e8fc8B2aB3";
readonly erc20PrivateVault: "0x588102eB5E387956b8067F4948BcA34893E89597";
readonly blocklistVault: "0x2bC7968461c51525433b9DcE504a543b26a2f31B";
readonly erc20BlocklistVault: "0x35482A11E21157E0C706d1A562483902421dB341";
};
readonly special: {
readonly stakeCalculator: "0x35704E96851d4aDd48475757b8f9bbb2390D9e4E";
readonly leverageStrategy: string;
};
};
readonly tokens: {
readonly ssv: "SSV";
readonly obol: "Obol";
readonly swise: "SWISE";
readonly mintToken: "osGNO";
readonly nativeToken: "xDAI";
readonly depositToken: "GNO";
readonly v2RewardToken: "rGNO";
readonly v2StakedToken: "sGNO";
};
};
};
type Argument = bigint | string | number | BigDecimal;
/**
* @private
* @description This class can be modified without maintaining backward compatibility.
*/
declare class BigDecimal {
#private;
constructor(value: Argument);
toBigDecimal(value: Argument): BigDecimals;
divide(value: Argument): this;
multiply(value: Argument): this;
minus(value: Argument): this;
plus(value: Argument): this;
decimals(count: number): this;
toString(): string;
toNumber(): number;
}
declare const getTimestamp: (days: number) => number;
declare const createProvider: (options: StakeWise.Options) => JsonRpcProvider | StakeWise.CustomFallbackProvider;
interface TypedDeferredTopicFilter$1<_TCEvent extends TypedContractEvent$1> extends DeferredTopicFilter {
}
interface TypedContractEvent$1<InputTuple extends Array<any> = any, OutputTuple extends Array<any> = any, OutputObject = any> {
(...args: Partial<InputTuple>): TypedDeferredTopicFilter$1<TypedContractEvent$1<InputTuple, OutputTuple, OutputObject>>;
name: string;
fragment: EventFragment;
getFragment(...args: Partial<InputTuple>): EventFragment;
}
type __TypechainAOutputTuple$1<T> = T extends TypedContractEvent$1<infer _U, infer W> ? W : never;
type __TypechainOutputObject$1<T> = T extends TypedContractEvent$1<infer _U, infer _W, infer V> ? V : never;
interface TypedEventLog$1<TCEvent extends TypedContractEvent$1> extends Omit<EventLog, "args"> {
args: __TypechainAOutputTuple$1<TCEvent> & __TypechainOutputObject$1<TCEvent>;
}
interface TypedLogDescription<TCEvent extends TypedContractEvent$1> extends Omit<LogDescription, "args"> {
args: __TypechainAOutputTuple$1<TCEvent> & __TypechainOutputObject$1<TCEvent>;
}
type TypedListener$1<TCEvent extends TypedContractEvent$1> = (...listenerArg: [
...__TypechainAOutputTuple$1<TCEvent>,
TypedEventLog$1<TCEvent>,
...undefined[]
]) => void;
type StateMutability$1 = "nonpayable" | "payable" | "view";
type BaseOverrides$1 = Omit<TransactionRequest, "to" | "data">;
type NonPayableOverrides$1 = Omit<BaseOverrides$1, "value" | "blockTag" | "enableCcipRead">;
type PayableOverrides$1 = Omit<BaseOverrides$1, "blockTag" | "enableCcipRead">;
type ViewOverrides$1 = Omit<TransactionRequest, "to" | "data">;
type Overrides$1<S extends StateMutability$1> = S extends "nonpayable" ? NonPayableOverrides$1 : S extends "payable" ? PayableOverrides$1 : ViewOverrides$1;
type PostfixOverrides$1<A extends Array<any>, S extends StateMutability$1> = A | [...A, Overrides$1<S>];
type ContractMethodArgs$1<A extends Array<any>, S extends StateMutability$1> = PostfixOverrides$1<{
[I in keyof A]-?: A[I] | Typed;
}, S>;
type DefaultReturnType$1<R> = R extends Array<any> ? R[0] : R;
interface TypedContractMethod$1<A extends Array<any> = Array<any>, R = any, S extends StateMutability$1 = "payable"> {
(...args: ContractMethodArgs$1<A, S>): S extends "view" ? Promise<DefaultReturnType$1<R>> : Promise<ContractTransactionResponse>;
name: string;
fragment: FunctionFragment;
getFragment(...args: ContractMethodArgs$1<A, S>): FunctionFragment;
populateTransaction(...args: ContractMethodArgs$1<A, S>): Promise<ContractTransaction>;
staticCall(...args: ContractMethodArgs$1<A, "view">): Promise<DefaultReturnType$1<R>>;
send(...args: ContractMethodArgs$1<A, S>): Promise<ContractTransactionResponse>;
estimateGas(...args: ContractMethodArgs$1<A, S>): Promise<bigint>;
staticCallResult(...args: ContractMethodArgs$1<A, "view">): Promise<R>;
}
interface DepositDataRegistryAbiInterface extends Interface {
getFunction(nameOrSignature: "getDepositDataManager" | "setDepositDataManager" | "setDepositDataRoot"): FunctionFragment;
encodeFunctionData(functionFragment: "getDepositDataManager", values: [AddressLike]): string;
encodeFunctionData(functionFragment: "setDepositDataManager", values: [AddressLike, AddressLike]): string;
encodeFunctionData(functionFragment: "setDepositDataRoot", values: [AddressLike, BytesLike]): string;
decodeFunctionResult(functionFragment: "getDepositDataManager", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setDepositDataManager", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setDepositDataRoot", data: BytesLike): Result;
}
interface DepositDataRegistryAbi extends BaseContract {
connect(runner?: ContractRunner | null): DepositDataRegistryAbi;
waitForDeployment(): Promise<this>;
interface: DepositDataRegistryAbiInterface;
queryFilter<TCEvent extends TypedContractEvent$1>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
on<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent$1>(event: TCEvent): Promise<Array<TypedListener$1<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent$1>(event?: TCEvent): Promise<this>;
getDepositDataManager: TypedContractMethod$1<[
vault: AddressLike
], [
string
], "view">;
setDepositDataManager: TypedContractMethod$1<[
vault: AddressLike,
depositDataManager: AddressLike
], [
void
], "nonpayable">;
setDepositDataRoot: TypedContractMethod$1<[
vault: AddressLike,
depositDataRoot: BytesLike
], [
void
], "nonpayable">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "getDepositDataManager"): TypedContractMethod$1<[vault: AddressLike], [string], "view">;
getFunction(nameOrSignature: "setDepositDataManager"): TypedContractMethod$1<[
vault: AddressLike,
depositDataManager: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setDepositDataRoot"): TypedContractMethod$1<[
vault: AddressLike,
depositDataRoot: BytesLike
], [
void
], "nonpayable">;
filters: {};
}
declare namespace IEigenDelegationManager {
type SignatureWithExpiryStruct = {
signature: BytesLike;
expiry: BigNumberish;
};
type SignatureWithExpiryStructOutput = [
signature: string,
expiry: bigint
] & {
signature: string;
expiry: bigint;
};
}
interface EigenPodOwnerAbiInterface extends Interface {
getFunction(nameOrSignature: "eigenPod" | "multicall" | "delegateTo" | "undelegate"): FunctionFragment;
encodeFunctionData(functionFragment: "eigenPod", values?: undefined): string;
encodeFunctionData(functionFragment: "multicall", values: [BytesLike[]]): string;
encodeFunctionData(functionFragment: "delegateTo", values: [
AddressLike,
IEigenDelegationManager.SignatureWithExpiryStruct,
BytesLike
]): string;
encodeFunctionData(functionFragment: "undelegate", values?: undefined): string;
decodeFunctionResult(functionFragment: "eigenPod", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "delegateTo", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "undelegate", data: BytesLike): Result;
}
interface EigenPodOwnerAbi extends BaseContract {
connect(runner?: ContractRunner | null): EigenPodOwnerAbi;
waitForDeployment(): Promise<this>;
interface: EigenPodOwnerAbiInterface;
queryFilter<TCEvent extends TypedContractEvent$1>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
on<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent$1>(event: TCEvent): Promise<Array<TypedListener$1<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent$1>(event?: TCEvent): Promise<this>;
eigenPod: TypedContractMethod$1<[], [string], "view">;
multicall: TypedContractMethod$1<[data: BytesLike[]], [string[]], "nonpayable">;
delegateTo: TypedContractMethod$1<[
operator: AddressLike,
approverSignatureAndExpiry: IEigenDelegationManager.SignatureWithExpiryStruct,
approverSalt: BytesLike
], [
void
], "nonpayable">;
undelegate: TypedContractMethod$1<[], [void], "nonpayable">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "eigenPod"): TypedContractMethod$1<[], [string], "view">;
getFunction(nameOrSignature: "multicall"): TypedContractMethod$1<[data: BytesLike[]], [string[]], "nonpayable">;
getFunction(nameOrSignature: "delegateTo"): TypedContractMethod$1<[
operator: AddressLike,
approverSignatureAndExpiry: IEigenDelegationManager.SignatureWithExpiryStruct,
approverSalt: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "undelegate"): TypedContractMethod$1<[], [void], "nonpayable">;
filters: {};
}
interface Erc20AbiInterface extends Interface {
getFunction(nameOrSignature: "approve" | "permit" | "name" | "nonces" | "balanceOf" | "allowance"): FunctionFragment;
getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
encodeFunctionData(functionFragment: "approve", values: [AddressLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "permit", values: [
AddressLike,
AddressLike,
BigNumberish,
BigNumberish,
BigNumberish,
BytesLike,
BytesLike
]): string;
encodeFunctionData(functionFragment: "name", values?: undefined): string;
encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string;
encodeFunctionData(functionFragment: "balanceOf", values: [AddressLike]): string;
encodeFunctionData(functionFragment: "allowance", values: [AddressLike, AddressLike]): string;
decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
}
declare namespace TransferEvent {
type InputTuple = [
from: AddressLike,
to: AddressLike,
value: BigNumberish
];
type OutputTuple = [from: string, to: string, value: bigint];
interface OutputObject {
from: string;
to: string;
value: bigint;
}
type Event = TypedContractEvent$1<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter$1<Event>;
type Log = TypedEventLog$1<Event>;
type LogDescription = TypedLogDescription<Event>;
}
interface Erc20Abi extends BaseContract {
connect(runner?: ContractRunner | null): Erc20Abi;
waitForDeployment(): Promise<this>;
interface: Erc20AbiInterface;
queryFilter<TCEvent extends TypedContractEvent$1>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
on<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent$1>(event: TCEvent): Promise<Array<TypedListener$1<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent$1>(event?: TCEvent): Promise<this>;
approve: TypedContractMethod$1<[
spender: AddressLike,
value: BigNumberish
], [
boolean
], "nonpayable">;
permit: TypedContractMethod$1<[
owner: AddressLike,
spender: AddressLike,
value: BigNumberish,
deadline: BigNumberish,
v: BigNumberish,
r: BytesLike,
s: BytesLike
], [
void
], "nonpayable">;
name: TypedContractMethod$1<[], [string], "view">;
nonces: TypedContractMethod$1<[owner: AddressLike], [bigint], "view">;
balanceOf: TypedContractMethod$1<[account: AddressLike], [bigint], "view">;
allowance: TypedContractMethod$1<[
owner: AddressLike,
spender: AddressLike
], [
bigint
], "view">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "approve"): TypedContractMethod$1<[
spender: AddressLike,
value: BigNumberish
], [
boolean
], "nonpayable">;
getFunction(nameOrSignature: "permit"): TypedContractMethod$1<[
owner: AddressLike,
spender: AddressLike,
value: BigNumberish,
deadline: BigNumberish,
v: BigNumberish,
r: BytesLike,
s: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "name"): TypedContractMethod$1<[], [string], "view">;
getFunction(nameOrSignature: "nonces"): TypedContractMethod$1<[owner: AddressLike], [bigint], "view">;
getFunction(nameOrSignature: "balanceOf"): TypedContractMethod$1<[account: AddressLike], [bigint], "view">;
getFunction(nameOrSignature: "allowance"): TypedContractMethod$1<[
owner: AddressLike,
spender: AddressLike
], [
bigint
], "view">;
getEvent(key: "Transfer"): TypedContractEvent$1<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
filters: {
"Transfer(address,address,uint256)": TypedContractEvent$1<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
Transfer: TypedContractEvent$1<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
};
}
interface KeeperAbiInterface extends Interface {
getFunction(nameOrSignature: "isCollateralized" | "canHarvest"): FunctionFragment;
encodeFunctionData(functionFragment: "isCollateralized", values: [AddressLike]): string;
encodeFunctionData(functionFragment: "canHarvest", values: [AddressLike]): string;
decodeFunctionResult(functionFragment: "isCollateralized", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "canHarvest", data: BytesLike): Result;
}
interface KeeperAbi extends BaseContract {
connect(runner?: ContractRunner | null): KeeperAbi;
waitForDeployment(): Promise<this>;
interface: KeeperAbiInterface;
queryFilter<TCEvent extends TypedContractEvent$1>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
on<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent$1>(event: TCEvent): Promise<Array<TypedListener$1<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent$1>(event?: TCEvent): Promise<this>;
isCollateralized: TypedContractMethod$1<[
vault: AddressLike
], [
boolean
], "view">;
canHarvest: TypedContractMethod$1<[vault: AddressLike], [boolean], "view">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "isCollateralized"): TypedContractMethod$1<[vault: AddressLike], [boolean], "view">;
getFunction(nameOrSignature: "canHarvest"): TypedContractMethod$1<[vault: AddressLike], [boolean], "view">;
filters: {};
}
declare namespace IKeeperRewards$4 {
type HarvestParamsStruct = {
rewardsRoot: BytesLike;
reward: BigNumberish;
unlockedMevReward: BigNumberish;
proof: BytesLike[];
};
type HarvestParamsStructOutput = [
rewardsRoot: string,
reward: bigint,
unlockedMevReward: bigint,
proof: string[]
] & {
rewardsRoot: string;
reward: bigint;
unlockedMevReward: bigint;
proof: string[];
};
}
declare namespace ILeverageStrategy {
type ExitPositionStruct = {
positionTicket: BigNumberish;
timestamp: BigNumberish;
exitQueueIndex: BigNumberish;
};
type ExitPositionStructOutput = [
positionTicket: bigint,
timestamp: bigint,
exitQueueIndex: bigint
] & {
positionTicket: bigint;
timestamp: bigint;
exitQueueIndex: bigint;
};
}
interface LeverageStrategyAbiInterface extends Interface {
getFunction(nameOrSignature: "deposit" | "updateVaultState" | "permit" | "multicall" | "getStrategyProxy" | "enterExitQueue" | "claimExitedAssets"): FunctionFragment;
encodeFunctionData(functionFragment: "deposit", values: [AddressLike, BigNumberish, AddressLike]): string;
encodeFunctionData(functionFragment: "updateVaultState", values: [AddressLike, IKeeperRewards$4.HarvestParamsStruct]): string;
encodeFunctionData(functionFragment: "permit", values: [
AddressLike,
BigNumberish,
BigNumberish,
BigNumberish,
BytesLike,
BytesLike
]): string;
encodeFunctionData(functionFragment: "multicall", values: [BytesLike[]]): string;
encodeFunctionData(functionFragment: "getStrategyProxy", values: [AddressLike, AddressLike]): string;
encodeFunctionData(functionFragment: "enterExitQueue", values: [AddressLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "claimExitedAssets", values: [AddressLike, AddressLike, ILeverageStrategy.ExitPositionStruct]): string;
decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "updateVaultState", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getStrategyProxy", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "enterExitQueue", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "claimExitedAssets", data: BytesLike): Result;
}
interface LeverageStrategyAbi extends BaseContract {
connect(runner?: ContractRunner | null): LeverageStrategyAbi;
waitForDeployment(): Promise<this>;
interface: LeverageStrategyAbiInterface;
queryFilter<TCEvent extends TypedContractEvent$1>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
on<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent$1>(event: TCEvent): Promise<Array<TypedListener$1<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent$1>(event?: TCEvent): Promise<this>;
deposit: TypedContractMethod$1<[
vault: AddressLike,
osTokenShares: BigNumberish,
referrer: AddressLike
], [
void
], "nonpayable">;
updateVaultState: TypedContractMethod$1<[
vault: AddressLike,
harvestParams: IKeeperRewards$4.HarvestParamsStruct
], [
void
], "nonpayable">;
permit: TypedContractMethod$1<[
vault: AddressLike,
osTokenShares: BigNumberish,
deadline: BigNumberish,
v: BigNumberish,
r: BytesLike,
s: BytesLike
], [
void
], "nonpayable">;
multicall: TypedContractMethod$1<[data: BytesLike[]], [string[]], "nonpayable">;
getStrategyProxy: TypedContractMethod$1<[
vault: AddressLike,
user: AddressLike
], [
string
], "view">;
enterExitQueue: TypedContractMethod$1<[
vault: AddressLike,
positionPercent: BigNumberish
], [
bigint
], "nonpayable">;
claimExitedAssets: TypedContractMethod$1<[
vault: AddressLike,
user: AddressLike,
exitPosition: ILeverageStrategy.ExitPositionStruct
], [
void
], "nonpayable">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "deposit"): TypedContractMethod$1<[
vault: AddressLike,
osTokenShares: BigNumberish,
referrer: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "updateVaultState"): TypedContractMethod$1<[
vault: AddressLike,
harvestParams: IKeeperRewards$4.HarvestParamsStruct
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "permit"): TypedContractMethod$1<[
vault: AddressLike,
osTokenShares: BigNumberish,
deadline: BigNumberish,
v: BigNumberish,
r: BytesLike,
s: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "multicall"): TypedContractMethod$1<[data: BytesLike[]], [string[]], "nonpayable">;
getFunction(nameOrSignature: "getStrategyProxy"): TypedContractMethod$1<[
vault: AddressLike,
user: AddressLike
], [
string
], "view">;
getFunction(nameOrSignature: "enterExitQueue"): TypedContractMethod$1<[
vault: AddressLike,
positionPercent: BigNumberish
], [
bigint
], "nonpayable">;
getFunction(nameOrSignature: "claimExitedAssets"): TypedContractMethod$1<[
vault: AddressLike,
user: AddressLike,
exitPosition: ILeverageStrategy.ExitPositionStruct
], [
void
], "nonpayable">;
filters: {};
}
interface MintTokenConfigV1AbiInterface extends Interface {
getFunction(nameOrSignature: "ltvPercent" | "liqThresholdPercent"): FunctionFragment;
encodeFunctionData(functionFragment: "ltvPercent", values?: undefined): string;
encodeFunctionData(functionFragment: "liqThresholdPercent", values?: undefined): string;
decodeFunctionResult(functionFragment: "ltvPercent", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "liqThresholdPercent", data: BytesLike): Result;
}
interface MintTokenConfigV1Abi extends BaseContract {
connect(runner?: ContractRunner | null): MintTokenConfigV1Abi;
waitForDeployment(): Promise<this>;
interface: MintTokenConfigV1AbiInterface;
queryFilter<TCEvent extends TypedContractEvent$1>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
on<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent$1>(event: TCEvent): Promise<Array<TypedListener$1<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent$1>(event?: TCEvent): Promise<this>;
ltvPercent: TypedContractMethod$1<[], [bigint], "view">;
liqThresholdPercent: TypedContractMethod$1<[], [bigint], "view">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "ltvPercent"): TypedContractMethod$1<[], [bigint], "view">;
getFunction(nameOrSignature: "liqThresholdPercent"): TypedContractMethod$1<[], [bigint], "view">;
filters: {};
}
declare namespace IOsTokenConfig {
type ConfigStruct = {
liqBonusPercent: BigNumberish;
liqThresholdPercent: BigNumberish;
ltvPercent: BigNumberish;
};
type ConfigStructOutput = [
liqBonusPercent: bigint,
liqThresholdPercent: bigint,
ltvPercent: bigint
] & {
liqBonusPercent: bigint;
liqThresholdPercent: bigint;
ltvPercent: bigint;
};
}
interface MintTokenConfigV2AbiInterface extends Interface {
getFunction(nameOrSignature: "getConfig"): FunctionFragment;
encodeFunctionData(functionFragment: "getConfig", values: [AddressLike]): string;
decodeFunctionResult(functionFragment: "getConfig", data: BytesLike): Result;
}
interface MintTokenConfigV2Abi extends BaseContract {
connect(runner?: ContractRunner | null): MintTokenConfigV2Abi;
waitForDeployment(): Promise<this>;
interface: MintTokenConfigV2AbiInterface;
queryFilter<TCEvent extends TypedContractEvent$1>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
on<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent$1>(event: TCEvent): Promise<Array<TypedListener$1<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent$1>(event?: TCEvent): Promise<this>;
getConfig: TypedContractMethod$1<[
vault: AddressLike
], [
IOsTokenConfig.ConfigStructOutput
], "view">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "getConfig"): TypedContractMethod$1<[
vault: AddressLike
], [
IOsTokenConfig.ConfigStructOutput
], "view">;
filters: {};
}
interface MintTokenControllerAbiInterface extends Interface {
getFunction(nameOrSignature: "convertToShares" | "convertToAssets" | "avgRewardPerSecond" | "feePercent"): FunctionFragment;
encodeFunctionData(functionFragment: "convertToShares", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "convertToAssets", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "avgRewardPerSecond", values?: undefined): string;
encodeFunctionData(functionFragment: "feePercent", values?: undefined): string;
decodeFunctionResult(functionFragment: "convertToShares", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "convertToAssets", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "avgRewardPerSecond", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "feePercent", data: BytesLike): Result;
}
interface MintTokenControllerAbi extends BaseContract {
connect(runner?: ContractRunner | null): MintTokenControllerAbi;
waitForDeployment(): Promise<this>;
interface: MintTokenControllerAbiInterface;
queryFilter<TCEvent extends TypedContractEvent$1>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
on<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(event: TCEvent, listener: TypedListener$1<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, listener: TypedListener$1<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent$1>(event: TCEvent): Promise<Array<TypedListener$1<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent$1>(event?: TCEvent): Promise<this>;
convertToShares: TypedContractMethod$1<[
assets: BigNumberish
], [
bigint
], "view">;
convertToAssets: TypedContractMethod$1<[
shares: BigNumberish
], [
bigint
], "view">;
avgRewardPerSecond: TypedContractMethod$1<[], [bigint], "view">;
feePercent: TypedContractMethod$1<[], [bigint], "view">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "convertToShares"): TypedContractMethod$1<[assets: BigNumberish], [bigint], "view">;
getFunction(nameOrSignature: "convertToAssets"): TypedContractMethod$1<[shares: BigNumberish], [bigint], "view">;
getFunction(nameOrSignature: "avgRewardPerSecond"): TypedContractMethod$1<[], [bigint], "view">;
getFunction(nameOrSignature: "feePercent"): TypedContractMethod$1<[], [bigint], "view">;
filters: {};
}
interface MulticallAbiInterface extends Interface {
getFunction(nameOrSignature: "aggregate" | "getEthBalance"): FunctionFragment;
encodeFunctionData(functionFragment: "aggregate", values: [{
target: AddressLike;
callData: BytesLike;
}[]]): string;
encodeFunctionData(functionFragment: "getEthBalance", values: [AddressLike]): string;
decodeFunctionResult(functionFragment: "aggregate", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getEthBalance", data: BytesLike): Result;
}
interface MulticallAbi extends BaseContract {
connect(runner?: ContractRunner | null): MulticallAbi;
waitForDeployment(): Promise<this>;
interface: MulticallAbiInterface;
queryFilter<TCEvent extends TypedContractEvent$1>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog$1<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent$1>(filter: TypedDeferredTopicFilter$1<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog