Browse Source

check single address activity on blockchain

activeAddress
Ivan Socolsky 9 years ago
parent
commit
64a48db991
  1. 48
      lib/blockchainexplorers/insight.js
  2. 4
      test/integration/server.js

48
lib/blockchainexplorers/insight.js

@ -1,7 +1,6 @@
'use strict'; 'use strict';
var _ = require('lodash'); var _ = require('lodash');
var async = require('async');
var $ = require('preconditions').singleton(); var $ = require('preconditions').singleton();
var log = require('npmlog'); var log = require('npmlog');
log.debug = log.verbose; 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; var self = this;
function getOneAddressActivity(address, cb2) { var url = self.url + self.apiPrefix + '/addr/' + address;
var url = self.url + self.apiPrefix + '/addr/' + address; var args = {
var args = { method: 'GET',
method: 'GET', url: url,
url: url, json: true,
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);
});
}; };
addresses = [].concat(addresses); request(args, function(err, res, result) {
if (res && res.statusCode == 404) return cb();
if (addresses.length == 1) { if (err || res.statusCode !== 200)
return getOneAddressActivity(addresses[0], cb); return cb(_parseErr(err, res));
}
var activityFound = false; var nbTxs = result.unconfirmedTxApperances + result.txApperances;
var i = 0; return cb(null, nbTxs > 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);
}); });
}; };

4
test/integration/server.js

@ -237,8 +237,8 @@ helpers.stubFeeLevels = function(levels) {
}; };
helpers.stubAddressActivity = function(activeAddresses) { helpers.stubAddressActivity = function(activeAddresses) {
blockchainExplorer.getAddressActivity = function(addresses, cb) { blockchainExplorer.getAddressActivity = function(address, cb) {
return cb(null, _.intersection(activeAddresses, [].concat(addresses)).length > 0); return cb(null, _.contains(activeAddresses, address));
}; };
}; };

Loading…
Cancel
Save