alchemy_api/types/
chain.rs1#![allow(missing_docs)]
2
3use ethers_core::types::Chain;
4use serde::{Deserialize, Serialize};
5
6#[derive(Default, Debug, Clone, Copy, Serialize, Deserialize)]
7#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
8pub enum AlchemyChain {
9 #[default]
10 EthMainnet,
11 EthGoerli,
12 EthSepolia,
13 OptMainnet,
14 OptGoerli,
15 ArbMainnet,
16 ArbGoerli,
17 MaticMainnet,
18 MaticMumbai,
19 AstarMainnet,
20 PolygonzkevmMainnet,
21 PolygonzkevmTestnet,
22 BaseMainnet,
23 BaseGoerli,
24}
25
26impl From<AlchemyChain> for Chain {
27 fn from(alchemy_chain: AlchemyChain) -> Self {
28 match alchemy_chain {
29 AlchemyChain::EthMainnet => Chain::Mainnet,
30 AlchemyChain::EthGoerli => Chain::Goerli,
31 AlchemyChain::EthSepolia => Chain::Sepolia,
32 AlchemyChain::OptMainnet => Chain::Optimism,
33 AlchemyChain::OptGoerli => Chain::OptimismGoerli,
34 AlchemyChain::ArbMainnet => Chain::Arbitrum,
35 AlchemyChain::ArbGoerli => Chain::ArbitrumGoerli,
36 AlchemyChain::MaticMainnet => Chain::Polygon,
37 AlchemyChain::MaticMumbai => Chain::PolygonMumbai,
38 AlchemyChain::AstarMainnet => unimplemented!("chain is not supported by ether-rs"),
39 AlchemyChain::PolygonzkevmMainnet => Chain::PolygonZkEvm,
40 AlchemyChain::PolygonzkevmTestnet => Chain::PolygonZkEvmTestnet,
41 AlchemyChain::BaseMainnet => Chain::Base,
42 AlchemyChain::BaseGoerli => Chain::BaseGoerli,
43 }
44 }
45}