Updated on 2026-08-14

This commit is contained in:
Tangem 2020-11-11 10:13:15 +03:00
parent 88b14a06ca
commit f3e8ccb3be
4 changed files with 20 additions and 24 deletions

View file

@ -2,6 +2,7 @@ package com.tangem.tap
object TapConfig {
const val usePayId: Boolean = true
const val useTopUp: Boolean = true
const val coinMarketCapKey = "f6622117-c043-47a0-8975-9d673ce484de"
const val moonPayApiKey = "pk_test_kc90oYTANy7UQdBavDKGfL4K9l6VEPE"
const val moonPayApiSecretKey = "sk_test_V8w4M19LbDjjYOt170s0tGuvXAgyEb1C"

View file

@ -57,9 +57,7 @@ class TapWalletManager {
withContext(Dispatchers.Main) {
when (result) {
is Result.Success ->
store.dispatch(WalletAction.UpdateWallet.Success(
result.data, tapWorkarounds?.isStart2Coin != true
))
store.dispatch(WalletAction.UpdateWallet.Success(result.data))
is Result.Failure ->
store.dispatch(WalletAction.UpdateWallet.Failure(result.error?.localizedMessage))
}
@ -103,7 +101,10 @@ class TapWalletManager {
store.dispatch(WalletAction.LoadData.Failure(TapError.NoInternetConnection))
return@withContext
}
store.dispatch(WalletAction.LoadWallet)
store.dispatch(WalletAction.LoadWallet(
data.walletManager.wallet, data.verifyResponse?.artworkInfo?.id,
tapWorkarounds?.isStart2Coin != true && TapConfig.useTopUp
))
store.dispatch(WalletAction.LoadArtwork(data.card, artworkId))
store.dispatch(WalletAction.LoadFiatRate)
store.dispatch(WalletAction.LoadPayId)

View file

@ -20,7 +20,9 @@ sealed class WalletAction : Action {
data class Failure(val error: TapError) : WalletAction()
}
object LoadWallet : WalletAction() {
data class LoadWallet(
val wallet: Wallet, val artworkId: String?, val allowTopUp: Boolean
) : WalletAction() {
data class Success(val wallet: Wallet) : WalletAction()
data class NoAccount(val amountToCreateAccount: String) : WalletAction()
data class Failure(val errorMessage: String? = null) : WalletAction()
@ -35,7 +37,7 @@ sealed class WalletAction : Action {
object UpdateWallet : WalletAction() {
object ScheduleUpdatingWallet : WalletAction()
data class Success(val wallet: Wallet, val topUpAllowed: Boolean) : WalletAction()
data class Success(val wallet: Wallet) : WalletAction()
data class Failure(val errorMessage: String? = null) : WalletAction()
}
@ -50,7 +52,7 @@ sealed class WalletAction : Action {
object Failure : WalletAction()
}
object DisablePayId: WalletAction()
object DisablePayId : WalletAction()
data class LoadArtwork(val card: Card, val artworkId: String?) : WalletAction() {
data class Success(val artwork: Artwork) : WalletAction()

View file

@ -70,14 +70,8 @@ private fun internalReduce(action: Action, state: AppState): WalletState {
}
is WalletAction.LoadWallet -> {
val wallet = state.globalState.scanNoteResponse?.walletManager?.wallet
val addressData = if (wallet == null) {
null
} else {
AddressData(wallet.address, wallet.shareUrl, wallet.exploreUrl)
}
val currentArtworkId = state.globalState.scanNoteResponse?.verifyResponse?.artworkInfo?.id
val cardImage = if (newState.cardImage?.artworkId == currentArtworkId) {
val wallet = action.wallet
val cardImage = if (newState.cardImage?.artworkId == action.artworkId) {
newState.cardImage
} else {
null
@ -87,15 +81,15 @@ private fun internalReduce(action: Action, state: AppState): WalletState {
cardImage = cardImage,
currencyData = BalanceWidgetData(
BalanceStatus.Loading,
wallet?.blockchain?.fullName,
currencySymbol = wallet?.blockchain?.currency,
token = wallet?.token?.symbol?.let {
wallet.blockchain.fullName,
currencySymbol = wallet.blockchain.currency,
token = wallet.token?.symbol?.let {
TokenData("", tokenSymbol = it)
}
),
addressData = addressData,
mainButton = WalletMainButton.SendButton(false)
addressData = AddressData(wallet.address, wallet.shareUrl, wallet.exploreUrl),
mainButton = WalletMainButton.SendButton(false),
topUpState = TopUpState(allowed = action.allowTopUp)
)
}
is WalletAction.LoadWallet.Success -> newState = onWalletLoaded(action.wallet, newState)
@ -257,7 +251,6 @@ private fun onWalletLoaded(
} else {
BalanceStatus.VerifiedOnline
}
val topUpState = topUpAllowed?.let { TopUpState(topUpAllowed) } ?: walletState.topUpState
return walletState.copy(
state = ProgressState.Done, wallet = wallet,
currencyData = BalanceWidgetData(
@ -268,7 +261,6 @@ private fun onWalletLoaded(
fiatAmount = fiatAmount
),
pendingTransactions = pendingTransactions.removeUnknownTransactions(),
mainButton = WalletMainButton.SendButton(sendButtonEnabled),
topUpState = topUpState
mainButton = WalletMainButton.SendButton(sendButtonEnabled)
)
}