Insert utxos in fixUtxo in the growing order
parent
9feccfdb2e
commit
a4da2f3865
|
@ -1898,9 +1898,15 @@ func (d *RocksDB) fixUtxo(addrDesc bchain.AddressDescriptor, ba *AddrBalance) (b
|
|||
err := d.GetAddrDescTransactions(addrDesc, 0, ^uint32(0), func(txid string, height uint32, indexes []int32) error {
|
||||
var ta *TxAddresses
|
||||
var err error
|
||||
// sort the indexes so that the utxos are appended in the reverse order
|
||||
sort.Slice(indexes, func(i, j int) bool {
|
||||
return indexes[i] > indexes[j]
|
||||
})
|
||||
for _, index := range indexes {
|
||||
// take only outputs
|
||||
if index >= 0 {
|
||||
if index < 0 {
|
||||
break
|
||||
}
|
||||
if ta == nil {
|
||||
ta, err = d.GetTxAddresses(txid)
|
||||
if err != nil {
|
||||
|
@ -1909,7 +1915,7 @@ func (d *RocksDB) fixUtxo(addrDesc bchain.AddressDescriptor, ba *AddrBalance) (b
|
|||
}
|
||||
if ta == nil {
|
||||
return errors.New("DB inconsistency: tx " + txid + ": not found in txAddresses")
|
||||
} else {
|
||||
}
|
||||
if len(ta.Outputs) <= int(index) {
|
||||
glog.Warning("DB inconsistency: txAddresses " + txid + " does not have enough outputs")
|
||||
} else {
|
||||
|
@ -1924,8 +1930,6 @@ func (d *RocksDB) fixUtxo(addrDesc bchain.AddressDescriptor, ba *AddrBalance) (b
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
|
|
Loading…
Reference in New Issue