UNPKG

@oraichain/oraidex-evm-sdk

Version:
32 lines 1.13 kB
import Decimal from 'decimal.js'; import { computePriceImpact, getMidPriceFromPaths } from '../oraidex/libs'; export const computePriceImpactFromOsorResponse = async (osorResponse, poolDataProvider) => { const { swapAmount, returnAmount, routes } = osorResponse; const midPriceRoutes = await Promise.all(routes.map((route) => getMidPriceFromPaths(route.paths, poolDataProvider))); const swapAmounts = routes.map((route) => route.swapAmount); const midPrice = midPriceRoutes .reduce((acc, curr, index) => { return acc.add(curr.mul(swapAmounts[index])); }, new Decimal(0)) .div(swapAmount); const inputAmount = { currency: { chainId: '', address: '', decimals: 0, symbol: '', }, amount: swapAmount, }; const outputAmount = { currency: { chainId: '', address: '', decimals: 0, symbol: '', }, amount: returnAmount, }; return computePriceImpact(midPrice, inputAmount, outputAmount); }; //# sourceMappingURL=osorPriceImpact.js.map