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][+]