UNPKG

@algofi/amm-v0

Version:

The official JavaScript SDK for the Algofi AMM

54 lines (53 loc) 3.54 kB
import { Algodv2, LogicSigAccount, Transaction } from "algosdk"; import BalanceDelta from "./balanceDelta"; import { Network, PoolType, PoolStatus } from "./config"; export default class Pool { algod: Algodv2; network: Network; poolType: PoolType; managerApplicationId: number; asset1Id: number; asset2Id: number; validatorIndex: number; logicSig: LogicSigAccount; poolStatus: PoolStatus; applicationId: number; address: string; lpAssetId: number; asset1Balance: number; asset2Balance: number; lpCirculation: number; swapFee: number; private initialAmplificationFactor; private initialAmplificationFactorTime; private futureAmplificationFactor; private futureAmplificationFactorTime; private t; constructor(algod: Algodv2, network: Network, poolType: PoolType, asset1Id: number, asset2Id: number); loadState(): Promise<PoolStatus>; getPoolPrice(assetId: number): Promise<number>; signTxnWithLogicSig(txn: Transaction): Promise<{ txID: string; blob: Uint8Array; }>; getCreatePoolTxn(sender: string): Promise<Transaction>; getInitializePoolTxns(sender: string, poolApplicationID: number): Promise<Transaction[]>; getLPTokenOptInTxn(sender: string): Promise<Transaction[]>; getPoolTxns(sender: string, asset1Amount: number, asset2Amount: number, maximumSlippage: number, doOptIn?: boolean, assignGroup?: boolean, fee?: number): Promise<Transaction[]>; getBurnTxns(sender: string, burnAmount: number, assignGroup?: boolean): Promise<Transaction[]>; getSwapExactForTxns(sender: string, swapInAsset: number, swapInAmount: number, minAmountToReceive: number, doOptIn?: boolean, assignGroup?: boolean, fee?: number): Promise<Transaction[]>; getSwapForExactTxns(sender: string, swapInAsset: number, swapInAmount: number, amountToReceive: number, doOptIn?: boolean, assignGroup?: boolean, fee?: number): Promise<Transaction[]>; getZapLPTransactions(sender: string, zapInAsset: number, zapInAmount: number, maximumSlippageSwap: number, doOptIn?: boolean, doOptInLP?: boolean, assignGroup?: boolean, maximumSlippageLP?: number): Promise<Transaction[]>; getNanoZapTransactions(sender: string, asset1InputAmount: number, asset2InputAmount: number, maximumSlippageSwap: number, doOptIn?: boolean, doOptInLP?: boolean, assignGroup?: boolean, maximumSlippageLP?: number): Promise<Transaction[]>; getNanoUnzapTxns(sender: string, assetId: number, assetAmount: number, lpTokenAmount: number, maximumSlippage: number, doOptIn?: boolean, assignGroup?: boolean, fee?: number): Promise<Transaction[]>; getEmptyPoolQuote(asset1PooledAmount: number, asset2PooledAmount: number): Promise<BalanceDelta>; getPoolQuote(assetId: number, assetAmount: number, whatIfDelta1?: number, whatIfDelta2?: number): BalanceDelta; getBurnQuote(lpAmount: number): Promise<BalanceDelta>; getSwapExactForQuote(swapInAssetId: number, swapInAmount: number): BalanceDelta; getSwapForExactQuote(swapOutAssetId: number, swapOutAmount: number): BalanceDelta; getAmplificationFactor(): number; binarySearch(lower: any, upper: any, objective: any): any; getNanoZapQuote(asset1InputAmount: number, asset2InputAmount: number): Promise<BalanceDelta>; getNanoUnzapQuote(assetId: number, assetAmount: number, lpTokenAmount: number): Promise<BalanceDelta>; getMaxNanoUnzapQuote(assetId: number, lpTokenAmount: number): Promise<BalanceDelta>; }