aboutsummaryrefslogtreecommitdiff
path: root/wizard
diff options
context:
space:
mode:
authorxiphon <xiphon@protonmail.com>2019-09-02 21:32:36 +0000
committerxiphon <xiphon@protonmail.com>2019-09-09 15:24:26 +0000
commit0d247a9b8a2fa6770d1834584eedb109c6ab7e3d (patch)
tree353d9c588cc280c869d2cb07feabd3422e540431 /wizard
parenta5b2d5e727c44d03c5f3f96d9726658caa9cdb6d (diff)
downloadmonzero-gui-0d247a9b8a2fa6770d1834584eedb109c6ab7e3d.tar.gz
monzero-gui-0d247a9b8a2fa6770d1834584eedb109c6ab7e3d.tar.xz
monzero-gui-0d247a9b8a2fa6770d1834584eedb109c6ab7e3d.zip
SimpleMode: automatic public nodes discovering and switching
Diffstat (limited to 'wizard')
-rw-r--r--wizard/WizardController.qml83
-rw-r--r--wizard/WizardCreateWallet2.qml7
-rw-r--r--wizard/WizardModeBootstrap.qml61
-rw-r--r--wizard/WizardModeRemoteNodeWarning.qml61
-rw-r--r--wizard/WizardOpenWallet1.qml11
-rw-r--r--wizard/WizardRestoreWallet2.qml7
6 files changed, 3 insertions, 227 deletions
diff --git a/wizard/WizardController.qml b/wizard/WizardController.qml
index 7d5b662f..d1d29a5b 100644
--- a/wizard/WizardController.qml
+++ b/wizard/WizardController.qml
@@ -72,7 +72,6 @@ Rectangle {
wizardController.tmpWalletFilename = '';
wizardController.walletRestoreMode = 'seed'
wizardController.walletOptionsSubaddressLookahead = '';
- wizardController.remoteNodes = {};
disconnect();
if (typeof wizardController.m_wallet !== 'undefined'){
@@ -107,7 +106,6 @@ Rectangle {
property string walletOptionsDeviceName: ''
property bool walletOptionsDeviceIsRestore: false
property string tmpWalletFilename: ''
- property var remoteNodes: ''
// language settings, updated via sidebar
property string language_locale: 'en_US'
@@ -560,87 +558,6 @@ Rectangle {
passwordDialog.open(appWindow.usefulName(appWindow.walletPath()));
}
- function fetchRemoteNodes(cb, cb_err){
- // Fetch remote nodes, parse JSON, store in result `wizardController.remoteNodes`, call setAutNode(), call callback
- var url = appWindow.remoteNodeService + 'api/nodes.json';
- console.log("HTTP request: " + url);
-
- var xhr = new XMLHttpRequest();
- xhr.timeout = 3500;
-
- // Unfortunately we cannot spoof User-Agent since it is hardcoded in Qt
- //xhr.setRequestHeader("User-Agent", "-");
-
- xhr.onreadystatechange = function() {
- var msg;
- if (xhr.readyState != 4) {
- return;
- } else if(xhr.status != 200){
- msg = "Error fetching remote nodes; status code was not 200";
- console.log(msg);
- if(typeof cb_err === 'function')
- return cb_err(msg);
- } else {
- var body = xhr.responseText;
- if(typeof body === 'undefined' || body === ''){
- msg = "Error fetching remote nodes; response body was empty";
- console.log(msg);
- if(typeof cb_err === 'function')
- return cb_err(msg);
- }
-
- var data = JSON.parse(body);
- wizardController.remoteNodes = data;
- console.log("node list updated");
- setAutoNode();
- return cb();
- }
- }
-
- xhr.open('GET', url, true);
- xhr.send(null);
- }
-
- function setAutoNode(){
- var node;
- var nodes;
- var nodeObject = wizardController.remoteNodes;
- var region = persistentSettings.remoteNodeRegion;
-
- if(typeof region !== 'undefined' && region !== ""){
- if(nodeObject.hasOwnProperty(region) && nodeObject[region].length > 0){
- nodes = nodeObject[region];
- } else {
- console.log("No suitable nodes found for region " + region + ". Defaulting to random node.");
- }
- }
-
- if(typeof nodes === 'undefined'){
- nodes = [];
- Object.keys(nodeObject).forEach(function(obj, i){
- nodes = nodes.concat(nodeObject[obj]);
- });
- }
-
- // 18089 has precedence
- var filteredNodes = Utils.filterNodes(nodes, "18089");
- if(filteredNodes.length > 0){
- node = Utils.randomChoice(filteredNodes);
- console.log('Choosing remote node \''+ node +'\' from a list of ' + filteredNodes.length);
- } else if(nodes.length > 0){
- node = Utils.randomChoice(nodes);
- console.log('Choosing remote node \''+ node +'\' from a list of ' + nodes.length);
- } else {
- console.log("No suitable nodes found.")
- return ''
- }
-
- if(appWindow.walletMode === 0)
- persistentSettings.remoteNodeAddress = node;
- else if(appWindow.walletMode === 1)
- persistentSettings.bootstrapNodeAddress = node;
- }
-
Component.onCompleted: {
//
}
diff --git a/wizard/WizardCreateWallet2.qml b/wizard/WizardCreateWallet2.qml
index 7c698ee9..9df4680a 100644
--- a/wizard/WizardCreateWallet2.qml
+++ b/wizard/WizardCreateWallet2.qml
@@ -74,12 +74,7 @@ Rectangle {
wizardController.walletOptionsPassword = passwordFields.password;
if(appWindow.walletMode === 0 || appWindow.walletMode === 1){
- wizardController.fetchRemoteNodes(function(){
- wizardStateView.state = "wizardCreateWallet4";
- }, function(){
- appWindow.showStatusMessage(qsTr("Failed to fetch remote nodes from third-party server."), 5);
- wizardStateView.state = "wizardCreateWallet4";
- });
+ wizardStateView.state = "wizardCreateWallet4";
} else {
wizardStateView.state = "wizardCreateWallet3";
}
diff --git a/wizard/WizardModeBootstrap.qml b/wizard/WizardModeBootstrap.qml
index ba911d63..5b583101 100644
--- a/wizard/WizardModeBootstrap.qml
+++ b/wizard/WizardModeBootstrap.qml
@@ -97,49 +97,6 @@ Rectangle {
text: qsTr("Remain aware of these limitations. <b>Users who prioritize privacy and decentralization must use a full node instead</b>.") + translationManager.emptyString
}
- MoneroComponents.TextPlain {
- text: qsTr("For enhanced node performance you may specify your region:") + translationManager.emptyString
- wrapMode: Text.Wrap
- Layout.topMargin: 8
- Layout.fillWidth: true
-
- font.family: MoneroComponents.Style.fontRegular.name
- font.pixelSize: 16
- color: MoneroComponents.Style.defaultFontColor
- }
-
- GridLayout {
- columns: 3
- columnSpacing: 20
-
- ColumnLayout {
- Layout.fillWidth: true
- spacing: 0
-
- MoneroComponents.StandardDropdown {
- id: regionDropdown
- Layout.fillWidth: true
- dataModel: regionModel
- currentIndex: 0
-
- onChanged: {
- var region = regionModel.get(currentIndex).region;
- persistentSettings.remoteNodeRegion = region;
- }
- }
- }
-
- Item {
- Layout.fillWidth: true
- }
-
- Item {
- Layout.fillWidth: true
- }
-
- z: parent.z + 1
- }
-
MoneroComponents.CheckBox {
id: understoodCheckbox
Layout.topMargin: 20
@@ -184,22 +141,4 @@ Rectangle {
wizardModeBootstrapWarning.understood = false;
understoodCheckbox.checked = false;
}
-
- Component.onCompleted: {
- var region = persistentSettings.remoteNodeRegion;
-
- if(region){
- for(var i = 0; i !== regionDropdown.dataModel.count; i++){
- var item = regionDropdown.dataModel.get(i);
- if(item['region'] === region){
- regionDropdown.currentIndex = i;
- break;
- }
- }
- } else {
- regionDropdown.currentIndex = 0;
- }
-
- regionDropdown.update();
- }
}
diff --git a/wizard/WizardModeRemoteNodeWarning.qml b/wizard/WizardModeRemoteNodeWarning.qml
index d6c2dd1d..be53b168 100644
--- a/wizard/WizardModeRemoteNodeWarning.qml
+++ b/wizard/WizardModeRemoteNodeWarning.qml
@@ -100,49 +100,6 @@ Rectangle {
text: qsTr("Remain aware of these limitations. <b>Users who prioritize privacy and decentralization must use a full node instead</b>.") + translationManager.emptyString
}
- MoneroComponents.TextPlain {
- text: qsTr("For enhanced node performance you may specify your region:") + translationManager.emptyString
- wrapMode: Text.Wrap
- Layout.topMargin: 8
- Layout.fillWidth: true
-
- font.family: MoneroComponents.Style.fontRegular.name
- font.pixelSize: 16
- color: MoneroComponents.Style.defaultFontColor
- }
-
- GridLayout {
- columns: 3
- columnSpacing: 20
-
- ColumnLayout {
- Layout.fillWidth: true
- spacing: 0
-
- MoneroComponents.StandardDropdown {
- id: regionDropdown
- Layout.fillWidth: true
- dataModel: regionModel
- currentIndex: 0
-
- onChanged: {
- var region = regionModel.get(currentIndex).region;
- persistentSettings.remoteNodeRegion = region;
- }
- }
- }
-
- Item {
- Layout.fillWidth: true
- }
-
- Item {
- Layout.fillWidth: true
- }
-
- z: parent.z + 1
- }
-
MoneroComponents.CheckBox {
id: understoodCheckbox
Layout.topMargin: 20
@@ -187,22 +144,4 @@ Rectangle {
wizardModeRemoteNodeWarning.understood = false;
understoodCheckbox.checked = false;
}
-
- Component.onCompleted: {
- var region = persistentSettings.remoteNodeRegion;
-
- if(region){
- for(var i = 0; i !== regionDropdown.dataModel.count; i++){
- var item = regionDropdown.dataModel.get(i);
- if(item['region'] === region){
- regionDropdown.currentIndex = i;
- break;
- }
- }
- } else {
- regionDropdown.currentIndex = 0;
- }
-
- regionDropdown.update();
- }
}
diff --git a/wizard/WizardOpenWallet1.qml b/wizard/WizardOpenWallet1.qml
index 4d4d1ed7..e0d93a05 100644
--- a/wizard/WizardOpenWallet1.qml
+++ b/wizard/WizardOpenWallet1.qml
@@ -282,16 +282,7 @@ Rectangle {
onClicked: {
persistentSettings.nettype = parseInt(networktype)
- if(appWindow.walletMode === 0 || appWindow.walletMode === 1){
- wizardController.fetchRemoteNodes(function(){
- wizardController.openWalletFile(item.filePath);
- }, function(){
- appWindow.showStatusMessage(qsTr("Failed to fetch remote nodes from third-party server."), 5);
- wizardController.openWalletFile(item.filePath);
- });
- } else {
- wizardController.openWalletFile(item.filePath);
- }
+ wizardController.openWalletFile(item.filePath);
}
}
}
diff --git a/wizard/WizardRestoreWallet2.qml b/wizard/WizardRestoreWallet2.qml
index 161421c7..8e270984 100644
--- a/wizard/WizardRestoreWallet2.qml
+++ b/wizard/WizardRestoreWallet2.qml
@@ -73,12 +73,7 @@ Rectangle {
wizardController.walletOptionsPassword = passwordFields.password;
if(appWindow.walletMode === 0 || appWindow.walletMode === 1){
- wizardController.fetchRemoteNodes(function(){
- wizardStateView.state = "wizardRestoreWallet4";
- }, function(){
- appWindow.showStatusMessage(qsTr("Failed to fetch remote nodes from third-party server."), 5);
- wizardStateView.state = "wizardRestoreWallet4";
- });
+ wizardStateView.state = "wizardRestoreWallet4";
} else {
wizardStateView.state = "wizardRestoreWallet3";
}