@prism-hq/prism-ag
Version:
Prism Aggregator
61 lines (60 loc) • 2.1 kB
JavaScript
;
// 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 }
// };
// }