@@ -86,17 +86,18 @@ class TipPaymentViewModel @Inject constructor(
8686 }
8787 }
8888
89- private val minUsdLimit: Kin
90- get() {
91- return KinAmount .fromFiatAmount(minUsdFiatLimit, exchange.rateForUsd()!! ).kin
89+ private val minLimit: (rate: Rate ) -> Kin = { rate ->
90+ KinAmount .fromFiatAmount(minFiatLimit(rate), rate).kin
9291 }
9392
9493 private val maxFiatLimit: (rate: Rate ) -> Double = { rate ->
9594 (transactionRepository.sendLimitFor(rate.currency) ? : SendLimit .Zero ).nextTransaction
9695 }
9796
98- private val minUsdFiatLimit: Double
99- get() = (transactionRepository.sendLimitFor(CurrencyCode .USD ) ? : SendLimit .Zero ).maxPerTransaction / 250.0
97+ private val minFiatLimit: (rate: Rate ) -> Double = { rate ->
98+ (transactionRepository.sendLimitFor(rate.currency)
99+ ? : SendLimit .Zero ).maxPerTransaction / 250.0
100+ }
100101
101102
102103 private val hasAvailableTransactionLimit: (amount: KinAmount , rate: Rate ) -> Boolean = { amount, _ ->
@@ -111,7 +112,7 @@ class TipPaymentViewModel @Inject constructor(
111112 get() = transactionRepository.hasAvailableDailyLimit()
112113
113114 private val isTipLargeEnough: (amount: KinAmount ) -> Boolean = { amount ->
114- amount.kin >= minUsdLimit
115+ amount.kin >= minLimit(amount.rate)
115116 }
116117
117118 suspend fun onSubmit (): KinAmount ? {
@@ -160,7 +161,7 @@ class TipPaymentViewModel @Inject constructor(
160161
161162 if (! isTipLargeEnough(amount)) {
162163 // min amount is based on send limit for USD
163- val kin = KinAmount .fromFiatAmount(minUsdFiatLimit, exchange.rateForUsd() !! ).kin
164+ val kin = KinAmount .fromFiatAmount(minFiatLimit(amount.rate), amount.rate ).kin
164165 // convert min amount in USD to selected currency
165166 val normalizedAmount = KinAmount .newInstance(kin, rate)
166167 // format for display
0 commit comments