more fixes

This commit is contained in:
fosse 2023-08-16 15:22:05 -04:00
parent 697ec78483
commit ac67d50a47
36 changed files with 132 additions and 103 deletions

View file

@ -15,8 +15,6 @@ import 'package:web3dart/contracts/erc20.dart';
import 'package:cw_core/node.dart'; import 'package:cw_core/node.dart';
class NanoClient { class NanoClient {
// bit of a hack since we need access to a node in a weird location:
static const String BACKUP_NODE_URI = "rpc.nano.to:443";
static const String DEFAULT_REPRESENTATIVE = static const String DEFAULT_REPRESENTATIVE =
"nano_38713x95zyjsqzx6nm1dsom1jmm668owkeb9913ax6nfgj15az3nu8xkx579"; "nano_38713x95zyjsqzx6nm1dsom1jmm668owkeb9913ax6nfgj15az3nu8xkx579";

View file

@ -28,6 +28,7 @@ const cakeWalletLitecoinElectrumUri = 'ltc-electrum.cakewallet.com:50002';
const havenDefaultNodeUri = 'nodes.havenprotocol.org:443'; const havenDefaultNodeUri = 'nodes.havenprotocol.org:443';
const ethereumDefaultNodeUri = 'ethereum.publicnode.com'; const ethereumDefaultNodeUri = 'ethereum.publicnode.com';
const nanoDefaultNodeUri = 'rpc.nano.to:443'; const nanoDefaultNodeUri = 'rpc.nano.to:443';
const nanoDefaultPowNodeUri = 'rpc.nano.to:443';
Future defaultSettingsMigration( Future defaultSettingsMigration(
{required int version, {required int version,
@ -49,9 +50,8 @@ Future defaultSettingsMigration(
await sharedPreferences.setBool(PreferencesKey.isNewInstall, isNewInstall); await sharedPreferences.setBool(PreferencesKey.isNewInstall, isNewInstall);
final currentVersion = sharedPreferences final currentVersion =
.getInt(PreferencesKey.currentDefaultSettingsMigrationVersion) ?? sharedPreferences.getInt(PreferencesKey.currentDefaultSettingsMigrationVersion) ?? 0;
0;
if (currentVersion >= version) { if (currentVersion >= version) {
return; return;
@ -253,6 +253,11 @@ Node? getNanoDefaultNode({required Box<Node> nodes}) {
nodes.values.firstWhereOrNull((node) => node.type == WalletType.nano); nodes.values.firstWhereOrNull((node) => node.type == WalletType.nano);
} }
Node? getNanoDefaultPowNode({required Box<Node> nodes}) {
return nodes.values.firstWhereOrNull((Node node) => node.uriRaw == nanoDefaultPowNodeUri) ??
nodes.values.firstWhereOrNull((node) => (node.type == WalletType.nano && node.isPowNode == true));
}
Node getMoneroDefaultNode({required Box<Node> nodes}) { Node getMoneroDefaultNode({required Box<Node> nodes}) {
final timeZone = DateTime.now().timeZoneOffset.inHours; final timeZone = DateTime.now().timeZoneOffset.inHours;
var nodeUri = ''; var nodeUri = '';
@ -431,6 +436,7 @@ Future<void> checkCurrentNodes(Box<Node> nodeSource, SharedPreferences sharedPre
final currentHavenNodeId = sharedPreferences.getInt(PreferencesKey.currentHavenNodeIdKey); final currentHavenNodeId = sharedPreferences.getInt(PreferencesKey.currentHavenNodeIdKey);
final currentEthereumNodeId = sharedPreferences.getInt(PreferencesKey.currentEthereumNodeIdKey); final currentEthereumNodeId = sharedPreferences.getInt(PreferencesKey.currentEthereumNodeIdKey);
final currentNanoNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoNodeIdKey); final currentNanoNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoNodeIdKey);
final currentNanoPowNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoPowNodeIdKey);
final currentMoneroNode = final currentMoneroNode =
nodeSource.values.firstWhereOrNull((node) => node.key == currentMoneroNodeId); nodeSource.values.firstWhereOrNull((node) => node.key == currentMoneroNodeId);
final currentBitcoinElectrumServer = final currentBitcoinElectrumServer =
@ -443,6 +449,8 @@ Future<void> checkCurrentNodes(Box<Node> nodeSource, SharedPreferences sharedPre
nodeSource.values.firstWhereOrNull((node) => node.key == currentEthereumNodeId); nodeSource.values.firstWhereOrNull((node) => node.key == currentEthereumNodeId);
final currentNanoNodeServer = final currentNanoNodeServer =
nodeSource.values.firstWhereOrNull((node) => node.key == currentNanoNodeId); nodeSource.values.firstWhereOrNull((node) => node.key == currentNanoNodeId);
final currentNanoPowNodeServer =
nodeSource.values.firstWhereOrNull((node) => node.key == currentNanoPowNodeId);
if (currentMoneroNode == null) { if (currentMoneroNode == null) {
final newCakeWalletNode = Node(uri: newCakeWalletMoneroUri, type: WalletType.monero); final newCakeWalletNode = Node(uri: newCakeWalletMoneroUri, type: WalletType.monero);
@ -479,8 +487,14 @@ Future<void> checkCurrentNodes(Box<Node> nodeSource, SharedPreferences sharedPre
if (currentNanoNodeServer == null) { if (currentNanoNodeServer == null) {
final node = Node(uri: nanoDefaultNodeUri, type: WalletType.nano); final node = Node(uri: nanoDefaultNodeUri, type: WalletType.nano);
await nodeSource.add(node); await nodeSource.add(node);
await sharedPreferences.setInt( await sharedPreferences.setInt(PreferencesKey.currentNanoNodeIdKey, node.key as int);
PreferencesKey.currentNanoNodeIdKey, node.key as int); }
if (currentNanoPowNodeServer == null) {
final node = Node(uri: nanoDefaultPowNodeUri, type: WalletType.nano);
node.isPowNode = true;
await nodeSource.add(node);
await sharedPreferences.setInt(PreferencesKey.currentNanoPowNodeIdKey, node.key as int);
} }
} }
@ -521,8 +535,8 @@ Future<void> migrateExchangeStatus(SharedPreferences sharedPreferences) async {
return; return;
} }
await sharedPreferences.setInt(PreferencesKey.exchangeStatusKey, isExchangeDisabled await sharedPreferences.setInt(PreferencesKey.exchangeStatusKey,
? ExchangeApiMode.disabled.raw : ExchangeApiMode.enabled.raw); isExchangeDisabled ? ExchangeApiMode.disabled.raw : ExchangeApiMode.enabled.raw);
await sharedPreferences.remove(PreferencesKey.disableExchangeKey); await sharedPreferences.remove(PreferencesKey.disableExchangeKey);
} }
@ -537,8 +551,7 @@ Future<void> addEthereumNodeList({required Box<Node> nodes}) async {
} }
Future<void> changeEthereumCurrentNodeToDefault( Future<void> changeEthereumCurrentNodeToDefault(
{required SharedPreferences sharedPreferences, {required SharedPreferences sharedPreferences, required Box<Node> nodes}) async {
required Box<Node> nodes}) async {
final node = getEthereumDefaultNode(nodes: nodes); final node = getEthereumDefaultNode(nodes: nodes);
final nodeId = node?.key as int? ?? 0; final nodeId = node?.key as int? ?? 0;

View file

@ -97,15 +97,11 @@ Future<List<Node>> loadDefaultNanoNodes() async {
} }
} }
return nodes; final powNodesRaw = await rootBundle.loadString('assets/nano_pow_node_list.yml');
} print(powNodesRaw);
final loadedPowNodes = loadYaml(powNodesRaw) as YamlList;
Future<List<Node>> loadDefaultNanoPowNodes() async { for (final raw in loadedPowNodes) {
final nodesRaw = await rootBundle.loadString('assets/nano_pow_server_list.yml');
final loadedNodes = loadYaml(nodesRaw) as YamlList;
final nodes = <Node>[];
for (final raw in loadedNodes) {
if (raw is Map) { if (raw is Map) {
final node = Node.fromMap(Map<String, Object>.from(raw)); final node = Node.fromMap(Map<String, Object>.from(raw));
node.type = WalletType.nano; node.type = WalletType.nano;
@ -114,6 +110,10 @@ Future<List<Node>> loadDefaultNanoPowNodes() async {
} }
} }
for (var node in nodes) {
print(node.uriRaw + " " + node.isPowNode.toString());
}
return nodes; return nodes;
} }
@ -124,14 +124,13 @@ Future resetToDefault(Box<Node> nodeSource) async {
final havenNodes = await loadDefaultHavenNodes(); final havenNodes = await loadDefaultHavenNodes();
final ethereumNodes = await loadDefaultEthereumNodes(); final ethereumNodes = await loadDefaultEthereumNodes();
final nanoNodes = await loadDefaultNanoNodes(); final nanoNodes = await loadDefaultNanoNodes();
final nanoPowNodes = await loadDefaultNanoPowNodes();
final nodes = moneroNodes + final nodes = moneroNodes +
bitcoinElectrumServerList + bitcoinElectrumServerList +
litecoinElectrumServerList + litecoinElectrumServerList +
havenNodes + havenNodes +
ethereumNodes + ethereumNodes +
nanoNodes + nanoPowNodes; nanoNodes;
await nodeSource.clear(); await nodeSource.clear();
await nodeSource.addAll(nodes); await nodeSource.addAll(nodes);

View file

@ -1,46 +1,46 @@
import 'package:flutter/services.dart'; // import 'package:flutter/services.dart';
import 'package:hive/hive.dart'; // import 'package:hive/hive.dart';
import "package:yaml/yaml.dart"; // import "package:yaml/yaml.dart";
import 'package:cw_core/node.dart'; // import 'package:cw_core/node.dart';
import 'package:cw_core/wallet_type.dart'; // import 'package:cw_core/wallet_type.dart';
Future<List<Node>> loadDefaultNanoPowNodes() async { // Future<List<Node>> loadDefaultNanoPowNodes() async {
final nodesRaw = await rootBundle.loadString('assets/nano_pow_server_list.yml'); // final nodesRaw = await rootBundle.loadString('assets/nano_pow_node_list.yml');
final loadedNodes = loadYaml(nodesRaw) as YamlList; // final loadedNodes = loadYaml(nodesRaw) as YamlList;
final nodes = <Node>[]; // final nodes = <Node>[];
for (final raw in loadedNodes) { // for (final raw in loadedNodes) {
if (raw is Map) { // if (raw is Map) {
final node = Node.fromMap(Map<String, Object>.from(raw)); // final node = Node.fromMap(Map<String, Object>.from(raw));
node.type = WalletType.nano; // node.type = WalletType.nano;
nodes.add(node); // nodes.add(node);
} // }
} // }
return nodes; // return nodes;
} // }
Future<List<Node>> loadDefaultBananoPowNodes() async { // Future<List<Node>> loadDefaultBananoPowNodes() async {
final nodesRaw = await rootBundle.loadString('assets/nano_pow_server_list.yml'); // final nodesRaw = await rootBundle.loadString('assets/nano_pow_node_list.yml');
final loadedNodes = loadYaml(nodesRaw) as YamlList; // final loadedNodes = loadYaml(nodesRaw) as YamlList;
final nodes = <Node>[]; // final nodes = <Node>[];
for (final raw in loadedNodes) { // for (final raw in loadedNodes) {
if (raw is Map) { // if (raw is Map) {
final node = Node.fromMap(Map<String, Object>.from(raw)); // final node = Node.fromMap(Map<String, Object>.from(raw));
node.type = WalletType.banano; // node.type = WalletType.banano;
nodes.add(node); // nodes.add(node);
} // }
} // }
return nodes; // return nodes;
} // }
Future resetToDefault(Box<Node> nodeSource) async { // Future resetToDefault(Box<Node> nodeSource) async {
final nanoNodes = await loadDefaultNanoPowNodes(); // final nanoNodes = await loadDefaultNanoPowNodes();
final bananoNodes = await loadDefaultNanoPowNodes(); // final bananoNodes = await loadDefaultNanoPowNodes();
final nodes = nanoNodes + bananoNodes; // final nodes = nanoNodes + bananoNodes;
await nodeSource.clear(); // await nodeSource.clear();
await nodeSource.addAll(nodes); // await nodeSource.addAll(nodes);
} // }

View file

@ -7,6 +7,9 @@ class PreferencesKey {
static const currentHavenNodeIdKey = 'current_node_id_xhv'; static const currentHavenNodeIdKey = 'current_node_id_xhv';
static const currentEthereumNodeIdKey = 'current_node_id_eth'; static const currentEthereumNodeIdKey = 'current_node_id_eth';
static const currentNanoNodeIdKey = 'current_node_id_nano'; static const currentNanoNodeIdKey = 'current_node_id_nano';
static const currentNanoPowNodeIdKey = 'current_node_id_nano_pow';
static const currentBananoNodeIdKey = 'current_node_id_banano';
static const currentBananoPowNodeIdKey = 'current_node_id_banano_pow';
static const currentFiatCurrencyKey = 'current_fiat_currency'; static const currentFiatCurrencyKey = 'current_fiat_currency';
static const currentTransactionPriorityKeyLegacy = 'current_fee_priority'; static const currentTransactionPriorityKeyLegacy = 'current_fee_priority';
static const currentBalanceDisplayModeKey = 'current_balance_display_mode'; static const currentBalanceDisplayModeKey = 'current_balance_display_mode';

View file

@ -65,6 +65,7 @@ class ConnectionSyncPage extends BasePage {
title: S.current.manage_nodes, title: S.current.manage_nodes,
handler: (context) => Navigator.of(context).pushNamed(Routes.manageNodes), handler: (context) => Navigator.of(context).pushNamed(Routes.manageNodes),
), ),
const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)),
Observer( Observer(
builder: (context) { builder: (context) {
if (!dashboardViewModel.hasPowNodes) if (!dashboardViewModel.hasPowNodes)

View file

@ -33,7 +33,7 @@ class WelcomePage extends BasePage {
return S.of(context).haven_app_wallet_text; return S.of(context).haven_app_wallet_text;
} }
return S.of(context).first_wallet_text; return S.of(context).new_first_wallet_text;
} }
@override @override

View file

@ -607,13 +607,14 @@ abstract class SettingsStoreBase with Store {
final havenNodeId = sharedPreferences.getInt(PreferencesKey.currentHavenNodeIdKey); final havenNodeId = sharedPreferences.getInt(PreferencesKey.currentHavenNodeIdKey);
final ethereumNodeId = sharedPreferences.getInt(PreferencesKey.currentEthereumNodeIdKey); final ethereumNodeId = sharedPreferences.getInt(PreferencesKey.currentEthereumNodeIdKey);
final nanoNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoNodeIdKey); final nanoNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoNodeIdKey);
final nanoPowNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoPowNodeIdKey);
final moneroNode = nodeSource.get(nodeId); final moneroNode = nodeSource.get(nodeId);
final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId);
final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId); final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId);
final havenNode = nodeSource.get(havenNodeId); final havenNode = nodeSource.get(havenNodeId);
final ethereumNode = nodeSource.get(ethereumNodeId); final ethereumNode = nodeSource.get(ethereumNodeId);
final nanoNode = nodeSource.get(nanoNodeId); final nanoNode = nodeSource.get(nanoNodeId);
final nanoPowNode = powNodeSource.get(nanoNodeId); final nanoPowNode = powNodeSource.get(nanoPowNodeId);
final packageInfo = await PackageInfo.fromPlatform(); final packageInfo = await PackageInfo.fromPlatform();
final deviceName = await _getDeviceName() ?? ''; final deviceName = await _getDeviceName() ?? '';
final shouldShowYatPopup = sharedPreferences.getBool(PreferencesKey.shouldShowYatPopup) ?? true; final shouldShowYatPopup = sharedPreferences.getBool(PreferencesKey.shouldShowYatPopup) ?? true;

