// This function is only used when loading UTXO database func NewUTXO(db *qdb.DB, k qdb.KeyType, rec *chain.OneWalkRecord) uint32 { if rec.IsP2KH() || rec.IsP2SH() { if adr := btc.NewAddrFromPkScript(rec.Script(), common.Testnet); adr != nil { if crec, ok := CachedAddrs[adr.Hash160]; ok { value := rec.Value() idx := rec.TxPrevOut() crec.Value += value utxo := new(chain.OneUnspentTx) utxo.TxPrevOut = *idx utxo.Value = value utxo.MinedAt = rec.BlockHeight() utxo.BtcAddr = CacheUnspent[crec.CacheIndex].BtcAddr CacheUnspent[crec.CacheIndex].AllUnspentTx = append(CacheUnspent[crec.CacheIndex].AllUnspentTx, utxo) CacheUnspentIdx[idx.UIdx()] = &OneCachedUnspentIdx{Index: crec.CacheIndex, Record: utxo} } } } else if len(StealthAdCache) > 0 && rec.IsStealthIdx() { StealthNotify(db, k, rec) } return 0 }