mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-18 13:17:55 +02:00
refactor: share and use GenerateRandomKey helper
Making the `GenerateRandomKey` helper available to other modules via
key.{h.cpp} allows us to create random private keys directly at
instantiation of CKey, in contrast to the two-step process of creating
the instance and then having to call `MakeNewKey(...)`.
This commit is contained in:
parent
4b1196a985
commit
fa1d49542e
16 changed files with 63 additions and 100 deletions
|
|
@ -116,8 +116,7 @@ BOOST_FIXTURE_TEST_CASE(package_validation_tests, TestChain100Setup)
|
|||
unsigned int initialPoolSize = m_node.mempool->size();
|
||||
|
||||
// Parent and Child Package
|
||||
CKey parent_key;
|
||||
parent_key.MakeNewKey(true);
|
||||
CKey parent_key = GenerateRandomKey();
|
||||
CScript parent_locking_script = GetScriptForDestination(PKHash(parent_key.GetPubKey()));
|
||||
auto mtx_parent = CreateValidMempoolTransaction(/*input_transaction=*/m_coinbase_txns[0], /*input_vout=*/0,
|
||||
/*input_height=*/0, /*input_signing_key=*/coinbaseKey,
|
||||
|
|
@ -125,8 +124,7 @@ BOOST_FIXTURE_TEST_CASE(package_validation_tests, TestChain100Setup)
|
|||
/*output_amount=*/CAmount(49 * COIN), /*submit=*/false);
|
||||
CTransactionRef tx_parent = MakeTransactionRef(mtx_parent);
|
||||
|
||||
CKey child_key;
|
||||
child_key.MakeNewKey(true);
|
||||
CKey child_key = GenerateRandomKey();
|
||||
CScript child_locking_script = GetScriptForDestination(PKHash(child_key.GetPubKey()));
|
||||
auto mtx_child = CreateValidMempoolTransaction(/*input_transaction=*/tx_parent, /*input_vout=*/0,
|
||||
/*input_height=*/101, /*input_signing_key=*/parent_key,
|
||||
|
|
@ -170,11 +168,9 @@ BOOST_FIXTURE_TEST_CASE(package_validation_tests, TestChain100Setup)
|
|||
BOOST_FIXTURE_TEST_CASE(noncontextual_package_tests, TestChain100Setup)
|
||||
{
|
||||
// The signatures won't be verified so we can just use a placeholder
|
||||
CKey placeholder_key;
|
||||
placeholder_key.MakeNewKey(true);
|
||||
CKey placeholder_key = GenerateRandomKey();
|
||||
CScript spk = GetScriptForDestination(PKHash(placeholder_key.GetPubKey()));
|
||||
CKey placeholder_key_2;
|
||||
placeholder_key_2.MakeNewKey(true);
|
||||
CKey placeholder_key_2 = GenerateRandomKey();
|
||||
CScript spk2 = GetScriptForDestination(PKHash(placeholder_key_2.GetPubKey()));
|
||||
|
||||
// Parent and Child Package
|
||||
|
|
@ -266,8 +262,7 @@ BOOST_FIXTURE_TEST_CASE(package_submission_tests, TestChain100Setup)
|
|||
{
|
||||
LOCK(cs_main);
|
||||
unsigned int expected_pool_size = m_node.mempool->size();
|
||||
CKey parent_key;
|
||||
parent_key.MakeNewKey(true);
|
||||
CKey parent_key = GenerateRandomKey();
|
||||
CScript parent_locking_script = GetScriptForDestination(PKHash(parent_key.GetPubKey()));
|
||||
|
||||
// Unrelated transactions are not allowed in package submission.
|
||||
|
|
@ -298,8 +293,7 @@ BOOST_FIXTURE_TEST_CASE(package_submission_tests, TestChain100Setup)
|
|||
package_parent_child.push_back(tx_parent);
|
||||
package_3gen.push_back(tx_parent);
|
||||
|
||||
CKey child_key;
|
||||
child_key.MakeNewKey(true);
|
||||
CKey child_key = GenerateRandomKey();
|
||||
CScript child_locking_script = GetScriptForDestination(PKHash(child_key.GetPubKey()));
|
||||
auto mtx_child = CreateValidMempoolTransaction(/*input_transaction=*/tx_parent, /*input_vout=*/0,
|
||||
/*input_height=*/101, /*input_signing_key=*/parent_key,
|
||||
|
|
@ -309,8 +303,7 @@ BOOST_FIXTURE_TEST_CASE(package_submission_tests, TestChain100Setup)
|
|||
package_parent_child.push_back(tx_child);
|
||||
package_3gen.push_back(tx_child);
|
||||
|
||||
CKey grandchild_key;
|
||||
grandchild_key.MakeNewKey(true);
|
||||
CKey grandchild_key = GenerateRandomKey();
|
||||
CScript grandchild_locking_script = GetScriptForDestination(PKHash(grandchild_key.GetPubKey()));
|
||||
auto mtx_grandchild = CreateValidMempoolTransaction(/*input_transaction=*/tx_child, /*input_vout=*/0,
|
||||
/*input_height=*/101, /*input_signing_key=*/child_key,
|
||||
|
|
@ -434,8 +427,7 @@ BOOST_FIXTURE_TEST_CASE(package_witness_swap_tests, TestChain100Setup)
|
|||
witness2.stack.emplace_back(2);
|
||||
witness2.stack.emplace_back(witnessScript.begin(), witnessScript.end());
|
||||
|
||||
CKey child_key;
|
||||
child_key.MakeNewKey(true);
|
||||
CKey child_key = GenerateRandomKey();
|
||||
CScript child_locking_script = GetScriptForDestination(WitnessV0KeyHash(child_key.GetPubKey()));
|
||||
CMutableTransaction mtx_child1;
|
||||
mtx_child1.nVersion = 1;
|
||||
|
|
@ -504,8 +496,7 @@ BOOST_FIXTURE_TEST_CASE(package_witness_swap_tests, TestChain100Setup)
|
|||
// This tests a potential censorship vector in which an attacker broadcasts a competing package
|
||||
// where a parent's witness is mutated. The honest package should be accepted despite the fact
|
||||
// that we don't allow witness replacement.
|
||||
CKey grandchild_key;
|
||||
grandchild_key.MakeNewKey(true);
|
||||
CKey grandchild_key = GenerateRandomKey();
|
||||
CScript grandchild_locking_script = GetScriptForDestination(WitnessV0KeyHash(grandchild_key.GetPubKey()));
|
||||
auto mtx_grandchild = CreateValidMempoolTransaction(/*input_transaction=*/ptx_child2, /*input_vout=*/0,
|
||||
/*input_height=*/0, /*input_signing_key=*/child_key,
|
||||
|
|
@ -595,8 +586,7 @@ BOOST_FIXTURE_TEST_CASE(package_witness_swap_tests, TestChain100Setup)
|
|||
BOOST_CHECK(m_node.mempool->m_min_relay_feerate.GetFee(GetVirtualTransactionSize(*ptx_parent3)) <= low_fee_amt);
|
||||
|
||||
// child spends parent1, parent2, and parent3
|
||||
CKey mixed_grandchild_key;
|
||||
mixed_grandchild_key.MakeNewKey(true);
|
||||
CKey mixed_grandchild_key = GenerateRandomKey();
|
||||
CScript mixed_child_spk = GetScriptForDestination(WitnessV0KeyHash(mixed_grandchild_key.GetPubKey()));
|
||||
|
||||
CMutableTransaction mtx_mixed_child;
|
||||
|
|
@ -648,11 +638,9 @@ BOOST_FIXTURE_TEST_CASE(package_cpfp_tests, TestChain100Setup)
|
|||
MockMempoolMinFee(CFeeRate(5000));
|
||||
LOCK(::cs_main);
|
||||
size_t expected_pool_size = m_node.mempool->size();
|
||||
CKey child_key;
|
||||
child_key.MakeNewKey(true);
|
||||
CKey child_key = GenerateRandomKey();
|
||||
CScript parent_spk = GetScriptForDestination(WitnessV0KeyHash(child_key.GetPubKey()));
|
||||
CKey grandchild_key;
|
||||
grandchild_key.MakeNewKey(true);
|
||||
CKey grandchild_key = GenerateRandomKey();
|
||||
CScript child_spk = GetScriptForDestination(WitnessV0KeyHash(grandchild_key.GetPubKey()));
|
||||
|
||||
// low-fee parent and high-fee child package
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue