diff --git a/lib/addresses.js b/lib/addresses.js index 64b302e..cfb3926 100644 --- a/lib/addresses.js +++ b/lib/addresses.js @@ -158,9 +158,8 @@ AddressController.prototype.utxo = function(req, res) { AddressController.prototype.multiutxo = function(req, res) { var self = this; - var sep = ','; - var addresses; + if (_.isArray(req.addrs)) { addresses = _.uniq(req.addrs); } else { @@ -168,8 +167,11 @@ AddressController.prototype.multiutxo = function(req, res) { } var addressesLeft = addresses.length; + var startedWriting = false; res.write('['); + var sep = ','; + async.eachLimit(addresses, 4, function(addr, next) { self._address.getAddressUnspentOutputs(addr, {}, function(err, utxos) { @@ -178,16 +180,21 @@ AddressController.prototype.multiutxo = function(req, res) { return next(err); } - for(var i = 0; i < utxos.length; i++) { + if (addressesLeft-- > 0 && utxos.length > 0 && startedWriting) { + res.write(sep); + } - if (--addressesLeft <= 0 && utxos[i] === utxos[utxos.length - 1] ) { + for(var i = 0; i < utxos.length; i++) { + startedWriting = true; + if (utxos.length - 1 === i) { sep = ''; } - res.write(JSON.stringify(self.transformUtxo(utxos[i])) + sep); } + sep = ','; next(); + }); }, function(err) {