View Issue Details

IDProjectCategoryView StatusLast Update
0009488Talerwallet (iOS App)public2025-03-27 14:27
ReporterFlorian Dold Assigned Toavalos  
PrioritynormalSeverityfeatureReproducibilityN/A
Status assignedResolutionopen 
Target Version1.0 
Summary0009488: iOS walllet should render insufficient balance details / hints for merchant payments
DescriptionRight now we just show "balance insufficient", which can be confusing when the wallet has a balance in that particular currency, but it is not accepted by the merchant.

Instead, we should render the insufficient balance details and ideally also give some actionable hint ("merchant might be misconfigured").
TagsNo tags attached.

Activities

Florian Dold

2025-03-20 12:15

manager   ~0024254

Easiest way (other than mocking in the UI directly) would be a dev-experiment that causes all payments to return a particular insufficient balance details. Will implement this.

Florian Dold

2025-03-26 18:19

manager   ~0024311

The causeHint that the dev experiment should trigger is the following:

  /**
   * Merchant accepts funds from a matching exchange, but the funds can't be
   * deposited with the wire method.
   */
  MerchantDepositInsufficient = "merchant-deposit-insufficient",

avalos

2025-03-27 14:20

developer   ~0024315

This can now be easily tested in wallet-core:

commit 90eaa718692a614981c3befda42bdfc2e2fc47d5
Author: Iván Ávalos <avalos@disroot.org>
Date: Thu Mar 27 14:17:50 2025 +0100

    wallet-core: add merchant-deposit-insufficient dev experiment

Simply run taler://dev-experiment/merchant-deposit-insufficient, and all purchases will give this error.

avalos

2025-03-27 14:27

developer   ~0024316

causeHint rendering was implemented in Android:

commit fe8a23b42341a4732f2f5967415068c56abd6adf
Author: Iván Ávalos <avalos@disroot.org>
Date: Thu Mar 27 14:25:25 2025 +0100

    [wallet] render causeHint in merchant payments

@MarcS: we should use the same strings on iOS:

<string name="payment_balance_insufficient">Balance insufficient!</string>
    <string name="payment_balance_insufficient_hint_age_restricted">Purchase not possible due to age restriction</string>
    <string name="payment_balance_insufficient_hint_exchange_missing_global_fees">Provider is missing the global fee configuration, this likely means it is misconfigured</string>
    <string name="payment_balance_insufficient_hint_fees_not_covered">Not enough funds to pay the provider fees not covered by the merchant</string>
    <string name="payment_balance_insufficient_hint_merchant_accept_insufficient">Merchant doesn\'t accept money from one or more providers in this wallet</string>
    <string name="payment_balance_insufficient_hint_merchant_deposit_insufficient">Merchant doesn\'t accept the wire method of the provider, this likely means it is misconfigured</string>
    <string name="payment_balance_insufficient_hint_wallet_balance_material_insufficient">Some of the coins needed for this purchase are currently unavailable</string>
    <string name="payment_balance_insufficient_max">Balance insufficient! Maximum is %1$s</string>

Issue History

Date Modified Username Field Change
2025-01-29 12:31 Florian Dold New Issue
2025-01-29 12:31 Florian Dold Status new => assigned
2025-01-29 12:31 Florian Dold Assigned To => MarcS
2025-01-29 12:31 Florian Dold Issue cloned: 0009489
2025-03-20 12:15 Florian Dold Note Added: 0024254
2025-03-20 12:15 Florian Dold Assigned To MarcS => Florian Dold
2025-03-26 18:19 Florian Dold Note Added: 0024311
2025-03-26 18:20 Florian Dold Assigned To Florian Dold => avalos
2025-03-27 14:20 avalos Note Added: 0024315
2025-03-27 14:27 avalos Note Added: 0024316