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 pub const fn is_optimism(&self) -> bool {
13 if let Some(network) = self.resolved_network() { network.is_optimism() } else { false }
14 }
15
16 /// Optimism-specific base fee parameters, picking Canyon vs pre-Canyon based on `timestamp`.
17 pub(crate) fn op_base_fee_params(&self, timestamp: u64) -> BaseFeeParams {
18 let op_hardforks = OpChainHardforks::op_mainnet();
19 if op_hardforks.is_canyon_active_at_timestamp(timestamp) {
20 BaseFeeParams::optimism_canyon()
21 } else {
22 BaseFeeParams::optimism()
23 }
24 }
25}