View file

@ -51,23 +51,8 @@ abstract class PowNodeListViewModelBase with Store {
Node node; Node node;
switch (_appStore.wallet!.type) { switch (_appStore.wallet!.type) {
case WalletType.bitcoin:
node = getBitcoinDefaultElectrumServer(nodes: _nodeSource)!;
break;
case WalletType.monero:
node = getMoneroDefaultNode(nodes: _nodeSource);
break;
case WalletType.litecoin:
node = getLitecoinDefaultElectrumServer(nodes: _nodeSource)!;
break;
case WalletType.haven:
node = getHavenDefaultNode(nodes: _nodeSource)!;
break;
case WalletType.ethereum:
node = getEthereumDefaultNode(nodes: _nodeSource)!;
break;
case WalletType.nano: case WalletType.nano:
node = getNanoDefaultNode(nodes: _nodeSource)!; node = getNanoDefaultPowNode(nodes: _nodeSource)!;
break; break;
default: default:
throw Exception('Unexpected wallet type: ${_appStore.wallet!.type}'); throw Exception('Unexpected wallet type: ${_appStore.wallet!.type}');
@ -79,11 +64,14 @@ abstract class PowNodeListViewModelBase with Store {
@action @action
Future<void> delete(Node node) async => node.delete(); Future<void> delete(Node node) async => node.delete();
Future<void> setAsCurrent(Node node) async => settingsStore.powNodes[_appStore.wallet!.type] = node; Future<void> setAsCurrent(Node node) async =>
settingsStore.powNodes[_appStore.wallet!.type] = node;
@action @action
void _bindNodes() { void _bindNodes() {
nodes.clear(); nodes.clear();
_nodeSource.values.forEach((node) {
});
_nodeSource.bindToList( _nodeSource.bindToList(
nodes, nodes,
filter: (val) => (val.type == _appStore.wallet!.type && val.isPowNode == true), filter: (val) => (val.type == _appStore.wallet!.type && val.isPowNode == true),

View file

@ -122,6 +122,7 @@ flutter:
- assets/litecoin_electrum_server_list.yml - assets/litecoin_electrum_server_list.yml
- assets/ethereum_server_list.yml - assets/ethereum_server_list.yml
- assets/nano_node_list.yml - assets/nano_node_list.yml
- assets/nano_pow_node_list.yml
- assets/text/ - assets/text/
- assets/faq/ - assets/faq/
- assets/animation/ - assets/animation/

View file

@ -679,5 +679,6 @@
"support_description_guides": "توثيق ودعم القضايا المشتركة", "support_description_guides": "توثيق ودعم القضايا المشتركة",
"support_title_other_links": "روابط دعم أخرى", "support_title_other_links": "روابط دعم أخرى",
"support_description_other_links": "انضم إلى مجتمعاتنا أو تصل إلينا شركائنا من خلال أساليب أخرى", "support_description_other_links": "انضم إلى مجتمعاتنا أو تصل إلينا شركائنا من خلال أساليب أخرى",
"choose_derivation": "اختر اشتقاق المحفظة" "choose_derivation": "اختر اشتقاق المحفظة",
"new_first_wallet_text": "حافظ بسهولة على أمان العملة المشفرة"
} }

View file

@ -675,5 +675,6 @@
"support_description_guides": "Документация и подкрепа за общи проблеми", "support_description_guides": "Документация и подкрепа за общи проблеми",
"support_title_other_links": "Други връзки за поддръжка", "support_title_other_links": "Други връзки за поддръжка",
"support_description_other_links": "Присъединете се към нашите общности или се свържете с нас нашите партньори чрез други методи", "support_description_other_links": "Присъединете се към нашите общности или се свържете с нас нашите партньори чрез други методи",
"choose_derivation": "Изберете производно на портфейла" "choose_derivation": "Изберете производно на портфейла",
"new_first_wallet_text": "Лесно пазете криптовалутата си в безопасност"
} }

View file

@ -675,5 +675,6 @@
"support_description_guides": "Dokumentace a podpora běžných otázek", "support_description_guides": "Dokumentace a podpora běžných otázek",
"support_title_other_links": "Další odkazy na podporu", "support_title_other_links": "Další odkazy na podporu",
"support_description_other_links": "Připojte se k našim komunitám nebo se k nám oslovte další metody", "support_description_other_links": "Připojte se k našim komunitám nebo se k nám oslovte další metody",
"choose_derivation": "Vyberte derivaci peněženky" "choose_derivation": "Vyberte derivaci peněženky",
"new_first_wallet_text": "Snadno udržujte svou kryptoměnu v bezpečí"
} }

View file

@ -683,5 +683,6 @@
"support_description_guides": "Dokumentation und Hilfe für bekannte Probleme", "support_description_guides": "Dokumentation und Hilfe für bekannte Probleme",
"support_title_other_links": "Andere Support-Links", "support_title_other_links": "Andere Support-Links",
"support_description_other_links": "Treten Sie unseren Communities bei oder erreichen Sie uns oder unsere Partner über andere Methoden", "support_description_other_links": "Treten Sie unseren Communities bei oder erreichen Sie uns oder unsere Partner über andere Methoden",
"choose_derivation": "Wählen Sie Brieftaschenableitung" "choose_derivation": "Wählen Sie Brieftaschenableitung",
"new_first_wallet_text": "Bewahren Sie Ihre Kryptowährung einfach sicher auf"
} }

