UNPKG

@prism-hq/prism-ag

Version:

Prism Aggregator

59 lines (58 loc) 2.08 kB
"use strict"; // import { getCurveAmount, TradeDirection } from "prism-lifinity-sdk-v2"; // import Decimal from "decimal.js"; // import { TokenInfo } from "../types/types"; // export function lifinityV2Route( // fromCoin: TokenInfo, // toCoin: TokenInfo, // fromCoinAmount: number, // option: any, // liquidityData: any, // settings: any, // ) { // try { // let lifinityInfo = liquidityData.lifinityV2Data[option.amm]; // let parsedData = lifinityInfo.parsedData; // let tradeDirection = (lifinityInfo.poolCoinMint == fromCoin.mintAddress) ? // TradeDirection.AtoB : TradeDirection.BtoA; // const { amountSwapped, priceImpact, fee, feePercent } = getCurveAmount( // new Decimal(fromCoinAmount * 10 ** fromCoin.decimals), // lifinityInfo.slot, // parsedData.amm, // parsedData.fees, // parsedData.coinBalance, // parsedData.pcBalance, // parsedData.config, // parsedData.oracleMain, // parsedData.oracleSub, // parsedData.oraclePc, // tradeDirection, // ) // let amountOut = +(amountSwapped.toNumber() / 10 ** toCoin.decimals).toFixed(toCoin.decimals); // let totalFees = (settings.owner.fee + settings.host.fee) / 100; // let fees: any = {} // fees[toCoin.symbol] = amountOut * totalFees / 100; // let amountWithFees = amountOut * (1 - totalFees / 100); // return { // from: fromCoin.symbol, // amountIn: fromCoinAmount, // to: toCoin.symbol, // amountOut: amountOut, // amountWithFees: amountWithFees, // minimumReceived: amountWithFees * (1 - settings.slippage / 100), // provider: "lifinityV2", // fees: fees, // priceImpact: priceImpact.toNumber() * 100, // routeData: { // lifinityInfo: lifinityInfo, // fromCoin: fromCoin, // toCoin: toCoin, // } // } // } catch (e) { // console.log(e); // return { // amountOut: 0, // } // } // }