From a7ea49b1c43246977a571bfc7e228e00e9779097 Mon Sep 17 00:00:00 2001 From: Duddino Date: Sun, 6 Oct 2024 13:57:23 +0200 Subject: [PATCH] Run fetch param script --- src-tauri/src/error.rs | 3 +++ src-tauri/src/explorer/mod.rs | 5 ++++- src-tauri/src/pivx/mod.rs | 14 ++++++++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/error.rs b/src-tauri/src/error.rs index 4c94b05..e10299a 100644 --- a/src-tauri/src/error.rs +++ b/src-tauri/src/error.rs @@ -39,6 +39,9 @@ pub enum PIVXErrors { #[error("Invalid response from RPC")] InvalidResponse, + + #[error("Failed to fetch sapling params")] + FetchParamsFailed, } pub type Result = std::result::Result; diff --git a/src-tauri/src/explorer/mod.rs b/src-tauri/src/explorer/mod.rs index cb9e192..ffbf7c4 100644 --- a/src-tauri/src/explorer/mod.rs +++ b/src-tauri/src/explorer/mod.rs @@ -56,8 +56,11 @@ async fn get_explorer() -> &'static DefaultExplorer { let pivx_rpc = PIVXRpc::new(&format!("http://127.0.0.1:{}", RPC_PORT)) .await .unwrap(); + // FIXME: refactor this to accept HOME let address_index = AddressIndex::new( - SqlLite::new(PathBuf::from("~/test.sqlite")).await.unwrap(), + SqlLite::new(PathBuf::from("/home/duddino/test.sqlite")) + .await + .unwrap(), pivx_rpc.clone(), ); std::mem::forget(pivx); diff --git a/src-tauri/src/pivx/mod.rs b/src-tauri/src/pivx/mod.rs index 1f7e676..dfac73a 100644 --- a/src-tauri/src/pivx/mod.rs +++ b/src-tauri/src/pivx/mod.rs @@ -5,6 +5,7 @@ use crate::error::PIVXErrors; use flate2::read::GzDecoder; use std::fs::File; use std::path::{Path, PathBuf}; +use std::process::Command; use tar::Archive; use crate::binary::BinaryDefinition; @@ -15,8 +16,17 @@ impl BinaryDefinition for PIVXDefinition { fn decompress_archive(&self, dir: &Path) -> Result<(), PIVXErrors> { let mut tarball = Archive::new(GzDecoder::new(File::open(dir.join("pivxd.tar.gz"))?)); tarball.unpack(dir)?; - - Ok(()) + let pivx_dir = dir.join("pivx-5.6.1"); + let script_path = pivx_dir.join("install-params.sh"); + let mut handle = Command::new(script_path) + .current_dir(pivx_dir) + .spawn() + .map_err(|_| PIVXErrors::FetchParamsFailed)?; + let status = handle.wait().map_err(|_| PIVXErrors::FetchParamsFailed)?; + match status.success() { + true => Ok(()), + false => Err(PIVXErrors::FetchParamsFailed), + } } fn get_url(&self) -> &str {