aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2019-08-14 15:40:33 -0500
committerluigi1111 <luigi1111w@gmail.com>2019-08-14 15:40:33 -0500
commit1ca10373a3864357444235458763ee8feb83cdd0 (patch)
tree3225396ecc4d4e5094b9918f0adb5d849a036eae
parentac6687f6ff0712e777d546a8416b379188e85060 (diff)
parent30a3abedbe7c4e26cfc2da7c84c3300dfae2a254 (diff)
downloadmonzero-gui-1ca10373a3864357444235458763ee8feb83cdd0.tar.gz
monzero-gui-1ca10373a3864357444235458763ee8feb83cdd0.tar.xz
monzero-gui-1ca10373a3864357444235458763ee8feb83cdd0.zip
Merge pull request #2336
30a3abe Wallet: explicitly set trusted daemon flag (xiphon)
-rw-r--r--main.qml16
-rw-r--r--src/libwalletqt/Wallet.cpp10
-rw-r--r--src/libwalletqt/Wallet.h8
3 files changed, 22 insertions, 12 deletions
diff --git a/main.qml b/main.qml
index 76057fda..78479d74 100644
--- a/main.qml
+++ b/main.qml
@@ -389,11 +389,21 @@ ApplicationWindow {
currentDaemonAddress = localDaemonAddress
console.log("initializing with daemon address: ", currentDaemonAddress)
- currentWallet.initAsync(currentDaemonAddress, 0, persistentSettings.is_recovering, persistentSettings.is_recovering_from_device, persistentSettings.restore_height);
+ currentWallet.initAsync(
+ currentDaemonAddress,
+ isTrustedDaemon(),
+ 0,
+ persistentSettings.is_recovering,
+ persistentSettings.is_recovering_from_device,
+ persistentSettings.restore_height);
// save wallet keys in case wallet settings have been changed in the init
currentWallet.setPassword(walletPassword);
}
+ function isTrustedDaemon() {
+ return !persistentSettings.useRemoteNode || persistentSettings.is_trusted_daemon;
+ }
+
function walletPath() {
var wallet_path = persistentSettings.wallet_path
return wallet_path;
@@ -608,7 +618,7 @@ ApplicationWindow {
console.log("connecting remote node");
persistentSettings.useRemoteNode = true;
currentDaemonAddress = persistentSettings.remoteNodeAddress;
- currentWallet.initAsync(currentDaemonAddress);
+ currentWallet.initAsync(currentDaemonAddress, isTrustedDaemon());
walletManager.setDaemonAddressAsync(currentDaemonAddress);
}
@@ -619,7 +629,7 @@ ApplicationWindow {
console.log("disconnecting remote node");
persistentSettings.useRemoteNode = false;
currentDaemonAddress = localDaemonAddress
- currentWallet.initAsync(currentDaemonAddress);
+ currentWallet.initAsync(currentDaemonAddress, isTrustedDaemon());
walletManager.setDaemonAddressAsync(currentDaemonAddress);
}
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp
index 0d7ca68c..8b7c23cd 100644
--- a/src/libwalletqt/Wallet.cpp
+++ b/src/libwalletqt/Wallet.cpp
@@ -206,7 +206,7 @@ bool Wallet::store(const QString &path)
return m_walletImpl->store(path.toStdString());
}
-bool Wallet::init(const QString &daemonAddress, quint64 upperTransactionLimit, bool isRecovering, bool isRecoveringFromDevice, quint64 restoreHeight)
+bool Wallet::init(const QString &daemonAddress, bool trustedDaemon, quint64 upperTransactionLimit, bool isRecovering, bool isRecoveringFromDevice, quint64 restoreHeight)
{
qDebug() << "init non async";
if (isRecovering){
@@ -221,6 +221,7 @@ bool Wallet::init(const QString &daemonAddress, quint64 upperTransactionLimit, b
m_walletImpl->setRefreshFromBlockHeight(restoreHeight);
}
m_walletImpl->init(daemonAddress.toStdString(), upperTransactionLimit, m_daemonUsername.toStdString(), m_daemonPassword.toStdString());
+ setTrustedDaemon(trustedDaemon);
return true;
}
@@ -231,7 +232,7 @@ void Wallet::setDaemonLogin(const QString &daemonUsername, const QString &daemon
m_daemonPassword = daemonPassword;
}
-void Wallet::initAsync(const QString &daemonAddress, quint64 upperTransactionLimit, bool isRecovering, bool isRecoveringFromDevice, quint64 restoreHeight)
+void Wallet::initAsync(const QString &daemonAddress, bool trustedDaemon, quint64 upperTransactionLimit, bool isRecovering, bool isRecoveringFromDevice, quint64 restoreHeight)
{
qDebug() << "initAsync: " + daemonAddress;
// Change status to disconnected if connected
@@ -240,15 +241,14 @@ void Wallet::initAsync(const QString &daemonAddress, quint64 upperTransactionLim
emit connectionStatusChanged(m_connectionStatus);
}
- m_scheduler.run([this, daemonAddress, upperTransactionLimit, isRecovering, isRecoveringFromDevice, restoreHeight] {
- bool success = init(daemonAddress, upperTransactionLimit, isRecovering, isRecoveringFromDevice, restoreHeight);
+ m_scheduler.run([this, daemonAddress, trustedDaemon, upperTransactionLimit, isRecovering, isRecoveringFromDevice, restoreHeight] {
+ bool success = init(daemonAddress, trustedDaemon, upperTransactionLimit, isRecovering, isRecoveringFromDevice, restoreHeight);
if (success)
{
emit walletCreationHeightChanged();
qDebug() << "init async finished - starting refresh";
connected(true);
m_walletImpl->startRefresh();
-
}
});
}
diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h
index cbff25df..65880599 100644
--- a/src/libwalletqt/Wallet.h
+++ b/src/libwalletqt/Wallet.h
@@ -144,11 +144,8 @@ public:
//! empty path stores in current location
Q_INVOKABLE bool store(const QString &path = "");
- //! initializes wallet
- Q_INVOKABLE bool init(const QString &daemonAddress, quint64 upperTransactionLimit = 0, bool isRecovering = false, bool isRecoveringFromDevice = false, quint64 restoreHeight = 0);
-
//! initializes wallet asynchronously
- Q_INVOKABLE void initAsync(const QString &daemonAddress, quint64 upperTransactionLimit = 0, bool isRecovering = false, bool isRecoveringFromDevice = false, quint64 restoreHeight = 0);
+ Q_INVOKABLE void initAsync(const QString &daemonAddress, bool trustedDaemon = false, quint64 upperTransactionLimit = 0, bool isRecovering = false, bool isRecoveringFromDevice = false, quint64 restoreHeight = 0);
// Set daemon rpc user/pass
Q_INVOKABLE void setDaemonLogin(const QString &daemonUsername = "", const QString &daemonPassword = "");
@@ -379,6 +376,9 @@ private:
//! returns daemon's blockchain target height
quint64 daemonBlockChainTargetHeight() const;
+ //! initializes wallet
+ bool init(const QString &daemonAddress, bool trustedDaemon, quint64 upperTransactionLimit, bool isRecovering, bool isRecoveringFromDevice, quint64 restoreHeight);
+
private:
friend class WalletManager;
friend class WalletListenerImpl;