cleanup address handling in blockdb.
This commit is contained in:
parent
b5f8f7291a
commit
cc1f423e3f
@ -200,26 +200,20 @@ BlockDB.prototype.connectBlock = function connectBlock(block, callback, batch) {
|
|||||||
tx.inputs.forEach(function(input) {
|
tx.inputs.forEach(function(input) {
|
||||||
var type = input.getType();
|
var type = input.getType();
|
||||||
var address = input.getAddress();
|
var address = input.getAddress();
|
||||||
var uaddr;
|
|
||||||
|
|
||||||
if (input.isCoinbase())
|
if (input.isCoinbase())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
assert(input.output);
|
||||||
|
|
||||||
if (type === 'pubkey' || type === 'multisig')
|
if (type === 'pubkey' || type === 'multisig')
|
||||||
address = null;
|
address = null;
|
||||||
|
|
||||||
uaddr = address;
|
if (address && !uniq[address]) {
|
||||||
|
uniq[address] = true;
|
||||||
if (uaddr) {
|
batch.put('t/a/' + address + '/' + hash, DUMMY);
|
||||||
if (!uniq[uaddr])
|
|
||||||
uniq[uaddr] = true;
|
|
||||||
else
|
|
||||||
uaddr = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uaddr)
|
|
||||||
batch.put('t/a/' + uaddr + '/' + hash, DUMMY);
|
|
||||||
|
|
||||||
if (address) {
|
if (address) {
|
||||||
batch.del(
|
batch.del(
|
||||||
'u/a/' + address
|
'u/a/' + address
|
||||||
@ -236,23 +230,15 @@ BlockDB.prototype.connectBlock = function connectBlock(block, callback, batch) {
|
|||||||
tx.outputs.forEach(function(output, i) {
|
tx.outputs.forEach(function(output, i) {
|
||||||
var type = output.getType();
|
var type = output.getType();
|
||||||
var address = output.getAddress();
|
var address = output.getAddress();
|
||||||
var uaddr;
|
|
||||||
|
|
||||||
if (type === 'pubkey' || type === 'multisig')
|
if (type === 'pubkey' || type === 'multisig')
|
||||||
address = null;
|
address = null;
|
||||||
|
|
||||||
uaddr = address;
|
if (address && !uniq[address]) {
|
||||||
|
uniq[address] = true;
|
||||||
if (uaddr) {
|
batch.put('t/a/' + address + '/' + hash, DUMMY);
|
||||||
if (!uniq[uaddr])
|
|
||||||
uniq[uaddr] = true;
|
|
||||||
else
|
|
||||||
uaddr = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uaddr)
|
|
||||||
batch.put('t/a/' + uaddr + '/' + hash, DUMMY);
|
|
||||||
|
|
||||||
if (address)
|
if (address)
|
||||||
batch.put('u/a/' + address + '/' + hash + '/' + i, DUMMY);
|
batch.put('u/a/' + address + '/' + hash + '/' + i, DUMMY);
|
||||||
|
|
||||||
@ -301,28 +287,21 @@ BlockDB.prototype.disconnectBlock = function disconnectBlock(hash, callback, bat
|
|||||||
tx.inputs.forEach(function(input) {
|
tx.inputs.forEach(function(input) {
|
||||||
var type = input.getType();
|
var type = input.getType();
|
||||||
var address = input.getAddress();
|
var address = input.getAddress();
|
||||||
var uaddr, coin;
|
var coin;
|
||||||
|
|
||||||
if (input.isCoinbase())
|
if (input.isCoinbase())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
assert(input.output);
|
||||||
|
|
||||||
if (type === 'pubkey' || type === 'multisig')
|
if (type === 'pubkey' || type === 'multisig')
|
||||||
address = null;
|
address = null;
|
||||||
|
|
||||||
uaddr = address;
|
if (address && !uniq[address]) {
|
||||||
|
uniq[address] = true;
|
||||||
if (uaddr) {
|
batch.del('t/a/' + address + '/' + hash);
|
||||||
if (!uniq[uaddr])
|
|
||||||
uniq[uaddr] = true;
|
|
||||||
else
|
|
||||||
uaddr = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(input.output);
|
|
||||||
|
|
||||||
if (uaddr)
|
|
||||||
batch.del('t/a/' + uaddr + '/' + hash);
|
|
||||||
|
|
||||||
if (address) {
|
if (address) {
|
||||||
batch.put('u/a/' + address
|
batch.put('u/a/' + address
|
||||||
+ '/' + input.prevout.hash
|
+ '/' + input.prevout.hash
|
||||||
@ -339,23 +318,15 @@ BlockDB.prototype.disconnectBlock = function disconnectBlock(hash, callback, bat
|
|||||||
tx.outputs.forEach(function(output, i) {
|
tx.outputs.forEach(function(output, i) {
|
||||||
var type = output.getType();
|
var type = output.getType();
|
||||||
var address = output.getAddress();
|
var address = output.getAddress();
|
||||||
var uaddr;
|
|
||||||
|
|
||||||
if (type === 'pubkey' || type === 'multisig')
|
if (type === 'pubkey' || type === 'multisig')
|
||||||
address = null;
|
address = null;
|
||||||
|
|
||||||
uaddr = address;
|
if (address && !uniq[address]) {
|
||||||
|
uniq[address] = true;
|
||||||
if (uaddr) {
|
batch.del('t/a/' + address + '/' + hash);
|
||||||
if (!uniq[uaddr])
|
|
||||||
uniq[uaddr] = true;
|
|
||||||
else
|
|
||||||
uaddr = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uaddr)
|
|
||||||
batch.del('t/a/' + uaddr + '/' + hash);
|
|
||||||
|
|
||||||
if (address)
|
if (address)
|
||||||
batch.del('u/a/' + address + '/' + hash + '/' + i);
|
batch.del('u/a/' + address + '/' + hash + '/' + i);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user