pub enum FrameSimViolation {
BannedOpcode(u8),
StateWriteOutsideDeploy,
StorageReadNonSender,
CallToNonexistentOrDelegated(Address),
DeployInstalledNoCode,
}Expand description
A validation-trace rule violation detected during prefix simulation.
The first violation observed is recorded; the simulation harness treats any recorded violation as a failed validation (the transaction is rejected from the mempool).
Variants§
BannedOpcode(u8)
A banned opcode was executed (carries the raw opcode byte). The banned
set is enforced in the dispatch loop; see
VM::run_execution.
StateWriteOutsideDeploy
A state write (SSTORE/CREATE/CREATE2) occurred outside the deploy
frame, or an SSTORE inside the deploy frame targeted storage other than
the sender’s own account.
StorageReadNonSender
An SLOAD read storage of an account other than the sender.
CallToNonexistentOrDelegated(Address)
A CALL/CALLCODE/DELEGATECALL/STATICCALL/EXTCODE* referenced a
target that does not exist (no code, no balance, no nonce, not a
precompile) or that is EIP-7702-delegated; carries the offending target.
DeployInstalledNoCode
A deploy frame finished without leaving non-empty code installed at the sender’s address.
Trait Implementations§
Source§impl Clone for FrameSimViolation
impl Clone for FrameSimViolation
Source§impl Debug for FrameSimViolation
impl Debug for FrameSimViolation
impl Eq for FrameSimViolation
Source§impl PartialEq for FrameSimViolation
impl PartialEq for FrameSimViolation
impl StructuralPartialEq for FrameSimViolation
Auto Trait Implementations§
impl Freeze for FrameSimViolation
impl RefUnwindSafe for FrameSimViolation
impl Send for FrameSimViolation
impl Sync for FrameSimViolation
impl Unpin for FrameSimViolation
impl UnsafeUnpin for FrameSimViolation
impl UnwindSafe for FrameSimViolation
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.