Combine the participants' partial signatures into a final MuSig2 aggregate signature.
Declared in <musig.h>
std::optional<std::vector<uint8_t>>
CreateMuSig2AggregateSig(
std::vector<CPubKey> const& participants,
CPubKey const& aggregate_pubkey,
std::vector<std::pair<uint256, bool>> const& tweaks,
uint256 const& sighash,
std::map<CPubKey, std::vector<uint8_t>> const& pubnonces,
std::map<CPubKey, uint256> const& partial_sigs);
The final aggregate signature, or std::nullopt if combining fails.
| Name | Description |
|---|---|
| participants | The participant public keys, in aggregation order. |
| aggregate_pubkey | The aggregate public key of all participants. |
| tweaks | The tweaks to apply to the aggregate key, each with a flag selecting x-only or ordinary tweaking. |
| sighash | The signature hash being signed. |
| pubnonces | The public nonces from all participants, keyed by public key. |
| partial_sigs | The partial signatures from all participants, keyed by public key. |