SP Enhancments (#1483)
* fixes and minor enhancements for SP flow * fix build * change dfx text * minor fixes * pass use electrs to setListeners * comment out connecting on failure for now
Omar Hatem committed
Jun 10, 2024 at 09:30 UTC
5a6502a35a27b9b611f24e3cc0d86a7953bceb88
30 files changed
+86
-68
cw_bitcoin/lib/electrum_wallet.dart
+24
-16
@@ -96,13 +96,17 @@ abstract class ElectrumWalletBase
96
this.walletInfo = walletInfo;
97
transactionHistory = ElectrumTransactionHistory(walletInfo: walletInfo, password: password);
98
99
- reaction((_) => syncStatus, (SyncStatus syncStatus) {
100
- if (syncStatus is! AttemptingSyncStatus && syncStatus is! SyncedTipSyncStatus)
99
+ reaction((_) => syncStatus, (SyncStatus syncStatus) async {
100
+ if (syncStatus is! AttemptingSyncStatus && syncStatus is! SyncedTipSyncStatus) {
101
silentPaymentsScanningActive = syncStatus is SyncingSyncStatus;
102
+ }
103
104
if (syncStatus is NotConnectedSyncStatus) {
105
// Needs to re-subscribe to all scripthashes when reconnected
106
_scripthashesUpdateSubject = {};
107
+
108
+ // TODO: double check this and make sure it doesn't cause any un-necessary calls
109
+ // await this.electrumClient.connectToUri(node!.uri, useSSL: node!.useSSL);
110
}
111
112
// Message is shown on the UI for 3 seconds, revert to synced
@@ -219,13 +223,13 @@ abstract class ElectrumWalletBase
223
} else {
224
alwaysScan = false;
225
222
- (await _isolate)?.kill(priority: Isolate.immediate);
226
+ _isolate?.then((value) => value.kill(priority: Isolate.immediate));
227
228
if (electrumClient.isConnected) {
229
syncStatus = SyncedSyncStatus();
230
} else {
231
if (electrumClient.uri != null) {
228
- await electrumClient.connectToUri(electrumClient.uri!);
232
+ await electrumClient.connectToUri(electrumClient.uri!, useSSL: electrumClient.useSSL);
233
startSync();
234
}
235
}
@@ -463,17 +467,7 @@ abstract class ElectrumWalletBase
467
468
await electrumClient.close();
469
466
- electrumClient.onConnectionStatusChange = (bool? isConnected) async {
467
- if (syncStatus is SyncingSyncStatus) return;
468
-
469
- if (isConnected == true && syncStatus is! SyncedSyncStatus) {
470
- syncStatus = ConnectedSyncStatus();
471
- } else if (isConnected == false) {
472
- syncStatus = LostConnectionSyncStatus();
473
- } else if (!(isConnected ?? false) && syncStatus is! ConnectingSyncStatus) {
474
- syncStatus = NotConnectedSyncStatus();
475
- }
476
- };
470
+ electrumClient.onConnectionStatusChange = _onConnectionStatusChange;
471
472
await electrumClient.connectToUri(node.uri, useSSL: node.useSSL);
473
} catch (e) {
@@ -1139,7 +1133,7 @@ abstract class ElectrumWalletBase
1133
bool? usingElectrs,
1134
}) async {
1135
silentPaymentsScanningActive = true;
1142
- _setListeners(height, doSingleScan: doSingleScan);
1136
+ _setListeners(height, doSingleScan: doSingleScan, usingElectrs: usingElectrs);
1137
}
1138
1139
@override
@@ -1657,6 +1651,7 @@ abstract class ElectrumWalletBase
1651
if (_isTransactionUpdating) {
1652
return;
1653
}
1654
+ await getCurrentChainTip();
1655
1656
transactionHistory.transactions.values.forEach((tx) async {
1657
if (tx.unspents != null && tx.unspents!.isNotEmpty && tx.height > 0) {
@@ -1821,6 +1816,19 @@ abstract class ElectrumWalletBase
1816
1817
static String _hardenedDerivationPath(String derivationPath) =>
1818
derivationPath.substring(0, derivationPath.lastIndexOf("'") + 1);
1819
+
1820
+ @action
1821
+ void _onConnectionStatusChange(bool? isConnected) {
1822
+ if (syncStatus is SyncingSyncStatus) return;
1823
+
1824
+ if (isConnected == true && syncStatus is! SyncedSyncStatus) {
1825
+ syncStatus = ConnectedSyncStatus();
1826
+ } else if (isConnected == false) {
1827
+ syncStatus = LostConnectionSyncStatus();
1828
+ } else if (isConnected != true && syncStatus is! ConnectingSyncStatus) {
1829
+ syncStatus = NotConnectedSyncStatus();
1830
+ }
1831
+ }
1832
}
1833
1834
class ScanNode {
lib/bitcoin/cw_bitcoin.dart
+10
-4
@@ -306,7 +306,7 @@ class CWBitcoin extends Bitcoin {
306
}
307
308
final electrumClient = ElectrumClient();
309
- await electrumClient.connectToUri(node.uri);
309
+ await electrumClient.connectToUri(node.uri, useSSL: node.useSSL);
310
311
late BasedUtxoNetwork network;
312
btc.NetworkType networkType;
@@ -560,10 +560,16 @@ class CWBitcoin extends Bitcoin {
560
}
561
562
final bitcoinWallet = wallet as ElectrumWallet;
563
- final tweaksResponse = await bitcoinWallet.electrumClient.getTweaks(height: 0);
563
+ try {
564
+ final tweaksResponse = await bitcoinWallet.electrumClient.getTweaks(height: 0);
565
565
- if (tweaksResponse != null) {
566
- return true;
566
+ if (tweaksResponse != null) {
567
+ return true;
568
+ }
569
+ } on RequestFailedTimeoutException {
570
+ return false;
571
+ } catch (_) {
572
+ rethrow;
573
}
574
575
return false;
lib/src/screens/root/root.dart
+5
-3
@@ -136,9 +136,11 @@ class RootState extends State<Root> with WidgetsBindingObserver {
136
break;
137
case AppLifecycleState.resumed:
138
widget.authService.requireAuth().then((value) {
139
- setState(() {
140
- _requestAuth = value;
141
- });
139
+ if (mounted) {
140
+ setState(() {
141
+ _requestAuth = value;
142
+ });
143
+ }
144
});
145
break;
146
default:
lib/utils/exception_handler.dart
+21
-19
@@ -118,25 +118,27 @@ class ExceptionHandler {
118
119
WidgetsBinding.instance.addPostFrameCallback(
120
(timeStamp) async {
121
- await showPopUp<void>(
122
- context: navigatorKey.currentContext!,
123
- builder: (context) {
124
- return AlertWithTwoActions(
125
- isDividerExist: true,
126
- alertTitle: S.of(context).error,
127
- alertContent: S.of(context).error_dialog_content,
128
- rightButtonText: S.of(context).send,
129
- leftButtonText: S.of(context).do_not_send,
130
- actionRightButton: () {
131
- Navigator.of(context).pop();
132
- _sendExceptionFile();
133
- },
134
- actionLeftButton: () {
135
- Navigator.of(context).pop();
136
- },
137
- );
138
- },
139
- );
121
+ if (navigatorKey.currentContext != null) {
122
+ await showPopUp<void>(
123
+ context: navigatorKey.currentContext!,
124
+ builder: (context) {
125
+ return AlertWithTwoActions(
126
+ isDividerExist: true,
127
+ alertTitle: S.of(context).error,
128
+ alertContent: S.of(context).error_dialog_content,
129
+ rightButtonText: S.of(context).send,
130
+ leftButtonText: S.of(context).do_not_send,
131
+ actionRightButton: () {
132
+ Navigator.of(context).pop();
133
+ _sendExceptionFile();
134
+ },
135
+ actionLeftButton: () {
136
+ Navigator.of(context).pop();
137
+ },
138
+ );
139
+ },
140
+ );
141
+ }
142
143
_hasError = false;
144
},
res/values/strings_ar.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "النزول",
198
"description": "ﻒﺻﻭ",
199
"destination_tag": "علامة الوجهة:",
200
- "dfx_option_description": "ﺎﺑﻭﺭﻭﺃ ﻲﻓ ﺕﺎﻛﺮﺸﻟﺍﻭ ﺔﺋﺰﺠﺘﻟﺍ ءﻼﻤﻌﻟ .ﻲﻓﺎﺿﺇ KYC ﻥﻭﺪﺑ ﻭﺭﻮﻳ 990 ﻰﻟﺇ ﻞﺼﻳ ﺎﻣ .ﻱﺮﺴﻳﻮﺴﻟﺍ",
200
+ "dfx_option_description": "شراء التشفير مع EUR & CHF. لعملاء البيع بالتجزئة والشركات في أوروبا",
201
"didnt_get_code": "لم تحصل على رمز؟",
202
"digit_pin": "-رقم PIN",
203
"digital_and_physical_card": " بطاقة ائتمان رقمية ومادية مسبقة الدفع",
res/values/strings_bg.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Низходящ",
198
"description": "Описание",
199
"destination_tag": "Destination tag:",
200
- "dfx_option_description": "Купете крипто с EUR и CHF. До 990 € без допълнителен KYC. За клиенти на дребно и корпоративни клиенти в Европа",
200
+ "dfx_option_description": "Купете криптовалута с Eur & CHF. За търговски и корпоративни клиенти в Европа",
201
"didnt_get_code": "Не получихте код?",
202
"digit_pin": "-цифрен PIN",
203
"digital_and_physical_card": " дигитална или физическа предплатена дебитна карта",
res/values/strings_cs.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Klesající",
198
"description": "Popis",
199
"destination_tag": "Destination Tag:",
200
- "dfx_option_description": "Nakupujte kryptoměny za EUR a CHF. Až 990 € bez dalších KYC. Pro maloobchodní a firemní zákazníky v Evropě",
200
+ "dfx_option_description": "Koupit krypto s EUR & CHF. Pro maloobchodní a firemní zákazníky v Evropě",
201
"didnt_get_code": "Nepřišel Vám kód?",
202
"digit_pin": "-číselný PIN",
203
"digital_and_physical_card": " digitální a fyzické předplacené debetní karty,",
res/values/strings_de.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Absteigend",
198
"description": "Beschreibung",
199
"destination_tag": "Ziel-Tag:",
200
- "dfx_option_description": "Krypto mit EUR und CHF kaufen. Bis zu 990€ ohne zusätzliches KYC. Für Privat- und Firmenkunden in Europa",
200
+ "dfx_option_description": "Kaufen Sie Krypto mit EUR & CHF. Für Einzelhandel und Unternehmenskunden in Europa",
201
"didnt_get_code": "Kein Code?",
202
"digit_pin": "-stellige PIN",
203
"digital_and_physical_card": "digitale und physische Prepaid-Debitkarte",
res/values/strings_en.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Descending",
198
"description": "Description",
199
"destination_tag": "Destination tag:",
200
- "dfx_option_description": "Buy crypto with EUR & CHF. Up to 990€ without additional KYC. For retail and corporate customers in Europe",
200
+ "dfx_option_description": "Buy crypto with EUR & CHF. For retail and corporate customers in Europe",
201
"didnt_get_code": "Didn't get code?",
202
"digit_pin": "-digit PIN",
203
"digital_and_physical_card": " digital and physical prepaid debit card",
res/values/strings_es.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Descendente",
198
"description": "Descripción",
199
"destination_tag": "Etiqueta de destino:",
200
- "dfx_option_description": "Compre criptomonedas con EUR y CHF. Hasta 990€ sin KYC adicional. Para clientes minoristas y corporativos en Europa",
200
+ "dfx_option_description": "Compre criptografía con EUR y CHF. Para clientes minoristas y corporativos en Europa",
201
"didnt_get_code": "¿No recibiste el código?",
202
"digit_pin": "-dígito PIN",
203
"digital_and_physical_card": " tarjeta de débito prepago digital y física",
res/values/strings_fr.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Descendant",
198
"description": "Description",
199
"destination_tag": "Tag de destination :",
200
- "dfx_option_description": "Achetez des crypto-monnaies avec EUR et CHF. Jusqu'à 990€ sans KYC supplémentaire. Pour les clients particuliers et entreprises en Europe",
200
+ "dfx_option_description": "Achetez de la crypto avec EUR & CHF. Pour les clients de la vente au détail et des entreprises en Europe",
201
"didnt_get_code": "Vous n'avez pas reçu le code ?",
202
"digit_pin": " chiffres",
203
"digital_and_physical_card": "carte de débit prépayée numérique et physique",
res/values/strings_ha.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Saukowa",
198
"description": "Bayani",
199
"destination_tag": "Tambarin makoma:",
200
- "dfx_option_description": "Sayi crypto tare da EUR & CHF. Har zuwa € 990 ba tare da ƙarin KYC ba. Don 'yan kasuwa da abokan ciniki na kamfanoni a Turai",
200
+ "dfx_option_description": "Buy crypto tare da Eur & Chf. Don Retail da abokan ciniki na kamfanoni a Turai",
201
"didnt_get_code": "Ba a samun code?",
202
"digit_pin": "-lambar PIN",
203
"digital_and_physical_card": "katin zare kudi na dijital da na zahiri",
res/values/strings_hi.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "अवरोही",
198
"description": "विवरण",
199
"destination_tag": "गंतव्य टैग:",
200
- "dfx_option_description": "EUR और CHF के साथ क्रिप्टो खरीदें। अतिरिक्त केवाईसी के बिना 990€ तक। यूरोप में खुदरा और कॉर्पोरेट ग्राहकों के लिए",
200
+ "dfx_option_description": "EUR और CHF के साथ क्रिप्टो खरीदें। यूरोप में खुदरा और कॉर्पोरेट ग्राहकों के लिए",
201
"didnt_get_code": "कोड नहीं मिला?",
202
"digit_pin": "-अंक पिन",
203
"digital_and_physical_card": "डिजिटल और भौतिक प्रीपेड डेबिट कार्ड",
res/values/strings_hr.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Silazni",
198
"description": "Opis",
199
"destination_tag": "Odredišna oznaka:",
200
- "dfx_option_description": "Kupujte kripto s EUR i CHF. Do 990 € bez dodatnog KYC-a. Za maloprodajne i poslovne korisnike u Europi",
200
+ "dfx_option_description": "Kupite kriptovalute s Eur & CHF. Za maloprodajne i korporativne kupce u Europi",
201
"didnt_get_code": "Ne dobivate kod?",
202
"digit_pin": "-znamenkasti PIN",
203
"digital_and_physical_card": "digitalna i fizička unaprijed plaćena debitna kartica",
res/values/strings_id.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Menurun",
198
"description": "Keterangan",
199
"destination_tag": "Tag tujuan:",
200
- "dfx_option_description": "Beli kripto dengan EUR & CHF. Hingga 990€ tanpa KYC tambahan. Untuk pelanggan ritel dan korporat di Eropa",
200
+ "dfx_option_description": "Beli crypto dengan EUR & CHF. Untuk pelanggan ritel dan perusahaan di Eropa",
201
"didnt_get_code": "Tidak mendapatkan kode?",
202
"digit_pin": "-digit PIN",
203
"digital_and_physical_card": " kartu debit pra-bayar digital dan fisik",
res/values/strings_it.arb
+1
-1
@@ -198,7 +198,7 @@
198
"descending": "Discendente",
199
"description": "Descrizione",
200
"destination_tag": "Tag destinazione:",
201
- "dfx_option_description": "Acquista criptovalute con EUR e CHF. Fino a 990€ senza KYC aggiuntivi. Per clienti al dettaglio e aziendali in Europa",
201
+ "dfx_option_description": "Acquista Crypto con EUR & CHF. Per i clienti al dettaglio e aziendali in Europa",
202
"didnt_get_code": "Non ricevi il codice?",
203
"digit_pin": "-cifre PIN",
204
"digital_and_physical_card": "carta di debito prepagata digitale e fisica",
res/values/strings_ja.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "下降",
198
"description": "説明",
199
"destination_tag": "宛先タグ:",
200
- "dfx_option_description": "EUR と CHF で暗号通貨を購入します。追加のKYCなしで最大990ユーロ。ヨーロッパの小売および法人顧客向け",
200
+ "dfx_option_description": "EUR&CHFで暗号を購入します。ヨーロッパの小売および企業の顧客向け",
201
"didnt_get_code": "コードを取得しませんか?",
202
"digit_pin": "桁ピン",
203
"digital_and_physical_card": "デジタルおよび物理プリペイドデビットカード",
res/values/strings_ko.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "내림차순",
198
"description": "설명",
199
"destination_tag": "목적지 태그:",
200
- "dfx_option_description": "EUR 및 CHF로 암호화폐를 구매하세요. 추가 KYC 없이 최대 990€. 유럽의 소매 및 기업 고객용",
200
+ "dfx_option_description": "EUR & CHF로 암호화를 구입하십시오. 유럽의 소매 및 기업 고객을 위해",
201
"didnt_get_code": "코드를 받지 못하셨습니까?",
202
"digit_pin": "숫자 PIN",
203
"digital_and_physical_card": " 디지털 및 실제 선불 직불 카드",
res/values/strings_my.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "ဆင်း",
198
"description": "ဖော်ပြချက်",
199
"destination_tag": "ခရီးဆုံးအမှတ်-",
200
- "dfx_option_description": "EUR & CHF ဖြင့် crypto ကိုဝယ်ပါ။ အပို KYC မပါဘဲ 990€ အထိ။ ဥရောပရှိ လက်လီရောင်းချသူများနှင့် ကော်ပိုရိတ်ဖောက်သည်များအတွက်",
200
+ "dfx_option_description": "Crypto ကို EUR & CHF ဖြင့် 0 ယ်ပါ။ လက်လီရောင်းဝယ်မှုနှင့်ဥရောပရှိကော်ပိုရိတ်ဖောက်သည်များအတွက်",
201
"didnt_get_code": "ကုဒ်ကို မရဘူးလား?",
202
"digit_pin": "-ဂဏန်း PIN",
203
"digital_and_physical_card": " ဒစ်ဂျစ်တယ်နှင့် ရုပ်ပိုင်းဆိုင်ရာ ကြိုတင်ငွေပေးချေသော ဒက်ဘစ်ကတ်",
res/values/strings_nl.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Aflopend",
198
"description": "Beschrijving",
199
"destination_tag": "Bestemmingstag:",
200
- "dfx_option_description": "Koop crypto met EUR & CHF. Tot 990€ zonder extra KYC. Voor particuliere en zakelijke klanten in Europa",
200
+ "dfx_option_description": "Koop crypto met EUR & CHF. Voor retail- en zakelijke klanten in Europa",
201
"didnt_get_code": "Geen code?",
202
"digit_pin": "-cijferige PIN",
203
"digital_and_physical_card": "digitale en fysieke prepaid debetkaart",
res/values/strings_pl.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Schodzenie",
198
"description": "Opis",
199
"destination_tag": "Tag docelowy:",
200
- "dfx_option_description": "Kupuj kryptowaluty za EUR i CHF. Do 990 € bez dodatkowego KYC. Dla klientów detalicznych i korporacyjnych w Europie",
200
+ "dfx_option_description": "Kup krypto z EUR & CHF. Dla klientów detalicznych i korporacyjnych w Europie",
201
"didnt_get_code": "Nie dostałeś kodu?",
202
"digit_pin": "-znakowy PIN",
203
"digital_and_physical_card": " cyfrowa i fizyczna przedpłacona karta debetowa",
res/values/strings_pt.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "descendente",
198
"description": "Descrição",
199
"destination_tag": "Tag de destino:",
200
- "dfx_option_description": "Compre criptografia com EUR e CHF. Até 990€ sem KYC adicional. Para clientes de varejo e corporativos na Europa",
200
+ "dfx_option_description": "Compre criptografia com EUR & CHF. Para clientes de varejo e corporativo na Europa",
201
"didnt_get_code": "Não recebeu o código?",
202
"digit_pin": "dígitos",
203
"digital_and_physical_card": "cartão de débito pré-pago digital e físico",
res/values/strings_ru.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Нисходящий",
198
"description": "Описание",
199
"destination_tag": "Целевой тег:",
200
- "dfx_option_description": "Покупайте криптовалюту за EUR и CHF. До 990€ без дополнительного KYC. Для розничных и корпоративных клиентов в Европе",
200
+ "dfx_option_description": "Купить крипто с Eur & CHF. Для розничных и корпоративных клиентов в Европе",
201
"didnt_get_code": "Не получить код?",
202
"digit_pin": "-значный PIN",
203
"digital_and_physical_card": "цифровая и физическая предоплаченная дебетовая карта",
res/values/strings_th.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "ลงมา",
198
"description": "คำอธิบาย",
199
"destination_tag": "แท็กปลายทาง:",
200
- "dfx_option_description": "ซื้อ crypto ด้วย EUR และ CHF สูงถึง 990€ โดยไม่มี KYC เพิ่มเติม สำหรับลูกค้ารายย่อยและลูกค้าองค์กรในยุโรป",
200
+ "dfx_option_description": "ซื้อ crypto ด้วย Eur & CHF สำหรับลูกค้ารายย่อยและลูกค้าในยุโรป",
201
"didnt_get_code": "ไม่ได้รับรหัส?",
202
"digit_pin": "-หลัก PIN",
203
"digital_and_physical_card": "บัตรเดบิตดิจิตอลและบัตรพื้นฐาน",
res/values/strings_tl.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Pababang",
198
"description": "Paglalarawan",
199
"destination_tag": "Tag ng patutunguhan:",
200
- "dfx_option_description": "Bumili ng crypto gamit ang EUR at CHF. Hanggang 990€ nang walang karagdagang KYC. Para sa retail at corporate na mga customer sa Europe",
200
+ "dfx_option_description": "Bumili ng crypto kasama ang EUR & CHF. Para sa mga customer at corporate customer sa Europa",
201
"didnt_get_code": "Hindi nakuha ang code?",
202
"digit_pin": "-digit pin",
203
"digital_and_physical_card": "Digital at Physical Prepaid Debit Card",
res/values/strings_tr.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Azalan",
198
"description": "Tanım",
199
"destination_tag": "Hedef Etiketi:",
200
- "dfx_option_description": "EUR ve CHF ile kripto satın alın. Ek KYC olmadan 990 €'ya kadar. Avrupa'daki perakende ve kurumsal müşteriler için",
200
+ "dfx_option_description": "Eur & chf ile kripto satın alın. Avrupa'daki perakende ve kurumsal müşteriler için",
201
"didnt_get_code": "Kod gelmedi mi?",
202
"digit_pin": " haneli PIN",
203
"digital_and_physical_card": " Dijital para birimleri ile para yükleyebileceğiniz ve ek bilgiye gerek olmayan",
res/values/strings_uk.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Низхідний",
198
"description": "опис",
199
"destination_tag": "Тег призначення:",
200
- "dfx_option_description": "Купуйте криптовалюту за EUR і CHF. До 990 євро без додаткового KYC. Для роздрібних і корпоративних клієнтів у Європі",
200
+ "dfx_option_description": "Купуйте криптовалюту з EUR & CHF. Для роздрібних та корпоративних клієнтів у Європі",
201
"didnt_get_code": "Не отримуєте код?",
202
"digit_pin": "-значний PIN",
203
"digital_and_physical_card": " цифрова та фізична передплачена дебетова картка",
res/values/strings_ur.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "اترتے ہوئے",
198
"description": "ﻞﯿﺼﻔﺗ",
199
"destination_tag": "منزل کا ٹیگ:",
200
- "dfx_option_description": "EUR ﺭﻭﺍ CHF ﯽﻓﺎﺿﺍ ۔ﮟﯾﺪﯾﺮﺧ ﻮﭩﭘﺮﮐ ﮫﺗﺎﺳ ﮯﮐ KYC ﮯﯿﻟ ﮯﮐ ﻦﯿﻓﺭﺎﺻ ﭧﯾﺭﻮﭘﺭﺎﮐ ﺭﻭﺍ ﮦﺩﺭﻮﺧ ﮟ",
200
+ "dfx_option_description": "یورو اور سی ایچ ایف کے ساتھ کرپٹو خریدیں۔ یورپ میں خوردہ اور کارپوریٹ صارفین کے لئے",
201
"didnt_get_code": "کوڈ نہیں ملتا؟",
202
"digit_pin": "-ہندسوں کا پن",
203
"digital_and_physical_card": " ڈیجیٹل اور فزیکل پری پیڈ ڈیبٹ کارڈ",
res/values/strings_yo.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "Sọkalẹ",
198
"description": "Apejuwe",
199
"destination_tag": "Orúkọ tí ìbí tó a ránṣẹ́ sí:",
200
- "dfx_option_description": "Ra crypto pẹlu EUR & CHF. Titi di 990 € laisi afikun KYC. Fun soobu ati awọn onibara ile-iṣẹ ni Yuroopu",
200
+ "dfx_option_description": "Ra Crypto pẹlu EUR & CHF. Fun soobu ati awọn alabara ile-iṣẹ ni Yuroopu",
201
"didnt_get_code": "Ko gba koodu?",
202
"digit_pin": "-díjíìtì òǹkà ìdánimọ̀ àdáni",
203
"digital_and_physical_card": " káàdì ìrajà t'ara àti ti ayélujára",
res/values/strings_zh.arb
+1
-1
@@ -197,7 +197,7 @@
197
"descending": "下降",
198
"description": "描述",
199
"destination_tag": "目标Tag:",
200
- "dfx_option_description": "用欧元和瑞士法郎购买加密货币。高达 990 欧元,无需额外 KYC。对于欧洲的零售和企业客户",
200
+ "dfx_option_description": "用Eur&Chf购买加密货币。对于欧洲的零售和企业客户",
201
"didnt_get_code": "没有获取代码?",
202
"digit_pin": "位 PIN",
203
"digital_and_physical_card": "数字和物理预付借记卡",