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,