aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRussell Yanofsky <russ@yanofsky.org>2017-07-28 19:29:50 -0400
committerRussell Yanofsky <russ@yanofsky.org>2019-02-22 15:43:02 -0400
commit291276f7f40df9fcd62e54c016953705bf0ed04a (patch)
treebd5e5f8280ff559fe2a8eb84538655957619136b /src
parentbdc6628683197945326cbdfea3f53ec0b7d1949f (diff)
downloadbitcoin-291276f7f40df9fcd62e54c016953705bf0ed04a.tar.xz
Remove use of GetCountWithDescendants in wallet code
This commit does not change behavior.
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/chain.cpp6
-rw-r--r--src/interfaces/chain.h3
-rw-r--r--src/wallet/feebumper.cpp4
3 files changed, 10 insertions, 3 deletions
diff --git a/src/interfaces/chain.cpp b/src/interfaces/chain.cpp
index 7cab303aad..8c5921970b 100644
--- a/src/interfaces/chain.cpp
+++ b/src/interfaces/chain.cpp
@@ -190,6 +190,12 @@ public:
LOCK(::mempool.cs);
return IsRBFOptIn(tx, ::mempool);
}
+ bool hasDescendantsInMempool(const uint256& txid) override
+ {
+ LOCK(::mempool.cs);
+ auto it_mp = ::mempool.mapTx.find(txid);
+ return it_mp != ::mempool.mapTx.end() && it_mp->GetCountWithDescendants() > 1;
+ }
};
} // namespace
diff --git a/src/interfaces/chain.h b/src/interfaces/chain.h
index 486f1ea169..aa4f17a8ec 100644
--- a/src/interfaces/chain.h
+++ b/src/interfaces/chain.h
@@ -135,6 +135,9 @@ public:
//! Check if transaction is RBF opt in.
virtual RBFTransactionState isRBFOptIn(const CTransaction& tx) = 0;
+
+ //! Check if transaction has descendants in mempool.
+ virtual bool hasDescendantsInMempool(const uint256& txid) = 0;
};
//! Interface to let node manage chain clients (wallets, or maybe tools for
diff --git a/src/wallet/feebumper.cpp b/src/wallet/feebumper.cpp
index 7a71aea715..f4b419ca2a 100644
--- a/src/wallet/feebumper.cpp
+++ b/src/wallet/feebumper.cpp
@@ -27,9 +27,7 @@ static feebumper::Result PreconditionChecks(interfaces::Chain::Lock& locked_chai
}
{
- LOCK(mempool.cs);
- auto it_mp = mempool.mapTx.find(wtx.GetHash());
- if (it_mp != mempool.mapTx.end() && it_mp->GetCountWithDescendants() > 1) {
+ if (wallet->chain().hasDescendantsInMempool(wtx.GetHash())) {
errors.push_back("Transaction has descendants in the mempool");
return feebumper::Result::INVALID_PARAMETER;
}