Enum InstructionResult
#[repr(u8)]pub enum InstructionResult {
Show 41 variants
Continue = 0,
Stop = 1,
Return = 2,
SelfDestruct = 3,
ReturnContract = 4,
Revert = 16,
CallTooDeep = 17,
OutOfFunds = 18,
CreateInitCodeStartingEF00 = 19,
InvalidEOFInitCode = 20,
InvalidExtDelegateCallTarget = 21,
CallOrCreate = 32,
OutOfGas = 80,
MemoryOOG = 81,
MemoryLimitOOG = 82,
PrecompileOOG = 83,
InvalidOperandOOG = 84,
ReentrancySentryOOG = 85,
OpcodeNotFound = 86,
CallNotAllowedInsideStatic = 87,
StateChangeDuringStaticCall = 88,
InvalidFEOpcode = 89,
InvalidJump = 90,
NotActivated = 91,
StackUnderflow = 92,
StackOverflow = 93,
OutOfOffset = 94,
CreateCollision = 95,
OverflowPayment = 96,
PrecompileError = 97,
NonceOverflow = 98,
CreateContractSizeLimit = 99,
CreateContractStartingWithEF = 100,
CreateInitCodeSizeLimit = 101,
FatalExternalError = 102,
ReturnContractInNotInitEOF = 103,
EOFOpcodeDisabledInLegacy = 104,
SubRoutineStackOverflow = 105,
EofAuxDataOverflow = 106,
EofAuxDataTooSmall = 107,
InvalidEXTCALLTarget = 108,
}Variants§
Continue = 0
Execution should continue to the next one.
Stop = 1
Encountered a STOP opcode
Return = 2
Return from the current call.
SelfDestruct = 3
Self-destruct the current contract.
ReturnContract = 4
Return a contract (used in contract creation).
Revert = 16
Revert the transaction.
CallTooDeep = 17
Exceeded maximum call depth.
OutOfFunds = 18
Insufficient funds for transfer.
CreateInitCodeStartingEF00 = 19
Revert if CREATE/CREATE2 starts with 0xEF00.
InvalidEOFInitCode = 20
Invalid EVM Object Format (EOF) init code.
InvalidExtDelegateCallTarget = 21
ExtDelegateCall calling a non EOF contract.
CallOrCreate = 32
Indicates a call or contract creation.
OutOfGas = 80
Out of gas error.
MemoryOOG = 81
Out of gas error encountered during memory expansion.
MemoryLimitOOG = 82
The memory limit of the EVM has been exceeded.
PrecompileOOG = 83
Out of gas error encountered during the execution of a precompiled contract.
InvalidOperandOOG = 84
Out of gas error encountered while calling an invalid operand.
ReentrancySentryOOG = 85
Out of gas error encountered while checking for reentrancy sentry.
OpcodeNotFound = 86
Unknown or invalid opcode.
CallNotAllowedInsideStatic = 87
Invalid CALL with value transfer in static context.
StateChangeDuringStaticCall = 88
Invalid state modification in static call.
InvalidFEOpcode = 89
An undefined bytecode value encountered during execution.
InvalidJump = 90
Invalid jump destination. Dynamic jumps points to invalid not jumpdest opcode.
NotActivated = 91
The feature or opcode is not activated in this version of the EVM.
StackUnderflow = 92
Attempting to pop a value from an empty stack.
StackOverflow = 93
Attempting to push a value onto a full stack.
OutOfOffset = 94
Invalid memory or storage offset.
CreateCollision = 95
Address collision during contract creation.
OverflowPayment = 96
Payment amount overflow.
PrecompileError = 97
Error in precompiled contract execution.
NonceOverflow = 98
Nonce overflow.
CreateContractSizeLimit = 99
Exceeded contract size limit during creation.
CreateContractStartingWithEF = 100
Created contract starts with invalid bytes (0xEF).
CreateInitCodeSizeLimit = 101
Exceeded init code size limit (EIP-3860: Limit and meter initcode).
FatalExternalError = 102
Fatal external error. Returned by database.
ReturnContractInNotInitEOF = 103
RETURNCONTRACT called outside init EOF code.
EOFOpcodeDisabledInLegacy = 104
Legacy contract is calling opcode that is enabled only in EOF.
SubRoutineStackOverflow = 105
Stack overflow in EOF subroutine function calls.
EofAuxDataOverflow = 106
Aux data overflow, new aux data is larger than u16 max size.
EofAuxDataTooSmall = 107
Aux data is smaller than already present data size.
InvalidEXTCALLTarget = 108
EXT*CALL target address needs to be padded with 0s.
Implementations§
§impl InstructionResult
impl InstructionResult
pub const fn is_ok_or_revert(self) -> bool
pub const fn is_continue(self) -> bool
Trait Implementations§
§impl Clone for InstructionResult
impl Clone for InstructionResult
§fn clone(&self) -> InstructionResult
fn clone(&self) -> InstructionResult
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for InstructionResult
impl Debug for InstructionResult
§impl Default for InstructionResult
impl Default for InstructionResult
§fn default() -> InstructionResult
fn default() -> InstructionResult
§impl<'de> Deserialize<'de> for InstructionResult
impl<'de> Deserialize<'de> for InstructionResult
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<InstructionResult, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<InstructionResult, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl From<HaltReason> for InstructionResult
impl From<HaltReason> for InstructionResult
§fn from(value: HaltReason) -> InstructionResult
fn from(value: HaltReason) -> InstructionResult
§impl<HaltReasonTr> From<InstructionResult> for SuccessOrHalt<HaltReasonTr>where
HaltReasonTr: From<HaltReason>,
impl<HaltReasonTr> From<InstructionResult> for SuccessOrHalt<HaltReasonTr>where
HaltReasonTr: From<HaltReason>,
§fn from(result: InstructionResult) -> SuccessOrHalt<HaltReasonTr>
fn from(result: InstructionResult) -> SuccessOrHalt<HaltReasonTr>
§impl From<SuccessReason> for InstructionResult
impl From<SuccessReason> for InstructionResult
§fn from(value: SuccessReason) -> InstructionResult
fn from(value: SuccessReason) -> InstructionResult
§impl From<TransferError> for InstructionResult
impl From<TransferError> for InstructionResult
§fn from(e: TransferError) -> InstructionResult
fn from(e: TransferError) -> InstructionResult
§impl Hash for InstructionResult
impl Hash for InstructionResult
§impl PartialEq for InstructionResult
impl PartialEq for InstructionResult
§impl Serialize for InstructionResult
impl Serialize for InstructionResult
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Copy for InstructionResult
impl Eq for InstructionResult
impl StructuralPartialEq for InstructionResult
Auto Trait Implementations§
impl Freeze for InstructionResult
impl RefUnwindSafe for InstructionResult
impl Send for InstructionResult
impl Sync for InstructionResult
impl Unpin for InstructionResult
impl UnwindSafe for InstructionResult
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
§fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
TxEnv from a transaction and a sender address.§impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
§fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
TxEnv from a transaction, its sender, and encoded transaction bytes.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
impl<'de, T> BorrowedRpcObject<'de> for Twhere
T: RpcBorrow<'de> + RpcSend,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> HaltReasonTr for T
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSend for Twhere
T: Send,
impl<T> MaybeSerde for Twhere
T: Serialize + for<'de> Deserialize<'de>,
impl<'de, T> RpcBorrow<'de> for T
impl<T> RpcObject for Twhere
T: RpcSend + RpcRecv,
impl<T> RpcRecv for T
impl<T> RpcSend for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte
Size for each variant:
Continue: 0 bytesStop: 0 bytesReturn: 0 bytesSelfDestruct: 0 bytesReturnContract: 0 bytesRevert: 0 bytesCallTooDeep: 0 bytesOutOfFunds: 0 bytesCreateInitCodeStartingEF00: 0 bytesInvalidEOFInitCode: 0 bytesInvalidExtDelegateCallTarget: 0 bytesCallOrCreate: 0 bytesOutOfGas: 0 bytesMemoryOOG: 0 bytesMemoryLimitOOG: 0 bytesPrecompileOOG: 0 bytesInvalidOperandOOG: 0 bytesReentrancySentryOOG: 0 bytesOpcodeNotFound: 0 bytesCallNotAllowedInsideStatic: 0 bytesStateChangeDuringStaticCall: 0 bytesInvalidFEOpcode: 0 bytesInvalidJump: 0 bytesNotActivated: 0 bytesStackUnderflow: 0 bytesStackOverflow: 0 bytesOutOfOffset: 0 bytesCreateCollision: 0 bytesOverflowPayment: 0 bytesPrecompileError: 0 bytesNonceOverflow: 0 bytesCreateContractSizeLimit: 0 bytesCreateContractStartingWithEF: 0 bytesCreateInitCodeSizeLimit: 0 bytesFatalExternalError: 0 bytesReturnContractInNotInitEOF: 0 bytesEOFOpcodeDisabledInLegacy: 0 bytesSubRoutineStackOverflow: 0 bytesEofAuxDataOverflow: 0 bytesEofAuxDataTooSmall: 0 bytesInvalidEXTCALLTarget: 0 bytes