]> Nutra Git (v2) - gamesguru/feather.git/commitdiff
xmrig: allow adding additional command line options
authortobtoht <tob@featherwallet.org>
Tue, 13 Jun 2023 17:17:11 +0000 (19:17 +0200)
committertobtoht <tob@featherwallet.org>
Tue, 13 Jun 2023 17:17:11 +0000 (19:17 +0200)
src/plugins/xmrig/XMRigWidget.cpp
src/plugins/xmrig/XMRigWidget.ui
src/plugins/xmrig/xmrig.cpp
src/plugins/xmrig/xmrig.h
src/utils/config.cpp
src/utils/config.h

index f3c676f4041bdb40db8061b68b33d955c2b0001f..33928e3b20a3d14d6030c780ebb236e5de54105b 100644 (file)
@@ -90,6 +90,11 @@ XMRigWidget::XMRigWidget(Wallet *wallet, QWidget *parent)
         this->updatePools();
     });
 
+    ui->lineEdit_solo->setText(config()->get(Config::xmrigDaemon).toString());
+    connect(ui->lineEdit_solo, &QLineEdit::textChanged, [this](){
+        config()->set(Config::xmrigDaemon, ui->lineEdit_solo->text());
+    });
+
     // Network settings
     connect(ui->check_tls, &QCheckBox::toggled, this, &XMRigWidget::onNetworkTLSToggled);
     connect(ui->relayTor, &QCheckBox::toggled, this, &XMRigWidget::onNetworkTorToggled);
@@ -108,12 +113,7 @@ XMRigWidget::XMRigWidget(Wallet *wallet, QWidget *parent)
 
     // Password
     auto password = m_wallet->getCacheAttribute("feather.xmrig_password");
-    if (!password.isEmpty()) {
-        ui->lineEdit_password->setText(password);
-    } else {
-        ui->lineEdit_password->setText("featherwallet");
-        m_wallet->setCacheAttribute("feather.xmrig_password", ui->lineEdit_password->text());
-    }
+    ui->lineEdit_password->setText(password);
     connect(ui->lineEdit_password, &QLineEdit::textChanged, [=]() {
         m_wallet->setCacheAttribute("feather.xmrig_password", ui->lineEdit_password->text());
     });
@@ -208,9 +208,11 @@ void XMRigWidget::onStartClicked() {
     }
 
     int threads = ui->threadSlider->value();
+    bool solo = (ui->combo_miningMode->currentIndex() == Config::MiningMode::Solo);
+    QStringList extraOptions = ui->lineEdit_extraOptions->text().split(" ");
 
     m_XMRig->start(xmrigPath, threads, address, username, password, ui->relayTor->isChecked(), ui->check_tls->isChecked(),
-                   ui->radio_elevateYes->isChecked());
+                   ui->radio_elevateYes->isChecked(), solo, extraOptions);
 }
 
 void XMRigWidget::onStopClicked() {
index 512a0ca312d5ea782d4a7e7e84259327841ef12e..b3642a99af73741ac90bf2c13f3803c02804b620 100644 (file)
              <item row="7" column="1">
               <widget class="QLineEdit" name="lineEdit_password"/>
              </item>
+             <item row="8" column="0">
+              <widget class="QLabel" name="label_4">
+               <property name="text">
+                <string>Extra command-line options:</string>
+               </property>
+              </widget>
+             </item>
+             <item row="8" column="1">
+              <widget class="QLineEdit" name="lineEdit_extraOptions"/>
+             </item>
             </layout>
            </item>
           </layout>
index aa19945b0c53b3ddbd76908c6afa5d2993ce4d80..d4e51188a4ba6e9d7bfc91165e87dfccff8f56e2 100644 (file)
@@ -35,7 +35,7 @@ void XmRig::stop() {
 }
 
 void XmRig::start(const QString &path, int threads, const QString &address, const QString &username,
-                  const QString &password, bool tor, bool tls, bool elevated)
+                  const QString &password, bool tor, bool tls, bool elevated, bool solo, const QStringList &extraOptions)
 {
     m_elevated = elevated;
 
@@ -60,7 +60,6 @@ void XmRig::start(const QString &path, int threads, const QString &address, cons
         arguments << path;
     }
     arguments << "-o" << address;
-    arguments << "-a" << "rx/0";
     arguments << "-u" << username;
     if (!password.isEmpty()) {
         arguments << "-p" << password;
@@ -79,6 +78,11 @@ void XmRig::start(const QString &path, int threads, const QString &address, cons
     if (tls) {
         arguments << "--tls";
     }
+    if (solo) {
+        arguments << "--daemon";
+    }
+    arguments += extraOptions;
+
     QString cmd = QString("%1 %2").arg(path, arguments.join(" "));
     emit output(cmd.toUtf8());
 
index 03f182ef2a807c67e05e9c5ef973cd33bbc176b2..36872145f05a5ab7c54a1505509d6fe9f8afbde4 100644 (file)
@@ -13,7 +13,7 @@ Q_OBJECT
 public:
     explicit XmRig(const QString &configDir, QObject *parent = nullptr);
 
-    void start(const QString &path, int threads, const QString &address, const QString &username, const QString &password, bool tor = false, bool tls = true, bool elevated = false);
+    void start(const QString &path, int threads, const QString &address, const QString &username, const QString &password, bool tor = false, bool tls = true, bool elevated = false, bool solo = false, const QStringList &extraOptions = {});
     void stop();
 
 signals:
index 47c5a1c32be59c1629571de5c8f4d29d1f42d1df..a89ec6886f4f49a3e9f185b68b53e7b289036bed 100644 (file)
@@ -54,6 +54,7 @@ static const QHash<Config::ConfigKey, ConfigDirective> configStrings = {
         {Config::xmrigElevated,{QS("xmrigElevated"), false}},
         {Config::xmrigThreads,{QS("xmrigThreads"), 1}},
         {Config::xmrigPool,{QS("xmrigPool"), "pool.xmr.pt:9000"}},
+        {Config::xmrigDaemon,{QS("xmrigDaemon"), "127.0.0.1:18081"}},
         {Config::xmrigNetworkTLS,{QS("xmrigNetworkTLS"), true}},
         {Config::xmrigNetworkTor,{QS("xmrigNetworkTor"), false}},
         {Config::pools,{QS("pools"), {}}},
index ff7d208f5ef555cfdc4bf1a5067dcbbadde5cbc1..d97a678bf62b163375addc11ac8080f187c11528 100644 (file)
@@ -57,6 +57,7 @@ public:
         xmrigElevated,
         xmrigThreads,
         xmrigPool,
+        xmrigDaemon,
         xmrigNetworkTLS,
         xmrigNetworkTor,
         pools,