From 6d629f5c78270bc9422a2146bd3339c4eff68a39 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 28 Aug 2024 16:28:35 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/tap/proxy/TransactionManagerImpl.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) 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 29b6c4b9d5..4e8c1bbf82 100644 --- a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt @@ -277,15 +277,15 @@ class TransactionManagerImpl( val feeMin = gasLimit.multiply(gasPrice).toBigDecimal( scale = blockchain.decimals(), mathContext = MathContext(blockchain.decimals(), RoundingMode.HALF_EVEN), - ) + ).increaseForMantleIfNeeded(blockchain) val feeNormal = gasLimit.multiply(gasPriceNormal).toBigDecimal( scale = blockchain.decimals(), mathContext = MathContext(blockchain.decimals(), RoundingMode.HALF_EVEN), - ) + ).increaseForMantleIfNeeded(blockchain) val feePriority = gasLimit.multiply(gasPricePriority).toBigDecimal( scale = blockchain.decimals(), mathContext = MathContext(blockchain.decimals(), RoundingMode.HALF_EVEN), - ) + ).increaseForMantleIfNeeded(blockchain) val minFee = ProxyFee.Common( gasLimit = gasLimit, fee = ProxyAmount( @@ -339,8 +339,18 @@ class TransactionManagerImpl( } } + // TODO Workaround for Mantle. Remove after [REDACTED_JIRA] + private fun BigDecimal.increaseForMantleIfNeeded(blockchain: Blockchain): BigDecimal { + return if (blockchain == Blockchain.Mantle) { + this.multiply(MANTLE_FEE_ESTIMATE_MULTIPLIER) + } else { + this + } + } + companion object { private const val MULTIPLIER_GAS_PRICE_FOR_NORMAL_FEE = 150 // 50% private const val MULTIPLIER_GAS_PRICE_FOR_PRIORITY_FEE = 200 // 50% + private val MANTLE_FEE_ESTIMATE_MULTIPLIER = BigDecimal("1.6") } } \ No newline at end of file