View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0010308 | Taler | wallet (Android App) | public | 2025-08-29 17:49 | 2025-09-15 13:39 |
Reporter | t3sserakt | Assigned To | avalos | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | assigned | Resolution | open | ||
Product Version | 1.0 | ||||
Target Version | 1.1 | ||||
Summary | 0010308: Error configuring exchange | ||||
Description | Entered https://exchange.taler.datenspuren.de got error (see attachment). App version 1.0.8. | ||||
Tags | datenspuren | ||||
Attached Files | |||||
|
That's a UI issue on Android: The UI has to canonicalize the base URL (either by implementing the relevant algorithm or using the helper request from wallet-core) before passing it into other wallet-core requests. |
|
Why do we need a separate helper request for this? i.e. Why can't the request do the canonicalization itself? |
|
I had exactly the same discussion with Florian 6 weeks ago. This is the only place (in the iOS wallet) where the user enters a URL: Adding an exchange. In the wallet, we always show the user a prettified URL without a trailing slash, and without a leading scheme. So why do they have to enter any of those here? In Petit Vivy, we even decided to get rid of the 'exchange' word, and prettify "exchange.demo.taler.net" down to "demo.taler.net" - the word 'exchange' should no longer be used in user-facing UI in the future. Instead we use the term "payment service"... We already have the general rule, that instead of implementing something 3 times in 3 wallets, we want to implement this once in wallet-core if possible. So wallet-core should: 1) add the trailing slash itself if it needs it - but accept a trailing slash when the user entered it 2) add the "https://" scheme at the beginning if it is missing - but accept any leading scheme the user provided 3) add the term "exchange." after the scheme, or at the beginning if the user did not provide a scheme and just adding the https scheme doesn't suffice to connect the exchange. Thus the user could enter e.g. "demo.taler.net" (the most user-friendly variant), "https://demo.taler.net/" (without "exchange.") , or "exchange.demo.taler.net" into the textinput field, and wallet-core should expand this user data where missing to connect to https://exchange.demo.taler.net/. One implementation, instead of each wallet needing to do this (differently) itself. |
|
And we already have a request that canonicalizes a base URL *without* going to the network: canonicalizeBaseUrl({url: string}). @Ivan: Please use that before passing data to the request to add an exchange. @Marc: What you're describing isn't documented yet (=> Vlada!) and IMO needs to be treated differently, because it does *way* more than just canonicalizing the base URL. It tries to guess it and validates guesses via the network. And it's specific to the exchange, while canonicalizeBaseUrl is generic across Taler base URLs. => https://bugs.gnunet.org/view.php?id=10380 |
|
> @Ivan: Please use that before passing data to the request to add an exchange. Again, why can't this be part of the `addExchange` request itself? Literally, in the only place in the UI where it's used, it requires canonicalization. |
|
I fully agree with Ivan - wallet-core should implement this *once* instead of all wallets needing to implement it by themselves. And yes, if you need to try several options with multiple network calls, then just do it - the user wants to add this Exchange, that's all what counts. |
|
Alright, I agree that it's sensible as a convenience, so I've added the "allowCompletion: bool" flag to the addExchange request. I've also implemented the "completeExchangeBaseUrl" request. That is still required for the web extension, which already tries to contact the exchange while the user is typing. |
Date Modified | Username | Field | Change |
---|---|---|---|
2025-08-29 17:49 | t3sserakt | New Issue | |
2025-08-29 17:49 | t3sserakt | File Added: Screenshot_20250829-174018.png | |
2025-08-31 01:17 | Christian Grothoff | Assigned To | => Florian Dold |
2025-08-31 01:17 | Christian Grothoff | Status | new => assigned |
2025-08-31 01:17 | Christian Grothoff | Product Version | => 1.0 |
2025-08-31 01:17 | Christian Grothoff | Target Version | => 1.1 |
2025-08-31 21:23 | Christian Grothoff | Tag Attached: datenspuren | |
2025-09-01 12:38 | Florian Dold | Note Added: 0025765 | |
2025-09-01 12:38 | Florian Dold | Assigned To | Florian Dold => avalos |
2025-09-02 18:06 | avalos | Note Added: 0025780 | |
2025-09-05 12:05 | avalos | Assigned To | avalos => Florian Dold |
2025-09-05 12:05 | avalos | Status | assigned => feedback |
2025-09-05 12:05 | avalos | Note Edited: 0025780 | |
2025-09-06 07:00 | MarcS | Note Added: 0025834 | |
2025-09-08 20:18 | Florian Dold | Note Added: 0025860 | |
2025-09-08 20:18 | Florian Dold | Assigned To | Florian Dold => avalos |
2025-09-08 20:18 | Florian Dold | Status | feedback => assigned |
2025-09-10 11:47 | avalos | Note Added: 0025876 | |
2025-09-15 11:09 | MarcS | Note Added: 0025908 | |
2025-09-15 13:39 | Florian Dold | Note Added: 0025912 |