From 008936435b287adbf06bba5114e988eead1707fb Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Fri, 16 Jul 2021 13:28:46 +0300 Subject: [PATCH] CAKE-192 | added name property to parsed_address.dart; fixed parse_address_from_domain.dart --- lib/entities/parse_address_from_domain.dart | 29 +++++++++++++-------- lib/entities/parsed_address.dart | 6 ++++- lib/src/screens/exchange/exchange_page.dart | 4 +-- lib/src/screens/send/send_page.dart | 4 +-- 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index 0c2b864d..3dc12e6c 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -7,34 +7,41 @@ const topLevelDomain = 'crypto'; Future parseAddressFromDomain( String domain, String ticker) async { try { - final domainParts = domain.split('.'); + final formattedName = OpenaliasRecord.formatDomainName(domain); + final domainParts = formattedName.split('.'); final name = domainParts.last; if (domainParts.length <= 1 || domainParts.first.isEmpty || name.isEmpty) { - return ParsedAddress(domain, ParseFrom.notParsed); + return ParsedAddress(address: domain); } if (name.contains(topLevelDomain)) { - final address = await fetchUnstoppableDomainAddress(domain, ticker); + final address = + await fetchUnstoppableDomainAddress(formattedName, ticker); if (address?.isEmpty ?? true) { - return ParsedAddress(domain, ParseFrom.notParsed); + return ParsedAddress(address: domain); } - return ParsedAddress(address, ParseFrom.unstoppableDomains); + return ParsedAddress( + address: address, + name: formattedName, + parseFrom: ParseFrom.unstoppableDomains); } - final record = await OpenaliasRecord.fetchAddressAndName( - OpenaliasRecord.formatDomainName(domain)); + final record = await OpenaliasRecord.fetchAddressAndName(formattedName); - if (record == null || record.address.contains(domain)) { - return ParsedAddress(domain, ParseFrom.notParsed); + if (record == null || record.address.contains(formattedName)) { + return ParsedAddress(address: domain); } - return ParsedAddress(record.address, ParseFrom.openAlias); + return ParsedAddress( + address: record.address, + name: record.name, + parseFrom: ParseFrom.openAlias); } catch (e) { print(e.toString()); } - return ParsedAddress(domain, ParseFrom.notParsed); + return ParsedAddress(address: domain); } \ No newline at end of file diff --git a/lib/entities/parsed_address.dart b/lib/entities/parsed_address.dart index f293d99c..91fec675 100644 --- a/lib/entities/parsed_address.dart +++ b/lib/entities/parsed_address.dart @@ -1,8 +1,12 @@ enum ParseFrom {unstoppableDomains, openAlias, notParsed} class ParsedAddress { - ParsedAddress(this.address, this.parseFrom); + ParsedAddress({ + this.address = '', + this.name = '', + this.parseFrom = ParseFrom.notParsed}); final String address; + final String name; final ParseFrom parseFrom; } \ No newline at end of file diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index 693eade7..286134f1 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -787,13 +787,13 @@ class ExchangePage extends BasePage { showAddressAlert( context, S.of(context).address_detected, - S.of(context).address_from_domain(domain)); + S.of(context).address_from_domain(parsedAddress.name)); break; case ParseFrom.openAlias: showAddressAlert( context, S.of(context).openalias_alert_title, - S.of(context).openalias_alert_content(domain)); + S.of(context).openalias_alert_content(parsedAddress.name)); break; case ParseFrom.notParsed: break; diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 2aa4ebb8..aae86483 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -767,13 +767,13 @@ class SendPage extends BasePage { showAddressAlert( context, S.of(context).address_detected, - S.of(context).address_from_domain(domain)); + S.of(context).address_from_domain(parsedAddress.name)); break; case ParseFrom.openAlias: showAddressAlert( context, S.of(context).openalias_alert_title, - S.of(context).openalias_alert_content(domain)); + S.of(context).openalias_alert_content(parsedAddress.name)); break; case ParseFrom.notParsed: break;