export/import key images when cold signing

This commit is contained in:
Jaquee 2017-01-13 23:43:34 +01:00
parent 24ccd27d79
commit ae5c21ef17
No known key found for this signature in database
GPG key ID: 384E52B09F45DC39
3 changed files with 13 additions and 6 deletions

View file

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

View file

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

View file

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