| 543 | }; |
| 544 | |
| 545 | static bool SignTaprootScript(const SigningProvider& provider, const BaseSignatureCreator& creator, SignatureData& sigdata, int leaf_version, std::span<const unsigned char> script_bytes, std::vector<valtype>& result) |
| 546 | { |
| 547 | // Only BIP342 tapscript signing is supported for now. |
| 548 | if (leaf_version != TAPROOT_LEAF_TAPSCRIPT) return false; |
| 549 | |
| 550 | uint256 leaf_hash = ComputeTapleafHash(leaf_version, script_bytes); |
| 551 | CScript script = CScript(script_bytes.begin(), script_bytes.end()); |
| 552 | |
| 553 | TapSatisfier ms_satisfier{provider, sigdata, creator, script, leaf_hash}; |
| 554 | const auto ms = miniscript::FromScript(script, ms_satisfier); |
| 555 | return ms && ms->Satisfy(ms_satisfier, result) == miniscript::Availability::YES; |
| 556 | } |
| 557 | |
| 558 | static bool SignTaproot(const SigningProvider& provider, const BaseSignatureCreator& creator, const WitnessV1Taproot& output, SignatureData& sigdata, std::vector<valtype>& result) |
| 559 | { |
no test coverage detected