From dd71edd8c8db0dfde180a0fbd2ca4ba8c4e59174 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Tue, 24 Nov 2020 14:42:26 +0200 Subject: [PATCH 1/9] CAKE-185 | fixed _amount in the changeDepositAmount() method (exchange_view_model.dart) --- lib/view_model/exchange/exchange_view_model.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 1b14980dd..8c001260c 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -174,7 +174,7 @@ abstract class ExchangeViewModelBase with Store { return; } - final _amount = double.parse(amount.replaceAll(',', '.')); + final _amount = double.parse(amount.replaceAll(',', '.')) ?? 0; provider .calculateAmount( from: depositCurrency, From 4cb4ede2d30f09207a7bda3fef9f350cfedff024 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Thu, 26 Nov 2020 21:04:05 +0200 Subject: [PATCH 2/9] CAKE-185 | added validation of amount for xmr.to provider in the exchange_page.dart; added isValidAmount() to exchange_view_model.dart --- lib/src/screens/exchange/exchange_page.dart | 13 +++++++++++- .../exchange/exchange_view_model.dart | 21 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index 7d90c177c..fa4e543ed 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -411,7 +411,18 @@ class ExchangePage extends BasePage { buttonAction: () => Navigator.of(context).pop()); }); } else { - exchangeViewModel.createTrade(); + exchangeViewModel.isValidAmount() + ? exchangeViewModel.createTrade() + : showPopUp( + context: context, + builder: (BuildContext context) { + return AlertWithOneAction( + alertTitle: 'XMR.TO error', + alertContent: 'Invalid amount. Maximum limit 8 digits after the decimal point ', + buttonText: S.of(context).ok, + buttonAction: () => + Navigator.of(context).pop()); + }); } } }, diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 8c001260c..28be7b6a3 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -306,6 +306,27 @@ abstract class ExchangeViewModelBase with Store { void removeTemplate({ExchangeTemplate template}) => _exchangeTemplateStore.remove(template: template); + bool isValidAmount() { + bool isValid = true; + + if (provider is XMRTOExchangeProvider) { + final amount = isReceiveAmountEntered + ? receiveAmount + : depositAmount; + + final amountParts = amount.replaceAll(',', '.') + .split('.'); + + final numberOfFractionDigits = + amountParts.length > 1 + ? amountParts[1].length : 0; + + isValid = !(numberOfFractionDigits > 8); + } + + return isValid; + } + List providersForCurrentPair() { return _providersForPair(from: depositCurrency, to: receiveCurrency); } From 623299b8f6ba9920d15d62eb46a766ecffde95a5 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Fri, 27 Nov 2020 08:50:28 +0200 Subject: [PATCH 3/9] CAKE-185 | changed isValidAmount() in the exchange_view_model.dart --- lib/view_model/exchange/exchange_view_model.dart | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 28be7b6a3..186161719 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -313,15 +313,8 @@ abstract class ExchangeViewModelBase with Store { final amount = isReceiveAmountEntered ? receiveAmount : depositAmount; - - final amountParts = amount.replaceAll(',', '.') - .split('.'); - - final numberOfFractionDigits = - amountParts.length > 1 - ? amountParts[1].length : 0; - - isValid = !(numberOfFractionDigits > 8); + isValid = RegExp('^([0-9]+([.\,][0-9]{0,8})?|[.\,][0-9]{1,8})\$') + .hasMatch(amount); } return isValid; From 4f43e963bf055e8ebcd9b1a6c93845f6cbddf828 Mon Sep 17 00:00:00 2001 From: Oleksandr Sobol Date: Fri, 27 Nov 2020 09:52:10 +0200 Subject: [PATCH 4/9] CAKE-185 | fixed string resources --- lib/generated/i18n.dart | 46 +++++++++++++++++++ lib/src/screens/exchange/exchange_page.dart | 4 +- .../exchange/exchange_view_model.dart | 4 +- res/values/strings_de.arb | 7 ++- res/values/strings_en.arb | 7 ++- res/values/strings_es.arb | 7 ++- res/values/strings_hi.arb | 7 ++- res/values/strings_ja.arb | 7 ++- res/values/strings_ko.arb | 7 ++- res/values/strings_nl.arb | 7 ++- res/values/strings_pl.arb | 7 ++- res/values/strings_pt.arb | 7 ++- res/values/strings_ru.arb | 7 ++- res/values/strings_uk.arb | 7 ++- res/values/strings_zh.arb | 7 ++- 15 files changed, 110 insertions(+), 28 deletions(-) diff --git a/lib/generated/i18n.dart b/lib/generated/i18n.dart index 48bff842c..d0b0fa80a 100644 --- a/lib/generated/i18n.dart +++ b/lib/generated/i18n.dart @@ -317,6 +317,8 @@ class S implements WidgetsLocalizations { String get xmr_available_balance => "Available Balance"; String get xmr_full_balance => "Full Balance"; String get xmr_hidden => "Hidden"; + String get xmr_to_error => "XMR.TO error"; + String get xmr_to_error_description => "Invalid amount. Maximum limit 8 digits after the decimal point"; String get yesterday => "Yesterday"; String get you_will_get => "Convert to"; String get you_will_send => "Convert from"; @@ -750,6 +752,8 @@ class $de extends S { @override String get seed_language_dutch => "Niederländisch"; @override + String get xmr_to_error => "XMR.TO-Fehler"; + @override String get restore_description_from_seed_keys => "Holen Sie sich Ihr Wallet von Seed / Schlüsseln zurück, die Sie an einem sicheren Ort aufbewahrt haben"; @override String get copy => "Kopieren"; @@ -852,6 +856,8 @@ class $de extends S { @override String get trade_details_id => "ID"; @override + String get xmr_to_error_description => "Ungültiger Betrag. Höchstgrenze 8 Stellen nach dem Dezimalpunkt"; + @override String get trade_state_confirming => "Bestätigung"; @override String get send => "Senden"; @@ -1418,6 +1424,8 @@ class $hi extends S { @override String get seed_language_dutch => "डच"; @override + String get xmr_to_error => "XMR.TO त्रुटि"; + @override String get restore_description_from_seed_keys => "अपने बटुए को बीज से वापस लें/वे कुंजियाँ जिन्हें आपने सुरक्षित स्थान पर सहेजा है"; @override String get copy => "प्रतिलिपि"; @@ -1520,6 +1528,8 @@ class $hi extends S { @override String get trade_details_id => "आईडी"; @override + String get xmr_to_error_description => "अवैध राशि। दशमलव बिंदु के बाद अधिकतम सीमा 8 अंक"; + @override String get trade_state_confirming => "पुष्टि"; @override String get send => "संदेश"; @@ -2086,6 +2096,8 @@ class $ru extends S { @override String get seed_language_dutch => "Нидерландский"; @override + String get xmr_to_error => "Ошибка XMR.TO"; + @override String get restore_description_from_seed_keys => "Вы можете восстановить кошелёк из мнемонической фразы/ключей, которые вы сохранили ранее"; @override String get copy => "Скопировать"; @@ -2188,6 +2200,8 @@ class $ru extends S { @override String get trade_details_id => "ID"; @override + String get xmr_to_error_description => "Недопустимая сумма. Максимум - 8 цифр после десятичной точки"; + @override String get trade_state_confirming => "Подтверждение"; @override String get send => "Отправить"; @@ -2754,6 +2768,8 @@ class $ko extends S { @override String get seed_language_dutch => "네덜란드 사람"; @override + String get xmr_to_error => "XMR.TO 오류"; + @override String get restore_description_from_seed_keys => "안전한 장소에 저장 한 종자 / 키로 지갑을 되 찾으십시오."; @override String get copy => "부"; @@ -2856,6 +2872,8 @@ class $ko extends S { @override String get trade_details_id => "ID"; @override + String get xmr_to_error_description => "금액이 잘못되었습니다. 소수점 이하 최대 8 자리"; + @override String get trade_state_confirming => "확인 중"; @override String get send => "보내다"; @@ -3422,6 +3440,8 @@ class $pt extends S { @override String get seed_language_dutch => "Holandesa"; @override + String get xmr_to_error => "Erro XMR.TO"; + @override String get restore_description_from_seed_keys => "Restaure a sua carteira a partir de sementes/chaves que você salvou em um local seguro"; @override String get copy => "Copiar"; @@ -3524,6 +3544,8 @@ class $pt extends S { @override String get trade_details_id => "ID"; @override + String get xmr_to_error_description => "Montante inválido. Limite máximo de 8 dígitos após o ponto decimal"; + @override String get trade_state_confirming => "Confirmando"; @override String get send => "Enviar"; @@ -4090,6 +4112,8 @@ class $uk extends S { @override String get seed_language_dutch => "Голландська"; @override + String get xmr_to_error => "Помилка XMR.TO"; + @override String get restore_description_from_seed_keys => "Ви можете відновити гаманець з мнемонічної фрази/ключів, які ви зберегли раніше"; @override String get copy => "Скопіювати"; @@ -4192,6 +4216,8 @@ class $uk extends S { @override String get trade_details_id => "ID"; @override + String get xmr_to_error_description => "Неприпустима сума. Максимум - 8 цифр після десяткової коми"; + @override String get trade_state_confirming => "Підтвердження"; @override String get send => "Відправити"; @@ -4758,6 +4784,8 @@ class $ja extends S { @override String get seed_language_dutch => "オランダの"; @override + String get xmr_to_error => "XMR.TOエラー"; + @override String get restore_description_from_seed_keys => "安全な場所に保存したシード/キーから財布を取り戻す"; @override String get copy => "コピー"; @@ -4860,6 +4888,8 @@ class $ja extends S { @override String get trade_details_id => "ID"; @override + String get xmr_to_error_description => "金額が無効です。 小数点以下8桁の上限"; + @override String get trade_state_confirming => "確認中"; @override String get send => "送る"; @@ -5430,6 +5460,8 @@ class $pl extends S { @override String get seed_language_dutch => "Holenderski"; @override + String get xmr_to_error => "Pomyłka XMR.TO"; + @override String get restore_description_from_seed_keys => "Odzyskaj swój portfel z nasion / kluczy, które zapisałeś w bezpiecznym miejscu"; @override String get copy => "Kopiuj"; @@ -5532,6 +5564,8 @@ class $pl extends S { @override String get trade_details_id => "ID"; @override + String get xmr_to_error_description => "Nieprawidłowa kwota. Maksymalny limit 8 cyfr po przecinku"; + @override String get trade_state_confirming => "Potwierdzam"; @override String get send => "Wysłać"; @@ -6098,6 +6132,8 @@ class $es extends S { @override String get seed_language_dutch => "Holandés"; @override + String get xmr_to_error => "Error de XMR.TO"; + @override String get restore_description_from_seed_keys => "Recupere su billetera de las semillas/claves que ha guardado en un lugar seguro"; @override String get copy => "Dupdo"; @@ -6200,6 +6236,8 @@ class $es extends S { @override String get trade_details_id => "ID"; @override + String get xmr_to_error_description => "Monto invalido. Límite máximo de 8 dígitos después del punto decimal"; + @override String get trade_state_confirming => "Confirmando"; @override String get send => "Enviar"; @@ -6766,6 +6804,8 @@ class $nl extends S { @override String get seed_language_dutch => "Nederlands"; @override + String get xmr_to_error => "XMR.TO-fout"; + @override String get restore_description_from_seed_keys => "Ontvang uw portemonnee terug uit seed / keys die u hebt opgeslagen op een veilige plaats"; @override String get copy => "Kopiëren"; @@ -6868,6 +6908,8 @@ class $nl extends S { @override String get trade_details_id => "ID"; @override + String get xmr_to_error_description => "Ongeldige hoeveelheid. Maximaal 8 cijfers achter de komma"; + @override String get trade_state_confirming => "Bevestiging"; @override String get send => "Sturen"; @@ -7434,6 +7476,8 @@ class $zh extends S { @override String get seed_language_dutch => "荷蘭人"; @override + String get xmr_to_error => "XMR.TO錯誤"; + @override String get restore_description_from_seed_keys => "从保存到安全地方的种子/钥匙取回钱包"; @override String get copy => "复制"; @@ -7536,6 +7580,8 @@ class $zh extends S { @override String get trade_details_id => "ID"; @override + String get xmr_to_error_description => "無效的金額。 小數點後最多8位數字"; + @override String get trade_state_confirming => "确认中"; @override String get send => "发送"; diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index fa4e543ed..784337648 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -417,8 +417,8 @@ class ExchangePage extends BasePage { context: context, builder: (BuildContext context) { return AlertWithOneAction( - alertTitle: 'XMR.TO error', - alertContent: 'Invalid amount. Maximum limit 8 digits after the decimal point ', + alertTitle: S.of(context).xmr_to_error, + alertContent: S.of(context).xmr_to_error_description, buttonText: S.of(context).ok, buttonAction: () => Navigator.of(context).pop()); diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 186161719..e6c946a87 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -313,8 +313,8 @@ abstract class ExchangeViewModelBase with Store { final amount = isReceiveAmountEntered ? receiveAmount : depositAmount; - isValid = RegExp('^([0-9]+([.\,][0-9]{0,8})?|[.\,][0-9]{1,8})\$') - .hasMatch(amount); + final pattern = '^([0-9]+([.\,][0-9]{0,8})?|[.\,][0-9]{1,8})\$'; + isValid = RegExp(pattern).hasMatch(amount); } return isValid; diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index cf74c18aa..13533b960 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "Wechseln Sie den Exchange-Anbieter", "you_will_send" : "Konvertieren von", "you_will_get" : "Konvertieren zu", - "amount_is_guaranteed" : "WICHTIG:\nWenn Sie einen garantierten BTC-Betrag erhalten möchten, geben Sie diesen Betrag in das Feld BTC ein. Wenn Sie stattdessen einen XMR-Betrag eingeben, handelt es sich bei dem erhaltenen BTC-Betrag um eine Schätzung, die je nach Kurs schwanken kann.", + "amount_is_guaranteed" : "Geben Sie in xmr.to den BTC-Betrag und nicht den oben genannten XMR-Betrag ein, um einen garantierten BTC-Betrag zu erhalten", "amount_is_estimate" : "Der empfangene Betrag ist eine Schätzung", "powered_by" : "Unterstützt von ${title}", "error" : "Error", @@ -407,5 +407,8 @@ "seed_alert_back" : "Geh zurück", "seed_alert_yes" : "Ja, habe ich", - "exchange_sync_alert_content" : "Bitte warten Sie, bis Ihre Brieftasche synchronisiert ist" + "exchange_sync_alert_content" : "Bitte warten Sie, bis Ihre Brieftasche synchronisiert ist", + + "xmr_to_error" : "XMR.TO-Fehler", + "xmr_to_error_description" : "Ungültiger Betrag. Höchstgrenze 8 Stellen nach dem Dezimalpunkt" } \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index b3a30feac..f0498a61b 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "Change Exchange Provider", "you_will_send" : "Convert from", "you_will_get" : "Convert to", - "amount_is_guaranteed" : "IMPORTANT:\nIf you want to receive a guaranteed amount of BTC, please enter that amount in the BTC field. If you enter an XMR amount instead, then the BTC amount received is an estimate and can fluctuate depending on the rates.", + "amount_is_guaranteed" : "In xmr.to, to receive a guaranteed BTC amount, enter the BTC amount and not the XMR amount above", "amount_is_estimate" : "The receive amount is an estimate", "powered_by" : "Powered by ${title}", "error" : "Error", @@ -407,5 +407,8 @@ "seed_alert_back" : "Go back", "seed_alert_yes" : "Yes, I have", - "exchange_sync_alert_content" : "Please wait until your wallet is synchronized" + "exchange_sync_alert_content" : "Please wait until your wallet is synchronized", + + "xmr_to_error" : "XMR.TO error", + "xmr_to_error_description" : "Invalid amount. Maximum limit 8 digits after the decimal point" } \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 59258df5b..19c79d530 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "Cambiar proveedor de intercambio", "you_will_send" : "Convertir de", "you_will_get" : "Convertir a", - "amount_is_guaranteed" : "IMPORTANTE:\nSi desea recibir una cantidad garantizada de BTC, ingrese esa cantidad en el campo BTC. Si ingresa una cantidad de XMR en su lugar, la cantidad de BTC recibida es una estimación y puede variar según las tarifas.", + "amount_is_guaranteed" : "En xmr.to, para recibir una cantidad BTC garantizada, ingrese la cantidad BTC y no la cantidad XMR arriba", "amount_is_estimate" : "El monto recibido es un estimado", "powered_by" : "Energizado por ${title}", "error" : "Error", @@ -407,5 +407,8 @@ "seed_alert_back" : "Regresa", "seed_alert_yes" : "Sí tengo", - "exchange_sync_alert_content" : "Espere hasta que su billetera esté sincronizada" + "exchange_sync_alert_content" : "Espere hasta que su billetera esté sincronizada", + + "xmr_to_error" : "Error de XMR.TO", + "xmr_to_error_description" : "Monto invalido. Límite máximo de 8 dígitos después del punto decimal" } \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 58212a819..5315ac029 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "एक्सचेंज प्रदाता बदलें", "you_will_send" : "से रूपांतरित करें", "you_will_get" : "में बदलें", - "amount_is_guaranteed" : "महत्वपूर्ण:\nयदि आप BTC की गारंटीकृत राशि प्राप्त करना चाहते हैं, तो कृपया उस राशि को BTC फ़ील्ड में दर्ज करें। यदि आप इसके बजाय एक एक्सएमआर राशि दर्ज करते हैं, तो प्राप्त बीटीसी राशि एक अनुमान है और दरों के आधार पर इसमें उतार-चढ़ाव हो सकता है।", + "amount_is_guaranteed" : "Xmr.to में, गारंटीशुदा BTC राशि प्राप्त करने के लिए, BTC राशि दर्ज करें और ऊपर XMR राशि नहीं", "amount_is_estimate" : "प्राप्त राशि एक अनुमान है", "powered_by" : "द्वारा संचालित ${title}", "error" : "त्रुटि", @@ -407,5 +407,8 @@ "seed_alert_back" : "वापस जाओ", "seed_alert_yes" : "हाँ मेरे पास है", - "exchange_sync_alert_content" : "कृपया प्रतीक्षा करें जब तक आपका बटुआ सिंक्रनाइज़ नहीं किया जाता है" + "exchange_sync_alert_content" : "कृपया प्रतीक्षा करें जब तक आपका बटुआ सिंक्रनाइज़ नहीं किया जाता है", + + "xmr_to_error" : "XMR.TO त्रुटि", + "xmr_to_error_description" : "अवैध राशि। दशमलव बिंदु के बाद अधिकतम सीमा 8 अंक" } \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 7a6ff8994..051df8d91 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "Exchangeプロバイダーの変更", "you_will_send" : "から変換", "you_will_get" : "に変換", - "amount_is_guaranteed" : "重要:\n保証された金額のBTCを受け取りたい場合は、その金額を[BTC]フィールドに入力してください。 代わりにXMR金額を入力した場合、受け取ったBTC金額は見積もりであり、レートに応じて変動する可能性があります。", + "amount_is_guaranteed" : "xmr.toで、保証されたBTC金額を受け取るには、上記のXMR金額ではなく、BTC金額を入力します", "amount_is_estimate" : "受け取り金額は見積もりです", "powered_by" : "搭載 ${title}", "error" : "エラー", @@ -407,5 +407,8 @@ "seed_alert_back" : "戻る", "seed_alert_yes" : "はい、あります", - "exchange_sync_alert_content" : "ウォレットが同期されるまでお待ちください" + "exchange_sync_alert_content" : "ウォレットが同期されるまでお待ちください", + + "xmr_to_error" : "XMR.TOエラー", + "xmr_to_error_description" : "金額が無効です。 小数点以下8桁の上限" } \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 3665491fd..2e83cc7b6 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "교환 공급자 변경", "you_will_send" : "다음에서 변환", "you_will_get" : "로 변환하다", - "amount_is_guaranteed" : "중대한:\n보장 된 BTC 금액을 받으려면 BTC 필드에 해당 금액을 입력하십시오. 대신 XMR 금액을 입력하면 수령 한 BTC 금액이 추정치이며 요율에 따라 변동될 수 있습니다.", + "amount_is_guaranteed" : "xmr.to에서 보장 된 BTC 금액을 받으려면 위의 XMR 금액이 아닌 BTC 금액을 입력하십시오.", "amount_is_estimate" : "수신 금액은 견적입니다", "powered_by" : "에 의해 구동 ${title}", "error" : "오류", @@ -407,5 +407,8 @@ "seed_alert_back" : "돌아 가기", "seed_alert_yes" : "네, 있어요", - "exchange_sync_alert_content" : "지갑이 동기화 될 때까지 기다리십시오" + "exchange_sync_alert_content" : "지갑이 동기화 될 때까지 기다리십시오", + + "xmr_to_error" : "XMR.TO 오류", + "xmr_to_error_description" : "금액이 잘못되었습니다. 소수점 이하 최대 8 자리" } \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index c8fd4a351..563484545 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "Wijzig Exchange Provider", "you_will_send" : "Converteren van", "you_will_get" : "Converteren naar", - "amount_is_guaranteed" : "BELANGRIJK:\nAls u een gegarandeerd bedrag aan BTC wilt ontvangen, voert u dat bedrag in het BTC-veld in. Als u in plaats daarvan een XMR-bedrag invoert, is het ontvangen BTC-bedrag een schatting en kan het fluctueren afhankelijk van de tarieven.", + "amount_is_guaranteed" : "Om een gegarandeerd BTC-bedrag te ontvangen, voert u in xmr.to het BTC-bedrag in en niet het bovenstaande XMR-bedrag", "amount_is_estimate" : "Het ontvangen bedrag is een schatting", "powered_by" : "Aangedreven door ${title}", "error" : "Fout", @@ -407,5 +407,8 @@ "seed_alert_back" : "Ga terug", "seed_alert_yes" : "Ja ik heb", - "exchange_sync_alert_content" : "Wacht tot uw portemonnee is gesynchroniseerd" + "exchange_sync_alert_content" : "Wacht tot uw portemonnee is gesynchroniseerd", + + "xmr_to_error" : "XMR.TO-fout", + "xmr_to_error_description" : "Ongeldige hoeveelheid. Maximaal 8 cijfers achter de komma" } \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 4e458021d..75668fcda 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "Zmień dostawcę programu Exchange", "you_will_send" : "Konwertuj z", "you_will_get" : "Konwertuj na", - "amount_is_guaranteed" : "WAŻNY:\nJeśli chcesz otrzymać gwarantowaną kwotę BTC, wprowadź tę kwotę w polu BTC. Jeśli zamiast tego wpiszesz kwotę XMR, otrzymana kwota BTC jest szacunkowa i może się zmieniać w zależności od stawek.", + "amount_is_guaranteed" : "W xmr.to, aby otrzymać gwarantowaną kwotę BTC, wprowadź kwotę BTC, a nie kwotę XMR powyżej", "amount_is_estimate" : "Otrzymana kwota jest wartością szacunkową", "powered_by" : "Zasilany przez ${title}", "error" : "Błąd", @@ -407,5 +407,8 @@ "seed_alert_back" : "Wróć", "seed_alert_yes" : "Tak", - "exchange_sync_alert_content" : "Poczekaj, aż portfel zostanie zsynchronizowany" + "exchange_sync_alert_content" : "Poczekaj, aż portfel zostanie zsynchronizowany", + + "xmr_to_error" : "Pomyłka XMR.TO", + "xmr_to_error_description" : "Nieprawidłowa kwota. Maksymalny limit 8 cyfr po przecinku" } \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index cb7a3bd2d..6a79e1a61 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "Alterar o provedor de troca", "you_will_send" : "Converter de", "you_will_get" : "Converter para", - "amount_is_guaranteed" : "IMPORTANTE:\nSe você deseja receber um valor garantido de BTC, insira esse valor no campo BTC. Se, em vez disso, você inserir um valor XMR, o valor BTC recebido é uma estimativa e pode flutuar dependendo das taxas.", + "amount_is_guaranteed" : "Em xmr.to, para receber um valor BTC garantido, insira o valor BTC e não o valor XMR acima", "amount_is_estimate" : "O valor a ser recebido informado acima é uma estimativa", "powered_by" : "Troca realizada por ${title}", "error" : "Erro", @@ -407,5 +407,8 @@ "seed_alert_back" : "Volte", "seed_alert_yes" : "Sim, eu tenho", - "exchange_sync_alert_content" : "Por favor, espere até que sua carteira seja sincronizada" + "exchange_sync_alert_content" : "Por favor, espere até que sua carteira seja sincronizada", + + "xmr_to_error" : "Erro XMR.TO", + "xmr_to_error_description" : "Montante inválido. Limite máximo de 8 dígitos após o ponto decimal" } diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 5ad7568ed..a2acbdc2a 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "Изменить провайдера обмена", "you_will_send" : "Конвертировать из", "you_will_get" : "Конвертировать в", - "amount_is_guaranteed" : "ВАЖНО:\nЕсли вы хотите получить гарантированную сумму BTC, введите эту сумму в поле BTC. Если вместо этого вы вводите сумму XMR, полученная сумма BTC является приблизительной и может колебаться в зависимости от курса.", + "amount_is_guaranteed" : "В xmr.to, чтобы получить гарантированную сумму BTC, введите сумму BTC, а не сумму XMR выше", "amount_is_estimate" : "Полученная сумма является приблизительной", "powered_by" : "Используя ${title}", "error" : "Ошибка", @@ -407,5 +407,8 @@ "seed_alert_back" : "Назад", "seed_alert_yes" : "Да", - "exchange_sync_alert_content" : "Подождите, пока ваш кошелек синхронизируется" + "exchange_sync_alert_content" : "Подождите, пока ваш кошелек синхронизируется", + + "xmr_to_error" : "Ошибка XMR.TO", + "xmr_to_error_description" : "Недопустимая сумма. Максимум - 8 цифр после десятичной точки" } \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 480685e08..181591ea6 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "Змінити провайдера обміну", "you_will_send" : "Конвертувати з", "you_will_get" : "Конвертувати в", - "amount_is_guaranteed" : "ВАЖЛИВО:\nЯкщо ви хочете отримати гарантовану суму BTC, введіть цю суму в поле BTC. Якщо замість цього ввести суму XMR, отримана сума BTC є приблизною і може коливатися залежно від курсу.", + "amount_is_guaranteed" : "У xmr.to, щоб отримати гарантовану суму BTC, введіть суму BTC, а не XMR вище", "amount_is_estimate" : "Отримана сума є приблизною", "powered_by" : "Використовуючи ${title}", "error" : "Помилка", @@ -407,5 +407,8 @@ "seed_alert_back" : "Назад", "seed_alert_yes" : "Так", - "exchange_sync_alert_content" : "Зачекайте, поки ваш гаманець не синхронізується" + "exchange_sync_alert_content" : "Зачекайте, поки ваш гаманець не синхронізується", + + "xmr_to_error" : "Помилка XMR.TO", + "xmr_to_error_description" : "Неприпустима сума. Максимум - 8 цифр після десяткової коми" } \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 38d807906..62b54c023 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -65,7 +65,7 @@ "change_exchange_provider" : "更改交易所提供商", "you_will_send" : "從轉換", "you_will_get" : "轉換成", - "amount_is_guaranteed" : "重要:\n如果您想獲得保證的BTC金額,請在BTC字段中輸入該金額。 如果您輸入的是XMR金額,則收到的BTC金額只是估算值,可能會隨匯率而波動。", + "amount_is_guaranteed" : "在xmr.to中,要接收保证的BTC数量,请输入BTC数量,而不要输入上方的XMR数量", "amount_is_estimate" : "收款金额为估算值", "powered_by" : "供电 ${title}", "error" : "错误", @@ -407,5 +407,8 @@ "seed_alert_back" : "回去", "seed_alert_yes" : "是的,我有", - "exchange_sync_alert_content" : "請等待,直到您的錢包同步" + "exchange_sync_alert_content" : "請等待,直到您的錢包同步", + + "xmr_to_error" : "XMR.TO錯誤", + "xmr_to_error_description" : "無效的金額。 小數點後最多8位數字" } \ No newline at end of file From ca0c0d1ad668330ca3d7044e358aab3dfdc6c3fb Mon Sep 17 00:00:00 2001 From: Oleksandr Sobol Date: Fri, 27 Nov 2020 09:59:28 +0200 Subject: [PATCH 5/9] CAKE-185 | fixed string resources --- lib/generated/i18n.dart | 4 ++-- res/values/strings_ru.arb | 2 +- res/values/strings_uk.arb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/generated/i18n.dart b/lib/generated/i18n.dart index d0b0fa80a..ee3be3abe 100644 --- a/lib/generated/i18n.dart +++ b/lib/generated/i18n.dart @@ -2200,7 +2200,7 @@ class $ru extends S { @override String get trade_details_id => "ID"; @override - String get xmr_to_error_description => "Недопустимая сумма. Максимум - 8 цифр после десятичной точки"; + String get xmr_to_error_description => "Недопустимая сумма. Максимум 8 цифр после десятичной точки"; @override String get trade_state_confirming => "Подтверждение"; @override @@ -4216,7 +4216,7 @@ class $uk extends S { @override String get trade_details_id => "ID"; @override - String get xmr_to_error_description => "Неприпустима сума. Максимум - 8 цифр після десяткової коми"; + String get xmr_to_error_description => "Неприпустима сума. Максимум 8 цифр після десяткової коми"; @override String get trade_state_confirming => "Підтвердження"; @override diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index a2acbdc2a..59822d6ff 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -410,5 +410,5 @@ "exchange_sync_alert_content" : "Подождите, пока ваш кошелек синхронизируется", "xmr_to_error" : "Ошибка XMR.TO", - "xmr_to_error_description" : "Недопустимая сумма. Максимум - 8 цифр после десятичной точки" + "xmr_to_error_description" : "Недопустимая сумма. Максимум 8 цифр после десятичной точки" } \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 181591ea6..17ab88532 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -410,5 +410,5 @@ "exchange_sync_alert_content" : "Зачекайте, поки ваш гаманець не синхронізується", "xmr_to_error" : "Помилка XMR.TO", - "xmr_to_error_description" : "Неприпустима сума. Максимум - 8 цифр після десяткової коми" + "xmr_to_error_description" : "Неприпустима сума. Максимум 8 цифр після десяткової коми" } \ No newline at end of file From 458079d3aea64b6a3ffc3a89569bbeefae378978 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Wed, 2 Dec 2020 21:51:06 +0200 Subject: [PATCH 6/9] CAKE-185 | added title property to TradeIsCreatedFailure class; applied title property in the createTrade() method (exchange_view_model.dart); applied title property as alert title in the exchange_page.dart --- lib/exchange/exchange_trade_state.dart | 3 ++- lib/src/screens/exchange/exchange_page.dart | 2 +- lib/view_model/exchange/exchange_view_model.dart | 7 ++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/exchange/exchange_trade_state.dart b/lib/exchange/exchange_trade_state.dart index 324ae9338..109293bec 100644 --- a/lib/exchange/exchange_trade_state.dart +++ b/lib/exchange/exchange_trade_state.dart @@ -14,7 +14,8 @@ class TradeIsCreatedSuccessfully extends ExchangeTradeState { } class TradeIsCreatedFailure extends ExchangeTradeState { - TradeIsCreatedFailure({@required this.error}); + TradeIsCreatedFailure({@required this.title, @required this.error}); + final String title; final String error; } \ No newline at end of file diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index 784337648..b47874275 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -558,7 +558,7 @@ class ExchangePage extends BasePage { context: context, builder: (BuildContext context) { return AlertWithOneAction( - alertTitle: S.of(context).error, + alertTitle: state.title, alertContent: state.error, buttonText: S.of(context).ok, buttonAction: () => Navigator.of(context).pop()); diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index e6c946a87..1ea299600 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -247,10 +247,12 @@ abstract class ExchangeViewModelBase with Store { if (limitsState is LimitsLoadedSuccessfully && amount != null) { if (double.parse(amount) < limits.min) { tradeState = TradeIsCreatedFailure( + title: provider.title, error: S.current.error_text_minimal_limit('${provider.description}', '${limits.min}', currency.toString())); } else if (limits.max != null && double.parse(amount) > limits.max) { tradeState = TradeIsCreatedFailure( + title: provider.title, error: S.current.error_text_maximum_limit('${provider.description}', '${limits.max}', currency.toString())); } else { @@ -262,11 +264,14 @@ abstract class ExchangeViewModelBase with Store { await trades.add(trade); tradeState = TradeIsCreatedSuccessfully(trade: trade); } catch (e) { - tradeState = TradeIsCreatedFailure(error: e.toString()); + tradeState = TradeIsCreatedFailure( + title: provider.title, + error: e.toString()); } } } else { tradeState = TradeIsCreatedFailure( + title: provider.title, error: S.current .error_text_limits_loading_failed('${provider.description}')); } From c21fd04345baf2ebc373fdf24e29a26285c9b9d2 Mon Sep 17 00:00:00 2001 From: Oleksandr Sobol Date: Thu, 3 Dec 2020 15:47:13 +0200 Subject: [PATCH 7/9] CAKE-185 | fixed string resources --- lib/generated/i18n.dart | 23 +++++++++++++++++++++ lib/src/screens/exchange/exchange_page.dart | 2 +- res/values/strings_de.arb | 4 +++- res/values/strings_en.arb | 4 +++- res/values/strings_es.arb | 4 +++- res/values/strings_hi.arb | 4 +++- res/values/strings_ja.arb | 4 +++- res/values/strings_ko.arb | 4 +++- res/values/strings_nl.arb | 4 +++- res/values/strings_pl.arb | 4 +++- res/values/strings_pt.arb | 4 +++- res/values/strings_ru.arb | 4 +++- res/values/strings_uk.arb | 4 +++- res/values/strings_zh.arb | 4 +++- 14 files changed, 60 insertions(+), 13 deletions(-) diff --git a/lib/generated/i18n.dart b/lib/generated/i18n.dart index 62e58370c..4e43365b0 100644 --- a/lib/generated/i18n.dart +++ b/lib/generated/i18n.dart @@ -342,6 +342,7 @@ class S implements WidgetsLocalizations { String min_value(String value, String currency) => "Min: ${value} ${currency}"; String openalias_alert_content(String recipient_name) => "You will be sending funds to\n${recipient_name}"; String powered_by(String title) => "Powered by ${title}"; + String provider_error(String provider) => "${provider} error"; String router_no_route(String name) => "No route defined for ${name}"; String send_address(String cryptoCurrency) => "${cryptoCurrency} address"; String send_priority(String transactionPriority) => "Currently the fee is set at ${transactionPriority} priority.\nTransaction priority can be adjusted in the settings"; @@ -1029,6 +1030,8 @@ class $de extends S { @override String wallet_list_failed_to_remove(String wallet_name, String error) => "Fehler beim Entfernen ${wallet_name} Wallet. ${error}"; @override + String provider_error(String provider) => "${provider} Error"; + @override String copied_key_to_clipboard(String key) => "Kopiert ${key} Zur Zwischenablage"; @override String wallet_list_failed_to_load(String wallet_name, String error) => "Laden fehlgeschlagen ${wallet_name} Wallet. ${error}"; @@ -1707,6 +1710,8 @@ class $hi extends S { @override String wallet_list_failed_to_remove(String wallet_name, String error) => "निकालने में विफल ${wallet_name} बटुआ. ${error}"; @override + String provider_error(String provider) => "${provider} त्रुटि"; + @override String copied_key_to_clipboard(String key) => "की नकल की ${key} क्लिपबोर्ड पर"; @override String wallet_list_failed_to_load(String wallet_name, String error) => "लोड करने में विफल ${wallet_name} बटुआ. ${error}"; @@ -2385,6 +2390,8 @@ class $ru extends S { @override String wallet_list_failed_to_remove(String wallet_name, String error) => "Ошибка при удалении ${wallet_name} кошелька. ${error}"; @override + String provider_error(String provider) => "${provider} ошибка"; + @override String copied_key_to_clipboard(String key) => "Скопировано ${key} в буфер обмена"; @override String wallet_list_failed_to_load(String wallet_name, String error) => "Ошибка при загрузке ${wallet_name} кошелька. ${error}"; @@ -3063,6 +3070,8 @@ class $ko extends S { @override String wallet_list_failed_to_remove(String wallet_name, String error) => "제거하지 못했습니다 ${wallet_name} 지갑. ${error}"; @override + String provider_error(String provider) => "${provider} 오류"; + @override String copied_key_to_clipboard(String key) => "복사 ${key} 클립 보드로"; @override String wallet_list_failed_to_load(String wallet_name, String error) => "불러 오지 못했습니다 ${wallet_name} 지갑. ${error}"; @@ -3741,6 +3750,8 @@ class $pt extends S { @override String wallet_list_failed_to_remove(String wallet_name, String error) => "Falha ao remover a carteira ${wallet_name}. ${error}"; @override + String provider_error(String provider) => "${provider} erro"; + @override String copied_key_to_clipboard(String key) => "${key} copiada para a área de transferência"; @override String wallet_list_failed_to_load(String wallet_name, String error) => "Falha ao abrir a carteira ${wallet_name}. ${error}"; @@ -4419,6 +4430,8 @@ class $uk extends S { @override String wallet_list_failed_to_remove(String wallet_name, String error) => "Помилка при видаленні ${wallet_name} гаманця. ${error}"; @override + String provider_error(String provider) => "${provider} помилка"; + @override String copied_key_to_clipboard(String key) => "Скопійовано ${key} в буфер обміну"; @override String wallet_list_failed_to_load(String wallet_name, String error) => "Помилка при завантаженні ${wallet_name} гаманця. ${error}"; @@ -5097,6 +5110,8 @@ class $ja extends S { @override String wallet_list_failed_to_remove(String wallet_name, String error) => "削除できませんでした ${wallet_name} 財布. ${error}"; @override + String provider_error(String provider) => "${provider} エラー"; + @override String copied_key_to_clipboard(String key) => "コピー済み ${key} クリップボードへ"; @override String wallet_list_failed_to_load(String wallet_name, String error) => "読み込みに失敗しました ${wallet_name} 財布. ${error}"; @@ -5779,6 +5794,8 @@ class $pl extends S { @override String wallet_list_failed_to_remove(String wallet_name, String error) => "Nie udało się usunąć ${wallet_name} portfel. ${error}"; @override + String provider_error(String provider) => "${provider} pomyłka"; + @override String copied_key_to_clipboard(String key) => "Skopiowane ${key} do schowka"; @override String wallet_list_failed_to_load(String wallet_name, String error) => "Nie udało się załadować ${wallet_name} portfel. ${error}"; @@ -6457,6 +6474,8 @@ class $es extends S { @override String wallet_list_failed_to_remove(String wallet_name, String error) => "Error al elimina ${wallet_name} billetera. ${error}"; @override + String provider_error(String provider) => "${provider} error"; + @override String copied_key_to_clipboard(String key) => "Copiado ${key} al portapapeles"; @override String wallet_list_failed_to_load(String wallet_name, String error) => "No se pudo cargar ${wallet_name} la billetera. ${error}"; @@ -7135,6 +7154,8 @@ class $nl extends S { @override String wallet_list_failed_to_remove(String wallet_name, String error) => "Verwijderen mislukt ${wallet_name} portemonnee. ${error}"; @override + String provider_error(String provider) => "${provider} fout"; + @override String copied_key_to_clipboard(String key) => "Gekopieerd ${key} naar het klembord"; @override String wallet_list_failed_to_load(String wallet_name, String error) => "Laden mislukt ${wallet_name} portemonnee. ${error}"; @@ -7813,6 +7834,8 @@ class $zh extends S { @override String wallet_list_failed_to_remove(String wallet_name, String error) => "删除失败 ${wallet_name} 钱包. ${error}"; @override + String provider_error(String provider) => "${provider} 錯誤"; + @override String copied_key_to_clipboard(String key) => "复制 ${key} 到剪贴板"; @override String wallet_list_failed_to_load(String wallet_name, String error) => "加载失败 ${wallet_name} 钱包. ${error}"; diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index b47874275..84581be08 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -558,7 +558,7 @@ class ExchangePage extends BasePage { context: context, builder: (BuildContext context) { return AlertWithOneAction( - alertTitle: state.title, + alertTitle: S.of(context).provider_error(state.title), alertContent: state.error, buttonText: S.of(context).ok, buttonAction: () => Navigator.of(context).pop()); diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 17adc5503..bfe1ae8de 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "Ich verstehe. Zeig mir meinen Samen", "xmr_to_error" : "XMR.TO-Fehler", - "xmr_to_error_description" : "Ungültiger Betrag. Höchstgrenze 8 Stellen nach dem Dezimalpunkt" + "xmr_to_error_description" : "Ungültiger Betrag. Höchstgrenze 8 Stellen nach dem Dezimalpunkt", + + "provider_error" : "${provider} Error" } \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index c58176cd4..368204d9e 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "I understand. Show me my seed", "xmr_to_error" : "XMR.TO error", - "xmr_to_error_description" : "Invalid amount. Maximum limit 8 digits after the decimal point" + "xmr_to_error_description" : "Invalid amount. Maximum limit 8 digits after the decimal point", + + "provider_error" : "${provider} error" } \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index df29e617a..e0680e109 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "Entiendo. Muéstrame mi semilla", "xmr_to_error" : "Error de XMR.TO", - "xmr_to_error_description" : "Monto invalido. Límite máximo de 8 dígitos después del punto decimal" + "xmr_to_error_description" : "Monto invalido. Límite máximo de 8 dígitos después del punto decimal", + + "provider_error" : "${provider} error" } \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 944e9c470..d49ad9161 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "मै समझता हुँ। मुझे अपना बीज दिखाओ", "xmr_to_error" : "XMR.TO त्रुटि", - "xmr_to_error_description" : "अवैध राशि। दशमलव बिंदु के बाद अधिकतम सीमा 8 अंक" + "xmr_to_error_description" : "अवैध राशि। दशमलव बिंदु के बाद अधिकतम सीमा 8 अंक", + + "provider_error" : "${provider} त्रुटि" } \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 138fbaf45..0a8a72478 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "わかります。 種を見せて", "xmr_to_error" : "XMR.TOエラー", - "xmr_to_error_description" : "金額が無効です。 小数点以下8桁の上限" + "xmr_to_error_description" : "金額が無効です。 小数点以下8桁の上限", + + "provider_error" : "${provider} エラー" } \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 1e63e9230..e3fec3cdb 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "이해 했어요. 내 씨앗을 보여줘", "xmr_to_error" : "XMR.TO 오류", - "xmr_to_error_description" : "금액이 잘못되었습니다. 소수점 이하 최대 8 자리" + "xmr_to_error_description" : "금액이 잘못되었습니다. 소수점 이하 최대 8 자리", + + "provider_error" : "${provider} 오류" } \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 8bbc6793f..527ecfdb4 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "Ik begrijp het. Laat me mijn zaad zien", "xmr_to_error" : "XMR.TO-fout", - "xmr_to_error_description" : "Ongeldige hoeveelheid. Maximaal 8 cijfers achter de komma" + "xmr_to_error_description" : "Ongeldige hoeveelheid. Maximaal 8 cijfers achter de komma", + + "provider_error" : "${provider} fout" } \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 65b5969eb..ece0e6260 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "Rozumiem. Pokaż mi moje nasienie", "xmr_to_error" : "Pomyłka XMR.TO", - "xmr_to_error_description" : "Nieprawidłowa kwota. Maksymalny limit 8 cyfr po przecinku" + "xmr_to_error_description" : "Nieprawidłowa kwota. Maksymalny limit 8 cyfr po przecinku", + + "provider_error" : "${provider} pomyłka" } \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index f1bf90313..f3c6b6ea9 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "Compreendo. Me mostre minha semente", "xmr_to_error" : "Erro XMR.TO", - "xmr_to_error_description" : "Montante inválido. Limite máximo de 8 dígitos após o ponto decimal" + "xmr_to_error_description" : "Montante inválido. Limite máximo de 8 dígitos após o ponto decimal", + + "provider_error" : "${provider} erro" } diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 7c48113bc..03f9c09df 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "Понятно. Покажите мнемоническую фразу", "xmr_to_error" : "Ошибка XMR.TO", - "xmr_to_error_description" : "Недопустимая сумма. Максимум 8 цифр после десятичной точки" + "xmr_to_error_description" : "Недопустимая сумма. Максимум 8 цифр после десятичной точки", + + "provider_error" : "${provider} ошибка" } \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 4c4e7bbe6..cc7346a46 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "Зрозуміло. Покажіть мнемонічну фразу", "xmr_to_error" : "Помилка XMR.TO", - "xmr_to_error_description" : "Неприпустима сума. Максимум 8 цифр після десяткової коми" + "xmr_to_error_description" : "Неприпустима сума. Максимум 8 цифр після десяткової коми", + + "provider_error" : "${provider} помилка" } \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index aa6db98e5..9978d9137 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -414,5 +414,7 @@ "pre_seed_button_text" : "我明白。 給我看我的種子", "xmr_to_error" : "XMR.TO錯誤", - "xmr_to_error_description" : "無效的金額。 小數點後最多8位數字" + "xmr_to_error_description" : "無效的金額。 小數點後最多8位數字", + + "provider_error" : "${provider} 錯誤" } \ No newline at end of file From 27cfad5d9594a566f558439a7289d5cd83fab045 Mon Sep 17 00:00:00 2001 From: Oleksandr Sobol Date: Thu, 3 Dec 2020 16:00:11 +0200 Subject: [PATCH 8/9] CAKE-185 | fixed string resources --- res/values/strings_de.arb | 1 - res/values/strings_en.arb | 1 - res/values/strings_es.arb | 1 - res/values/strings_hi.arb | 1 - res/values/strings_ja.arb | 1 - res/values/strings_ko.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_uk.arb | 1 - res/values/strings_zh.arb | 1 - 12 files changed, 12 deletions(-) diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index c59d74560..eb0a6080b 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} Error", - "use_ssl" : "Verwenden Sie SSL" } \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index ed39857bc..8a1267236 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} error", - "use_ssl" : "Use SSL" } \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 07e32da3c..00acdcb0c 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} error", - "use_ssl" : "Utilice SSL" } \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 444f9d57d..9a9545c5d 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} त्रुटि", - "use_ssl" : "उपयोग SSL" } \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 307aa1096..cb4b63414 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} エラー", - "use_ssl" : "SSLを使用する" } \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index d4d07f05f..c14898fd9 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} 오류", - "use_ssl" : "SSL 사용" } \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 773ff1588..e5093a406 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} fout", - "use_ssl" : "Gebruik SSL" } \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 2c7f627fa..e6b098360 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} pomyłka", - "use_ssl" : "Użyj SSL" } \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index b00c0122e..e82032d7b 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} erro", - "use_ssl" : "Use SSL" } diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 3f299670e..b78b86ff1 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} ошибка", - "use_ssl" : "Использовать SSL" } \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 51035a4e9..be77cd293 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} помилка", - "use_ssl" : "Використати SSL" } \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 9c5cd6fdb..ee633aae8 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -423,6 +423,5 @@ "provider_error" : "${provider} 錯誤", - "use_ssl" : "使用SSL" } \ No newline at end of file From df01fa0314b8dab44893fcda1f43cca918ed58de Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Thu, 3 Dec 2020 23:22:56 +0200 Subject: [PATCH 9/9] CAKE-185 | removed isValidAmount() from exchange_view_model.dart and exchange_page.dart; throw exception in the createTrade() (xmrto_exchange_provider.dart) if number of fractional digits of amount more than 8 --- .../xmrto/xmrto_exchange_provider.dart | 24 +++++++++++++++---- lib/src/screens/exchange/exchange_page.dart | 13 +--------- .../exchange/exchange_view_model.dart | 14 ----------- 3 files changed, 20 insertions(+), 31 deletions(-) diff --git a/lib/exchange/xmrto/xmrto_exchange_provider.dart b/lib/exchange/xmrto/xmrto_exchange_provider.dart index c57529823..26adaedef 100644 --- a/lib/exchange/xmrto/xmrto_exchange_provider.dart +++ b/lib/exchange/xmrto/xmrto_exchange_provider.dart @@ -12,6 +12,7 @@ import 'package:cake_wallet/exchange/xmrto/xmrto_trade_request.dart'; import 'package:cake_wallet/exchange/trade_not_created_exeption.dart'; import 'package:cake_wallet/exchange/exchange_provider_description.dart'; import 'package:cake_wallet/exchange/trade_not_found_exeption.dart'; +import 'package:cake_wallet/generated/i18n.dart'; class XMRTOExchangeProvider extends ExchangeProvider { XMRTOExchangeProvider() @@ -90,12 +91,25 @@ class XMRTOExchangeProvider extends ExchangeProvider { Future createTrade({TradeRequest request}) async { final _request = request as XMRTOTradeRequest; final url = originalApiUri + _orderCreateUriSuffix; + final _amount = _request.isBTCRequest + ? _request.receiveAmount + : _request.amount; + + final _amountCurrency = _request.isBTCRequest + ? _request.to.toString() + : _request.from.toString(); + + final pattern = '^([0-9]+([.\,][0-9]{0,8})?|[.\,][0-9]{1,8})\$'; + final isValid = RegExp(pattern).hasMatch(_amount); + + if (!isValid) { + throw TradeNotCreatedException(description, + description: S.current.xmr_to_error_description); + } + final body = { - 'amount': - _request.isBTCRequest ? _request.receiveAmount : _request.amount, - 'amount_currency': _request.isBTCRequest - ? _request.to.toString() - : _request.from.toString(), + 'amount': _amount, + 'amount_currency': _amountCurrency, 'btc_dest_address': _request.address }; final response = await post(url, diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index 84581be08..12b8926b5 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -411,18 +411,7 @@ class ExchangePage extends BasePage { buttonAction: () => Navigator.of(context).pop()); }); } else { - exchangeViewModel.isValidAmount() - ? exchangeViewModel.createTrade() - : showPopUp( - context: context, - builder: (BuildContext context) { - return AlertWithOneAction( - alertTitle: S.of(context).xmr_to_error, - alertContent: S.of(context).xmr_to_error_description, - buttonText: S.of(context).ok, - buttonAction: () => - Navigator.of(context).pop()); - }); + exchangeViewModel.createTrade(); } } }, diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 1ea299600..e533e1e93 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -311,20 +311,6 @@ abstract class ExchangeViewModelBase with Store { void removeTemplate({ExchangeTemplate template}) => _exchangeTemplateStore.remove(template: template); - bool isValidAmount() { - bool isValid = true; - - if (provider is XMRTOExchangeProvider) { - final amount = isReceiveAmountEntered - ? receiveAmount - : depositAmount; - final pattern = '^([0-9]+([.\,][0-9]{0,8})?|[.\,][0-9]{1,8})\$'; - isValid = RegExp(pattern).hasMatch(amount); - } - - return isValid; - } - List providersForCurrentPair() { return _providersForPair(from: depositCurrency, to: receiveCurrency); }