View file

@ -683,5 +683,6 @@
"support_description_guides": "Documentation and support for common issues", "support_description_guides": "Documentation and support for common issues",
"support_title_other_links": "Other support links", "support_title_other_links": "Other support links",
"support_description_other_links": "Join our communities or reach us our our partners through other methods", "support_description_other_links": "Join our communities or reach us our our partners through other methods",
"choose_derivation": "Choose Wallet Derivation" "choose_derivation": "Choose Wallet Derivation",
"new_first_wallet_text": "Keep your crypto safe, piece of cake"
} }

View file

@ -683,5 +683,6 @@
"support_description_guides": "Documentación y apoyo para problemas comunes", "support_description_guides": "Documentación y apoyo para problemas comunes",
"support_title_other_links": "Otros enlaces de soporte", "support_title_other_links": "Otros enlaces de soporte",
"support_description_other_links": "Únase a nuestras comunidades o comuníquese con nosotros nuestros socios a través de otros métodos", "support_description_other_links": "Únase a nuestras comunidades o comuníquese con nosotros nuestros socios a través de otros métodos",
"choose_derivation": "Elija la derivación de la billetera" "choose_derivation": "Elija la derivación de la billetera",
"new_first_wallet_text": "Mantenga fácilmente su criptomoneda segura"
} }

