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;