From: tobtoht Date: Sun, 5 Sep 2021 18:13:37 +0000 (+0200) Subject: TxImportDialog: check if we have tx, check if tx import was successful X-Git-Url: https://git.nutra.tk/v2?a=commitdiff_plain;h=86574abd94c1448fbf42eca22158b9a5a51cd73c;p=gamesguru%2Ffeather.git TxImportDialog: check if we have tx, check if tx import was successful --- diff --git a/CMakeLists.txt b/CMakeLists.txt index a584f3f9..9dc76b96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,7 +32,7 @@ if(DEBUG) set(CMAKE_VERBOSE_MAKEFILE ON) endif() -set(MONERO_HEAD "13fa706d276fb896a7221b5580cf61a04b59ed0e") +set(MONERO_HEAD "d4257af2e7503fc6dc09fc704606230d353a0a02") set(BUILD_GUI_DEPS ON) option(ARCH "Target architecture" "x86-64") set(BUILD_64 ON) diff --git a/src/dialog/TxImportDialog.cpp b/src/dialog/TxImportDialog.cpp index 60cf6ab4..2a00bcc7 100644 --- a/src/dialog/TxImportDialog.cpp +++ b/src/dialog/TxImportDialog.cpp @@ -35,6 +35,14 @@ TxImportDialog::TxImportDialog(QWidget *parent, QSharedPointer ctx) void TxImportDialog::loadTx() { QString txid = ui->line_txid->text(); + + if (m_ctx->wallet->haveTransaction(txid)) { + QMessageBox::warning(this, "Warning", "This transaction already exists in the wallet. " + "If you can't find it in your history, " + "check if it belongs to a different account (Wallet -> Account)"); + return; + } + FeatherNode node = m_ctx->nodes->connection(); if (node.isLocal()) { @@ -94,6 +102,10 @@ void TxImportDialog::onImport() { bool double_spend_seen = tx.value("double_spend_seen").toBool(); if (m_ctx->wallet->importTransaction(tx.value("tx_hash").toString(), output_indices, height, timestamp, false, pool, double_spend_seen)) { + if (!m_ctx->wallet->haveTransaction(txid)) { + QMessageBox::warning(this, "Import transaction", "This transaction does not belong to this wallet."); + return; + } QMessageBox::information(this, "Import transaction", "Transaction imported successfully."); } else { QMessageBox::warning(this, "Import transaction", "Transaction import failed."); diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index 98d0d9da..f0dd9f38 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -601,6 +601,11 @@ QString Wallet::printScannedPoolTxs() return QString::fromStdString(m_walletImpl->printScannedPoolTxs()); } +bool Wallet::haveTransaction(const QString &txid) +{ + return m_walletImpl->haveTransaction(txid.toStdString()); +} + void Wallet::startRefresh() { m_refreshEnabled = true; diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h index 49e44eb8..1e419450 100644 --- a/src/libwalletqt/Wallet.h +++ b/src/libwalletqt/Wallet.h @@ -246,6 +246,9 @@ public: QString printAddressBook(); QString printScannedPoolTxs(); + //! does wallet have txid + bool haveTransaction(const QString &txid); + //! refreshes the wallet bool refresh(bool historyAndSubaddresses = false);