aboutsummaryrefslogtreecommitdiff
path: root/src/validation.cpp
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2023-11-15 14:59:54 +0000
committerfanquake <fanquake@gmail.com>2023-11-15 15:16:19 +0000
commit108462139b652b62c8461fc264f25b3eeceeaf92 (patch)
tree6b912b7220303ae7e40773ca558dcf2808f6df54 /src/validation.cpp
parenta73715e5a48c9651720f45a43e4ac5be204201c4 (diff)
parenta0c254c13a3ef21e257cca3493446c632b636b15 (diff)
Merge bitcoin/bitcoin#28438: Use serialization parameters for CTransaction
a0c254c13a3ef21e257cca3493446c632b636b15 Drop CHashWriter (Anthony Towns) c94f7e5b1cd1ddff2a7d95cfad5a83c9dfa526be Drop OverrideStream (Anthony Towns) 6e9e4e6130797b721c8df1eabaf46ec25ebb6abe Use ParamsWrapper for witness serialization (Anthony Towns) Pull request description: Choose whether witness is included in transaction serialization via serialization parameter rather than the stream version. See #25284 and #19477 for previous context. ACKs for top commit: maflcko: re-ACK a0c254c13a3ef21e257cca3493446c632b636b15 🐜 theuni: ACK a0c254c13a3ef21e257cca3493446c632b636b15 Tree-SHA512: 8fd5cadfd84c5128e36c34a51fb94fdccd956280e7f65b7d73c512d6a9cdb53cdd3649de99ffab5322bd34be26cb95ab4eb05932b3b9de9c11d85743f50dcb13
Diffstat (limited to 'src/validation.cpp')
-rw-r--r--src/validation.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/validation.cpp b/src/validation.cpp
index 34103d18bc..ed72a7c97a 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -722,7 +722,7 @@ bool MemPoolAccept::PreChecks(ATMPArgs& args, Workspace& ws)
}
// Transactions smaller than 65 non-witness bytes are not relayed to mitigate CVE-2017-12842.
- if (::GetSerializeSize(tx, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) < MIN_STANDARD_TX_NONWITNESS_SIZE)
+ if (::GetSerializeSize(TX_NO_WITNESS(tx)) < MIN_STANDARD_TX_NONWITNESS_SIZE)
return state.Invalid(TxValidationResult::TX_NOT_STANDARD, "tx-size-small");
// Only accept nLockTime-using transactions that can be mined in the next
@@ -3685,7 +3685,7 @@ bool CheckBlock(const CBlock& block, BlockValidationState& state, const Consensu
// checks that use witness data may be performed here.
// Size limits
- if (block.vtx.empty() || block.vtx.size() * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT || ::GetSerializeSize(block, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT)
+ if (block.vtx.empty() || block.vtx.size() * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT || ::GetSerializeSize(TX_NO_WITNESS(block)) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT)
return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, "bad-blk-length", "size limits failed");
// First transaction must be coinbase, the rest must not be
@@ -4724,7 +4724,7 @@ void ChainstateManager::LoadExternalBlockFile(
// This block can be processed immediately; rewind to its start, read and deserialize it.
blkdat.SetPos(nBlockPos);
pblock = std::make_shared<CBlock>();
- blkdat >> *pblock;
+ blkdat >> TX_WITH_WITNESS(*pblock);
nRewind = blkdat.GetPos();
BlockValidationState state;