diff options
Diffstat (limited to 'src/libwalletqt/Wallet.cpp')
| -rw-r--r-- | src/libwalletqt/Wallet.cpp | 173 |
1 files changed, 20 insertions, 153 deletions
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index 61998ab5..2ede062c 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -1,194 +1,61 @@ #include "Wallet.h" +#include "wallet/wallet2_api.h" + #include <QFile> #include <QDir> #include <QDebug> #include <QUrl> namespace { - QString TEST_SEED = "bound class paint gasp task soul forgot past pleasure physical circle " - " appear shore bathroom glove women crap busy beauty bliss idea give needle burden"; - - namespace { - bool createFileWrapper(const QString &filename) - { - QFile file(filename); - // qDebug("%s: about to create file: %s", __FUNCTION__, qPrintable(filename)); - bool result = file.open(QIODevice::WriteOnly); - if (!result ){ - qWarning("%s: error creating file '%s' : '%s'", - __FUNCTION__, - qPrintable(filename), - qPrintable(file.errorString())); - } - return result; - } - } - -} - -struct WalletImpl -{ - - QString basename() const; - void setBasename(const QString &name); - - QString keysName() const; - QString addressName() const; - -// Bitmonero::Wallet * m_walletImpl; - QString m_basename; - QString m_seed; - QString m_password; - QString m_language; - - static QString keysName(const QString &basename); - static QString addressName(const QString &basename); - -}; - - -QString WalletImpl::basename() const -{ - return m_basename; -} -void WalletImpl::setBasename(const QString &name) -{ - m_basename = name; -} -QString WalletImpl::keysName() const -{ - return keysName(m_basename); } -QString WalletImpl::addressName() const -{ - return addressName(m_basename); -} -QString WalletImpl::keysName(const QString &basename) +QString Wallet::getSeed() const { - return basename + ".keys"; + return QString::fromStdString(m_walletImpl->seed()); } -QString WalletImpl::addressName(const QString &basename) +QString Wallet::getSeedLanguage() const { - return basename + ".address.txt"; + return QString::fromStdString(m_walletImpl->getSeedLanguage()); } - -Wallet::Wallet(QObject *parent) - : QObject(parent) +int Wallet::status() const { - + return m_walletImpl->status(); } -QString Wallet::getSeed() const -{ - return m_pimpl->m_seed; -} - -QString Wallet::getSeedLanguage() const +QString Wallet::errorString() const { - return "English"; + return QString::fromStdString(m_walletImpl->errorString()); } -//void Wallet::setSeedLaguage(const QString &lang) -//{ -// // TODO: call libwallet's appropriate method -//} - bool Wallet::setPassword(const QString &password) { - // set/change password implies: - // recovery wallet with existing path, seed and lang - qDebug("%s: recovering wallet with path=%s, seed=%s, lang=%s and new password=%s", - __FUNCTION__, - qPrintable(this->getBasename()), - qPrintable(this->getSeed()), - qPrintable(this->getSeedLanguage()), - qPrintable(password)); - return true; + return m_walletImpl->setPassword(password.toStdString()); } -QString Wallet::getPassword() const +QString Wallet::address() const { - return m_pimpl->m_password; + return QString::fromStdString(m_walletImpl->address()); } -bool Wallet::rename(const QString &name) +bool Wallet::store(const QString &path) { - - QString dst = QUrl(name).toLocalFile(); - - if (dst.isEmpty()) - dst = name; - - qDebug("%s: renaming '%s' to '%s'", - __FUNCTION__, - qPrintable(m_pimpl->basename()), - qPrintable(dst)); - - QString walletKeysFile = m_pimpl->keysName(); - QString walletAddressFile = m_pimpl->addressName(); - - QString dstWalletKeysFile = WalletImpl::keysName(dst); - QString dstWalletAddressFile = WalletImpl::addressName(dst); - - QFile walletFile(this->getBasename()); - - if (!walletFile.rename(dst)) { - qWarning("Error renaming file: '%s' to '%s' : (%s)", - qPrintable(m_pimpl->basename()), - qPrintable(dst), - qPrintable(walletFile.errorString())); - return false; - } - QFile::rename(walletKeysFile, dstWalletKeysFile); - QFile::rename(walletAddressFile, dstWalletAddressFile); - - bool result = QFile::exists(dst) && QFile::exists(dstWalletKeysFile) - && QFile::exists(dstWalletAddressFile); - - if (result) { - m_pimpl->m_basename = dst; - } - - return result; + return m_walletImpl->store(path.toStdString()); } -QString Wallet::getBasename() const -{ - return m_pimpl->basename(); -} -int Wallet::error() const -{ - return 0; -} -QString Wallet::errorString() const +Wallet::Wallet(Bitmonero::Wallet *w, QObject *parent) + : QObject(parent), m_walletImpl(w) { - return m_pimpl->m_seed; + } -Wallet::Wallet(const QString &path, const QString &password, const QString &language) +Wallet::~Wallet() { - m_pimpl = new WalletImpl; - m_pimpl->m_basename = path; - m_pimpl->m_password = password; - m_pimpl->m_language = language; - m_pimpl->m_seed = TEST_SEED; - - // Create dummy files for testing - QFileInfo fi(path); - QDir tempDir; - tempDir.mkpath(fi.absolutePath()); - createFileWrapper(m_pimpl->basename()); - createFileWrapper(m_pimpl->keysName()); - createFileWrapper(m_pimpl->addressName()); + Bitmonero::WalletManagerFactory::getWalletManager()->closeWallet(m_walletImpl); } - - - |
