Skip to content

Commit cd9a11a

Browse files
committed
[test] make submit optional in CreateValidMempoolTransaction
This allows us to easily create transaction chains for package validation. We don't test_accept if submit=false because we want to be able to make transactions that wouldn't pass ATMP (i.e. a child transaction in a package would fail due to missing inputs).
1 parent 2ef1879 commit cd9a11a

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/test/util/setup_common.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,8 @@ CMutableTransaction TestChain100Setup::CreateValidMempoolTransaction(CTransactio
263263
int input_height,
264264
CKey input_signing_key,
265265
CScript output_destination,
266-
CAmount output_amount)
266+
CAmount output_amount,
267+
bool submit)
267268
{
268269
// Transaction we will submit to the mempool
269270
CMutableTransaction mempool_txn;
@@ -296,8 +297,8 @@ CMutableTransaction TestChain100Setup::CreateValidMempoolTransaction(CTransactio
296297
std::map<int, std::string> input_errors;
297298
assert(SignTransaction(mempool_txn, &keystore, input_coins, nHashType, input_errors));
298299

299-
// Add transaction to the mempool
300-
{
300+
// If submit=true, add transaction to the mempool.
301+
if (submit) {
301302
LOCK(cs_main);
302303
const MempoolAcceptResult result = AcceptToMemoryPool(::ChainstateActive(), *m_node.mempool.get(), MakeTransactionRef(mempool_txn), /* bypass_limits */ false);
303304
assert(result.m_result_type == MempoolAcceptResult::ResultType::VALID);

src/test/util/setup_common.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,13 +135,15 @@ struct TestChain100Setup : public RegTestingSetup {
135135
* @param input_signing_key The key to spend the input_transaction
136136
* @param output_destination Where to send the output
137137
* @param output_amount How much to send
138+
* @param submit Whether or not to submit to mempool
138139
*/
139140
CMutableTransaction CreateValidMempoolTransaction(CTransactionRef input_transaction,
140141
int input_vout,
141142
int input_height,
142143
CKey input_signing_key,
143144
CScript output_destination,
144-
CAmount output_amount = CAmount(1 * COIN));
145+
CAmount output_amount = CAmount(1 * COIN),
146+
bool submit = true);
145147

146148
~TestChain100Setup();
147149

0 commit comments

Comments
 (0)