// DragonX Wallet - ImGui Edition // Copyright 2024-2026 The Hush Developers // Released under the GPLv3 #pragma once namespace dragonx { class App; namespace ui { /** * @brief Render the Mining tab * Controls for CPU mining with RandomX */ void RenderMiningTab(App* app); /** * @brief Returns true when the thread benchmark is actively running. * Used by idle mining to avoid interfering with measurements. */ bool IsMiningBenchmarkActive(); /** * @brief Cancel a running thread benchmark and restore the miner only if it was running before the benchmark. * Safe to call when no benchmark is active (no-op). Used when leaving the Mining tab or switching to * solo mode so the miner isn't left stuck at a benchmark step. (L-04, L-11) */ void CancelMiningBenchmark(App* app, bool restoreMiner = true); /** * @brief Advance the thread benchmark state machine. Call once per App::update() (ungated by connectivity). * No-op when no benchmark is active. */ void TickMiningBenchmark(App* app, double hashrate10s); } // namespace ui } // namespace dragonx