@@ -575,6 +575,7 @@ class AddressDescriptor final : public DescriptorImpl
575
575
default : return nullopt;
576
576
}
577
577
}
578
+ bool IsSingleType () const final { return true ; }
578
579
};
579
580
580
581
/* * A parsed raw(H) descriptor. */
@@ -602,6 +603,7 @@ class RawDescriptor final : public DescriptorImpl
602
603
default : return nullopt;
603
604
}
604
605
}
606
+ bool IsSingleType () const final { return true ; }
605
607
};
606
608
607
609
/* * A parsed pk(P) descriptor. */
@@ -611,6 +613,7 @@ class PKDescriptor final : public DescriptorImpl
611
613
std::vector<CScript> MakeScripts (const std::vector<CPubKey>& keys, const CScript*, FlatSigningProvider&) const override { return Vector (GetScriptForRawPubKey (keys[0 ])); }
612
614
public:
613
615
PKDescriptor (std::unique_ptr<PubkeyProvider> prov) : DescriptorImpl(Vector(std::move(prov)), {}, " pk" ) {}
616
+ bool IsSingleType () const final { return true ; }
614
617
};
615
618
616
619
/* * A parsed pkh(P) descriptor. */
@@ -626,6 +629,7 @@ class PKHDescriptor final : public DescriptorImpl
626
629
public:
627
630
PKHDescriptor (std::unique_ptr<PubkeyProvider> prov) : DescriptorImpl(Vector(std::move(prov)), {}, " pkh" ) {}
628
631
Optional<OutputType> GetOutputType () const override { return OutputType::LEGACY; }
632
+ bool IsSingleType () const final { return true ; }
629
633
};
630
634
631
635
/* * A parsed wpkh(P) descriptor. */
@@ -641,6 +645,7 @@ class WPKHDescriptor final : public DescriptorImpl
641
645
public:
642
646
WPKHDescriptor (std::unique_ptr<PubkeyProvider> prov) : DescriptorImpl(Vector(std::move(prov)), {}, " wpkh" ) {}
643
647
Optional<OutputType> GetOutputType () const override { return OutputType::BECH32; }
648
+ bool IsSingleType () const final { return true ; }
644
649
};
645
650
646
651
/* * A parsed combo(P) descriptor. */
@@ -664,6 +669,7 @@ class ComboDescriptor final : public DescriptorImpl
664
669
}
665
670
public:
666
671
ComboDescriptor (std::unique_ptr<PubkeyProvider> prov) : DescriptorImpl(Vector(std::move(prov)), {}, " combo" ) {}
672
+ bool IsSingleType () const final { return false ; }
667
673
};
668
674
669
675
/* * A parsed multi(...) or sortedmulti(...) descriptor */
@@ -683,6 +689,7 @@ class MultisigDescriptor final : public DescriptorImpl
683
689
}
684
690
public:
685
691
MultisigDescriptor (int threshold, std::vector<std::unique_ptr<PubkeyProvider>> providers, bool sorted = false ) : DescriptorImpl(std::move(providers), {}, sorted ? " sortedmulti" : " multi" ), m_threshold(threshold), m_sorted(sorted) {}
692
+ bool IsSingleType () const final { return true ; }
686
693
};
687
694
688
695
/* * A parsed sh(...) descriptor. */
@@ -699,6 +706,7 @@ class SHDescriptor final : public DescriptorImpl
699
706
if (m_subdescriptor_arg->GetOutputType () == OutputType::BECH32) return OutputType::P2SH_SEGWIT;
700
707
return OutputType::LEGACY;
701
708
}
709
+ bool IsSingleType () const final { return true ; }
702
710
};
703
711
704
712
/* * A parsed wsh(...) descriptor. */
@@ -709,6 +717,7 @@ class WSHDescriptor final : public DescriptorImpl
709
717
public:
710
718
WSHDescriptor (std::unique_ptr<DescriptorImpl> desc) : DescriptorImpl({}, std::move(desc), " wsh" ) {}
711
719
Optional<OutputType> GetOutputType () const override { return OutputType::BECH32; }
720
+ bool IsSingleType () const final { return true ; }
712
721
};
713
722
714
723
// //////////////////////////////////////////////////////////////////////////
0 commit comments