/* Autogenerated file. Do not edit manually. */ /* eslint-disable */ import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, PopulatedTransaction, Signer, utils, } from 'ethers'; import type { FunctionFragment, Result } from '@ethersproject/abi'; import type { Listener, Provider } from '@ethersproject/providers'; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, } from './common'; export type StataTokenDataStruct = { asset: string; assetName: string; assetSymbol: string; aToken: string; aTokenName: string; aTokenSymbol: string; }; export type StataTokenDataStructOutput = [ string, string, string, string, string, string, ] & { asset: string; assetName: string; assetSymbol: string; aToken: string; aTokenName: string; aTokenSymbol: string; }; export type RewardStruct = { rewardAddress: string; rewardName: string; rewardSymbol: string; price: BigNumberish; decimals: BigNumberish; index: BigNumberish; maxEmissionPerSecond: BigNumberish; distributionEnd: BigNumberish; currentEmissionPerSecond: BigNumberish; apy: BigNumberish; }; export type RewardStructOutput = [ string, string, string, BigNumber, number, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, ] & { rewardAddress: string; rewardName: string; rewardSymbol: string; price: BigNumber; decimals: number; index: BigNumber; maxEmissionPerSecond: BigNumber; distributionEnd: BigNumber; currentEmissionPerSecond: BigNumber; apy: BigNumber; }; export type StakeDataStruct = { tokenAddress: string; name: string; symbol: string; price: BigNumberish; totalAssets: BigNumberish; targetLiquidity: BigNumberish; underlyingTokenAddress: string; underlyingTokenName: string; underlyingTokenSymbol: string; underlyingTokenDecimals: BigNumberish; cooldownSeconds: BigNumberish; unstakeWindowSeconds: BigNumberish; underlyingIsStataToken: boolean; stataTokenData: StataTokenDataStruct; rewards: RewardStruct[]; }; export type StakeDataStructOutput = [ string, string, string, BigNumber, BigNumber, string, string, string, number, BigNumber, BigNumber, boolean, StataTokenDataStructOutput, RewardStructOutput[], ] & { tokenAddress: string; name: string; symbol: string; price: BigNumber; totalAssets: BigNumber; targetLiquidity: BigNumber; underlyingTokenAddress: string; underlyingTokenName: string; underlyingTokenSymbol: string; underlyingTokenDecimals: number; cooldownSeconds: BigNumber; unstakeWindowSeconds: BigNumber; underlyingIsStataToken: boolean; stataTokenData: StataTokenDataStructOutput; rewards: RewardStructOutput[]; }; export type StakeUserBalancesStruct = { stakeTokenBalance: BigNumberish; stakeTokenRedeemableAmount: BigNumberish; underlyingTokenBalance: BigNumberish; stataTokenAssetBalance: BigNumberish; stataTokenATokenBalance: BigNumberish; }; export type StakeUserBalancesStructOutput = [ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, ] & { stakeTokenBalance: BigNumber; stakeTokenRedeemableAmount: BigNumber; underlyingTokenBalance: BigNumber; stataTokenAssetBalance: BigNumber; stataTokenATokenBalance: BigNumber; }; export type StakeUserCooldownStruct = { cooldownAmount: BigNumberish; endOfCooldown: BigNumberish; withdrawalWindow: BigNumberish; }; export type StakeUserCooldownStructOutput = [BigNumber, number, number] & { cooldownAmount: BigNumber; endOfCooldown: number; withdrawalWindow: number; }; export type StakeUserDataStruct = { stakeToken: string; stakeTokenName: string; balances: StakeUserBalancesStruct; cooldown: StakeUserCooldownStruct; rewards: string[]; rewardsAccrued: BigNumberish[]; }; export type StakeUserDataStructOutput = [ string, string, StakeUserBalancesStructOutput, StakeUserCooldownStructOutput, string[], BigNumber[], ] & { stakeToken: string; stakeTokenName: string; balances: StakeUserBalancesStructOutput; cooldown: StakeUserCooldownStructOutput; rewards: string[]; rewardsAccrued: BigNumber[]; }; export interface StakeDataProviderInterface extends utils.Interface { functions: { 'aaveOracle()': FunctionFragment; 'getStakeData()': FunctionFragment; 'getUserStakeData(address)': FunctionFragment; 'rewardsController()': FunctionFragment; 'stataTokenFactory()': FunctionFragment; 'umbrella()': FunctionFragment; }; getFunction( nameOrSignatureOrTopic: | 'aaveOracle' | 'getStakeData' | 'getUserStakeData' | 'rewardsController' | 'stataTokenFactory' | 'umbrella', ): FunctionFragment; encodeFunctionData( functionFragment: 'aaveOracle', values?: undefined, ): string; encodeFunctionData( functionFragment: 'getStakeData', values?: undefined, ): string; encodeFunctionData( functionFragment: 'getUserStakeData', values: [string], ): string; encodeFunctionData( functionFragment: 'rewardsController', values?: undefined, ): string; encodeFunctionData( functionFragment: 'stataTokenFactory', values?: undefined, ): string; encodeFunctionData(functionFragment: 'umbrella', values?: undefined): string; decodeFunctionResult(functionFragment: 'aaveOracle', data: BytesLike): Result; decodeFunctionResult( functionFragment: 'getStakeData', data: BytesLike, ): Result; decodeFunctionResult( functionFragment: 'getUserStakeData', data: BytesLike, ): Result; decodeFunctionResult( functionFragment: 'rewardsController', data: BytesLike, ): Result; decodeFunctionResult( functionFragment: 'stataTokenFactory', data: BytesLike, ): Result; decodeFunctionResult(functionFragment: 'umbrella', data: BytesLike): Result; events: {}; } export interface StakeDataProvider extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: StakeDataProviderInterface; queryFilter( event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined, ): Promise>; listeners( eventFilter?: TypedEventFilter, ): Array>; listeners(eventName?: string): Array; removeAllListeners( eventFilter: TypedEventFilter, ): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { aaveOracle(overrides?: CallOverrides): Promise<[string]>; getStakeData(overrides?: CallOverrides): Promise<[StakeDataStructOutput[]]>; getUserStakeData( user: string, overrides?: CallOverrides, ): Promise<[StakeUserDataStructOutput[]]>; rewardsController(overrides?: CallOverrides): Promise<[string]>; stataTokenFactory(overrides?: CallOverrides): Promise<[string]>; umbrella(overrides?: CallOverrides): Promise<[string]>; }; aaveOracle(overrides?: CallOverrides): Promise; getStakeData(overrides?: CallOverrides): Promise; getUserStakeData( user: string, overrides?: CallOverrides, ): Promise; rewardsController(overrides?: CallOverrides): Promise; stataTokenFactory(overrides?: CallOverrides): Promise; umbrella(overrides?: CallOverrides): Promise; callStatic: { aaveOracle(overrides?: CallOverrides): Promise; getStakeData(overrides?: CallOverrides): Promise; getUserStakeData( user: string, overrides?: CallOverrides, ): Promise; rewardsController(overrides?: CallOverrides): Promise; stataTokenFactory(overrides?: CallOverrides): Promise; umbrella(overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { aaveOracle(overrides?: CallOverrides): Promise; getStakeData(overrides?: CallOverrides): Promise; getUserStakeData( user: string, overrides?: CallOverrides, ): Promise; rewardsController(overrides?: CallOverrides): Promise; stataTokenFactory(overrides?: CallOverrides): Promise; umbrella(overrides?: CallOverrides): Promise; }; populateTransaction: { aaveOracle(overrides?: CallOverrides): Promise; getStakeData(overrides?: CallOverrides): Promise; getUserStakeData( user: string, overrides?: CallOverrides, ): Promise; rewardsController(overrides?: CallOverrides): Promise; stataTokenFactory(overrides?: CallOverrides): Promise; umbrella(overrides?: CallOverrides): Promise; }; }