aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaquee <jaquee.monero@gmail.com>2017-01-26 21:49:32 +0100
committerJaquee <jaquee.monero@gmail.com>2017-01-30 23:20:43 +0100
commitb3232dc26f98e2a6991d40bf5311dfd49abdf9de (patch)
tree9ecd15dd73e0d2936e5d949a724e07ad5e3cdeb5
parentbded77a22bfe20a85ccc2161ecba0cfa88582696 (diff)
downloadmonzero-gui-b3232dc26f98e2a6991d40bf5311dfd49abdf9de.tar.gz
monzero-gui-b3232dc26f98e2a6991d40bf5311dfd49abdf9de.tar.xz
monzero-gui-b3232dc26f98e2a6991d40bf5311dfd49abdf9de.zip
WalletManager: restore from keys
-rw-r--r--src/libwalletqt/WalletManager.cpp26
-rw-r--r--src/libwalletqt/WalletManager.h10
2 files changed, 36 insertions, 0 deletions
diff --git a/src/libwalletqt/WalletManager.cpp b/src/libwalletqt/WalletManager.cpp
index 45aff22e..1db216cf 100644
--- a/src/libwalletqt/WalletManager.cpp
+++ b/src/libwalletqt/WalletManager.cpp
@@ -86,6 +86,22 @@ Wallet *WalletManager::recoveryWallet(const QString &path, const QString &memo,
return m_currentWallet;
}
+Wallet *WalletManager::createWalletFromKeys(const QString &path, const QString &language, bool testnet,
+ const QString &address, const QString &viewkey, const QString &spendkey,
+ quint64 restoreHeight)
+{
+ QMutexLocker locker(&m_mutex);
+ if (m_currentWallet) {
+ qDebug() << "Closing open m_currentWallet" << m_currentWallet;
+ delete m_currentWallet;
+ m_currentWallet = NULL;
+ }
+ Monero::Wallet * w = m_pimpl->createWalletFromKeys(path.toStdString(), language.toStdString(), testnet, restoreHeight,
+ address.toStdString(), viewkey.toStdString(), spendkey.toStdString());
+ m_currentWallet = new Wallet(w);
+ return m_currentWallet;
+}
+
QString WalletManager::closeWallet()
{
@@ -183,6 +199,16 @@ bool WalletManager::addressValid(const QString &address, bool testnet) const
return Monero::Wallet::addressValid(address.toStdString(), testnet);
}
+bool WalletManager::keyValid(const QString &key, const QString &address, bool isViewKey, bool testnet) const
+{
+ std::string error;
+ if(!Monero::Wallet::keyValid(key.toStdString(), address.toStdString(), isViewKey, testnet, error)){
+ qDebug() << QString::fromStdString(error);
+ return false;
+ }
+ return true;
+}
+
QString WalletManager::paymentIdFromAddress(const QString &address, bool testnet) const
{
return QString::fromStdString(Monero::Wallet::paymentIdFromAddress(address.toStdString(), testnet));
diff --git a/src/libwalletqt/WalletManager.h b/src/libwalletqt/WalletManager.h
index 20d2bec7..6bba0ce6 100644
--- a/src/libwalletqt/WalletManager.h
+++ b/src/libwalletqt/WalletManager.h
@@ -53,6 +53,14 @@ public:
Q_INVOKABLE Wallet * recoveryWallet(const QString &path, const QString &memo,
bool testnet = false, quint64 restoreHeight = 0);
+ Q_INVOKABLE Wallet * createWalletFromKeys(const QString &path,
+ const QString &language,
+ bool testnet,
+ const QString &address,
+ const QString &viewkey,
+ const QString &spendkey = "",
+ quint64 restoreHeight = 0);
+
/*!
* \brief closeWallet - closes current open wallet and frees memory
* \return wallet address
@@ -92,6 +100,8 @@ public:
Q_INVOKABLE bool paymentIdValid(const QString &payment_id) const;
Q_INVOKABLE bool addressValid(const QString &address, bool testnet) const;
+ Q_INVOKABLE bool keyValid(const QString &key, const QString &address, bool isViewKey, bool testnet) const;
+
Q_INVOKABLE QString paymentIdFromAddress(const QString &address, bool testnet) const;
Q_INVOKABLE QString checkPayment(const QString &address, const QString &txid, const QString &txkey, const QString &daemon_address) const;