Skip to main content

foundry_evm_networks/
optimism.rs

1//! Optimism-specific extensions for [`NetworkConfigs`] and related helpers.
2
3use crate::{NetworkConfigs, NetworkVariant};
4use alloy_eips::eip1559::BaseFeeParams;
5use alloy_op_hardforks::{OpChainHardforks, OpHardforks};
6
7impl NetworkConfigs {
8    pub fn with_optimism() -> Self {
9        Self { network: Some(NetworkVariant::Optimism), optimism: true, ..Default::default() }
10    }
11
12    /// Optimism-specific base fee parameters, picking Canyon vs pre-Canyon based on `timestamp`.
13    pub(crate) fn op_base_fee_params(&self, timestamp: u64) -> BaseFeeParams {
14        let op_hardforks = OpChainHardforks::op_mainnet();
15        if op_hardforks.is_canyon_active_at_timestamp(timestamp) {
16            BaseFeeParams::optimism_canyon()
17        } else {
18            BaseFeeParams::optimism()
19        }
20    }
21}