Commit graph

219 commits

Author SHA1 Message Date
hinto-janaiyo
830ee9ebcd
Status Submenu: update hashrate dominance with [Manual] hashrate
The % dominance stats now update along with the manual hashrate.

The updating UI blocks were also moved so all the updating stats
are close to each other.
2023-01-01 15:37:00 -05:00
hinto-janaiyo
f97935d1e8
Status Submenu: remove [Monero] submenu, fix [P2Pool] spacing
There's not much interesting data I could display that regular
Monero GUI or a block explorer can't do, so I'm scrapping the
[Monero] tab. Maybe it'll come back if I rewrite [Status] to include
graphs (never).

The [P2Pool] submenu is pretty much done, this changed the spacing
to make the logs larger and so all the elements fit correctly.
2023-01-01 14:51:30 -05:00
hinto-janaiyo
475bdcce0e
Status Submenu: add [***] progress bar for P2Pool stat refresh 2023-01-01 09:46:23 -05:00
hinto-janaiyo
a3b6521415
Status Submenu: (de)serialize logs in our own format
Instead of saving P2Pool payout logs as they are, they are now
(de)serialized in the same [Display] format, e.g:

<DATE> <TIME>            | <12_DOT_FLOAT> XMR | Block <BLOCK>
2022-09-31 12:53:52.8683 | 0.166122683521 XMR | Block 2,713,512

The parsing functions were updated to be able to read both raw
log lines and the new above format.
2022-12-31 13:47:41 -05:00
hinto-janaiyo
df09eb343a
v1.0.1 2022-12-31 10:03:52 -05:00
hinto-janaiyo
e42e776f00
main: update absolute paths before starting processes
Some situations won't update the path and so starting processes
didn't do anything and failed, this makes sure we have a valid
path before starting.
2022-12-30 19:29:30 -05:00
hinto-janaiyo
e8751842ce
Status Submenu: Add [Status/P2Pool] UI and data 2022-12-30 19:22:43 -05:00
hinto-janaiyo
08cda22e68
Status Submenu: add Unix [750] perms for Gupax data folder 2022-12-30 09:39:03 -05:00
hinto-janaiyo
04d270b37f
main: properly show "Okay|Panic" after initial disk error
When Gupax can't read disk files at startup, it will [Error],
with an option to reset the state file, the user is given two
options [Yes] or [No].

Gupax's global error screen system ignores new errors from
overriding the current IF the current is a [Panic]. This makes
sure the worst errors stay on screen.

This also means after clicking [Yes], it will get ignored and the
screen won't change. So, allow for certain buttons to pass through.

I should probably re-make this whole global error screen system,
it's pretty much a global variable anyone can mutate randomly.
2022-12-29 17:23:49 -05:00
hinto-janaiyo
553081d2aa
Status Submenu: add basic [PayoutView] GUI <-> API UI 2022-12-29 17:03:29 -05:00
hinto-janaiyo
983f6560ad
Submenu Status: clean up types, funcs, etc
General cleanup and optimizations. Some functions are fixed,
some were turned into [const fn], and other small stuff like
[AtomicUnit] using a [u64] instead of a [u128]
2022-12-29 12:12:12 -05:00
hinto-janaiyo
30d8968dd8
Submenu Status: make regex more precise 2022-12-28 22:46:52 -05:00
hinto-janaiyo
19b5a2790b
Status Submenu: add macros!()
Writing [a.lock().unwrap().b.lock().unwrap()] sucks, so these are
some macros that are for common situations. This commit also has
a [sed] replace on all previous code that _could_ have been a macro,
which they all are now.

Hopefully nothing breaks :D
2022-12-28 22:03:45 -05:00
hinto-janaiyo
46b528ecbe
Status Submenu: separate [Regex], [AtomicUnit], [PayoutOrd]
This fixes some funcs, tests and separates some structs into separate files.
2022-12-28 16:04:26 -05:00
hinto-janaiyo
fd6398fb4d
Status Submenu: add [PayoutOrd] parse & update from log 2022-12-27 19:47:36 -05:00
hinto-janaiyo
13280e229c
Status Submenu: add [PayoutOrd] struct, impl, tests 2022-12-27 17:27:10 -05:00
hinto-janaiyo
a66e52bee5
Status Submenu: add submenu UI to [Status] tab 2022-12-27 16:29:12 -05:00
hinto-janaiyo
51816323cd
Status Submenu: add [AtomicUnit] to [helper.rs] 2022-12-27 16:28:43 -05:00
hinto-janaiyo
6b74e20347
Status Submenu: add [Status] to [disk::State] 2022-12-27 12:58:46 -05:00
hinto-janaiyo
267f636382
Status Submenu: add [user_p2pool_percent] & [user_monero_percent]
user_p2pool_percent = The percent of hashrate the user accounts for
relative to all of P2Pool's hashrate.

