@algofi/js-sdk
Version:
The official Algofi JavaScript SDK
37 lines (36 loc) • 1.74 kB
TypeScript
import { Algodv2, Transaction } from "algosdk";
import AlgofiClient from "../algofiClient";
import AlgofiUser from "../algofiUser";
import Market from "../lending/v2/market";
import Pool, { PoolQuote } from "../amm/v1/pool";
import LendingPoolInterfaceConfig from "./lendingPoolInterfaceConfig";
export default class LendingPoolInterface {
algofiClient: AlgofiClient;
algod: Algodv2;
appId: number;
asset1Id: number;
asset2Id: number;
lpAssetId: number;
market1AppId: number;
market2AppId: number;
poolAppId: number;
opFarmAppId: number;
address: string;
market1: Market;
market2: Market;
pool: Pool;
constructor(algofiClient: AlgofiClient, config: LendingPoolInterfaceConfig);
loadState(): Promise<void>;
getTVL(): number;
getAPR(): Promise<number>;
getEmptyPoolQuote(asset1Amount: number, asset2Amount: number): PoolQuote;
getPoolQuote(assetId: number, amount: number): PoolQuote;
getBurnQuote(amount: number): PoolQuote;
getSwapExactForQuote(swapInAssetId: number, swapInAmount: number): PoolQuote;
getSwapForExactQuote(swapOutAssetId: number, swapOutAmount: number): PoolQuote;
getZapQuote(assetAID: number, assetAAmount: number, assetBAmount?: number): PoolQuote;
getPoolTxns(user: AlgofiUser, quote: PoolQuote, maximumSlippage: number, addToUserCollateral?: boolean): Promise<Transaction[]>;
getBurnTxns(user: AlgofiUser, quote: PoolQuote): Promise<Transaction[]>;
getSwapTxns(user: AlgofiUser, quote: PoolQuote, maxSlippage?: number): Promise<Transaction[]>;
getZapTxns(user: AlgofiUser, quote: PoolQuote, maxSlippage?: number, addToUserCollateral?: boolean): Promise<Transaction[]>;
}