[][src]Enum solana_sdk::native_program::ProgramError

pub enum ProgramError {
    GenericError,
    InvalidArgument,
    ResultWithNegativeLamports,
    UnbalancedInstruction,
    ModifiedProgramId,
    ExternalAccountLamportSpend,
    ExternalAccountUserdataModified,
    InvalidUserdata,
    UserdataTooSmall,
    AssignOfUnownedAccount,
    CustomError(Vec<u8>),
}

Reasons a program might have rejected an instruction.

Variants

GenericError

The program instruction returned an error

InvalidArgument

The arguments provided to a program instruction where invalid

ResultWithNegativeLamports

An instruction resulted in an account with a negative balance The difference from InsufficientFundsForFee is that the transaction was executed by the contract

UnbalancedInstruction

Program's instruction lamport balance does not equal the balance after the instruction

ModifiedProgramId

Program modified an account's program id

ExternalAccountLamportSpend

Program spent the lamports of an account that doesn't belong to it

ExternalAccountUserdataModified

Program modified the userdata of an account that doesn't belong to it

InvalidUserdata

An account's userdata contents was invalid

UserdataTooSmall

An account's userdata was too small

AssignOfUnownedAccount

SystemInstruction::Assign was attempted on an account unowned by the system program

CustomError(Vec<u8>)

CustomError allows on-chain programs to implement program-specific error types and see them returned by the Solana runtime. A CustomError may be any type that is serialized to a Vec of bytes, max length 32 bytes. Any CustomError Vec greater than this length will be truncated by the runtime.

Trait Implementations

impl PartialEq<ProgramError> for ProgramError[src]

impl Clone for ProgramError[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Eq for ProgramError[src]

impl Display for ProgramError[src]

impl Debug for ProgramError[src]

impl Error for ProgramError[src]

fn description(&self) -> &str
1.0.0
[src]

This method is soft-deprecated. Read more

fn cause(&self) -> Option<&dyn Error>
1.0.0
[src]

Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

The lower-level cause of this error, if any. Read more

fn source(&self) -> Option<&(dyn Error + 'static)>
1.30.0
[src]

The lower-level source of this error, if any. Read more

Auto Trait Implementations

Blanket Implementations

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

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

impl<T> From for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

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

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

The type returned in the event of a conversion error.

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

impl<T> Same for T

type Output = T

Should always be Self