PHP WebShell

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

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

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

var _ = require('lodash');
var BigNumber = require('bignumber.js');
var AccountFields = require('./utils').constants.AccountFields;

function parseField(info, value) {
  if (info.encoding === 'hex' && !info.length) {
    // e.g. "domain"
    return new Buffer(value, 'hex').toString('ascii');
  }
  if (info.shift) {
    return new BigNumber(value).shift(-info.shift).toNumber();
  }
  return value;
}

function parseFields(data) {
  var settings = {};
  for (var fieldName in AccountFields) {
    var fieldValue = data[fieldName];
    if (fieldValue !== undefined) {
      var info = AccountFields[fieldName];
      settings[info.name] = parseField(info, fieldValue);
    }
  }

  if (data.RegularKey) {
    settings.regularKey = data.RegularKey;
  }

  // Since an account can own at most one SignerList,
  // this array must have exactly one member if it is present.
  if (data.signer_lists && data.signer_lists.length === 1) {
    settings.signers = {};
    if (data.signer_lists[0].SignerQuorum) {
      settings.signers.threshold = data.signer_lists[0].SignerQuorum;
    }
    if (data.signer_lists[0].SignerEntries) {
      settings.signers.weights = _.map(data.signer_lists[0].SignerEntries, function (entry) {
        return {
          address: entry.SignerEntry.Account,
          weight: entry.SignerEntry.SignerWeight
        };
      });
    }
  }
  return settings;
}

module.exports = parseFields;

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


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