View Issue Details

IDProjectCategoryView StatusLast Update
0007760Talerwallet (Android App)public2023-09-23 13:09
Reportersebasjm Assigned Togrote Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version0.9.3Fixed in Version0.9.3 
Summary0007760: making a deposit with lower case country (in the IBAN field) throws an error
DescriptionThe UI allows to send the deposit.
The deposit then fails because the exchange throws 404

Log

03-09 10:56:10.069 29726 29759 V taler-wallet-backend: got back response: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "response",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "operation": "getPendingOperations",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": 168,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "result": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "pendingOperations": [
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "exchange-update",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": "exchange-update:http:\/\/exchange.taler\/",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isDue": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "timestampDue": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678372689000
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isLongpolling": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "givesLifeness": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "exchangeBaseUrl": "http:\/\/exchange.taler\/"
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "exchange-check-refresh",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": "exchange-update:http:\/\/exchange.taler\/",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isDue": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "timestampDue": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678455489000
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isLongpolling": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "givesLifeness": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "exchangeBaseUrl": "http:\/\/exchange.taler\/"
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "exchange-update",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": "exchange-update:https:\/\/exchange.demo.taler.net\/",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isDue": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "timestampDue": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678372663000
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isLongpolling": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "givesLifeness": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "exchangeBaseUrl": "https:\/\/exchange.demo.taler.net\/"
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "exchange-check-refresh",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": "exchange-update:https:\/\/exchange.demo.taler.net\/",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isDue": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "timestampDue": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678455463000
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isLongpolling": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "givesLifeness": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "exchangeBaseUrl": "https:\/\/exchange.demo.taler.net\/"
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "deposit",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": "deposit:BMREECH4CM2187PKTZT6WJTKYQES4ZEWMCRN4NZEX4M025D6FNCG",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isDue": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "timestampDue": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1.678370181094625E12
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isLongpolling": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "givesLifeness": true,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "depositGroupId": "BMREECH4CM2187PKTZT6WJTKYQES4ZEWMCRN4NZEX4M025D6FNCG",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "lastError": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "code": 7005,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "when": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678370169701
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "hint": "Unexpected HTTP status 400 in response",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "requestUrl": "http:\/\/exchange.taler\/coins\/2M7G9JJRKMF1AM5PRKP1B8H9RCC858FWZDD4J37K3VXEB2PD1CMG\/deposit",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "requestMethod": "POST",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "httpStatusCode": 400,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "errorResponse": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "code": 26,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "hint": "A parameter in the request was malformed.",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "detail": "Country code `de' not supported\n"
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: }
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "retryInfo": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "firstTry": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678370133368
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "nextRetry": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1.678370181094625E12
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "retryCounter": 6
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: }
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: }
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: ]
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: }
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: }
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

grote

2023-03-09 16:43

reporter   ~0019943

What's the fix here? Force all characters in the IBAN to uppercase? Or show an error to the user if they enter lower-case?

sebasjm

2023-03-09 18:15

developer   ~0019944

The exchange will fail to validate the iban using this https://git.taler.net/exchange.git/tree/src/util/iban.c

There is a country table and a checksum validator.

Forcing uppercase seems ok, i think.

grote

2023-03-10 20:33

reporter   ~0019955

A C validator? Shouldn't it be the job of wallet core to validate/fix those?

However, I can do uppercase for now.

grote

2023-03-21 16:47

reporter   ~0019971

So I did uppercasing, but entering random stuff now gives me an IBAN checksum is wrong error. I would really expect wallet-core to have a validator method for wallets instead of each wallet having to implement their own.

Florian Dold

2023-03-29 19:07

manager   ~0019990

As discussed on Mattermost, wallet-core v0.9.3-dev.10 now supports the "validateIban" request.

grote

2023-04-11 14:39

reporter   ~0020068

IBAN gets validated in https://git.taler.net/taler-android.git/commit/?id=f5aced13fda3132d5ee3a6947fe95f7b7b22b98a

Issue History

Date ModifiedUsernameFieldChange
2023-03-09 14:21sebasjmNew Issue
2023-03-09 14:21sebasjmStatusnew => assigned
2023-03-09 14:21sebasjmAssigned To => grote
2023-03-09 16:43groteNote Added: 0019943
2023-03-09 18:15sebasjmNote Added: 0019944
2023-03-10 20:33groteNote Added: 0019955
2023-03-21 16:47groteAssigned Togrote => Florian Dold
2023-03-21 16:47groteStatusassigned => feedback
2023-03-21 16:47groteNote Added: 0019971
2023-03-29 19:07Florian DoldNote Added: 0019990
2023-03-29 19:07Florian DoldAssigned ToFlorian Dold => grote
2023-03-29 19:07Florian DoldStatusfeedback => assigned
2023-04-04 17:33Florian DoldTarget Version0.9.2 => 0.9.3
2023-04-11 14:39groteStatusassigned => informing
2023-04-11 14:39groteResolutionopen => fixed
2023-04-11 14:39groteNote Added: 0020068
2023-09-23 13:07Christian GrothoffFixed in Version => 0.9.3
2023-09-23 13:09Christian GrothoffStatusinforming => closed