Struct reth_ethereum_forks::ChainHardforks
source · pub struct ChainHardforks { /* private fields */ }
Expand description
Ordered list of a chain hardforks that implement Hardfork
.
Implementations§
source§impl ChainHardforks
impl ChainHardforks
sourcepub fn new(forks: Vec<(Box<dyn Hardfork>, ForkCondition)>) -> Self
pub fn new(forks: Vec<(Box<dyn Hardfork>, ForkCondition)>) -> Self
Creates a new ChainHardforks
from a list which must be ordered by activation.
Equivalent Ethereum hardforks must be included as well.
sourcepub fn fork<H: Hardfork>(&self, fork: H) -> ForkCondition
pub fn fork<H: Hardfork>(&self, fork: H) -> ForkCondition
Retrieves ForkCondition
from fork
. If fork
is not present, returns
ForkCondition::Never
.
sourcepub fn get<H: Hardfork>(&self, fork: H) -> Option<ForkCondition>
pub fn get<H: Hardfork>(&self, fork: H) -> Option<ForkCondition>
Retrieves ForkCondition
from fork
if it exists, otherwise None
.
sourcepub fn fork_block<H: Hardfork>(&self, fork: H) -> Option<u64>
pub fn fork_block<H: Hardfork>(&self, fork: H) -> Option<u64>
Retrieves the fork block number or timestamp from fork
if it exists, otherwise None
.
sourcepub fn forks_iter(&self) -> impl Iterator<Item = (&dyn Hardfork, ForkCondition)>
pub fn forks_iter(&self) -> impl Iterator<Item = (&dyn Hardfork, ForkCondition)>
Get an iterator of all hardforks with their respective activation conditions.
sourcepub fn last(&self) -> Option<(Box<dyn Hardfork>, ForkCondition)>
pub fn last(&self) -> Option<(Box<dyn Hardfork>, ForkCondition)>
Get last hardfork from the list.
sourcepub fn is_fork_active_at_timestamp<H: Hardfork>(
&self,
fork: H,
timestamp: u64,
) -> bool
pub fn is_fork_active_at_timestamp<H: Hardfork>( &self, fork: H, timestamp: u64, ) -> bool
Convenience method to check if a fork is active at a given timestamp.
sourcepub fn is_fork_active_at_block<H: Hardfork>(
&self,
fork: H,
block_number: u64,
) -> bool
pub fn is_fork_active_at_block<H: Hardfork>( &self, fork: H, block_number: u64, ) -> bool
Convenience method to check if a fork is active at a given block number.
sourcepub fn insert<H: Hardfork>(&mut self, fork: H, condition: ForkCondition)
pub fn insert<H: Hardfork>(&mut self, fork: H, condition: ForkCondition)
Inserts fork
into list, updating with a new ForkCondition
if it already exists.
Trait Implementations§
source§impl Clone for ChainHardforks
impl Clone for ChainHardforks
source§fn clone(&self) -> ChainHardforks
fn clone(&self) -> ChainHardforks
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ChainHardforks
impl Debug for ChainHardforks
source§impl Default for ChainHardforks
impl Default for ChainHardforks
source§fn default() -> ChainHardforks
fn default() -> ChainHardforks
source§impl EthereumHardforks for ChainHardforks
impl EthereumHardforks for ChainHardforks
source§fn is_shanghai_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_shanghai_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Shanghai
is active at a given
timestamp.source§fn is_cancun_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_cancun_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Cancun
is active at a given timestamp.source§fn is_prague_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_prague_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Prague
is active at a given timestamp.source§fn is_byzantium_active_at_block(&self, block_number: u64) -> bool
fn is_byzantium_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::Byzantium
is active at a given block
number.source§fn is_spurious_dragon_active_at_block(&self, block_number: u64) -> bool
fn is_spurious_dragon_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::SpuriousDragon
is active at a given
block number.source§fn is_homestead_active_at_block(&self, block_number: u64) -> bool
fn is_homestead_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::Homestead
is active at a given block
number.source§impl<const N: usize> From<[(EthereumHardfork, ForkCondition); N]> for ChainHardforks
impl<const N: usize> From<[(EthereumHardfork, ForkCondition); N]> for ChainHardforks
source§fn from(list: [(EthereumHardfork, ForkCondition); N]) -> Self
fn from(list: [(EthereumHardfork, ForkCondition); N]) -> Self
source§impl Hardforks for ChainHardforks
impl Hardforks for ChainHardforks
source§fn fork<H: Hardfork>(&self, fork: H) -> ForkCondition
fn fork<H: Hardfork>(&self, fork: H) -> ForkCondition
source§fn forks_iter(&self) -> impl Iterator<Item = (&dyn Hardfork, ForkCondition)>
fn forks_iter(&self) -> impl Iterator<Item = (&dyn Hardfork, ForkCondition)>
source§impl OptimismHardforks for ChainHardforks
impl OptimismHardforks for ChainHardforks
source§fn is_bedrock_active_at_block(&self, block_number: u64) -> bool
fn is_bedrock_active_at_block(&self, block_number: u64) -> bool
OptimismHardfork::Bedrock
is active at a given block
number.source§fn is_ecotone_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_ecotone_active_at_timestamp(&self, timestamp: u64) -> bool
true
if Ecotone
is active at given block timestamp.source§impl PartialEq for ChainHardforks
impl PartialEq for ChainHardforks
impl Eq for ChainHardforks
impl StructuralPartialEq for ChainHardforks
Auto Trait Implementations§
impl Freeze for ChainHardforks
impl !RefUnwindSafe for ChainHardforks
impl Send for ChainHardforks
impl Sync for ChainHardforks
impl Unpin for ChainHardforks
impl !UnwindSafe for ChainHardforks
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,
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: 56 bytes