UNPKG

@algofi/js-sdk

Version:

The official Algofi JavaScript SDK

82 lines (81 loc) 3.5 kB
import { Algodv2, Indexer, Transaction, LogicSigAccount } from "algosdk"; import AlgofiUser from "../../algofiUser"; import ParsedTransaction, { TxnLoadMode } from "../../parsedTransaction"; import AssetDataClient from "../../assetData/assetDataClient"; import { PoolType } from "./ammConfig"; import PoolConfig from "./poolConfig"; import AMMClient from "./ammClient"; export declare enum PoolQuoteType { EMPTY_POOL = 0, POOL = 1, BURN = 2, SWAP_EXACT_FOR = 3, SWAP_FOR_EXACT = 4, ZAP = 5 } export declare class PoolQuote { quoteType: PoolQuoteType; asset1Delta: number; asset2Delta: number; lpDelta: number; iterations: number; zapAsset1Swap: number; zapAsset2Swap: number; zapBonus: number; constructor(quoteType: PoolQuoteType, asset1Delta: number, asset2Delta: number, lpDelta: number, iterations: number, zapAsset1Swap?: number, zapAsset2Swap?: number, zapBonus?: number); } export default class Pool { algod: Algodv2; indexer: Indexer; ammClient: AMMClient; assetDataClient: AssetDataClient; appId: number; asset1Id: number; asset2Id: number; poolType: PoolType; logicSig: LogicSigAccount; address: string; managerAppId: number; lpAssetId: number; balance1: number; balance2: number; lpCirculation: number; tvl: number; apr: number; initialAmplificationFactor: number; futureAmplificationFactor: number; initialAmplificationFactorTime: number; futureAmplificationFactorTime: number; ramp_amplification_factor: number; targetRatioAdjustmentStartTime: number; targetRatioAdjustmentEndTime: number; initialTargetAsset1ToAsset2Ratio: number; currentTargetAsset1ToAsset2Ratio: number; goalTargetAsset1ToAsset2Ratio: number; swapFee: number; transactions: ParsedTransaction[]; constructor(algod: Algodv2, ammClient: AMMClient, poolConfig: PoolConfig, tvl?: number, apr?: number); loadState(): Promise<void>; getTVL(): number; getAPR(): number; isCreated(): boolean; getAmplificationFactor(): number; getTargetRatio(): number; isNanoPool(): boolean; scaleAsset1(input: number): number; unscaleAsset1(input: number): number; binarySearch(lower: any, upper: any, objective: any): any; getEmptyPoolQuote(asset1PooledAmount: number, asset2PooledAmount: number): PoolQuote; getPoolQuote(assetId: number, assetAmount: number): PoolQuote; getBurnQuote(lpAmount: number): PoolQuote; getSwapExactForQuote(swapInAssetId: number, swapInAmount: number): PoolQuote; getSwapForExactQuote(swapOutAssetId: number, swapOutAmount: number): PoolQuote; getZapQuote(assetAID: number, assetAAmount: number, assetBAmount?: number): PoolQuote; getCreatePoolTxns(user: AlgofiUser): Promise<Transaction[]>; getInitializePoolTxns(user: AlgofiUser, poolAppId: number): Promise<Transaction[]>; 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[]>; getTransactionHistory(mode: TxnLoadMode): Promise<void>; }