View file

@ -683,5 +683,6 @@
"support_description_guides": "Documentation et soutien aux problèmes communs", "support_description_guides": "Documentation et soutien aux problèmes communs",
"support_title_other_links": "Autres liens d'assistance", "support_title_other_links": "Autres liens d'assistance",
"support_description_other_links": "Rejoignez nos communautés ou contactez-nous nos partenaires à travers d'autres méthodes", "support_description_other_links": "Rejoignez nos communautés ou contactez-nous nos partenaires à travers d'autres méthodes",
"choose_derivation": "Choisissez la dérivation du portefeuille" "choose_derivation": "Choisissez la dérivation du portefeuille",
"new_first_wallet_text": "Gardez facilement votre crypto-monnaie en sécurité"
} }

View file

@ -661,5 +661,6 @@
"support_description_guides": "Tallafi da tallafi don batutuwa na yau da kullun", "support_description_guides": "Tallafi da tallafi don batutuwa na yau da kullun",
"support_title_other_links": "Sauran hanyoyin tallafi", "support_title_other_links": "Sauran hanyoyin tallafi",
"support_description_other_links": "Kasance tare da al'ummominmu ko kuma ka kai mu abokanmu ta hanyar wasu hanyoyi", "support_description_other_links": "Kasance tare da al'ummominmu ko kuma ka kai mu abokanmu ta hanyar wasu hanyoyi",
"choose_derivation": "Zaɓi walatawa" "choose_derivation": "Zaɓi walatawa",
"new_first_wallet_text": "A sauƙaƙe kiyaye kuzarin ku"
} }

