From 3132db7b394e2efdf4fb1902ff89f916986b1482 Mon Sep 17 00:00:00 2001
From: fossephate <matt.cfosse@gmail.com>
Date: Mon, 28 Oct 2024 13:10:33 -0700
Subject: [PATCH] mweb node setting [wip] [skip ci]

---
 cw_bitcoin/lib/electrum_wallet.dart           | 23 --------
 cw_bitcoin/lib/litecoin_wallet.dart           | 11 ++--
 lib/di.dart                                   |  3 +
 lib/entities/preferences_key.dart             |  1 +
 lib/router.dart                               |  5 ++
 lib/routes.dart                               |  1 +
 lib/src/screens/settings/mweb_node_page.dart  | 56 +++++++++++++++++++
 lib/src/screens/settings/mweb_settings.dart   |  6 +-
 lib/store/settings_store.dart                 | 25 +++++++--
 .../settings/mweb_settings_view_model.dart    |  8 +++
 res/values/strings_ar.arb                     |  1 +
 res/values/strings_bg.arb                     |  1 +
 res/values/strings_cs.arb                     |  1 +
 res/values/strings_de.arb                     |  3 +-
 res/values/strings_en.arb                     |  1 +
 res/values/strings_es.arb                     |  3 +-
 res/values/strings_fr.arb                     |  1 +
 res/values/strings_ha.arb                     |  1 +
 res/values/strings_hi.arb                     |  1 +
 res/values/strings_hr.arb                     |  1 +
 res/values/strings_hy.arb                     |  1 +
 res/values/strings_id.arb                     |  1 +
 res/values/strings_it.arb                     |  1 +
 res/values/strings_ja.arb                     |  1 +
 res/values/strings_ko.arb                     |  1 +
 res/values/strings_my.arb                     |  1 +
 res/values/strings_nl.arb                     |  1 +
 res/values/strings_pl.arb                     |  1 +
 res/values/strings_pt.arb                     |  1 +
 res/values/strings_ru.arb                     |  1 +
 res/values/strings_th.arb                     |  1 +
 res/values/strings_tl.arb                     |  1 +
 res/values/strings_tr.arb                     |  1 +
 res/values/strings_uk.arb                     |  1 +
 res/values/strings_ur.arb                     |  1 +
 res/values/strings_vi.arb                     |  1 +
 res/values/strings_yo.arb                     |  1 +
 res/values/strings_zh.arb                     |  1 +
 38 files changed, 136 insertions(+), 35 deletions(-)
 create mode 100644 lib/src/screens/settings/mweb_node_page.dart

diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart
index 0aa4971bb..ec5e71a15 100644
--- a/cw_bitcoin/lib/electrum_wallet.dart
+++ b/cw_bitcoin/lib/electrum_wallet.dart
@@ -569,29 +569,6 @@ abstract class ElectrumWalletBase
     return node!.supportsSilentPayments!;
   }
 
