Merge pull request #204 from matiu/feature/index-to-handle-orphans
Feature/index to handle orphans
This commit is contained in:
commit
bd3bfe6e37
|
@ -21,8 +21,7 @@ function spec() {
|
|||
var a = new BitcoreAddress(addrStr);
|
||||
a.validate();
|
||||
this.addrStr = addrStr;
|
||||
|
||||
|
||||
|
||||
Object.defineProperty(this, 'totalSent', {
|
||||
get: function() {
|
||||
return parseFloat(this.totalSentSat) / parseFloat(BitcoreUtil.COIN);
|
||||
|
@ -56,6 +55,8 @@ function spec() {
|
|||
|
||||
Address.prototype.update = function(next) {
|
||||
var self = this;
|
||||
if (!self.addrStr) return next();
|
||||
|
||||
var db = new TransactionDb();
|
||||
async.series([
|
||||
function (cb) {
|
||||
|
|
|
@ -9,7 +9,7 @@ function spec(b) {
|
|||
var IN_BLK_PREFIX = 'tx-b-'; //tx-b-<txid>-<block> => 1/0 (connected or not)
|
||||
|
||||
// Only for orphan blocks
|
||||
// var FROM_BLK_PREFIX = 'tx-'; //tx-<block>-<txid> => 1/0 (connected or not)
|
||||
var FROM_BLK_PREFIX = 'tx-'; //tx-<block>-<txid> => 1
|
||||
|
||||
// to show tx outs
|
||||
var OUTS_PREFIX = 'txouts-'; //txouts-<txid>-<n> => [addr, btc_sat]
|
||||
|
@ -408,6 +408,7 @@ function spec(b) {
|
|||
|
||||
db.batch()
|
||||
.put(IN_BLK_PREFIX + txId + '-' + blockHash, confirmed)
|
||||
.put(FROM_BLK_PREFIX + blockHash + '-' + txId, 1)
|
||||
.write(c);
|
||||
};
|
||||
|
||||
|
@ -430,19 +431,20 @@ function spec(b) {
|
|||
};
|
||||
|
||||
TransactionDb.prototype.handleBlockChange = function(hash, isMain, cb) {
|
||||
var k = IN_BLK_PREFIX;
|
||||
var toChange = [];
|
||||
console.log('\tSearching Txs from block:' + hash);
|
||||
|
||||
var k = FROM_BLK_PREFIX + hash;
|
||||
var k2 = IN_BLK_PREFIX;
|
||||
// This is slow, but prevent us to create a new block->tx index.
|
||||
db.createReadStream({start: k, end: k + '~'})
|
||||
.on('data', function (data) {
|
||||
if (data.key.indexOf(hash)>=0)
|
||||
var ks = data.key.split('-');
|
||||
toChange.push({
|
||||
key: k2 + ks[2] + '-' + ks[1],
|
||||
type: 'put',
|
||||
key: data.key,
|
||||
value: isMain?1:0,
|
||||
});
|
||||
});
|
||||
})
|
||||
.on('error', function (err) {
|
||||
return cb(err);
|
||||
|
|
Loading…
Reference in New Issue