Fix issue where a coinbase tx should have it's sigscript hashed
to avoid duplicate txids, as discussed in BIP34 and BIP30.
This commit is contained in:
parent
2481bab2b8
commit
90a9019387
|
@ -234,13 +234,16 @@ void CTransaction::UpdateTxid() const
|
|||
// Create a deep copy of this transaction
|
||||
CMutableTransaction tx(*this);
|
||||
|
||||
// Clear sigscript from all transaction inputs.
|
||||
for (CTxIn & txIn : tx.vin) {
|
||||
txIn.scriptSig.clear();
|
||||
}
|
||||
// We keep the sigscript for coinbase txs to avoid duplicate txids (BIP34 and BIP30)
|
||||
if (!IsCoinBase()) {
|
||||
// Clear sigscript from all transaction inputs.
|
||||
for (CTxIn & txIn : tx.vin) {
|
||||
txIn.scriptSig.clear();
|
||||
}
|
||||
|
||||
// Clear joinSplitSig by filling the buffer with zero
|
||||
tx.joinSplitSig.assign(0);
|
||||
// Clear joinSplitSig by filling the buffer with zero
|
||||
tx.joinSplitSig.assign(0);
|
||||
}
|
||||
|
||||
// Return double SHA256 hash
|
||||
*const_cast<uint256*>(&txid) = tx.GetSerializeHash();
|
||||
|
|
Loading…
Reference in New Issue