foundry_cli/opts/network.rs
1use alloy_chains::Chain;
2use alloy_primitives::ChainId;
3
4/// Network selection, defaulting to Ethereum
5#[derive(Clone, Debug, Default, clap::ValueEnum)]
6pub enum NetworkVariant {
7 /// Ethereum (default)
8 #[default]
9 Ethereum,
10 /// Optimism / OP-stack
11 Optimism,
12 /// Tempo
13 Tempo,
14}
15
16impl From<ChainId> for NetworkVariant {
17 fn from(chain_id: ChainId) -> Self {
18 let chain = Chain::from_id(chain_id);
19 if chain.is_tempo() {
20 Self::Tempo
21 } else if chain.is_optimism() {
22 Self::Optimism
23 } else {
24 Default::default()
25 }
26 }
27}