MCPcopy Create free account
hub / github.com/ElementsProject/elements / CreateSig

Function CreateSig

src/script/sign.cpp:129–149  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

127}
128
129static bool CreateSig(const BaseSignatureCreator& creator, SignatureData& sigdata, const SigningProvider& provider, std::vector<unsigned char>& sig_out, const CPubKey& pubkey, const CScript& scriptcode, SigVersion sigversion, unsigned int flags)
130{
131 CKeyID keyid = pubkey.GetID();
132 const auto it = sigdata.signatures.find(keyid);
133 if (it != sigdata.signatures.end()) {
134 sig_out = it->second.second;
135 return true;
136 }
137 KeyOriginInfo info;
138 if (provider.GetKeyOrigin(keyid, info)) {
139 sigdata.misc_pubkeys.emplace(keyid, std::make_pair(pubkey, std::move(info)));
140 }
141 if (creator.CreateSig(provider, sig_out, keyid, scriptcode, sigversion, flags)) {
142 auto i = sigdata.signatures.emplace(keyid, SigPair(pubkey, sig_out));
143 assert(i.second);
144 return true;
145 }
146 // Could not make signature or signature not found, add keyid to missing
147 sigdata.missing_sigs.push_back(keyid);
148 return false;
149}
150
151static 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{

Callers 1

SignStepFunction · 0.85

Calls 6

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

Tested by

no test coverage detected