kon-cli/crates/cardano-connect/cardano.rs

24 lines
712 B
Rust

use std::collections::HashMap;
use cardano::Cardano;
pub mod blockfrost;
pub mod cardano;
const PREFIX: &str = "cardano_";
pub fn from_env(env: &HashMap<String, String>) -> impl Cardano {
let cardano_env: HashMap<String, String> = 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"),
}
}