mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-14 06:32:33 +01:00
[refactor] move valid tx processing to TxDownload
This commit is contained in:
@@ -152,6 +152,9 @@ public:
|
||||
* skipping any combinations that have already been tried. Return the resulting package along with
|
||||
* the senders of its respective transactions, or std::nullopt if no package is found. */
|
||||
std::optional<PackageToValidate> Find1P1CPackage(const CTransactionRef& ptx, NodeId nodeid);
|
||||
|
||||
/** Respond to successful transaction submission to mempool */
|
||||
void MempoolAcceptedTx(const CTransactionRef& tx);
|
||||
};
|
||||
} // namespace node
|
||||
#endif // BITCOIN_NODE_TXDOWNLOADMAN_H
|
||||
|
||||
@@ -75,6 +75,10 @@ std::optional<PackageToValidate> TxDownloadManager::Find1P1CPackage(const CTrans
|
||||
{
|
||||
return m_impl->Find1P1CPackage(ptx, nodeid);
|
||||
}
|
||||
void TxDownloadManager::MempoolAcceptedTx(const CTransactionRef& tx)
|
||||
{
|
||||
m_impl->MempoolAcceptedTx(tx);
|
||||
}
|
||||
|
||||
// TxDownloadManagerImpl
|
||||
void TxDownloadManagerImpl::ActiveTipChange()
|
||||
@@ -272,4 +276,16 @@ std::optional<PackageToValidate> TxDownloadManagerImpl::Find1P1CPackage(const CT
|
||||
}
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
void TxDownloadManagerImpl::MempoolAcceptedTx(const CTransactionRef& tx)
|
||||
{
|
||||
// As this version of the transaction was acceptable, we can forget about any requests for it.
|
||||
// No-op if the tx is not in txrequest.
|
||||
m_txrequest.ForgetTxHash(tx->GetHash());
|
||||
m_txrequest.ForgetTxHash(tx->GetWitnessHash());
|
||||
|
||||
m_orphanage.AddChildrenToWorkSet(*tx);
|
||||
// If it came from the orphanage, remove it. No-op if the tx is not in txorphanage.
|
||||
m_orphanage.EraseTx(tx->GetWitnessHash());
|
||||
}
|
||||
} // namespace node
|
||||
|
||||
@@ -162,6 +162,8 @@ public:
|
||||
void ReceivedNotFound(NodeId nodeid, const std::vector<uint256>& txhashes);
|
||||
|
||||
std::optional<PackageToValidate> Find1P1CPackage(const CTransactionRef& ptx, NodeId nodeid);
|
||||
|
||||
void MempoolAcceptedTx(const CTransactionRef& tx);
|
||||
};
|
||||
} // namespace node
|
||||
#endif // BITCOIN_NODE_TXDOWNLOADMAN_IMPL_H
|
||||
|
||||
Reference in New Issue
Block a user