View file

@ -683,5 +683,6 @@
"support_description_guides": "सामान्य मुद्दों के लिए प्रलेखन और समर्थन", "support_description_guides": "सामान्य मुद्दों के लिए प्रलेखन और समर्थन",
"support_title_other_links": "अन्य समर्थन लिंक", "support_title_other_links": "अन्य समर्थन लिंक",
"support_description_other_links": "हमारे समुदायों में शामिल हों या अन्य तरीकों के माध्यम से हमारे साथी तक पहुंचें", "support_description_other_links": "हमारे समुदायों में शामिल हों या अन्य तरीकों के माध्यम से हमारे साथी तक पहुंचें",
"choose_derivation": "वॉलेट व्युत्पत्ति चुनें" "choose_derivation": "वॉलेट व्युत्पत्ति चुनें",
"new_first_wallet_text": "आसानी से अपनी क्रिप्टोक्यूरेंसी को सुरक्षित रखें"
} }

View file

@ -681,5 +681,6 @@
"support_description_guides": "Dokumentacija i podrška za uobičajena pitanja", "support_description_guides": "Dokumentacija i podrška za uobičajena pitanja",
"support_title_other_links": "Ostale veze za podršku", "support_title_other_links": "Ostale veze za podršku",
"support_description_other_links": "Pridružite se našim zajednicama ili nam dosegnu naše partnere drugim metodama", "support_description_other_links": "Pridružite se našim zajednicama ili nam dosegnu naše partnere drugim metodama",
"choose_derivation": "Odaberite izvedbu novčanika" "choose_derivation": "Odaberite izvedbu novčanika",
"new_first_wallet_text": "Jednostavno čuvajte svoju kripto valutu"
} }

