diff --git a/lib/services/bitcoind.js b/lib/services/bitcoind.js index be8ce904..f2e5c89a 100644 --- a/lib/services/bitcoind.js +++ b/lib/services/bitcoind.js @@ -597,6 +597,14 @@ Bitcoin.prototype.syncPercentage = function(callback) { }); }; +Bitcoin.prototype._normalizeAddressArg = function(addressArg) { + var addresses = [addressArg]; + if (Array.isArray(addressArg)) { + addresses = addressArg; + } + return addresses; +}; + /** * Will get the balance for an address or multiple addresses * @param {String|Address|Array} addressArg - An address string, bitcore address, or array of addresses @@ -605,10 +613,7 @@ Bitcoin.prototype.syncPercentage = function(callback) { */ Bitcoin.prototype.getAddressBalance = function(addressArg, options, callback) { var self = this; - var addresses = [addressArg]; - if (Array.isArray(addressArg)) { - addresses = addressArg; - } + var addresses = self._normalizeAddressArg(addressArg); var cacheKey = addresses.join(''); var balance = self.balanceCache.get(cacheKey); if (balance) { @@ -634,10 +639,7 @@ Bitcoin.prototype.getAddressBalance = function(addressArg, options, callback) { */ Bitcoin.prototype.getAddressUnspentOutputs = function(addressArg, options, callback) { var self = this; - var addresses = [addressArg]; - if (Array.isArray(addressArg)) { - addresses = addressArg; - } + var addresses = self._normalizeAddressArg(addressArg); var cacheKey = addresses.join(''); var utxos = self.utxosCache.get(cacheKey); if (utxos) { @@ -685,10 +687,7 @@ Bitcoin.prototype._getTxidsFromMempool = function(deltas) { Bitcoin.prototype.getAddressTxids = function(addressArg, options, callback) { var self = this; var queryMempool = _.isUndefined(options.queryMempool) ? true : options.queryMempool; - var addresses = [addressArg]; - if (Array.isArray(addressArg)) { - addresses = addressArg; - } + var addresses = self._normalizeAddressArg(addressArg); var cacheKey = addresses.join(''); var mempoolTxids = []; var txids = self.txidsCache.get(cacheKey); @@ -859,10 +858,7 @@ Bitcoin.prototype._paginateTxids = function(fullTxids, from, to) { */ Bitcoin.prototype.getAddressHistory = function(addressArg, options, callback) { var self = this; - var addresses = [addressArg]; - if (_.isArray(addressArg)) { - addresses = addressArg; - } + var addresses = self._normalizeAddressArg(addressArg); if (addresses.length > this.maxAddressesQuery) { return callback(new TypeError('Maximum number of addresses (' + this.maxAddressesQuery + ') exceeded')); } @@ -911,18 +907,13 @@ Bitcoin.prototype.getAddressSummary = function(addressArg, options, callback) { var queryMempool = _.isUndefined(options.queryMempool) ? true : options.queryMempool; var summaryTxids = []; var mempoolTxids = []; - - var addresses = [addressArg]; - if (Array.isArray(addressArg)) { - addresses = addressArg; - } - + var addresses = self._normalizeAddressArg(addressArg); var cacheKey = addresses.join(''); function querySummary() { async.parallel([ function getTxList(done) { - self.getAddressTxids(addressArg, {queryMempool: false}, function(err, txids) { + self.getAddressTxids(addresses, {queryMempool: false}, function(err, txids) { if (err) { return done(err); } @@ -932,7 +923,7 @@ Bitcoin.prototype.getAddressSummary = function(addressArg, options, callback) { }); }, function getBalance(done) { - self.getAddressBalance(addressArg, options, function(err, data) { + self.getAddressBalance(addresses, options, function(err, data) { if (err) { return done(err); } @@ -946,7 +937,7 @@ Bitcoin.prototype.getAddressSummary = function(addressArg, options, callback) { if (!queryMempool) { return done(); } - self.client.getAddressMempool({'addresses': [addressArg]}, function(err, response) { + self.client.getAddressMempool({'addresses': addresses}, function(err, response) { if (err) { return done(self._wrapRPCError(err)); }