#[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 then already present data size.
InvalidEXTCALLTarget = 108
EXT*CALL
target address needs to be padded with 0s.
Implementations§
Source§impl InstructionResult
impl InstructionResult
pub const fn is_ok_or_revert(self) -> bool
pub const fn is_continue(self) -> bool
Trait Implementations§
Source§impl Clone for InstructionResult
impl Clone for InstructionResult
Source§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 moreSource§impl Debug for InstructionResult
impl Debug for InstructionResult
Source§impl Default for InstructionResult
impl Default for InstructionResult
Source§fn default() -> InstructionResult
fn default() -> InstructionResult
Source§impl<'de> Deserialize<'de> for InstructionResult
impl<'de> Deserialize<'de> for InstructionResult
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<HaltReason> for InstructionResult
impl From<HaltReason> for InstructionResult
Source§fn from(value: HaltReason) -> Self
fn from(value: HaltReason) -> Self
Source§impl<HaltReasonT: HaltReasonTrait> From<InstructionResult> for SuccessOrHalt<HaltReasonT>
impl<HaltReasonT: HaltReasonTrait> From<InstructionResult> for SuccessOrHalt<HaltReasonT>
Source§fn from(result: InstructionResult) -> Self
fn from(result: InstructionResult) -> Self
Source§impl From<SuccessReason> for InstructionResult
impl From<SuccessReason> for InstructionResult
Source§fn from(value: SuccessReason) -> Self
fn from(value: SuccessReason) -> Self
Source§impl From<TransferError> for InstructionResult
impl From<TransferError> for InstructionResult
Source§fn from(e: TransferError) -> Self
fn from(e: TransferError) -> Self
Source§impl Hash for InstructionResult
impl Hash for InstructionResult
Source§impl PartialEq for InstructionResult
impl PartialEq for InstructionResult
Source§impl Serialize for InstructionResult
impl Serialize for InstructionResult
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
§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<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> 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.