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

Function CreateSig

src/script/sign.cpp:260–280  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

258}
259
260static bool CreateSig(const BaseSignatureCreator& creator, SignatureData& sigdata, const SigningProvider& provider, std::vector<unsigned char>& sig_out, const CPubKey& pubkey, const CScript& scriptcode, SigVersion sigversion)
261{
262 CKeyID keyid = pubkey.GetID();
263 const auto it = sigdata.signatures.find(keyid);
264 if (it != sigdata.signatures.end()) {
265 sig_out = it->second.second;
266 return true;
267 }
268 KeyOriginInfo info;
269 if (provider.GetKeyOrigin(keyid, info)) {
270 sigdata.misc_pubkeys.emplace(keyid, std::make_pair(pubkey, std::move(info)));
271 }
272 if (creator.CreateSig(provider, sig_out, keyid, scriptcode, sigversion)) {
273 auto i = sigdata.signatures.emplace(keyid, SigPair(pubkey, sig_out));
274 assert(i.second);
275 return true;
276 }
277 // Could not make signature or signature not found, add keyid to missing
278 sigdata.missing_sigs.push_back(keyid);
279 return false;
280}
281
282static bool SignMuSig2(const BaseSignatureCreator& creator, SignatureData& sigdata, const SigningProvider& provider, std::vector<unsigned char>& sig_out, const XOnlyPubKey& script_pubkey, const uint256* merkle_root, const uint256* leaf_hash, SigVersion sigversion)
283{

Callers 2

SignMethod · 0.85
SignStepFunction · 0.85

Calls 7

findMethod · 0.80
emplaceMethod · 0.80
GetIDMethod · 0.45
endMethod · 0.45
GetKeyOriginMethod · 0.45
CreateSigMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected