mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-18 05:51:34 +02:00
* feat: Add Binance Smart Chain support to wallet types and EVM chain registry * feat: Add BSC node list and support in wallet type and chain ID mappings * feat: Add BSC default tokens and update evm utility functions * feat: Integrate BSC support in node settings and management * feat: Add BSC support to config scripts and wallet type generation * feat: Add BSC support to EVM chain ID and switcher * feat: Extend BSC support in wallet utilities and chain type checks * feat: Add BSC support to different wallet functions * feat: Add BSCURI class and implement for uri handling * feat: Update Android and iOS configurations to support BSC URL schemes * feat: Add BSC support to different functionalities and settings * refactor: Update wallet type name from'Binance Smart Chain' to BNB Smart Chain * feat: Add switcher icon and updates token utils * Review fixes * More changes to BSC name, wallet listing and images * Add more default tokens
55 lines
1.7 KiB
Dart
55 lines
1.7 KiB
Dart
import 'package:cake_wallet/evm/evm.dart';
|
|
import 'package:cake_wallet/reactions/wallet_connect.dart';
|
|
import 'package:cw_core/utils/proxy_wrapper.dart';
|
|
import 'package:cw_core/utils/print_verbose.dart';
|
|
import 'package:cw_core/wallet_base.dart';
|
|
import 'package:cw_core/wallet_type.dart';
|
|
import 'package:ens_dart/ens_dart.dart';
|
|
import 'package:web3dart/web3dart.dart';
|
|
|
|
class EnsRecord {
|
|
static Future<String> fetchEnsAddress(String name, {WalletBase? wallet}) async {
|
|
Web3Client? _client;
|
|
|
|
if (wallet != null && (isEVMCompatibleChain(wallet.type))) {
|
|
_client = evm!.getWeb3Client(wallet);
|
|
}
|
|
|
|
if (_client == null) {
|
|
late final client = ProxyWrapper().getHttpIOClient();
|
|
|
|
_client = Web3Client("https://ethereum-rpc.publicnode.com", client);
|
|
}
|
|
|
|
try {
|
|
final ens = Ens(client: _client);
|
|
|
|
if (wallet != null) {
|
|
switch (wallet.type) {
|
|
case WalletType.monero:
|
|
return await ens.withName(name).getCoinAddress(CoinType.XMR);
|
|
case WalletType.bitcoin:
|
|
return await ens.withName(name).getCoinAddress(CoinType.BTC);
|
|
case WalletType.litecoin:
|
|
return await ens.withName(name).getCoinAddress(CoinType.LTC);
|
|
case WalletType.haven:
|
|
return await ens.withName(name).getCoinAddress(CoinType.XHV);
|
|
case WalletType.ethereum:
|
|
case WalletType.polygon:
|
|
case WalletType.base:
|
|
case WalletType.arbitrum:
|
|
case WalletType.bsc:
|
|
default:
|
|
return (await ens.withName(name).getAddress()).hex;
|
|
}
|
|
}
|
|
|
|
final addr = await ens.withName(name).getAddress();
|
|
return addr.hex;
|
|
} catch (e) {
|
|
printV(e);
|
|
return "";
|
|
}
|
|
}
|
|
}
|