mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-28 06:28:41 +01:00
CW-1228: Automatically detect wallet tokens for EVM chains (#2827)
* feat: Automatically detect wallet tokens for EVM chains * feat: Disable potential tg scam tokens by default * feat: Add homoglyph normalization to detect spoofing attacks in token symbols * refactor: Improve scam token detection and apply to automatically fetched EVM tokens * refactor: Enhance scam detection for automatically detected tokens in evm wallets * feat: Add fiat check to scam checks on automatically imported token and disable tokens that fail the check * feat: Add fiat check to scam checks on automatically imported token and disable tokens that fail the check * feat: Add fiat check to scam checks on automatically imported token and disable tokens that fail the check * feat: Enable whitelisted tokens with balance when importing wallet tokens
This commit is contained in:
@@ -7,6 +7,7 @@ import 'package:cw_core/transaction_history.dart';
|
||||
import 'package:cw_core/wallet_base.dart';
|
||||
import 'package:cw_core/balance.dart';
|
||||
import 'package:cw_core/crypto_currency.dart';
|
||||
import 'package:cw_core/erc20_token.dart';
|
||||
import 'package:cw_core/transaction_info.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
@@ -378,6 +379,20 @@ abstract class BalanceViewModelBase with Store {
|
||||
if (a.asset == wallet.currency) return -1;
|
||||
}
|
||||
|
||||
if (isEVMCompatibleChain(wallet.type)) {
|
||||
final aIsToken = a.asset is Erc20Token;
|
||||
final bIsToken = b.asset is Erc20Token;
|
||||
|
||||
final aHasBalance = (double.tryParse(a.availableBalance) ?? 0) > 0;
|
||||
final bHasBalance = (double.tryParse(b.availableBalance) ?? 0) > 0;
|
||||
|
||||
// Adding this so tokens with balance come before tokens without balance
|
||||
if (aIsToken && bIsToken) {
|
||||
if (aHasBalance && !bHasBalance) return -1;
|
||||
if (!aHasBalance && bHasBalance) return 1;
|
||||
}
|
||||
}
|
||||
|
||||
switch (sortBalanceBy) {
|
||||
case SortBalanceBy.FiatBalance:
|
||||
final aFiatBalance = _getFiatBalance(
|
||||
|
||||
Reference in New Issue
Block a user