script: add SCRIPT_ERR_TAPSCRIPT_EMPTY_PUBKEY

Empty public keys in tapscript are rejected by consensus rules, independent of SCRIPT_VERIFY_STRICTENC. Add SCRIPT_ERR_TAPSCRIPT_EMPTY_PUBKEY to distinguish this from STRICTENC policy failures currently reported as SCRIPT_ERR_PUBKEYTYPE.
This commit is contained in:
billymcbip
2025-11-27 15:41:10 +01:00
parent 808f1d972b
commit 9d5021a05b
6 changed files with 29 additions and 12 deletions

View File

@@ -365,7 +365,7 @@ static bool EvalChecksigTapscript(const valtype& sig, const valtype& pubkey, Scr
}
}
if (pubkey.size() == 0) {
return set_error(serror, SCRIPT_ERR_PUBKEYTYPE);
return set_error(serror, SCRIPT_ERR_TAPSCRIPT_EMPTY_PUBKEY);
} else if (pubkey.size() == 32) {
if (success && !checker.CheckSchnorrSignature(sig, pubkey, sigversion, execdata, serror)) {
return false; // serror is set