bitcore-node-zcash/app/models/Status.js

113 lines
2.4 KiB
JavaScript
Raw Normal View History

2014-01-15 12:15:14 -08:00
'use strict';
require('classtool');
function spec() {
var async = require('async');
var RpcClient = require('bitcore/RpcClient').class();
2014-02-09 14:33:39 -08:00
var BlockDb = require('../../lib/BlockDb').class();
2014-01-15 12:15:14 -08:00
var config = require('../../config/config');
var rpc = new RpcClient(config.bitcoind);
function Status() {
2014-02-09 14:33:39 -08:00
this.bDb = new BlockDb();
2014-01-15 12:15:14 -08:00
}
Status.prototype.getInfo = function(next) {
var that = this;
async.series([
function (cb) {
2014-01-15 12:39:11 -08:00
rpc.getInfo(function(err, info){
2014-01-15 12:15:14 -08:00
if (err) return cb(err);
2014-01-15 12:39:11 -08:00
that.info = info.result;
return cb();
});
2014-02-09 14:33:39 -08:00
},
2014-01-15 12:39:11 -08:00
], function (err) {
return next(err);
});
};
Status.prototype.getDifficulty = function(next) {
var that = this;
async.series([
function (cb) {
rpc.getDifficulty(function(err, df){
if (err) return cb(err);
that.difficulty = df.result;
2014-01-15 12:15:14 -08:00
return cb();
});
}
], function (err) {
return next(err);
});
};
2014-01-15 13:05:02 -08:00
Status.prototype.getTxOutSetInfo = function(next) {
var that = this;
async.series([
function (cb) {
rpc.getTxOutSetInfo(function(err, txout){
if (err) return cb(err);
that.txoutsetinfo = txout.result;
return cb();
});
}
], function (err) {
return next(err);
});
};
2014-01-15 13:27:06 -08:00
Status.prototype.getBestBlockHash = function(next) {
var that = this;
async.series([
function (cb) {
rpc.getBestBlockHash(function(err, bbh){
if (err) return cb(err);
that.bestblockhash = bbh.result;
return cb();
});
2014-02-09 14:33:39 -08:00
},
2014-01-15 13:27:06 -08:00
], function (err) {
return next(err);
});
};
Status.prototype.getLastBlockHash = function(next) {
var that = this;
2014-02-09 14:33:39 -08:00
that.bDb.getTip(function(err,tip) {
that.syncTipHash = tip;
async.waterfall(
[
function(callback){
rpc.getBlockCount(function(err, bc){
if (err) return callback(err);
callback(null, bc.result);
});
},
function(bc, callback){
rpc.getBlockHash(bc, function(err, bh){
if (err) return callback(err);
callback(null, bh.result);
});
}
],
function (err, result) {
that.lastblockhash = result;
return next();
}
);
});
};
2014-01-15 12:15:14 -08:00
return Status;
}
module.defineClass(spec);