diff --git a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt index fec31ea24a..0607b9caaa 100644 --- a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt @@ -26,7 +26,6 @@ import com.tangem.lib.crypto.models.transactions.SendTxResult import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.domain.TangemSigner import com.tangem.tap.domain.tokens.models.BlockchainNetwork -import com.tangem.tap.features.wallet.redux.WalletAction import com.tangem.tap.tangemSdk import java.math.BigDecimal @@ -109,8 +108,6 @@ class TransactionManagerImpl( FirebaseCrashlytics.getInstance().recordException(ex) return SendTxResult.UnknownError(ex) } - // workaround, should update wallet after transaction - appStateHolder.mainStore?.dispatch(WalletAction.LoadData.Refresh) return handleSendResult(sendResult) } diff --git a/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt b/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt index d0f604b74f..715f99415a 100644 --- a/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt @@ -113,6 +113,7 @@ class UserWalletManagerImpl( val action = addNonNativeTokenToWalletAction(currency, card, blockchain) val mainStore = requireNotNull(appStateHolder.mainStore) { "mainStore is null" } mainStore.dispatchOnMain(action) + delay(DELAY_UPDATE_WALLET) } } @@ -238,6 +239,11 @@ class UserWalletManagerImpl( ) } + override fun refreshWallet() { + // workaround, should update wallet after transaction + appStateHolder.mainStore?.dispatchOnMain(WalletAction.LoadData.Refresh) + } + private fun createDerivationParams(derivationStyle: DerivationStyle?): DerivationParams? { // todo clarify if its need to add Custom return derivationStyle?.let { DerivationParams.Default(derivationStyle) } diff --git a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt index ada2f49f4d..2307af3c90 100644 --- a/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt +++ b/features/swap/domain/src/main/java/com/tangem/feature/swap/domain/SwapInteractorImpl.kt @@ -218,6 +218,7 @@ internal class SwapInteractorImpl @Inject constructor( return when (result) { is SendTxResult.Success -> { userWalletManager.addToken(cryptoCurrencyConverter.convert(currencyToGet)) + userWalletManager.refreshWallet() TxState.TxSent( fromAmount = amountFormatter.formatSwapAmountToUI(swapData.fromTokenAmount, currencyToSend.symbol), toAmount = amountFormatter.formatSwapAmountToUI(swapData.toTokenAmount, currencyToGet.symbol), diff --git a/libs/crypto/src/main/java/com/tangem/lib/crypto/UserWalletManager.kt b/libs/crypto/src/main/java/com/tangem/lib/crypto/UserWalletManager.kt index 65ee146a74..258148f3ca 100644 --- a/libs/crypto/src/main/java/com/tangem/lib/crypto/UserWalletManager.kt +++ b/libs/crypto/src/main/java/com/tangem/lib/crypto/UserWalletManager.kt @@ -39,6 +39,8 @@ interface UserWalletManager { @Throws(IllegalStateException::class) suspend fun addToken(currency: Currency) + fun refreshWallet() + /** * Returns wallet public address for token *