Skip to content

Commit 8496f69

Browse files
committed
[refactor] make MempoolAcceptResult::m_replaced_transactions non-optional
1 parent 842f7fd commit 8496f69

File tree

5 files changed

+6
-23
lines changed

5 files changed

+6
-23
lines changed

src/net_processing.cpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3281,9 +3281,7 @@ void PeerManagerImpl::ProcessPackageResult(const Package& package, const Package
32813281
switch (tx_result.m_result_type) {
32823282
case MempoolAcceptResult::ResultType::VALID:
32833283
{
3284-
Assume(tx_result.m_replaced_transactions.has_value());
3285-
std::list<CTransactionRef> empty_replacement_list;
3286-
ProcessValidTx(nodeid, tx, tx_result.m_replaced_transactions.value_or(empty_replacement_list));
3284+
ProcessValidTx(nodeid, tx, tx_result.m_replaced_transactions);
32873285
break;
32883286
}
32893287
case MempoolAcceptResult::ResultType::INVALID:
@@ -3378,9 +3376,7 @@ bool PeerManagerImpl::ProcessOrphanTx(Peer& peer)
33783376

33793377
if (result.m_result_type == MempoolAcceptResult::ResultType::VALID) {
33803378
LogPrint(BCLog::TXPACKAGES, " accepted orphan tx %s (wtxid=%s)\n", orphanHash.ToString(), orphan_wtxid.ToString());
3381-
Assume(result.m_replaced_transactions.has_value());
3382-
std::list<CTransactionRef> empty_replacement_list;
3383-
ProcessValidTx(peer.m_id, porphanTx, result.m_replaced_transactions.value_or(empty_replacement_list));
3379+
ProcessValidTx(peer.m_id, porphanTx, result.m_replaced_transactions);
33843380
return true;
33853381
} else if (state.GetResult() != TxValidationResult::TX_MISSING_INPUTS) {
33863382
LogPrint(BCLog::TXPACKAGES, " invalid orphan tx %s (wtxid=%s) from peer=%d. %s\n",
@@ -4578,9 +4574,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
45784574
const TxValidationState& state = result.m_state;
45794575

45804576
if (result.m_result_type == MempoolAcceptResult::ResultType::VALID) {
4581-
Assume(result.m_replaced_transactions.has_value());
4582-
std::list<CTransactionRef> empty_replacement_list;
4583-
ProcessValidTx(pfrom.GetId(), ptx, result.m_replaced_transactions.value_or(empty_replacement_list));
4577+
ProcessValidTx(pfrom.GetId(), ptx, result.m_replaced_transactions);
45844578
pfrom.m_last_tx_time = GetTime<std::chrono::seconds>();
45854579
}
45864580
else if (state.GetResult() == TxValidationResult::TX_MISSING_INPUTS)

src/rpc/mempool.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -994,10 +994,8 @@ static RPCHelpMan submitpackage()
994994
fees.pushKV("effective-includes", effective_includes_res);
995995
}
996996
result_inner.pushKV("fees", fees);
997-
if (it->second.m_replaced_transactions.has_value()) {
998-
for (const auto& ptx : it->second.m_replaced_transactions.value()) {
999-
replaced_txids.insert(ptx->GetHash());
1000-
}
997+
for (const auto& ptx : it->second.m_replaced_transactions) {
998+
replaced_txids.insert(ptx->GetHash());
1001999
}
10021000
break;
10031001
}

src/test/fuzz/tx_pool.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,6 @@ void CheckATMPInvariants(const MempoolAcceptResult& res, bool txid_in_mempool, b
139139
Assert(wtxid_in_mempool);
140140
Assert(res.m_state.IsValid());
141141
Assert(!res.m_state.IsInvalid());
142-
Assert(res.m_replaced_transactions);
143142
Assert(res.m_vsize);
144143
Assert(res.m_base_fees);
145144
Assert(res.m_effective_feerate);
@@ -154,7 +153,6 @@ void CheckATMPInvariants(const MempoolAcceptResult& res, bool txid_in_mempool, b
154153
Assert(res.m_state.IsInvalid());
155154

156155
const bool is_reconsiderable{res.m_state.GetResult() == TxValidationResult::TX_RECONSIDERABLE};
157-
Assert(!res.m_replaced_transactions);
158156
Assert(!res.m_vsize);
159157
Assert(!res.m_base_fees);
160158
// Fee information is provided if the failure is TX_RECONSIDERABLE.

src/test/util/txmempool.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,6 @@ std::optional<std::string> CheckPackageMempoolAcceptResult(const Package& txns,
6868
return strprintf("tx %s unexpectedly failed: %s", wtxid.ToString(), atmp_result.m_state.ToString());
6969
}
7070

71-
//m_replaced_transactions should exist iff the result was VALID
72-
if (atmp_result.m_replaced_transactions.has_value() != valid) {
73-
return strprintf("tx %s result should %shave m_replaced_transactions",
74-
wtxid.ToString(), valid ? "" : "not ");
75-
}
76-
7771
// m_vsize and m_base_fees should exist iff the result was VALID or MEMPOOL_ENTRY
7872
const bool mempool_entry{atmp_result.m_result_type == MempoolAcceptResult::ResultType::MEMPOOL_ENTRY};
7973
if (atmp_result.m_base_fees.has_value() != (valid || mempool_entry)) {

src/validation.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ void PruneBlockFilesManual(Chainstate& active_chainstate, int nManualPruneHeight
113113
*| txid in mempool? | yes | no | no* | yes | yes |
114114
*| wtxid in mempool? | yes | no | no* | yes | no |
115115
*| m_state | yes, IsValid() | yes, IsInvalid() | yes, IsInvalid() | yes, IsValid() | yes, IsValid() |
116-
*| m_replaced_transactions | yes | no | no | no | no |
117116
*| m_vsize | yes | no | no | yes | no |
118117
*| m_base_fees | yes | no | no | yes | no |
119118
*| m_effective_feerate | yes | yes | no | no | no |
@@ -139,7 +138,7 @@ struct MempoolAcceptResult {
139138
const TxValidationState m_state;
140139

141140
/** Mempool transactions replaced by the tx. */
142-
const std::optional<std::list<CTransactionRef>> m_replaced_transactions;
141+
const std::list<CTransactionRef> m_replaced_transactions;
143142
/** Virtual size as used by the mempool, calculated using serialized size and sigops. */
144143
const std::optional<int64_t> m_vsize;
145144
/** Raw base fees in satoshis. */

0 commit comments

Comments
 (0)