-  Future<bool> getNodeSupportsMweb() async {
-    final version = await electrumClient.version();
-
-    if (node == null) {
-      return false;
-    }
-
-    if (version.isNotEmpty) {
-      final server = version[0];
-      print("server: $server");
-
-      return false;
-
-      // if (server.toLowerCase().contains('electrs')) {
-      //   node!.isElectrs = true;
-      //   node!.save();
-      //   return node!.isElectrs!;
-      // }
-    }
-
-    return node!.supportsMweb!;
-  }
-
   @action
   @override
   Future<void> connectToNode({required Node node}) async {
diff --git a/cw_bitcoin/lib/litecoin_wallet.dart b/cw_bitcoin/lib/litecoin_wallet.dart
index 651c231d6..14ef7012a 100644
--- a/cw_bitcoin/lib/litecoin_wallet.dart
+++ b/cw_bitcoin/lib/litecoin_wallet.dart
@@ -288,13 +288,16 @@ abstract class LitecoinWalletBase extends ElectrumWallet with Store {
     await (walletAddresses as LitecoinWalletAddresses).ensureMwebAddressUpToIndexExists(1020);
   }
 
+  // String getMwebNodeUriFromPrefs() {
+  //   // from preferences_key.dart "defaultNanoRep" key:
+  //   return prefs.getString("mweb_node_uri") ?? "ltc-electrum.cakewallet.com:9333";
+  // }
+
   @action
   @override
   Future<void> connectToNode({required Node node}) async {
     await super.connectToNode(node: node);
-    if (await getNodeSupportsMweb()) {
-      await CwMweb.setNodeUriOverride(node.uri.toString());
-    }
+    // await CwMweb.setNodeUriOverride(settingsStore.mwebNodeUri);
   }
 
   @action
@@ -978,7 +981,7 @@ abstract class LitecoinWalletBase extends ElectrumWallet with Store {
       // add the difference to the fee (abs value):
       fee += diff.abs();
     }
-    
+
     print("fee is now: $fee");
 
     final txb =
diff --git a/lib/di.dart b/lib/di.dart
index 164b9ef4c..14fdbd56d 100644
--- a/lib/di.dart
+++ b/lib/di.dart
@@ -36,6 +36,7 @@ import 'package:cake_wallet/entities/wallet_edit_page_arguments.dart';
 import 'package:cake_wallet/entities/wallet_manager.dart';
 import 'package:cake_wallet/src/screens/receive/address_list_page.dart';
 import 'package:cake_wallet/src/screens/settings/mweb_logs_page.dart';
+import 'package:cake_wallet/src/screens/settings/mweb_node_page.dart';
 import 'package:cake_wallet/view_model/link_view_model.dart';
 import 'package:cake_wallet/tron/tron.dart';
 import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dart';
@@ -948,6 +949,8 @@ Future<void> setup({
 
   getIt.registerFactory(() => MwebLogsPage(getIt.get<MwebSettingsViewModel>()));
 
+  getIt.registerFactory(() => MwebNodePage(getIt.get<MwebSettingsViewModel>()));
+
   getIt.registerFactory(() => OtherSettingsPage(getIt.get<OtherSettingsViewModel>()));
 
   getIt.registerFactory(() => NanoChangeRepPage(
diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart
index 4fbe358e5..c817a5aba 100644
--- a/lib/entities/preferences_key.dart
+++ b/lib/entities/preferences_key.dart
@@ -52,6 +52,7 @@ class PreferencesKey {
   static const mwebEnabled = 'mwebEnabled';
   static const hasEnabledMwebBefore = 'hasEnabledMwebBefore';
   static const mwebAlwaysScan = 'mwebAlwaysScan';
+  static const mwebNodeUri = 'mwebNodeUri';
   static const shouldShowReceiveWarning = 'should_show_receive_warning';
   static const shouldShowYatPopup = 'should_show_yat_popup';
   static const shouldShowRepWarning = 'should_show_rep_warning';
diff --git a/lib/router.dart b/lib/router.dart
index c039ff5f5..6c234ff80 100644
--- a/lib/router.dart
+++ b/lib/router.dart
@@ -73,6 +73,7 @@ import 'package:cake_wallet/src/screens/settings/display_settings_page.dart';
 import 'package:cake_wallet/src/screens/settings/domain_lookups_page.dart';
 import 'package:cake_wallet/src/screens/settings/manage_nodes_page.dart';
 import 'package:cake_wallet/src/screens/settings/mweb_logs_page.dart';
+import 'package:cake_wallet/src/screens/settings/mweb_node_page.dart';
 import 'package:cake_wallet/src/screens/settings/mweb_settings.dart';
 import 'package:cake_wallet/src/screens/settings/other_settings_page.dart';
 import 'package:cake_wallet/src/screens/settings/privacy_page.dart';
@@ -466,6 +467,10 @@ Route<dynamic> createRoute(RouteSettings settings) {
       return CupertinoPageRoute<void>(
           fullscreenDialog: true, builder: (_) => getIt.get<MwebLogsPage>());
 
+    case Routes.mwebNode:
+      return CupertinoPageRoute<void>(
+          fullscreenDialog: true, builder: (_) => getIt.get<MwebNodePage>());
+
     case Routes.connectionSync:
       return CupertinoPageRoute<void>(
           fullscreenDialog: true, builder: (_) => getIt.get<ConnectionSyncPage>());
diff --git a/lib/routes.dart b/lib/routes.dart
index a16d007c3..5f11b11a3 100644
--- a/lib/routes.dart
+++ b/lib/routes.dart
@@ -75,6 +75,7 @@ class Routes {
   static const silentPaymentsSettings = '/silent_payments_settings';
   static const mwebSettings = '/mweb_settings';
   static const mwebLogs = '/mweb_logs';
+  static const mwebNode = '/mweb_node';
   static const connectionSync = '/connection_sync_page';
   static const securityBackupPage = '/security_and_backup_page';
   static const privacyPage = '/privacy_page';
diff --git a/lib/src/screens/settings/mweb_node_page.dart b/lib/src/screens/settings/mweb_node_page.dart
new file mode 100644
index 000000000..7fc08db62
--- /dev/null
+++ b/lib/src/screens/settings/mweb_node_page.dart
@@ -0,0 +1,56 @@
+import 'package:cake_wallet/src/screens/base_page.dart';
+import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
+import 'package:cake_wallet/src/widgets/primary_button.dart';
+import 'package:cake_wallet/generated/i18n.dart';
+import 'package:cake_wallet/view_model/settings/mweb_settings_view_model.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter_mobx/flutter_mobx.dart';
+
+class MwebNodePage extends BasePage {
+  MwebNodePage(this.mwebSettingsViewModelBase)
+      : _nodeUriController = TextEditingController(text: mwebSettingsViewModelBase.mwebNodeUri),
+        super();
+
+  final MwebSettingsViewModelBase mwebSettingsViewModelBase;
+  final TextEditingController _nodeUriController;
+
+  @override
+  String get title => S.current.litecoin_mweb_node;
+
+  @override
+  Widget body(BuildContext context) {
+    return Stack(
+      fit: StackFit.expand,
+      children: [
+        Container(
+          padding: EdgeInsets.symmetric(horizontal: 24),
+          child: Row(
+            children: <Widget>[
+              Expanded(
+                child: BaseTextFormField(controller: _nodeUriController),
+              )
+            ],
+          ),
+        ),
+        Positioned(
+          child: Observer(
+            builder: (_) => LoadingPrimaryButton(
+              onPressed: save,
+              text: S.of(context).save,
+              color: Theme.of(context).primaryColor,
+              textColor: Colors.white,
+            ),
+          ),
+          bottom: 24,
+          left: 24,
+          right: 24,
+        )
+      ],
+    );
+  }
+
+
+  void save() {
+    mwebSettingsViewModelBase.setMwebNodeUri(_nodeUriController.text);
+  }
+}
diff --git a/lib/src/screens/settings/mweb_settings.dart b/lib/src/screens/settings/mweb_settings.dart
index acc50e38b..423aad6e4 100644
--- a/lib/src/screens/settings/mweb_settings.dart
+++ b/lib/src/screens/settings/mweb_settings.dart
@@ -41,10 +41,14 @@ class MwebSettingsPage extends BasePage {
                 title: S.current.litecoin_mweb_scanning,
                 handler: (BuildContext context) => Navigator.of(context).pushNamed(Routes.rescan),
               ),
-              SettingsCellWithArrow(
+            SettingsCellWithArrow(
                 title: S.current.litecoin_mweb_logs,
                 handler: (BuildContext context) => Navigator.of(context).pushNamed(Routes.mwebLogs),
               ),
+              SettingsCellWithArrow(
+                title: S.current.litecoin_mweb_node,
+                handler: (BuildContext context) => Navigator.of(context).pushNamed(Routes.mwebNode),
+              ),
             ],
           ),
         );
diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart
index 9f03c95c3..37fe5ef10 100644
--- a/lib/store/settings_store.dart
+++ b/lib/store/settings_store.dart
@@ -118,6 +118,7 @@ abstract class SettingsStoreBase with Store {
       required this.mwebCardDisplay,
       required this.mwebEnabled,
       required this.hasEnabledMwebBefore,
+      required this.mwebNodeUri,
       TransactionPriority? initialBitcoinTransactionPriority,
       TransactionPriority? initialMoneroTransactionPriority,
       TransactionPriority? initialWowneroTransactionPriority,
@@ -344,8 +345,8 @@ abstract class SettingsStoreBase with Store {
 
     reaction(
         (_) => bitcoinSeedType,
-        (BitcoinSeedType bitcoinSeedType) => sharedPreferences.setInt(
-            PreferencesKey.bitcoinSeedType, bitcoinSeedType.raw));
+        (BitcoinSeedType bitcoinSeedType) =>
+            sharedPreferences.setInt(PreferencesKey.bitcoinSeedType, bitcoinSeedType.raw));
 
     reaction(
         (_) => nanoSeedType,
@@ -428,8 +429,10 @@ abstract class SettingsStoreBase with Store {
     reaction((_) => useTronGrid,
         (bool useTronGrid) => _sharedPreferences.setBool(PreferencesKey.useTronGrid, useTronGrid));
 
-    reaction((_) => useMempoolFeeAPI,
-        (bool useMempoolFeeAPI) => _sharedPreferences.setBool(PreferencesKey.useMempoolFeeAPI, useMempoolFeeAPI));
+    reaction(
+        (_) => useMempoolFeeAPI,
+        (bool useMempoolFeeAPI) =>
+            _sharedPreferences.setBool(PreferencesKey.useMempoolFeeAPI, useMempoolFeeAPI));
 
     reaction((_) => defaultNanoRep,
         (String nanoRep) => _sharedPreferences.setString(PreferencesKey.defaultNanoRep, nanoRep));
@@ -577,6 +580,11 @@ abstract class SettingsStoreBase with Store {
         (bool hasEnabledMwebBefore) =>
             _sharedPreferences.setBool(PreferencesKey.hasEnabledMwebBefore, hasEnabledMwebBefore));
 
+    reaction(
+        (_) => mwebNodeUri,
+        (String mwebNodeUri) =>
+            _sharedPreferences.setString(PreferencesKey.mwebNodeUri, mwebNodeUri));
+
     this.nodes.observe((change) {
       if (change.newValue != null && change.key != null) {
         _saveCurrentNode(change.newValue!, change.key!);
@@ -802,6 +810,9 @@ abstract class SettingsStoreBase with Store {
   @observable
   bool hasEnabledMwebBefore;
 
+  @observable
+  String mwebNodeUri;
+
   final SecureStorage _secureStorage;
   final SharedPreferences _sharedPreferences;
   final BackgroundTasks _backgroundTasks;
@@ -964,6 +975,8 @@ abstract class SettingsStoreBase with Store {
     final mwebEnabled = sharedPreferences.getBool(PreferencesKey.mwebEnabled) ?? false;
     final hasEnabledMwebBefore =
         sharedPreferences.getBool(PreferencesKey.hasEnabledMwebBefore) ?? false;
+    final mwebNodeUri = sharedPreferences.getString(PreferencesKey.mwebNodeUri) ??
+        "ltc-electrum.cakewallet.com:9333";
 
     // If no value
     if (pinLength == null || pinLength == 0) {
@@ -1233,6 +1246,7 @@ abstract class SettingsStoreBase with Store {
       mwebAlwaysScan: mwebAlwaysScan,
       mwebCardDisplay: mwebCardDisplay,
       mwebEnabled: mwebEnabled,
+      mwebNodeUri: mwebNodeUri,
       hasEnabledMwebBefore: hasEnabledMwebBefore,
       initialMoneroTransactionPriority: moneroTransactionPriority,
       initialWowneroTransactionPriority: wowneroTransactionPriority,
@@ -1658,7 +1672,8 @@ abstract class SettingsStoreBase with Store {
         deviceName = windowsInfo.productName;
       } catch (e) {
         print(e);
-        print('likely digitalProductId is null wait till https://github.com/fluttercommunity/plus_plugins/pull/3188 is merged');
+        print(
+            'likely digitalProductId is null wait till https://github.com/fluttercommunity/plus_plugins/pull/3188 is merged');
         deviceName = "Windows Device";
       }
     }
diff --git a/lib/view_model/settings/mweb_settings_view_model.dart b/lib/view_model/settings/mweb_settings_view_model.dart
index 09a932b5f..d3265d729 100644
--- a/lib/view_model/settings/mweb_settings_view_model.dart
+++ b/lib/view_model/settings/mweb_settings_view_model.dart
@@ -25,11 +25,19 @@ abstract class MwebSettingsViewModelBase with Store {
   @observable
   late bool mwebEnabled;
 
+  @computed
+  String get mwebNodeUri => _settingsStore.mwebNodeUri;
+
   @action
   void setMwebCardDisplay(bool value) {
     _settingsStore.mwebCardDisplay = value;
   }
 
+  @action
+  void setMwebNodeUri(String value) {
+    _settingsStore.mwebNodeUri = value;
+  }
+
   @action
   void setMwebEnabled(bool value) {
     mwebEnabled = value;
diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb
index dd2656ce6..cd92c8d72 100644
--- a/res/values/strings_ar.arb
+++ b/res/values/strings_ar.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "عرض بطاقة mweb",
   "litecoin_mweb_enable_later": "يمكنك اختيار تمكين MWEB مرة أخرى ضمن إعدادات العرض.",
   "litecoin_mweb_logs": "سجلات MWEB",
+  "litecoin_mweb_node": "عقدة MWEB",
   "litecoin_mweb_pegin": "ربط في",
   "litecoin_mweb_pegout": "ربط",
   "litecoin_mweb_scanning": "MWEB المسح الضوئي",
diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb
index efef73e97..0c0d10f8f 100644
--- a/res/values/strings_bg.arb
+++ b/res/values/strings_bg.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Показване на MWEB карта",
   "litecoin_mweb_enable_later": "Можете да изберете да активирате MWEB отново под настройките на дисплея.",
   "litecoin_mweb_logs": "MWeb logs",
+  "litecoin_mweb_node": "MWEB възел",
   "litecoin_mweb_pegin": "PEG в",
   "litecoin_mweb_pegout": "PEG OUT",
   "litecoin_mweb_scanning": "Сканиране на MWEB",
diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb
index 9aede6318..a9406ab85 100644
--- a/res/values/strings_cs.arb
+++ b/res/values/strings_cs.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Zobrazit kartu MWeb",
   "litecoin_mweb_enable_later": "V nastavení zobrazení můžete vybrat znovu povolit MWeb.",
   "litecoin_mweb_logs": "Protokoly mWeb",
+  "litecoin_mweb_node": "Uzel mWeb",
   "litecoin_mweb_pegin": "Peg in",
   "litecoin_mweb_pegout": "Zkrachovat",
   "litecoin_mweb_scanning": "Skenování mWeb",
diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb
index 9299eb008..18f401915 100644
--- a/res/values/strings_de.arb
+++ b/res/values/strings_de.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "MWEB-Karte anzeigen",
   "litecoin_mweb_enable_later": "Sie können MWEB unter Anzeigeeinstellungen erneut aktivieren.",
   "litecoin_mweb_logs": "MWEB -Protokolle",
+  "litecoin_mweb_node": "MWEB -Knoten",
   "litecoin_mweb_pegin": "Peg in",
   "litecoin_mweb_pegout": "Abstecken",
   "litecoin_mweb_scanning": "MWEB Scanning",
@@ -942,4 +943,4 @@
   "you_will_get": "Konvertieren zu",
   "you_will_send": "Konvertieren von",
   "yy": "YY"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb
index 33ebe3a91..a9295b554 100644
--- a/res/values/strings_en.arb
+++ b/res/values/strings_en.arb
@@ -375,6 +375,7 @@
   "litecoin_mweb_display_card": "Show MWEB card",
   "litecoin_mweb_enable_later": "You can choose to enable MWEB again under Display Settings.",
   "litecoin_mweb_logs": "MWEB Logs",
+  "litecoin_mweb_node": "MWEB Node",
   "litecoin_mweb_pegin": "Peg In",
   "litecoin_mweb_pegout": "Peg Out",
   "litecoin_mweb_scanning": "MWEB Scanning",
diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb
index cdb215df9..08f487702 100644
--- a/res/values/strings_es.arb
+++ b/res/values/strings_es.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Mostrar tarjeta MWEB",
   "litecoin_mweb_enable_later": "Puede elegir habilitar MWEB nuevamente en la configuración de visualización.",
   "litecoin_mweb_logs": "Registros de mweb",
+  "litecoin_mweb_node": "Nodo mweb",
   "litecoin_mweb_pegin": "Convertir",
   "litecoin_mweb_pegout": "Recuperar",
   "litecoin_mweb_scanning": "Escaneo mweb",
@@ -940,4 +941,4 @@
   "you_will_get": "Convertir a",
   "you_will_send": "Convertir de",
   "yy": "YY"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb
index 697a62390..e0e08dbac 100644
--- a/res/values/strings_fr.arb
+++ b/res/values/strings_fr.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Afficher la carte MWeb",
   "litecoin_mweb_enable_later": "Vous pouvez choisir d'activer à nouveau MWEB sous Paramètres d'affichage.",
   "litecoin_mweb_logs": "Journaux MWEB",
+  "litecoin_mweb_node": "Node MWEB",
   "litecoin_mweb_pegin": "Entraver",
   "litecoin_mweb_pegout": "Crever",
   "litecoin_mweb_scanning": "Scann mweb",
diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb
index ee7823a1f..2588ff765 100644
--- a/res/values/strings_ha.arb
+++ b/res/values/strings_ha.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Nuna katin Mweb",
   "litecoin_mweb_enable_later": "Kuna iya zaɓar kunna Mweb kuma a ƙarƙashin saitunan nuni.",
   "litecoin_mweb_logs": "Jagoran Mweb",
+  "litecoin_mweb_node": "Mweb Node",
   "litecoin_mweb_pegin": "Peg in",
   "litecoin_mweb_pegout": "Peg fita",
   "litecoin_mweb_scanning": "Mweb scanning",
diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb
index 6a92da696..8f2c220ae 100644
--- a/res/values/strings_hi.arb
+++ b/res/values/strings_hi.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "MWEB कार्ड दिखाएं",
   "litecoin_mweb_enable_later": "आप प्रदर्शन सेटिंग्स के तहत फिर से MWEB को सक्षम करने के लिए चुन सकते हैं।",
   "litecoin_mweb_logs": "MWEB लॉग",
+  "litecoin_mweb_node": "MWEB नोड",
   "litecoin_mweb_pegin": "खूंटी",
   "litecoin_mweb_pegout": "मरना",
   "litecoin_mweb_scanning": "MWEB स्कैनिंग",
diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb
index 10657f047..84fa26b66 100644
--- a/res/values/strings_hr.arb
+++ b/res/values/strings_hr.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Prikaži MWeb karticu",
   "litecoin_mweb_enable_later": "Možete odabrati da MWEB ponovo omogućite pod postavkama zaslona.",
   "litecoin_mweb_logs": "MWEB trupci",
+  "litecoin_mweb_node": "MWEB čvor",
   "litecoin_mweb_pegin": "Uvući se",
   "litecoin_mweb_pegout": "Odapeti",
   "litecoin_mweb_scanning": "MWEB skeniranje",
diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb
index d3adcc20c..028327372 100644
--- a/res/values/strings_hy.arb
+++ b/res/values/strings_hy.arb
@@ -369,6 +369,7 @@
   "litecoin_mweb_dismiss": "Հեռացնել",
   "litecoin_mweb_enable_later": "Կարող եք ընտրել Mweb- ը կրկին միացնել ցուցադրման պարամետրերը:",
   "litecoin_mweb_logs": "Mweb տեղեկամատյաններ",
+  "litecoin_mweb_node": "Mweb հանգույց",
   "litecoin_mweb_pegin": "Peg in",
   "litecoin_mweb_pegout": "Հափշտակել",
   "live_fee_rates": "Ապակի վարձավճարներ API- ի միջոցով",
diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb
index 4ed26d211..265307981 100644
--- a/res/values/strings_id.arb
+++ b/res/values/strings_id.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Tunjukkan kartu mWeb",
   "litecoin_mweb_enable_later": "Anda dapat memilih untuk mengaktifkan MWEB lagi di bawah pengaturan tampilan.",
   "litecoin_mweb_logs": "Log MWeb",
+  "litecoin_mweb_node": "Node MWEB",
   "litecoin_mweb_pegin": "Pasak masuk",
   "litecoin_mweb_pegout": "Mati",
   "litecoin_mweb_scanning": "Pemindaian MWEB",
diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb
index 339f5e61d..950067a5e 100644
--- a/res/values/strings_it.arb
+++ b/res/values/strings_it.arb
@@ -374,6 +374,7 @@
   "litecoin_mweb_display_card": "Mostra la scheda MWeb",
   "litecoin_mweb_enable_later": "È possibile scegliere di abilitare nuovamente MWeb nelle impostazioni di visualizzazione.",
   "litecoin_mweb_logs": "Registri mWeb",
+  "litecoin_mweb_node": "Nodo MWeb",
   "litecoin_mweb_pegin": "Piolo in",
   "litecoin_mweb_pegout": "PEG OUT",
   "litecoin_mweb_scanning": "Scansione MWeb",
diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb
index 785ad4c28..8fd4af9f5 100644
--- a/res/values/strings_ja.arb
+++ b/res/values/strings_ja.arb
@@ -374,6 +374,7 @@
   "litecoin_mweb_display_card": "MWEBカードを表示します",
   "litecoin_mweb_enable_later": "表示設定の下で、MWEBを再度有効にすることを選択できます。",
   "litecoin_mweb_logs": "MWEBログ",
+  "litecoin_mweb_node": "MWEBノード",
   "litecoin_mweb_pegin": "ペグイン",
   "litecoin_mweb_pegout": "ペグアウト",
   "litecoin_mweb_scanning": "MWEBスキャン",
diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb
index 843a91bc2..338c966d2 100644
--- a/res/values/strings_ko.arb
+++ b/res/values/strings_ko.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "mweb 카드를 보여주십시오",
   "litecoin_mweb_enable_later": "디스플레이 설정에서 MWEB를 다시 활성화하도록 선택할 수 있습니다.",
   "litecoin_mweb_logs": "mweb 로그",
+  "litecoin_mweb_node": "mweb 노드",
   "litecoin_mweb_pegin": "페그를 입력하십시오",
   "litecoin_mweb_pegout": "죽다",
   "litecoin_mweb_scanning": "mweb 스캔",
diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb
index 8f52a9a31..b684f8d18 100644
--- a/res/values/strings_my.arb
+++ b/res/values/strings_my.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "MweB ကဒ်ကိုပြပါ",
   "litecoin_mweb_enable_later": "သင် MweB ကို display settings အောက်ရှိ ထပ်မံ. ခွင့်ပြုရန်ရွေးချယ်နိုင်သည်။",
   "litecoin_mweb_logs": "Mweb မှတ်တမ်းများ",
+  "litecoin_mweb_node": "mweb node ကို",
   "litecoin_mweb_pegin": "တံစို့",
   "litecoin_mweb_pegout": "တံစို့",
   "litecoin_mweb_scanning": "mweb scanning",
diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb
index bdd9b3b8a..83a0aeebf 100644
--- a/res/values/strings_nl.arb
+++ b/res/values/strings_nl.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Toon MWEB -kaart",
   "litecoin_mweb_enable_later": "U kunt ervoor kiezen om MWeb opnieuw in te schakelen onder weergave -instellingen.",
   "litecoin_mweb_logs": "MWEB -logboeken",
+  "litecoin_mweb_node": "MWEB -knooppunt",
   "litecoin_mweb_pegin": "Vastmaken",
   "litecoin_mweb_pegout": "Uithakken",
   "litecoin_mweb_scanning": "MWEB -scanning",
diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb
index 1d658ac88..b336bd1b7 100644
--- a/res/values/strings_pl.arb
+++ b/res/values/strings_pl.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Pokaż kartę MWEB",
   "litecoin_mweb_enable_later": "Możesz ponownie włączyć MWEB w ustawieniach wyświetlania.",
   "litecoin_mweb_logs": "Dzienniki MWEB",
+  "litecoin_mweb_node": "Węzeł MWEB",
   "litecoin_mweb_pegin": "Kołek",
   "litecoin_mweb_pegout": "Palikować",
   "litecoin_mweb_scanning": "Skanowanie MWEB",
diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb
index 77e10e48d..ccca7f2e5 100644
--- a/res/values/strings_pt.arb
+++ b/res/values/strings_pt.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Mostre o cartão MWEB",
   "litecoin_mweb_enable_later": "Você pode optar por ativar o MWEB novamente em Configurações de exibição.",
   "litecoin_mweb_logs": "Logs MWeb",
+  "litecoin_mweb_node": "Nó MWeb",
   "litecoin_mweb_pegin": "Peg in",
   "litecoin_mweb_pegout": "Peg fora",
   "litecoin_mweb_scanning": "MWEB Scanning",
diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb
index d508ea8ed..e1c4e56de 100644
--- a/res/values/strings_ru.arb
+++ b/res/values/strings_ru.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Показать карту MWEB",
   "litecoin_mweb_enable_later": "Вы можете снова включить MWEB в настройках отображения.",
   "litecoin_mweb_logs": "MWEB журналы",
+  "litecoin_mweb_node": "Узел MWEB",
   "litecoin_mweb_pegin": "Внедрять",
   "litecoin_mweb_pegout": "Выкрикивать",
   "litecoin_mweb_scanning": "MWEB сканирование",
diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb
index cff80f320..db6d62b6c 100644
--- a/res/values/strings_th.arb
+++ b/res/values/strings_th.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "แสดงการ์ด mweb",
   "litecoin_mweb_enable_later": "คุณสามารถเลือกเปิดใช้งาน MWEB อีกครั้งภายใต้การตั้งค่าการแสดงผล",
   "litecoin_mweb_logs": "บันทึก MWEB",
+  "litecoin_mweb_node": "โหนด MWEB",
   "litecoin_mweb_pegin": "หมุด",
   "litecoin_mweb_pegout": "ตรึง",
   "litecoin_mweb_scanning": "การสแกน MWEB",
diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb
index de1cf16a2..ff7c3e7f1 100644
--- a/res/values/strings_tl.arb
+++ b/res/values/strings_tl.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Ipakita ang MWEB Card",
   "litecoin_mweb_enable_later": "Maaari kang pumili upang paganahin muli ang MWeb sa ilalim ng mga setting ng pagpapakita.",
   "litecoin_mweb_logs": "MWEB log",
+  "litecoin_mweb_node": "Mweb node",
   "litecoin_mweb_pegin": "Peg in",
   "litecoin_mweb_pegout": "Peg out",
   "litecoin_mweb_scanning": "Pag -scan ng Mweb",
diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb
index 99ee14ffe..84d4ae275 100644
--- a/res/values/strings_tr.arb
+++ b/res/values/strings_tr.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "MWEB kartını göster",
   "litecoin_mweb_enable_later": "Ekran ayarlarının altında MWEB'yi tekrar etkinleştirmeyi seçebilirsiniz.",
   "litecoin_mweb_logs": "MWEB günlükleri",
+  "litecoin_mweb_node": "MWEB düğümü",
   "litecoin_mweb_pegin": "Takılmak",
   "litecoin_mweb_pegout": "Çiğnemek",
   "litecoin_mweb_scanning": "MWEB taraması",
diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb
index 881c1dec7..6e55d0184 100644
--- a/res/values/strings_uk.arb
+++ b/res/values/strings_uk.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "Показати карту MWeb",
   "litecoin_mweb_enable_later": "Ви можете знову ввімкнути MWEB в налаштуваннях дисплея.",
   "litecoin_mweb_logs": "Журнали MWeb",
+  "litecoin_mweb_node": "Вузол MWeb",
   "litecoin_mweb_pegin": "Подякувати",
   "litecoin_mweb_pegout": "Подякувати",
   "litecoin_mweb_scanning": "Сканування Mweb",
diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb
index 02834aaa1..d321bc512 100644
--- a/res/values/strings_ur.arb
+++ b/res/values/strings_ur.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "MWEB کارڈ دکھائیں",
   "litecoin_mweb_enable_later": "آپ ڈسپلے کی ترتیبات کے تحت MWEB کو دوبارہ فعال کرنے کا انتخاب کرسکتے ہیں۔",
   "litecoin_mweb_logs": "MWEB لاگز",
+  "litecoin_mweb_node": "MWEB نوڈ",
   "litecoin_mweb_pegin": "پیگ میں",
   "litecoin_mweb_pegout": "پیگ آؤٹ",
   "litecoin_mweb_scanning": "MWEB اسکیننگ",
diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb
index b39054542..99eb74f86 100644
--- a/res/values/strings_vi.arb
+++ b/res/values/strings_vi.arb
@@ -370,6 +370,7 @@
   "litecoin_mweb_dismiss": "Miễn nhiệm",
   "litecoin_mweb_enable_later": "Bạn có thể chọn bật lại MWEB trong cài đặt hiển thị.",
   "litecoin_mweb_logs": "Nhật ký MWEB",
+  "litecoin_mweb_node": "Nút MWEB",
   "litecoin_mweb_pegin": "Chốt vào",
   "litecoin_mweb_pegout": "Chốt ra",
   "live_fee_rates": "Tỷ lệ phí hiện tại qua API",
diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb
index 6f36c13a9..202a82988 100644
--- a/res/values/strings_yo.arb
+++ b/res/values/strings_yo.arb
@@ -374,6 +374,7 @@
   "litecoin_mweb_display_card": "Fihan kaadi Mweb",
   "litecoin_mweb_enable_later": "O le yan lati ṣiṣẹ Mweb lẹẹkansi labẹ awọn eto ifihan.",
   "litecoin_mweb_logs": "MTweb logs",
+  "litecoin_mweb_node": "Alweb joko",
   "litecoin_mweb_pegin": "Peg in",
   "litecoin_mweb_pegout": "Peg jade",
   "litecoin_mweb_scanning": "Mweb scanning",
diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb
index ecbc0807f..ddfc8f366 100644
--- a/res/values/strings_zh.arb
+++ b/res/values/strings_zh.arb
@@ -373,6 +373,7 @@
   "litecoin_mweb_display_card": "显示MWEB卡",
   "litecoin_mweb_enable_later": "您可以选择在显示设置下再次启用MWEB。",
   "litecoin_mweb_logs": "MWEB日志",
+  "litecoin_mweb_node": "MWEB节点",
   "litecoin_mweb_pegin": "钉进",
   "litecoin_mweb_pegout": "昏倒",
   "litecoin_mweb_scanning": "MWEB扫描",