update logic for Crypto address resolving

update resolving of crypto wallet addresses by using of OpenAlias in way to pick right wallet address based on current wallet type
This commit is contained in:
Godwin Asuquo 2022-01-14 14:18:03 +01:00
parent 1a0d33ee31
commit ac8ef0c946
2 changed files with 42 additions and 31 deletions

View file

@ -2,18 +2,20 @@ import 'package:cake_wallet/entities/openalias_record.dart';
import 'package:cake_wallet/entities/parsed_address.dart';
import 'package:cake_wallet/entities/unstoppable_domain_address.dart';
import 'package:cake_wallet/store/yat/yat_store.dart';
import 'package:cw_core/wallet_type.dart';
const unstoppableDomains = [
'crypto',
'zil',
'x',
'coin',
'wallet',
'bitcoin',
'888',
'nft',
'dao',
'blockchain'];
'crypto',
'zil',
'x',
'coin',
'wallet',
'bitcoin',
'888',
'nft',
'dao',
'blockchain'
];
Future<ParsedAddress> parseAddressFromDomain(
String domain, String ticker) async {
@ -28,22 +30,18 @@ Future<ParsedAddress> parseAddressFromDomain(
if (addresses?.isEmpty ?? true) {
return ParsedAddress(
addresses: [domain],
parseFrom: ParseFrom.yatRecord);
addresses: [domain], parseFrom: ParseFrom.yatRecord);
}
return ParsedAddress(
addresses: addresses,
name: domain,
parseFrom: ParseFrom.yatRecord);
addresses: addresses, name: domain, parseFrom: ParseFrom.yatRecord);
} catch (e) {
return ParsedAddress(addresses: [domain]);
}
}
if (unstoppableDomains.any((domain) => name.contains(domain))) {
final address =
await fetchUnstoppableDomainAddress(domain, ticker);
final address = await fetchUnstoppableDomainAddress(domain, ticker);
if (address?.isEmpty ?? true) {
return ParsedAddress(addresses: [domain]);
@ -55,7 +53,8 @@ Future<ParsedAddress> parseAddressFromDomain(
parseFrom: ParseFrom.unstoppableDomains);
}
final record = await OpenaliasRecord.fetchAddressAndName(formattedName);
final record = await OpenaliasRecord.fetchAddressAndName(
formattedName: formattedName, ticker: ticker);
if (record == null || record.address.contains(formattedName)) {
return ParsedAddress(addresses: [domain]);
@ -70,4 +69,4 @@ Future<ParsedAddress> parseAddressFromDomain(
}
return ParsedAddress(addresses: [domain]);
}
}