13 #include <boost/test/unit_test.hpp> 23 for (
int i = 0; i < 2; i++) {
31 std::unique_ptr<interfaces::Chain>& chain =
m_node.
chain;
40 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
44 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
46 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
49 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
50 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
52 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 1);
59 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
63 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
65 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
68 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(uncompressedKey));
69 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
71 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 1);
78 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
82 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
84 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
87 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
88 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
90 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 1);
97 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
101 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
103 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
106 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(uncompressedKey));
107 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
109 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 1);
116 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
122 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
124 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
127 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(redeemScript));
128 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
130 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
133 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
134 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
136 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 1);
143 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
149 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(redeemscript));
150 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(redeemscript_inner));
151 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(scriptPubKey));
152 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
153 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
155 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
162 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
168 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(witnessscript));
169 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(redeemscript));
170 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(scriptPubKey));
171 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
172 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
174 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
181 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
186 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(witnessscript));
187 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(scriptPubKey));
188 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
189 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
191 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
198 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
204 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(witnessscript_inner));
205 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(witnessscript));
206 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(scriptPubKey));
207 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
208 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
210 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
217 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
218 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
223 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(scriptPubKey));
224 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
226 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 1);
233 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
234 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(uncompressedKey));
239 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
241 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
244 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(scriptPubKey));
245 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
247 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
254 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
259 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
261 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
264 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(uncompressedKey));
266 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
268 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
271 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[1]));
273 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
275 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
278 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(scriptPubKey));
280 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
282 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
289 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
290 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(uncompressedKey));
291 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[1]));
297 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
299 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
302 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(redeemScript));
303 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
305 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 1);
312 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
313 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
314 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[1]));
320 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
322 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
325 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(witnessScript));
326 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
328 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
331 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(scriptPubKey));
332 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
334 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 1);
341 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
342 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(uncompressedKey));
343 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[1]));
349 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
351 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
354 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(witnessScript));
355 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
357 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
360 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(scriptPubKey));
361 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
363 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
370 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
377 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
379 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
382 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(redeemScript));
383 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddCScript(witnessScript));
384 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
386 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
389 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
390 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[1]));
391 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
393 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 1);
400 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
401 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
403 scriptPubKey.
clear();
406 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
408 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
415 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
416 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
418 scriptPubKey.
clear();
421 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
423 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
430 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
431 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
433 scriptPubKey.
clear();
436 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
438 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
445 LOCK(keystore.GetLegacyScriptPubKeyMan()->cs_KeyStore);
446 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->AddKey(keys[0]));
448 scriptPubKey.
clear();
451 result = keystore.GetLegacyScriptPubKeyMan()->IsMine(scriptPubKey);
453 BOOST_CHECK(keystore.GetLegacyScriptPubKeyMan()->GetScriptPubKeys().count(scriptPubKey) == 0);
std::unique_ptr< interfaces::Chain > chain
CPubKey GetPubKey() const
Compute the public key from a private key.
CScript GetScriptForRawPubKey(const CPubKey &pubKey)
Generate a P2PK script for the given pubkey.
void SetupLegacyScriptPubKeyMan()
Make a LegacyScriptPubKeyMan and set it for all types, internal, and external.
std::vector< Byte > ParseHex(std::string_view str)
Parse the hex string into bytes (uint8_t or std::byte).
BOOST_AUTO_TEST_SUITE_END()
An encapsulated public key.
isminetype
IsMine() return codes, which depend on ScriptPubKeyMan implementation.
void MakeNewKey(bool fCompressed)
Generate a new private key using a cryptographic PRNG.
A CWallet maintains a set of transactions and balances, and provides the ability to create new transa...
CScript GetScriptForDestination(const CTxDestination &dest)
Generate a Bitcoin scriptPubKey for the given CTxDestination.
std::vector< unsigned char > ToByteVector(const T &in)
#define BOOST_CHECK_EQUAL(v1, v2)
Serialized script, used inside transaction inputs and outputs.
CScript GetScriptForMultisig(int nRequired, const std::vector< CPubKey > &keys)
Generate a multisig script.
An encapsulated private key.
BOOST_AUTO_TEST_CASE(bnb_search_test)
#define BOOST_CHECK(expr)
std::unique_ptr< WalletDatabase > CreateDummyWalletDatabase()
Return object for accessing dummy database with no read/write capabilities.