pub struct EVMConfig {
pub fork: Fork,
pub blob_schedule: ForkBlobSchedule,
}Expand description
This struct holds special configuration variables specific to the
EVM. In most cases, at least at the time of writing (February
2025), you want to use the default blob_schedule values for the
specified Fork. The “intended” way to do this is by using the EVMConfig::canonical_values(fork: Fork) function.
However, that function should NOT be used IF you want to use a
custom ForkBlobSchedule, like it’s described in EIP-7840
Values are determined by EIP-7691
Fields§
§fork: Fork§blob_schedule: ForkBlobScheduleImplementations§
Source§impl EVMConfig
impl EVMConfig
pub fn new(fork: Fork, blob_schedule: ForkBlobSchedule) -> EVMConfig
pub fn new_from_chain_config( chain_config: &ChainConfig, block_header: &BlockHeader, ) -> Self
Sourcepub fn canonical_values(fork: Fork) -> ForkBlobSchedule
pub fn canonical_values(fork: Fork) -> ForkBlobSchedule
This function is used for running the EF tests. If you don’t have acces to a EVMConfig (mainly in the form of a genesis.json file) you can use this function to get the “Default” ForkBlobSchedule for that specific Fork. NOTE: This function could potentially be expanded to include other types of “default“s.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for EVMConfig
impl RefUnwindSafe for EVMConfig
impl Send for EVMConfig
impl Sync for EVMConfig
impl Unpin for EVMConfig
impl UnsafeUnpin for EVMConfig
impl UnwindSafe for EVMConfig
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<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.