diff options
| author | luigi1111 <luigi1111w@gmail.com> | 2017-01-30 17:11:30 -0600 |
|---|---|---|
| committer | luigi1111 <luigi1111w@gmail.com> | 2017-01-30 17:11:30 -0600 |
| commit | 43d5bd3e2db54d0475a3a59e5a8859382aca732c (patch) | |
| tree | 8ece73e825dad43b42b6814d94e60814cd7c9520 /src | |
| parent | be564921d812667763b9e83cac9ca2dc814b0a01 (diff) | |
| parent | 04ff16ddb288d6b8ae6c7f4d4f74097bd700124b (diff) | |
| download | monzero-gui-43d5bd3e2db54d0475a3a59e5a8859382aca732c.tar.gz monzero-gui-43d5bd3e2db54d0475a3a59e5a8859382aca732c.tar.xz monzero-gui-43d5bd3e2db54d0475a3a59e5a8859382aca732c.zip | |
Merge pull request #437
Restore wallet from keys (Jaqueeee)
Diffstat (limited to 'src')
| -rw-r--r-- | src/libwalletqt/WalletManager.cpp | 26 | ||||
| -rw-r--r-- | src/libwalletqt/WalletManager.h | 10 |
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; |
