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

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,
    CustomError(u32),
}

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 instruction where invalid

InvalidInstructionData

An instruction's data contents was 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 modified lamports

ReadonlyDataModified

Read-only account modified data

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 an account, already borrowed

AccountBorrowOutstanding

Account 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

CustomError(u32)

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 represented as or serialized to a u32 integer.

NOTE: u64 requires special serialization to avoid the loss of precision in JS clients and so is not used for now.

Methods

impl InstructionError[src]

Trait Implementations

impl Clone for InstructionError[src]

impl Debug for InstructionError[src]

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

impl Eq 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]

Auto Trait Implementations

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> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

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

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

impl<T> Same<T> for T

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, 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.