UNPKG

@bithomp/xrpl-api

Version:

A Bithomp JavaScript/TypeScript library for interacting with the XRP Ledger

42 lines (41 loc) 2.09 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const lodash_1 = __importDefault(require("lodash")); const amount_1 = __importDefault(require("./amount")); function parsePaths(paths) { return paths.map((steps) => steps.map((step) => lodash_1.default.omit(step, ["type", "type_hex"]))); } function removeAnyCounterpartyEncoding(address, amount) { return amount.counterparty === address ? lodash_1.default.omit(amount, "counterparty") : amount; } function createAdjustment(address, adjustmentWithoutAddress) { const amountKey = Object.keys(adjustmentWithoutAddress)[0]; const amount = adjustmentWithoutAddress[amountKey]; return lodash_1.default.set({ address: address }, amountKey, removeAnyCounterpartyEncoding(address, amount)); } function parseAlternative(sourceAddress, destinationAddress, destinationAmount, alternative) { const amounts = alternative.destination_amount != null ? { source: { amount: (0, amount_1.default)(alternative.source_amount) }, destination: { minAmount: (0, amount_1.default)(alternative.destination_amount) }, } : { source: { maxAmount: (0, amount_1.default)(alternative.source_amount) }, destination: { amount: (0, amount_1.default)(destinationAmount) }, }; return { source: createAdjustment(sourceAddress, amounts.source), destination: createAdjustment(destinationAddress, amounts.destination), paths: JSON.stringify(parsePaths(alternative.paths_computed)), }; } function parsePathfind(pathfindResult) { const sourceAddress = pathfindResult.source_account; const destinationAddress = pathfindResult.destination_account; const destinationAmount = pathfindResult.destination_amount; return pathfindResult.alternatives.map((alt) => parseAlternative(sourceAddress, destinationAddress, destinationAmount, alt)); } exports.default = parsePathfind;