wip
This commit is contained in:
parent
8365f358e7
commit
a8eb0f8979
@ -421,15 +421,46 @@ AddressService.prototype._onReorg = function(oldBlockList, newBlockList, commonA
|
|||||||
value: tipOps.value
|
value: tipOps.value
|
||||||
}];
|
}];
|
||||||
|
|
||||||
// remove all the old blocks that we reorg from
|
// for every tx, remove the address index key for every input and output
|
||||||
oldBlockList.forEach(function(block) {
|
for(var i = 0; i < oldBlockList.length; i++) {
|
||||||
removalOps.push([
|
var block = oldBlockList[i];
|
||||||
{
|
//txs
|
||||||
type: 'del',
|
for(var j = 0; j < block.transactions.length; j++) {
|
||||||
key: this.encoding.encodeTransactionKey(),
|
var tx = block.transactions[j];
|
||||||
},
|
|
||||||
]);
|
//inputs
|
||||||
});
|
var address;
|
||||||
|
for(var k = 0; k < tx.inputs.length; k++) {
|
||||||
|
var input = tx.inputs[k];
|
||||||
|
address = utils.getAddressString({ tx: tx, item: input, network: this._network });
|
||||||
|
|
||||||
|
if (!address) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
removalOps.push({
|
||||||
|
type: 'del',
|
||||||
|
key: this.encoding.encodeTransactionKey(address, block.height, tx.id, k, 1)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//outputs
|
||||||
|
for(k = 0; k < tx.outputs.length; k++) {
|
||||||
|
var output = tx.outputs[k];
|
||||||
|
address = utils.getAddressString({ tx: tx, item: output, network: this._network });
|
||||||
|
|
||||||
|
if (!address) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
removalOps.push({
|
||||||
|
type: 'del',
|
||||||
|
key: this.encoding.encodeTransactionKey(address, block.height, tx.id, k, 0)
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this._db.batch(removalOps);
|
this._db.batch(removalOps);
|
||||||
|
|
||||||
|
|||||||
@ -184,19 +184,16 @@ TransactionService.prototype._onReorg = function(oldBlockList, newBlockList, com
|
|||||||
value: tipOps.value
|
value: tipOps.value
|
||||||
}];
|
}];
|
||||||
|
|
||||||
// remove all the old blocks that we reorg from
|
for(var i = 0; i < oldBlockList.length; i++) {
|
||||||
oldBlockList.forEach(function(block) {
|
var block = oldBlockList[i];
|
||||||
removalOps.concat([
|
for(var j = 0; j < block.transactions.length; j++) {
|
||||||
{
|
var tx = block.transactions[j];
|
||||||
|
removalOps.push({
|
||||||
type: 'del',
|
type: 'del',
|
||||||
key: this.encoding.encodeAddressIndexKey(block.hash),
|
key: this._encoding.encodeTransactionKey(tx.id)
|
||||||
},
|
});
|
||||||
{
|
}
|
||||||
type: 'del',
|
}
|
||||||
key: this.encoding.encodeBlockTimestampKey(block.hash),
|
|
||||||
}
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
this._db.batch(removalOps);
|
this._db.batch(removalOps);
|
||||||
|
|
||||||
|
|||||||
25
lib/utils.js
25
lib/utils.js
@ -65,7 +65,8 @@ utils.getAddressString = function(opts) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opts.tx && opts.tx.isCoinbase()) {
|
// is coinbase and is input, no address
|
||||||
|
if (opts.tx && opts.tx.isCoinbase() && opts.item.prevTxId) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,28 +154,6 @@ utils.toIntIfNumberLike = function(a) {
|
|||||||
return a;
|
return a;
|
||||||
};
|
};
|
||||||
|
|
||||||
utils.getAddressString = function(script, output) {
|
|
||||||
var address = script.toAddress(this.node.network.name);
|
|
||||||
if(address) {
|
|
||||||
return address.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
var pubkey = script.getPublicKey();
|
|
||||||
if(pubkey) {
|
|
||||||
return pubkey.toString('hex');
|
|
||||||
}
|
|
||||||
} catch(e) {
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO add back in P2PK, but for this we need to look up the utxo for this script
|
|
||||||
if(output && output.script && output.script.isPublicKeyOut()) {
|
|
||||||
return output.script.getPublicKey().toString('hex');
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
};
|
|
||||||
|
|
||||||
utils.getBlockInfoString = function(tip, best) {
|
utils.getBlockInfoString = function(tip, best) {
|
||||||
|
|
||||||
var diff = best - tip;
|
var diff = best - tip;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user