From 50413c8204c404c77f301bf7e9a1ee72dea9bd1d Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Tue, 28 Apr 2015 19:39:29 -0300 Subject: [PATCH] fix edge case for listBlocks --- api/test/app.js | 7 +++++++ lib/services/block.js | 10 +++++----- 2 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 api/test/app.js diff --git a/api/test/app.js b/api/test/app.js new file mode 100644 index 00000000..b0443d8e --- /dev/null +++ b/api/test/app.js @@ -0,0 +1,7 @@ +'use strict'; + +var BitcoreHTTP = require('../lib/http'); + +module.exports = function(nodeMock) { + return process.env.INTEGRATION === 'true' ? BitcoreHTTP.create().app : new BitcoreHTTP(nodeMock).app; +}; diff --git a/lib/services/block.js b/lib/services/block.js index 1f503177..d52f1f42 100644 --- a/lib/services/block.js +++ b/lib/services/block.js @@ -205,6 +205,7 @@ BlockService.prototype.listBlocks = function(from, to, offset, limit) { var start = from + offset; var end = Math.min(to, start + limit - 1); var blocks = []; + // TODO: optimize: precompute heights and fetch all blocks in parallel? var fetchBlock = function(height) { if (height > end) { return; @@ -212,12 +213,11 @@ BlockService.prototype.listBlocks = function(from, to, offset, limit) { console.log('fetching block', height); return self.getBlockByHeight(height) .then(function(block) { - if (!block) { - // TODO: report? - return; - } - blocks.push(block); + blocks.push(block.toObject()); return fetchBlock(height + 1); + }) + .catch(function(err) { + console.log(err); }); }; return fetchBlock(start)