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