From 239683070ba3cf3af6ef8fb17354743ec2291cbb Mon Sep 17 00:00:00 2001 From: aglkm <39521015+aglkm@users.noreply.github.com> Date: Tue, 18 Jun 2024 13:18:50 +0300 Subject: [PATCH] better error handling if chain dir not found --- src/requests.rs | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/src/requests.rs b/src/requests.rs index 2ffe83e..38264e2 100644 --- a/src/requests.rs +++ b/src/requests.rs @@ -168,23 +168,18 @@ pub async fn get_market(dashboard: Arc>) -> Result<(), Error> { data.supply = supply.to_formatted_string(&Locale::en); // https://john-tromp.medium.com/a-case-for-using-soft-total-supply-1169a188d153 - data.soft_supply = format!("{:.2}", - supply.to_string().parse::().unwrap() / 3150000000.0 * 100.0); + data.soft_supply = format!("{:.2}", supply.to_string().parse::().unwrap() / 3150000000.0 * 100.0); if CONFIG.coingecko_api == "enabled" && val != Value::Null { // Check if CoingGecko API returned error if let Some(status) = val.get("status") { - println!("{} {}.", "[ WARNING ]".yellow(), - status["error_message"].as_str().unwrap().to_string()); + println!("{} {}.", "[ WARNING ]".yellow(), status["error_message"].as_str().unwrap().to_string()); } else { - data.price_usd = format!("{:.3}", val["grin"]["usd"].to_string().parse::() - .unwrap()); - data.price_btc = format!("{:.8}", val["grin"]["btc"].to_string().parse::() - .unwrap()); + data.price_usd = format!("{:.3}", val["grin"]["usd"].to_string().parse::().unwrap()); + data.price_btc = format!("{:.8}", val["grin"]["btc"].to_string().parse::().unwrap()); data.volume_usd = (val["grin"]["usd_24h_vol"].to_string().parse::().unwrap() as u64) .to_formatted_string(&Locale::en); - data.volume_btc = format!("{:.2}", val["grin"]["btc_24h_vol"].to_string().parse::() - .unwrap()); + data.volume_btc = format!("{:.2}", val["grin"]["btc_24h_vol"].to_string().parse::().unwrap()); data.cap_usd = (((supply as f64) * data.price_usd.parse::().unwrap()) as u64) .to_formatted_string(&Locale::en); data.cap_btc = (((supply as f64) * data.price_btc.parse::().unwrap()) as u64) @@ -200,16 +195,18 @@ pub async fn get_market(dashboard: Arc>) -> Result<(), Error> { // Collecting: disk_usage. pub fn get_disk_usage(dashboard: Arc>) -> Result<(), Error> { let mut data = dashboard.lock().unwrap(); - let chain_data; + let chain_dir; if CONFIG.coingecko_api == "enabled" { - chain_data = format!("{}/main/chain_data", CONFIG.grin_dir); + chain_dir = format!("{}/main/chain_data", CONFIG.grin_dir); } else { - chain_data = format!("{}/test/chain_data", CONFIG.grin_dir); + chain_dir = format!("{}/test/chain_data", CONFIG.grin_dir); } - data.disk_usage = format!("{:.2}", (get_size(chain_data).unwrap() as f64) - / 1000.0 / 1000.0 / 1000.0); + match get_size(chain_dir.clone()) { + Ok(chain_size) => data.disk_usage = format!("{:.2}", (chain_size as f64) / 1000.0 / 1000.0 / 1000.0), + Err(e) => println!("{} {}: \"{}\".", "[ ERROR ]".red(), e, chain_dir), + } Ok(()) } @@ -222,8 +219,7 @@ pub async fn get_mining_stats(dashboard: Arc>) -> Result<(), an if height.is_empty() == false && height.parse::().unwrap() > 1440 { let params1 = &format!("[{}, null, null]", height)[..]; - let params2 = &format!("[{}, null, null]", height.parse::().unwrap() - - difficulty_window)[..]; + let params2 = &format!("[{}, null, null]", height.parse::().unwrap() - difficulty_window)[..]; let resp1 = call("get_block", params1, "1", "foreign").await?; let resp2 = call("get_block", params2, "1", "foreign").await?; @@ -243,7 +239,7 @@ pub async fn get_mining_stats(dashboard: Arc>) -> Result<(), an // KG/s if hashrate > 1000.0 { - data.hashrate = format!("{:.2} KG/s", hashrate / 1000.0); + data.hashrate = format!("{:.2} kG/s", hashrate / 1000.0); // G/s } else { data.hashrate = format!("{:.2} G/s", hashrate);