UNPKG

@xspswap/smart-order-router

Version:
69 lines 7.55 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.poolToString = exports.routeAmountToString = exports.routeAmountsToString = exports.routeToString = void 0; const router_sdk_1 = require("@x-swap-protocol/router-sdk"); const sdk_core_1 = require("@x-swap-protocol/sdk-core"); const v2_sdk_1 = require("@x-swap-protocol/v2-sdk"); const v3_sdk_1 = require("@x-swap-protocol/v3-sdk"); const lodash_1 = __importDefault(require("lodash")); const utils_1 = require("../providers/v2-fathom/utils"); const _1 = require("."); const routeToString = (route) => { const routeStr = []; const tokens = route.protocol === router_sdk_1.Protocol.V3 || route.protocol === router_sdk_1.Protocol.UNI_V3 ? // @ts-ignore route.tokenPath : // @ts-ignore route.path; const tokenPath = lodash_1.default.map(tokens, (token) => `${token.symbol}`); const pools = route.protocol === router_sdk_1.Protocol.V2 || route.protocol === router_sdk_1.Protocol.FATHOM ? route.pairs : // @ts-ignore route.pools; const poolFeePath = lodash_1.default.map(pools, (pool) => { return `${pool instanceof v3_sdk_1.Pool ? ` -- ${pool.fee / 10000}% [${v3_sdk_1.Pool.getAddress(pool.token0, pool.token1, pool.fee, { address: pool.factory ? pool.factory.address : v3_sdk_1.FACTORY_ADDRESS, initCode: pool.factory ? pool.factory.initCode : v3_sdk_1.POOL_INIT_CODE_HASH, })}]` : route.protocol === router_sdk_1.Protocol.FATHOM ? ` -- [${(0, utils_1.getFathomPoolAddress)(pool.token0, pool.token1)}]` : ` -- [${v2_sdk_1.Pair.getAddress(pool.token0, pool.token1)}]`} --> `; }); for (let i = 0; i < tokenPath.length; i++) { routeStr.push(tokenPath[i]); if (i < poolFeePath.length) { routeStr.push(poolFeePath[i]); } } return routeStr.join(''); }; exports.routeToString = routeToString; const routeAmountsToString = (routeAmounts) => { const total = lodash_1.default.reduce(routeAmounts, (total, cur) => { return total.add(cur.amount); }, _1.CurrencyAmount.fromRawAmount(routeAmounts[0].amount.currency, 0)); const routeStrings = lodash_1.default.map(routeAmounts, ({ protocol, route, amount }) => { const portion = amount.divide(total); const percent = new sdk_core_1.Percent(portion.numerator, portion.denominator); /// @dev special case for MIXED routes we want to show user friendly V2+V3 instead return `[${protocol == router_sdk_1.Protocol.MIXED ? 'V2 + V3' : protocol}] ${percent.toFixed(2)}% = ${(0, exports.routeToString)(route)}`; }); return lodash_1.default.join(routeStrings, ', '); }; exports.routeAmountsToString = routeAmountsToString; const routeAmountToString = (routeAmount) => { const { route, amount } = routeAmount; return `${amount.toExact()} = ${(0, exports.routeToString)(route)}`; }; exports.routeAmountToString = routeAmountToString; const poolToString = (p) => { return `${p.token0.symbol}/${p.token1.symbol}${p instanceof v3_sdk_1.Pool ? `/${p.fee / 10000}%` : ``}`; }; exports.poolToString = poolToString; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWwvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDREQUF1RDtBQUN2RCx3REFBb0Q7QUFDcEQsb0RBQStDO0FBQy9DLG9EQUlpQztBQUNqQyxvREFBdUI7QUFFdkIsd0RBQW9FO0FBSXBFLHdCQUFtQztBQUU1QixNQUFNLGFBQWEsR0FBRyxDQUMzQixLQUFxQyxFQUM3QixFQUFFO0lBQ1YsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBRXBCLE1BQU0sTUFBTSxHQUNWLEtBQUssQ0FBQyxRQUFRLEtBQUsscUJBQVEsQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxxQkFBUSxDQUFDLE1BQU07UUFDbEUsQ0FBQyxDQUFDLGFBQWE7WUFDYixLQUFLLENBQUMsU0FBUztRQUNqQixDQUFDLENBQUMsYUFBYTtZQUNiLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDakIsTUFBTSxTQUFTLEdBQUcsZ0JBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzlELE1BQU0sS0FBSyxHQUNULEtBQUssQ0FBQyxRQUFRLEtBQUsscUJBQVEsQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxxQkFBUSxDQUFDLE1BQU07UUFDbEUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLO1FBQ2IsQ0FBQyxDQUFDLGFBQWE7WUFDYixLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ2xCLE1BQU0sV0FBVyxHQUFHLGdCQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3hDLE9BQU8sR0FDTCxJQUFJLFlBQVksYUFBSTtZQUNsQixDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxHQUFHLEtB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