Add getAccountInfo method and unit test

This commit is contained in:
Chris Clark
2015-07-15 16:09:26 -07:00
parent 529a55efb0
commit c073c2b7de
6 changed files with 49 additions and 1 deletions

View File

@@ -1,7 +1,7 @@
{ {
"$schema": "http://json-schema.org/draft-04/schema#", "$schema": "http://json-schema.org/draft-04/schema#",
"title": "settings-options", "title": "settings-options",
"description": "Options for getSettings", "description": "Options for getSettings and getAccountInfo",
"type": "object", "type": "object",
"properties": { "properties": {
"ledgerVersion": {"$ref": "ledgerVersion"} "ledgerVersion": {"$ref": "ledgerVersion"}

View File

@@ -54,6 +54,7 @@ module.exports = {
blob: _.partial(schemaValidate, 'blob'), blob: _.partial(schemaValidate, 'blob'),
getTransactionsOptions: _.partial(validateOptions, 'transactions-options'), getTransactionsOptions: _.partial(validateOptions, 'transactions-options'),
getSettingsOptions: _.partial(validateOptions, 'settings-options'), getSettingsOptions: _.partial(validateOptions, 'settings-options'),
getAccountInfoOptions: _.partial(validateOptions, 'settings-options'),
getTrustlinesOptions: _.partial(validateOptions, 'trustlines-options'), getTrustlinesOptions: _.partial(validateOptions, 'trustlines-options'),
getBalancesOptions: _.partial(validateOptions, 'trustlines-options'), getBalancesOptions: _.partial(validateOptions, 'trustlines-options'),
getOrdersOptions: _.partial(validateOptions, 'orders-options'), getOrdersOptions: _.partial(validateOptions, 'orders-options'),

View File

@@ -16,6 +16,7 @@ const getPaths = require('./ledger/pathfind');
const getOrders = require('./ledger/orders'); const getOrders = require('./ledger/orders');
const getOrderbook = require('./ledger/orderbook'); const getOrderbook = require('./ledger/orderbook');
const getSettings = require('./ledger/settings'); const getSettings = require('./ledger/settings');
const getAccountInfo = require('./ledger/accountinfo');
const preparePayment = require('./transaction/payment'); const preparePayment = require('./transaction/payment');
const prepareTrustline = require('./transaction/trustline'); const prepareTrustline = require('./transaction/trustline');
const prepareOrder = require('./transaction/order'); const prepareOrder = require('./transaction/order');
@@ -48,6 +49,7 @@ RippleAPI.prototype = {
getOrders, getOrders,
getOrderbook, getOrderbook,
getSettings, getSettings,
getAccountInfo,
preparePayment, preparePayment,
prepareTrustline, prepareTrustline,

View File

@@ -0,0 +1,32 @@
'use strict';
const utils = require('./utils');
const removeUndefined = require('./parse/utils').removeUndefined;
const validate = utils.common.validate;
const composeAsync = utils.common.composeAsync;
function formatAccountInfo(response) {
const data = response.account_data;
return removeUndefined({
sequence: data.Sequence,
xrpBalance: utils.common.dropsToXrp(data.Balance),
ownerCount: data.OwnerCount,
previousInitiatedTransactionID: data.AccountTxnID,
previousAffectingTransactionID: data.PreviousTxnID,
previousAffectingTransactionLedgerVersion: data.PreviousTxnLgrSeq
});
}
function getAccountInfo(account, options, callback) {
validate.address(account);
validate.getAccountInfoOptions(options);
const request = {
account: account,
ledger: options.ledgerVersion
};
this.remote.requestAccountInfo(request,
composeAsync(formatAccountInfo, callback));
}
module.exports = utils.wrapCatch(getAccountInfo);

View File

@@ -16,6 +16,7 @@ const orderCancellationResponse =
require('./fixtures/ordercancellation-response'); require('./fixtures/ordercancellation-response');
const settingsSpecification = require('./fixtures/settings-specification'); const settingsSpecification = require('./fixtures/settings-specification');
const settingsResponse = require('./fixtures/settings-response'); const settingsResponse = require('./fixtures/settings-response');
const getAccountInfoResponse = require('./fixtures/account-info-response');
const regularKeyResponse = require('./fixtures/regular-key-response'); const regularKeyResponse = require('./fixtures/regular-key-response');
const signInput = require('./fixtures/sign-input'); const signInput = require('./fixtures/sign-input');
const signOutput = require('./fixtures/sign-output'); const signOutput = require('./fixtures/sign-output');
@@ -163,6 +164,11 @@ describe('RippleAPI', function() {
_.partial(checkResult, getSettingsResponse, done)); _.partial(checkResult, getSettingsResponse, done));
}); });
it('getAccountInfo', function(done) {
this.api.getAccountInfo(address, {},
_.partial(checkResult, getAccountInfoResponse, done));
});
it('getOrders', function(done) { it('getOrders', function(done) {
this.api.getOrders(address, {}, this.api.getOrders(address, {},
_.partial(checkResult, getOrdersResponse, done)); _.partial(checkResult, getOrdersResponse, done));

View File

@@ -0,0 +1,7 @@
{
"sequence": 23,
"xrpBalance": "922.913243",
"ownerCount": 1,
"previousAffectingTransactionID": "19899273706A9E040FDB5885EE991A1DC2BAD878A0D6E7DBCFB714E63BF737F7",
"previousAffectingTransactionLedgerVersion": 6614625
}