From 51df689cb07e758f13ca47d529ea6c6ae9b1b7df Mon Sep 17 00:00:00 2001 From: hinto-janaiyo Date: Thu, 17 Nov 2022 13:03:45 -0500 Subject: [PATCH] gupax: add [FileWindow] selector for p2pool/xmrig path --- Cargo.lock | 280 +++++++++++++++++++++++++++++++++++++++++++++++---- Cargo.toml | 4 +- src/disk.rs | 2 +- src/gupax.rs | 61 ++++++++++- src/main.rs | 8 +- src/node.rs | 37 ++----- 6 files changed, 337 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6a57f0e..6b6fbb0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -263,6 +263,18 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "atk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + [[package]] name = "atomic" version = "0.5.1" @@ -444,13 +456,23 @@ dependencies = [ ] [[package]] -name = "calloop" -version = "0.10.2" +name = "cairo-sys-rs" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eb0438b3c6d262395fe30e6de9a61beb57ea56290b00a07f227fe6e20cbf2" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +dependencies = [ + "libc", + "system-deps", +] + +[[package]] +name = "calloop" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bcf530afb40e45e14440701e5e996d7fd139e84a912a4d83a8d6a0fb3e58663" dependencies = [ "log", - "nix 0.24.2", + "nix 0.25.0", "slotmap", "thiserror", "vec_map", @@ -477,6 +499,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" +[[package]] +name = "cfg-expr" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" +dependencies = [ + "smallvec", +] + [[package]] name = "cfg-if" version = "1.0.0" @@ -1029,9 +1060,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer 0.10.3", "crypto-common", @@ -1632,6 +1663,36 @@ dependencies = [ "slab", ] +[[package]] +name = "gdk-pixbuf-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gdk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps", +] + [[package]] name = "generic-array" version = "0.14.6" @@ -1692,6 +1753,19 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +[[package]] +name = "gio-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", + "winapi", +] + [[package]] name = "gl_generator" version = "0.14.0" @@ -1703,6 +1777,16 @@ dependencies = [ "xml-rs", ] +[[package]] +name = "glib-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +dependencies = [ + "libc", + "system-deps", +] + [[package]] name = "glow" version = "0.11.2" @@ -1780,6 +1864,35 @@ dependencies = [ "gl_generator", ] +[[package]] +name = "gobject-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +dependencies = [ + "glib-sys", + "libc", + "system-deps", +] + +[[package]] +name = "gtk-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps", +] + [[package]] name = "gupax" version = "0.2.0" @@ -1804,9 +1917,11 @@ dependencies = [ "monero", "num-format", "num_cpus", + "openssl", "rand 0.8.5", "regex", "reqwest", + "rfd", "rusqlite", "serde", "serde_json", @@ -1919,7 +2034,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -2528,6 +2643,19 @@ dependencies = [ "memoffset", ] +[[package]] +name = "nix" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e322c04a9e3440c327fca7b6c8a63e6890a32fa2ad689db972425f07e0d22abb" +dependencies = [ + "autocfg", + "bitflags", + "cfg-if", + "libc", + "memoffset", +] + [[package]] name = "nohash-hasher" version = "0.2.0" @@ -2737,6 +2865,15 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "openssl-src" +version = "111.24.0+1.1.1s" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3498f259dab01178c6228c6b00dcef0ed2a2d5e20d648c017861227773ea4abd" +dependencies = [ + "cc", +] + [[package]] name = "openssl-sys" version = "0.9.77" @@ -2746,6 +2883,7 @@ dependencies = [ "autocfg", "cc", "libc", + "openssl-src", "pkg-config", "vcpkg", ] @@ -2768,6 +2906,18 @@ dependencies = [ "ttf-parser", ] +[[package]] +name = "pango-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps", +] + [[package]] name = "parking_lot" version = "0.12.1" @@ -2820,7 +2970,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.5", + "digest 0.10.6", "hmac", "password-hash", "sha2 0.10.6", @@ -3191,9 +3341,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" +checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" dependencies = [ "base64", "bytes", @@ -3238,6 +3388,30 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90987092c28e12b9cfcea38be09f931b7cfcfe41429f2d0971f2cd57903d5d12" +[[package]] +name = "rfd" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0149778bd99b6959285b0933288206090c50e2327f47a9c463bfdbf45c8823ea" +dependencies = [ + "block", + "dispatch", + "glib-sys", + "gobject-sys", + "gtk-sys", + "js-sys", + "lazy_static", + "log", + "objc", + "objc-foundation", + "objc_id", + "raw-window-handle 0.5.0", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows", +] + [[package]] name = "ring" version = "0.16.20" @@ -3260,7 +3434,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b" dependencies = [ "byteorder", - "digest 0.10.5", + "digest 0.10.6", "num-bigint-dig", "num-integer", "num-iter", @@ -3550,7 +3724,7 @@ checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -3561,7 +3735,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -3585,7 +3759,7 @@ checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -3594,7 +3768,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" dependencies = [ - "digest 0.10.5", + "digest 0.10.6", "keccak", ] @@ -3807,6 +3981,19 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "system-deps" +version = "6.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" +dependencies = [ + "cfg-expr", + "heck 0.4.0", + "pkg-config", + "toml", + "version-compare", +] + [[package]] name = "tar" version = "0.4.38" @@ -4126,7 +4313,7 @@ checksum = "0a212a87f32d6703b08276ce59e26b4b18e14b4e45bbd08d5fcacd93ffca8841" dependencies = [ "arrayref", "bytes", - "digest 0.10.5", + "digest 0.10.6", "educe", "generic-array", "getrandom 0.2.8", @@ -4166,7 +4353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cfbe2cd71c0753a039f7e212d81fd69ac93903ba7f0bafd3db6d5e8b8607022" dependencies = [ "caret", - "digest 0.10.5", + "digest 0.10.6", "signature", "thiserror", "tor-bytes", @@ -4287,7 +4474,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1105ea5a5e348f0e2d81cd1f60c1fdbe84b4f9f15f67d8917bca2911a72878b7" dependencies = [ - "digest 0.10.5", + "digest 0.10.6", "hex", "thiserror", "tor-llcrypto", @@ -4330,7 +4517,7 @@ dependencies = [ "base64", "derive_builder_fork_arti", "derive_more", - "digest 0.10.5", + "digest 0.10.6", "educe", "event-listener", "fs-mistrust", @@ -4443,7 +4630,7 @@ dependencies = [ "base64", "ctr", "curve25519-dalek", - "digest 0.10.5", + "digest 0.10.6", "ed25519-dalek", "getrandom 0.2.8", "hex", @@ -4497,7 +4684,7 @@ dependencies = [ "base64ct", "bitflags", "derive_more", - "digest 0.10.5", + "digest 0.10.6", "educe", "hex", "once_cell", @@ -4546,7 +4733,7 @@ dependencies = [ "cipher 0.4.3", "coarsetime", "derive_builder_fork_arti", - "digest 0.10.5", + "digest 0.10.6", "educe", "futures", "generic-array", @@ -4778,6 +4965,12 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" +[[package]] +name = "version-compare" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" + [[package]] name = "version_check" version = "0.9.4" @@ -5070,6 +5263,19 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +dependencies = [ + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", +] + [[package]] name = "windows-sys" version = "0.36.1" @@ -5110,6 +5316,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +[[package]] +name = "windows_aarch64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" + [[package]] name = "windows_aarch64_msvc" version = "0.42.0" @@ -5122,6 +5334,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + [[package]] name = "windows_i686_gnu" version = "0.42.0" @@ -5134,6 +5352,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +[[package]] +name = "windows_i686_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" + [[package]] name = "windows_i686_msvc" version = "0.42.0" @@ -5146,6 +5370,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + [[package]] name = "windows_x86_64_gnu" version = "0.42.0" @@ -5164,6 +5394,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + [[package]] name = "windows_x86_64_msvc" version = "0.42.0" diff --git a/Cargo.toml b/Cargo.toml index 3c2db3f..d69ebb3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,10 +36,11 @@ log = "0.4.17" monero = "0.18.0" num_cpus = "1.13.1" num-format = "0.4.0" -#openssl = { version = "*", features = ["vendored"] } +openssl = { version = "*", features = ["vendored"] } rand = "0.8.5" regex = "1.6.0" reqwest = { version = "0.11.12", features = ["blocking", "json"] } +rfd = "0.10.0" rusqlite = { version = "0.28.0", features = ["bundled"] } serde = { version = "1.0.145", features = ["rc", "derive"] } serde_json = "1.0" @@ -47,7 +48,6 @@ sha2 = "0.10.6" tls-api = "0.9.0" tls-api-native-tls = "0.9.0" tokio = { version = "1.21.2", features = ["full"] } -#toml = "0.5.9" toml = { version = "0.5.9", features = ["preserve_order"] } tor-rtcompat = "0.7.0" walkdir = "2.3.2" diff --git a/src/disk.rs b/src/disk.rs index 0a21194..c4a6a89 100644 --- a/src/disk.rs +++ b/src/disk.rs @@ -73,7 +73,7 @@ pub fn get_file_path(file: File) -> Result { let mut path = match dirs::data_dir() { Some(mut path) => { path.push(DIRECTORY); - info!("OS data path ... OK"); + info!("OS | Data path ... OK"); path }, None => { error!("Couldn't get OS PATH for data"); return Err(TomlError::Path(PATH_ERROR.to_string())) }, diff --git a/src/gupax.rs b/src/gupax.rs index 45e32ba..6bde3b3 100644 --- a/src/gupax.rs +++ b/src/gupax.rs @@ -29,8 +29,33 @@ use std::thread; use std::sync::{Arc,Mutex}; use log::*; +//---------------------------------------------------------------------------------------------------- FileWindow +// Struct for writing/reading the path state. +// The opened file picker is started in a new +// thread so main() needs to be in sync. +pub struct FileWindow { + thread: bool, // Is there already a FileWindow thread? + picked_p2pool: bool, // Did the user pick a path for p2pool? + picked_xmrig: bool, // Did the user pick a path for xmrig? + p2pool_path: String, // The picked p2pool path + xmrig_path: String, // The picked p2pool path +} + +impl FileWindow { + pub fn new() -> Arc> { + Arc::new(Mutex::new(Self { + thread: false, + picked_p2pool: false, + picked_xmrig: false, + p2pool_path: String::new(), + xmrig_path: String::new(), + })) + } +} + +//---------------------------------------------------------------------------------------------------- Gupax impl Gupax { - pub fn show(&mut self, og: &Arc>, state_ver: &Arc>, update: &Arc>, width: f32, height: f32, ctx: &egui::Context, ui: &mut egui::Ui) { + pub fn show(&mut self, og: &Arc>, state_ver: &Arc>, update: &Arc>, file_window: &Arc>, width: f32, height: f32, ctx: &egui::Context, ui: &mut egui::Ui) { // Update button + Progress bar ui.group(|ui| { // These are in unnecessary [ui.vertical()]'s @@ -127,6 +152,21 @@ impl Gupax { }; } ui.spacing_mut().text_edit_width = ui.available_width() - SPACE; + if ui.button("Select File").clicked() { + if file_window.lock().unwrap().thread == false { + let file_window = Arc::clone(file_window); + thread::spawn(move|| { + match rfd::FileDialog::new().set_title("Select P2Pool Binary for Gupax").pick_file() { + Some(path) => { + info!("Gupax | [{}] path selected for P2Pool", path.display()); + file_window.lock().unwrap().p2pool_path = path.display().to_string(); + file_window.lock().unwrap().picked_p2pool = true; + }, + None => info!("Gupax | No path selected for P2Pool"), + }; + }); + } + } ui.text_edit_singleline(&mut self.p2pool_path).on_hover_text(GUPAX_PATH_P2POOL); }); ui.horizontal(|ui| { @@ -145,7 +185,26 @@ impl Gupax { }; } ui.spacing_mut().text_edit_width = ui.available_width() - SPACE; + if ui.button("Select File").clicked() { + if file_window.lock().unwrap().thread == false { + let file_window = Arc::clone(file_window); + thread::spawn(move|| { + match rfd::FileDialog::new().set_title("Select XMRig Binary for Gupax").pick_file() { + Some(path) => { + info!("Gupax | [{}] path selected for XMRig", path.display()); + file_window.lock().unwrap().xmrig_path = path.display().to_string(); + file_window.lock().unwrap().picked_xmrig = true; + }, + None => info!("Gupax | No path selected for XMRig"), + }; + }); + } + } ui.text_edit_singleline(&mut self.xmrig_path).on_hover_text(GUPAX_PATH_XMRIG); }); + let mut guard = file_window.lock().unwrap(); + if guard.picked_p2pool { self.p2pool_path = guard.p2pool_path.clone(); guard.picked_p2pool = false; } + if guard.picked_xmrig { self.xmrig_path = guard.xmrig_path.clone(); guard.picked_xmrig = false; } + drop(guard); } } diff --git a/src/main.rs b/src/main.rs index 38389b2..107c2d0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -54,7 +54,7 @@ mod gupax; mod p2pool; mod xmrig; mod update; -use {ferris::*,constants::*,node::*,disk::*,status::*,update::*}; +use {ferris::*,constants::*,node::*,disk::*,status::*,update::*,gupax::*}; //---------------------------------------------------------------------------------------------------- Struct + Impl // The state of the outer main [App]. @@ -69,6 +69,7 @@ pub struct App { og: Arc>, // og = Old state to compare against state: State, // state = Working state (current settings) update: Arc>, // State for update data [update.rs] + file_window: Arc>, // State for the path selector in [Gupax] ping: Arc>, // Ping data found in [node.rs] og_node_vec: Vec<(String, Node)>, // Manual Node database node_vec: Vec<(String, Node)>, // Manual Node database @@ -110,6 +111,7 @@ impl App { } fn new() -> Self { + info!("Initializing App Struct..."); let app = Self { tab: Tab::default(), ping: Arc::new(Mutex::new(Ping::new())), @@ -118,6 +120,7 @@ impl App { og: Arc::new(Mutex::new(State::new())), state: State::new(), update: Arc::new(Mutex::new(Update::new(String::new(), PathBuf::new(), PathBuf::new(), true))), + file_window: FileWindow::new(), og_node_vec: Node::new_vec(), node_vec: Node::new_vec(), diff: false, @@ -178,6 +181,7 @@ impl App { let tor = og.gupax.update_via_tor; app.update = Arc::new(Mutex::new(Update::new(app.exe.clone(), p2pool_path, xmrig_path, tor))); drop(og); // Unlock [og] + info!("App ... OK"); app } } @@ -861,7 +865,7 @@ impl eframe::App for App { Status::show(self, self.width, self.height, ctx, ui); } Tab::Gupax => { - Gupax::show(&mut self.state.gupax, &self.og, &self.state.version, &self.update, self.width, self.height, ctx, ui); + Gupax::show(&mut self.state.gupax, &self.og, &self.state.version, &self.update, &self.file_window, self.width, self.height, ctx, ui); } Tab::P2pool => { P2pool::show(&mut self.state.p2pool, &mut self.node_vec, &self.og, self.p2pool, &self.ping, &self.regex, self.width, self.height, ctx, ui); diff --git a/src/node.rs b/src/node.rs index 5756e4d..f2fb2aa 100644 --- a/src/node.rs +++ b/src/node.rs @@ -34,12 +34,12 @@ pub const CAKE: &'static str = "xmr-node.cakewallet.com:18081"; pub const CAKE_EU: &'static str = "xmr-node-eu.cakewallet.com:18081"; pub const CAKE_UK: &'static str = "xmr-node-uk.cakewallet.com:18081"; pub const CAKE_US: &'static str = "xmr-node-usa-east.cakewallet.com:18081"; +pub const FEATHER_1: &'static str = "selsta1.featherwallet.net:18081"; +pub const FEATHER_2: &'static str = "selsta2.featherwallet.net:18081"; pub const MAJESTICBANK_IS: &'static str = "node.majesticbank.is:18089"; pub const MAJESTICBANK_SU: &'static str = "node.majesticbank.su:18089"; pub const MONERUJO: &'static str = "nodex.monerujo.io:18081"; pub const RINO: &'static str = "node.community.rino.io:18081"; -pub const SELSTA_1: &'static str = "selsta1.featherwallet.net:18081"; -pub const SELSTA_2: &'static str = "selsta2.featherwallet.net:18081"; pub const SETH: &'static str = "node.sethforprivacy.com:18089"; pub const SUPPORTXMR: &'static str = "node.supportxmr.com:18081"; pub const SUPPORTXMR_IR: &'static str = "node.supportxmr.ir:18081"; @@ -47,14 +47,14 @@ pub const SINGAPORE: &'static str = "singapore.node.xmr.pm:18089"; pub const XMRVSBEAST: &'static str = "p2pmd.xmrvsbeast.com:18081"; pub const NODE_IPS: [&'static str; 16] = [ - C3POOL,CAKE,CAKE_EU,CAKE_UK,CAKE_US,MAJESTICBANK_IS,MAJESTICBANK_SU,MONERUJO, - RINO,SELSTA_1,SELSTA_2,SETH,SUPPORTXMR,SUPPORTXMR_IR,SINGAPORE,XMRVSBEAST, + C3POOL,CAKE,CAKE_EU,CAKE_UK,CAKE_US,FEATHER_1,FEATHER_2,MAJESTICBANK_IS,MAJESTICBANK_SU, + MONERUJO,RINO,SETH,SUPPORTXMR,SUPPORTXMR_IR,SINGAPORE,XMRVSBEAST, ]; #[derive(Copy,Clone,Eq,PartialEq,Debug,Deserialize,Serialize)] pub enum NodeEnum { C3pool,Cake,CakeEu,CakeUk,CakeUs,MajesticBankIs,MajesticBankSu,Monerujo, - Rino,Selsta1,Selsta2,Seth,SupportXmr,SupportXmrIr,Singapore,XmrVsBeast, + Rino,Feather1,Feather2,Seth,SupportXmr,SupportXmrIr,Singapore,XmrVsBeast, } impl std::fmt::Display for NodeEnum { @@ -122,12 +122,12 @@ pub fn ip_to_enum(ip: &'static str) -> NodeEnum { CAKE_EU => CakeEu, CAKE_UK => CakeUk, CAKE_US => CakeUs, + FEATHER_1 => Feather1, + FEATHER_2 => Feather2, MAJESTICBANK_IS => MajesticBankIs, MAJESTICBANK_SU => MajesticBankSu, MONERUJO => Monerujo, RINO => Rino, - SELSTA_1 => Selsta1, - SELSTA_2 => Selsta2, SETH => Seth, SINGAPORE => Singapore, SUPPORTXMR => SupportXmr, @@ -143,12 +143,12 @@ pub fn enum_to_ip(node: NodeEnum) -> &'static str { CakeEu => CAKE_EU, CakeUk => CAKE_UK, CakeUs => CAKE_US, + Feather1 => FEATHER_1, + Feather2 => FEATHER_2, MajesticBankIs => MAJESTICBANK_IS, MajesticBankSu => MAJESTICBANK_SU, Monerujo => MONERUJO, Rino => RINO, - Selsta1 => SELSTA_1, - Selsta2 => SELSTA_2, Seth => SETH, Singapore => SINGAPORE, SupportXmr => SUPPORTXMR, @@ -237,24 +237,7 @@ pub fn ping(ping: Arc>, og: Arc>) { for ip in NODE_IPS.iter() { // Match IP - let id = match *ip { - C3POOL => C3pool, - CAKE => Cake, - CAKE_EU => CakeEu, - CAKE_UK => CakeUk, - CAKE_US => CakeUs, - MAJESTICBANK_IS => MajesticBankIs, - MAJESTICBANK_SU => MajesticBankSu, - MONERUJO => Monerujo, - RINO => Rino, - SELSTA_1 => Selsta1, - SELSTA_2 => Selsta2, - SETH => Seth, - SINGAPORE => Singapore, - SUPPORTXMR => SupportXmr, - SUPPORTXMR_IR => SupportXmrIr, - _ => XmrVsBeast, - }; + let id = ip_to_enum(ip); // Misc let mut timeout = 0; let mut mid = Duration::new(0, 0);