race_env/
lib.rs

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}