Files
xahau.js/src/api/ledger/parse/settings.js
2015-06-17 18:04:24 -07:00

29 lines
745 B
JavaScript

/* @flow */
'use strict';
const _ = require('lodash');
const assert = require('assert');
const AccountSetFlags = require('./utils').constants.AccountSetFlags;
const parseFields = require('./fields');
function getName(flagNumber) {
return _.findKey(AccountSetFlags, (v) => v === flagNumber);
}
function parseSettings(tx: Object) {
const txType = tx.TransactionType;
assert(txType === 'AccountSet' || txType === 'SetRegularKey');
const settings = {};
if (tx.SetFlag) {
settings[getName(tx.SetFlag)] = true;
}
if (tx.ClearFlag) {
settings[getName(tx.ClearFlag)] = false;
}
if (tx.RegularKey) {
settings.regularKey = tx.RegularKey;
}
return _.assign(settings, parseFields(tx));
}
module.exports = parseSettings;