1use near_sdk::near;
2
3#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, clap::ValueEnum)]
5#[near(serializers = [json])]
6pub enum Network {
7 Mainnet,
9 #[default]
11 Testnet,
12}
13
14impl std::fmt::Display for Network {
15 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
16 write!(
17 f,
18 "{}",
19 match self {
20 Network::Mainnet => "mainnet",
21 Network::Testnet => "testnet",
22 }
23 )
24 }
25}
26
27impl Network {
28 #[must_use]
30 pub fn rpc_url(&self) -> &str {
31 use near_jsonrpc_client::{NEAR_MAINNET_RPC_URL, NEAR_TESTNET_RPC_URL};
32
33 match self {
34 Network::Mainnet => NEAR_MAINNET_RPC_URL,
35 Network::Testnet => NEAR_TESTNET_RPC_URL,
36 }
37 }
38}