Error codes returned by the Bitcoin Script interpreter.
Synopsis
Declared in <script/script_error.h>
enum ScriptError_t;
Members
Name |
Description |
|
No error; the script evaluated successfully. |
|
An unspecified or unclassified evaluation error occurred. |
|
The script completed but left a false value on the top of the stack. |
|
Execution reached an OP_RETURN opcode, which marks the output as unspendable. |
|
A script number operand was out of range or not minimally encoded. |
|
The script exceeded the maximum allowed byte size. |
|
A push operation exceeded the maximum allowed element size. |
|
The script exceeded the maximum number of non‐push opcodes. |
|
The combined stack and altstack exceeded the maximum allowed size. |
|
A CHECKMULTISIG operation specified an invalid number of signatures. |
|
A CHECKMULTISIG operation specified an invalid number of public keys. |
|
An OP_VERIFY operation failed because the top stack value was false. |
|
An OP_EQUALVERIFY operation failed because the two values were not equal. |
|
An OP_CHECKMULTISIGVERIFY operation failed signature verification. |
|
An OP_CHECKSIGVERIFY operation failed signature verification. |
|
An OP_NUMEQUALVERIFY operation failed because the two numbers were not equal. |
|
The script contained an unknown or invalid opcode. |
|
The script used an opcode that has been disabled. |
|
An operation was attempted on a stack with too few elements. |
|
An operation was attempted on an empty altstack. |
|
The script had mismatched OP_IF/OP_ELSE/OP_ENDIF conditionals. |
|
A locktime value was negative. |
|
The transaction's locktime or sequence did not satisfy the required value. |
|
A signature used an invalid or undefined sighash type. |
|
A signature was not a valid strict DER encoding. |
|
A data push did not use the minimal possible encoding. |
|
A scriptSig contained non‐push operations where only pushes are allowed. |
|
A signature had a high S value, violating the low‐S requirement. |
|
The extra CHECKMULTISIG dummy argument was not an empty byte vector. |
|
A public key was not encoded in the required (compressed or uncompressed) form. |
|
The stack was not clean (held more than one element) after evaluation. |
|
An OP_IF/OP_NOTIF argument was not a minimal true/false value. |
|
A failed signature check did not provide an empty signature. |
|
The script used an upgradable NOP that policy discourages. |
|
The script used a witness program version reserved for future upgrades. |
|
The script used a Taproot leaf version reserved for future upgrades. |
|
The Tapscript used an OP_SUCCESS opcode reserved for future upgrades. |
|
The script used a public key type reserved for future upgrades. |
|
The witness program had a length invalid for its version. |
|
The witness for a witness program was empty. |
|
The witness did not match the committed witness program. |
|
A native witness program had a non‐empty scriptSig. |
|
A P2SH‐wrapped witness program had extra scriptSig data. |
|
Witness data was provided for a non‐witness input. |
|
A witness public key was not compressed as required. |
|
A Schnorr signature had an invalid length. |
|
A Schnorr signature used an invalid sighash type. |
|
A Schnorr signature failed verification. |
|
A Taproot control block had an invalid size. |
|
The Tapscript exceeded its signature validation weight budget. |
|
OP_CHECKMULTISIG(VERIFY) was used in Tapscript, where it is disallowed. |
|
A Tapscript OP_IF/OP_NOTIF argument was not a minimal true/false value. |
|
A Tapscript signature check used an empty public key. |
|
OP_CODESEPARATOR was used where it is not permitted. |
|
A signature was found in the scriptCode subject to FindAndDelete. |
|
Sentinel value equal to the number of defined error codes. |
Created with MrDocs