mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-02 09:46:52 -05:00
refactor: Make CTransaction constructor explicit
It involves calculating two hashes, so the performance impact should be made explicit. Also, add the module to iwyu.
This commit is contained in:
parent
f27d5f6305
commit
fa2247a9f9
4 changed files with 30 additions and 16 deletions
|
@ -47,6 +47,7 @@ if [ "${RUN_TIDY}" = "true" ]; then
|
|||
" src/policy/feerate.cpp"\
|
||||
" src/policy/packages.cpp"\
|
||||
" src/policy/settings.cpp"\
|
||||
" src/primitives/transaction.cpp"\
|
||||
" src/rpc/fees.cpp"\
|
||||
" src/rpc/signmessage.cpp"\
|
||||
" src/test/fuzz/txorphan.cpp"\
|
||||
|
|
|
@ -7,10 +7,15 @@
|
|||
|
||||
#include <consensus/amount.h>
|
||||
#include <hash.h>
|
||||
#include <script/script.h>
|
||||
#include <serialize.h>
|
||||
#include <tinyformat.h>
|
||||
#include <uint256.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <version.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <cassert>
|
||||
#include <stdexcept>
|
||||
|
||||
std::string COutPoint::ToString() const
|
||||
{
|
||||
|
|
|
@ -6,13 +6,21 @@
|
|||
#ifndef BITCOIN_PRIMITIVES_TRANSACTION_H
|
||||
#define BITCOIN_PRIMITIVES_TRANSACTION_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <consensus/amount.h>
|
||||
#include <prevector.h>
|
||||
#include <script/script.h>
|
||||
#include <serialize.h>
|
||||
#include <uint256.h>
|
||||
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <ios>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <tuple>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
/**
|
||||
* A flag that is ORed into the protocol version to designate that a transaction
|
||||
|
@ -303,7 +311,7 @@ private:
|
|||
public:
|
||||
/** Convert a CMutableTransaction into a CTransaction. */
|
||||
explicit CTransaction(const CMutableTransaction& tx);
|
||||
CTransaction(CMutableTransaction&& tx);
|
||||
explicit CTransaction(CMutableTransaction&& tx);
|
||||
|
||||
template <typename Stream>
|
||||
inline void Serialize(Stream& s) const {
|
||||
|
@ -368,7 +376,7 @@ struct CMutableTransaction
|
|||
int32_t nVersion;
|
||||
uint32_t nLockTime;
|
||||
|
||||
CMutableTransaction();
|
||||
explicit CMutableTransaction();
|
||||
explicit CMutableTransaction(const CTransaction& tx);
|
||||
|
||||
template <typename Stream>
|
||||
|
|
|
@ -1514,8 +1514,8 @@ BOOST_AUTO_TEST_CASE(bitcoinconsensus_verify_script_returns_true)
|
|||
CScriptWitness wit;
|
||||
|
||||
scriptPubKey << OP_1;
|
||||
CTransaction creditTx = BuildCreditingTransaction(scriptPubKey, 1);
|
||||
CTransaction spendTx = BuildSpendingTransaction(scriptSig, wit, creditTx);
|
||||
CTransaction creditTx{BuildCreditingTransaction(scriptPubKey, 1)};
|
||||
CTransaction spendTx{BuildSpendingTransaction(scriptSig, wit, creditTx)};
|
||||
|
||||
CDataStream stream(SER_NETWORK, PROTOCOL_VERSION);
|
||||
stream << spendTx;
|
||||
|
@ -1537,8 +1537,8 @@ BOOST_AUTO_TEST_CASE(bitcoinconsensus_verify_script_tx_index_err)
|
|||
CScriptWitness wit;
|
||||
|
||||
scriptPubKey << OP_EQUAL;
|
||||
CTransaction creditTx = BuildCreditingTransaction(scriptPubKey, 1);
|
||||
CTransaction spendTx = BuildSpendingTransaction(scriptSig, wit, creditTx);
|
||||
CTransaction creditTx{BuildCreditingTransaction(scriptPubKey, 1)};
|
||||
CTransaction spendTx{BuildSpendingTransaction(scriptSig, wit, creditTx)};
|
||||
|
||||
CDataStream stream(SER_NETWORK, PROTOCOL_VERSION);
|
||||
stream << spendTx;
|
||||
|
@ -1560,8 +1560,8 @@ BOOST_AUTO_TEST_CASE(bitcoinconsensus_verify_script_tx_size)
|
|||
CScriptWitness wit;
|
||||
|
||||
scriptPubKey << OP_EQUAL;
|
||||
CTransaction creditTx = BuildCreditingTransaction(scriptPubKey, 1);
|
||||
CTransaction spendTx = BuildSpendingTransaction(scriptSig, wit, creditTx);
|
||||
CTransaction creditTx{BuildCreditingTransaction(scriptPubKey, 1)};
|
||||
CTransaction spendTx{BuildSpendingTransaction(scriptSig, wit, creditTx)};
|
||||
|
||||
CDataStream stream(SER_NETWORK, PROTOCOL_VERSION);
|
||||
stream << spendTx;
|
||||
|
@ -1583,8 +1583,8 @@ BOOST_AUTO_TEST_CASE(bitcoinconsensus_verify_script_tx_serialization)
|
|||
CScriptWitness wit;
|
||||
|
||||
scriptPubKey << OP_EQUAL;
|
||||
CTransaction creditTx = BuildCreditingTransaction(scriptPubKey, 1);
|
||||
CTransaction spendTx = BuildSpendingTransaction(scriptSig, wit, creditTx);
|
||||
CTransaction creditTx{BuildCreditingTransaction(scriptPubKey, 1)};
|
||||
CTransaction spendTx{BuildSpendingTransaction(scriptSig, wit, creditTx)};
|
||||
|
||||
CDataStream stream(SER_NETWORK, PROTOCOL_VERSION);
|
||||
stream << 0xffffffff;
|
||||
|
@ -1606,8 +1606,8 @@ BOOST_AUTO_TEST_CASE(bitcoinconsensus_verify_script_amount_required_err)
|
|||
CScriptWitness wit;
|
||||
|
||||
scriptPubKey << OP_EQUAL;
|
||||
CTransaction creditTx = BuildCreditingTransaction(scriptPubKey, 1);
|
||||
CTransaction spendTx = BuildSpendingTransaction(scriptSig, wit, creditTx);
|
||||
CTransaction creditTx{BuildCreditingTransaction(scriptPubKey, 1)};
|
||||
CTransaction spendTx{BuildSpendingTransaction(scriptSig, wit, creditTx)};
|
||||
|
||||
CDataStream stream(SER_NETWORK, PROTOCOL_VERSION);
|
||||
stream << spendTx;
|
||||
|
@ -1629,8 +1629,8 @@ BOOST_AUTO_TEST_CASE(bitcoinconsensus_verify_script_invalid_flags)
|
|||
CScriptWitness wit;
|
||||
|
||||
scriptPubKey << OP_EQUAL;
|
||||
CTransaction creditTx = BuildCreditingTransaction(scriptPubKey, 1);
|
||||
CTransaction spendTx = BuildSpendingTransaction(scriptSig, wit, creditTx);
|
||||
CTransaction creditTx{BuildCreditingTransaction(scriptPubKey, 1)};
|
||||
CTransaction spendTx{BuildSpendingTransaction(scriptSig, wit, creditTx)};
|
||||
|
||||
CDataStream stream(SER_NETWORK, PROTOCOL_VERSION);
|
||||
stream << spendTx;
|
||||
|
|
Loading…
Add table
Reference in a new issue