Summary:
Intra-bank transfer confirmation treats zero and negative numeric amounts as valid. The shared validation only checks that the amount is numeric and not greater than the selected balance, so 0 and pasted negative values can pass client-side validation and be used to build a transfer payload.
Steps to reproduce:
- Open Send Money and proceed to an intra-bank transfer confirmation screen with a selected source account.
- Enter
0 as the amount, or paste a negative value such as -1.
- Enter a description.
- Check the confirm button state or submit the form.
Expected behavior:
The app should require a transfer amount greater than zero and reject zero or negative values before attempting a transfer.
Observed behavior:
TransferConfirmState.amountIsValid returns true for 0 and negative values when they are not greater than the selected balance, and validateTransfer() does not reject non-positive amounts.
Device and Android version:
All supported platforms. This is a shared Kotlin Multiplatform validation issue in the transfer confirmation flow.
Screenshots:
Not applicable.
Possible fixes:
Update the transfer confirmation amount validation to require amount > 0, reset processing state when validation fails, and add regression coverage for non-positive amounts.
Summary:
Intra-bank transfer confirmation treats zero and negative numeric amounts as valid. The shared validation only checks that the amount is numeric and not greater than the selected balance, so
0and pasted negative values can pass client-side validation and be used to build a transfer payload.Steps to reproduce:
0as the amount, or paste a negative value such as-1.Expected behavior:
The app should require a transfer amount greater than zero and reject zero or negative values before attempting a transfer.
Observed behavior:
TransferConfirmState.amountIsValidreturns true for0and negative values when they are not greater than the selected balance, andvalidateTransfer()does not reject non-positive amounts.Device and Android version:
All supported platforms. This is a shared Kotlin Multiplatform validation issue in the transfer confirmation flow.
Screenshots:
Not applicable.
Possible fixes:
Update the transfer confirmation amount validation to require
amount > 0, reset processing state when validation fails, and add regression coverage for non-positive amounts.