CAKE-192 | added name property to parsed_address.dart; fixed parse_address_from_domain.dart
OleksandrSobol committed
Jul 16, 2021 at 13:28 UTC
008936435b287adbf06bba5114e988eead1707fb
4 files changed
+27
-16
lib/entities/parse_address_from_domain.dart
+18
-11
@@ -7,34 +7,41 @@ const topLevelDomain = 'crypto';
7
Future<ParsedAddress> parseAddressFromDomain(
8
String domain, String ticker) async {
9
try {
10
- final domainParts = domain.split('.');
10
+ final formattedName = OpenaliasRecord.formatDomainName(domain);
11
+ final domainParts = formattedName.split('.');
12
final name = domainParts.last;
13
14
if (domainParts.length <= 1 || domainParts.first.isEmpty || name.isEmpty) {
14
- return ParsedAddress(domain, ParseFrom.notParsed);
15
+ return ParsedAddress(address: domain);
16
}
17
18
if (name.contains(topLevelDomain)) {
18
- final address = await fetchUnstoppableDomainAddress(domain, ticker);
19
+ final address =
20
+ await fetchUnstoppableDomainAddress(formattedName, ticker);
21
22
if (address?.isEmpty ?? true) {
21
- return ParsedAddress(domain, ParseFrom.notParsed);
23
+ return ParsedAddress(address: domain);
24
}
25
24
- return ParsedAddress(address, ParseFrom.unstoppableDomains);
26
+ return ParsedAddress(
27
+ address: address,
28
+ name: formattedName,
29
+ parseFrom: ParseFrom.unstoppableDomains);
30
}
31
27
- final record = await OpenaliasRecord.fetchAddressAndName(
28
- OpenaliasRecord.formatDomainName(domain));
32
+ final record = await OpenaliasRecord.fetchAddressAndName(formattedName);
33
30
- if (record == null || record.address.contains(domain)) {
31
- return ParsedAddress(domain, ParseFrom.notParsed);
34
+ if (record == null || record.address.contains(formattedName)) {
35
+ return ParsedAddress(address: domain);
36
}
37
34
- return ParsedAddress(record.address, ParseFrom.openAlias);
38
+ return ParsedAddress(
39
+ address: record.address,
40
+ name: record.name,
41
+ parseFrom: ParseFrom.openAlias);
42
} catch (e) {
43
print(e.toString());
44
}
45
39
- return ParsedAddress(domain, ParseFrom.notParsed);
46
+ return ParsedAddress(address: domain);
47
}
\ No newline at end of file
lib/entities/parsed_address.dart
+5
-1
@@ -1,8 +1,12 @@
1
enum ParseFrom {unstoppableDomains, openAlias, notParsed}
2
3
class ParsedAddress {
4
- ParsedAddress(this.address, this.parseFrom);
4
+ ParsedAddress({
5
+ this.address = '',
6
+ this.name = '',
7
+ this.parseFrom = ParseFrom.notParsed});
8
9
final String address;
10
+ final String name;
11
final ParseFrom parseFrom;
12
}
\ No newline at end of file
lib/src/screens/exchange/exchange_page.dart
+2
-2
@@ -787,13 +787,13 @@ class ExchangePage extends BasePage {
787
showAddressAlert(
788
context,
789
S.of(context).address_detected,
790
- S.of(context).address_from_domain(domain));
790
+ S.of(context).address_from_domain(parsedAddress.name));
791
break;
792
case ParseFrom.openAlias:
793
showAddressAlert(
794
context,
795
S.of(context).openalias_alert_title,
796
- S.of(context).openalias_alert_content(domain));
796
+ S.of(context).openalias_alert_content(parsedAddress.name));
797
break;
798
case ParseFrom.notParsed:
799
break;
lib/src/screens/send/send_page.dart
+2
-2
@@ -767,13 +767,13 @@ class SendPage extends BasePage {
767
showAddressAlert(
768
context,
769
S.of(context).address_detected,
770
- S.of(context).address_from_domain(domain));
770
+ S.of(context).address_from_domain(parsedAddress.name));
771
break;
772
case ParseFrom.openAlias:
773
showAddressAlert(
774
context,
775
S.of(context).openalias_alert_title,
776
- S.of(context).openalias_alert_content(domain));
776
+ S.of(context).openalias_alert_content(parsedAddress.name));
777
break;
778
case ParseFrom.notParsed:
779
break;