View file

@ -671,5 +671,6 @@
"support_description_guides": "Dokumentasi dan dukungan untuk masalah umum", "support_description_guides": "Dokumentasi dan dukungan untuk masalah umum",
"support_title_other_links": "Tautan dukungan lainnya", "support_title_other_links": "Tautan dukungan lainnya",
"support_description_other_links": "Bergabunglah dengan komunitas kami atau hubungi kami mitra kami melalui metode lain", "support_description_other_links": "Bergabunglah dengan komunitas kami atau hubungi kami mitra kami melalui metode lain",
"choose_derivation": "Pilih dompet dompet" "choose_derivation": "Pilih dompet dompet",
"new_first_wallet_text": "Dengan mudah menjaga cryptocurrency Anda aman"
} }

View file

@ -683,5 +683,6 @@
"support_description_guides": "Documentazione e supporto per problemi comuni", "support_description_guides": "Documentazione e supporto per problemi comuni",
"support_title_other_links": "Altri collegamenti di supporto", "support_title_other_links": "Altri collegamenti di supporto",
"support_description_other_links": "Unisciti alle nostre comunità o raggiungici i nostri partner attraverso altri metodi", "support_description_other_links": "Unisciti alle nostre comunità o raggiungici i nostri partner attraverso altri metodi",
"choose_derivation": "Scegli la derivazione del portafoglio" "choose_derivation": "Scegli la derivazione del portafoglio",
"new_first_wallet_text": "Mantieni facilmente la tua criptovaluta al sicuro"
} }

View file

@ -683,5 +683,6 @@
"support_description_guides": "一般的な問題のドキュメントとサポート", "support_description_guides": "一般的な問題のドキュメントとサポート",
"support_title_other_links": "その他のサポートリンク", "support_title_other_links": "その他のサポートリンク",
"support_description_other_links": "私たちのコミュニティに参加するか、他の方法を通して私たちのパートナーに連絡してください", "support_description_other_links": "私たちのコミュニティに参加するか、他の方法を通して私たちのパートナーに連絡してください",
"choose_derivation": "ウォレット派生を選択します" "choose_derivation": "ウォレット派生を選択します",
"new_first_wallet_text": "暗号通貨を簡単に安全に保ちます"
} }

View file

