Enum InstructionResult
#[repr(u8)]pub enum InstructionResult {
Show 40 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,
OpcodeNotFound = 85,
CallNotAllowedInsideStatic = 86,
StateChangeDuringStaticCall = 87,
InvalidFEOpcode = 88,
InvalidJump = 89,
NotActivated = 90,
StackUnderflow = 91,
StackOverflow = 92,
OutOfOffset = 93,
CreateCollision = 94,
OverflowPayment = 95,
PrecompileError = 96,
NonceOverflow = 97,
CreateContractSizeLimit = 98,
CreateContractStartingWithEF = 99,
CreateInitCodeSizeLimit = 100,
FatalExternalError = 101,
ReturnContractInNotInitEOF = 102,
EOFOpcodeDisabledInLegacy = 103,
EOFFunctionStackOverflow = 104,
EofAuxDataOverflow = 105,
EofAuxDataTooSmall = 106,
InvalidEXTCALLTarget = 107,
}
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.
OpcodeNotFound = 85
Unknown or invalid opcode.
CallNotAllowedInsideStatic = 86
Invalid CALL
with value transfer in static context.
StateChangeDuringStaticCall = 87
Invalid state modification in static call.
InvalidFEOpcode = 88
An undefined bytecode value encountered during execution.
InvalidJump = 89
Invalid jump destination. Dynamic jumps points to invalid not jumpdest opcode.
NotActivated = 90
The feature or opcode is not activated in this version of the EVM.
StackUnderflow = 91
Attempting to pop a value from an empty stack.
StackOverflow = 92
Attempting to push a value onto a full stack.
OutOfOffset = 93
Invalid memory or storage offset.
CreateCollision = 94
Address collision during contract creation.
OverflowPayment = 95
Payment amount overflow.
PrecompileError = 96
Error in precompiled contract execution.
NonceOverflow = 97
Nonce overflow.
CreateContractSizeLimit = 98
Exceeded contract size limit during creation.
CreateContractStartingWithEF = 99
Created contract starts with invalid bytes (0xEF
).
CreateInitCodeSizeLimit = 100
Exceeded init code size limit (EIP-3860: Limit and meter initcode).
FatalExternalError = 101
Fatal external error. Returned by database.
ReturnContractInNotInitEOF = 102
RETURNCONTRACT
called outside init EOF code.
EOFOpcodeDisabledInLegacy = 103
Legacy contract is calling opcode that is enabled only in EOF.
EOFFunctionStackOverflow = 104
Stack overflow in EOF subroutine function calls.
EofAuxDataOverflow = 105
Aux data overflow, new aux data is larger than u16
max size.
EofAuxDataTooSmall = 106
Aux data is smaller then already present data size.
InvalidEXTCALLTarget = 107
EXT*CALL
target address needs to be padded with 0s.
Implementations§
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 From<InstructionResult> for SuccessOrHalt
impl From<InstructionResult> for SuccessOrHalt
§fn from(result: InstructionResult) -> SuccessOrHalt
fn from(result: InstructionResult) -> SuccessOrHalt
§impl From<SuccessReason> for InstructionResult
impl From<SuccessReason> for InstructionResult
§fn from(value: SuccessReason) -> InstructionResult
fn from(value: SuccessReason) -> 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<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> 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> ⓘ
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSendSync for T
impl<T> MaybeSerde for Twhere
T: Serialize + for<'de> Deserialize<'de>,
impl<T> NippyJarHeader for T
impl<T> RpcObject for Twhere
T: RpcParam + RpcReturn,
impl<T> RpcParam for T
impl<T> RpcReturn 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 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 bytesEOFFunctionStackOverflow
: 0 bytesEofAuxDataOverflow
: 0 bytesEofAuxDataTooSmall
: 0 bytesInvalidEXTCALLTarget
: 0 bytes