aboutsummaryrefslogtreecommitdiff
path: root/src/script.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script.cpp')
-rw-r--r--src/script.cpp22
1 files changed, 7 insertions, 15 deletions
diff --git a/src/script.cpp b/src/script.cpp
index 0ef0126255..89f752bd1f 100644
--- a/src/script.cpp
+++ b/src/script.cpp
@@ -1456,13 +1456,11 @@ public:
bool operator()(const CScriptID &scriptID) const { return keystore->HaveCScript(scriptID); }
};
-isminetype IsMine(const CKeyStore &keystore, const CTxDestination &dest)
+isminetype IsMine(const CKeyStore &keystore, const CTxDestination& dest)
{
- if (boost::apply_visitor(CKeyStoreIsMineVisitor(&keystore), dest))
- return MINE_SPENDABLE;
- if (keystore.HaveWatchOnly(dest))
- return MINE_WATCH_ONLY;
- return MINE_NO;
+ CScript script;
+ script.SetDestination(dest);
+ return IsMine(keystore, script);
}
isminetype IsMine(const CKeyStore &keystore, const CScript& scriptPubKey)
@@ -1470,7 +1468,7 @@ isminetype IsMine(const CKeyStore &keystore, const CScript& scriptPubKey)
vector<valtype> vSolutions;
txnouttype whichType;
if (!Solver(scriptPubKey, whichType, vSolutions)) {
- if (keystore.HaveWatchOnly(scriptPubKey.GetID()))
+ if (keystore.HaveWatchOnly(scriptPubKey))
return MINE_WATCH_ONLY;
return MINE_NO;
}
@@ -1485,15 +1483,11 @@ isminetype IsMine(const CKeyStore &keystore, const CScript& scriptPubKey)
keyID = CPubKey(vSolutions[0]).GetID();
if (keystore.HaveKey(keyID))
return MINE_SPENDABLE;
- if (keystore.HaveWatchOnly(keyID))
- return MINE_WATCH_ONLY;
break;
case TX_PUBKEYHASH:
keyID = CKeyID(uint160(vSolutions[0]));
if (keystore.HaveKey(keyID))
return MINE_SPENDABLE;
- if (keystore.HaveWatchOnly(keyID))
- return MINE_WATCH_ONLY;
break;
case TX_SCRIPTHASH:
{
@@ -1501,11 +1495,9 @@ isminetype IsMine(const CKeyStore &keystore, const CScript& scriptPubKey)
CScript subscript;
if (keystore.GetCScript(scriptID, subscript)) {
isminetype ret = IsMine(keystore, subscript);
- if (ret)
+ if (ret == MINE_SPENDABLE)
return ret;
}
- if (keystore.HaveWatchOnly(scriptID))
- return MINE_WATCH_ONLY;
break;
}
case TX_MULTISIG:
@@ -1522,7 +1514,7 @@ isminetype IsMine(const CKeyStore &keystore, const CScript& scriptPubKey)
}
}
- if (keystore.HaveWatchOnly(scriptPubKey.GetID()))
+ if (keystore.HaveWatchOnly(scriptPubKey))
return MINE_WATCH_ONLY;
return MINE_NO;
}