addr test working ~50%

This commit is contained in:
Matias Alejo Garcia 2014-02-04 04:06:03 -03:00
parent 65aad6d0ad
commit d5d6bcd131
5 changed files with 61 additions and 19 deletions

View File

@ -5,11 +5,12 @@ require('classtool');
function spec() {
var async = require('async');
var TransactionOut = require('./TransactionOut');
var BitcoreAddress = require('bitcore/Address').class();
var BitcoreUtil = require('bitcore/util/util');
var TransactionDb = require('../../lib/TransactionDb').class();
function Address(addrStr) {
this.tdb = new TransactionDb();
this.balanceSat = 0;
this.totalReceivedSat = 0;
this.totalSentSat = 0;
@ -71,14 +72,14 @@ function spec() {
},
*/
function (cb) {
TransactionOut.find({addr:self.addrStr}).exec(function(err,txOut){
self.tdb.fromAddr(self.addrStr, function(err,txOut){
if (err) return cb(err);
txOut.forEach(function(txItem){
self.totalReceivedSat += txItem.value_sat;
self.transactions.push(txItem.txid);
if (! txItem.spendTxIdBuf) {
if (! txItem.spendTxId) {
// unspent
self.balanceSat += txItem.value_sat;
self.txApperances +=1;

View File

@ -109,7 +109,6 @@ function spec() {
};
TransactionDb.prototype.fromTxIdN = function(txid, n, cb) {
var self = this;
@ -119,13 +118,58 @@ function spec() {
if (err && err.notFound) {
err = null;
}
var a = val.split('-');
return cb(err, val, a[0], a[1]);
});
};
TransactionDb.prototype.fromAddr = function(addr, cb) {
var self = this;
var k = ADDR_ROOT + addr;
var ret=[];
//var ADDR_ROOT = 'txouts-addr-'; //txouts-addr-<addr>-<ts>-<txid>-<n> => + btc_sat
//var SPEND_ROOT = 'txouts-spend-';//txouts-spend-<txid(out)>-<n(out)> => [txid(in),n(in),ts]
//
//
self.db.createReadStream({start: k, end: k + '~'})
.on('data', function (data) {
var k = data.key.split('-');
var v = data.value.split(':');
ret.push({
value_sat: v[0],
ts: k[3],
txid: k[4],
index: 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; //TODO ---
self.db.get(k, function(err, val) {
if (err && err.notFound) err=null;
if (err || !val) return e_c(err);
var v = val.split(':');
o.spendTxId= v[0];
o.spendIndex=v[1];
return e_c();
});
},
function(err) {
console.log('[TransactionDb.js.165]', ret); //TODO
return cb(err,ret);
});
});
};
// Only for testing. Very slow (toRm outs to rm, only to speedup)
TransactionDb.prototype.removeFromTxId = function(txid, toRm, cb) {
var self = this;

View File

@ -14,7 +14,7 @@ var
var txItemsValid = JSON.parse(fs.readFileSync('test/integration/txitems.json'));
describe('TransactionOut', function(){
describe('TransactionDb', function(){
var tdb = new TransactionDb();

View File

@ -5,23 +5,12 @@ process.env.NODE_ENV = process.env.NODE_ENV || 'development';
var
assert = require('assert'),
fs = require('fs'),
mongoose= require('mongoose'),
config = require('../../config/config'),
Address = require('../../app/models/Address').class();
addrValid = JSON.parse(fs.readFileSync('test/model/addr.json'));
addrValid = JSON.parse(fs.readFileSync('test/integration/addr.json'));
describe('Address balances', function(){
before(function(done) {
mongoose.connect(config.db);
done();
});
after(function(done) {
mongoose.connection.close();
done();
});
addrValid.forEach( function(v) {
if (v.disabled) {
console.log(v.addr + " => disabled in JSON");

View File

@ -1,10 +1,12 @@
[
{
"disabled":1,
"addr": "mgqvRGJMwR9JU5VhJ3x9uX9MTkzTsmmDgQ",
"balance": 43.1,
"txApperances": 19
},
{
"disabled":1,
"addr": "mp3Rzxx9s1A21SY3sjJ3CQoa2Xjph7e5eS",
"balance": 0,
"totalReceived": 50,
@ -12,6 +14,7 @@
"txApperances": 2
},
{
"disabled":1,
"addr": "muyg1K5WsHkfMVCkUXU2y7Xp5ZD6RGzCeH",
"balance": 0.38571339,
"totalReceived": 0.38571339,
@ -26,6 +29,7 @@
"txApperances": 13
},
{
"disabled":1,
"addr": "n47CfqnKWdNwqY1UWxTmNJAqYutFxdH3zY",
"balance": 0,
"totalReceived":26.4245,
@ -33,6 +37,7 @@
"txApperances": 4
},
{
"disabled":1,
"addr": "mzSyyXgofoBxpr6gYcU3cV345G8hJpixRd",
"balance": 0,
"totalReceived":3.9775,
@ -40,6 +45,7 @@
"txApperances": 2
},
{
"disabled":1,
"addr": "mzW2hdZN2um7WBvTDerdahKqRgj3md9C29",
"txApperances": 2034,
"balance": 1049.69744099,
@ -47,6 +53,7 @@
"totalSent": 0
},
{
"disabled":1,
"addr": "mjRmkmYzvZN3cA3aBKJgYJ65epn3WCG84H",
"txApperances": 13343,
"balance": 46413.0,
@ -54,6 +61,7 @@
"totalSent": 310717.17644359
},
{
"disabled":1,
"addr": "mgKY35SXqxFpcKK3Dq9mW9919N7wYXvcFM",
"txApperances": 1,
"balance": 0.01979459,