Handle possible address descriptor mismatch in db column addresses
parent
0751ed452c
commit
58f426207e
|
@ -373,6 +373,7 @@ func (d *RocksDB) GetTransactions(address string, lower uint32, higher uint32, f
|
||||||
// Transaction are passed to callback function in the order from newest block to the oldest
|
// Transaction are passed to callback function in the order from newest block to the oldest
|
||||||
func (d *RocksDB) GetAddrDescTransactions(addrDesc bchain.AddressDescriptor, lower uint32, higher uint32, fn GetTransactionsCallback) (err error) {
|
func (d *RocksDB) GetAddrDescTransactions(addrDesc bchain.AddressDescriptor, lower uint32, higher uint32, fn GetTransactionsCallback) (err error) {
|
||||||
txidUnpackedLen := d.chainParser.PackedTxidLen()
|
txidUnpackedLen := d.chainParser.PackedTxidLen()
|
||||||
|
addrDescLen := len(addrDesc)
|
||||||
startKey := packAddressKey(addrDesc, higher)
|
startKey := packAddressKey(addrDesc, higher)
|
||||||
stopKey := packAddressKey(addrDesc, lower)
|
stopKey := packAddressKey(addrDesc, lower)
|
||||||
indexes := make([]int32, 0, 16)
|
indexes := make([]int32, 0, 16)
|
||||||
|
@ -380,10 +381,16 @@ func (d *RocksDB) GetAddrDescTransactions(addrDesc bchain.AddressDescriptor, low
|
||||||
defer it.Close()
|
defer it.Close()
|
||||||
for it.Seek(startKey); it.Valid(); it.Next() {
|
for it.Seek(startKey); it.Valid(); it.Next() {
|
||||||
key := it.Key().Data()
|
key := it.Key().Data()
|
||||||
val := it.Value().Data()
|
|
||||||
if bytes.Compare(key, stopKey) > 0 {
|
if bytes.Compare(key, stopKey) > 0 {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
if len(key) != addrDescLen+packedHeightBytes {
|
||||||
|
if glog.V(2) {
|
||||||
|
glog.Warningf("rocksdb: addrDesc %s - mixed with %s", addrDesc, hex.EncodeToString(key))
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
val := it.Value().Data()
|
||||||
if glog.V(2) {
|
if glog.V(2) {
|
||||||
glog.Infof("rocksdb: addresses %s: %s", hex.EncodeToString(key), hex.EncodeToString(val))
|
glog.Infof("rocksdb: addresses %s: %s", hex.EncodeToString(key), hex.EncodeToString(val))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue