index for output spend matching (speeds ups tx api
This commit is contained in:
parent
0bbc9763b2
commit
7496fc47de
|
@ -74,6 +74,8 @@ function spec(b) {
|
|||
|
||||
var k = OUTS_PREFIX + txid;
|
||||
var ret=[];
|
||||
var idx={};
|
||||
var i = 0;
|
||||
|
||||
// outs.
|
||||
db.createReadStream({start: k, end: k + '~'})
|
||||
|
@ -85,27 +87,24 @@ function spec(b) {
|
|||
value_sat: parseInt(v[1]),
|
||||
index: parseInt(k[2]),
|
||||
});
|
||||
idx[parseInt(k[2])]= i++;
|
||||
})
|
||||
.on('error', function (err) {
|
||||
return cb(err);
|
||||
})
|
||||
.on('end', function () {
|
||||
var k = SPEND_PREFIX + txid;
|
||||
var l = ret.length;
|
||||
db.createReadStream({start: k, end: k + '~'})
|
||||
.on('data', function (data) {
|
||||
var k = data.key.split('-');
|
||||
var v = data.value.split(':');
|
||||
var set=0;
|
||||
for(var i=0; i<l; i++) {
|
||||
if (ret[i].index === parseInt(k[3])) {
|
||||
ret[i].spendTxId = v[0];
|
||||
ret[i].spendIndex = parseInt(v[1]);
|
||||
set=1;
|
||||
}
|
||||
}
|
||||
assert(set,'Spent could not be stored: tx ' + txid +
|
||||
'spend in TX:' + k[2] + ',' + k[3]);
|
||||
var j = idx[parseInt(k[3])];
|
||||
|
||||
assert(typeof j !== 'undefined','Spent could not be stored: tx ' + txid +
|
||||
'spend in TX:' + k[2] + ',' + k[3]+ ' j:' + j);
|
||||
|
||||
ret[j].spendTxId = v[0];
|
||||
ret[j].spendIndex = parseInt(v[1]);
|
||||
})
|
||||
.on('error', function (err) {
|
||||
return cb(err);
|
||||
|
|
|
@ -43,9 +43,9 @@
|
|||
},
|
||||
{
|
||||
"addr": "mzW2hdZN2um7WBvTDerdahKqRgj3md9C29",
|
||||
"txApperances": 6046,
|
||||
"balance": 1149.19744101,
|
||||
"totalReceived": 1149.19744101,
|
||||
"txApperances": 6047,
|
||||
"balance": 1199.74393851,
|
||||
"totalReceived": 1199.74393851,
|
||||
"totalSent": 0
|
||||
},
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue