]> Nutra Git (v2) - gamesguru/feather.git/commitdiff
Store all constructed transactions in cache
authortobtoht <thotbot@protonmail.com>
Thu, 19 Aug 2021 18:22:53 +0000 (20:22 +0200)
committertobtoht <thotbot@protonmail.com>
Wed, 15 Sep 2021 21:46:23 +0000 (23:46 +0200)
src/MainWindow.cpp
src/dialog/TxConfDialog.cpp

index a75843944a9b3aa1f2dc562554e4f41150f06f08..df001c38b908cbe5be7200fa7179dfa728bfa147 100644 (file)
@@ -592,10 +592,8 @@ void MainWindow::onConnectionStatusChanged(int status)
 }
 
 void MainWindow::onCreateTransactionSuccess(PendingTransaction *tx, const QVector<QString> &address) {
-    auto tx_status = tx->status();
     QString err{"Can't create transaction: "};
-
-    if (tx_status != PendingTransaction::Status_Ok){
+    if (tx->status() != PendingTransaction::Status_Ok) {
         QString tx_err = tx->errorString();
         qCritical() << tx_err;
 
@@ -615,42 +613,43 @@ void MainWindow::onCreateTransactionSuccess(PendingTransaction *tx, const QVecto
         qDebug() << Q_FUNC_INFO << err;
         this->displayWalletErrorMsg(err);
         m_ctx->wallet->disposeTransaction(tx);
+        return;
     }
     else if (tx->txCount() == 0) {
         err = QString("%1 %2").arg(err).arg("No unmixable outputs to sweep.");
         qDebug() << Q_FUNC_INFO << err;
         this->displayWalletErrorMsg(err);
         m_ctx->wallet->disposeTransaction(tx);
+        return;
     }
-    else {
-        const auto &description = m_ctx->tmpTxDescription;
 
-        // Show advanced dialog on multi-destination transactions
-        if (address.size() > 1) {
-            TxConfAdvDialog dialog_adv{m_ctx, description, this};
-            dialog_adv.setTransaction(tx);
-            dialog_adv.exec();
-            return;
-        }
+    m_ctx->addCacheTransaction(tx->txid()[0], tx->signedTxToHex(0));
 
-        TxConfDialog dialog{m_ctx, tx, address[0], description, this};
-        switch (dialog.exec()) {
-            case QDialog::Rejected:
-            {
-                if (!dialog.showAdvanced)
-                    m_ctx->onCancelTransaction(tx, address);
-                break;
-            }
-            case QDialog::Accepted:
-                m_ctx->commitTransaction(tx);
-                break;
-        }
+    // Show advanced dialog on multi-destination transactions
+    if (address.size() > 1) {
+        TxConfAdvDialog dialog_adv{m_ctx, m_ctx->tmpTxDescription, this};
+        dialog_adv.setTransaction(tx);
+        dialog_adv.exec();
+        return;
+    }
 
-        if (dialog.showAdvanced) {
-            TxConfAdvDialog dialog_adv{m_ctx, description, this};
-            dialog_adv.setTransaction(tx);
-            dialog_adv.exec();
+    TxConfDialog dialog{m_ctx, tx, address[0], m_ctx->tmpTxDescription, this};
+    switch (dialog.exec()) {
+        case QDialog::Rejected:
+        {
+            if (!dialog.showAdvanced)
+                m_ctx->onCancelTransaction(tx, address);
+            break;
         }
+        case QDialog::Accepted:
+            m_ctx->commitTransaction(tx);
+            break;
+    }
+
+    if (dialog.showAdvanced) {
+        TxConfAdvDialog dialog_adv{m_ctx, m_ctx->tmpTxDescription, this};
+        dialog_adv.setTransaction(tx);
+        dialog_adv.exec();
     }
 }
 
index 2d1c4b29ca99c6d6b6d0edf01c13e32f9c256834..5cb27767678f6c76f92977fe18388993dbd2fa47 100644 (file)
@@ -72,12 +72,10 @@ TxConfDialog::TxConfDialog(QSharedPointer<AppContext> ctx, PendingTransaction *t
         ui->label_address->setToolTip("Wallet change/primary address");
     }
 
-
     ui->buttonBox->button(QDialogButtonBox::Ok)->setText("Send");
 
     connect(ui->btn_Advanced, &QPushButton::clicked, this, &TxConfDialog::setShowAdvanced);
 
-    m_ctx->addCacheTransaction(tx->txid()[0], tx->signedTxToHex(0)); // Todo: Iterate over all txs
     this->adjustSize();
 }