@prism-hq/prism-ag
Version:
Prism Aggregator
59 lines (58 loc) • 2.08 kB
JavaScript
;
// 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,
// }
// }
// }