mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-04 02:02:42 +02:00
refactor: Convert remaining instances from uint256 to Txid
These remaining miscellaneous changes were identified by commenting out the `operator const uint256&` conversion and the `Compare(const uint256&)` method from `transaction_identifier.h`.
This commit is contained in:
@@ -22,7 +22,7 @@ BOOST_AUTO_TEST_CASE(disconnectpool_memory_limits)
|
||||
// is within an expected range.
|
||||
|
||||
// Overhead for the hashmap depends on number of buckets
|
||||
std::unordered_map<uint256, CTransaction*, SaltedTxidHasher> temp_map;
|
||||
std::unordered_map<Txid, CTransaction*, SaltedTxidHasher> temp_map;
|
||||
temp_map.reserve(1);
|
||||
const size_t MAP_1{memusage::DynamicUsage(temp_map)};
|
||||
temp_map.reserve(100);
|
||||
|
||||
@@ -19,7 +19,7 @@ uint256 ComputeMerkleRootFromPath(const CBlock& block, uint32_t position, const
|
||||
throw std::out_of_range("Position out of range");
|
||||
}
|
||||
|
||||
uint256 current_hash = block.vtx[position]->GetHash();
|
||||
uint256 current_hash = block.vtx[position]->GetHash().ToUint256();
|
||||
|
||||
for (const uint256& sibling : merkle_path) {
|
||||
if (position % 2 == 0) {
|
||||
@@ -47,7 +47,7 @@ FUZZ_TARGET(merkle)
|
||||
tx_hashes.reserve(num_txs);
|
||||
|
||||
for (size_t i = 0; i < num_txs; ++i) {
|
||||
tx_hashes.push_back(block->vtx[i]->GetHash());
|
||||
tx_hashes.push_back(block->vtx[i]->GetHash().ToUint256());
|
||||
}
|
||||
|
||||
// Test ComputeMerkleRoot
|
||||
|
||||
@@ -139,7 +139,7 @@ CBlock ConsumeBlock(FuzzedDataProvider& fuzzed_data_provider, const uint256& pre
|
||||
tx.vout[0].nValue = 0;
|
||||
tx.vin[0].scriptSig.resize(2);
|
||||
block.vtx.push_back(MakeTransactionRef(tx));
|
||||
block.hashMerkleRoot = block.vtx[0]->GetHash();
|
||||
block.hashMerkleRoot = block.vtx[0]->GetHash().ToUint256();
|
||||
return block;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ static uint256 BlockBuildMerkleTree(const CBlock& block, bool* fMutated, std::ve
|
||||
vMerkleTree.clear();
|
||||
vMerkleTree.reserve(block.vtx.size() * 2 + 16); // Safe upper bound for the number of total nodes.
|
||||
for (std::vector<CTransactionRef>::const_iterator it(block.vtx.begin()); it != block.vtx.end(); ++it)
|
||||
vMerkleTree.push_back((*it)->GetHash());
|
||||
vMerkleTree.push_back((*it)->GetHash().ToUint256());
|
||||
int j = 0;
|
||||
bool mutated = false;
|
||||
for (int nSize = block.vtx.size(); nSize > 1; nSize = (nSize + 1) / 2)
|
||||
@@ -138,7 +138,7 @@ BOOST_AUTO_TEST_CASE(merkle_test)
|
||||
std::vector<uint256> newBranch = TransactionMerklePath(block, mtx);
|
||||
std::vector<uint256> oldBranch = BlockGetMerkleBranch(block, merkleTree, mtx);
|
||||
BOOST_CHECK(oldBranch == newBranch);
|
||||
BOOST_CHECK(ComputeMerkleRootFromBranch(block.vtx[mtx]->GetHash(), newBranch, mtx) == oldRoot);
|
||||
BOOST_CHECK(ComputeMerkleRootFromBranch(block.vtx[mtx]->GetHash().ToUint256(), newBranch, mtx) == oldRoot);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -166,7 +166,7 @@ BOOST_AUTO_TEST_CASE(merkle_test_oneTx_block)
|
||||
mtx.nLockTime = 0;
|
||||
block.vtx[0] = MakeTransactionRef(std::move(mtx));
|
||||
uint256 root = BlockMerkleRoot(block, &mutated);
|
||||
BOOST_CHECK_EQUAL(root, block.vtx[0]->GetHash());
|
||||
BOOST_CHECK_EQUAL(root, block.vtx[0]->GetHash().ToUint256());
|
||||
BOOST_CHECK_EQUAL(mutated, false);
|
||||
}
|
||||
|
||||
@@ -239,7 +239,7 @@ BOOST_AUTO_TEST_CASE(merkle_test_BlockWitness)
|
||||
std::vector<uint256> hashes;
|
||||
hashes.resize(block.vtx.size());
|
||||
hashes[0].SetNull();
|
||||
hashes[1] = block.vtx[1]->GetHash();
|
||||
hashes[1] = block.vtx[1]->GetHash().ToUint256();
|
||||
|
||||
uint256 merkleRootofHashes = ComputeMerkleRoot(hashes);
|
||||
|
||||
|
||||
@@ -629,3 +629,11 @@ std::ostream& operator<<(std::ostream& os, const uint256& num)
|
||||
{
|
||||
return os << num.ToString();
|
||||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream& os, const Txid& txid) {
|
||||
return os << txid.ToString();
|
||||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream& os, const Wtxid& wtxid) {
|
||||
return os << wtxid.ToString();
|
||||
}
|
||||
|
||||
@@ -291,6 +291,8 @@ inline std::ostream& operator<<(std::ostream& os, const std::optional<T>& v)
|
||||
std::ostream& operator<<(std::ostream& os, const arith_uint256& num);
|
||||
std::ostream& operator<<(std::ostream& os, const uint160& num);
|
||||
std::ostream& operator<<(std::ostream& os, const uint256& num);
|
||||
std::ostream& operator<<(std::ostream& os, const Txid& txid);
|
||||
std::ostream& operator<<(std::ostream& os, const Wtxid& wtxid);
|
||||
// @}
|
||||
|
||||
/**
|
||||
|
||||
@@ -214,9 +214,9 @@ BOOST_AUTO_TEST_CASE(block_malleation)
|
||||
// Block with a single coinbase tx is mutated if the merkle root is not
|
||||
// equal to the coinbase tx's hash.
|
||||
block.vtx.push_back(create_coinbase_tx());
|
||||
BOOST_CHECK(block.vtx[0]->GetHash() != block.hashMerkleRoot);
|
||||
BOOST_CHECK(block.vtx[0]->GetHash().ToUint256() != block.hashMerkleRoot);
|
||||
BOOST_CHECK(is_mutated(block, /*check_witness_root=*/false));
|
||||
block.hashMerkleRoot = block.vtx[0]->GetHash();
|
||||
block.hashMerkleRoot = block.vtx[0]->GetHash().ToUint256();
|
||||
BOOST_CHECK(is_not_mutated(block, /*check_witness_root=*/false));
|
||||
|
||||
// Block with two transactions is mutated if the merkle root does not
|
||||
@@ -248,7 +248,7 @@ BOOST_AUTO_TEST_CASE(block_malleation)
|
||||
mtx.vout.resize(1);
|
||||
mtx.vout[0].scriptPubKey.resize(4);
|
||||
block.vtx.push_back(MakeTransactionRef(mtx));
|
||||
block.hashMerkleRoot = block.vtx.back()->GetHash();
|
||||
block.hashMerkleRoot = block.vtx.back()->GetHash().ToUint256();
|
||||
assert(block.vtx.back()->IsCoinBase());
|
||||
assert(GetSerializeSize(TX_NO_WITNESS(block.vtx.back())) == 64);
|
||||
}
|
||||
@@ -285,7 +285,7 @@ BOOST_AUTO_TEST_CASE(block_malleation)
|
||||
HashWriter hasher;
|
||||
hasher.write(tx1.GetHash());
|
||||
hasher.write(tx2.GetHash());
|
||||
assert(hasher.GetHash() == tx3.GetHash());
|
||||
assert(hasher.GetHash() == tx3.GetHash().ToUint256());
|
||||
// Verify that tx3 is 64 bytes in size (without witness).
|
||||
assert(GetSerializeSize(TX_NO_WITNESS(tx3)) == 64);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user