Updated on 2026-08-14
This commit is contained in:
commit
cae7844408
49 changed files with 537 additions and 273 deletions
|
|
@ -40,6 +40,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
|
|||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.coroutines.launch
|
||||
import timber.log.Timber
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
internal class FeeSelectorLogic @AssistedInject constructor(
|
||||
|
|
@ -122,6 +123,7 @@ internal class FeeSelectorLogic @AssistedInject constructor(
|
|||
CommonSendFeeAnalyticEvents.CustomFeeButtonClicked(
|
||||
categoryName = params.analyticsCategoryName,
|
||||
blockchain = params.cryptoCurrencyStatus.currency.network.name,
|
||||
token = params.cryptoCurrencyStatus.currency.symbol,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
@ -265,10 +267,21 @@ internal class FeeSelectorLogic @AssistedInject constructor(
|
|||
private suspend fun populateExtendedFee(
|
||||
fee: TransactionFeeExtended,
|
||||
): Either<GetFeeError, LoadedFeeResult.Extended> = either {
|
||||
val selectedToken = getSelectedTokenStatus(fee.feeTokenId).bind()
|
||||
val availableTokens = getAvailableFeeTokens().fold(
|
||||
ifLeft = { error ->
|
||||
Timber.e("Failed to get available fee tokens: $error")
|
||||
if (selectedToken.currency !is CryptoCurrency.Coin) {
|
||||
raise(error)
|
||||
}
|
||||
emptyList()
|
||||
},
|
||||
ifRight = { it },
|
||||
)
|
||||
LoadedFeeResult.Extended(
|
||||
fee = fee,
|
||||
selectedToken = getSelectedTokenStatus(fee.feeTokenId).bind(),
|
||||
availableTokens = getAvailableFeeTokens().bind(),
|
||||
selectedToken = selectedToken,
|
||||
availableTokens = availableTokens,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -86,6 +86,8 @@ internal class FeeSelectorModel @Inject constructor(
|
|||
CommonSendAnalyticEvents.FeeSummaryScreenOpened(
|
||||
categoryName = params.analyticsCategoryName,
|
||||
source = params.analyticsSendSource,
|
||||
blockchain = params.cryptoCurrencyStatus.currency.network.name,
|
||||
token = params.cryptoCurrencyStatus.currency.symbol,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
@ -95,6 +97,8 @@ internal class FeeSelectorModel @Inject constructor(
|
|||
CommonSendAnalyticEvents.FeeScreenOpened(
|
||||
categoryName = params.analyticsCategoryName,
|
||||
source = params.analyticsSendSource,
|
||||
blockchain = params.cryptoCurrencyStatus.currency.network.name,
|
||||
token = params.cryptoCurrencyStatus.currency.symbol,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
@ -105,6 +109,7 @@ internal class FeeSelectorModel @Inject constructor(
|
|||
categoryName = params.analyticsCategoryName,
|
||||
source = params.analyticsSendSource,
|
||||
availableTokens = getAvailableTokensString(),
|
||||
blockchain = params.cryptoCurrencyStatus.currency.network.name,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.tangem.core.analytics.models.AnalyticsParam
|
|||
import com.tangem.core.analytics.models.AnalyticsParam.Key.ACCOUNT_DERIVATION_FROM
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.BLOCKCHAIN
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.ENS_ADDRESS
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.FEE_TOKEN
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.FEE_TYPE
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.NONCE
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
|
||||
|
|
@ -42,6 +43,7 @@ internal sealed class SendAnalyticEvents(
|
|||
AnalyticsParam.EmptyFull.Full -> true.toString().capitalize()
|
||||
}
|
||||
put(ENS_ADDRESS, ensAddress)
|
||||
put(FEE_TOKEN, feeToken)
|
||||
},
|
||||
), AppsFlyerIncludedEvent
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue