blockchain_go
blockchain_go copied to clipboard
Might not be an issue, have a question (Part 4)
Noticed something in the method Part 4: FindUnspentTransactions
. Maybe I'm missing something obvious but can someone please correct me if I'm wrong.
In the block of code below, shouldn't we get the spent outputs before we loop through tx.Vout
? Otherwise spentTXOs[txID]
will always be nil
?
for _, tx := range block.Transactions {
txID := hex.EncodeToString(tx.ID)
Outputs:
for outIdx, out := range tx.Vout {
// Was the output spent?
if spentTXOs[txID] != nil {
for _, spentOut := range spentTXOs[txID] {
if spentOut == outIdx {
continue Outputs
}
}
}
if out.CanBeUnlockedWith(address) {
unspentTXs = append(unspentTXs, *tx)
}
}
if tx.IsCoinbase() == false {
for _, in := range tx.Vin {
if in.CanUnlockOutputWith(address) {
inTxID := hex.EncodeToString(in.Txid)
spentTXOs[inTxID] = append(spentTXOs[inTxID], in.Vout)
}
}
}
}
您好,邮件已查收。Anmi、