@@ -211,6 +211,7 @@ class AddressDescriptor final : public Descriptor
211
211
AddressDescriptor (CTxDestination destination) : m_destination(std::move(destination)) {}
212
212
213
213
bool IsRange () const override { return false ; }
214
+ bool IsSolvable () const override { return false ; }
214
215
std::string ToString () const override { return " addr(" + EncodeDestination (m_destination) + " )" ; }
215
216
bool ToPrivateString (const SigningProvider& arg, std::string& out) const override { out = ToString (); return true ; }
216
217
bool Expand (int pos, const SigningProvider& arg, std::vector<CScript>& output_scripts, FlatSigningProvider& out) const override
@@ -229,6 +230,7 @@ class RawDescriptor final : public Descriptor
229
230
RawDescriptor (CScript script) : m_script(std::move(script)) {}
230
231
231
232
bool IsRange () const override { return false ; }
233
+ bool IsSolvable () const override { return false ; }
232
234
std::string ToString () const override { return " raw(" + HexStr (m_script.begin (), m_script.end ()) + " )" ; }
233
235
bool ToPrivateString (const SigningProvider& arg, std::string& out) const override { out = ToString (); return true ; }
234
236
bool Expand (int pos, const SigningProvider& arg, std::vector<CScript>& output_scripts, FlatSigningProvider& out) const override
@@ -249,6 +251,7 @@ class SingleKeyDescriptor final : public Descriptor
249
251
SingleKeyDescriptor (std::unique_ptr<PubkeyProvider> prov, const std::function<CScript(const CPubKey&)>& fn, const std::string& name) : m_script_fn(fn), m_fn_name(name), m_provider(std::move(prov)) {}
250
252
251
253
bool IsRange () const override { return m_provider->IsRange (); }
254
+ bool IsSolvable () const override { return true ; }
252
255
std::string ToString () const override { return m_fn_name + " (" + m_provider->ToString () + " )" ; }
253
256
bool ToPrivateString (const SigningProvider& arg, std::string& out) const override
254
257
{
@@ -290,6 +293,8 @@ class MultisigDescriptor : public Descriptor
290
293
return false ;
291
294
}
292
295
296
+ bool IsSolvable () const override { return true ; }
297
+
293
298
std::string ToString () const override
294
299
{
295
300
std::string ret = strprintf (" multi(%i" , m_threshold);
@@ -343,6 +348,7 @@ class ConvertorDescriptor : public Descriptor
343
348
ConvertorDescriptor (std::unique_ptr<Descriptor> descriptor, const std::function<CScript(const CScript&)>& fn, const std::string& name) : m_convert_fn(fn), m_fn_name(name), m_descriptor(std::move(descriptor)) {}
344
349
345
350
bool IsRange () const override { return m_descriptor->IsRange (); }
351
+ bool IsSolvable () const override { return m_descriptor->IsSolvable (); }
346
352
std::string ToString () const override { return m_fn_name + " (" + m_descriptor->ToString () + " )" ; }
347
353
bool ToPrivateString (const SigningProvider& arg, std::string& out) const override
348
354
{
@@ -377,6 +383,7 @@ class ComboDescriptor final : public Descriptor
377
383
ComboDescriptor (std::unique_ptr<PubkeyProvider> provider) : m_provider(std::move(provider)) {}
378
384
379
385
bool IsRange () const override { return m_provider->IsRange (); }
386
+ bool IsSolvable () const override { return true ; }
380
387
std::string ToString () const override { return " combo(" + m_provider->ToString () + " )" ; }
381
388
bool ToPrivateString (const SigningProvider& arg, std::string& out) const override
382
389
{
0 commit comments