TxImportDialog: check if we have tx, check if tx import was successful

This commit is contained in:
tobtoht 2021-09-05 20:13:37 +02:00
parent cb12e41699
commit 86574abd94
4 changed files with 21 additions and 1 deletions

View file

@ -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)

View file

@ -35,6 +35,14 @@ TxImportDialog::TxImportDialog(QWidget *parent, QSharedPointer<AppContext> 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.");

View file

@ -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;

View file

@ -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);