From 290715fa334f94cc4d95dc978a30d04a1951881d Mon Sep 17 00:00:00 2001 From: Hanh Date: Fri, 10 Jun 2022 19:14:21 +0800 Subject: [PATCH] Use Rocket.toml --- README.md | 11 +++-------- Rocket.toml | 3 +++ src/main/rpc.rs | 31 +++++++++++++++++++++---------- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 2a76855..4753979 100644 --- a/README.md +++ b/README.md @@ -13,16 +13,11 @@ Edit `Rocket.toml` [default] allow_backup = true allow_send = true + +yec = { db_path = "./yec.db", lwd_url = "https://lite.ycash.xyz:9067" } +zec = { db_path = "./zec.db", lwd_url = "https://mainnet.lightwalletd.com:9067" } ``` -Edit `.env` - -``` -ZEC_DB_PATH -ZEC_LWD_URL -YEC_DB_PATH -YEC_LWD_URL -``` # RPC diff --git a/Rocket.toml b/Rocket.toml index 3413d43..910ff99 100644 --- a/Rocket.toml +++ b/Rocket.toml @@ -1,3 +1,6 @@ [default] allow_backup = true allow_send = true + +yec = { db_path = "./yec.db", lwd_url = "https://lite.ycash.xyz:9067" } +zec = { db_path = "./zec.db", lwd_url = "https://mainnet.lightwalletd.com:9067" } diff --git a/src/main/rpc.rs b/src/main/rpc.rs index 73fe978..b41d0f7 100644 --- a/src/main/rpc.rs +++ b/src/main/rpc.rs @@ -1,6 +1,7 @@ #[macro_use] extern crate rocket; +use std::collections::HashMap; use anyhow::anyhow; use rocket::fairing::AdHoc; use rocket::response::Responder; @@ -26,20 +27,30 @@ impl<'r> Responder<'r, 'static> for Error { } } +fn init(coin: u8, config: HashMap) -> anyhow::Result<()> { + warp_api_ffi::init_coin( + coin, + config.get("db_path").ok_or(anyhow!("Missing configuration value"))? + )?; + warp_api_ffi::set_coin_lwd_url( + coin, + config.get("lwd_url").ok_or(anyhow!("Missing configuration value"))? + ); + Ok(()) +} + #[rocket::main] async fn main() -> anyhow::Result<()> { let _ = dotenv::dotenv(); - warp_api_ffi::init_coin( - 0, - &dotenv::var("ZEC_DB_PATH").unwrap_or("./zec.db".to_string()), - )?; - warp_api_ffi::set_coin_lwd_url( - 0, - &dotenv::var("ZEC_LWD_URL").unwrap_or("https://mainnet.lightwalletd.com:9067".to_string()), - ); - let _ = rocket::build() - .mount( + let rocket = rocket::build(); + let figment = rocket.figment(); + let zec: HashMap = figment.extract_inner("zec")?; + init(0, zec)?; + let yec: HashMap = figment.extract_inner("yec")?; + init(1, yec)?; + + let _ = rocket.mount( "/", routes![ set_lwd,