fix enable experimental multisig on wallet creation

This commit is contained in:
creating2morrow 2023-10-29 07:48:06 -04:00
parent a94718ed75
commit 3a68e9c774
2 changed files with 31 additions and 9 deletions

View file

@ -14,8 +14,9 @@ use log::{
warn, warn,
}; };
use std::{ use std::{
io::Write,
error::Error, error::Error,
process::Command, process::{Command, Stdio}
}; };
use lazy_static::lazy_static; use lazy_static::lazy_static;
@ -1386,17 +1387,38 @@ pub async fn p_get_transactions(
/// enable multisig - `monero-wallet-cli --password <> --wallet-file <> set enable-multisig-experimental 1` /// enable multisig - `monero-wallet-cli --password <> --wallet-file <> set enable-multisig-experimental 1`
pub fn enable_experimental_multisig(wallet_file: &String) { pub fn enable_experimental_multisig(wallet_file: &String) {
warn!("Enabling experimental multisig...");
let bin_dir = get_monero_location(); let bin_dir = get_monero_location();
let user = std::env::var("USER").unwrap_or(utils::empty_string());
let file_path = format!("/home/{}/.{}/stagenet/wallet/{}", user, crate::APP_NAME, &wallet_file);
let wallet_password = let wallet_password =
std::env::var(crate::MONERO_WALLET_PASSWORD).unwrap_or(String::from("password")); std::env::var(crate::MONERO_WALLET_PASSWORD).unwrap_or(String::from("password"));
let args = vec![ let release_env = utils::get_release_env();
let args = if release_env == utils::ReleaseEnvironment::Production {
vec![
"--password", &wallet_password, "--password", &wallet_password,
"--wallet-file", &wallet_file, "--wallet-file", &file_path,
"set", "enable-mulitsig-experimental", "1" "set", "enable-multisig-experimental", "1"
]; ]
let output = Command::new(format!("{}/monero-wallet-cli", bin_dir)) } else {
vec![
"--stagenet",
"--password", &wallet_password,
"--wallet-file", &file_path,
"set", "enable-multisig-experimental", "1"
]
};
let mut output = Command::new(format!("{}/monero-wallet-cli", bin_dir))
.stdin(Stdio::piped())
.stdout(Stdio::piped())
.args(args) .args(args)
.spawn() .spawn()
.expect("failed to enable experimental msig"); .expect("failed to enable experimental msig");
debug!("{:?}", output.stdout); let _ = std::io::stdout().flush();
let mut stdin = output.stdin.take().expect("Failed to open stdin");
std::thread::spawn(move || {
stdin.write_all(&wallet_password.as_bytes()).expect("Failed to write to stdin");
});
let d_output = output.wait_with_output().expect("Failed to read stdout");
debug!("{:?}", d_output);
} }

View file

@ -528,7 +528,7 @@ fn start_gui() {
/// Put all app pre-checks here /// Put all app pre-checks here
pub async fn start_up() { pub async fn start_up() {
info!("neveko is starting up"); info!("neveko is starting up");
warn!("monero multising is experimental and usage of neveko may lead to loss of funds"); warn!("monero multisig is experimental and usage of neveko may lead to loss of funds");
let args = args::Args::parse(); let args = args::Args::parse();
if args.remote_access { if args.remote_access {
start_micro_servers(); start_micro_servers();