fixed no bitcoind crash

This commit is contained in:
Manuel Araoz 2014-02-12 14:02:33 -03:00
parent 5d75aa3ef2
commit 39cd42bedc

View File

@ -3,9 +3,9 @@
/** /**
* Module dependencies. * Module dependencies.
*/ */
var common = require('./common'), var common = require('./common'),
async = require('async'), async = require('async'),
BlockDb = require('../../lib/BlockDb').class(); BlockDb = require('../../lib/BlockDb').class();
var bdb = new BlockDb(); var bdb = new BlockDb();
@ -14,7 +14,7 @@ var bdb = new BlockDb();
*/ */
exports.block = function(req, res, next, hash) { exports.block = function(req, res, next, hash) {
bdb.fromHashWithInfo(hash, function(err, block) { bdb.fromHashWithInfo(hash, function(err, block) {
if (err || ! block) if (err || !block)
return common.handleErrors(err, res, next); return common.handleErrors(err, res, next);
else { else {
req.block = block.info; req.block = block.info;
@ -41,8 +41,7 @@ exports.blockindex = function(req, res, next, height) {
if (err) { if (err) {
console.log(err); console.log(err);
res.status(400).send('Bad Request'); // TODO res.status(400).send('Bad Request'); // TODO
} } else {
else {
res.jsonp(hashStr); res.jsonp(hashStr);
} }
}); });
@ -57,7 +56,7 @@ var getBlock = function(blockhash, cb) {
// TODO // TODO
if (!block.info) { if (!block.info) {
console.log('[blocks.js.60]: could not get %s from RPC. Orphan? Error?', blockhash); //TODO console.log('[blocks.js.60]: could not get %s from RPC. Orphan? Error?', blockhash); //TODO
// Probably orphan // Probably orphan
block.info = { block.info = {
hash: blockhash, hash: blockhash,
@ -75,10 +74,10 @@ exports.list = function(req, res) {
var isToday = false; var isToday = false;
//helper to convert timestamps to yyyy-mm-dd format //helper to convert timestamps to yyyy-mm-dd format
var formatTimestamp = function (date) { var formatTimestamp = function(date) {
var yyyy = date.getUTCFullYear().toString(); var yyyy = date.getUTCFullYear().toString();
var mm = (date.getUTCMonth() + 1).toString(); // getMonth() is zero-based var mm = (date.getUTCMonth() + 1).toString(); // getMonth() is zero-based
var dd = date.getUTCDate().toString(); var dd = date.getUTCDate().toString();
return yyyy + '-' + (mm[1] ? mm : '0' + mm[0]) + '-' + (dd[1] ? dd : '0' + dd[0]); //padding return yyyy + '-' + (mm[1] ? mm : '0' + mm[0]) + '-' + (dd[1] ? dd : '0' + dd[0]); //padding
}; };
@ -105,20 +104,20 @@ exports.list = function(req, res) {
bdb.getBlocksByDate(gte, lte, function(err, blocks) { bdb.getBlocksByDate(gte, lte, function(err, blocks) {
if (err) { if (err) {
res.status(500).send(err); res.status(500).send(err);
} } else {
else {
var blockshashList = []; var blockshashList = [];
var limit = parseInt(req.query.limit || blocks.length); var limit = parseInt(req.query.limit || blocks.length);
if (blocks.length < limit) { if (blocks.length < limit) {
limit = blocks.length; limit = blocks.length;
} }
for(var i=0;i<limit;i++) { for (var i = 0; i < limit; i++) {
blockshashList.push(blocks[i].hash); blockshashList.push(blocks[i].hash);
} }
async.mapSeries(blockshashList, async.mapSeries(blockshashList,
function(hash, cb) { function(hash, cb) {
getBlock(hash, function(err, info) { getBlock(hash, function(err, info) {
return cb(err,{ if (err) return cb(err);
return cb(err, {
height: info.height, height: info.height,
size: info.size, size: info.size,
hash: info.hash, hash: info.hash,
@ -127,18 +126,18 @@ exports.list = function(req, res) {
}); });
}); });
}, function(err, allblocks) { }, function(err, allblocks) {
res.jsonp({ res.jsonp({
blocks: allblocks, blocks: allblocks,
length: allblocks.length, length: allblocks.length,
pagination: { pagination: {
next: next, next: next,
prev: prev, prev: prev,
currentTs: lte-1, currentTs: lte - 1,
current: dateStr, current: dateStr,
isToday: isToday isToday: isToday
} }
});
}); });
});
} }
}); });
}; };