From ed0b07bc8206c380c74bb6c6e75db729c96c22c9 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 6 Dec 2024 18:09:19 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/common/extensions/WalletManager.kt | 2 +- .../utils/UpdateWalletManagerResultFactory.kt | 2 +- gradle/dependencies.toml | 2 +- .../tangem/blockchainsdk/utils/Blockchain.kt | 21 ++++++++++++++++--- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/common/extensions/WalletManager.kt b/app/src/main/java/com/tangem/tap/common/extensions/WalletManager.kt index 5347ee2efc..d16033568b 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/WalletManager.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/WalletManager.kt @@ -43,7 +43,7 @@ suspend fun WalletManager.safeUpdate(isDemoCard: Boolean): Result = try Result.Failure(TapError.NoInternetConnection) } else { val blockchain = wallet.blockchain - val amountToCreateAccount = blockchain.amountToCreateAccount(wallet.getFirstToken()) + val amountToCreateAccount = blockchain.amountToCreateAccount(this, wallet.getFirstToken()) if (exception is BlockchainSdkError.AccountNotFound && amountToCreateAccount != null) { Result.Failure(TapError.WalletManager.NoAccountError(amountToCreateAccount.toString())) diff --git a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/UpdateWalletManagerResultFactory.kt b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/UpdateWalletManagerResultFactory.kt index df5aa57530..e3a15932b4 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/UpdateWalletManagerResultFactory.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/UpdateWalletManagerResultFactory.kt @@ -48,7 +48,7 @@ internal class UpdateWalletManagerResultFactory { val wallet = walletManager.wallet val blockchain = wallet.blockchain val firstWalletToken = wallet.getTokens().firstOrNull() - val amount = amountToCreateAccount ?: blockchain.amountToCreateAccount(firstWalletToken) + val amount = amountToCreateAccount ?: blockchain.amountToCreateAccount(walletManager, firstWalletToken) return if (amount == null) { Timber.w("Unable to get required amount to create account for: $blockchain") diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index b1c1f80363..f6bdbab80e 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -88,7 +88,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "develop-877" +tangemBlockchainSdk = "develop-879" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "develop-410" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt index ba2fab5f48..024c33e797 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt @@ -1,7 +1,9 @@ package com.tangem.blockchainsdk.utils import com.tangem.blockchain.common.Blockchain +import com.tangem.blockchain.common.ReserveAmountProvider import com.tangem.blockchain.common.Token +import com.tangem.blockchain.common.WalletManager import java.math.BigDecimal @Suppress("ComplexMethod", "LongMethod") @@ -390,10 +392,23 @@ fun Blockchain.toMigratedCointId(): String = when (this) { else -> toCoinId() } -fun Blockchain.amountToCreateAccount(token: Token? = null): BigDecimal? { +fun Blockchain.amountToCreateAccount(walletManager: WalletManager, token: Token? = null): BigDecimal? { return when (this) { - Blockchain.Stellar -> if (token?.symbol == NODL) BigDecimal(NODL_AMOUNT_TO_CREATE_ACCOUNT) else BigDecimal.ONE - Blockchain.XRP -> BigDecimal.TEN + Blockchain.Stellar -> { + val reserve = if (walletManager is ReserveAmountProvider) { + walletManager.getReserveAmount() + } else { + BigDecimal.ONE + } + if (token?.symbol == NODL) BigDecimal(NODL_AMOUNT_TO_CREATE_ACCOUNT) else reserve + } + Blockchain.XRP -> { + if (walletManager is ReserveAmountProvider) { + walletManager.getReserveAmount() + } else { + BigDecimal.ONE + } + } Blockchain.Near, Blockchain.NearTestnet -> 0.00182.toBigDecimal() Blockchain.Aptos, Blockchain.AptosTestnet, Blockchain.Filecoin,