rpc on classtool
This commit is contained in:
parent
a66b7e54ce
commit
2f98fe35b3
|
@ -61,9 +61,8 @@ function spec() {
|
|||
function (cb) {
|
||||
db.fromAddr(self.addrStr, function(err,txOut){
|
||||
if (err) return cb(err);
|
||||
|
||||
txOut.forEach(function(txItem){
|
||||
var v = parseInt(txItem.value_sat);
|
||||
var v = txItem.value_sat;
|
||||
|
||||
self.totalReceivedSat += v;
|
||||
self.transactions.push(txItem.txid);
|
||||
|
|
|
@ -18,6 +18,7 @@ function spec(b) {
|
|||
BitcoreBlock= require('bitcore/Block').class(),
|
||||
config = require('../config/config');
|
||||
var db = b.db || levelup(config.leveldb + '/blocks');
|
||||
var rpc = b.rpc || new RpcClient(config.bitcoind);
|
||||
|
||||
|
||||
var BlockDb = function() {
|
||||
|
@ -112,8 +113,6 @@ function spec(b) {
|
|||
|
||||
|
||||
BlockDb.prototype.fromHashWithInfo = function(hash, cb) {
|
||||
var rpc = new RpcClient(config.bitcoind);
|
||||
|
||||
rpc.getBlock(hash, function(err, info) {
|
||||
// Not found?
|
||||
if (err && err.code === -5) return cb();
|
||||
|
@ -135,7 +134,6 @@ function spec(b) {
|
|||
end: TIMESTAMP_ROOT + end_ts
|
||||
})
|
||||
.on('data', function (data) {
|
||||
console.log('[BlockDb.js.137:data:]',data); //TODO
|
||||
list.push({
|
||||
ts: data.key.replace(TIMESTAMP_ROOT, ''),
|
||||
hash: data.value,
|
||||
|
@ -149,8 +147,7 @@ console.log('[BlockDb.js.137:data:]',data); //TODO
|
|||
});
|
||||
};
|
||||
|
||||
BlockDb.blockIndex = function(height, cb) {
|
||||
var rpc = new RpcClient(config.bitcoind);
|
||||
BlockDb.prototype.blockIndex = function(height, cb) {
|
||||
rpc.getBlockHash(height, function(err, bh){
|
||||
if (err) return cb(err);
|
||||
|
||||
|
|
|
@ -82,8 +82,8 @@ function spec(b) {
|
|||
var v = data.value.split(':');
|
||||
ret.push({
|
||||
addr: v[0],
|
||||
value_sat: v[1],
|
||||
index: k[2],
|
||||
value_sat: parseInt(v[1]),
|
||||
index: parseInt(k[2]),
|
||||
});
|
||||
})
|
||||
.on('error', function (err) {
|
||||
|
@ -98,9 +98,9 @@ function spec(b) {
|
|||
var v = data.value.split(':');
|
||||
var set=0;
|
||||
for(var i=0; i<l; i++) {
|
||||
if (ret[i].index === k[3]) {
|
||||
if (ret[i].index === parseInt(k[3])) {
|
||||
ret[i].spendTxId = v[0];
|
||||
ret[i].spendIndex=v[1];
|
||||
ret[i].spendIndex = parseInt(v[1]);
|
||||
set=1;
|
||||
}
|
||||
}
|
||||
|
@ -171,7 +171,6 @@ function spec(b) {
|
|||
self._getInfo(txid, function(err, info) {
|
||||
if (err) return cb(err);
|
||||
if (!info ) return cb();
|
||||
|
||||
return cb(err, {txid: txid, info: info} );
|
||||
});
|
||||
};
|
||||
|
@ -186,7 +185,7 @@ function spec(b) {
|
|||
err = null;
|
||||
}
|
||||
var a = val.split(':');
|
||||
return cb(err, a[0], a[1]);
|
||||
return cb(err, a[0], parseInt(a[1]));
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -202,16 +201,17 @@ function spec(b) {
|
|||
var k = data.key.split('-');
|
||||
var v = data.value.split(':');
|
||||
ret.push({
|
||||
value_sat: v[0],
|
||||
ts: k[3],
|
||||
value_sat: parseInt(v[0]),
|
||||
ts: parseInt(k[3]),
|
||||
txid: k[4],
|
||||
index: k[5],
|
||||
index: parseInt(k[5]),
|
||||
});
|
||||
})
|
||||
.on('error', function (err) {
|
||||
return cb(err);
|
||||
})
|
||||
.on('end', function () {
|
||||
|
||||
async.each(ret, function(o, e_c) {
|
||||
var k = SPEND_ROOT + o.txid + '-' + o.index;
|
||||
db.get(k, function(err, val) {
|
||||
|
@ -220,7 +220,8 @@ function spec(b) {
|
|||
|
||||
var v = val.split(':');
|
||||
o.spendTxId= v[0];
|
||||
o.spendIndex=v[1];
|
||||
o.spendIndex=parseInt(v[1]);
|
||||
o.spendTs=parseInt(v[2]);
|
||||
return e_c();
|
||||
});
|
||||
},
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
require('classtool');
|
||||
|
||||
|
||||
function spec() {
|
||||
function spec(b) {
|
||||
var RpcClient = require('bitcore/RpcClient').class(),
|
||||
// networks = require('bitcore/network'),
|
||||
BitcoreTransaction = require('bitcore/Transaction').class(),
|
||||
|
@ -11,8 +11,9 @@ function spec() {
|
|||
util = require('bitcore/util/util'),
|
||||
config = require('../config/config');
|
||||
|
||||
var rpc = b.rpc || new RpcClient(config.bitcoind);
|
||||
|
||||
function TransactionRpc() {
|
||||
this.dummy = null;
|
||||
}
|
||||
|
||||
TransactionRpc._parseRpcResult = function(info) {
|
||||
|
@ -37,9 +38,9 @@ function spec() {
|
|||
// Outputs
|
||||
var valueOut = 0;
|
||||
info.vout.forEach( function(o) {
|
||||
valueOut += o.value * util.COIN;
|
||||
valueOut += o.value;
|
||||
});
|
||||
info.valueOut = valueOut / util.COIN;
|
||||
info.valueOut = valueOut;
|
||||
info.size = b.length;
|
||||
|
||||
return info;
|
||||
|
@ -48,8 +49,6 @@ function spec() {
|
|||
TransactionRpc.getRpcInfo = function(txid, cb) {
|
||||
var Self = this;
|
||||
|
||||
var rpc = new RpcClient(config.bitcoind);
|
||||
|
||||
rpc.getRawTransaction(txid, 1, function(err, txInfo) {
|
||||
|
||||
// Not found?
|
||||
|
|
|
@ -30,14 +30,12 @@ describe('Address balances', function(){
|
|||
a.update(function(err) {
|
||||
if (err) done(err);
|
||||
assert.equal(v.addr, a.addrStr);
|
||||
console.log("TX count:" + a.transactions.length);
|
||||
|
||||
if (v.balance) assert.equal(v.balance, a.balance, 'balance: ' + a.balance);
|
||||
if (v.txApperances)
|
||||
assert.equal(v.txApperances, a.txApperances, 'txApperances: ' + a.txApperances );
|
||||
if (v.totalReceived) assert.equal(v.totalReceived, a.totalReceived, 'received: ' + a.totalReceived );
|
||||
if (v.totalSent) assert.equal(v.totalSent, a.totalSent, 'send: ' + a.totalSent);
|
||||
|
||||
if (v.txApperances)
|
||||
assert.equal(v.txApperances, a.txApperances, 'txApperances: ' + a.txApperances );
|
||||
if (v.balance) assert.equal(v.balance, a.balance, 'balance: ' + a.balance);
|
||||
|
||||
if (v.transactions) {
|
||||
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
},
|
||||
{
|
||||
"addr": "mhPEfAmeKVwT7arwMYbhwnL2TfwuWbP4r4",
|
||||
"balance": 1065,
|
||||
"totalReceived": 1069,
|
||||
"totalSent": 4,
|
||||
"txApperances": 13
|
||||
"txApperances": 13,
|
||||
"balance": 1065,
|
||||
"totalSent": 4
|
||||
},
|
||||
{
|
||||
"addr": "n47CfqnKWdNwqY1UWxTmNJAqYutFxdH3zY",
|
||||
|
|
Loading…
Reference in New Issue