From 2d6dbbc595b6b8c0adf161550cf13dbdec2e036d Mon Sep 17 00:00:00 2001 From: Thomas Coratger <60488569+tcoratger@users.noreply.github.com> Date: Sun, 28 Jan 2024 14:15:47 +0100 Subject: [PATCH] add `mainnet_activation_timestamp` for `Hardfork` (#6257) --- crates/ethereum-forks/src/hardfork.rs | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/crates/ethereum-forks/src/hardfork.rs b/crates/ethereum-forks/src/hardfork.rs index fb6dd9040d..dcc54243ba 100644 --- a/crates/ethereum-forks/src/hardfork.rs +++ b/crates/ethereum-forks/src/hardfork.rs @@ -88,6 +88,42 @@ impl Hardfork { } } + /// Retrieves the activation timestamp for the specified hardfork on the Ethereum mainnet. + pub fn mainnet_activation_timestamp(&self, chain: Chain) -> Option { + if chain != Chain::mainnet() { + return None; + } + match self { + Hardfork::Frontier => Some(1438226773), + Hardfork::Homestead => Some(1457938193), + Hardfork::Dao => Some(1468977640), + Hardfork::Tangerine => Some(1476753571), + Hardfork::SpuriousDragon => Some(1479788144), + Hardfork::Byzantium => Some(1508131331), + Hardfork::Constantinople => Some(1551340324), + Hardfork::Petersburg => Some(1551340324), + Hardfork::Istanbul => Some(1575807909), + Hardfork::MuirGlacier => Some(1577953849), + Hardfork::Berlin => Some(1618481223), + Hardfork::London => Some(1628166822), + Hardfork::ArrowGlacier => Some(1639036523), + Hardfork::GrayGlacier => Some(1656586444), + Hardfork::Paris => Some(1663224162), + Hardfork::Shanghai => Some(1681338455), + + // upcoming hardforks + Hardfork::Cancun => None, + + // optimism hardforks + #[cfg(feature = "optimism")] + Hardfork::Bedrock => None, + #[cfg(feature = "optimism")] + Hardfork::Regolith => None, + #[cfg(feature = "optimism")] + Hardfork::Canyon => None, + } + } + /// Checks if the hardfork is post the Ethereum merge. pub fn is_post_merge(&self) -> bool { self >= &Hardfork::Paris