From 42118254cb04ce127b038d56b7dbc94eef72d062 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 21 Jun 2024 11:21:17 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../send/impl/presentation/viewmodel/SendViewModel.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt index 978083d67d..456d91b7c6 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt @@ -93,11 +93,11 @@ internal class SendViewModel @Inject constructor( private val updateDelayedCurrencyStatusUseCase: UpdateDelayedNetworkStatusUseCase, private val fetchPendingTransactionsUseCase: FetchPendingTransactionsUseCase, private val isUtxoConsolidationAvailableUseCase: IsUtxoConsolidationAvailableUseCase, + private val validateWalletMemoUseCase: ValidateWalletMemoUseCase, @DelayedWork private val coroutineScope: CoroutineScope, validateTransactionUseCase: ValidateTransactionUseCase, currencyChecksRepository: CurrencyChecksRepository, isFeeApproximateUseCase: IsFeeApproximateUseCase, - validateWalletMemoUseCase: ValidateWalletMemoUseCase, getBalanceNotEnoughForFeeWarningUseCase: GetBalanceNotEnoughForFeeWarningUseCase, savedStateHandle: SavedStateHandle, ) : ViewModel(), DefaultLifecycleObserver, SendClickIntents { @@ -669,6 +669,10 @@ internal class SendViewModel @Inject constructor( maybeValidAddress }.getOrElse { ValidateAddressError.DataError(it).left() } + private fun validateMemo(value: String?): Boolean { + return value?.let { validateWalletMemoUseCase(cryptoCurrency.network, it).getOrElse { false } } ?: true + } + private suspend fun checkIfXrpAddressValue(value: String): Boolean { return BlockchainUtils.decodeRippleXAddress(value, cryptoCurrency.network.id.value)?.let { decodedAddress -> uiState = @@ -685,8 +689,11 @@ internal class SendViewModel @Inject constructor( } private fun autoNextFromRecipient(type: EnterAddressSource?, isValidAddress: Boolean) { + val memo = uiState.getRecipientState(stateRouter.isEditState)?.memoTextField?.value + val isValidMemo = validateMemo(memo) + val isRecent = type == EnterAddressSource.RecentAddress - if (isRecent && isValidAddress) onNextClick(stateRouter.isEditState) + if (isRecent && isValidAddress && isValidMemo) onNextClick(stateRouter.isEditState) } // endregion