Cw 126 check validation for new currencies (#501)

* update address validation xmr, ape, avaxc, eth, usdc, hbar, sc, sol, usdcsoul, usdttrc20, btt, bttsc, doge,firo, xvg, zen, tzec, zzec * fix formating

Serhii committed Sep 7, 2022 at 15:53 UTC f6a2b3c74b819e891aefaa62659629a5fa579c9d
2 files changed +48 -4
lib/core/address_validator.dart
+47 -3
@@ -13,10 +13,14 @@ class AddressValidator extends TextValidator {
13 static String getPattern(CryptoCurrency type) {
14 switch (type) {
15 case CryptoCurrency.xmr:
16 - return '[0-9a-zA-Z]';
16 + return '^4[0-9a-zA-Z]{94}\$|^8[0-9a-zA-Z]{94}\$|^[0-9a-zA-Z]{106}\$';
17 case CryptoCurrency.ada:
18 return '^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{104}\$'
19 '|^[0-9a-zA-Z]{105}\$|^addr1[0-9a-zA-Z]{98}\$';
20 + case CryptoCurrency.ape:
21 + return '0x[0-9a-zA-Z]';
22 + case CryptoCurrency.avaxc:
23 + return '0x[0-9a-zA-Z]';
24 case CryptoCurrency.bch:
25 return '[0-9a-zA-Z]';
26 case CryptoCurrency.bnb:
@@ -31,13 +35,15 @@ class AddressValidator extends TextValidator {
35 case CryptoCurrency.eos:
36 return '[0-9a-zA-Z]';
37 case CryptoCurrency.eth:
34 - return '[0-9a-zA-Z]';
38 + return '0x[0-9a-zA-Z]';
39 case CryptoCurrency.ltc:
40 return '[0-9a-zA-Z]';
41 case CryptoCurrency.nano:
42 return '[0-9a-zA-Z_]';
43 case CryptoCurrency.trx:
44 return '[0-9a-zA-Z]';
45 + case CryptoCurrency.usdc:
46 + return '0x[0-9a-zA-Z]';
47 case CryptoCurrency.usdt:
48 return '[0-9a-zA-Z]';
49 case CryptoCurrency.usdterc20:
@@ -62,6 +68,12 @@ class AddressValidator extends TextValidator {
68 case CryptoCurrency.xnzd:
69 case CryptoCurrency.xusd:
70 return '[0-9a-zA-Z]';
71 + case CryptoCurrency.hbar:
72 + return '[0-9a-zA-Z.]';
73 + case CryptoCurrency.zaddr:
74 + return '^zs[0-9a-zA-Z]{75}\&|^zc[0-9a-zA-Z]{93}\$';
75 + case CryptoCurrency.zec:
76 + return '^t1[0-9a-zA-Z]{33}\$|^t3[0-9a-zA-Z]{33}\$';
77 default:
78 return '[0-9a-zA-Z]';
79 }
@@ -70,9 +82,13 @@ class AddressValidator extends TextValidator {
82 static List<int> getLength(CryptoCurrency type) {
83 switch (type) {
84 case CryptoCurrency.xmr:
73 - return [95, 106];
85 + return null;
86 case CryptoCurrency.ada:
87 return null;
88 + case CryptoCurrency.ape:
89 + return [42];
90 + case CryptoCurrency.avaxc:
91 + return [42];
92 case CryptoCurrency.bch:
93 return [42];
94 case CryptoCurrency.bnb:
@@ -91,12 +107,22 @@ class AddressValidator extends TextValidator {
107 return [34, 43];
108 case CryptoCurrency.nano:
109 return [64, 65];
110 + case CryptoCurrency.sc:
111 + return [76];
112 + case CryptoCurrency.sol:
113 + return [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44];
114 case CryptoCurrency.trx:
115 return [34];
116 + case CryptoCurrency.usdc:
117 + return [42];
118 + case CryptoCurrency.usdcsol:
119 + return [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44];
120 case CryptoCurrency.usdt:
121 return [34];
122 case CryptoCurrency.usdterc20:
123 return [42];
124 + case CryptoCurrency.usdttrc20:
125 + return [34];
126 case CryptoCurrency.xlm:
127 return [56];
128 case CryptoCurrency.xrp:
@@ -116,6 +142,24 @@ class AddressValidator extends TextValidator {
142 case CryptoCurrency.xnzd:
143 case CryptoCurrency.xusd:
144 return [98, 99, 106];
145 + case CryptoCurrency.btt:
146 + return [34];
147 + case CryptoCurrency.bttbsc:
148 + return [34];
149 + case CryptoCurrency.doge:
150 + return [34];
151 + case CryptoCurrency.firo:
152 + return [34];
153 + case CryptoCurrency.hbar:
154 + return [4, 5, 6, 7, 8, 9, 10, 11];
155 + case CryptoCurrency.xvg:
156 + return [34];
157 + case CryptoCurrency.zen:
158 + return [35];
159 + case CryptoCurrency.zaddr:
160 + return null;
161 + case CryptoCurrency.zec:
162 + return null;
163 default:
164 return [];
165 }
lib/src/screens/exchange/widgets/currency_picker_item_widget.dart
+1 -1
@@ -22,7 +22,7 @@ class PickerItemWidget extends StatelessWidget {
22 children: [
23 Container(
24 child: Image.asset(
25 - iconPath,
25 + iconPath ?? '',
26 height: 20.0,
27 width: 20.0,
28 ),