diff options
| author | xiphon <xiphon@protonmail.com> | 2020-07-30 16:55:06 +0000 |
|---|---|---|
| committer | xiphon <xiphon@protonmail.com> | 2020-07-30 21:37:09 +0000 |
| commit | 5ea99a73e77dd03777a866ddda8ad370c8d2c48b (patch) | |
| tree | 4faf7640512d92b89882f51ed3eac97f58138e07 /src/libwalletqt/Wallet.cpp | |
| parent | 7eeda0a8f075a0d0938486cf0d7718d9d9491c20 (diff) | |
| download | monzero-gui-5ea99a73e77dd03777a866ddda8ad370c8d2c48b.tar.gz monzero-gui-5ea99a73e77dd03777a866ddda8ad370c8d2c48b.tar.xz monzero-gui-5ea99a73e77dd03777a866ddda8ad370c8d2c48b.zip | |
Wallet: WalletManager: implement proxy support
Diffstat (limited to 'src/libwalletqt/Wallet.cpp')
| -rw-r--r-- | src/libwalletqt/Wallet.cpp | 53 |
1 files changed, 48 insertions, 5 deletions
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index dc4481ba..508f105e 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -144,6 +144,29 @@ void Wallet::setConnectionStatus(ConnectionStatus value) } } +QString Wallet::getProxyAddress() const +{ + QMutexLocker locker(&m_proxyMutex); + return m_proxyAddress; +} + +void Wallet::setProxyAddress(QString address) +{ + m_scheduler.run([this, address] { + { + QMutexLocker locker(&m_proxyMutex); + + if (!m_walletImpl->setProxy(address.toStdString())) + { + qCritical() << "failed to set proxy" << address; + } + + m_proxyAddress = address; + } + emit proxyAddressChanged(); + }); +} + bool Wallet::synchronized() const { return m_walletImpl->synchronized(); @@ -184,7 +207,7 @@ void Wallet::storeAsync(const QJSValue &callback, const QString &path /* = "" */ } } -bool Wallet::init(const QString &daemonAddress, bool trustedDaemon, quint64 upperTransactionLimit, bool isRecovering, bool isRecoveringFromDevice, quint64 restoreHeight) +bool Wallet::init(const QString &daemonAddress, bool trustedDaemon, quint64 upperTransactionLimit, bool isRecovering, bool isRecoveringFromDevice, quint64 restoreHeight, const QString& proxyAddress) { qDebug() << "init non async"; if (isRecovering){ @@ -198,7 +221,20 @@ bool Wallet::init(const QString &daemonAddress, bool trustedDaemon, quint64 uppe if (isRecovering || isRecoveringFromDevice) { m_walletImpl->setRefreshFromBlockHeight(restoreHeight); } - m_walletImpl->init(daemonAddress.toStdString(), upperTransactionLimit, m_daemonUsername.toStdString(), m_daemonPassword.toStdString()); + + { + QMutexLocker locker(&m_proxyMutex); + + if (!m_walletImpl->init(daemonAddress.toStdString(), upperTransactionLimit, m_daemonUsername.toStdString(), m_daemonPassword.toStdString(), false, false, proxyAddress.toStdString())) + { + return false; + } + + + m_proxyAddress = proxyAddress; + } + emit proxyAddressChanged(); + setTrustedDaemon(trustedDaemon); return true; } @@ -210,11 +246,18 @@ void Wallet::setDaemonLogin(const QString &daemonUsername, const QString &daemon m_daemonPassword = daemonPassword; } -void Wallet::initAsync(const QString &daemonAddress, bool trustedDaemon, quint64 upperTransactionLimit, bool isRecovering, bool isRecoveringFromDevice, quint64 restoreHeight) +void Wallet::initAsync( + const QString &daemonAddress, + bool trustedDaemon /* = false */, + quint64 upperTransactionLimit /* = 0 */, + bool isRecovering /* = false */, + bool isRecoveringFromDevice /* = false */, + quint64 restoreHeight /* = 0 */, + const QString &proxyAddress /* = "" */) { qDebug() << "initAsync: " + daemonAddress; - const auto future = m_scheduler.run([this, daemonAddress, trustedDaemon, upperTransactionLimit, isRecovering, isRecoveringFromDevice, restoreHeight] { - bool success = init(daemonAddress, trustedDaemon, upperTransactionLimit, isRecovering, isRecoveringFromDevice, restoreHeight); + const auto future = m_scheduler.run([this, daemonAddress, trustedDaemon, upperTransactionLimit, isRecovering, isRecoveringFromDevice, restoreHeight, proxyAddress] { + bool success = init(daemonAddress, trustedDaemon, upperTransactionLimit, isRecovering, isRecoveringFromDevice, restoreHeight, proxyAddress); if (success) { emit walletCreationHeightChanged(); |
