#[non_exhaustive]pub enum EthereumHardfork {
Show 25 variants
Frontier,
Homestead,
Dao,
Tangerine,
SpuriousDragon,
Byzantium,
Constantinople,
Petersburg,
Istanbul,
MuirGlacier,
Berlin,
London,
ArrowGlacier,
GrayGlacier,
Paris,
Shanghai,
Cancun,
Prague,
Osaka,
Bpo1,
Bpo2,
Bpo3,
Bpo4,
Bpo5,
Amsterdam,
}Expand description
The name of an Ethereum hardfork.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Frontier
Homestead
Homestead: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/homestead.md.
Dao
The DAO fork: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/dao-fork.md.
Tangerine
SpuriousDragon
Spurious Dragon: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/spurious-dragon.md.
Byzantium
Byzantium: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/byzantium.md.
Constantinople
Constantinople: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/constantinople.md.
Petersburg
Petersburg: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/petersburg.md.
Istanbul
MuirGlacier
Muir Glacier: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/muir-glacier.md.
Berlin
Berlin: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/berlin.md.
London
London: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/london.md.
ArrowGlacier
Arrow Glacier: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/arrow-glacier.md.
GrayGlacier
Gray Glacier: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/gray-glacier.md.
Paris
Paris: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md.
Shanghai
Cancun
Cancun: https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/cancun.md
Prague
Prague.
Osaka
Bpo1
BPO 1
Bpo2
BPO 2
Bpo3
BPO 3
Bpo4
BPO 4
Bpo5
BPO 5
Amsterdam
Amsterdam: https://eips.ethereum.org/EIPS/eip-7773
Implementations§
Source§impl EthereumHardfork
impl EthereumHardfork
Sourcepub const fn bpo_variants() -> &'static [Self]
pub const fn bpo_variants() -> &'static [Self]
Returns all blob specific hardfork variants.
Sourcepub fn activation_block(&self, chain: Chain) -> Option<u64>
pub fn activation_block(&self, chain: Chain) -> Option<u64>
Retrieves the activation block for the specified hardfork on the given chain.
Sourcepub const fn mainnet_activation_block(&self) -> Option<u64>
pub const fn mainnet_activation_block(&self) -> Option<u64>
Retrieves the activation block for the specified hardfork on the Ethereum mainnet.
Sourcepub const fn sepolia_activation_block(&self) -> Option<u64>
pub const fn sepolia_activation_block(&self) -> Option<u64>
Retrieves the activation block for the specified hardfork on the Sepolia testnet.
Sourcepub const fn arbitrum_sepolia_activation_block(&self) -> Option<u64>
pub const fn arbitrum_sepolia_activation_block(&self) -> Option<u64>
Retrieves the activation block for the specified hardfork on the Arbitrum Sepolia testnet.
Sourcepub const fn arbitrum_activation_block(&self) -> Option<u64>
pub const fn arbitrum_activation_block(&self) -> Option<u64>
Retrieves the activation block for the specified hardfork on the Arbitrum One mainnet.
Sourcepub fn activation_timestamp(&self, chain: Chain) -> Option<u64>
pub fn activation_timestamp(&self, chain: Chain) -> Option<u64>
Retrieves the activation timestamp for the specified hardfork on the given chain.
Sourcepub const fn mainnet_activation_timestamp(&self) -> Option<u64>
pub const fn mainnet_activation_timestamp(&self) -> Option<u64>
Retrieves the activation timestamp for the specified hardfork on the Ethereum mainnet.
Sourcepub const fn sepolia_activation_timestamp(&self) -> Option<u64>
pub const fn sepolia_activation_timestamp(&self) -> Option<u64>
Retrieves the activation timestamp for the specified hardfork on the Sepolia testnet.
Sourcepub const fn holesky_activation_timestamp(&self) -> Option<u64>
pub const fn holesky_activation_timestamp(&self) -> Option<u64>
Retrieves the activation timestamp for the specified hardfork on the Holesky testnet.
Sourcepub const fn hoodi_activation_timestamp(&self) -> Option<u64>
pub const fn hoodi_activation_timestamp(&self) -> Option<u64>
Retrieves the activation timestamp for the specified hardfork on the Hoodi testnet.
Sourcepub const fn arbitrum_sepolia_activation_timestamp(&self) -> Option<u64>
pub const fn arbitrum_sepolia_activation_timestamp(&self) -> Option<u64>
Retrieves the activation timestamp for the specified hardfork on the Arbitrum Sepolia testnet.
Sourcepub const fn arbitrum_activation_timestamp(&self) -> Option<u64>
pub const fn arbitrum_activation_timestamp(&self) -> Option<u64>
Retrieves the activation timestamp for the specified hardfork on the Arbitrum One mainnet.
Sourcepub const fn mainnet() -> [(Self, ForkCondition); 21]
pub const fn mainnet() -> [(Self, ForkCondition); 21]
Ethereum mainnet list of hardforks.
Sourcepub const fn sepolia() -> [(Self, ForkCondition); 19]
pub const fn sepolia() -> [(Self, ForkCondition); 19]
Ethereum sepolia list of hardforks.
Sourcepub const fn holesky() -> [(Self, ForkCondition); 19]
pub const fn holesky() -> [(Self, ForkCondition); 19]
Ethereum holesky list of hardforks.
Sourcepub const fn hoodi() -> [(Self, ForkCondition); 19]
pub const fn hoodi() -> [(Self, ForkCondition); 19]
Ethereum Hoodi list of hardforks.
Sourcepub const fn devnet() -> [(Self, ForkCondition); 19]
pub const fn devnet() -> [(Self, ForkCondition); 19]
Ethereum Devnet list of hardforks.
Sourcepub const fn from_mainnet_block_number(num: u64) -> Self
pub const fn from_mainnet_block_number(num: u64) -> Self
Convert an u64 into an EthereumHardfork.
Sourcepub fn from_chain_and_timestamp(chain: Chain, timestamp: u64) -> Option<Self>
pub fn from_chain_and_timestamp(chain: Chain, timestamp: u64) -> Option<Self>
Reverse lookup to find the hardfork given a chain ID and block timestamp. Returns the active hardfork at the given timestamp for the specified chain.
Trait Implementations§
Source§impl Clone for EthereumHardfork
impl Clone for EthereumHardfork
Source§fn clone(&self) -> EthereumHardfork
fn clone(&self) -> EthereumHardfork
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EthereumHardfork
impl Debug for EthereumHardfork
Source§impl Default for EthereumHardfork
impl Default for EthereumHardfork
Source§fn default() -> EthereumHardfork
fn default() -> EthereumHardfork
Source§impl Display for EthereumHardfork
impl Display for EthereumHardfork
Source§impl FromStr for EthereumHardfork
impl FromStr for EthereumHardfork
Source§impl Hardfork for EthereumHardfork
impl Hardfork for EthereumHardfork
Source§impl Hash for EthereumHardfork
impl Hash for EthereumHardfork
Source§impl Ord for EthereumHardfork
impl Ord for EthereumHardfork
Source§fn cmp(&self, other: &EthereumHardfork) -> Ordering
fn cmp(&self, other: &EthereumHardfork) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for EthereumHardfork
impl PartialEq for EthereumHardfork
Source§impl PartialOrd for EthereumHardfork
impl PartialOrd for EthereumHardfork
impl Copy for EthereumHardfork
impl Eq for EthereumHardfork
impl StructuralPartialEq for EthereumHardfork
Auto Trait Implementations§
impl Freeze for EthereumHardfork
impl RefUnwindSafe for EthereumHardfork
impl Send for EthereumHardfork
impl Sync for EthereumHardfork
impl Unpin for EthereumHardfork
impl UnwindSafe for EthereumHardfork
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§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.Source§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.Source§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.Source§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.Source§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.Source§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.Source§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.Source§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.Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§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 moreSource§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 moreSource§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
Source§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
Source§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.Source§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.Source§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.Source§impl<T> Tap for T
impl<T> Tap for T
Source§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 moreSource§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 moreSource§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 moreSource§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 moreSource§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 moreSource§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 moreSource§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.Source§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.Source§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.Source§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.Source§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.Source§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.Source§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.