user_monero_percent = The percent of hashrate the user accounts for
relative to all of Monero's hashrate.
2022-12-27 11:15:14 -05:00
hinto-janaiyo
a6222bfa73
Status Submenu: add new API reads in P2Pool watchdog loop
This adds all necessary functions/conversions/serde/tests for the
new APIs. It also includes the actual reads inside the watchdog loop.

Every loop, [tick] will increment by 1. At [60], the watchdog
will attempt to read and parse the [network] & [pool] APIs.
Since the loop is [900ms], this means this will occur around
every 54 seconds. [tick] gets reset upon successful read/parsing.
2022-12-27 09:38:02 -05:00
hinto-janaiyo
2846441049
Status Submenu: add [GupaxP2poolApi] to [disk.rs], add to [App] 2022-12-26 17:37:45 -05:00
hinto-janaiyo
3175824a2b
Status Submenu: add tests for p2pool api serde 2022-12-26 14:22:05 -05:00
hinto-janaiyo
7d552c1fb8
Status Submenu: separate [Human*] from helper into [human.rs] 2022-12-26 14:02:27 -05:00
hinto-janaiyo
9245cc8a11
Status Submenu: add serde for p2pools [local/network/pool] API 2022-12-26 13:59:03 -05:00
hinto-janaiyo
acba71f157
Status Submenu: fix [Result] collision with [std::result::Result]
monerod's json-rpc response field is [result],
which collides with Rust's [Result], oops.
2022-12-25 13:30:27 -05:00
hinto-janaiyo
2d461ae4ea
Status Submenu: add matching structs for monerod's [get_info] 2022-12-25 11:22:31 -05:00
hinto-janaiyo
4cac807ca7
update: be more lenient on new binary filename match
Instead of a single "true" filename when walking dirs searching
for the newly downloaded (Gupax|P2Pool|XMRig), allow for multiple
valid names as long as they _seem_ correct AND are files, e.g:

GUPAX|Gupax|gupax (.exe)
P2POOL|P2Pool|P2pool|p2pool (.exe)
XMRIG|XMRig|Xmrig|xmrig (.exe)

If the packaging naming schemes change for any of these,
the update code will be able to actually handle it.
2022-12-24 10:44:12 -05:00
hinto-janaiyo
9d66a20360
status: enable p2pool/xmrig "Image" stats
These couldn't be fit in before since there wasn't enough space.
They still can't all fit in, but the most important ones can be
after adjusting the font sizes and height spacing.
2022-12-23 14:06:25 -05:00
hinto-janaiyo
3991c26d76
p2pool/xmrig: red/green [Start] on errors with solution in tooltip 2022-12-23 11:41:43 -05:00
hinto-janaiyo
b5add2f4bf
main: add more info to debug screen 2022-12-23 09:44:20 -05:00
hinto-janaiyo
3b0d247bc6
app: change max frame size to 4k (3840×2160)
If the user fullscreens, restricting to the 4:3 aspect ratio
doesn't make sense, so change the test for only the default/min.

Max is 4k since... who owns 8k monitors :D
2022-12-22 22:21:05 -05:00
hinto-janaiyo
c0161010fa
p2pool: fix custom node selection sometimes using old values 2022-12-22 22:00:57 -05:00
hinto-janaiyo
8586e3e7ca
gupax: rearrange [Advanced] UI, add underscored labels 2022-12-22 21:57:49 -05:00
hinto-janaiyo
10d23ca476
status: show 7 floating point for p2pool stats 2022-12-22 21:55:28 -05:00
hinto-janaiyo
17feda5cb3
macos: warn user if gupax is in [/private] directory
macOS moves "dangerous" applications into a read-only [/private]
filesystem. This messes up with the updater and default P2Pool and
XMRig paths.

If [/private] is detected, show a panic screen upon Gupax startup
telling the user to move it to [/Applications]. This _seems_ to
make macOS relax a little (after an arbitrary amount of time...)
2022-12-22 11:56:25 -05:00
hinto-janaiyo
e6bf49b309
v1.0.0
Includes some small fixes:

