@@ -161,6 +161,7 @@ class SigningProvider
161
161
virtual bool GetKeyOrigin (const CKeyID& keyid, KeyOriginInfo& info) const { return false ; }
162
162
virtual bool GetTaprootSpendData (const XOnlyPubKey& output_key, TaprootSpendData& spenddata) const { return false ; }
163
163
virtual bool GetTaprootBuilder (const XOnlyPubKey& output_key, TaprootBuilder& builder) const { return false ; }
164
+ virtual std::vector<CPubKey> GetMuSig2ParticipantPubkeys (const CPubKey& pubkey) const { return {}; }
164
165
165
166
bool GetKeyByXOnly (const XOnlyPubKey& pubkey, CKey& key) const
166
167
{
@@ -204,6 +205,7 @@ class HidingSigningProvider : public SigningProvider
204
205
bool GetKeyOrigin (const CKeyID& keyid, KeyOriginInfo& info) const override ;
205
206
bool GetTaprootSpendData (const XOnlyPubKey& output_key, TaprootSpendData& spenddata) const override ;
206
207
bool GetTaprootBuilder (const XOnlyPubKey& output_key, TaprootBuilder& builder) const override ;
208
+ std::vector<CPubKey> GetMuSig2ParticipantPubkeys (const CPubKey& pubkey) const override ;
207
209
};
208
210
209
211
struct FlatSigningProvider final : public SigningProvider
@@ -213,6 +215,7 @@ struct FlatSigningProvider final : public SigningProvider
213
215
std::map<CKeyID, std::pair<CPubKey, KeyOriginInfo>> origins;
214
216
std::map<CKeyID, CKey> keys;
215
217
std::map<XOnlyPubKey, TaprootBuilder> tr_trees; /* * Map from output key to Taproot tree (which can then make the TaprootSpendData */
218
+ std::map<CPubKey, std::vector<CPubKey>> aggregate_pubkeys; /* * MuSig2 aggregate pubkeys */
216
219
217
220
bool GetCScript (const CScriptID& scriptid, CScript& script) const override ;
218
221
bool GetPubKey (const CKeyID& keyid, CPubKey& pubkey) const override ;
@@ -221,6 +224,7 @@ struct FlatSigningProvider final : public SigningProvider
221
224
bool GetKey (const CKeyID& keyid, CKey& key) const override ;
222
225
bool GetTaprootSpendData (const XOnlyPubKey& output_key, TaprootSpendData& spenddata) const override ;
223
226
bool GetTaprootBuilder (const XOnlyPubKey& output_key, TaprootBuilder& builder) const override ;
227
+ std::vector<CPubKey> GetMuSig2ParticipantPubkeys (const CPubKey& pubkey) const override ;
224
228
225
229
FlatSigningProvider& Merge (FlatSigningProvider&& b) LIFETIMEBOUND;
226
230
};
0 commit comments