From e42a01fcb49d384de20a92e5e64851f5c540a006 Mon Sep 17 00:00:00 2001 From: Oleksandr Sobol Date: Fri, 10 Jan 2020 13:49:46 +0200 Subject: [PATCH] CWA-155 | added btc validation, that include Bech32 address format --- .gitignore | 2 + lib/generated/i18n.dart | 39 ++++++++++--------- .../address_book/address_book_store.dart | 4 +- lib/src/stores/exchange/exchange_store.dart | 4 +- lib/src/stores/send/send_store.dart | 4 +- .../wallet_restoration_store.dart | 4 +- 6 files changed, 31 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index d591b003a..870145a25 100644 --- a/.gitignore +++ b/.gitignore @@ -88,3 +88,5 @@ android/key.properties **/tool/.secrets-prod.json **/lib/.secrets.g.dart + +**/lib/generated/i18n.dart \ No newline at end of file diff --git a/lib/generated/i18n.dart b/lib/generated/i18n.dart index 69bcf717d..518d897ec 100644 --- a/lib/generated/i18n.dart +++ b/lib/generated/i18n.dart @@ -44,7 +44,6 @@ class S implements WidgetsLocalizations { String get change_language => "Change language"; String get clear => "Clear"; String get confirm => "Confirm"; - String get send_xmr => "Send XMR"; String get confirm_sending => "Confirm sending"; String get contact => "Contact"; String get contact_name => "Contact Name"; @@ -155,6 +154,7 @@ class S implements WidgetsLocalizations { String get send_monero_address => "Monero address"; String get send_payment_id => "Payment ID (optional)"; String get send_title => "Send Monero"; + String get send_xmr => "Send XMR"; String get send_your_wallet => "Your wallet"; String get sending => "Sending"; String get sent => "Sent"; @@ -400,7 +400,6 @@ class $de extends S { String get trade_details_pair => "Paar"; @override String get confirm => "Bestätigen"; - String get send_xmr => "Senden XMR"; @override String get settings_display_balance_as => "Kontostand anzeigen als"; @override @@ -450,6 +449,8 @@ class $de extends S { @override String get xmr_hidden => "XMR versteckt"; @override + String get send_xmr => "Senden XMR"; + @override String get exchange => "Austausch"; @override String get sync_status_failed_connect => "Verbindung zum Knoten fehlgeschlagen"; @@ -937,7 +938,6 @@ class $hi extends S { String get trade_details_pair => "जोड़ा"; @override String get confirm => "की पुष्टि करें"; - String get send_xmr => "संदेश XMR"; @override String get settings_display_balance_as => "के रूप में संतुलन प्रदर्शित करें"; @override @@ -987,6 +987,8 @@ class $hi extends S { @override String get xmr_hidden => "XMR छिपा हुआ"; @override + String get send_xmr => "संदेश XMR"; + @override String get exchange => "अदला बदली"; @override String get sync_status_failed_connect => "फेल हुआ कनेक्ट नोड"; @@ -1474,7 +1476,6 @@ class $ru extends S { String get trade_details_pair => "Пара"; @override String get confirm => "Подтвердить"; - String get send_xmr => "Отправить XMR"; @override String get settings_display_balance_as => "Отображать баланс"; @override @@ -1524,6 +1525,8 @@ class $ru extends S { @override String get xmr_hidden => "XMR Скрытый"; @override + String get send_xmr => "Отправить XMR"; + @override String get exchange => "Обмен"; @override String get sync_status_failed_connect => "ОШИБКА ПОДКЛЮЧЕНИЯ К НОДЕ"; @@ -2012,8 +2015,6 @@ class $ko extends S { @override String get confirm => "확인"; @override - String get send_xmr => "보내다 XMR"; - @override String get settings_display_balance_as => "잔액 표시"; @override String get trade_details_provider => "공급자"; @@ -2062,6 +2063,8 @@ class $ko extends S { @override String get xmr_hidden => "XMR 숨김"; @override + String get send_xmr => "보내다 XMR"; + @override String get exchange => "교환"; @override String get sync_status_failed_connect => "노드에 연결하지 못했습니다"; @@ -2550,8 +2553,6 @@ class $pt extends S { @override String get confirm => "Confirme"; @override - String get send_xmr => "Mandar XMR"; - @override String get settings_display_balance_as => "Exibir saldo como"; @override String get trade_details_provider => "Fornecedor"; @@ -2600,6 +2601,8 @@ class $pt extends S { @override String get xmr_hidden => "XMR Oculto"; @override + String get send_xmr => "Mandar XMR"; + @override String get exchange => "Troca"; @override String get sync_status_failed_connect => "Falha na conexão com o nó"; @@ -3088,8 +3091,6 @@ class $ja extends S { @override String get confirm => "確認する"; @override - String get send_xmr => "送る XMR"; - @override String get settings_display_balance_as => "残高を表示"; @override String get trade_details_provider => "プロバイダー"; @@ -3138,6 +3139,8 @@ class $ja extends S { @override String get xmr_hidden => "XMR非表示"; @override + String get send_xmr => "送る XMR"; + @override String get exchange => "交換する"; @override String get sync_status_failed_connect => "ノードへの接続に失敗しました"; @@ -3630,8 +3633,6 @@ class $pl extends S { @override String get confirm => "Potwierdzać"; @override - String get send_xmr => "Wysłać XMR"; - @override String get settings_display_balance_as => "Wyświetl saldo jako"; @override String get trade_details_provider => "Dostawca"; @@ -3680,6 +3681,8 @@ class $pl extends S { @override String get xmr_hidden => "XMR Ukryty"; @override + String get send_xmr => "Wysłać XMR"; + @override String get exchange => "Wymieniać się"; @override String get sync_status_failed_connect => "NIE MOŻNA PODŁĄCZYĆ DO WĘZŁA"; @@ -4168,8 +4171,6 @@ class $es extends S { @override String get confirm => "Confirmar"; @override - String get send_xmr => "Enviar XMR"; - @override String get settings_display_balance_as => "Mostrar saldo como"; @override String get trade_details_provider => "Proveedor"; @@ -4218,6 +4219,8 @@ class $es extends S { @override String get xmr_hidden => "XMR Oculto"; @override + String get send_xmr => "Enviar XMR"; + @override String get exchange => "Intercambiar"; @override String get sync_status_failed_connect => "CONEXIÓN FALLIDA AL NODO"; @@ -4706,8 +4709,6 @@ class $nl extends S { @override String get confirm => "Bevestigen"; @override - String get send_xmr => "Sturen XMR"; - @override String get settings_display_balance_as => "Toon saldo als"; @override String get trade_details_provider => "Leverancier"; @@ -4756,6 +4757,8 @@ class $nl extends S { @override String get xmr_hidden => "XMR Verborgen"; @override + String get send_xmr => "Sturen XMR"; + @override String get exchange => "Uitwisseling"; @override String get sync_status_failed_connect => "MISLUKT VERBINDING MET DE NODE"; @@ -5244,8 +5247,6 @@ class $zh extends S { @override String get confirm => "确认"; @override - String get send_xmr => "发送 XMR"; - @override String get settings_display_balance_as => "将余额显示为"; @override String get trade_details_provider => "提供者"; @@ -5294,6 +5295,8 @@ class $zh extends S { @override String get xmr_hidden => "XMR Hidden"; @override + String get send_xmr => "发送 XMR"; + @override String get exchange => "交换"; @override String get sync_status_failed_connect => "无法连接到节点"; diff --git a/lib/src/stores/address_book/address_book_store.dart b/lib/src/stores/address_book/address_book_store.dart index 324b60a2c..8cb1b9ca6 100644 --- a/lib/src/stores/address_book/address_book_store.dart +++ b/lib/src/stores/address_book/address_book_store.dart @@ -45,7 +45,7 @@ abstract class AddressBookStoreBase with Store { } void validateAddress(String value, {CryptoCurrency cryptoCurrency}) { - // XMR (95), BTC (34), ETH (42), LTC (34), BCH (42), DASH (34) + // XMR (95), BTC (34, 42), ETH (42), LTC (34), BCH (42), DASH (34) const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$'; final regExp = RegExp(pattern); isValid = regExp.hasMatch(value); @@ -56,7 +56,7 @@ abstract class AddressBookStoreBase with Store { isValid = (value.length == 95); break; case 'BTC': - isValid = (value.length == 34); + isValid = (value.length == 34)||(value.length == 42); break; case 'ETH': isValid = (value.length == 42); diff --git a/lib/src/stores/exchange/exchange_store.dart b/lib/src/stores/exchange/exchange_store.dart index dad09bcd6..5f625fbb9 100644 --- a/lib/src/stores/exchange/exchange_store.dart +++ b/lib/src/stores/exchange/exchange_store.dart @@ -226,7 +226,7 @@ abstract class ExchangeStoreBase with Store { } void validateAddress(String value, {CryptoCurrency cryptoCurrency}) { - // XMR (95), BTC (34), ETH (42), LTC (34), BCH (42), DASH (34) + // XMR (95), BTC (34, 42), ETH (42), LTC (34), BCH (42), DASH (34) const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$'; final regExp = RegExp(pattern); isValid = regExp.hasMatch(value); @@ -237,7 +237,7 @@ abstract class ExchangeStoreBase with Store { isValid = (value.length == 95); break; case 'BTC': - isValid = (value.length == 34); + isValid = (value.length == 34)||(value.length == 42); break; case 'ETH': isValid = (value.length == 42); diff --git a/lib/src/stores/send/send_store.dart b/lib/src/stores/send/send_store.dart index 130efa8c4..f5d3229ba 100644 --- a/lib/src/stores/send/send_store.dart +++ b/lib/src/stores/send/send_store.dart @@ -159,7 +159,7 @@ abstract class SendStoreBase with Store { } void validateAddress(String value, {CryptoCurrency cryptoCurrency}) { - // XMR (95), BTC (34), ETH (42), LTC (34), BCH (42), DASH (34) + // XMR (95), BTC (34, 42), ETH (42), LTC (34), BCH (42), DASH (34) const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$'; final regExp = RegExp(pattern); isValid = value == null ? false : regExp.hasMatch(value); @@ -170,7 +170,7 @@ abstract class SendStoreBase with Store { isValid = (value.length == 95); break; case 'BTC': - isValid = (value.length == 34); + isValid = (value.length == 34)||(value.length == 42); break; case 'ETH': isValid = (value.length == 42); diff --git a/lib/src/stores/wallet_restoration/wallet_restoration_store.dart b/lib/src/stores/wallet_restoration/wallet_restoration_store.dart index 968e14b85..20b382982 100644 --- a/lib/src/stores/wallet_restoration/wallet_restoration_store.dart +++ b/lib/src/stores/wallet_restoration/wallet_restoration_store.dart @@ -117,7 +117,7 @@ abstract class WalleRestorationStoreBase with Store { } void validateAddress(String value, {CryptoCurrency cryptoCurrency}) { - // XMR (95), BTC (34), ETH (42), LTC (34), BCH (42), DASH (34) + // XMR (95), BTC (34, 42), ETH (42), LTC (34), BCH (42), DASH (34) const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$'; final regExp = RegExp(pattern); isValid = regExp.hasMatch(value); @@ -128,7 +128,7 @@ abstract class WalleRestorationStoreBase with Store { isValid = (value.length == 95); break; case 'BTC': - isValid = (value.length == 34); + isValid = (value.length == 34)||(value.length == 42); break; case 'ETH': isValid = (value.length == 42);