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

Function EvalChecksig

src/script/interpreter.cpp:402–415  ·  view source on GitHub ↗

Helper for OP_CHECKSIG, OP_CHECKSIGVERIFY, and (in Tapscript) OP_CHECKSIGADD. * * A return value of false means the script fails entirely. When true is returned, the * success variable indicates whether the signature check itself succeeded. */

Source from the content-addressed store, hash-verified

400 * success variable indicates whether the signature check itself succeeded.
401 */
402static bool EvalChecksig(const valtype& sig, const valtype& pubkey, CScript::const_iterator pbegincodehash, CScript::const_iterator pend, ScriptExecutionData& execdata, script_verify_flags flags, const BaseSignatureChecker& checker, SigVersion sigversion, ScriptError* serror, bool& success)
403{
404 switch (sigversion) {
405 case SigVersion::BASE:
406 case SigVersion::WITNESS_V0:
407 return EvalChecksigPreTapscript(sig, pubkey, pbegincodehash, pend, flags, checker, sigversion, serror, success);
408 case SigVersion::TAPSCRIPT:
409 return EvalChecksigTapscript(sig, pubkey, execdata, flags, checker, sigversion, serror, success);
410 case SigVersion::TAPROOT:
411 // Key path spending in Taproot has no script, so this is unreachable.
412 break;
413 }
414 assert(false);
415}
416
417bool EvalScript(std::vector<std::vector<unsigned char> >& stack, const CScript& script, script_verify_flags flags, const BaseSignatureChecker& checker, SigVersion sigversion, ScriptExecutionData& execdata, ScriptError* serror)
418{

Callers 1

EvalScriptFunction · 0.85

Calls 2

EvalChecksigPreTapscriptFunction · 0.85
EvalChecksigTapscriptFunction · 0.85

Tested by

no test coverage detected