diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/FeeConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/FeeConverter.kt index 42ed64cd0e..449c2f6f43 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/FeeConverter.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/FeeConverter.kt @@ -41,7 +41,6 @@ internal class FeeConverter( private val kaspaCustomFeeConverter by lazy(LazyThreadSafetyMode.NONE) { KaspaCustomFeeConverter( clickIntents = clickIntents, - stateRouterProvider = stateRouterProvider, appCurrencyProvider = appCurrencyProvider, feeCryptoCurrencyStatusProvider = feeCryptoCurrencyStatusProvider, ) diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/SendFeeCustomFieldConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/SendFeeCustomFieldConverter.kt index 5902d63552..25849d36f7 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/SendFeeCustomFieldConverter.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/SendFeeCustomFieldConverter.kt @@ -42,7 +42,6 @@ internal class SendFeeCustomFieldConverter( private val kaspaCustomFeeConverter by lazy(LazyThreadSafetyMode.NONE) { KaspaCustomFeeConverter( clickIntents = clickIntents, - stateRouterProvider = stateRouterProvider, appCurrencyProvider = appCurrencyProvider, feeCryptoCurrencyStatusProvider = feeCryptoCurrencyStatusProvider, ) @@ -74,7 +73,6 @@ internal class SendFeeCustomFieldConverter( customValues = feeSelectorState.customValues, index = index, value = value, - utxoCount = fee.utxoCount, ) else -> feeSelectorState.customValues }, diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/KaspaCustomFeeConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/KaspaCustomFeeConverter.kt index 05b117547d..a85d1bb97e 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/KaspaCustomFeeConverter.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/fee/custom/KaspaCustomFeeConverter.kt @@ -12,8 +12,6 @@ import com.tangem.core.ui.utils.parseToBigDecimal import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.tokens.model.CryptoCurrencyStatus import com.tangem.features.send.impl.R -import com.tangem.features.send.impl.presentation.state.StateRouter -import com.tangem.features.send.impl.presentation.state.fee.checkExceedBalance import com.tangem.features.send.impl.presentation.state.fields.SendTextField import com.tangem.features.send.impl.presentation.viewmodel.SendClickIntents import com.tangem.utils.Provider @@ -24,7 +22,6 @@ import java.math.RoundingMode internal class KaspaCustomFeeConverter( private val clickIntents: SendClickIntents, - private val stateRouterProvider: Provider, private val appCurrencyProvider: Provider, private val feeCryptoCurrencyStatusProvider: Provider, ) : CustomFeeConverter { @@ -53,29 +50,6 @@ internal class KaspaCustomFeeConverter( ), keyboardActions = KeyboardActions(), ), - SendTextField.CustomFee( - value = value.valuePerUtxo.parseBigDecimal(value.amount.decimals), - decimals = value.amount.decimals, - symbol = "", - title = resourceReference(R.string.send_custom_kaspa_per_utxo_title), - footer = resourceReference(R.string.send_custom_kaspa_per_utxo_footer), - onValueChange = { clickIntents.onCustomFeeValueChange(FEE_VALUE_PER_UTXO_INDEX, it) }, - keyboardOptions = KeyboardOptions( - imeAction = if (checkExceedBalance( - feeBalance = feeCurrency?.amount, - feeAmount = feeValue, - ) - ) { - ImeAction.None - } else { - ImeAction.Done - }, - keyboardType = KeyboardType.Number, - ), - keyboardActions = KeyboardActions( - onDone = { clickIntents.onNextClick(stateRouterProvider().isEditState) }, - ), - ), ) } else { persistentListOf() @@ -83,12 +57,15 @@ internal class KaspaCustomFeeConverter( } override fun convertBack(normalFee: Fee.Kaspa, value: ImmutableList): Fee.Kaspa { - val feeAmount = value[FEE_AMOUNT_INDEX].value.parseToBigDecimal(value[FEE_AMOUNT_INDEX].decimals) - val valuePerUtxo = - value[FEE_VALUE_PER_UTXO_INDEX].value.parseToBigDecimal(value[FEE_VALUE_PER_UTXO_INDEX].decimals) + val decimals = value[FEE_AMOUNT_INDEX].decimals + val feeAmount = value[FEE_AMOUNT_INDEX].value.parseToBigDecimal(decimals) return normalFee.copy( amount = normalFee.amount.copy(value = feeAmount), - valuePerUtxo = valuePerUtxo, + mass = normalFee.mass, + feeRate = feeAmount + .divide(normalFee.mass.toBigDecimal(), decimals, RoundingMode.HALF_UP) + .movePointRight(decimals) + .toBigInteger(), ) } @@ -96,24 +73,12 @@ internal class KaspaCustomFeeConverter( customValues: ImmutableList, index: Int, value: String, - utxoCount: Int, ): ImmutableList { val mutableCustomValues = customValues.toMutableList() return mutableCustomValues.apply { when (index) { FEE_AMOUNT_INDEX -> { val valueDecimal = value.parseToBigDecimal(this[FEE_AMOUNT_INDEX].decimals) - val newValuePerUtxo = valueDecimal.divide( - /* divisor = */ utxoCount.toBigDecimal(), - /* scale = */ this[FEE_VALUE_PER_UTXO_INDEX].decimals, - /* roundingMode = */ RoundingMode.HALF_UP, - ) - set( - FEE_VALUE_PER_UTXO_INDEX, - this[FEE_VALUE_PER_UTXO_INDEX].copy( - value = newValuePerUtxo.parseBigDecimal(this[FEE_VALUE_PER_UTXO_INDEX].decimals), - ), - ) set( index, this[index].copy( @@ -126,28 +91,11 @@ internal class KaspaCustomFeeConverter( ), ) } - FEE_VALUE_PER_UTXO_INDEX -> { - val valuePerUtxo = value.parseToBigDecimal(this[FEE_VALUE_PER_UTXO_INDEX].decimals) - val newFeeAmount = valuePerUtxo.multiply(utxoCount.toBigDecimal()) - set( - FEE_AMOUNT_INDEX, - this[FEE_AMOUNT_INDEX].copy( - value = newFeeAmount.parseBigDecimal(this[FEE_AMOUNT_INDEX].decimals), - label = getFiatReference( - rate = feeCryptoCurrencyStatusProvider()?.value?.fiatRate, - value = newFeeAmount, - appCurrency = appCurrencyProvider(), - ), - ), - ) - set(index, this[index].copy(value = value)) - } } }.toImmutableList() } private companion object { private const val FEE_AMOUNT_INDEX = 0 - private const val FEE_VALUE_PER_UTXO_INDEX = 1 } } \ No newline at end of file diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index e6b1b027d1..c009175e70 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -89,7 +89,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "develop-770" +tangemBlockchainSdk = "develop-775" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "develop-381" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^