Enum solana_sdk::instruction::InstructionError[][src]

pub enum InstructionError {
    GenericError,
    InvalidArgument,
    InvalidInstructionData,
    InvalidAccountData,
    AccountDataTooSmall,
    InsufficientFunds,
    IncorrectProgramId,
    MissingRequiredSignature,
    AccountAlreadyInitialized,
    UninitializedAccount,
    UnbalancedInstruction,
    ModifiedProgramId,
    ExternalAccountLamportSpend,
    ExternalAccountDataModified,
    ReadonlyLamportChange,
    ReadonlyDataModified,
    DuplicateAccountIndex,
    ExecutableModified,
    RentEpochModified,
    NotEnoughAccountKeys,
    AccountDataSizeChanged,
    AccountNotExecutable,
    AccountBorrowFailed,
    AccountBorrowOutstanding,
    DuplicateAccountOutOfSync,
    Custom(u32),
    InvalidError,
    ExecutableDataModified,
    ExecutableLamportChange,
    ExecutableAccountNotRentExempt,
    UnsupportedProgramId,
    CallDepth,
    MissingAccount,
    ReentrancyNotAllowed,
    MaxSeedLengthExceeded,
    InvalidSeeds,
    InvalidRealloc,
    ComputationalBudgetExceeded,
    PrivilegeEscalation,
    ProgramEnvironmentSetupFailure,
    ProgramFailedToComplete,
    ProgramFailedToCompile,
    Immutable,
    IncorrectAuthority,
    BorshIoError(String),
    AccountNotRentExempt,
    InvalidAccountOwner,
}

Reasons the runtime might have rejected an instruction.

Variants

GenericError

Deprecated! Use CustomError instead! The program instruction returned an error

InvalidArgument

The arguments provided to a program were invalid

InvalidInstructionData

An instruction’s data contents were invalid

InvalidAccountData

An account’s data contents was invalid

AccountDataTooSmall

An account’s data was too small

InsufficientFunds

An account’s balance was too small to complete the instruction

IncorrectProgramId

The account did not have the expected program id

MissingRequiredSignature

A signature was required but not found

AccountAlreadyInitialized

An initialize instruction was sent to an account that has already been initialized.

UninitializedAccount

An attempt to operate on an account that hasn’t been initialized.

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

ExternalAccountDataModified

Program modified the data of an account that doesn’t belong to it

ReadonlyLamportChange

Read-only account’s lamports modified

ReadonlyDataModified

Read-only account’s data was modified

DuplicateAccountIndex

An account was referenced more than once in a single instruction

ExecutableModified

Executable bit on account changed, but shouldn’t have

RentEpochModified

Rent_epoch account changed, but shouldn’t have

NotEnoughAccountKeys

The instruction expected additional account keys

AccountDataSizeChanged

A non-system program changed the size of the account data

AccountNotExecutable

The instruction expected an executable account

AccountBorrowFailed

Failed to borrow a reference to account data, already borrowed

AccountBorrowOutstanding

Account data has an outstanding reference after a program’s execution

DuplicateAccountOutOfSync

The same account was multiply passed to an on-chain program’s entrypoint, but the program modified them differently. A program can only modify one instance of the account because the runtime cannot determine which changes to pick or how to merge them if both are modified

Custom(u32)

Allows on-chain programs to implement program-specific error types and see them returned by the Solana runtime. A program-specific error may be any type that is represented as or serialized to a u32 integer.

InvalidError

The return value from the program was invalid. Valid errors are either a defined builtin error value or a user-defined error in the lower 32 bits.

ExecutableDataModified

Executable account’s data was modified

ExecutableLamportChange

Executable account’s lamports modified

ExecutableAccountNotRentExempt

Executable accounts must be rent exempt

UnsupportedProgramId

Unsupported program id

CallDepth

Cross-program invocation call depth too deep

MissingAccount

An account required by the instruction is missing

ReentrancyNotAllowed

Cross-program invocation reentrancy not allowed for this instruction

MaxSeedLengthExceeded

Length of the seed is too long for address generation

InvalidSeeds

Provided seeds do not result in a valid address

InvalidRealloc

Failed to reallocate account data of this length

ComputationalBudgetExceeded

Computational budget exceeded

PrivilegeEscalation

Cross-program invocation with unauthorized signer or writable account

ProgramEnvironmentSetupFailure
ProgramFailedToComplete
ProgramFailedToCompile
Immutable
IncorrectAuthority
BorshIoError(String)
AccountNotRentExempt
InvalidAccountOwner

Trait Implementations

impl Clone for InstructionError[src]

impl Debug for InstructionError[src]

impl<'de> Deserialize<'de> for InstructionError[src]

impl Display for InstructionError[src]

impl Eq for InstructionError[src]

impl Error for InstructionError[src]

impl<T> From<T> for InstructionError where
    T: ToPrimitive
[src]

impl PartialEq<InstructionError> for InstructionError[src]

impl Serialize for InstructionError[src]

impl StructuralEq for InstructionError[src]

impl StructuralPartialEq for InstructionError[src]

impl TryFrom<InstructionError> for ProgramError[src]

type Error = InstructionError

The type returned in the event of a conversion error.

Auto Trait Implementations

impl RefUnwindSafe for InstructionError

impl Send for InstructionError

impl Sync for InstructionError

impl Unpin for InstructionError

impl UnwindSafe for InstructionError

Blanket Implementations

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

impl<T> AsErrorSource for T where
    T: 'static + Error
[src]

impl<T> AsFail for T where
    T: Fail
[src]

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

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

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<E> Fail for E where
    E: 'static + Error + Send + Sync
[src]

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

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

impl<T> MaybeDebug for T where
    T: Debug
[src]

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

type Output = T

Should always be Self

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

type Owned = T

The resulting type after obtaining ownership.

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.

impl<T> Typeable for T where
    T: Any

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]