diff --git a/Android/wallet/src/main/java/com/flow/wallet/wallet/BaseWallet.kt b/Android/wallet/src/main/java/com/flow/wallet/wallet/BaseWallet.kt index 3ee1249..d1c5b83 100644 --- a/Android/wallet/src/main/java/com/flow/wallet/wallet/BaseWallet.kt +++ b/Android/wallet/src/main/java/com/flow/wallet/wallet/BaseWallet.kt @@ -1,5 +1,6 @@ package com.flow.wallet.wallet +import android.util.Log import com.flow.wallet.account.Account import com.flow.wallet.crypto.HasherImpl import com.flow.wallet.errors.WalletError @@ -163,6 +164,7 @@ abstract class BaseWallet( // Try to load from cache first val cachedAccounts = loadCache() if (cachedAccounts != null) { + Log.d("BaseWallet", "Cache LOADED. Keys: ${cachedAccounts.accounts.keys}") val accountsMap = mutableMapOf>() // Convert cached string keys back to ChainId @@ -191,8 +193,8 @@ abstract class BaseWallet( } private suspend fun fetchAllNetworkAccounts() { - val newAccounts = mutableMapOf>() - val newFlowAccounts = mutableMapOf>() + val newAccounts = _accounts.toMutableMap() + val newFlowAccounts = flowAccounts.toMutableMap() // Fetch accounts from all networks in parallel coroutineScope { @@ -200,11 +202,17 @@ abstract class BaseWallet( async { try { val accounts = fetchAccountsForNetwork(network) + Log.d("BaseWallet", "Fetch result for $network: ${accounts.size} accounts") if (accounts.isNotEmpty()) { newFlowAccounts[network] = accounts newAccounts[network] = accounts.map { Account(it, network, getKeyForAccount(), securityDelegate) }.toMutableList() + } else { + val cached = flowAccounts[network] + if (!cached.isNullOrEmpty()) { + Log.w("BaseWallet", "Network returned 0 accounts for $network, but cache has ${cached.size}. KEEPING CACHE due to potential indexer latency.") + } } } catch (e: Exception) { println("Error fetching accounts for network $network: ${e.message}") diff --git a/Android/wallet/src/main/java/com/flow/wallet/wallet/KeyWallet.kt b/Android/wallet/src/main/java/com/flow/wallet/wallet/KeyWallet.kt index 4c47675..0f57a3e 100644 --- a/Android/wallet/src/main/java/com/flow/wallet/wallet/KeyWallet.kt +++ b/Android/wallet/src/main/java/com/flow/wallet/wallet/KeyWallet.kt @@ -130,7 +130,7 @@ class KeyWallet( p256PublicKey?.let { publicKey -> try { val encodedKey = publicKey.toFlowIndexerHex() - Log.d(TAG, "Fetching P256 accounts for key: ${encodedKey.take(10)}...") + Log.d(TAG, "Fetching P256 accounts for key: ${encodedKey.take(10)}... on network $network") val p256Accounts = withTimeout(baseTimeout) { Network.findFlowAccountByKey(encodedKey, network) } @@ -148,7 +148,7 @@ class KeyWallet( secp256k1PublicKey?.let { publicKey -> try { val encodedKey = publicKey.toFlowIndexerHex() - Log.d(TAG, "Fetching SECP256k1 accounts for key: ${encodedKey.take(10)}...") + Log.d(TAG, "Fetching SECP256k1 accounts for key: ${encodedKey.take(10)}... on network $network") val secp256k1Accounts = withTimeout(baseTimeout) { Network.findFlowAccountByKey(encodedKey, network) }