Merge pull request #375 from pnagurny/feature/estimateFee

v0.3.0 add estimateFee route
This commit is contained in:
Braydon Fuller 2015-09-21 13:19:24 -04:00
commit b32eeec4d6
3 changed files with 66 additions and 3 deletions

View File

@ -7,6 +7,7 @@ var TxController = require('./transactions');
var AddressController = require('./addresses');
var StatusController = require('./status');
var MessagesController = require('./messages');
var UtilsController = require('./utils');
var bitcore = require('bitcore');
var $ = bitcore.util.preconditions;
var Transaction = bitcore.Transaction;
@ -84,11 +85,11 @@ InsightAPI.prototype.setupRoutes = function(app) {
app.post('/messages/verify', messages.verify.bind(messages));
// Utils route
/*var utils = require('../app/controllers/utils');
app.get(apiPrefix + '/utils/estimatefee', utils.estimateFee);
var utils = new UtilsController(this.node);
app.get('/utils/estimatefee', utils.estimateFee.bind(utils));
// Currency
var currency = require('../app/controllers/currency');
/*var currency = require('../app/controllers/currency');
app.get(apiPrefix + '/currency', currency.index);
// Email store plugin

21
lib/utils.js Normal file
View File

@ -0,0 +1,21 @@
'use strict';
var _ = require('lodash');
function UtilsController(node) {
this.node = node;
}
UtilsController.prototype.estimateFee = function(req, res) {
var self = this;
var args = req.query.nbBlocks || '2';
var nbBlocks = args.split(',');
var result = nbBlocks.map(function(n) {
var num = parseInt(n);
return [num, self.node.services.bitcoind.estimateFee(num)];
});
res.jsonp(_.zipObject(result));
};
module.exports = UtilsController;

41
test/utils.js Normal file
View File

@ -0,0 +1,41 @@
'use strict';
var sinon = require('sinon');
var should = require('should');
var UtilsController = require('../lib/utils');
describe('Utils', function() {
describe('/utils/estimatefee', function() {
it('should give the correct fee', function(done) {
var node = {
services: {
bitcoind: {
estimateFee: function(blocks) {
switch(blocks) {
case 1:
return 1000;
case 3:
return 3000;
}
}
}
}
};
var utils = new UtilsController(node);
var req = {
query: {
nbBlocks: '1, 3'
}
};
var res = {
jsonp: function(fees) {
should(fees).eql({1: 1000, 3: 3000});
done();
}
}
utils.estimateFee(req, res);
});
});
});