Enum EofValidationError
pub enum EofValidationError {
Show 33 variants
FalsePositive,
UnknownOpcode,
OpcodeDisabled,
InstructionNotForwardAccessed,
MissingImmediateBytes,
MissingRJUMPVImmediateBytes,
JumpToImmediateBytes,
BackwardJumpToImmediateBytes,
RJUMPVZeroMaxIndex,
JumpZeroOffset,
EOFCREATEInvalidIndex,
CodeSectionOutOfBounds,
CALLFNonReturningFunction,
StackOverflow,
JUMPFEnoughOutputs,
JUMPFStackHigherThanOutputs,
DataLoadOutOfBounds,
RETFBiggestStackNumMoreThenOutputs,
StackUnderflow,
JumpUnderflow,
JumpOverflow,
BackwardJumpBiggestNumMismatch,
BackwardJumpSmallestNumMismatch,
LastInstructionNotTerminating,
CodeSectionNotAccessed,
InvalidCodeInfo,
InvalidFirstCodeInfo,
MaxStackMismatch,
NoCodeSections,
SubContainerCalledInTwoModes,
SubContainerNotAccessed,
DataNotFilled,
NonReturningSectionIsReturning,
}
Expand description
EOF Validation Error
Variants§
FalsePositive
UnknownOpcode
Opcode is not known. It is not defined in the opcode table.
OpcodeDisabled
Opcode is disabled in EOF. For example JUMP, JUMPI, etc
InstructionNotForwardAccessed
Every instruction inside bytecode should be forward accessed
Forward access can be a jump or sequential opcode.
In case after terminal opcode there should be a forward jump.
MissingImmediateBytes
Bytecode is too small and is missing immediate bytes for instruction
MissingRJUMPVImmediateBytes
Bytecode is too small and is missing immediate bytes for instruction
Similar to MissingImmediateBytes
but for special case of RJUMPV immediate bytes.
JumpToImmediateBytes
Invalid jump into immediate bytes
BackwardJumpToImmediateBytes
Invalid jump into immediate bytes
RJUMPVZeroMaxIndex
MaxIndex in RJUMPV can’t be zero. Zero max index makes it RJUMPI
JumpZeroOffset
Jump with zero offset would make a jump to next opcode, it does not make sense
EOFCREATEInvalidIndex
EOFCREATE points to container out of bounds
CodeSectionOutOfBounds
CALLF section out of bounds
CALLFNonReturningFunction
CALLF to non returning function is not allowed
StackOverflow
CALLF stack overflow
JUMPFEnoughOutputs
JUMPF needs to have enough outputs
JUMPFStackHigherThanOutputs
JUMPF Stack
DataLoadOutOfBounds
DATA load out of bounds
RETFBiggestStackNumMoreThenOutputs
RETF biggest stack num more then outputs
StackUnderflow
Stack requirement is more than smallest stack items
JumpUnderflow
Jump out of bounds
JumpOverflow
Jump to out of bounds
BackwardJumpBiggestNumMismatch
Backward jump should have same smallest and biggest stack items
BackwardJumpSmallestNumMismatch
Backward jump should have same smallest and biggest stack items
LastInstructionNotTerminating
Last instruction should be terminating
CodeSectionNotAccessed
Code section not accessed
InvalidCodeInfo
Types section invalid
InvalidFirstCodeInfo
First types section is invalid
It should have inputs 0 and outputs 0x80
MaxStackMismatch
Max stack element mismatch
NoCodeSections
No code sections present
SubContainerCalledInTwoModes
Sub container called in two different modes
Check CodeType
for more information.
SubContainerNotAccessed
Sub container not accessed
DataNotFilled
Data size needs to be filled for ReturnContract type
NonReturningSectionIsReturning
Section is marked as non-returning but has either RETF or JUMPF to returning section opcodes
Trait Implementations§
§impl Clone for EofValidationError
impl Clone for EofValidationError
§fn clone(&self) -> EofValidationError
fn clone(&self) -> EofValidationError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for EofValidationError
impl Debug for EofValidationError
§impl Display for EofValidationError
impl Display for EofValidationError
§impl Error for EofValidationError
impl Error for EofValidationError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
§impl From<EofValidationError> for EofError
impl From<EofValidationError> for EofError
§fn from(err: EofValidationError) -> EofError
fn from(err: EofValidationError) -> EofError
§impl Hash for EofValidationError
impl Hash for EofValidationError
§impl Ord for EofValidationError
impl Ord for EofValidationError
§fn cmp(&self, other: &EofValidationError) -> Ordering
fn cmp(&self, other: &EofValidationError) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
§impl PartialEq for EofValidationError
impl PartialEq for EofValidationError
§impl PartialOrd for EofValidationError
impl PartialOrd for EofValidationError
impl Copy for EofValidationError
impl Eq for EofValidationError
impl StructuralPartialEq for EofValidationError
Auto Trait Implementations§
impl Freeze for EofValidationError
impl RefUnwindSafe for EofValidationError
impl Send for EofValidationError
impl Sync for EofValidationError
impl Unpin for EofValidationError
impl UnwindSafe for EofValidationError
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<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§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<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<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> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSendSync 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:
FalsePositive
: 0 bytesUnknownOpcode
: 0 bytesOpcodeDisabled
: 0 bytesInstructionNotForwardAccessed
: 0 bytesMissingImmediateBytes
: 0 bytesMissingRJUMPVImmediateBytes
: 0 bytesJumpToImmediateBytes
: 0 bytesBackwardJumpToImmediateBytes
: 0 bytesRJUMPVZeroMaxIndex
: 0 bytesJumpZeroOffset
: 0 bytesEOFCREATEInvalidIndex
: 0 bytesCodeSectionOutOfBounds
: 0 bytesCALLFNonReturningFunction
: 0 bytesStackOverflow
: 0 bytesJUMPFEnoughOutputs
: 0 bytesJUMPFStackHigherThanOutputs
: 0 bytesDataLoadOutOfBounds
: 0 bytesRETFBiggestStackNumMoreThenOutputs
: 0 bytesStackUnderflow
: 0 bytesJumpUnderflow
: 0 bytesJumpOverflow
: 0 bytesBackwardJumpBiggestNumMismatch
: 0 bytesBackwardJumpSmallestNumMismatch
: 0 bytesLastInstructionNotTerminating
: 0 bytesCodeSectionNotAccessed
: 0 bytesInvalidCodeInfo
: 0 bytesInvalidFirstCodeInfo
: 0 bytesMaxStackMismatch
: 0 bytesNoCodeSections
: 0 bytesSubContainerCalledInTwoModes
: 0 bytesSubContainerNotAccessed
: 0 bytesDataNotFilled
: 0 bytesNonReturningSectionIsReturning
: 0 bytes