From 87d7609022ed5e6eb1b63f454685b35c29b99860 Mon Sep 17 00:00:00 2001 From: lza_menace Date: Mon, 3 Apr 2023 09:26:05 -0700 Subject: [PATCH] adding extra inputs for wownerod mining --- src/utils/config.cpp | 1 + src/utils/config.h | 1 + src/utils/xmrig.cpp | 7 +++++-- src/utils/xmrig.h | 4 ++-- src/widgets/xmrigwidget.cpp | 7 ++++++- src/widgets/xmrigwidget.ui | 20 +++++++++++++++++++- 6 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/utils/config.cpp b/src/utils/config.cpp index ad7e113..5ef58f8 100644 --- a/src/utils/config.cpp +++ b/src/utils/config.cpp @@ -32,6 +32,7 @@ static const QHash configStrings = { {Config::walletPath,{QS("walletPath"), ""}}, {Config::xmrigPath,{QS("xmrigPath"), ""}}, {Config::wownerodPath, {QS("wownerodPath"), ""}}, + {Config::extraArgs, {QS("extraArgs"), ""}}, {Config::nodes,{QS("nodes"), "{}"}}, {Config::websocketEnabled,{QS("websocketEnabled"), true}}, {Config::nodeSource,{QS("nodeSource"), 0}}, diff --git a/src/utils/config.h b/src/utils/config.h index 92f1335..f730f27 100644 --- a/src/utils/config.h +++ b/src/utils/config.h @@ -34,6 +34,7 @@ public: walletPath, xmrigPath, wownerodPath, + extraArgs, nodes, websocketEnabled, nodeSource, diff --git a/src/utils/xmrig.cpp b/src/utils/xmrig.cpp index 77e9d44..b92f1e5 100644 --- a/src/utils/xmrig.cpp +++ b/src/utils/xmrig.cpp @@ -9,7 +9,7 @@ #include "utils/xmrig.h" #include "mainwindow.h" -XmRig::XmRig(const QString &configDir, QObject *parent) : +XmRig::XmRig(const QString &configDir, QObject *parent, QString extraArgs) : QObject(parent), m_statusTimer(new QTimer(this)) { @@ -38,7 +38,7 @@ void XmRig::stop() { m_statusTimer->stop(); } -bool XmRig::start(const QString &path, int threads) { +bool XmRig::start(const QString &path, int threads, QString extraArgs) { m_ctx = MainWindow::getContext(); auto state = m_process.state(); @@ -72,6 +72,9 @@ bool XmRig::start(const QString &path, int threads) { arguments << "--start-mining" << m_ctx->currentWallet->address(0, 0); arguments << "--spendkey" << privateSpendKey; + // additional arguments to wownerod a user can define + arguments << extraArgs; + QString cmd = QString("%1 %2").arg(path, arguments.join(" ")); cmd = cmd.replace(privateSpendKey, "[redacted]"); emit output(cmd.toUtf8()); diff --git a/src/utils/xmrig.h b/src/utils/xmrig.h index 0c01b1d..c5705b3 100644 --- a/src/utils/xmrig.h +++ b/src/utils/xmrig.h @@ -27,10 +27,10 @@ class XmRig : public QObject Q_OBJECT public: - explicit XmRig(const QString &configDir, QObject *parent = nullptr); + explicit XmRig(const QString &configDir, QObject *parent = nullptr, QString extraArgs = nullptr); void prepare(); - bool start(const QString &path, int threads); + bool start(const QString &path, int threads, QString extraArgs); void stop(); DaemonMiningState daemonMiningState = DaemonMiningState::idle; diff --git a/src/widgets/xmrigwidget.cpp b/src/widgets/xmrigwidget.cpp index 887eb03..6223532 100644 --- a/src/widgets/xmrigwidget.cpp +++ b/src/widgets/xmrigwidget.cpp @@ -63,6 +63,10 @@ XMRigWidget::XMRigWidget(AppContext *ctx, QWidget *parent) : if(!path.isEmpty()) ui->lineEdit_path->setText(path); + auto extraArgs = config()->get(Config::extraArgs).toString(); + if(!extraArgs.isEmpty()) + ui->extraArgs->setText(extraArgs); + connect(ui->lineEdit_path, &QLineEdit::textChanged, [=] { config()->set(Config::wownerodPath, ui->lineEdit_path->text().trimmed()); }); @@ -208,7 +212,8 @@ void XMRigWidget::onClearClicked() { void XMRigWidget::onStartClicked() { auto binPath = config()->get(Config::wownerodPath).toString(); - if(!m_ctx->XMRig->start(binPath, m_threads)) return; + auto extraArgs = config()->get(Config::extraArgs).toString(); + if(!m_ctx->XMRig->start(binPath, m_threads, extraArgs)) return; ui->btn_start->setEnabled(false); ui->btn_stop->setEnabled(true); diff --git a/src/widgets/xmrigwidget.ui b/src/widgets/xmrigwidget.ui index 841e5ec..376e782 100644 --- a/src/widgets/xmrigwidget.ui +++ b/src/widgets/xmrigwidget.ui @@ -227,13 +227,31 @@ + + + Extra Args + + + + + + + + + + + + + + + CPU threads - +