CWA-155 | added btc validation, that include Bech32 address format

Oleksandr Sobol committed Jan 10, 2020 at 13:49 UTC e42a01fcb49d384de20a92e5e64851f5c540a006
6 files changed +31 -26
.gitignore
+2
@@ -88,3 +88,5 @@ android/key.properties
88
89 **/tool/.secrets-prod.json
90 **/lib/.secrets.g.dart
91 +
92 +**/lib/generated/i18n.dart
\ No newline at end of file
lib/generated/i18n.dart
+21 -18
@@ -44,7 +44,6 @@ class S implements WidgetsLocalizations {
44 String get change_language => "Change language";
45 String get clear => "Clear";
46 String get confirm => "Confirm";
47 - String get send_xmr => "Send XMR";
47 String get confirm_sending => "Confirm sending";
48 String get contact => "Contact";
49 String get contact_name => "Contact Name";
@@ -155,6 +154,7 @@ class S implements WidgetsLocalizations {
154 String get send_monero_address => "Monero address";
155 String get send_payment_id => "Payment ID (optional)";
156 String get send_title => "Send Monero";
157 + String get send_xmr => "Send XMR";
158 String get send_your_wallet => "Your wallet";
159 String get sending => "Sending";
160 String get sent => "Sent";
@@ -400,7 +400,6 @@ class $de extends S {
400 String get trade_details_pair => "Paar";
401 @override
402 String get confirm => "Bestätigen";
403 - String get send_xmr => "Senden XMR";
403 @override
404 String get settings_display_balance_as => "Kontostand anzeigen als";
405 @override
@@ -450,6 +449,8 @@ class $de extends S {
449 @override
450 String get xmr_hidden => "XMR versteckt";
451 @override
452 + String get send_xmr => "Senden XMR";
453 + @override
454 String get exchange => "Austausch";
455 @override
456 String get sync_status_failed_connect => "Verbindung zum Knoten fehlgeschlagen";
@@ -937,7 +938,6 @@ class $hi extends S {
938 String get trade_details_pair => "जोड़ा";
939 @override
940 String get confirm => "की पुष्टि करें";
940 - String get send_xmr => "संदेश XMR";
941 @override
942 String get settings_display_balance_as => "के रूप में संतुलन प्रदर्शित करें";
943 @override
@@ -987,6 +987,8 @@ class $hi extends S {
987 @override
988 String get xmr_hidden => "XMR छिपा हुआ";
989 @override
990 + String get send_xmr => "संदेश XMR";
991 + @override
992 String get exchange => "अदला बदली";
993 @override
994 String get sync_status_failed_connect => "फेल हुआ कनेक्ट नोड";
@@ -1474,7 +1476,6 @@ class $ru extends S {
1476 String get trade_details_pair => "Пара";
1477 @override
1478 String get confirm => "Подтвердить";
1477 - String get send_xmr => "Отправить XMR";
1479 @override
1480 String get settings_display_balance_as => "Отображать баланс";
1481 @override
@@ -1524,6 +1525,8 @@ class $ru extends S {
1525 @override
1526 String get xmr_hidden => "XMR Скрытый";
1527 @override
1528 + String get send_xmr => "Отправить XMR";
1529 + @override
1530 String get exchange => "Обмен";
1531 @override
1532 String get sync_status_failed_connect => "ОШИБКА ПОДКЛЮЧЕНИЯ К НОДЕ";
@@ -2012,8 +2015,6 @@ class $ko extends S {
2015 @override
2016 String get confirm => "확인";
2017 @override
2015 - String get send_xmr => "보내다 XMR";
2016 - @override
2018 String get settings_display_balance_as => "잔액 표시";
2019 @override
2020 String get trade_details_provider => "공급자";
@@ -2062,6 +2063,8 @@ class $ko extends S {
2063 @override
2064 String get xmr_hidden => "XMR 숨김";
2065 @override
2066 + String get send_xmr => "보내다 XMR";
2067 + @override
2068 String get exchange => "교환";
2069 @override
2070 String get sync_status_failed_connect => "노드에 연결하지 못했습니다";
@@ -2550,8 +2553,6 @@ class $pt extends S {
2553 @override
2554 String get confirm => "Confirme";
2555 @override
2553 - String get send_xmr => "Mandar XMR";
2554 - @override
2556 String get settings_display_balance_as => "Exibir saldo como";
2557 @override
2558 String get trade_details_provider => "Fornecedor";
@@ -2600,6 +2601,8 @@ class $pt extends S {
2601 @override
2602 String get xmr_hidden => "XMR Oculto";
2603 @override
2604 + String get send_xmr => "Mandar XMR";
2605 + @override
2606 String get exchange => "Troca";
2607 @override
2608 String get sync_status_failed_connect => "Falha na conexão com o nó";
@@ -3088,8 +3091,6 @@ class $ja extends S {
3091 @override
3092 String get confirm => "確認する";
3093 @override
3091 - String get send_xmr => "送る XMR";
3092 - @override
3094 String get settings_display_balance_as => "残高を表示";
3095 @override
3096 String get trade_details_provider => "プロバイダー";
@@ -3138,6 +3139,8 @@ class $ja extends S {
3139 @override
3140 String get xmr_hidden => "XMR非表示";
3141 @override
3142 + String get send_xmr => "送る XMR";
3143 + @override
3144 String get exchange => "交換する";
3145 @override
3146 String get sync_status_failed_connect => "ノードへの接続に失敗しました";
@@ -3630,8 +3633,6 @@ class $pl extends S {
3633 @override
3634 String get confirm => "Potwierdzać";
3635 @override
3633 - String get send_xmr => "Wysłać XMR";
3634 - @override
3636 String get settings_display_balance_as => "Wyświetl saldo jako";
3637 @override
3638 String get trade_details_provider => "Dostawca";
@@ -3680,6 +3681,8 @@ class $pl extends S {
3681 @override
3682 String get xmr_hidden => "XMR Ukryty";
3683 @override
3684 + String get send_xmr => "Wysłać XMR";
3685 + @override
3686 String get exchange => "Wymieniać się";
3687 @override
3688 String get sync_status_failed_connect => "NIE MOŻNA PODŁĄCZYĆ DO WĘZŁA";
@@ -4168,8 +4171,6 @@ class $es extends S {
4171 @override
4172 String get confirm => "Confirmar";
4173 @override
4171 - String get send_xmr => "Enviar XMR";
4172 - @override
4174 String get settings_display_balance_as => "Mostrar saldo como";
4175 @override
4176 String get trade_details_provider => "Proveedor";
@@ -4218,6 +4219,8 @@ class $es extends S {
4219 @override
4220 String get xmr_hidden => "XMR Oculto";
4221 @override
4222 + String get send_xmr => "Enviar XMR";
4223 + @override
4224 String get exchange => "Intercambiar";
4225 @override
4226 String get sync_status_failed_connect => "CONEXIÓN FALLIDA AL NODO";
@@ -4706,8 +4709,6 @@ class $nl extends S {
4709 @override
4710 String get confirm => "Bevestigen";
4711 @override
4709 - String get send_xmr => "Sturen XMR";
4710 - @override
4712 String get settings_display_balance_as => "Toon saldo als";
4713 @override
4714 String get trade_details_provider => "Leverancier";
@@ -4756,6 +4757,8 @@ class $nl extends S {
4757 @override
4758 String get xmr_hidden => "XMR Verborgen";
4759 @override
4760 + String get send_xmr => "Sturen XMR";
4761 + @override
4762 String get exchange => "Uitwisseling";
4763 @override
4764 String get sync_status_failed_connect => "MISLUKT VERBINDING MET DE NODE";
@@ -5244,8 +5247,6 @@ class $zh extends S {
5247 @override
5248 String get confirm => "确认";
5249 @override
5247 - String get send_xmr => "发送 XMR";
5248 - @override
5250 String get settings_display_balance_as => "将余额显示为";
5251 @override
5252 String get trade_details_provider => "提供者";
@@ -5294,6 +5295,8 @@ class $zh extends S {
5295 @override
5296 String get xmr_hidden => "XMR Hidden";
5297 @override
5298 + String get send_xmr => "发送 XMR";
5299 + @override
5300 String get exchange => "交换";
5301 @override
5302 String get sync_status_failed_connect => "无法连接到节点";
lib/src/stores/address_book/address_book_store.dart
+2 -2
@@ -45,7 +45,7 @@ abstract class AddressBookStoreBase with Store {
45 }
46
47 void validateAddress(String value, {CryptoCurrency cryptoCurrency}) {
48 - // XMR (95), BTC (34), ETH (42), LTC (34), BCH (42), DASH (34)
48 + // XMR (95), BTC (34, 42), ETH (42), LTC (34), BCH (42), DASH (34)
49 const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$';
50 final regExp = RegExp(pattern);
51 isValid = regExp.hasMatch(value);
@@ -56,7 +56,7 @@ abstract class AddressBookStoreBase with Store {
56 isValid = (value.length == 95);
57 break;
58 case 'BTC':
59 - isValid = (value.length == 34);
59 + isValid = (value.length == 34)||(value.length == 42);
60 break;
61 case 'ETH':
62 isValid = (value.length == 42);
lib/src/stores/exchange/exchange_store.dart
+2 -2
@@ -226,7 +226,7 @@ abstract class ExchangeStoreBase with Store {
226 }
227
228 void validateAddress(String value, {CryptoCurrency cryptoCurrency}) {
229 - // XMR (95), BTC (34), ETH (42), LTC (34), BCH (42), DASH (34)
229 + // XMR (95), BTC (34, 42), ETH (42), LTC (34), BCH (42), DASH (34)
230 const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$';
231 final regExp = RegExp(pattern);
232 isValid = regExp.hasMatch(value);
@@ -237,7 +237,7 @@ abstract class ExchangeStoreBase with Store {
237 isValid = (value.length == 95);
238 break;
239 case 'BTC':
240 - isValid = (value.length == 34);
240 + isValid = (value.length == 34)||(value.length == 42);
241 break;
242 case 'ETH':
243 isValid = (value.length == 42);
lib/src/stores/send/send_store.dart
+2 -2
@@ -159,7 +159,7 @@ abstract class SendStoreBase with Store {
159 }
160
161 void validateAddress(String value, {CryptoCurrency cryptoCurrency}) {
162 - // XMR (95), BTC (34), ETH (42), LTC (34), BCH (42), DASH (34)
162 + // XMR (95), BTC (34, 42), ETH (42), LTC (34), BCH (42), DASH (34)
163 const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$';
164 final regExp = RegExp(pattern);
165 isValid = value == null ? false : regExp.hasMatch(value);
@@ -170,7 +170,7 @@ abstract class SendStoreBase with Store {
170 isValid = (value.length == 95);
171 break;
172 case 'BTC':
173 - isValid = (value.length == 34);
173 + isValid = (value.length == 34)||(value.length == 42);
174 break;
175 case 'ETH':
176 isValid = (value.length == 42);
lib/src/stores/wallet_restoration/wallet_restoration_store.dart
+2 -2
@@ -117,7 +117,7 @@ abstract class WalleRestorationStoreBase with Store {
117 }
118
119 void validateAddress(String value, {CryptoCurrency cryptoCurrency}) {
120 - // XMR (95), BTC (34), ETH (42), LTC (34), BCH (42), DASH (34)
120 + // XMR (95), BTC (34, 42), ETH (42), LTC (34), BCH (42), DASH (34)
121 const pattern = '^[0-9a-zA-Z]{95}\$|^[0-9a-zA-Z]{34}\$|^[0-9a-zA-Z]{42}\$';
122 final regExp = RegExp(pattern);
123 isValid = regExp.hasMatch(value);
@@ -128,7 +128,7 @@ abstract class WalleRestorationStoreBase with Store {
128 isValid = (value.length == 95);
129 break;
130 case 'BTC':
131 - isValid = (value.length == 34);
131 + isValid = (value.length == 34)||(value.length == 42);
132 break;
133 case 'ETH':
134 isValid = (value.length == 42);