import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, PopulatedTransaction, Signer, utils } from "ethers"; import { FunctionFragment, Result } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export declare type BalanceActionWithTradesStruct = { actionType: BigNumberish; currencyId: BigNumberish; depositActionAmount: BigNumberish; withdrawAmountInternalPrecision: BigNumberish; withdrawEntireCashBalance: boolean; redeemToUnderlying: boolean; trades: BytesLike[]; }; export declare type BalanceActionWithTradesStructOutput = [ number, number, BigNumber, BigNumber, boolean, boolean, string[] ] & { actionType: number; currencyId: number; depositActionAmount: BigNumber; withdrawAmountInternalPrecision: BigNumber; withdrawEntireCashBalance: boolean; redeemToUnderlying: boolean; trades: string[]; }; export declare type BatchLendStruct = { currencyId: BigNumberish; depositUnderlying: boolean; trades: BytesLike[]; }; export declare type BatchLendStructOutput = [number, boolean, string[]] & { currencyId: number; depositUnderlying: boolean; trades: string[]; }; export declare type AccountContextStruct = { nextSettleTime: BigNumberish; hasDebt: BytesLike; assetArrayLength: BigNumberish; bitmapCurrencyId: BigNumberish; activeCurrencies: BytesLike; }; export declare type AccountContextStructOutput = [ number, string, number, number, string ] & { nextSettleTime: number; hasDebt: string; assetArrayLength: number; bitmapCurrencyId: number; activeCurrencies: string; }; export declare type PortfolioAssetStruct = { currencyId: BigNumberish; maturity: BigNumberish; assetType: BigNumberish; notional: BigNumberish; storageSlot: BigNumberish; storageState: BigNumberish; }; export declare type PortfolioAssetStructOutput = [ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, number ] & { currencyId: BigNumber; maturity: BigNumber; assetType: BigNumber; notional: BigNumber; storageSlot: BigNumber; storageState: number; }; export declare type CashGroupSettingsStruct = { maxMarketIndex: BigNumberish; rateOracleTimeWindowMin: BigNumberish; totalFeeBPS: BigNumberish; reserveFeeShare: BigNumberish; debtBuffer5BPS: BigNumberish; fCashHaircut5BPS: BigNumberish; settlementPenaltyRate5BPS: BigNumberish; liquidationfCashHaircut5BPS: BigNumberish; liquidationDebtBuffer5BPS: BigNumberish; liquidityTokenHaircuts: BigNumberish[]; rateScalars: BigNumberish[]; }; export declare type CashGroupSettingsStructOutput = [ number, number, number, number, number, number, number, number, number, number[], number[] ] & { maxMarketIndex: number; rateOracleTimeWindowMin: number; totalFeeBPS: number; reserveFeeShare: number; debtBuffer5BPS: number; fCashHaircut5BPS: number; settlementPenaltyRate5BPS: number; liquidationfCashHaircut5BPS: number; liquidationDebtBuffer5BPS: number; liquidityTokenHaircuts: number[]; rateScalars: number[]; }; export declare type TokenStruct = { tokenAddress: string; hasTransferFee: boolean; decimals: BigNumberish; tokenType: BigNumberish; maxCollateralBalance: BigNumberish; }; export declare type TokenStructOutput = [ string, boolean, BigNumber, number, BigNumber ] & { tokenAddress: string; hasTransferFee: boolean; decimals: BigNumber; tokenType: number; maxCollateralBalance: BigNumber; }; export interface INotionalV2Interface extends utils.Interface { functions: { "batchBalanceAndTradeAction(address,(uint8,uint16,uint256,uint256,bool,bool,bytes32[])[])": FunctionFragment; "batchLend(address,(uint16,bool,bytes32[])[])": FunctionFragment; "convertCashBalanceToExternal(uint16,int256,bool)": FunctionFragment; "getAccountBalance(uint16,address)": FunctionFragment; "getAccountContext(address)": FunctionFragment; "getAccountPortfolio(address)": FunctionFragment; "getCashGroup(uint16)": FunctionFragment; "getCurrency(uint16)": FunctionFragment; "getDepositFromfCashLend(uint16,uint256,uint256,uint32,uint256)": FunctionFragment; "getPresentfCashValue(uint16,uint256,int256,uint256,bool)": FunctionFragment; "getPrincipalFromfCashBorrow(uint16,uint256,uint256,uint32,uint256)": FunctionFragment; "getfCashBorrowFromPrincipal(uint16,uint256,uint256,uint32,uint256,bool)": FunctionFragment; "getfCashLendFromDeposit(uint16,uint256,uint256,uint32,uint256,bool)": FunctionFragment; "safeTransferFrom(address,address,uint256,uint256,bytes)": FunctionFragment; "settleAccount(address)": FunctionFragment; "withdraw(uint16,uint88,bool)": FunctionFragment; }; encodeFunctionData(functionFragment: "batchBalanceAndTradeAction", values: [string, BalanceActionWithTradesStruct[]]): string; encodeFunctionData(functionFragment: "batchLend", values: [string, BatchLendStruct[]]): string; encodeFunctionData(functionFragment: "convertCashBalanceToExternal", values: [BigNumberish, BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "getAccountBalance", values: [BigNumberish, string]): string; encodeFunctionData(functionFragment: "getAccountContext", values: [string]): string; encodeFunctionData(functionFragment: "getAccountPortfolio", values: [string]): string; encodeFunctionData(functionFragment: "getCashGroup", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getCurrency", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getDepositFromfCashLend", values: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "getPresentfCashValue", values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "getPrincipalFromfCashBorrow", values: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "getfCashBorrowFromPrincipal", values: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish, boolean ]): string; encodeFunctionData(functionFragment: "getfCashLendFromDeposit", values: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish, boolean ]): string; encodeFunctionData(functionFragment: "safeTransferFrom", values: [string, string, BigNumberish, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "settleAccount", values: [string]): string; encodeFunctionData(functionFragment: "withdraw", values: [BigNumberish, BigNumberish, boolean]): string; decodeFunctionResult(functionFragment: "batchBalanceAndTradeAction", data: BytesLike): Result; decodeFunctionResult(functionFragment: "batchLend", data: BytesLike): Result; decodeFunctionResult(functionFragment: "convertCashBalanceToExternal", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAccountBalance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAccountContext", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAccountPortfolio", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCashGroup", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCurrency", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDepositFromfCashLend", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPresentfCashValue", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPrincipalFromfCashBorrow", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getfCashBorrowFromPrincipal", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getfCashLendFromDeposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "safeTransferFrom", data: BytesLike): Result; decodeFunctionResult(functionFragment: "settleAccount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; events: {}; } export interface INotionalV2 extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: INotionalV2Interface; 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: { batchBalanceAndTradeAction(account: string, actions: BalanceActionWithTradesStruct[], overrides?: PayableOverrides & { from?: string | Promise; }): Promise; batchLend(account: string, actions: BatchLendStruct[], overrides?: Overrides & { from?: string | Promise; }): Promise; convertCashBalanceToExternal(currencyId: BigNumberish, cashBalanceInternal: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise<[BigNumber]>; getAccountBalance(currencyId: BigNumberish, account: string, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, BigNumber ] & { cashBalance: BigNumber; nTokenBalance: BigNumber; lastClaimTime: BigNumber; }>; getAccountContext(account: string, overrides?: CallOverrides): Promise<[AccountContextStructOutput]>; getAccountPortfolio(account: string, overrides?: CallOverrides): Promise<[PortfolioAssetStructOutput[]]>; getCashGroup(currencyId: BigNumberish, overrides?: CallOverrides): Promise<[CashGroupSettingsStructOutput]>; getCurrency(currencyId: BigNumberish, overrides?: CallOverrides): Promise<[ TokenStructOutput, TokenStructOutput ] & { assetToken: TokenStructOutput; underlyingToken: TokenStructOutput; }>; getDepositFromfCashLend(currencyId: BigNumberish, fCashAmount: BigNumberish, maturity: BigNumberish, minLendRate: BigNumberish, blockTime: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, number, string ] & { depositAmountUnderlying: BigNumber; depositAmountAsset: BigNumber; marketIndex: number; encodedTrade: string; }>; getPresentfCashValue(currencyId: BigNumberish, maturity: BigNumberish, notional: BigNumberish, blockTime: BigNumberish, riskAdjusted: boolean, overrides?: CallOverrides): Promise<[BigNumber] & { presentValue: BigNumber; }>; getPrincipalFromfCashBorrow(currencyId: BigNumberish, fCashBorrow: BigNumberish, maturity: BigNumberish, maxBorrowRate: BigNumberish, blockTime: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, number, string ] & { borrowAmountUnderlying: BigNumber; borrowAmountAsset: BigNumber; marketIndex: number; encodedTrade: string; }>; getfCashBorrowFromPrincipal(currencyId: BigNumberish, borrowedAmountExternal: BigNumberish, maturity: BigNumberish, maxBorrowRate: BigNumberish, blockTime: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise<[ BigNumber, number, string ] & { fCashDebt: BigNumber; marketIndex: number; encodedTrade: string; }>; getfCashLendFromDeposit(currencyId: BigNumberish, depositAmountExternal: BigNumberish, maturity: BigNumberish, minLendRate: BigNumberish, blockTime: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise<[ BigNumber, number, string ] & { fCashAmount: BigNumber; marketIndex: number; encodedTrade: string; }>; safeTransferFrom(from: string, to: string, id: BigNumberish, amount: BigNumberish, data: BytesLike, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; settleAccount(account: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdraw(currencyId: BigNumberish, amountInternalPrecision: BigNumberish, redeemToUnderlying: boolean, overrides?: Overrides & { from?: string | Promise; }): Promise; }; batchBalanceAndTradeAction(account: string, actions: BalanceActionWithTradesStruct[], overrides?: PayableOverrides & { from?: string | Promise; }): Promise; batchLend(account: string, actions: BatchLendStruct[], overrides?: Overrides & { from?: string | Promise; }): Promise; convertCashBalanceToExternal(currencyId: BigNumberish, cashBalanceInternal: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise; getAccountBalance(currencyId: BigNumberish, account: string, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, BigNumber ] & { cashBalance: BigNumber; nTokenBalance: BigNumber; lastClaimTime: BigNumber; }>; getAccountContext(account: string, overrides?: CallOverrides): Promise; getAccountPortfolio(account: string, overrides?: CallOverrides): Promise; getCashGroup(currencyId: BigNumberish, overrides?: CallOverrides): Promise; getCurrency(currencyId: BigNumberish, overrides?: CallOverrides): Promise<[ TokenStructOutput, TokenStructOutput ] & { assetToken: TokenStructOutput; underlyingToken: TokenStructOutput; }>; getDepositFromfCashLend(currencyId: BigNumberish, fCashAmount: BigNumberish, maturity: BigNumberish, minLendRate: BigNumberish, blockTime: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, number, string ] & { depositAmountUnderlying: BigNumber; depositAmountAsset: BigNumber; marketIndex: number; encodedTrade: string; }>; getPresentfCashValue(currencyId: BigNumberish, maturity: BigNumberish, notional: BigNumberish, blockTime: BigNumberish, riskAdjusted: boolean, overrides?: CallOverrides): Promise; getPrincipalFromfCashBorrow(currencyId: BigNumberish, fCashBorrow: BigNumberish, maturity: BigNumberish, maxBorrowRate: BigNumberish, blockTime: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, number, string ] & { borrowAmountUnderlying: BigNumber; borrowAmountAsset: BigNumber; marketIndex: number; encodedTrade: string; }>; getfCashBorrowFromPrincipal(currencyId: BigNumberish, borrowedAmountExternal: BigNumberish, maturity: BigNumberish, maxBorrowRate: BigNumberish, blockTime: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise<[ BigNumber, number, string ] & { fCashDebt: BigNumber; marketIndex: number; encodedTrade: string; }>; getfCashLendFromDeposit(currencyId: BigNumberish, depositAmountExternal: BigNumberish, maturity: BigNumberish, minLendRate: BigNumberish, blockTime: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise<[ BigNumber, number, string ] & { fCashAmount: BigNumber; marketIndex: number; encodedTrade: string; }>; safeTransferFrom(from: string, to: string, id: BigNumberish, amount: BigNumberish, data: BytesLike, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; settleAccount(account: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdraw(currencyId: BigNumberish, amountInternalPrecision: BigNumberish, redeemToUnderlying: boolean, overrides?: Overrides & { from?: string | Promise; }): Promise; callStatic: { batchBalanceAndTradeAction(account: string, actions: BalanceActionWithTradesStruct[], overrides?: CallOverrides): Promise; batchLend(account: string, actions: BatchLendStruct[], overrides?: CallOverrides): Promise; convertCashBalanceToExternal(currencyId: BigNumberish, cashBalanceInternal: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise; getAccountBalance(currencyId: BigNumberish, account: string, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, BigNumber ] & { cashBalance: BigNumber; nTokenBalance: BigNumber; lastClaimTime: BigNumber; }>; getAccountContext(account: string, overrides?: CallOverrides): Promise; getAccountPortfolio(account: string, overrides?: CallOverrides): Promise; getCashGroup(currencyId: BigNumberish, overrides?: CallOverrides): Promise; getCurrency(currencyId: BigNumberish, overrides?: CallOverrides): Promise<[ TokenStructOutput, TokenStructOutput ] & { assetToken: TokenStructOutput; underlyingToken: TokenStructOutput; }>; getDepositFromfCashLend(currencyId: BigNumberish, fCashAmount: BigNumberish, maturity: BigNumberish, minLendRate: BigNumberish, blockTime: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, number, string ] & { depositAmountUnderlying: BigNumber; depositAmountAsset: BigNumber; marketIndex: number; encodedTrade: string; }>; getPresentfCashValue(currencyId: BigNumberish, maturity: BigNumberish, notional: BigNumberish, blockTime: BigNumberish, riskAdjusted: boolean, overrides?: CallOverrides): Promise; getPrincipalFromfCashBorrow(currencyId: BigNumberish, fCashBorrow: BigNumberish, maturity: BigNumberish, maxBorrowRate: BigNumberish, blockTime: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, number, string ] & { borrowAmountUnderlying: BigNumber; borrowAmountAsset: BigNumber; marketIndex: number; encodedTrade: string; }>; getfCashBorrowFromPrincipal(currencyId: BigNumberish, borrowedAmountExternal: BigNumberish, maturity: BigNumberish, maxBorrowRate: BigNumberish, blockTime: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise<[ BigNumber, number, string ] & { fCashDebt: BigNumber; marketIndex: number; encodedTrade: string; }>; getfCashLendFromDeposit(currencyId: BigNumberish, depositAmountExternal: BigNumberish, maturity: BigNumberish, minLendRate: BigNumberish, blockTime: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise<[ BigNumber, number, string ] & { fCashAmount: BigNumber; marketIndex: number; encodedTrade: string; }>; safeTransferFrom(from: string, to: string, id: BigNumberish, amount: BigNumberish, data: BytesLike, overrides?: CallOverrides): Promise; settleAccount(account: string, overrides?: CallOverrides): Promise; withdraw(currencyId: BigNumberish, amountInternalPrecision: BigNumberish, redeemToUnderlying: boolean, overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { batchBalanceAndTradeAction(account: string, actions: BalanceActionWithTradesStruct[], overrides?: PayableOverrides & { from?: string | Promise; }): Promise; batchLend(account: string, actions: BatchLendStruct[], overrides?: Overrides & { from?: string | Promise; }): Promise; convertCashBalanceToExternal(currencyId: BigNumberish, cashBalanceInternal: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise; getAccountBalance(currencyId: BigNumberish, account: string, overrides?: CallOverrides): Promise; getAccountContext(account: string, overrides?: CallOverrides): Promise; getAccountPortfolio(account: string, overrides?: CallOverrides): Promise; getCashGroup(currencyId: BigNumberish, overrides?: CallOverrides): Promise; getCurrency(currencyId: BigNumberish, overrides?: CallOverrides): Promise; getDepositFromfCashLend(currencyId: BigNumberish, fCashAmount: BigNumberish, maturity: BigNumberish, minLendRate: BigNumberish, blockTime: BigNumberish, overrides?: CallOverrides): Promise; getPresentfCashValue(currencyId: BigNumberish, maturity: BigNumberish, notional: BigNumberish, blockTime: BigNumberish, riskAdjusted: boolean, overrides?: CallOverrides): Promise; getPrincipalFromfCashBorrow(currencyId: BigNumberish, fCashBorrow: BigNumberish, maturity: BigNumberish, maxBorrowRate: BigNumberish, blockTime: BigNumberish, overrides?: CallOverrides): Promise; getfCashBorrowFromPrincipal(currencyId: BigNumberish, borrowedAmountExternal: BigNumberish, maturity: BigNumberish, maxBorrowRate: BigNumberish, blockTime: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise; getfCashLendFromDeposit(currencyId: BigNumberish, depositAmountExternal: BigNumberish, maturity: BigNumberish, minLendRate: BigNumberish, blockTime: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise; safeTransferFrom(from: string, to: string, id: BigNumberish, amount: BigNumberish, data: BytesLike, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; settleAccount(account: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdraw(currencyId: BigNumberish, amountInternalPrecision: BigNumberish, redeemToUnderlying: boolean, overrides?: Overrides & { from?: string | Promise; }): Promise; }; populateTransaction: { batchBalanceAndTradeAction(account: string, actions: BalanceActionWithTradesStruct[], overrides?: PayableOverrides & { from?: string | Promise; }): Promise; batchLend(account: string, actions: BatchLendStruct[], overrides?: Overrides & { from?: string | Promise; }): Promise; convertCashBalanceToExternal(currencyId: BigNumberish, cashBalanceInternal: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise; getAccountBalance(currencyId: BigNumberish, account: string, overrides?: CallOverrides): Promise; getAccountContext(account: string, overrides?: CallOverrides): Promise; getAccountPortfolio(account: string, overrides?: CallOverrides): Promise; getCashGroup(currencyId: BigNumberish, overrides?: CallOverrides): Promise; getCurrency(currencyId: BigNumberish, overrides?: CallOverrides): Promise; getDepositFromfCashLend(currencyId: BigNumberish, fCashAmount: BigNumberish, maturity: BigNumberish, minLendRate: BigNumberish, blockTime: BigNumberish, overrides?: CallOverrides): Promise; getPresentfCashValue(currencyId: BigNumberish, maturity: BigNumberish, notional: BigNumberish, blockTime: BigNumberish, riskAdjusted: boolean, overrides?: CallOverrides): Promise; getPrincipalFromfCashBorrow(currencyId: BigNumberish, fCashBorrow: BigNumberish, maturity: BigNumberish, maxBorrowRate: BigNumberish, blockTime: BigNumberish, overrides?: CallOverrides): Promise; getfCashBorrowFromPrincipal(currencyId: BigNumberish, borrowedAmountExternal: BigNumberish, maturity: BigNumberish, maxBorrowRate: BigNumberish, blockTime: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise; getfCashLendFromDeposit(currencyId: BigNumberish, depositAmountExternal: BigNumberish, maturity: BigNumberish, minLendRate: BigNumberish, blockTime: BigNumberish, useUnderlying: boolean, overrides?: CallOverrides): Promise; safeTransferFrom(from: string, to: string, id: BigNumberish, amount: BigNumberish, data: BytesLike, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; settleAccount(account: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdraw(currencyId: BigNumberish, amountInternalPrecision: BigNumberish, redeemToUnderlying: boolean, overrides?: Overrides & { from?: string | Promise; }): Promise; }; } //# sourceMappingURL=INotionalV2.d.ts.map