MCPcopy Create free account
hub / github.com/bitcoin/bitcoin / SignTaprootScript

Function SignTaprootScript

src/script/sign.cpp:545–556  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

543};
544
545static 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
558static bool SignTaproot(const SigningProvider& provider, const BaseSignatureCreator& creator, const WitnessV1Taproot& output, SignatureData& sigdata, std::vector<valtype>& result)
559{

Callers 1

SignTaprootFunction · 0.85

Calls 6

ComputeTapleafHashFunction · 0.85
FromScriptFunction · 0.85
SatisfyMethod · 0.80
CScriptClass · 0.70
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected