aboutsummaryrefslogtreecommitdiff
path: root/src/script/bitcoinconsensus.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/script/bitcoinconsensus.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/script/bitcoinconsensus.cpp')
-rw-r--r--src/script/bitcoinconsensus.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/script/bitcoinconsensus.cpp b/src/script/bitcoinconsensus.cpp
index 71005cfb6e..2ca8dac48c 100644
--- a/src/script/bitcoinconsensus.cpp
+++ b/src/script/bitcoinconsensus.cpp
@@ -16,8 +16,7 @@ namespace {
class TxInputStream
{
public:
- TxInputStream(int nVersionIn, const unsigned char *txTo, size_t txToLen) :
- m_version(nVersionIn),
+ TxInputStream(const unsigned char *txTo, size_t txToLen) :
m_data(txTo),
m_remaining(txToLen)
{}
@@ -48,9 +47,7 @@ public:
return *this;
}
- int GetVersion() const { return m_version; }
private:
- const int m_version;
const unsigned char* m_data;
size_t m_remaining;
};
@@ -84,8 +81,8 @@ static int verify_script(const unsigned char *scriptPubKey, unsigned int scriptP
}
try {
- TxInputStream stream(PROTOCOL_VERSION, txTo, txToLen);
- CTransaction tx(deserialize, stream);
+ TxInputStream stream(txTo, txToLen);
+ CTransaction tx(deserialize, TX_WITH_WITNESS, stream);
std::vector<CTxOut> spent_outputs;
if (spentOutputs != nullptr) {
@@ -102,7 +99,7 @@ static int verify_script(const unsigned char *scriptPubKey, unsigned int scriptP
if (nIn >= tx.vin.size())
return set_error(err, bitcoinconsensus_ERR_TX_INDEX);
- if (GetSerializeSize(tx, PROTOCOL_VERSION) != txToLen)
+ if (GetSerializeSize(TX_WITH_WITNESS(tx)) != txToLen)
return set_error(err, bitcoinconsensus_ERR_TX_SIZE_MISMATCH);
// Regardless of the verification result, the tx did not error.