UNPKG

@prism-hq/prism-ag

Version:

Prism Aggregator

61 lines (60 loc) 2.1 kB
"use strict"; // import { getCurveAmount, TradeDirection } from "@lifinity/sdk"; // import Decimal from "decimal.js"; // import { TokenInfo } from "../types/types"; // export function lifinityRoute( // fromCoin: TokenInfo, // toCoin: TokenInfo, // fromCoinAmount: number, // option: any, // liquidityData: any, // settings: any, // ) { // try { // let lifinityInfo = liquidityData.lifinityData[option.amm]; // let parsedData = lifinityInfo.parsedData; // if(parsedData.amm.freezeTrade == 1) { // return { // amountOut: 0, // } // } // 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.pyth, // parsedData.pythPc, // 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: "lifinity", // fees: fees, // priceImpact: priceImpact.toNumber() * 100, // routeData: { // lifinityInfo: lifinityInfo, // fromCoin: fromCoin, // toCoin: toCoin, // } // } // } catch (e) { // console.log(e); // return { amountOut: 0 } // }; // }