diff --git a/src/libwalletqt/UnsignedTransaction.cpp b/src/libwalletqt/UnsignedTransaction.cpp index a1c472f2..47dca57b 100644 --- a/src/libwalletqt/UnsignedTransaction.cpp +++ b/src/libwalletqt/UnsignedTransaction.cpp @@ -69,7 +69,10 @@ QStringList UnsignedTransaction::recipientAddress() const bool UnsignedTransaction::sign(const QString &fileName) const { - return m_pimpl->sign(fileName.toStdString()); + if(!m_pimpl->sign(fileName.toStdString())) + return false; + // export key images + return m_walletImpl->exportKeyImages(fileName.toStdString() + "_keyImages"); } void UnsignedTransaction::setFilename(const QString &fileName) @@ -77,8 +80,8 @@ void UnsignedTransaction::setFilename(const QString &fileName) m_fileName = fileName; } -UnsignedTransaction::UnsignedTransaction(Monero::UnsignedTransaction *pt, QObject *parent) - : QObject(parent), m_pimpl(pt) +UnsignedTransaction::UnsignedTransaction(Monero::UnsignedTransaction *pt, Monero::Wallet *walletImpl, QObject *parent) + : QObject(parent), m_pimpl(pt), m_walletImpl(walletImpl) { } diff --git a/src/libwalletqt/UnsignedTransaction.h b/src/libwalletqt/UnsignedTransaction.h index 49391e45..749445a2 100644 --- a/src/libwalletqt/UnsignedTransaction.h +++ b/src/libwalletqt/UnsignedTransaction.h @@ -47,12 +47,13 @@ public: Q_INVOKABLE void setFilename(const QString &fileName); private: - explicit UnsignedTransaction(Monero::UnsignedTransaction * pt, QObject *parent = 0); + explicit UnsignedTransaction(Monero::UnsignedTransaction * pt, Monero::Wallet *walletImpl, QObject *parent = 0); ~UnsignedTransaction(); private: friend class Wallet; Monero::UnsignedTransaction * m_pimpl; QString m_fileName; + Monero::Wallet * m_walletImpl; }; #endif // UNSIGNEDTRANSACTION_H diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index f8c6bb1d..6147e1cb 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -327,14 +327,17 @@ UnsignedTransaction * Wallet::loadTxFile(const QString &fileName) { qDebug() << "Trying to sign " << fileName; Monero::UnsignedTransaction * ptImpl = m_walletImpl->loadUnsignedTx(fileName.toStdString()); - UnsignedTransaction * result = new UnsignedTransaction(ptImpl, this); + UnsignedTransaction * result = new UnsignedTransaction(ptImpl, m_walletImpl, this); return result; } bool Wallet::submitTxFile(const QString &fileName) const { qDebug() << "Trying to submit " << fileName; - return m_walletImpl->submitTransaction(fileName.toStdString()); + if (!m_walletImpl->submitTransaction(fileName.toStdString())) + return false; + // import key images + return m_walletImpl->importKeyImages(fileName.toStdString() + "_keyImages"); } void Wallet::disposeTransaction(PendingTransaction *t)