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. */
| 400 | * success variable indicates whether the signature check itself succeeded. |
| 401 | */ |
| 402 | static 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 | |
| 417 | bool 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 | { |
no test coverage detected