Updated on 2026-08-14

This commit is contained in:
Tangem 2020-12-14 17:34:52 +03:00
parent e74e1ade81
commit edecedf446
5 changed files with 16 additions and 18 deletions

View file

@ -33,15 +33,13 @@ class RequestFeeMiddleware {
dispatch(SendAction.ChangeSendButtonState(sendState.getButtonState()))
return
}
val typedAmount = sendState.amountState.amountToExtract ?: return
val recipientAddress = sendState.addressPayIdState.recipientWalletAddress!!
val cryptoSendToRecipient = sendState.amountState.amountToSendCrypto
val recipientAmount = Amount(typedAmount, cryptoSendToRecipient)
val destinationAddress = sendState.addressPayIdState.destinationWalletAddress!!
val destinationAmount = Amount(typedAmount, sendState.amountState.amountToSendCrypto)
val txSender = walletManager as TransactionSender
scope.launch {
val feeResult = txSender.getFee(recipientAmount, recipientAddress)
val feeResult = txSender.getFee(destinationAmount, destinationAddress)
withContext(Dispatchers.Main) {
when (feeResult) {
is Result.Success -> {

View file

@ -51,7 +51,7 @@ private fun verifyAndSendTransaction(
val sendState = appState?.sendState ?: return
val walletManager = appState.globalState.scanNoteResponse?.walletManager ?: return
val card = appState.globalState.scanNoteResponse.card
val recipientAddress = sendState.addressPayIdState.recipientWalletAddress ?: return
val destinationAddress = sendState.addressPayIdState.destinationWalletAddress ?: return
val typedAmount = sendState.amountState.amountToExtract ?: return
val feeAmount = sendState.feeState.currentFee ?: return
@ -66,14 +66,14 @@ private fun verifyAndSendTransaction(
dispatch(AmountAction.SetAmount(typedAmount.value!!.minus(reduceAmount), false))
dispatch(AmountActionUi.CheckAmountToSend)
}, sendAllCallback = {
sendTransaction(action, walletManager, amountToSend, feeAmount, recipientAddress, card, dispatch)
sendTransaction(action, walletManager, amountToSend, feeAmount, destinationAddress, card, dispatch)
}, reduceAmount))
}
transactionErrors.isNotEmpty() -> {
dispatch(SendAction.SendError(createValidateTransactionError(transactionErrors, walletManager)))
}
else -> {
sendTransaction(action, walletManager, amountToSend, feeAmount, recipientAddress, card, dispatch)
sendTransaction(action, walletManager, amountToSend, feeAmount, destinationAddress, card, dispatch)
}
}
}
@ -83,12 +83,12 @@ private fun sendTransaction(
walletManager: WalletManager,
amountToSend: Amount,
feeAmount: Amount,
recipientAddress: String,
destinationAddress: String,
card: Card,
dispatch: (Action) -> Unit
) {
dispatch(SendAction.ChangeSendButtonState(SendButtonState.PROGRESS))
val txData = walletManager.createTransaction(amountToSend, feeAmount, recipientAddress)
val txData = walletManager.createTransaction(amountToSend, feeAmount, destinationAddress)
scope.launch {
walletManager.update()
val isLinkedTerminal = tangemSdk.config.linkedTerminal

View file

@ -42,7 +42,7 @@ class AddressPayIdReducer : SendInternalReducer {
viewFieldValue = InputViewValue(action.payId, action.isUserInput),
normalFieldValue = action.payId,
truncatedFieldValue = state.truncate(action.payId),
recipientWalletAddress = action.payIdWalletAddress,
destinationWalletAddress = action.payIdWalletAddress,
error = null
)
}
@ -51,13 +51,13 @@ class AddressPayIdReducer : SendInternalReducer {
viewFieldValue = InputViewValue(action.address, action.isUserInput),
normalFieldValue = action.address,
truncatedFieldValue = state.truncate(action.address),
recipientWalletAddress = action.address,
destinationWalletAddress = action.address,
error = null
)
}
is AddressPayIdVerifyAction.ChangePasteBtnEnableState -> state.copy(pasteIsEnabled = action.isEnabled)
is AddressVerification.SetAddressError -> state.copy(error = action.error, recipientWalletAddress = null)
is PayIdVerification.SetPayIdError -> state.copy(error = action.error, recipientWalletAddress = null)
is AddressVerification.SetAddressError -> state.copy(error = action.error, destinationWalletAddress = null)
is PayIdVerification.SetPayIdError -> state.copy(error = action.error, destinationWalletAddress = null)
}
return updateLastState(sendState.copy(addressPayIdState = result), result)
}

View file

@ -6,7 +6,7 @@ data class AddressPayIdState(
val viewFieldValue: InputViewValue = InputViewValue(""),
val normalFieldValue: String? = null,
val truncatedFieldValue: String? = null,
val recipientWalletAddress: String? = null,
val destinationWalletAddress: String? = null,
val error: AddressPayIdVerifyAction.Error? = null,
val truncateHandler: ((String) -> String)? = null,
val walletPayIdEnabled: Boolean = false,
@ -17,7 +17,7 @@ data class AddressPayIdState(
fun truncate(value: String): String = truncateHandler?.invoke(value) ?: value
fun isReady(): Boolean = error == null && recipientWalletAddress?.isNotEmpty() ?: false
fun isReady(): Boolean = error == null && destinationWalletAddress?.isNotEmpty() ?: false
fun isPayIdState(): Boolean = recipientWalletAddress != null && recipientWalletAddress != normalFieldValue
fun isPayIdState(): Boolean = destinationWalletAddress != null && destinationWalletAddress != normalFieldValue
}

View file

@ -113,7 +113,7 @@ class SendStateSubscriber(fragment: BaseStoreFragment) : FragmentStateSubscriber
til.parent?.parent?.beginDelayedTransition()
til.error = parsedError
til.isErrorEnabled = parsedError != null
til.helperText = state.recipientWalletAddress
til.helperText = state.destinationWalletAddress
til.isHelperTextEnabled = state.isPayIdState() && parsedError == null
if (!state.viewFieldValue.isFromUserInput) et.update(state.viewFieldValue.value)