mirror of
https://github.com/Xahau/xahau.js.git
synced 2026-04-29 15:37:50 +00:00
45 lines
1.2 KiB
JavaScript
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;
|