add mainnet_activation_timestamp for Hardfork (#6257)

This commit is contained in:
Thomas Coratger
2024-01-28 14:15:47 +01:00
committed by GitHub
parent 4cb5eb23b8
commit 2d6dbbc595

View File

@@ -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<u64> {
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