use std::collections::HashMap; use cardano::Cardano; pub mod blockfrost; pub mod cardano; const PREFIX: &str = "cardano_"; pub fn from_env(env: &HashMap) -> impl Cardano { let cardano_env: HashMap = env .iter() .filter_map(|(k, v)| k.strip_prefix(PREFIX).map(|k| (k.to_string(), v.clone()))) .collect(); match env.get("cardano") { None => panic!("Expect cardano connection details in env"), Some(s) if s == "blockfrost" => { let config = blockfrost::Config::from_env(&cardano_env); blockfrost::Blockfrost::new(config.project_id) } Some(_s) => panic!("Unkown cardano connection"), } }