@@ -49,9 +49,9 @@ isminetype IsMineInner(const CKeyStore& keystore, const CScript& scriptPubKey, b
49
49
std::vector<valtype> vSolutions;
50
50
txnouttype whichType;
51
51
if (!Solver (scriptPubKey, whichType, vSolutions)) {
52
- if (keystore.HaveWatchOnly (scriptPubKey))
53
- return ISMINE_WATCH_UNSOLVABLE ;
54
- return ISMINE_NO;
52
+ if (keystore.HaveWatchOnly (scriptPubKey)) {
53
+ return ISMINE_WATCH_ONLY ;
54
+ }
55
55
}
56
56
57
57
CKeyID keyID;
@@ -79,8 +79,9 @@ isminetype IsMineInner(const CKeyStore& keystore, const CScript& scriptPubKey, b
79
79
break ;
80
80
}
81
81
isminetype ret = IsMineInner (keystore, GetScriptForDestination (CKeyID (uint160 (vSolutions[0 ]))), isInvalid, IsMineSigVersion::WITNESS_V0);
82
- if (ret == ISMINE_SPENDABLE || ret == ISMINE_WATCH_SOLVABLE || (ret == ISMINE_NO && isInvalid))
82
+ if (ret == ISMINE_SPENDABLE || ret == ISMINE_WATCH_ONLY || (ret == ISMINE_NO && isInvalid)) {
83
83
return ret;
84
+ }
84
85
break ;
85
86
}
86
87
case TX_PUBKEYHASH:
@@ -101,8 +102,9 @@ isminetype IsMineInner(const CKeyStore& keystore, const CScript& scriptPubKey, b
101
102
CScript subscript;
102
103
if (keystore.GetCScript (scriptID, subscript)) {
103
104
isminetype ret = IsMineInner (keystore, subscript, isInvalid, IsMineSigVersion::P2SH);
104
- if (ret == ISMINE_SPENDABLE || ret == ISMINE_WATCH_SOLVABLE || (ret == ISMINE_NO && isInvalid))
105
+ if (ret == ISMINE_SPENDABLE || ret == ISMINE_WATCH_ONLY || (ret == ISMINE_NO && isInvalid)) {
105
106
return ret;
107
+ }
106
108
}
107
109
break ;
108
110
}
@@ -117,8 +119,9 @@ isminetype IsMineInner(const CKeyStore& keystore, const CScript& scriptPubKey, b
117
119
CScript subscript;
118
120
if (keystore.GetCScript (scriptID, subscript)) {
119
121
isminetype ret = IsMineInner (keystore, subscript, isInvalid, IsMineSigVersion::WITNESS_V0);
120
- if (ret == ISMINE_SPENDABLE || ret == ISMINE_WATCH_SOLVABLE || (ret == ISMINE_NO && isInvalid))
122
+ if (ret == ISMINE_SPENDABLE || ret == ISMINE_WATCH_ONLY || (ret == ISMINE_NO && isInvalid)) {
121
123
return ret;
124
+ }
122
125
}
123
126
break ;
124
127
}
@@ -142,16 +145,15 @@ isminetype IsMineInner(const CKeyStore& keystore, const CScript& scriptPubKey, b
142
145
}
143
146
}
144
147
}
145
- if (HaveKeys (keys, keystore))
148
+ if (HaveKeys (keys, keystore)) {
146
149
return ISMINE_SPENDABLE;
150
+ }
147
151
break ;
148
152
}
149
153
}
150
154
151
155
if (keystore.HaveWatchOnly (scriptPubKey)) {
152
- // TODO: This could be optimized some by doing some work after the above solver
153
- SignatureData sigs;
154
- return ProduceSignature (keystore, DUMMY_SIGNATURE_CREATOR, scriptPubKey, sigs) ? ISMINE_WATCH_SOLVABLE : ISMINE_WATCH_UNSOLVABLE;
156
+ return ISMINE_WATCH_ONLY;
155
157
}
156
158
return ISMINE_NO;
157
159
}
0 commit comments