View Issue Details

IDProjectCategoryView StatusLast Update
0010303Talerwallet (Android App)public2025-09-18 19:12
Reportermikolai Assigned ToAntoine A  
PriorityimmediateSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version1.0 
Target Version1.1 
Summary0010303: Withdrawal with conversion-enabled exchange not possible for amounts below 1
DescriptionWhen trying to withdraw from the Datenspuren exchange with EUR-SPURLOS conversion enabled, the UI per default shows a quite scary error.

I think I tracked that down to the wallet querying https://bank.taler.datenspuren.de/conversion-info/cashin-rate?amount_credit=SPURLOS:0, which returns

{"code":5128,"hint":"SPURLOS:0 is too small to be converted"}

and similar for all amounts below 1 (not sure if this is a configuration setting we'd have to change on the bank, but this is anyways bad UX, I'd say)

version 1.0.8.
Steps To Reproduce0. setup exchange.taler.datenspuren.de exchange (if it does not work as expected, see https://bugs.gnunet.org/view.php?id=10301)
1. tap on "withdraw" in the bottom sheet menu
2. see the form with an error saying "Error response did not even contain JSON. The request URL might be wrong or the service might be unavailable."
3. Although the numpad is shown, it is not possible to edit the amount
4. clicking on one of the preconfigured amounts shows a complete loading screen (also kind of unexpected, instead of showing a small loading animation on the button)
5. see that "confirm withdrawal" is now clickable, but don't click it yet
6. edit the amount to be any amount below 1 SPURLOS (0.99 for example)
7. See the same error message as above, being unable to withdraw such amounts
Tagsdatenspuren

Activities

mikolai

2025-08-29 17:00

developer   ~0025739

Screenshot_20250829-161914.png (148,868 bytes)   
Screenshot_20250829-161914.png (148,868 bytes)   
Screenshot_20250829-165042.png (103,027 bytes)   
Screenshot_20250829-165042.png (103,027 bytes)   

Christian Grothoff

2025-09-05 20:00

manager   ~0025829

Mikolai flagged this as a show-stopper (!) for Datenspuren in two weeks from now. => Priority bumped.

MarcS

2025-09-05 21:06

developer   ~0025830

iOS:
0. setup exchange.taler.datenspuren.de exchange
 -> worked fine, however only after the user added a slash at the end. Without that slash, wallet-core returns an internal core error.
1. tap on "withdraw" in the bottom sheet menu
2. see the form with an error saying "Error response did not even contain JSON. The request URL might be wrong or the service might be unavailable."
-> there was no error
3. Although the numpad is shown, it is not possible to edit the amount
-> amount is editable
4. clicking on one of the preconfigured amounts shows a complete loading screen (also kind of unexpected, instead of showing a small loading animation on the button)
5. see that "confirm withdrawal" is now clickable, but don't click it yet
6. edit the amount to be any amount below 1 SPURLOS (0.99 for example)
7. See the same error message as above, being unable to withdraw such amounts
-> works as it should

mikolai

2025-09-05 22:26

developer   ~0025831

Thanks for testing on iOS, we hadn't come to that yet!

> 0. setup exchange.taler.datenspuren.de exchange
> -> worked fine, however only after the user added a slash at the end. Without that slash, wallet-core returns an internal core error.

This is probably the same issue as https://bugs.gnunet.org/view.php?id=10308

Antoine A

2025-09-05 22:28

developer   ~0025832

The current conversion rate is:
'''
 "conversion_rate": {
    "cashin_ratio": "1",
    "cashin_fee": "SPURLOS:0",
    "cashin_tiny_amount": "SPURLOS:0.01",
    "cashin_rounding_mode": "nearest",
    "cashin_min_amount": "EUR:1",
    "cashout_ratio": "1",
    "cashout_fee": "EUR:0",
    "cashout_tiny_amount": "EUR:0.01",
    "cashout_rounding_mode": "nearest",
    "cashout_min_amount": "SPURLOS:1"
  }
'''
So an amount less than 1 EUR after conversion will be refused, this need to configured (cashin_min_amount) by the administrator

mikolai

2025-09-05 22:33

developer   ~0025833

Last edited: 2025-09-05 22:33

Interesting, could you point me to where I can configure this? Didn't find it while looking through the man pages of libeufin-nexus.conf and libeufin-bank.conf. This may be a regression for the regional currency deployment as we didn't run into this last year.

Also leaves the question open why iOS would accept smaller withdrawals then, but that's lower priority from the point of view of Datenspuren :)

Antoine A

2025-09-06 11:14

developer   ~0025835

As admin go to https://bank.taler.datenspuren.de/webui/#/conversion and in 'Config cashin' you can set 'Minimum amount' to 0 then press 'Update'

mikolai

2025-09-06 12:38

developer   ~0025836

Great, done that and now Android works as expected. So not an issue for Datenspuren anymore.

However, I see at least three follow-ups that should be tackled for other deployment scenarios:
- improve the documentation for regional currency setup mentioning these configuration options
- Android: fix bad UX whenever a conversion minimum is set
- iOS: take into account the conversion minimum and do not let the user start a withdrawal below that minimum (as currently seems to be the case)

MarcS

2025-09-06 14:50

developer   ~0025837

Well, on iOS I just ask wallet-core for a withdrawal - I didn't even know that some "minimum" exists and should be enforced. But since I don't get an error from wallet-core (but Android did?), we definitely should debug why.

Antoine A

2025-09-18 19:12

developer   ~0025942

Fixed regional deployment script in 9a6a761096bd2740418ccba1bec4119814829764

Issue History

Date Modified Username Field Change
2025-08-29 16:32 mikolai New Issue
2025-08-29 17:00 mikolai Note Added: 0025739
2025-08-29 17:00 mikolai File Added: Screenshot_20250829-161914.png
2025-08-29 17:00 mikolai File Added: Screenshot_20250829-165042.png
2025-08-31 01:17 Christian Grothoff Assigned To => Antoine A
2025-08-31 01:17 Christian Grothoff Status new => assigned
2025-08-31 01:17 Christian Grothoff Priority normal => high
2025-08-31 01:17 Christian Grothoff Product Version => 1.0
2025-08-31 01:17 Christian Grothoff Target Version => 1.1
2025-09-05 15:41 mikolai Tag Attached: datenspuren
2025-09-05 19:59 Christian Grothoff Priority high => immediate
2025-09-05 20:00 Christian Grothoff Note Added: 0025829
2025-09-05 21:06 MarcS Note Added: 0025830
2025-09-05 21:06 MarcS File Added: Screenshot 2025-09-05 at 21.01.29.png
2025-09-05 22:26 mikolai Note Added: 0025831
2025-09-05 22:28 Antoine A Note Added: 0025832
2025-09-05 22:33 mikolai Note Added: 0025833
2025-09-05 22:33 mikolai Note Edited: 0025833
2025-09-06 11:14 Antoine A Note Added: 0025835
2025-09-06 12:38 mikolai Note Added: 0025836
2025-09-06 14:50 MarcS Note Added: 0025837
2025-09-18 19:12 Antoine A Status assigned => resolved
2025-09-18 19:12 Antoine A Resolution open => fixed
2025-09-18 19:12 Antoine A Note Added: 0025942