Merge pull request #375 from pnagurny/feature/estimateFee
v0.3.0 add estimateFee route
This commit is contained in:
commit
b32eeec4d6
@ -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
21
lib/utils.js
Normal 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
41
test/utils.js
Normal 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);
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue
Block a user