Merge pull request #727 from nitsujlangston/queueInsightRequests
Adding insight request queue
This commit is contained in:
commit
2692f579e2
|
@ -1,6 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
var _ = require('lodash');
|
||||
var async = require('async');
|
||||
var $ = require('preconditions').singleton();
|
||||
var log = require('npmlog');
|
||||
log.debug = log.verbose;
|
||||
|
@ -22,7 +23,8 @@ function Insight(opts) {
|
|||
this.network = opts.network || 'livenet';
|
||||
this.hosts = opts.url;
|
||||
this.userAgent = opts.userAgent || 'bws';
|
||||
};
|
||||
this.requestQueue = async.queue(this._doRequest.bind(this), Defaults.INSIGHT_REQUEST_POOL_SIZE);
|
||||
}
|
||||
|
||||
|
||||
var _parseErr = function(err, res) {
|
||||
|
@ -66,7 +68,7 @@ Insight.prototype.getUtxos = function(addresses, cb) {
|
|||
},
|
||||
};
|
||||
|
||||
this._doRequest(args, function(err, res, unspent) {
|
||||
this.requestQueue.push(args, function(err, res, unspent) {
|
||||
if (err || res.statusCode !== 200) return cb(_parseErr(err, res));
|
||||
return cb(null, unspent);
|
||||
});
|
||||
|
@ -84,7 +86,7 @@ Insight.prototype.broadcast = function(rawTx, cb) {
|
|||
},
|
||||
};
|
||||
|
||||
this._doRequest(args, function(err, res, body) {
|
||||
this.requestQueue.push(args, function(err, res, body) {
|
||||
if (err || res.statusCode !== 200) return cb(_parseErr(err, res));
|
||||
return cb(null, body ? body.txid : null);
|
||||
});
|
||||
|
@ -97,7 +99,7 @@ Insight.prototype.getTransaction = function(txid, cb) {
|
|||
json: true,
|
||||
};
|
||||
|
||||
this._doRequest(args, function(err, res, tx) {
|
||||
this.requestQueue.push(args, function(err, res, tx) {
|
||||
if (res && res.statusCode == 404) return cb();
|
||||
if (err || res.statusCode !== 200)
|
||||
return cb(_parseErr(err, res));
|
||||
|
@ -127,7 +129,7 @@ Insight.prototype.getTransactions = function(addresses, from, to, cb) {
|
|||
};
|
||||
|
||||
|
||||
this._doRequest(args, function(err, res, txs) {
|
||||
this.requestQueue.push(args, function(err, res, txs) {
|
||||
if (err || res.statusCode !== 200) return cb(_parseErr(err, res));
|
||||
|
||||
if (_.isObject(txs)) {
|
||||
|
@ -154,7 +156,7 @@ Insight.prototype.getAddressActivity = function(address, cb) {
|
|||
json: true,
|
||||
};
|
||||
|
||||
this._doRequest(args, function(err, res, result) {
|
||||
this.requestQueue.push(args, function(err, res, result) {
|
||||
if (res && res.statusCode == 404) return cb();
|
||||
if (err || res.statusCode !== 200)
|
||||
return cb(_parseErr(err, res));
|
||||
|
@ -175,7 +177,7 @@ Insight.prototype.estimateFee = function(nbBlocks, cb) {
|
|||
path: path,
|
||||
json: true,
|
||||
};
|
||||
this._doRequest(args, function(err, res, body) {
|
||||
this.requestQueue.push(args, function(err, res, body) {
|
||||
if (err || res.statusCode !== 200) return cb(_parseErr(err, res));
|
||||
return cb(null, body);
|
||||
});
|
||||
|
@ -189,7 +191,7 @@ Insight.prototype.getBlockchainHeight = function(cb) {
|
|||
path: path,
|
||||
json: true,
|
||||
};
|
||||
this._doRequest(args, function(err, res, body) {
|
||||
this.requestQueue.push(args, function(err, res, body) {
|
||||
if (err || res.statusCode !== 200) return cb(_parseErr(err, res));
|
||||
return cb(null, body.blockChainHeight);
|
||||
});
|
||||
|
@ -204,7 +206,7 @@ Insight.prototype.getTxidsInBlock = function(blockHash, cb) {
|
|||
json: true,
|
||||
};
|
||||
|
||||
this._doRequest(args, function(err, res, body) {
|
||||
this.requestQueue.push(args, function(err, res, body) {
|
||||
if (err || res.statusCode !== 200) return cb(_parseErr(err, res));
|
||||
return cb(null, body.tx);
|
||||
});
|
||||
|
|
|
@ -137,4 +137,6 @@ Defaults.RateLimit = {
|
|||
|
||||
Defaults.COIN = 'btc';
|
||||
|
||||
Defaults.INSIGHT_REQUEST_POOL_SIZE = 20;
|
||||
|
||||
module.exports = Defaults;
|
||||
|
|
Loading…
Reference in New Issue