1mod config;
2
3pub use config::{Config, TransactorConfig};
4
5pub fn parse_with_default_rpc<'a>(chain: &'a str, rpc: &'a str) -> &'a str {
6 match (chain, rpc) {
7 ("solana", "mainnet" | "m") => "https://api.mainnet-beta.solana.com",
8 ("solana", "testnet" | "t") => "https://api.testnet.solana.com",
9 ("solana", "devnet" | "d") => "https://api.devnet.solana.com",
10 ("solana", "local" | "l") => "http://127.0.0.1:8899",
11 _ => rpc,
12 }
13}
14
15pub fn default_rpc<'a>(chain: &'a str, env: Option<&'a str>) -> &'a str {
16 match (chain, env) {
17 ("facade", _) => "http://127.0.0.1:12002",
18 ("solana", Some("mainnet")) => "https://api.mainnet-beta.solana.com",
19 ("solana", Some("testnet")) => "https://api.testnet.solana.com",
20 ("solana", Some("devnet")) => "https://api.devnet.solana.com",
21 ("solana", Some("local")) => "http://127.0.0.1:8899",
22 _ => panic!("Chain not supported, missing RPC endpoint"),
23 }
24}
25
26pub fn default_keyfile(chain: &str) -> Option<String> {
27 match chain {
28 "facade" => None,
29 "solana" => Some(shellexpand::tilde("~/.config/solana/id.json").to_string()),
30 _ => panic!("Chain not supported, missing keyfile"),
31 }
32}