diff --git a/app/controllers/addresses.js b/app/controllers/addresses.js index 425602b8f..072cd0058 100644 --- a/app/controllers/addresses.js +++ b/app/controllers/addresses.js @@ -79,6 +79,28 @@ exports.show = function(req, res, next) { } }; +exports.multishow = function(req, res, next) { + if (!checkSync(req, res)) return; + var as = getAddrs(req, res, next); + + if (as) { + var addrs = []; + async.eachLimit(as, RPC_CONCURRENCY, function(a, callback) { + a.update(function(err) { + if (err) callback(err); + addrs = addrs.concat(a.getObj()); + callback(); + }, { + txLimit: req.query.noTxList ? 0 : -1, + ignoreCache: req.param('noCache') + }); + }, function(err) { // finished callback + if (err) return common.handleErrors(err, res); + res.jsonp(addrs); + }); + } +}; + exports.utxo = function(req, res, next) { diff --git a/config/routes.js b/config/routes.js index 0b774469f..ad1978fb5 100644 --- a/config/routes.js +++ b/config/routes.js @@ -35,6 +35,8 @@ module.exports = function(app) { var addresses = require('../app/controllers/addresses'); app.get(apiPrefix + '/addr/:addr', addresses.show); app.get(apiPrefix + '/addr/:addr/utxo', addresses.utxo); + app.get(apiPrefix + '/addrs/:addrs/info', addresses.multishow); + app.post(apiPrefix + '/addrs/info', addresses.multishow); app.get(apiPrefix + '/addrs/:addrs/utxo', addresses.multiutxo); app.post(apiPrefix + '/addrs/utxo', addresses.multiutxo); app.get(apiPrefix + '/addrs/:addrs/txs', addresses.multitxs);