- [localhost] will always be changed to [127.0.0.1] in the case
  of XMRig (it doesn't understand localhost by itself)

- P2Pool/XMRig API path now checks for a [/] or [\]
  and correctly applies the endpoint, e.g:
  BASEPATH = "/home/hinto/p2pool"
  ENDPOINT = "local/stats"
  if BASEPATH doesn't end with '/' { BASEPATH.push('/') }
  API_PATH = BASEPATH + ENDPOINT ("/home/hinto/p2pool/local/stats")

- P2Pool payout line got changed in: be18ad4177
  The regex is now a more generic: [payout of [0-9].[0-9]+ XMR]
2022-12-19 18:54:46 -05:00
hinto-janaiyo
6c0ba2be9a
main: add [d] debug info screen 2022-12-19 00:00:06 -05:00
hinto-janaiyo
da719df6d6
helper: reset [Pub*Api] if restarting process 2022-12-18 20:47:23 -05:00
hinto-janaiyo
8884dbd023
helper: fix p2pool's api combine, add #[test], add [debug!()] 2022-12-18 12:15:42 -05:00
hinto-janaiyo
3db1adce75
linux: add [--features distro] build flag 2022-12-18 10:22:32 -05:00
hinto-janaiyo
233ccd62ac
helper: add [HumanTime] & [HumanNumber] #[test]s 2022-12-17 20:51:50 -05:00
hinto-janaiyo
e35f5b243b
Add #[test]s, fix [State::merge()], fix [quit_twice] 2022-12-17 17:18:06 -05:00
hinto-janaiyo
03411bdb5e
main: fix [About] spacing 2022-12-17 13:42:04 -05:00
hinto-janaiyo
e90fbe27b1
update: misc cleanups 2022-12-17 13:35:13 -05:00
hinto-janaiyo
7439c89a52
main: quit if [ALT+F4] on [ask_before_quit], add [save_before_quit]
If user clicked the [X] or [ALT+F4] while on the [ask_before_quit]
screen, it'll actually exit now.

The [save_before_quit] option actually... saves before quitting now.
No cloning since we're exiting and no [ErrorState] setting on errors.
The console logs will show if a save error happens.
2022-12-17 11:00:32 -05:00
hinto-janaiyo
d1a4d66268
helper: fix GUI log reset message 2022-12-17 09:52:33 -05:00
hinto-janaiyo
0e15f0a73a
p2pool: add [Select random node] and [<- Last] & [Next ->] UI 2022-12-16 23:19:33 -05:00
hinto-janaiyo
166c89a8d1
disk: fix serializing quotes in strings 2022-12-16 22:38:46 -05:00
hinto-janaiyo
3ac0b98802
disk: handle some [.unwrap()]s correctly 2022-12-16 19:16:16 -05:00
hinto-janaiyo
ddec9fcb6d
cargo check/clippy fixes 2022-12-16 16:46:06 -05:00
hinto-janaiyo
813a59353e
helper: fix [XMR per ...] stat
It was using the [payouts] variable as a base instead of [xmr].
2022-12-16 13:36:39 -05:00
hinto-janaiyo
29445e1bd1
keys/p2pool/xmrig: change key shortcuts, check for [ACCEPTABLE_*]
Keyboard shortcuts [Left] & [Right] were clobbering the
[TextEdit] left/right movement, so they are now [Z/X].
The shortcuts also look to make sure a TextEdit isn't
in focus so that [S/R/Z/X] can actually be typed.

P2Pool/XMRig now make sure the path ends with an [ACCEPTABLE_*]
value (e.g: P2pool, P2POOL) before enabling the [Start] UI.
2022-12-16 10:30:57 -05:00
hinto-janaiyo
aad1a26e1e
Add to Simple/Advanced README 2022-12-15 23:17:40 -05:00
hinto-janaiyo
f65ce9a1b8
main: allow [.] in [name] regex
[GUPAX_VERSION_UNDERSCORE] was used as the XMRig [Rig], which didn't
allow [.] (Gupax_v1.0.0), so allow for dots in the [name] regex.
2022-12-15 18:50:50 -05:00
hinto-janaiyo
055f498a5d
Add to Advanced README 2022-12-15 13:39:14 -05:00
hinto-janaiyo
5e2f0b7ed7
Update FAQ & Community node list 2022-12-14 21:55:10 -05:00
hinto-janaiyo
36ba38f1d9
helper: fix log reset message 2022-12-14 18:25:36 -05:00
hinto-janaiyo
035e3e782a
xmrig: fix [Rig] check using [self.name] value
In XMRig Advanced the color/checkmark code was being given [self.name]
instead of [self.rig] which caused them to be linked, e.g: you clear
"Name" and [Rig] goes red instead.
2022-12-14 17:46:44 -05:00
hinto-janaiyo
631e4cc2db
helper: optimize PTY output parsing
(Stupid) Problem (caused by me):
--------------------------------
Up to 56million bytes of P2Pool/XMRig output were being held in memory
so they could be parsed. P2Pool output is the only one that needs
parsing as well, so double bad.

(Obvious) Solution:
-------------------
For XMRig:
Just don't write to an extra [String] buffer.

For P2Pool:
Parse the output, then... toss it out? You don't need the output
anymore after you parsed the values out, e.g: `Payouts`, `XMR Mined`.
Once they are parsed, add them to the current values instead of
completely overwriting them and then toss out the log buffer.

Now Gupax doesn't use stupid amounts of memory holding what is
essentially dead logs we already parsed. The parsing will be a lot
cheaper too since we aren't parsing the entire thing over and over
again (it was already pretty fast though).
2022-12-14 17:37:29 -05:00
hinto-janaiyo
d3bbe2ece2
cargo check/clippy fixes 2022-12-13 23:05:13 -05:00
hinto-janaiyo
2b80aa0277
v0.9.0
Fixes:
    - Up/Down only work if UI is enabled
    - Re-pushed [P2POOL_API_PATH] to popped relative path
      but only after giving the popped path to P2Pool
          1. [/tmp/gupax/p2pool/p2pool] -> [/tmp/gupax/p2pool]
          2. Give that to P2Pool
          3. [/tmp/gupax/p2pool] -> [/tmp/gupax/p2pool/local/stats]
          4. Give that to the watchdog (so it can read it)
2022-12-13 15:06:07 -05:00
hinto-janaiyo
9eb49b6dbd
p2pool/xmrig: handle custom arg [--no-color], API ip/port/path 2022-12-13 12:44:57 -05:00
hinto-janaiyo
79b0361152
helper/main: fix [Arc<Mutex>] deadlocks, add keyboard shortcuts
There was a deadlock happening between the [Helper]'s [gui_api_p2pool]
and the GUI's [gui_api_p2pool], since the locking order was different.
The watchdog loop locking order was fixed as well. This was a pain to
track down, better than a data race... I guess.

Oh and keyboard shortcuts were added in this commit too.

Comment from code:

// The ordering of these locks is _very_ important. They MUST be in sync
// with how the main GUI thread locks stuff or a deadlock will occur
// given enough time. They will eventually both want to lock the [Arc<Mutex>]
// the other thread is already locking. Yes, I figured this out the hard way,
// hence the vast amount of debug!() messages.
//
// Example of different order (BAD!):
//
// GUI Main       -> locks [p2pool] first
// Helper         -> locks [gui_api_p2pool] first
// GUI Status Tab -> trys to lock [gui_api_p2pool] -> CAN'T
// Helper         -> trys to lock [p2pool] -> CAN'T
//
// These two threads are now in a deadlock because both
// are trying to access locks the other one already has.
//
// The locking order here must be in the same chronological
// order as the main GUI thread (top to bottom).
2022-12-13 10:14:26 -05:00
hinto-janaiyo
128fa500bb
v0.9.0 (maybe) 2022-12-12 17:24:05 -05:00
hinto-janaiyo
798966d447
litter codebase with [debug!()]
The entire codebase is now littered with [debug!()] messages.
Thankfully [log] has 0 cost if you aren't using them, so regular
users won't have a runtime penalty unless they specify RUST_LOG=debug.
2022-12-12 14:50:34 -05:00
hinto-janaiyo
bf4e39c3a5
status: link helper & GUI's XMRig API 2022-12-11 22:01:37 -05:00
hinto-janaiyo
e2f6d90476
helper/sudo: small p2pool api fixes, don't allow ESC when [testing] 2022-12-11 20:44:46 -05:00
hinto-janaiyo
1e2b8f7803
xmrig/status: implement API hyper/tokio call; add [Gupax] stats 2022-12-11 15:51:07 -05:00
hinto-janaiyo
81ec266e0a
gupax: add [Auto-P2Pool/XMRig] for running at Gupax startup 2022-12-10 23:10:26 -05:00
hinto-janaiyo
b65b7a14d8
p2pool: fix [Simple] console scrollbar bug
Something todo with the height multiplier for [P2Pool Simple]'s
console was causing weird behavior when changing to other tabs.
With the console a bit bigger now, the scrollbar no longer shows
and there is less glitchy resizing when switching to other tabs.
2022-12-10 22:10:10 -05:00
hinto-janaiyo
1b999e3d9b
main/helper: change [Start] button, change [Sudo] input order 2022-12-10 21:55:57 -05:00
hinto-janaiyo
3fee0e5690
macOS: handle killing XMRig with [sudo]
Even with the parent-child relationship and direct process handle,
Gupax can't kill an XMRig spawned with [sudo] on macOS, even though
it can do it fine on Linux. So, on macOS, get the user's [sudo]
pass on the [Stop] button and summon a [sudo kill] on XMRig's PID.

This also complicates things since now we have to keep [SudoState]
somehow between a [Stop] and a [Start]. So there is macOS specific
code that now handles that.
2022-12-10 21:00:08 -05:00
hinto-janaiyo
4da775667b
windows/pty: include static [VCRUNTIME140.dll], change PTY size
Bare metal windows was complaining about this DLL, so it is now
included statically using [https://docs.rs/static_vcruntime/].
I tried statically linking everything for Windows but:
	1. It's not necessary, pretty much all DLLs needed
	   (except this one) are included in Windows 7+ by default
	2. It's a pain in the ass to build everything
	   statically, especially since Gupax needs OpenSSL.
	   (building OpenSSL on Windows == hell)

Windows/macOS were having console artifacts, escape codes and
random newlines would show up in P2Pool/XMRig output. After
thinking about it for a while, I realized I left the PTY
size to the default [24 rows/80 columns], hence the PTYs
prematurely inserting newlines and weird escape codes.

It works fine after setting it to [100/1000]. Interestingly,
Linux worked completely fine on 24/80, probably resizes internally.
2022-12-10 15:40:32 -05:00
hinto-janaiyo
929d80c61d
main: check for admin at init, good for windows, bad for unix 2022-12-09 22:06:42 -05:00
hinto-janaiyo
e7de536f18
windows: handle admin priviledge for xmrig
Please read the [src/README.md]. I hate windows so much.
2022-12-09 21:31:16 -05:00
hinto-janaiyo
965e070ff5
xmrig: fix node [Save] not change selected values 2022-12-08 22:37:50 -05:00
hinto-janaiyo
6dbf0386c4
p2pool/xmrig: add address/path check before allowing [Start] 2022-12-08 20:25:41 -05:00
hinto-janaiyo
a3802ef4f7
helper: start xmrig with sudo, implement [restart_xmrig()]
This commit takes care of correctly starting [sudo] with XMRig as
a command argument. The frontend [restart_*] function is also
implemented. In XMRig's case, the threads will sleep [3/5 seconds]
before [starting/restarting] so that [sudo] has time to open its
STDIN. This prevents premature inputs and outputting the password
to the STDOUT.
2022-12-08 18:34:31 -05:00
hinto-janaiyo
d30fb5563b
helper: optimize [String] output buffers
Instead of cloning the entirety of the process's output, this
commit adds a sort of hierarchy of string buffers:

We need:
1. The full output for stat parsing (max 1 month/56m bytes)
2. GUI output to be lightweight (max 1-2 hours/1m bytes)
3. GUI output buffered so it's on a refresh tick of 1 second

------------------------------------------------------------------
So this is the new buffer hierarchy, from low to high level:
[Process] <-> [Watchdog] <-> [Helper] <-> [GUI]
------------------------------------------------------------------
Process: Writes to 2 buffers, a FULL (stores everything) and
a BUF which is exactly the same, except this gets [mem:take]n later
Stuff gets written immediately if there is output detected.

Watchdog: [std::mem::take]'s [Process]'s BUF for itself.
Both FULL and BUF output overflows are checked in this loop.
This is done on a slightly faster tick (900ms).

Helper: Appends watchdog's BUF to GUI's already existing [String]
on a 1-second tick.

GUI: Does nothing, only locks & reads.
------------------------------------------------------------------

This means Helper's buffer will be swapped out every second, meaning
it'll almost always be empty. Process's FULL output will be the
heaviest, but is only used for backend parsing. GUI will be in the
middle. This system of buffers makes it so not every thread has to
hold it's own FULL copy of the output, in particular the GUI thread
was starting to lag a little due to loading so much output.
2022-12-08 12:29:38 -05:00
hinto-janaiyo
8281d97bc3
helper: copy p2pool functions to xmrig (todo!) 2022-12-07 20:50:14 -05:00
hinto-janaiyo
82918d4106
sudo: zeroize pass on every [ask_sudo()] call 2022-12-07 20:34:44 -05:00
hinto-janaiyo
06f19043ed
sudo: add [try_wait()] 5 second loop check for sudo 2022-12-07 20:22:41 -05:00
hinto-janaiyo
f988e4224c
main: add [zeroize] and implement sudo input/test screen for xmrig 2022-12-07 18:02:08 -05:00
hinto-janaiyo
31f23d9d58
app: check for overflowing user resolution values 2022-12-06 22:01:36 -05:00
hinto-janaiyo
9c323ec502
helper: p2pool - write directly to GUI thread on exit 2022-12-06 21:33:24 -05:00
hinto-janaiyo
33089ddca3
p2pool/app: add STDIN + clear at 56million bytes, 4:3 default ratio 2022-12-06 21:19:24 -05:00
hinto-janaiyo
05437720a2
helper: add data sync loop, add [ImgP2pool] for p2pool init data 2022-12-06 17:48:48 -05:00
hinto-janaiyo
016aeab1b6
helper: p2pool - add static [UserP2poolData] 2022-12-06 15:55:50 -05:00
hinto-janaiyo
b4a6dbec19
helper: p2pool - fix [Advanced] argument builder 2022-12-06 15:34:11 -05:00
hinto-janaiyo
9b1a815089
helper: p2pool - fix uptime, format with commas and spaces 2022-12-06 15:17:37 -05:00
hinto-janaiyo
e1829f967c
helper: p2pool - process output regardless of API file status 2022-12-06 13:23:16 -05:00
hinto-janaiyo
2a9ebd4cdf
helper: p2pool - connect major [Helper] APIs to GUI thread
Lots of stuff in this commit:
1. Implement [Start/Stop/Restart] and make it not possible for
the GUI to interact with that UI if [Helper] is doing stuff.
This prevents the obviously bad situation where [Helper] is in
the middle of spawning P2Pool, but the user is still allowed to
start it again, which would spawn another P2Pool. The main GUI
matches on the state and disables the appropriate UI so the
user can't do this.

2. Sync P2Pool's [Priv] and [Pub] output so that the GUI thread
is only rendering it once a second. All of Gupax also refreshes
at least once a second now as well.

3. Match the [ProcessState] with some colors in the GUI

4. GUI thread no longer directly starts/stops/restarts a process.
It will call a function in [Helper] that acts as a proxy.

5. The tokio [async_spawn_p2pool_watchdog()] function that was
a clone of the PTY version (but had async stuff) and all of the
related functions like the async STDOUT/STDERR reader is now
completely gone. It doesn't make sense to write the same code
twice, both [Simple] and [Advanced] will have a PTY, only
difference being the [Simple] UI won't have an input box.

6. P2Pool's exit code is now examined, either success or failure

7. Output was moved into it's own [Arc<Mutex>]. This allows for
more efficient writing/reading since before I had to lock all of
[Helper], which caused some noticable deadlocks in the GUI.

8. New [tab] field in [State<Gupax>], and GUI option to select
the tab that Gupax will start on.
2022-12-05 22:50:00 -05:00
hinto-janaiyo
1f3a472869
helper: p2pool - stdout payouts/xmr parser, priv -> pub functions 2022-12-05 14:55:50 -05:00
hinto-janaiyo
5d293054cf
helper: p2pool - fix args, basic watchdog loop, add STDOUT/STDERR handle to [Process] struct 2022-12-04 11:24:38 -05:00
hinto-janaiyo
d9d71c40d4
helper: translate priv p2pool/xmrig API into pub [Human*] structs 2022-12-03 20:12:40 -05:00
hinto-janaiyo
1a7df1e355
helper: turn [Helper] fields into [Arc]'s, add p2pool watchdog 2022-12-03 16:02:34 -05:00
hinto-janaiyo
0a8deee359
helper: add functions for p2pool/xmrig UI -> command arguments 2022-12-03 13:41:14 -05:00
hinto-janaiyo
f33207b503
main: fade in/out of black when resizing frame 2022-12-02 14:00:03 -05:00
hinto-janaiyo
bfbe0ee969
helper: map xmrig/p2pool JSON API key/values to structs for serde 2022-12-01 23:13:53 -05:00