aboutsummaryrefslogtreecommitdiff
path: root/src/validationinterface.cpp
diff options
context:
space:
mode:
authorRussell Yanofsky <russ@yanofsky.org>2020-05-15 09:23:55 -0400
committerRussell Yanofsky <russ@yanofsky.org>2020-05-15 09:23:55 -0400
commitb604c5c8b5892842f13dee89ae31812a28ab25d1 (patch)
tree2a840e68c508b36c4a4e91a4cdf5ab9fa56db1af /src/validationinterface.cpp
parente2f6866cca3e0c3c74f94f2df50ed3243158ea32 (diff)
downloadbitcoin-b604c5c8b5892842f13dee89ae31812a28ab25d1.tar.xz
wallet: Minimal fix to restore conflicted transaction notifications
This fix is a based on the fix by Antoine Riard <ariard@student.42.fr> in https://github.com/bitcoin/bitcoin/pull/18600. Unlike that PR, which implements some new behavior, this just restores previous wallet notification and status behavior for transactions removed from the mempool because they conflict with transactions in a block. The behavior was accidentally changed in two `CWallet::BlockConnected` updates: a31be09bfd77eed497a8e251d31358e16e2f2eb1 and 7e89994133725125dddbfa8d45484e3b9ed51c6e from https://github.com/bitcoin/bitcoin/pull/16624, causing issue https://github.com/bitcoin/bitcoin/issues/18325. The change here could be improved and replaced with a more comprehensive cleanup, so it includes a detailed comment explaining future considerations. Fixes #18325 Co-authored-by: Antoine Riard <ariard@student.42.fr>
Diffstat (limited to 'src/validationinterface.cpp')
-rw-r--r--src/validationinterface.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/validationinterface.cpp b/src/validationinterface.cpp
index 9437f9c817..22d13704fb 100644
--- a/src/validationinterface.cpp
+++ b/src/validationinterface.cpp
@@ -208,9 +208,9 @@ void CMainSignals::TransactionAddedToMempool(const CTransactionRef &ptx) {
ptx->GetWitnessHash().ToString());
}
-void CMainSignals::TransactionRemovedFromMempool(const CTransactionRef &ptx) {
- auto event = [ptx, this] {
- m_internals->Iterate([&](CValidationInterface& callbacks) { callbacks.TransactionRemovedFromMempool(ptx); });
+void CMainSignals::TransactionRemovedFromMempool(const CTransactionRef &ptx, MemPoolRemovalReason reason) {
+ auto event = [ptx, reason, this] {
+ m_internals->Iterate([&](CValidationInterface& callbacks) { callbacks.TransactionRemovedFromMempool(ptx, reason); });
};
ENQUEUE_AND_LOG_EVENT(event, "%s: txid=%s wtxid=%s", __func__,
ptx->GetHash().ToString(),