/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ 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 type BalanceActionWithTradesStruct = { actionType: BigNumberish; currencyId: BigNumberish; depositActionAmount: BigNumberish; withdrawAmountInternalPrecision: BigNumberish; withdrawEntireCashBalance: boolean; redeemToUnderlying: boolean; trades: BytesLike[]; }; export type BalanceActionWithTradesStructOutput = [ number, number, BigNumber, BigNumber, boolean, boolean, string[] ] & { actionType: number; currencyId: number; depositActionAmount: BigNumber; withdrawAmountInternalPrecision: BigNumber; withdrawEntireCashBalance: boolean; redeemToUnderlying: boolean; trades: string[]; }; export type BatchLendStruct = { currencyId: BigNumberish; depositUnderlying: boolean; trades: BytesLike[]; }; export type BatchLendStructOutput = [number, boolean, string[]] & { currencyId: number; depositUnderlying: boolean; trades: string[]; }; export type AccountContextStruct = { nextSettleTime: BigNumberish; hasDebt: BytesLike; assetArrayLength: BigNumberish; bitmapCurrencyId: BigNumberish; activeCurrencies: BytesLike; }; export type AccountContextStructOutput = [ number, string, number, number, string ] & { nextSettleTime: number; hasDebt: string; assetArrayLength: number; bitmapCurrencyId: number; activeCurrencies: string; }; export type PortfolioAssetStruct = { currencyId: BigNumberish; maturity: BigNumberish; assetType: BigNumberish; notional: BigNumberish; storageSlot: BigNumberish; storageState: BigNumberish; }; export type PortfolioAssetStructOutput = [ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, number ] & { currencyId: BigNumber; maturity: BigNumber; assetType: BigNumber; notional: BigNumber; storageSlot: BigNumber; storageState: number; }; export 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 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 type TokenStruct = { tokenAddress: string; hasTransferFee: boolean; decimals: BigNumberish; tokenType: BigNumberish; maxCollateralBalance: BigNumberish; }; export 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; }; }