PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo-express/node_modules/ripple-lib/dist/npm/ledger/parse

Просмотр файла: pathfind.js

'use strict'; // eslint-disable-line strict

var _ = require('lodash');
var parseAmount = require('./amount');


function parsePaths(paths) {
  return paths.map(function (steps) {
    return steps.map(function (step) {
      return _.omit(step, ['type', 'type_hex']);
    });
  });
}

function removeAnyCounterpartyEncoding(address, amount) {
  return amount.counterparty === address ? _.omit(amount, 'counterparty') : amount;
}

function createAdjustment(address, adjustmentWithoutAddress) {
  var amountKey = _.keys(adjustmentWithoutAddress)[0];
  var amount = adjustmentWithoutAddress[amountKey];
  return _.set({ address: address }, amountKey, removeAnyCounterpartyEncoding(address, amount));
}

function parseAlternative(sourceAddress, destinationAddress, destinationAmount, alternative) {
  // we use "maxAmount"/"minAmount" here so that the result can be passed
  // directly to preparePayment
  var amounts = alternative.destination_amount !== undefined ? { source: { amount: parseAmount(alternative.source_amount) },
    destination: { minAmount: parseAmount(alternative.destination_amount) } } : { source: { maxAmount: parseAmount(alternative.source_amount) },
    destination: { amount: parseAmount(destinationAmount) } };

  return {
    source: createAdjustment(sourceAddress, amounts.source),
    destination: createAdjustment(destinationAddress, amounts.destination),
    paths: JSON.stringify(parsePaths(alternative.paths_computed))
  };
}

function parsePathfind(pathfindResult) {
  var sourceAddress = pathfindResult.source_account;
  var destinationAddress = pathfindResult.destination_account;
  var destinationAmount = pathfindResult.destination_amount;
  return pathfindResult.alternatives.map(_.partial(parseAlternative, sourceAddress, destinationAddress, destinationAmount));
}

module.exports = parsePathfind;

Выполнить команду


Для локальной разработки. Не используйте в интернете!