ens review fixes

This commit is contained in:
fosse
2023-09-25 09:47:39 -04:00
parent b5852509f3
commit 8b2b3bda16
8 changed files with 52 additions and 20 deletions
+30
View File
@@ -0,0 +1,30 @@
import 'package:cake_wallet/ethereum/ethereum.dart';
import 'package:cw_core/wallet_base.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:ens_dart/ens_dart.dart';
import 'package:http/http.dart';
import 'package:web3dart/web3dart.dart';
class EnsRecord {
static Future<String> fetchEnsAddress(String name, {WalletBase? wallet}) async {
Web3Client? _client;
if (wallet != null && wallet.type == WalletType.ethereum) {
_client = ethereum!.getWeb3Client(wallet) as Web3Client?;
}
if (_client == null) {
_client = Web3Client("ethereum.publicnode.com", Client());
}
try {
final ens = Ens(client: _client);
final addr = await ens.withName(name).getAddress();
return addr.hex;
} catch (e) {
print(e);
return "";
}
}
}
+10 -10
View File
@@ -1,6 +1,7 @@
import 'package:cake_wallet/core/address_validator.dart';
import 'package:cake_wallet/core/yat_service.dart';
import 'package:cake_wallet/di.dart';
import 'package:cake_wallet/entities/ens_record.dart';
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';
@@ -66,7 +67,7 @@ class AddressResolver {
});
final userTweetsText = subString.toString();
final addressFromPinnedTweet =
extractAddressByType(raw: userTweetsText, type: CryptoCurrency.fromString(ticker));
extractAddressByType(raw: userTweetsText, type: CryptoCurrency.fromString(ticker));
if (addressFromPinnedTweet != null) {
return ParsedAddress.fetchTwitterAddress(address: addressFromPinnedTweet, name: text);
@@ -99,6 +100,14 @@ class AddressResolver {
return ParsedAddress.fetchUnstoppableDomainAddress(address: address, name: text);
}
if (text.contains(".")) {
var wallet = getIt.get<AppStore>().wallet!;
final address = await EnsRecord.fetchEnsAddress(text, wallet: wallet);
if (address.isNotEmpty) {
return ParsedAddress.fetchEnsAddress(name: text, address: address);
}
}
if (formattedName.contains(".")) {
final txtRecord = await OpenaliasRecord.lookupOpenAliasRecord(formattedName);
if (txtRecord != null) {
@@ -107,15 +116,6 @@ class AddressResolver {
return ParsedAddress.fetchOpenAliasAddress(record: record, name: text);
}
}
if (text.contains(".")) {
var wallet = getIt.get<AppStore>().wallet!;
if (wallet.type == WalletType.ethereum) {
final address = await ethereum!.fetchEnsAddress(wallet, text);
if (address.isNotEmpty) {
return ParsedAddress.fetchEnsAddress(name: text, address: address);
}
}
}
} catch (e) {
print(e.toString());
}
+2 -2
View File
@@ -133,7 +133,7 @@ class CWEthereum extends Ethereum {
}
@override
Future<String> fetchEnsAddress(WalletBase wallet, String name) async {
return (wallet as EthereumWallet).fetchEnsAddress(name);
dynamic getWeb3Client(WalletBase wallet) async {
return (wallet as EthereumWallet).getWeb3Client();
}
}