| 149 | } |
| 150 | |
| 151 | static bool CreateTaprootScriptSig(const BaseSignatureCreator& creator, SignatureData& sigdata, const SigningProvider& provider, std::vector<unsigned char>& sig_out, const XOnlyPubKey& pubkey, const uint256& leaf_hash, SigVersion sigversion) |
| 152 | { |
| 153 | auto lookup_key = std::make_pair(pubkey, leaf_hash); |
| 154 | auto it = sigdata.taproot_script_sigs.find(lookup_key); |
| 155 | if (it != sigdata.taproot_script_sigs.end()) { |
| 156 | sig_out = it->second; |
| 157 | } |
| 158 | if (creator.CreateSchnorrSig(provider, sig_out, pubkey, &leaf_hash, nullptr, sigversion)) { |
| 159 | sigdata.taproot_script_sigs[lookup_key] = sig_out; |
| 160 | return true; |
| 161 | } |
| 162 | return false; |
| 163 | } |
| 164 | |
| 165 | static bool SignTaprootScript(const SigningProvider& provider, const BaseSignatureCreator& creator, SignatureData& sigdata, int leaf_version, const CScript& script, std::vector<valtype>& result) |
| 166 | { |
no test coverage detected