@ -681,5 +681,6 @@
"support_description_guides": "일반적인 문제에 대한 문서화 및 지원", "support_description_guides": "일반적인 문제에 대한 문서화 및 지원",
"support_title_other_links": "다른 지원 링크", "support_title_other_links": "다른 지원 링크",
"support_description_other_links": "다른 방법을 통해 커뮤니티에 가입하거나 파트너에게 연락하십시오.", "support_description_other_links": "다른 방법을 통해 커뮤니티에 가입하거나 파트너에게 연락하십시오.",
"choose_derivation": "지갑 파생을 선택하십시오" "choose_derivation": "지갑 파생을 선택하십시오",
"new_first_wallet_text": "cryptocurrency를 쉽게 안전하게 유지하십시오"
} }

View file

@ -681,5 +681,6 @@
"support_description_guides": "ဘုံပြ issues နာများအတွက်စာရွက်စာတမ်းများနှင့်ထောက်ခံမှု", "support_description_guides": "ဘုံပြ issues နာများအတွက်စာရွက်စာတမ်းများနှင့်ထောက်ခံမှု",
"support_title_other_links": "အခြားအထောက်အပံ့လင့်များ", "support_title_other_links": "အခြားအထောက်အပံ့လင့်များ",
"support_description_other_links": "ကျွန်ုပ်တို့၏လူမှုအသိုင်းအဝိုင်းများသို့ 0 င်ရောက်ပါ", "support_description_other_links": "ကျွန်ုပ်တို့၏လူမှုအသိုင်းအဝိုင်းများသို့ 0 င်ရောက်ပါ",
"choose_derivation": "ပိုက်ဆံအိတ်ကိုရွေးချယ်ပါ" "choose_derivation": "ပိုက်ဆံအိတ်ကိုရွေးချယ်ပါ",
"new_first_wallet_text": "သင့်ရဲ့ cryptocurrencrencres ကိုအလွယ်တကူလုံခြုံစွာထားရှိပါ"
} }

View file

@ -683,5 +683,6 @@
"support_description_guides": "Documentatie en ondersteuning voor gemeenschappelijke problemen", "support_description_guides": "Documentatie en ondersteuning voor gemeenschappelijke problemen",
"support_title_other_links": "Andere ondersteuningslinks", "support_title_other_links": "Andere ondersteuningslinks",
"support_description_other_links": "Word lid van onze gemeenschappen of bereik ons onze partners via andere methoden", "support_description_other_links": "Word lid van onze gemeenschappen of bereik ons onze partners via andere methoden",
"choose_derivation": "Kies portemonnee -afleiding" "choose_derivation": "Kies portemonnee -afleiding",
"new_first_wallet_text": "Houd uw cryptocurrency gemakkelijk veilig"
} }

View file

@ -683,5 +683,6 @@
"support_description_guides": "Dokumentacja i wsparcie dla typowych problemów", "support_description_guides": "Dokumentacja i wsparcie dla typowych problemów",
"support_title_other_links": "Inne linki wsparcia", "support_title_other_links": "Inne linki wsparcia",
"support_description_other_links": "Dołącz do naszych społeczności lub skontaktuj się z nami naszymi partnerami za pomocą innych metod", "support_description_other_links": "Dołącz do naszych społeczności lub skontaktuj się z nami naszymi partnerami za pomocą innych metod",
"choose_derivation": "Wybierz wyprowadzenie portfela" "choose_derivation": "Wybierz wyprowadzenie portfela",
"new_first_wallet_text": "Łatwo zapewnić bezpieczeństwo kryptowalut"
} }

View file

@ -682,5 +682,6 @@
"support_description_guides": "Documentação e suporte para problemas comuns", "support_description_guides": "Documentação e suporte para problemas comuns",
"support_title_other_links": "Outros links de suporte", "support_title_other_links": "Outros links de suporte",
"support_description_other_links": "Junte -se às nossas comunidades ou chegue a nós nossos parceiros por meio de outros métodos", "support_description_other_links": "Junte -se às nossas comunidades ou chegue a nós nossos parceiros por meio de outros métodos",
"choose_derivation": "Escolha a derivação da carteira" "choose_derivation": "Escolha a derivação da carteira",
"new_first_wallet_text": "Mantenha sua criptomoeda facilmente segura"
} }

View file

@ -683,5 +683,6 @@
"support_description_guides": "Документация и поддержка общих вопросов", "support_description_guides": "Документация и поддержка общих вопросов",
"support_title_other_links": "Другие ссылки на поддержку", "support_title_other_links": "Другие ссылки на поддержку",
"support_description_other_links": "Присоединяйтесь к нашим сообществам или охватите нас наших партнеров с помощью других методов", "support_description_other_links": "Присоединяйтесь к нашим сообществам или охватите нас наших партнеров с помощью других методов",
"choose_derivation": "Выберите вывод кошелька" "choose_derivation": "Выберите вывод кошелька",
"new_first_wallet_text": "Легко сохранить свою криптовалюту в безопасности"
} }

View file

