Files
xahau.js/src/api/ledger/settings.js

45 lines
1.2 KiB
JavaScript

'use strict';
const _ = require('lodash');
const utils = require('./utils');
const flags = utils.common.core.Remote.flags.account_root;
const validate = utils.common.validate;
const parseFields = require('./parse/fields');
const AccountFlags = {
passwordSpent: flags.PasswordSpent,
requireDestinationTag: flags.RequireDestTag,
requireAuthorization: flags.RequireAuth,
disallowIncomingXRP: flags.DisallowXRP,
disableMasterKey: flags.DisableMaster,
noFreeze: flags.NoFreeze,
globalFreeze: flags.GlobalFreeze,
defaultRipple: flags.DefaultRipple
};
function parseFlags(value) {
const settings = {};
for (const flagName in AccountFlags) {
if (value & AccountFlags[flagName]) {
settings[flagName] = true;
}
}
return settings;
}
function getSettings(account, callback) {
validate.address(account);
this.remote.requestAccountInfo({account: account}, function(error, info) {
if (error) {
return callback(error);
}
const data = info.account_data;
const parsedFlags = parseFlags(data.Flags);
const parsedFields = parseFields(data);
const settings = _.assign({}, parsedFlags, parsedFields);
callback(null, settings);
});
}
module.exports = getSettings;