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