pub enum TransactionError {
Show 32 variants AccountInUse, AccountLoadedTwice, AccountNotFound, ProgramAccountNotFound, InsufficientFundsForFee, InvalidAccountForFee, AlreadyProcessed, BlockhashNotFound, InstructionError(u8InstructionError), CallChainTooDeep, MissingSignatureForFee, InvalidAccountIndex, SignatureFailure, InvalidProgramForExecution, SanitizeFailure, ClusterMaintenance, AccountBorrowOutstanding, WouldExceedMaxBlockCostLimit, UnsupportedVersion, InvalidWritableAccount, WouldExceedMaxAccountCostLimit, WouldExceedAccountDataBlockLimit, TooManyAccountLocks, AddressLookupTableNotFound, InvalidAddressLookupTableOwner, InvalidAddressLookupTableData, InvalidAddressLookupTableIndex, InvalidRentPayingAccount, WouldExceedMaxVoteCostLimit, WouldExceedAccountDataTotalLimit, DuplicateInstruction(u8), InsufficientFundsForRent { account_index: u8, },
}
Expand description

Reasons a transaction might be rejected.

Variants

AccountInUse

An account is already being processed in another transaction in a way that does not support parallelism

AccountLoadedTwice

A Pubkey appears twice in the transaction’s account_keys. Instructions can reference Pubkeys more than once but the message must contain a list with no duplicate keys

AccountNotFound

Attempt to debit an account but found no record of a prior credit.

ProgramAccountNotFound

Attempt to load a program that does not exist

InsufficientFundsForFee

The from Pubkey does not have sufficient balance to pay the fee to schedule the transaction

InvalidAccountForFee

This account may not be used to pay transaction fees

AlreadyProcessed

The bank has seen this transaction before. This can occur under normal operation when a UDP packet is duplicated, as a user error from a client not updating its recent_blockhash, or as a double-spend attack.

BlockhashNotFound

The bank has not seen the given recent_blockhash or the transaction is too old and the recent_blockhash has been discarded.

InstructionError(u8InstructionError)

An error occurred while processing an instruction. The first element of the tuple indicates the instruction index in which the error occurred.

CallChainTooDeep

Loader call chain is too deep

MissingSignatureForFee

Transaction requires a fee but has no signature present

InvalidAccountIndex

Transaction contains an invalid account reference

SignatureFailure

Transaction did not pass signature verification

InvalidProgramForExecution

This program may not be used for executing instructions

SanitizeFailure

Transaction failed to sanitize accounts offsets correctly implies that account locks are not taken for this TX, and should not be unlocked.

ClusterMaintenance

AccountBorrowOutstanding

Transaction processing left an account with an outstanding borrowed reference

WouldExceedMaxBlockCostLimit

Transaction would exceed max Block Cost Limit

UnsupportedVersion

Transaction version is unsupported

InvalidWritableAccount

Transaction loads a writable account that cannot be written

WouldExceedMaxAccountCostLimit

Transaction would exceed max account limit within the block

WouldExceedAccountDataBlockLimit

Transaction would exceed account data limit within the block

TooManyAccountLocks

Transaction locked too many accounts

AddressLookupTableNotFound

Address lookup table not found

InvalidAddressLookupTableOwner

Attempted to lookup addresses from an account owned by the wrong program

InvalidAddressLookupTableData

Attempted to lookup addresses from an invalid account

InvalidAddressLookupTableIndex

Address table lookup uses an invalid index

InvalidRentPayingAccount

Transaction leaves an account with a lower balance than rent-exempt minimum

WouldExceedMaxVoteCostLimit

Transaction would exceed max Vote Cost Limit

WouldExceedAccountDataTotalLimit

Transaction would exceed total account data limit

DuplicateInstruction(u8)

Transaction contains a duplicate instruction that is not allowed

InsufficientFundsForRent

Fields

account_index: u8

Transaction results in an account without insufficient funds for rent

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
🔬This is a nightly-only experimental API. (provide_any)
Data providers should implement this method to provide all values they are able to provide by using demand. Read more
Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.