mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-11-11 08:44:02 +01:00
CW-1368: Add Binance Smart Chain (#2836)
* 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
This commit is contained in:
+22
-37
@@ -1,26 +1,19 @@
|
||||
import 'package:cake_wallet/reactions/wallet_connect.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
|
||||
String getQrImage(WalletType type, {int? selectedChainId}) {
|
||||
if (isEVMCompatibleChain(type) && selectedChainId != null) {
|
||||
switch (selectedChainId) {
|
||||
case 1:
|
||||
return 'assets/images/eth_chain_qr.svg';
|
||||
case 137:
|
||||
return 'assets/images/pol_chain_qr.svg';
|
||||
case 8453:
|
||||
return 'assets/images/base_chain_QR.svg';
|
||||
case 42161:
|
||||
return 'assets/images/arbitrum_chain_QR.svg';
|
||||
default:
|
||||
return 'assets/images/eth_chain_qr.svg';
|
||||
}
|
||||
}
|
||||
String getQrImage(WalletType type) {
|
||||
switch (type) {
|
||||
case WalletType.solana:
|
||||
return 'assets/images/sol_chain_qr.svg';
|
||||
case WalletType.ethereum:
|
||||
return 'assets/images/eth_chain_qr.svg';
|
||||
case WalletType.polygon:
|
||||
return 'assets/images/pol_chain_qr.svg';
|
||||
case WalletType.base:
|
||||
return 'assets/images/base_chain_QR.svg';
|
||||
case WalletType.arbitrum:
|
||||
return 'assets/images/arbitrum_chain_QR.svg';
|
||||
case WalletType.bsc:
|
||||
return 'assets/images/bnb_chain_QR.svg';
|
||||
case WalletType.solana:
|
||||
return 'assets/images/sol_chain_qr.svg';
|
||||
case WalletType.tron:
|
||||
return 'assets/images/trx_chain_qr.svg';
|
||||
case WalletType.zano:
|
||||
@@ -46,32 +39,24 @@ String getQrImage(WalletType type, {int? selectedChainId}) {
|
||||
case WalletType.banano:
|
||||
case WalletType.haven:
|
||||
case WalletType.none:
|
||||
default:
|
||||
return 'assets/images/qr-cake.png';
|
||||
}
|
||||
}
|
||||
|
||||
String getChainMonoImage(WalletType type, {int? selectedChainId}) {
|
||||
if (isEVMCompatibleChain(type) && selectedChainId != null) {
|
||||
switch (selectedChainId) {
|
||||
case 1:
|
||||
return 'assets/images/eth_chain_mono.svg';
|
||||
case 137:
|
||||
return 'assets/images/pol_chain_mono.svg';
|
||||
case 8453:
|
||||
return 'assets/images/base_chain_mono.svg';
|
||||
case 42161:
|
||||
return 'assets/images/arbitrum_chain_mono.svg';
|
||||
default:
|
||||
return 'assets/images/eth_chain_mono.svg';
|
||||
}
|
||||
}
|
||||
|
||||
String getChainMonoImage(WalletType type) {
|
||||
switch (type) {
|
||||
case WalletType.solana:
|
||||
return 'assets/images/sol_chain_mono.svg';
|
||||
case WalletType.ethereum:
|
||||
return 'assets/images/eth_chain_mono.svg';
|
||||
case WalletType.polygon:
|
||||
return 'assets/images/pol_chain_mono.svg';
|
||||
case WalletType.base:
|
||||
return 'assets/images/base_chain_mono.svg';
|
||||
case WalletType.arbitrum:
|
||||
return 'assets/images/arbitrum_chain_mono.svg';
|
||||
case WalletType.bsc:
|
||||
return 'assets/images/bnb_chain_mono.svg';
|
||||
case WalletType.solana:
|
||||
return 'assets/images/sol_chain_mono.svg';
|
||||
case WalletType.tron:
|
||||
return 'assets/images/trx_chain_mono.svg';
|
||||
case WalletType.zano:
|
||||
|
||||
@@ -89,6 +89,7 @@ class TokenUtilities {
|
||||
case WalletType.polygon:
|
||||
case WalletType.base:
|
||||
case WalletType.arbitrum:
|
||||
case WalletType.bsc:
|
||||
final tokens = await loadAllUniqueEvmTokens();
|
||||
for (final t in tokens) {
|
||||
if (t.contractAddress.toLowerCase() == lower) return t;
|
||||
@@ -127,6 +128,7 @@ class TokenUtilities {
|
||||
WalletType.polygon => '${walletKey}_${Erc20Token.polygonBoxName}',
|
||||
WalletType.base => '${walletKey}_${Erc20Token.baseBoxName}',
|
||||
WalletType.arbitrum => '${walletKey}_${Erc20Token.arbitrumBoxName}',
|
||||
WalletType.bsc => '${walletKey}_${Erc20Token.bscBoxName}',
|
||||
_ => '${walletKey}_${Erc20Token.ethereumBoxName}',
|
||||
};
|
||||
}
|
||||
@@ -185,7 +187,8 @@ class TokenUtilities {
|
||||
|
||||
// Only check EVM registry for currencies that might be EVM-related
|
||||
final isPotentialEVM = isNativeToken(currency) ||
|
||||
(tag != null && (tag == 'ETH' || tag == 'POL' || tag == 'BASE' || tag == 'ARB'));
|
||||
(tag != null &&
|
||||
(tag == 'ETH' || tag == 'POL' || tag == 'BASE' || tag == 'ARB' || tag == 'BSC'));
|
||||
|
||||
if (isPotentialEVM) {
|
||||
// Try by tag first if available (e.g., 'POL', 'BASE', 'ARB')
|
||||
@@ -200,11 +203,6 @@ class TokenUtilities {
|
||||
}
|
||||
|
||||
// Fallback to hardcoded values for chains not in registry yet
|
||||
// BSC (Binance Smart Chain)
|
||||
if (title == 'bsc' || title == 'bnb' || tag == 'BSC') {
|
||||
return 56;
|
||||
}
|
||||
|
||||
// Avalanche C-Chain
|
||||
if (title == 'avalanche' || title == 'avax' || tag == 'AVALANCHE') {
|
||||
return 43114;
|
||||
|
||||
Reference in New Issue
Block a user