mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-10-11 03:53:22 +02:00
String conversions uint256 -> uint256S
If uint256() constructor takes a string, uint256(0) will become dangerous when uint256 does not take integers anymore (it will go through std::string(const char*) making a NULL string, and the explicit keyword is no help).
This commit is contained in:
@@ -125,7 +125,7 @@ BOOST_AUTO_TEST_CASE(bloom_match)
|
||||
spendStream >> spendingTx;
|
||||
|
||||
CBloomFilter filter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
filter.insert(uint256("0xb4749f017444b051c44dfd2720e88f314ff94f3dd6d56d40ef65854fcd7fff6b"));
|
||||
filter.insert(uint256S("0xb4749f017444b051c44dfd2720e88f314ff94f3dd6d56d40ef65854fcd7fff6b"));
|
||||
BOOST_CHECK_MESSAGE(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match tx hash");
|
||||
|
||||
filter = CBloomFilter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
@@ -151,11 +151,11 @@ BOOST_AUTO_TEST_CASE(bloom_match)
|
||||
BOOST_CHECK_MESSAGE(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match output address");
|
||||
|
||||
filter = CBloomFilter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
filter.insert(COutPoint(uint256("0x90c122d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 0));
|
||||
filter.insert(COutPoint(uint256S("0x90c122d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 0));
|
||||
BOOST_CHECK_MESSAGE(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match COutPoint");
|
||||
|
||||
filter = CBloomFilter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
COutPoint prevOutPoint(uint256("0x90c122d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 0);
|
||||
COutPoint prevOutPoint(uint256S("0x90c122d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 0);
|
||||
{
|
||||
vector<unsigned char> data(32 + sizeof(unsigned int));
|
||||
memcpy(&data[0], prevOutPoint.hash.begin(), 32);
|
||||
@@ -165,7 +165,7 @@ BOOST_AUTO_TEST_CASE(bloom_match)
|
||||
BOOST_CHECK_MESSAGE(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match manually serialized COutPoint");
|
||||
|
||||
filter = CBloomFilter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
filter.insert(uint256("00000009e784f32f62ef849763d4f45b98e07ba658647343b915ff832b110436"));
|
||||
filter.insert(uint256S("00000009e784f32f62ef849763d4f45b98e07ba658647343b915ff832b110436"));
|
||||
BOOST_CHECK_MESSAGE(!filter.IsRelevantAndUpdate(tx), "Simple Bloom filter matched random tx hash");
|
||||
|
||||
filter = CBloomFilter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
@@ -173,11 +173,11 @@ BOOST_AUTO_TEST_CASE(bloom_match)
|
||||
BOOST_CHECK_MESSAGE(!filter.IsRelevantAndUpdate(tx), "Simple Bloom filter matched random address");
|
||||
|
||||
filter = CBloomFilter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
filter.insert(COutPoint(uint256("0x90c122d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 1));
|
||||
filter.insert(COutPoint(uint256S("0x90c122d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 1));
|
||||
BOOST_CHECK_MESSAGE(!filter.IsRelevantAndUpdate(tx), "Simple Bloom filter matched COutPoint for an output we didn't care about");
|
||||
|
||||
filter = CBloomFilter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
filter.insert(COutPoint(uint256("0x000000d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 0));
|
||||
filter.insert(COutPoint(uint256S("0x000000d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 0));
|
||||
BOOST_CHECK_MESSAGE(!filter.IsRelevantAndUpdate(tx), "Simple Bloom filter matched COutPoint for an output we didn't care about");
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ BOOST_AUTO_TEST_CASE(merkle_block_1)
|
||||
|
||||
CBloomFilter filter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
// Match the last transaction
|
||||
filter.insert(uint256("0x74d681e0e03bafa802c8aa084379aa98d9fcd632ddc2ed9782b586ec87451f20"));
|
||||
filter.insert(uint256S("0x74d681e0e03bafa802c8aa084379aa98d9fcd632ddc2ed9782b586ec87451f20"));
|
||||
|
||||
CMerkleBlock merkleBlock(block, filter);
|
||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash());
|
||||
@@ -199,7 +199,7 @@ BOOST_AUTO_TEST_CASE(merkle_block_1)
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1);
|
||||
pair<unsigned int, uint256> pair = merkleBlock.vMatchedTxn[0];
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256("0x74d681e0e03bafa802c8aa084379aa98d9fcd632ddc2ed9782b586ec87451f20"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256S("0x74d681e0e03bafa802c8aa084379aa98d9fcd632ddc2ed9782b586ec87451f20"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 8);
|
||||
|
||||
vector<uint256> vMatched;
|
||||
@@ -209,7 +209,7 @@ BOOST_AUTO_TEST_CASE(merkle_block_1)
|
||||
BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second);
|
||||
|
||||
// Also match the 8th transaction
|
||||
filter.insert(uint256("0xdd1fd2a6fc16404faf339881a90adbde7f4f728691ac62e8f168809cdfae1053"));
|
||||
filter.insert(uint256S("0xdd1fd2a6fc16404faf339881a90adbde7f4f728691ac62e8f168809cdfae1053"));
|
||||
merkleBlock = CMerkleBlock(block, filter);
|
||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash());
|
||||
|
||||
@@ -217,7 +217,7 @@ BOOST_AUTO_TEST_CASE(merkle_block_1)
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[1] == pair);
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256("0xdd1fd2a6fc16404faf339881a90adbde7f4f728691ac62e8f168809cdfae1053"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256S("0xdd1fd2a6fc16404faf339881a90adbde7f4f728691ac62e8f168809cdfae1053"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 7);
|
||||
|
||||
BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched) == block.hashMerkleRoot);
|
||||
@@ -236,7 +236,7 @@ BOOST_AUTO_TEST_CASE(merkle_block_2)
|
||||
|
||||
CBloomFilter filter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
// Match the first transaction
|
||||
filter.insert(uint256("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70"));
|
||||
filter.insert(uint256S("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70"));
|
||||
|
||||
CMerkleBlock merkleBlock(block, filter);
|
||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash());
|
||||
@@ -244,7 +244,7 @@ BOOST_AUTO_TEST_CASE(merkle_block_2)
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1);
|
||||
pair<unsigned int, uint256> pair = merkleBlock.vMatchedTxn[0];
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256S("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 0);
|
||||
|
||||
vector<uint256> vMatched;
|
||||
@@ -265,13 +265,13 @@ BOOST_AUTO_TEST_CASE(merkle_block_2)
|
||||
|
||||
BOOST_CHECK(pair == merkleBlock.vMatchedTxn[0]);
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[1].second == uint256("0x28204cad1d7fc1d199e8ef4fa22f182de6258a3eaafe1bbe56ebdcacd3069a5f"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[1].second == uint256S("0x28204cad1d7fc1d199e8ef4fa22f182de6258a3eaafe1bbe56ebdcacd3069a5f"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[1].first == 1);
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[2].second == uint256("0x6b0f8a73a56c04b519f1883e8aafda643ba61a30bd1439969df21bea5f4e27e2"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[2].second == uint256S("0x6b0f8a73a56c04b519f1883e8aafda643ba61a30bd1439969df21bea5f4e27e2"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[2].first == 2);
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[3].second == uint256("0x3c1d7e82342158e4109df2e0b6348b6e84e403d8b4046d7007663ace63cddb23"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[3].second == uint256S("0x3c1d7e82342158e4109df2e0b6348b6e84e403d8b4046d7007663ace63cddb23"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[3].first == 3);
|
||||
|
||||
BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched) == block.hashMerkleRoot);
|
||||
@@ -290,7 +290,7 @@ BOOST_AUTO_TEST_CASE(merkle_block_2_with_update_none)
|
||||
|
||||
CBloomFilter filter(10, 0.000001, 0, BLOOM_UPDATE_NONE);
|
||||
// Match the first transaction
|
||||
filter.insert(uint256("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70"));
|
||||
filter.insert(uint256S("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70"));
|
||||
|
||||
CMerkleBlock merkleBlock(block, filter);
|
||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash());
|
||||
@@ -298,7 +298,7 @@ BOOST_AUTO_TEST_CASE(merkle_block_2_with_update_none)
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1);
|
||||
pair<unsigned int, uint256> pair = merkleBlock.vMatchedTxn[0];
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256S("0xe980fe9f792d014e73b95203dc1335c5f9ce19ac537a419e6df5b47aecb93b70"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 0);
|
||||
|
||||
vector<uint256> vMatched;
|
||||
@@ -319,10 +319,10 @@ BOOST_AUTO_TEST_CASE(merkle_block_2_with_update_none)
|
||||
|
||||
BOOST_CHECK(pair == merkleBlock.vMatchedTxn[0]);
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[1].second == uint256("0x28204cad1d7fc1d199e8ef4fa22f182de6258a3eaafe1bbe56ebdcacd3069a5f"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[1].second == uint256S("0x28204cad1d7fc1d199e8ef4fa22f182de6258a3eaafe1bbe56ebdcacd3069a5f"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[1].first == 1);
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[2].second == uint256("0x3c1d7e82342158e4109df2e0b6348b6e84e403d8b4046d7007663ace63cddb23"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[2].second == uint256S("0x3c1d7e82342158e4109df2e0b6348b6e84e403d8b4046d7007663ace63cddb23"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[2].first == 3);
|
||||
|
||||
BOOST_CHECK(merkleBlock.txn.ExtractMatches(vMatched) == block.hashMerkleRoot);
|
||||
@@ -341,14 +341,14 @@ BOOST_AUTO_TEST_CASE(merkle_block_3_and_serialize)
|
||||
|
||||
CBloomFilter filter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
// Match the only transaction
|
||||
filter.insert(uint256("0x63194f18be0af63f2c6bc9dc0f777cbefed3d9415c4af83f3ee3a3d669c00cb5"));
|
||||
filter.insert(uint256S("0x63194f18be0af63f2c6bc9dc0f777cbefed3d9415c4af83f3ee3a3d669c00cb5"));
|
||||
|
||||
CMerkleBlock merkleBlock(block, filter);
|
||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash());
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1);
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256("0x63194f18be0af63f2c6bc9dc0f777cbefed3d9415c4af83f3ee3a3d669c00cb5"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256S("0x63194f18be0af63f2c6bc9dc0f777cbefed3d9415c4af83f3ee3a3d669c00cb5"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 0);
|
||||
|
||||
vector<uint256> vMatched;
|
||||
@@ -379,7 +379,7 @@ BOOST_AUTO_TEST_CASE(merkle_block_4)
|
||||
|
||||
CBloomFilter filter(10, 0.000001, 0, BLOOM_UPDATE_ALL);
|
||||
// Match the last transaction
|
||||
filter.insert(uint256("0x0a2a92f0bda4727d0a13eaddf4dd9ac6b5c61a1429e6b2b818f19b15df0ac154"));
|
||||
filter.insert(uint256S("0x0a2a92f0bda4727d0a13eaddf4dd9ac6b5c61a1429e6b2b818f19b15df0ac154"));
|
||||
|
||||
CMerkleBlock merkleBlock(block, filter);
|
||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash());
|
||||
@@ -387,7 +387,7 @@ BOOST_AUTO_TEST_CASE(merkle_block_4)
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 1);
|
||||
pair<unsigned int, uint256> pair = merkleBlock.vMatchedTxn[0];
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256("0x0a2a92f0bda4727d0a13eaddf4dd9ac6b5c61a1429e6b2b818f19b15df0ac154"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256S("0x0a2a92f0bda4727d0a13eaddf4dd9ac6b5c61a1429e6b2b818f19b15df0ac154"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 6);
|
||||
|
||||
vector<uint256> vMatched;
|
||||
@@ -397,13 +397,13 @@ BOOST_AUTO_TEST_CASE(merkle_block_4)
|
||||
BOOST_CHECK(vMatched[i] == merkleBlock.vMatchedTxn[i].second);
|
||||
|
||||
// Also match the 4th transaction
|
||||
filter.insert(uint256("0x02981fa052f0481dbc5868f4fc2166035a10f27a03cfd2de67326471df5bc041"));
|
||||
filter.insert(uint256S("0x02981fa052f0481dbc5868f4fc2166035a10f27a03cfd2de67326471df5bc041"));
|
||||
merkleBlock = CMerkleBlock(block, filter);
|
||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash());
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn.size() == 2);
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256("0x02981fa052f0481dbc5868f4fc2166035a10f27a03cfd2de67326471df5bc041"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].second == uint256S("0x02981fa052f0481dbc5868f4fc2166035a10f27a03cfd2de67326471df5bc041"));
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[0].first == 3);
|
||||
|
||||
BOOST_CHECK(merkleBlock.vMatchedTxn[1] == pair);
|
||||
@@ -432,9 +432,9 @@ BOOST_AUTO_TEST_CASE(merkle_block_4_test_p2pubkey_only)
|
||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash());
|
||||
|
||||
// We should match the generation outpoint
|
||||
BOOST_CHECK(filter.contains(COutPoint(uint256("0x147caa76786596590baa4e98f5d9f48b86c7765e489f7a6ff3360fe5c674360b"), 0)));
|
||||
BOOST_CHECK(filter.contains(COutPoint(uint256S("0x147caa76786596590baa4e98f5d9f48b86c7765e489f7a6ff3360fe5c674360b"), 0)));
|
||||
// ... but not the 4th transaction's output (its not pay-2-pubkey)
|
||||
BOOST_CHECK(!filter.contains(COutPoint(uint256("0x02981fa052f0481dbc5868f4fc2166035a10f27a03cfd2de67326471df5bc041"), 0)));
|
||||
BOOST_CHECK(!filter.contains(COutPoint(uint256S("0x02981fa052f0481dbc5868f4fc2166035a10f27a03cfd2de67326471df5bc041"), 0)));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(merkle_block_4_test_update_none)
|
||||
@@ -455,8 +455,8 @@ BOOST_AUTO_TEST_CASE(merkle_block_4_test_update_none)
|
||||
BOOST_CHECK(merkleBlock.header.GetHash() == block.GetHash());
|
||||
|
||||
// We shouldn't match any outpoints (UPDATE_NONE)
|
||||
BOOST_CHECK(!filter.contains(COutPoint(uint256("0x147caa76786596590baa4e98f5d9f48b86c7765e489f7a6ff3360fe5c674360b"), 0)));
|
||||
BOOST_CHECK(!filter.contains(COutPoint(uint256("0x02981fa052f0481dbc5868f4fc2166035a10f27a03cfd2de67326471df5bc041"), 0)));
|
||||
BOOST_CHECK(!filter.contains(COutPoint(uint256S("0x147caa76786596590baa4e98f5d9f48b86c7765e489f7a6ff3360fe5c674360b"), 0)));
|
||||
BOOST_CHECK(!filter.contains(COutPoint(uint256S("0x02981fa052f0481dbc5868f4fc2166035a10f27a03cfd2de67326471df5bc041"), 0)));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
Reference in New Issue
Block a user