From 341be7f7e4a9f90bb9d5a22d82cdb4d017f516da Mon Sep 17 00:00:00 2001 From: jwinterm Date: Thu, 18 Jun 2026 18:59:27 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20mining=20methods=20are=20on=20WalletMana?= =?UTF-8?q?ger=20not=20Wallet=20=E2=80=94=20delegate=20+=20setDaemonAddres?= =?UTF-8?q?s=20to=20embedded=20node=20(fixes=20red=20builds)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libwalletqt/Wallet.cpp | 11 +++++++---- src/libwalletqt/WalletManager.cpp | 25 +++++++++++++++++++++++++ src/libwalletqt/WalletManager.h | 8 ++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index 81109fd7..edc2e1e5 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -25,6 +25,7 @@ #include "model/CoinsModel.h" #include "utils/ScopeGuard.h" +#include "utils/DaemonManager.h" #include "wallet/wallet2.h" @@ -114,19 +115,21 @@ bool Wallet::isConnected() const { } bool Wallet::startMining(quint32 threads) { - return m_walletImpl->startMining(m_walletImpl->address(0, 0), threads); + auto *wm = WalletManager::instance(); + wm->setDaemonAddress(daemonManager()->rpcAddress()); // mine via the embedded local node + return wm->startMining(this->address(0, 0), threads); } bool Wallet::stopMining() { - return m_walletImpl->stopMining(); + return WalletManager::instance()->stopMining(); } bool Wallet::isMining() { - return m_walletImpl->isMining(); + return WalletManager::instance()->isMining(); } double Wallet::miningHashRate() { - return m_walletImpl->miningHashRate(); + return WalletManager::instance()->miningHashRate(); } QString Wallet::errorString() const { diff --git a/src/libwalletqt/WalletManager.cpp b/src/libwalletqt/WalletManager.cpp index 0f58813d..10734959 100644 --- a/src/libwalletqt/WalletManager.cpp +++ b/src/libwalletqt/WalletManager.cpp @@ -180,6 +180,31 @@ bool WalletManager::walletExists(const QString &path) const return m_pimpl->walletExists(path.toStdString()); } +void WalletManager::setDaemonAddress(const QString &address) +{ + m_pimpl->setDaemonAddress(address.toStdString()); +} + +bool WalletManager::startMining(const QString &address, quint32 threads) +{ + return m_pimpl->startMining(address.toStdString(), threads); +} + +bool WalletManager::stopMining() +{ + return m_pimpl->stopMining(); +} + +bool WalletManager::isMining() +{ + return m_pimpl->isMining(); +} + +double WalletManager::miningHashRate() +{ + return m_pimpl->miningHashRate(); +} + bool WalletManager::verifyWalletPassword(const QString &keys_file_name, const QString &password, bool no_spend_key, uint64_t kdf_rounds) const { return m_pimpl->verifyWalletPassword(keys_file_name.toStdString(), password.toStdString(), no_spend_key, kdf_rounds); diff --git a/src/libwalletqt/WalletManager.h b/src/libwalletqt/WalletManager.h index c95895ae..336e77ca 100644 --- a/src/libwalletqt/WalletManager.h +++ b/src/libwalletqt/WalletManager.h @@ -41,6 +41,14 @@ public: */ void openWalletAsync(const QString &path, const QString &password, NetworkType::Type nettype = NetworkType::MAINNET, quint64 kdfRounds = 1, const QString &ringDatabasePath = ""); + // wowlet: solo mining via the connected daemon (the embedded local node). startMining first + // points the manager at the daemon, then asks it to mine RandomWOW to `address`. + void setDaemonAddress(const QString &address); + bool startMining(const QString &address, quint32 threads = 1); + bool stopMining(); + bool isMining(); + double miningHashRate(); + Wallet * recoveryWallet(const QString &path, const QString &password, const QString &seed, const QString &seed_offset, NetworkType::Type nettype = NetworkType::MAINNET, quint64 restoreHeight = 0, quint64 kdfRounds = 1, const QString &subaddressLookahead = "");