Fix Twitter profile address parsing for profiles with a domain (#2696)

* feat: parsing addresses+unstoppable domains from twitter profiles * fix: address resolution * fix: parse addresses from bio containing domain and address --------- Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>

malik1004x committed Dec 2, 2025 at 01:01 UTC a3774ae5c09e1dce21591d1547789415282959e0
1 file changed +8 -5
lib/entities/parse_address_from_domain.dart
+8 -5
@@ -1,10 +1,11 @@
1 import 'package:cake_wallet/core/address_validator.dart';
2 import 'package:cake_wallet/core/yat_service.dart';
3 +import 'package:cake_wallet/entities/emoji_string_extension.dart';
4 import 'package:cake_wallet/entities/ens_record.dart';
5 +import 'package:cake_wallet/entities/fio_address_provider.dart';
6 import 'package:cake_wallet/entities/openalias_record.dart';
7 import 'package:cake_wallet/entities/parsed_address.dart';
8 import 'package:cake_wallet/entities/unstoppable_domain_address.dart';
7 -import 'package:cake_wallet/entities/emoji_string_extension.dart';
9 import 'package:cake_wallet/entities/wellknown_record.dart';
10 import 'package:cake_wallet/entities/zano_alias.dart';
11 import 'package:cake_wallet/exchange/provider/thorchain_exchange.provider.dart';
@@ -16,7 +17,6 @@ import 'package:cw_core/crypto_currency.dart';
17 import 'package:cw_core/utils/print_verbose.dart';
18 import 'package:cw_core/wallet_base.dart';
19 import 'package:cw_core/wallet_type.dart';
19 -import 'package:cake_wallet/entities/fio_address_provider.dart';
20 import 'package:flutter/cupertino.dart';
21
22 import 'bip_353_record.dart';
@@ -243,7 +243,8 @@ class AddressResolver {
243 final domain = extractUnstoppableDomain(twitterUser.description);
244 if (domain.isNotEmpty) {
245 final parsedAddressFromDomain = await resolve(context, domain, currency);
246 - if (parsedAddressFromDomain.addresses.isNotEmpty) {
246 + if (parsedAddressFromDomain.addresses.isNotEmpty &&
247 + parsedAddressFromDomain.addresses.first != domain) {
248 return ParsedAddress(
249 addresses: parsedAddressFromDomain.addresses,
250 name: text,
@@ -271,7 +272,8 @@ class AddressResolver {
272 final domain = extractUnstoppableDomain(twitterUser.location);
273 if (domain.isNotEmpty) {
274 final parsedAddressFromDomain = await resolve(context, domain, currency);
274 - if (parsedAddressFromDomain.addresses.isNotEmpty) {
275 + if (parsedAddressFromDomain.addresses.isNotEmpty &&
276 + parsedAddressFromDomain.addresses.first != domain) {
277 return ParsedAddress(
278 addresses: parsedAddressFromDomain.addresses,
279 name: text,
@@ -301,7 +303,8 @@ class AddressResolver {
303 final domain = extractUnstoppableDomain(pinnedTweet);
304 if (domain.isNotEmpty) {
305 final parsedAddressFromDomain = await resolve(context, domain, currency);
304 - if (parsedAddressFromDomain.addresses.isNotEmpty) {
306 + if (parsedAddressFromDomain.addresses.isNotEmpty &&
307 + parsedAddressFromDomain.addresses.first != domain) {
308 return ParsedAddress(
309 addresses: parsedAddressFromDomain.addresses,
310 name: text,