Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,7 @@ suspend fun getData(): Result<Data> = withContext(Dispatchers.IO) {
- ALWAYS add business logic to repository layer via methods returning `Result<T>` and use it in ViewModels
- ALWAYS order upstream architectural data flow this way: `UI -> ViewModel -> Repository -> RUST` and vice versa for downstream
- ALWAYS add new localizable string resources in alphabetical order in `strings.xml`
- ALWAYS give rail-specific copy of a shared message its own key with the rail as suffix (`wallet__send_dialog2_usdt` next to `wallet__send_dialog2`) and leave the shared key unchanged
- ALWAYS add or update the translation in every `values-*/strings.xml` in the same PR when adding or changing an English string; translations live in this repository, not in Transifex
- NEVER add string resources for strings used only in dev settings screens and previews and never localize acronyms
- ALWAYS use template in `.github/pull_request_template.md` for PR descriptions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ data class UsdtSendState(
}

private fun UsdtQuote.warnings(balance: ULong?, warnOver100: Boolean): List<SanityWarning> = buildList {
if (balance != null && amount > balance / 2u) add(SanityWarning.OVER_HALF_BALANCE)
if (balance != null && amount > balance / 2u) add(SanityWarning.OVER_HALF_USDT_BALANCE)
if (warnOver100 && amount > 100_000_000u) add(SanityWarning.VALUE_OVER_100_USD)
val totalCost = USat(maximumFee) + USat(USat(amount) - USat(receivedAmount))
if (totalCost > 10_000_000u) add(SanityWarning.FEE_OVER_10_USD)
Expand Down
1 change: 1 addition & 0 deletions app/src/main/java/to/bitkit/viewmodels/AppViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8131,6 +8131,7 @@ data class OnchainFeeUi(
enum class SanityWarning(@StringRes val message: Int, val testTag: String) {
VALUE_OVER_100_USD(R.string.wallet__send_dialog1, "SendDialog1"),
OVER_HALF_BALANCE(R.string.wallet__send_dialog2, "SendDialog2"),
OVER_HALF_USDT_BALANCE(R.string.wallet__send_dialog2_usdt, "SendDialog2"),
FEE_OVER_HALF_VALUE(R.string.wallet__send_dialog3, "SendDialog3"),
FEE_OVER_10_USD(R.string.wallet__send_dialog4, "SendDialog4"),
// TODO SendDialog5 https://github.com/synonymdev/bitkit/blob/master/src/screens/Wallets/Send/ReviewAndSend.tsx#L457-L466
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-ar/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1016,6 +1016,7 @@
<string name="wallet__send_details">التفاصيل</string>
<string name="wallet__send_dialog1">يبدو أنك ترسل أكثر من 100$. هل تريد المتابعة؟</string>
<string name="wallet__send_dialog2">يبدو أنك ترسل أكثر من 50% من إجمالي رصيدك. هل تريد المتابعة؟</string>
<string name="wallet__send_dialog2_usdt" formatted="false">يبدو أنك ترسل أكثر من 50% من رصيدك من USDT. هل تريد المتابعة؟</string>
<string name="wallet__send_dialog3">تبدو رسوم المعاملة أكثر من 50% من المبلغ الذي ترسله. هل تريد المتابعة؟</string>
<string name="wallet__send_dialog4">تبدو رسوم المعاملة أكثر من 10$. هل تريد المتابعة؟</string>
<string name="wallet__send_error_create_tx">تعذر بث المعاملة. يرجى المحاولة مرة أخرى.</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-b+es+419/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1041,6 +1041,7 @@
<string name="wallet__send_details">Detalles</string>
<string name="wallet__send_dialog1">Parece que está enviando más de 100 dólares. ¿Desea continuar?</string>
<string name="wallet__send_dialog2">Parece que está enviando más del 50% de su saldo total. ¿Desea continuar?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Parece que está enviando más del 50% de su saldo de USDT. ¿Desea continuar?</string>
<string name="wallet__send_dialog3">La comisión de transacción parece ser superior al 50% del importe que está enviando. ¿Desea continuar?</string>
<string name="wallet__send_dialog4">La tasa de transacción parece ser superior a 10 dólares. ¿Desea continuar?</string>
<string name="wallet__send_error_create_tx">No se ha podido emitir la transacción. Por favor, inténtelo de nuevo.</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-ca/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1034,6 +1034,7 @@
<string name="wallet__send_details">Detalls</string>
<string name="wallet__send_dialog1">Sembla que estàs enviant més de 100 $. Vols continuar?</string>
<string name="wallet__send_dialog2">Sembla que estàs enviant més del 50% del teu saldo total. Vols continuar?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Sembla que estàs enviant més del 50% del teu saldo de USDT. Vols continuar?</string>
<string name="wallet__send_dialog3">La comissió de la transacció sembla ser més del 50% de l\'import que estàs enviant. Vols continuar?</string>
<string name="wallet__send_dialog4">La comissió de la transacció sembla ser superior a 10 $. Vols continuar?</string>
<string name="wallet__send_error_create_tx">No es pot transmetre la transacció. Si us plau, torna-ho a provar.</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-cs/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1038,6 +1038,7 @@
<string name="wallet__send_details">Podrobnosti</string>
<string name="wallet__send_dialog1">Zdá se, že posíláte více než $100. Přejete si pokračovat?</string>
<string name="wallet__send_dialog2">Zdá se, že posíláte více než 50 % svého celkového zůstatku. Přejete si pokračovat?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Zdá se, že posíláte více než 50 % svého zůstatku USDT. Přejete si pokračovat?</string>
<string name="wallet__send_dialog3">Zdá se, že transakční poplatek přesahuje 50 % částky, kterou odesíláte. Přejete si pokračovat?</string>
<string name="wallet__send_dialog4">Transakční poplatek se zdá být vyšší než $10. Přejete si pokračovat?</string>
<string name="wallet__send_error_create_tx">Transakci se nepodařilo provést. Zkuste to prosím znovu.</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -905,6 +905,7 @@
<string name="wallet__send_yes">Ja, senden</string>
<string name="wallet__send_dialog1">Es scheint, dass du über $100 sendest. Möchtest du fortfahren?</string>
<string name="wallet__send_dialog2">Es scheint, dass du über 50% deines Gesamtguthabens sendest. Möchtest du fortfahren?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Es scheint, dass du über 50% deines USDT-Guthabens sendest. Möchtest du fortfahren?</string>
<string name="wallet__send_dialog3">Die Transaktionsgebühr scheint über 50% des gesendeten Betrags zu liegen. Möchtest du fortfahren?</string>
<string name="wallet__send_dialog4">Die Transaktionsgebühr scheint über $10 zu liegen. Möchtest du fortfahren?</string>
<string name="wallet__send_sent">Bitcoin gesendet</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-el/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1022,6 +1022,7 @@
<string name="wallet__send_details">Λεπτομέρειες</string>
<string name="wallet__send_dialog1">Φαίνεται ότι στέλνεις πάνω από $100. Θέλεις να συνεχίσεις;</string>
<string name="wallet__send_dialog2">Φαίνεται ότι στέλνεις πάνω από 50% του συνολικού υπολοίπου σου. Θέλεις να συνεχίσεις;</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Φαίνεται ότι στέλνεις πάνω από 50% του υπολοίπου σου σε USDT. Θέλεις να συνεχίσεις;</string>
<string name="wallet__send_dialog3">Το τέλος συναλλαγής φαίνεται να είναι πάνω από 50% του ποσού που στέλνεις. Θέλεις να συνεχίσεις;</string>
<string name="wallet__send_dialog4">Το τέλος συναλλαγής φαίνεται να είναι πάνω από $10. Θέλεις να συνεχίσεις;</string>
<string name="wallet__send_error_create_tx">Δεν ήταν δυνατή η μετάδοση της συναλλαγής. Δοκίμασε ξανά.</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-es-rES/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1036,6 +1036,7 @@
<string name="wallet__send_details">Detalles</string>
<string name="wallet__send_dialog1">Parece que está enviando más de 100 dólares. ¿Desea continuar?</string>
<string name="wallet__send_dialog2">Parece que está enviando más del 50% de su saldo total. ¿Desea continuar?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Parece que está enviando más del 50% de su saldo de USDT. ¿Desea continuar?</string>
<string name="wallet__send_dialog3">La comisión de transacción parece ser superior al 50% del importe que está enviando. ¿Desea continuar?</string>
<string name="wallet__send_dialog4">La comisión de transacción parece ser superior a 10 dólares. ¿Desea continuar?</string>
<string name="wallet__send_error_create_tx">No se pudo emitir la transacción. Por favor, inténtalo de nuevo.</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -898,6 +898,7 @@
<string name="wallet__send_yes">Sí, enviar</string>
<string name="wallet__send_dialog1">Parece que está enviando más de 100 dólares. ¿Desea continuar?</string>
<string name="wallet__send_dialog2">Parece que está enviando más del 50% de su saldo total. ¿Desea continuar?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Parece que está enviando más del 50% de su saldo de USDT. ¿Desea continuar?</string>
<string name="wallet__send_dialog3">La comisión de transacción parece ser superior al 50% del importe que está enviando. ¿Desea continuar?</string>
<string name="wallet__send_dialog4">La comisión de transacción parece ser superior a 10 dólares. ¿Desea continuar?</string>
<string name="wallet__send_sent">Bitcoin Enviado</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -907,6 +907,7 @@
<string name="wallet__send_yes">Oui, Envoyer</string>
<string name="wallet__send_dialog1">Il apparaît que vous envoyez plus de 100 $. Voulez-vous continuer ?</string>
<string name="wallet__send_dialog2">Il apparaît que vous envoyez plus de 50 % de votre solde total. Voulez-vous continuer ?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Il apparaît que vous envoyez plus de 50 % de votre solde USDT. Voulez-vous continuer ?</string>
<string name="wallet__send_dialog3">Les frais de transaction semblent être supérieurs à 50 % du montant que vous envoyez. Voulez-vous continuer ?</string>
<string name="wallet__send_dialog4">Les frais de transaction s\'élèvent à plus de 10 $. Voulez-vous continuer ?</string>
<string name="wallet__send_sent">Envoi de bitcoins</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1037,6 +1037,7 @@
<string name="wallet__send_details">Dettagli</string>
<string name="wallet__send_dialog1">Sembra che tu stia inviando più di $100. Vuoi continuare?</string>
<string name="wallet__send_dialog2">Sembra che tu stia inviando più del 50% del suo saldo totale. Vuoi continuare?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Sembra che tu stia inviando più del 50% del tuo saldo USDT. Vuoi continuare?</string>
<string name="wallet__send_dialog3">La commissione della transazione sembra essere superiore al 50% dell\'importo che stai inviando. Vuoi continuare?</string>
<string name="wallet__send_dialog4">La commissione della transazione sembra essere superiore a $10. Vuoi continuare?</string>
<string name="wallet__send_error_create_tx">Impossibile trasmettere la transazione. Per favore riprova.</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-nl/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1032,6 +1032,7 @@
<string name="wallet__send_details">Details</string>
<string name="wallet__send_dialog1">Het lijkt erop dat je meer dan $100 verstuurt. Wil je doorgaan?</string>
<string name="wallet__send_dialog2">Het lijkt erop dat je meer dan 50% van je totale saldo verstuurt. Wil je doorgaan?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Het lijkt erop dat je meer dan 50% van je USDT-saldo verstuurt. Wil je doorgaan?</string>
<string name="wallet__send_dialog3">De transactievergoeding lijkt meer dan 50% van het bedrag dat je verstuurt te zijn. Wil je doorgaan?</string>
<string name="wallet__send_dialog4">De transactievergoeding lijkt meer dan $10 te zijn. Wil je doorgaan?</string>
<string name="wallet__send_error_create_tx">Kan de transactie niet verzenden. Probeer het opnieuw.</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-pl/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -909,6 +909,7 @@
<string name="wallet__send_yes">Tak, wyślij</string>
<string name="wallet__send_dialog1">Wygląda na to, że wysyłasz ponad $100. Czy kontynuować?</string>
<string name="wallet__send_dialog2">Wygląda na to, że wysyłasz ponad 50% swojego salda. Czy kontynuować?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Wygląda na to, że wysyłasz ponad 50% swojego salda USDT. Czy kontynuować?</string>
<string name="wallet__send_dialog3">Opłata transakcyjna wynosi ponad 50% wysyłanej kwoty. Czy chcesz kontynuować?</string>
<string name="wallet__send_dialog4">Opłata transakcyjna wynosi ponad 10 USD. Czy chcesz kontynuować?</string>
<string name="wallet__send_sent">Wysłane bitcoiny</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-pt-rBR/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1041,6 +1041,7 @@
<string name="wallet__send_details">Detalhes</string>
<string name="wallet__send_dialog1">Parece que você está enviando mais de US$ 100. Deseja continuar?</string>
<string name="wallet__send_dialog2">Parece que você está enviando mais de 50% do seu saldo total. Deseja continuar?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Parece que você está enviando mais de 50% do seu saldo de USDT. Deseja continuar?</string>
<string name="wallet__send_dialog3">A taxa de transação parece ser superior a 50% do valor que você está enviando. Deseja continuar?</string>
<string name="wallet__send_dialog4">A taxa de transação parece ser superior a US$ 10. Deseja continuar?</string>
<string name="wallet__send_error_create_tx">Não foi possível transmitir a transação. Por favor, tente novamente.</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-pt/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -778,6 +778,7 @@
<string name="wallet__send_yes">Sim, Enviar</string>
<string name="wallet__send_dialog1">Parece que você está enviando mais de US$ 100. Deseja continuar?</string>
<string name="wallet__send_dialog2">Parece que você está enviando mais de 50% do seu saldo total. Deseja continuar?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Parece que você está enviando mais de 50% do seu saldo de USDT. Deseja continuar?</string>
<string name="wallet__send_dialog3">A taxa de transação parece ser superior a 50% do valor que você está enviando. Deseja continuar?</string>
<string name="wallet__send_dialog4">A taxa de transação parece ser superior a US$ 10. Deseja continuar?</string>
<string name="wallet__send_sent">Bitcoin Enviado</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1069,6 +1069,7 @@ Bitkit должен увеличить приёмную ёмкость ваше
<string name="wallet__send_details">Подробности</string>
<string name="wallet__send_dialog1">Похоже, вы отправляете более 100$. Вы хотите продолжать?</string>
<string name="wallet__send_dialog2">Похоже, вы отправляете более 50% от общего баланса. Вы хотите продолжать?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">Похоже, вы отправляете более 50% вашего баланса USDT. Вы хотите продолжать?</string>
<string name="wallet__send_dialog3">Комиссия за транзакцию составляет более 50% от суммы, которую вы отправляете. Вы хотите продолжать?</string>
<string name="wallet__send_dialog4">Комиссия за транзакцию составляет более 10$. Вы хотите продолжать?</string>
<string name="wallet__send_error_create_tx">Не удалось отправить транзакцию. Пожалуйста, попробуйте снова.</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1538,6 +1538,7 @@
<string name="wallet__send_details">Details</string>
<string name="wallet__send_dialog1">It appears you are sending over $100. Do you want to continue?</string>
<string name="wallet__send_dialog2">It appears you are sending over 50% of your total balance. Do you want to continue?</string>
<string name="wallet__send_dialog2_usdt" formatted="false">It appears you are sending over 50% of your USDT balance. Do you want to continue?</string>
Comment thread
ovitrif marked this conversation as resolved.
<string name="wallet__send_dialog3">The transaction fee appears to be over 50% of the amount you are sending. Do you want to continue?</string>
<string name="wallet__send_dialog4">The transaction fee appears to be over $10. Do you want to continue?</string>
<string name="wallet__send_error_create_tx">Unable to broadcast the transaction. Please try again.</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,15 @@ class UsdtViewModelTest : BaseUnitTest() {
verify(repo, never()).send(any(), anyOrNull(), any())
}

@Test
fun `sending over half the balance shows the usdt balance warning`() = test {
val model = createViewModel(walletState = UsdtWalletState(balance = 1_500_000u))
model.quote(quote.recipient, "1", quote.destination).join()
model.confirm().join()
assertEquals(SanityWarning.OVER_HALF_USDT_BALANCE, model.state.value.warning)
verify(repo, never()).send(any(), anyOrNull(), any())
}

@Test
fun `recorded payment that exceeds its deadline retains recovery with an expiry error`() = test {
val retained: UsdtTransfer = mock { on { id }.thenReturn(quote.id) }
Expand Down
1 change: 1 addition & 0 deletions changelog.d/next/1644.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
USDT sends over half your USDT balance now warn about the USDT balance instead of the total balance.
1 change: 1 addition & 0 deletions docs/usdt-qa.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ Reference: [USDT designs](https://www.figma.com/design/ltqvnKiejWj0JQiqtDf2JJ/Bi
- [ ] Open address details, verify Copy and QR target the same address, and return to the QR.
- [ ] Back out of an unprepared network and verify the displayed network always matches the QR. Return to Arbitrum and verify its original wallet address.
- [ ] With an authorized incoming transfer or an explicitly identified fixture, verify teal receive confetti, Details and OK; Details opens that transfer.
- [ ] With an authorized send or an explicitly identified fixture, send more than half the USDT balance: the warning reads "It appears you are sending over 50% of your USDT balance. Do you want to continue?", while a bitcoin send over half the total balance keeps the total balance copy.
- [ ] With an authorized send or an explicitly identified fixture, check the swipe after warning and PIN prompts: loading and the completed checkmark stay at the right end, the swipe label is hidden, and confirmation keeps its side spacing until the success screen appears.
- [ ] Verify bridge review, estimated fees and deposit history round displayed amounts to cents without changing the exact payment, QR or support-export values. Check a nonzero sub-cent value displays <0.01.
- [ ] In delayed, failed, refunding, refunded and support-needed bridge details, verify Contact Support and Copy Details are small 40-point buttons in one row, matching Request refund / Hide details. Copy Details retains the full references; Contact Support opens the prefilled report without submitting it.
Expand Down
Loading