24 lines
712 B
Rust
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"),
|
|
}
|
|
}
|