From 64a48db99155c4164ebd2d30063da973dfdfb33f Mon Sep 17 00:00:00 2001 From: Ivan Socolsky Date: Wed, 28 Oct 2015 13:25:32 -0300 Subject: [PATCH] check single address activity on blockchain --- lib/blockchainexplorers/insight.js | 48 ++++++++---------------------- test/integration/server.js | 4 +-- 2 files changed, 14 insertions(+), 38 deletions(-) diff --git a/lib/blockchainexplorers/insight.js b/lib/blockchainexplorers/insight.js index 3f7f384..950930f 100644 --- a/lib/blockchainexplorers/insight.js +++ b/lib/blockchainexplorers/insight.js @@ -1,7 +1,6 @@ 'use strict'; var _ = require('lodash'); -var async = require('async'); var $ = require('preconditions').singleton(); var log = require('npmlog'); log.debug = log.verbose; @@ -114,46 +113,23 @@ Insight.prototype.getTransactions = function(addresses, from, to, cb) { }); }; -Insight.prototype.getAddressActivity = function(addresses, cb) { +Insight.prototype.getAddressActivity = function(address, cb) { var self = this; - function getOneAddressActivity(address, cb2) { - var url = self.url + self.apiPrefix + '/addr/' + address; - var args = { - method: 'GET', - url: url, - json: true, - }; - - request(args, function(err, res, result) { - if (res && res.statusCode == 404) return cb2(); - if (err || res.statusCode !== 200) - return cb2(_parseErr(err, res)); - - var nbTxs = result.unconfirmedTxApperances + result.txApperances; - return cb2(null, nbTxs > 0); - }); + var url = self.url + self.apiPrefix + '/addr/' + address; + var args = { + method: 'GET', + url: url, + json: true, }; - addresses = [].concat(addresses); - - if (addresses.length == 1) { - return getOneAddressActivity(addresses[0], cb); - } + request(args, function(err, res, result) { + if (res && res.statusCode == 404) return cb(); + if (err || res.statusCode !== 200) + return cb(_parseErr(err, res)); - var activityFound = false; - var i = 0; - - async.until(function() { - return i == addresses.length || activityFound; - }, function(next) { - getOneAddressActivity(addresses[i++], function(err, res) { - if (err) return next(err); - activityFound = !!res; - return next(); - }); - }, function(err) { - return cb(err, activityFound); + var nbTxs = result.unconfirmedTxApperances + result.txApperances; + return cb(null, nbTxs > 0); }); }; diff --git a/test/integration/server.js b/test/integration/server.js index e5d86e9..c5dcc97 100644 --- a/test/integration/server.js +++ b/test/integration/server.js @@ -237,8 +237,8 @@ helpers.stubFeeLevels = function(levels) { }; helpers.stubAddressActivity = function(activeAddresses) { - blockchainExplorer.getAddressActivity = function(addresses, cb) { - return cb(null, _.intersection(activeAddresses, [].concat(addresses)).length > 0); + blockchainExplorer.getAddressActivity = function(address, cb) { + return cb(null, _.contains(activeAddresses, address)); }; };