@ -681,5 +681,6 @@
"support_description_guides": "เอกสารและการสนับสนุนสำหรับปัญหาทั่วไป", "support_description_guides": "เอกสารและการสนับสนุนสำหรับปัญหาทั่วไป",
"support_title_other_links": "ลิงค์สนับสนุนอื่น ๆ", "support_title_other_links": "ลิงค์สนับสนุนอื่น ๆ",
"support_description_other_links": "เข้าร่วมชุมชนของเราหรือเข้าถึงเราพันธมิตรของเราผ่านวิธีการอื่น ๆ", "support_description_other_links": "เข้าร่วมชุมชนของเราหรือเข้าถึงเราพันธมิตรของเราผ่านวิธีการอื่น ๆ",
"choose_derivation": "เลือก Wallet Derivation" "choose_derivation": "เลือก Wallet Derivation",
"new_first_wallet_text": "ทำให้สกุลเงินดิจิตอลของคุณปลอดภัยได้อย่างง่ายดาย"
} }

View file

@ -681,5 +681,6 @@
"support_description_guides": "Ortak sorunlara belge ve destek", "support_description_guides": "Ortak sorunlara belge ve destek",
"support_title_other_links": "Diğer destek bağlantıları", "support_title_other_links": "Diğer destek bağlantıları",
"support_description_other_links": "Topluluklarımıza katılın veya ortaklarımıza diğer yöntemlerle bize ulaşın", "support_description_other_links": "Topluluklarımıza katılın veya ortaklarımıza diğer yöntemlerle bize ulaşın",
"choose_derivation": "Cüzdan türevini seçin" "choose_derivation": "Cüzdan türevini seçin",
"new_first_wallet_text": "Kripto para biriminizi kolayca güvende tutun"
} }

View file

@ -683,5 +683,6 @@
"support_description_guides": "Документація та підтримка загальних питань", "support_description_guides": "Документація та підтримка загальних питань",
"support_title_other_links": "Інші посилання на підтримку", "support_title_other_links": "Інші посилання на підтримку",
"support_description_other_links": "Приєднуйтесь до наших спільнот або досягайте нас нашими партнерами іншими методами", "support_description_other_links": "Приєднуйтесь до наших спільнот або досягайте нас нашими партнерами іншими методами",
"choose_derivation": "Виберіть деривацію гаманця" "choose_derivation": "Виберіть деривацію гаманця",
"new_first_wallet_text": "Легко зберігайте свою криптовалюту в безпеці"
} }

View file

@ -675,5 +675,6 @@
"support_description_guides": "عام مسائل کے لئے دستاویزات اور مدد", "support_description_guides": "عام مسائل کے لئے دستاویزات اور مدد",
"support_title_other_links": "دوسرے سپورٹ لنکس", "support_title_other_links": "دوسرے سپورٹ لنکس",
"support_description_other_links": "ہماری برادریوں میں شامل ہوں یا دوسرے طریقوں سے ہمارے شراکت داروں تک پہنچیں", "support_description_other_links": "ہماری برادریوں میں شامل ہوں یا دوسرے طریقوں سے ہمارے شراکت داروں تک پہنچیں",
"choose_derivation": "پرس سے ماخوذ منتخب کریں" "choose_derivation": "پرس سے ماخوذ منتخب کریں",
"new_first_wallet_text": "آسانی سے اپنے cryptocurrency محفوظ رکھیں"
} }

View file

@ -677,5 +677,6 @@
"support_description_guides": "Iwe ati atilẹyin fun awọn ọran ti o wọpọ", "support_description_guides": "Iwe ati atilẹyin fun awọn ọran ti o wọpọ",
"support_title_other_links": "Awọn ọna asopọ atilẹyin miiran", "support_title_other_links": "Awọn ọna asopọ atilẹyin miiran",
"support_description_other_links": "Darapọ mọ awọn agbegbe wa tabi de wa awọn alabaṣepọ wa nipasẹ awọn ọna miiran", "support_description_other_links": "Darapọ mọ awọn agbegbe wa tabi de wa awọn alabaṣepọ wa nipasẹ awọn ọna miiran",
"choose_derivation": "Yan awọn apamọwọ apamọwọ" "choose_derivation": "Yan awọn apamọwọ apamọwọ",
"new_first_wallet_text": "Ni rọọrun jẹ ki o jẹ ki o jẹ ki o jẹ ki a mu"
} }

View file

@ -682,5 +682,6 @@
"support_description_guides": "对常见问题的文档和支持", "support_description_guides": "对常见问题的文档和支持",
"support_title_other_links": "其他支持链接", "support_title_other_links": "其他支持链接",
"support_description_other_links": "加入我们的社区或通过其他方法与我们联系我们的合作伙伴", "support_description_other_links": "加入我们的社区或通过其他方法与我们联系我们的合作伙伴",
"choose_derivation": "选择钱包推导" "choose_derivation": "选择钱包推导",
"new_first_wallet_text": "轻松确保您的加密货币安全"
} }