From c51ef8ee268e00ed8945672ea2f158aa5080c41d Mon Sep 17 00:00:00 2001
From: julian <julian@cypherstack.com>
Date: Thu, 23 Mar 2023 16:28:20 -0600
Subject: [PATCH] edit wallet token list

---
 .../add_token_view/add_token_view.dart        | 12 ++++++-
 .../sub_widgets/add_token_text.dart           |  2 +-
 .../coins/ethereum/ethereum_wallet.dart       | 32 +++++++++----------
 3 files changed, 28 insertions(+), 18 deletions(-)

diff --git a/lib/pages/add_wallet_views/add_token_view/add_token_view.dart b/lib/pages/add_wallet_views/add_token_view/add_token_view.dart
index fc542d513..0582440b2 100644
--- a/lib/pages/add_wallet_views/add_token_view/add_token_view.dart
+++ b/lib/pages/add_wallet_views/add_token_view/add_token_view.dart
@@ -80,7 +80,7 @@ class _AddTokenViewState extends ConsumerState<AddTokenView> {
         .getManager(widget.walletId)
         .wallet as EthereumWallet;
 
-    await ethWallet.addTokenContracts(selectedTokens);
+    await ethWallet.updateTokenContracts(selectedTokens);
     if (mounted) {
       Navigator.of(context).pop(42);
     }
@@ -121,6 +121,16 @@ class _AddTokenViewState extends ConsumerState<AddTokenView> {
 
     tokenEntities.addAll(contracts.map((e) => AddTokenListElementData(e)));
 
+    final walletContracts = (ref
+            .read(walletsChangeNotifierProvider)
+            .getManager(widget.walletId)
+            .wallet as EthereumWallet)
+        .getWalletTokenContractAddresses();
+
+    for (var e in tokenEntities) {
+      e.selected = walletContracts.contains(e.token.address);
+    }
+
     super.initState();
   }
 
diff --git a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart
index c11e6295a..c1edfc2eb 100644
--- a/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart
+++ b/lib/pages/add_wallet_views/add_token_view/sub_widgets/add_token_text.dart
@@ -27,7 +27,7 @@ class AddTokenText extends StatelessWidget {
           height: 4,
         ),
         Text(
-          "Add Tokens",
+          "Edit Tokens",
           textAlign: TextAlign.center,
           style: isDesktop
               ? STextStyles.desktopH2(context)
diff --git a/lib/services/coins/ethereum/ethereum_wallet.dart b/lib/services/coins/ethereum/ethereum_wallet.dart
index 3ea83be65..636c12c9c 100644
--- a/lib/services/coins/ethereum/ethereum_wallet.dart
+++ b/lib/services/coins/ethereum/ethereum_wallet.dart
@@ -62,10 +62,10 @@ class EthereumWallet extends CoinServiceAPI with WalletCache, WalletDB {
   Timer? timer;
   Timer? _networkAliveTimer;
 
-  Future<void> addTokenContracts(List<String> contractAddresses) async {
-    final set = getWalletTokenContractAddresses().toSet();
-    set.addAll(contractAddresses);
-    await updateWalletTokenContractAddresses(set.toList());
+  Future<void> updateTokenContracts(List<String> contractAddresses) async {
+    // final set = getWalletTokenContractAddresses().toSet();
+    // set.addAll(contractAddresses);
+    await updateWalletTokenContractAddresses(contractAddresses);
 
     GlobalEventBus.instance.fire(
       UpdatedInBackgroundEvent(
@@ -75,18 +75,18 @@ class EthereumWallet extends CoinServiceAPI with WalletCache, WalletDB {
     );
   }
 
-  Future<void> removeTokenContract(String contractAddress) async {
-    final set = getWalletTokenContractAddresses().toSet();
-    set.removeWhere((e) => e == contractAddress);
-    await updateWalletTokenContractAddresses(set.toList());
-
-    GlobalEventBus.instance.fire(
-      UpdatedInBackgroundEvent(
-        "$contractAddress removed for: $walletId $walletName",
-        walletId,
-      ),
-    );
-  }
+  // Future<void> removeTokenContract(String contractAddress) async {
+  //   final set = getWalletTokenContractAddresses().toSet();
+  //   set.removeWhere((e) => e == contractAddress);
+  //   await updateWalletTokenContractAddresses(set.toList());
+  //
+  //   GlobalEventBus.instance.fire(
+  //     UpdatedInBackgroundEvent(
+  //       "$contractAddress removed for: $walletId $walletName",
+  //       walletId,
+  //     ),
+  //   );
+  // }
 
   @override
   String get walletId => _walletId;