Fix deleting token

Fix renaming tokens
This commit is contained in:
OmarHatem 2023-07-04 04:41:37 +03:00
parent 72a99ab7dd
commit fcabc7aec1
2 changed files with 30 additions and 22 deletions

View file

@ -305,24 +305,24 @@ abstract class EthereumWalletBase
.iconPath; .iconPath;
} catch (_) {} } catch (_) {}
await erc20TokensBox.put( final _token = Erc20Token(
token.contractAddress, name: token.name,
Erc20Token( symbol: token.symbol,
name: token.name, contractAddress: token.contractAddress,
symbol: token.symbol, decimal: token.decimal,
contractAddress: token.contractAddress, enabled: token.enabled,
decimal: token.decimal, iconPath: iconPath,
enabled: token.enabled, );
iconPath: iconPath,
));
if (token.enabled) { await erc20TokensBox.put(_token.contractAddress, _token);
balance[token] = await _client.fetchERC20Balances(
if (_token.enabled) {
balance[_token] = await _client.fetchERC20Balances(
_privateKey.address, _privateKey.address,
token.contractAddress, _token.contractAddress,
); );
} else { } else {
balance.remove(token); balance.remove(_token);
} }
} }

View file

@ -30,7 +30,10 @@ abstract class HomeSettingsViewModelBase with Store {
SortBalanceBy get sortBalanceBy => _settingsStore.sortBalanceBy; SortBalanceBy get sortBalanceBy => _settingsStore.sortBalanceBy;
@action @action
void setSortBalanceBy(SortBalanceBy value) => _settingsStore.sortBalanceBy = value; void setSortBalanceBy(SortBalanceBy value) {
_settingsStore.sortBalanceBy = value;
_updateTokensList();
}
@computed @computed
bool get pinNativeToken => _settingsStore.pinNativeTokenAtTop; bool get pinNativeToken => _settingsStore.pinNativeTokenAtTop;
@ -40,11 +43,13 @@ abstract class HomeSettingsViewModelBase with Store {
Future<void> addErc20Token(Erc20Token token) async { Future<void> addErc20Token(Erc20Token token) async {
await ethereum!.addErc20Token(_balanceViewModel.wallet, token); await ethereum!.addErc20Token(_balanceViewModel.wallet, token);
_updateTokensList();
_updateFiatPrices(token); _updateFiatPrices(token);
} }
Future<void> deleteErc20Token(Erc20Token token) async { Future<void> deleteErc20Token(Erc20Token token) async {
await ethereum!.deleteErc20Token(_balanceViewModel.wallet, token); await ethereum!.deleteErc20Token(_balanceViewModel.wallet, token);
_updateTokensList();
} }
Future<Erc20Token?> getErc20Token(String contractAddress) async => Future<Erc20Token?> getErc20Token(String contractAddress) async =>
@ -70,17 +75,20 @@ abstract class HomeSettingsViewModelBase with Store {
@action @action
void _updateTokensList() { void _updateTokensList() {
tokens.clear(); int _sortFunc(e1, e2) {
int index1 = _balanceViewModel.formattedBalances.indexWhere((element) => element.asset == e1);
int index2 = _balanceViewModel.formattedBalances.indexWhere((element) => element.asset == e2);
_balanceViewModel.formattedBalances.forEach((e) { return index1.compareTo(index2);
if (e.asset is Erc20Token && _matchesSearchText(e.asset as Erc20Token)) { }
tokens.add(e.asset as Erc20Token);
} tokens.clear();
});
tokens.addAll(ethereum! tokens.addAll(ethereum!
.getERC20Currencies(_balanceViewModel.wallet) .getERC20Currencies(_balanceViewModel.wallet)
.where((element) => _matchesSearchText(element))); .where((element) => _matchesSearchText(element))
.toList()
..sort(_sortFunc));
} }
@action @action