mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 12:29:51 +00:00
Cw 939 whitelist known tokens (#2038)
* [skip-ci] init * don't get price data for potential scam tokens * updates * dont fetch fiat price for scam currencies
This commit is contained in:
parent
3a56277c27
commit
57fe3287fa
9 changed files with 97 additions and 11 deletions
|
@ -114,13 +114,12 @@ abstract class HomeSettingsViewModelBase with Store {
|
|||
if (_balanceViewModel.wallet.type == WalletType.zano) {
|
||||
await zano!.addZanoAssetById(_balanceViewModel.wallet, contractAddress);
|
||||
}
|
||||
|
||||
|
||||
_updateTokensList();
|
||||
_updateFiatPrices(token);
|
||||
} catch (e) {
|
||||
throw e;
|
||||
}
|
||||
finally {
|
||||
} finally {
|
||||
isAddingToken = false;
|
||||
}
|
||||
}
|
||||
|
@ -189,6 +188,40 @@ abstract class HomeSettingsViewModelBase with Store {
|
|||
}
|
||||
}
|
||||
|
||||
bool checkIfTokenIsWhitelisted(String contractAddress) {
|
||||
// get the default tokens for each currency type:
|
||||
List<String> defaultTokenAddresses = [];
|
||||
switch (_balanceViewModel.wallet.type) {
|
||||
case WalletType.ethereum:
|
||||
defaultTokenAddresses = ethereum!.getDefaultTokenContractAddresses();
|
||||
break;
|
||||
case WalletType.polygon:
|
||||
defaultTokenAddresses = polygon!.getDefaultTokenContractAddresses();
|
||||
break;
|
||||
case WalletType.solana:
|
||||
defaultTokenAddresses = solana!.getDefaultTokenContractAddresses();
|
||||
break;
|
||||
case WalletType.tron:
|
||||
defaultTokenAddresses = tron!.getDefaultTokenContractAddresses();
|
||||
break;
|
||||
case WalletType.zano:
|
||||
case WalletType.banano:
|
||||
case WalletType.monero:
|
||||
case WalletType.none:
|
||||
case WalletType.bitcoin:
|
||||
case WalletType.litecoin:
|
||||
case WalletType.haven:
|
||||
case WalletType.nano:
|
||||
case WalletType.wownero:
|
||||
case WalletType.bitcoinCash:
|
||||
return false;
|
||||
}
|
||||
|
||||
// check if the contractAddress is in the defaultTokenAddresses
|
||||
bool isInWhitelist = defaultTokenAddresses.any((element) => element == contractAddress);
|
||||
return isInWhitelist;
|
||||
}
|
||||
|
||||
Future<bool> _isPotentialScamTokenViaMoralis(
|
||||
String contractAddress,
|
||||
String chainName,
|
||||
|
@ -363,6 +396,7 @@ abstract class HomeSettingsViewModelBase with Store {
|
|||
CryptoCurrency get nativeToken => _balanceViewModel.wallet.currency;
|
||||
|
||||
void _updateFiatPrices(CryptoCurrency token) async {
|
||||
if (token.isPotentialScam) return; // don't fetch price data for potential scam tokens
|
||||
try {
|
||||
_balanceViewModel.fiatConvertationStore.prices[token] =
|
||||
await FiatConversionService.fetchPrice(
|
||||
|
@ -455,9 +489,10 @@ abstract class HomeSettingsViewModelBase with Store {
|
|||
}
|
||||
|
||||
if (_balanceViewModel.wallet.type == WalletType.zano) {
|
||||
tokens.addAll(zano!.getZanoAssets(_balanceViewModel.wallet)
|
||||
.where((element) => _matchesSearchText(element))
|
||||
.toList()
|
||||
tokens.addAll(zano!
|
||||
.getZanoAssets(_balanceViewModel.wallet)
|
||||
.where((element) => _matchesSearchText(element))
|
||||
.toList()
|
||||
..sort(_sortFunc));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue