if (!tx) return;
bool unconfirmed = tx->isFailed() || tx->isPending();
- if (m_ctx->txCache.contains(tx->hash()) && unconfirmed && tx->direction() != TransactionInfo::Direction_In) {
+ if (unconfirmed && tx->direction() != TransactionInfo::Direction_In) {
menu.addAction(icons()->icon("info2.svg"), "Resend transaction", this, &HistoryWidget::onResendTransaction);
}
}
void MainWindow::onResendTransaction(const QString &txid) {
- if (!m_ctx->txCache.contains(txid)) {
+ QString txHex = m_ctx->getCacheTransaction(txid);
+ if (txHex.isEmpty()) {
QMessageBox::warning(this, "Unable to resend transaction", "Transaction was not found in transaction cache. Unable to resend.");
return;
}
// Connect to a different node so chances of successful relay are higher
m_ctx->nodes->autoConnect(true);
- TxBroadcastDialog dialog{this, m_ctx, m_ctx->txCache[txid]};
+ TxBroadcastDialog dialog{this, m_ctx, txHex};
dialog.exec();
}
}
}
+void AppContext::addCacheTransaction(const QString &txid, const QString &txHex) const {
+ this->wallet->setCacheAttribute(QString("tx:%1").arg(txid), txHex);
+}
+
+QString AppContext::getCacheTransaction(const QString &txid) const {
+ QString txHex = this->wallet->getCacheAttribute(QString("tx:%1").arg(txid));
+ return txHex;
+}
+
// ################## Models ##################
void AppContext::onPreferredFiatCurrencyChanged(const QString &symbol) {
NetworkType::Type networkType;
PendingTransaction::Priority tx_priority = PendingTransaction::Priority::Priority_Low;
- QMap<QString, QString> txCache;
// libwalletqt
bool refreshed = false;
void stopTimers();
+ void addCacheTransaction(const QString &txid, const QString &txHex) const;
+ QString getCacheTransaction(const QString &txid) const;
+
public slots:
void onCreateTransaction(const QString &address, quint64 amount, const QString &description, bool all);
void onCreateTransactionMultiDest(const QVector<QString> &addresses, const QVector<quint64> &amounts, const QString &description);
connect(ui->btn_Advanced, &QPushButton::clicked, this, &TxConfDialog::setShowAdvanced);
- m_ctx->txCache[tx->txid()[0]] = tx->signedTxToHex(0);
+ m_ctx->addCacheTransaction(tx->txid()[0], tx->signedTxToHex(0)); // Todo: Iterate over all txs
this->adjustSize();
}
this->setData(txInfo);
- if (m_ctx->txCache.contains(txInfo->hash()) && (txInfo->isFailed() || txInfo->isPending()) && txInfo->direction() != TransactionInfo::Direction_In) {
+ if ((txInfo->isFailed() || txInfo->isPending()) && txInfo->direction() != TransactionInfo::Direction_In) {
connect(ui->btn_rebroadcastTx, &QPushButton::pressed, [this]{
emit resendTranscation(m_txid);
});