aboutsummaryrefslogtreecommitdiff
path: root/src/wallet
diff options
context:
space:
mode:
authorAndrew Chow <achow101-github@achow101.com>2022-07-22 14:49:10 -0400
committerAndrew Chow <achow101-github@achow101.com>2022-08-16 20:17:01 -0400
commitf2d00bfe1a32a11c0d88e8c1d3bae6a6b01db15e (patch)
tree802cb1ae3b8380550979141581109a0f7a35847b /src/wallet
parent64f7a1940d738a9acd207883af1dfda3e00f4a21 (diff)
downloadbitcoin-f2d00bfe1a32a11c0d88e8c1d3bae6a6b01db15e.tar.xz
wallet: Add CWallet::IsMine(COutPoint)
It is useful to have an IsMine function that can take an outpoint.
Diffstat (limited to 'src/wallet')
-rw-r--r--src/wallet/wallet.cpp13
-rw-r--r--src/wallet/wallet.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index 45f49954a3..02fe6fba5b 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -1421,6 +1421,19 @@ bool CWallet::IsMine(const CTransaction& tx) const
return false;
}
+isminetype CWallet::IsMine(const COutPoint& outpoint) const
+{
+ AssertLockHeld(cs_wallet);
+ auto wtx = GetWalletTx(outpoint.hash);
+ if (!wtx) {
+ return ISMINE_NO;
+ }
+ if (outpoint.n >= wtx->tx->vout.size()) {
+ return ISMINE_NO;
+ }
+ return IsMine(wtx->tx->vout[outpoint.n]);
+}
+
bool CWallet::IsFromMe(const CTransaction& tx) const
{
return (GetDebit(tx, ISMINE_ALL) > 0);
diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h
index 247c172da3..d8c54bdb01 100644
--- a/src/wallet/wallet.h
+++ b/src/wallet/wallet.h
@@ -684,6 +684,7 @@ public:
CAmount GetDebit(const CTxIn& txin, const isminefilter& filter) const;
isminetype IsMine(const CTxOut& txout) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
bool IsMine(const CTransaction& tx) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
+ isminetype IsMine(const COutPoint& outpoint) const EXCLUSIVE_LOCKS_REQUIRED(cs_wallet);
/** should probably be renamed to IsRelevantToMe */
bool IsFromMe(const CTransaction& tx) const;
CAmount GetDebit(const CTransaction& tx, const isminefilter& filter) const;