UNPKG

@algofi/v1

Version:

The official JavaScript SDK for the V2 Algofi Lending Market

84 lines (83 loc) 3.69 kB
import { Algodv2, Transaction, SuggestedParams } from "algosdk"; import AssetAmount from "./../assetAmount"; import AlgofiUser from "./../algofiUser"; import { MarketType } from "./lendingConfig"; import LendingClient from "./lendingClient"; import MarketConfig from "./marketConfig"; import Oracle from "./oracle"; export declare class MarketRewardsProgram { programNumber: number; rewardsPerSecond: number; assetID: number; issued: number; claimed: number; index: bigint; constructor(state: {}, programIndex: number); } export default class Market { localMinBalance: number; algod: Algodv2; lendingClient: LendingClient; managerAppId: number; appId: number; address: string; marketType: MarketType; underlyingAssetId: number; bAssetId: number; optInEnabled: boolean; supplyLimited: boolean; borrowLimitted: boolean; borrowFactor: number; collateralFactor: number; flashLoanFee: number; flashLoanProtocolFee: number; maxFlashLoanRatio: number; liquidationIncentive: number; liquidationFee: number; reserveFactor: number; underlyingSupplyCap: number; underlyingBorrowCap: number; baseInterestRate: number; baseInterestSlope: number; quadraticInterestAmplificationFactor: number; targetUtilizationRatio: number; oracle: Oracle; underlyingCash: number; underlyingBorrowed: number; underlyingReserves: number; borrowShareCirculation: number; bAssetCirculation: number; activeBAssetCollateral: number; underlyingProtocolReserve: number; latestTime: number; borrowIndex: number; impliedBorrowIndex: number; totalSupplied: AssetAmount; totalBorrowed: AssetAmount; supplyAPR: number; borrowAPR: number; rewardsPrograms: any[]; rewardsEscrowAccount: string; constructor(algod: Algodv2, lendingClient: LendingClient, managerAppId: number, marketConfig: MarketConfig); loadState(): Promise<void>; getUnderlyingSupplied(): number; getAPRs(totalSupplied: number, totalBorrowed: number): [number, number]; convertUnderlyingToUSD(amount: number): number; convertUSDToUnderlying(amount: number): number; bAssetToAssetAmount(amount: number): AssetAmount; borrowSharesToAssetAmount(amount: number): AssetAmount; underlyingToBAssetAmount(amount: number): number; getMaximumWithdrawAmount(user: AlgofiUser, borrowUtilLimit?: number): AssetAmount; getMaximumBorrowAmount(user: AlgofiUser, borrowUtilLimit?: number): AssetAmount; getPreambleTransactions(params: SuggestedParams, user: AlgofiUser, needsUserPosition: boolean): Promise<[Transaction[], number]>; getMintTxns(user: AlgofiUser, underlyingAmount: number): Promise<Transaction[]>; getAddUnderlyingCollateralTxns(user: AlgofiUser, underlyingAmount: number): Promise<Transaction[]>; getAddBAssetCollateralTxns(user: AlgofiUser, bAssetAmount: number): Promise<Transaction[]>; getRemoveUnderlyingCollateralTxns(user: AlgofiUser, underlyingAmount: number, removeMax?: boolean): Promise<Transaction[]>; getRemoveBAssetCollateralTxns(user: AlgofiUser, bAssetAmount: number): Promise<Transaction[]>; getBurnTxns(user: AlgofiUser, bAssetAmount: number): Promise<Transaction[]>; getBorrowTxns(user: AlgofiUser, underlyingAmount: number): Promise<Transaction[]>; getRepayBorrowTxns(user: AlgofiUser, underlyingAmount: number, repayMax?: boolean): Promise<Transaction[]>; getClaimRewardsTxns(user: AlgofiUser): Promise<Transaction[]>; getSyncVaultTxns(user: AlgofiUser): Promise<Transaction[]>; }