[][src]Enum miniscript::Error

pub enum Error {
    InvalidOpcode(All),
    NonMinimalVerify(Token),
    InvalidPush(Vec<u8>),
    Script(Error),
    CmsTooManyKeys(u32),
    Unprintable(u8),
    ExpectedChar(char),
    UnexpectedStart,
    Unexpected(String),
    MultiColon(String),
    MultiAt(String),
    AtOutsideOr(String),
    NonCanonicalTrue,
    NonCanonicalFalse,
    LikelyFalse,
    UnknownWrapper(char),
    NonTopLevel(String),
    Trailing(String),
    BadPubkey(Error),
    MissingHash(Hash),
    MissingSig(PublicKey),
    RelativeLocktimeNotMet(u32),
    AbsoluteLocktimeNotMet(u32),
    CouldNotSatisfy,
    TypeCheck(String),
    BadDescriptor,
    Secp(Error),
    PolicyError(PolicyError),
    InterpreterError(InterpreterError),
    ContextError(ScriptContextError),
    BadScriptSig,
    NonEmptyWitness,
    NonEmptyScriptSig,
    IncorrectPubkeyHash,
    IncorrectScriptHash,
    MaxRecursiveDepthExceeded,
    ScriptSizeTooLarge,
}

Miniscript

Variants

InvalidOpcode(All)

Opcode appeared which is not part of the script subset

NonMinimalVerify(Token)

Some opcode occurred followed by OP_VERIFY when it had a VERIFY version that should have been used instead

InvalidPush(Vec<u8>)

Push was illegal in some context

Script(Error)

rust-bitcoin script error

CmsTooManyKeys(u32)

A CHECKMULTISIG opcode was preceded by a number > 20

Unprintable(u8)

Encountered unprintable character in descriptor

ExpectedChar(char)

expected character while parsing descriptor; didn't find one

UnexpectedStart

While parsing backward, hit beginning of script

Unexpected(String)

Got something we were not expecting

MultiColon(String)

Name of a fragment contained : multiple times

MultiAt(String)

Name of a fragment contained @ multiple times

AtOutsideOr(String)

Name of a fragment contained @ but we were not parsing an OR

NonCanonicalTrue

Fragment was an and_v(_, true) which should be written as t:

NonCanonicalFalse

Fragment was an or_i(_, false) or or_i(false,_) which should be written as u: or l:

LikelyFalse

Encountered a l:0 which is syntactically equal to u:0 except stupid

UnknownWrapper(char)

Encountered a wrapping character that we don't recognize

NonTopLevel(String)

Parsed a miniscript and the result was not of type T

Trailing(String)

Parsed a miniscript but there were more script opcodes after it

BadPubkey(Error)

Failed to parse a push as a public key

MissingHash(Hash)

Could not satisfy a script (fragment) because of a missing hash preimage

MissingSig(PublicKey)

Could not satisfy a script (fragment) because of a missing signature

RelativeLocktimeNotMet(u32)

Could not satisfy, relative locktime not met

AbsoluteLocktimeNotMet(u32)

Could not satisfy, absolute locktime not met

CouldNotSatisfy

General failure to satisfy

TypeCheck(String)

Typechecking failed

BadDescriptor

General error in creating descriptor

Secp(Error)

Forward-secp related errors

PolicyError(PolicyError)

Errors related to policy

InterpreterError(InterpreterError)

Interpreter related errors

ContextError(ScriptContextError)

Forward script context related errors

BadScriptSig

Bad Script Sig. As per standardness rules, only pushes are allowed in scriptSig. This error is invoked when op_codes are pushed onto the stack As per the current implementation, pushing an integer apart from 0 or 1 will also trigger this. This is because, Miniscript only expects push bytes for pk, sig, preimage etc or 1 or 0 for StackElement::Satisfied or StackElement::Dissatisfied

NonEmptyWitness

Witness must be empty for pre-segwit transactions

NonEmptyScriptSig

ScriptSig must be empty for pure segwit transactions

IncorrectPubkeyHash

Incorrect Script pubkey Hash for the descriptor. This is used for both PkH and Wpkh descriptors

IncorrectScriptHash

Incorrect Script pubkey Hash for the descriptor. This is used for both Sh and Wsh descriptors

MaxRecursiveDepthExceeded

Recursion depth exceeded when parsing policy/miniscript from string

ScriptSizeTooLarge

Script size too large

Trait Implementations

impl Debug for Error[src]

impl Display for Error[src]

impl Error for Error[src]

Auto Trait Implementations

impl RefUnwindSafe for Error

impl Send for Error

impl Sync for Error

impl Unpin for Error

impl UnwindSafe for Error

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.