Enum miniscript::interpreter::Error
source · pub enum Error {
Show 39 variants
AbsoluteLockTimeNotMet(LockTime),
AbsoluteLockTimeComparisonInvalid(LockTime, LockTime),
CannotInferTrDescriptors,
ControlBlockParse(TaprootError),
ControlBlockVerificationError,
CouldNotEvaluate,
EcdsaSig(Error),
ExpectedPush,
HashPreimageLengthMismatch,
IncorrectPubkeyHash,
IncorrectScriptHash,
IncorrectWPubkeyHash,
IncorrectWScriptHash,
InsufficientSignaturesMultiSig,
InvalidSchnorrSighashType(Vec<u8>),
InvalidEcdsaSignature(PublicKey),
InvalidSchnorrSignature(XOnlyPublicKey),
NonStandardSighash(Vec<u8>),
Miniscript(Error),
MissingExtraZeroMultiSig,
MultiSigEvaluationError,
NonEmptyWitness,
NonEmptyScriptSig,
PkEvaluationError(PkEvalErrInner),
PkHashVerifyFail(Hash),
PubkeyParseError,
XOnlyPublicKeyParseError,
RelativeLockTimeNotMet(LockTime),
RelativeLockTimeDisabled(LockTime),
Secp(Error),
ScriptSatisfactionError,
SchnorrSig(SigFromSliceError),
SighashError(InvalidSighashTypeError),
TapAnnexUnsupported,
UncompressedPubkey,
UnexpectedStackBoolean,
UnexpectedStackEnd,
UnexpectedStackElementPush,
VerifyFailed,
}
Expand description
Detailed Error type for Interpreter
Variants§
AbsoluteLockTimeNotMet(LockTime)
Could not satisfy, absolute locktime not met
AbsoluteLockTimeComparisonInvalid(LockTime, LockTime)
Could not satisfy, lock time values are different units
CannotInferTrDescriptors
Cannot Infer a taproot descriptor Key spends cannot infer the internal key of the descriptor Inferring script spends is possible, but is hidden nodes are currently not supported in descriptor spec
ControlBlockParse(TaprootError)
Error parsing taproot control block
ControlBlockVerificationError
Tap control block(merkle proofs + tweak) verification error
CouldNotEvaluate
General Interpreter error.
EcdsaSig(Error)
ECDSA Signature related error
ExpectedPush
We expected a push (including a OP_1
but no other numeric pushes)
HashPreimageLengthMismatch
The preimage to the hash function must be exactly 32 bytes.
IncorrectPubkeyHash
Incorrect scriptPubKey (pay-to-pubkeyhash) for the provided public key
IncorrectScriptHash
Incorrect scriptPubKey for the provided redeem script
IncorrectWPubkeyHash
Incorrect scriptPubKey (pay-to-witness-pubkeyhash) for the provided public key
IncorrectWScriptHash
Incorrect scriptPubKey for the provided witness script
InsufficientSignaturesMultiSig
MultiSig missing at least 1
witness elements out of k + 1
required
InvalidSchnorrSighashType(Vec<u8>)
Invalid Sighash type
InvalidEcdsaSignature(PublicKey)
ecdsa Signature failed to verify
InvalidSchnorrSignature(XOnlyPublicKey)
Signature failed to verify
NonStandardSighash(Vec<u8>)
Last byte of this signature isn’t a standard sighash type
Miniscript(Error)
Miniscript error
MissingExtraZeroMultiSig
MultiSig requires 1 extra zero element apart from the k
signatures
MultiSigEvaluationError
Script abortion because of incorrect dissatisfaction for multisig. Any input witness apart from sat(0 sig …) or nsat(0 0 ..) leads to this error. This is network standardness assumption and miniscript only supports standard scripts
NonEmptyWitness
Witness must be empty for pre-segwit transactions
NonEmptyScriptSig
ScriptSig must be empty for pure segwit transactions
PkEvaluationError(PkEvalErrInner)
Script abortion because of incorrect dissatisfaction for Checksig. Any input witness apart from sat(sig) or nsat(0) leads to this error. This is network standardness assumption and miniscript only supports standard scripts
PkHashVerifyFail(Hash)
The Public Key hash check for the given pubkey. This occurs in PkH
node when the given key does not match to Hash in script.
PubkeyParseError
Parse Error while parsing a stack::Element::Push
as a Pubkey. Both
33 byte and 65 bytes are supported.
XOnlyPublicKeyParseError
Parse Error while parsing a stack::Element::Push
as a XOnlyPublicKey (32 bytes)
RelativeLockTimeNotMet(LockTime)
Could not satisfy, relative locktime not met
RelativeLockTimeDisabled(LockTime)
Could not satisfy, the sequence number on the tx input had the disable flag set.
Secp(Error)
Forward-secp related errors
ScriptSatisfactionError
Miniscript requires the entire top level script to be satisfied.
SchnorrSig(SigFromSliceError)
Schnorr Signature error
SighashError(InvalidSighashTypeError)
Errors in signature hash calculations
TapAnnexUnsupported
Taproot Annex Unsupported
UncompressedPubkey
An uncompressed public key was encountered in a context where it is disallowed (e.g. in a Segwit script or p2wpkh output)
UnexpectedStackBoolean
Got stack::Element::Satisfied
or stack::Element::Dissatisfied
when the
interpreter was expecting stack::Element::Push
UnexpectedStackEnd
Unexpected Stack End, caused by popping extra elements from stack
UnexpectedStackElementPush
Unexpected Stack Push stack::Element::Push
element when the interpreter
was expecting a stack boolean stack::Element::Satisfied
or
stack::Element::Dissatisfied
VerifyFailed
Verify expects stack top element exactly to be stack::Element::Satisfied
.
This error is raised even if the stack top is stack::Element::Push
.