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
),