View Issue Details

IDProjectCategoryView StatusLast Update
0009750Talerwallet (Android App)public2025-04-30 22:20
ReporterBohdan Assigned Toavalos  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Target Version1.0Fixed in Version1.0 
Summary0009750: No checking of claiming the order by the same wallet
DescriptionAndroid APP has a bag where the order is claimed (after that person returns to the scanner/no payment), and when the person scans the QR one more time, it shows claimed by another wallet.
Steps To Reproduce1. Find money
2. Buy a phone
...
n. Scan the QR code
n+1. Close the screen of payment, without paying the order
n+2. Scan the QR code one more time with the same app
n+3. See the error of the order being claimed by another wallet.
...
TagsNo tags attached.

Activities

avalos

2025-04-23 20:05

developer   ~0024653

Last edited: 2025-04-23 20:05

I found the cause!

When quitting the payment prompt using the back arrow (<-), the transaction is automatically aborted by the app:

sending message:
{
  "id": 36,
  "operation": "abortTransaction",
  "args": {
    "transactionId": "txn:payment:PM07XMMP1X5WBSFX1KCCRKWSFPWKDGWFMYBVTK0YZ75NS6DW13JG"
  }
}

Which causes the transaction to transition to failed(refused).

When scanning again, preparePayForUrl returns "already-confirmed" and the UI takes the user to the original transaction, which is then rendered as a failing transaction.

Bohdan

2025-04-23 21:06

developer   ~0024654

Congratulations!

But why do we not unclaim it? (no idea if there is such possibility)

not aborting seems like a nice choice

avalos

2025-04-24 13:05

developer   ~0024661

My idea was to un-abort the transaction if it wasn't paid.

avalos

2025-04-30 21:36

developer   ~0024731

With the latest wallet, payments are not automatically aborted when quitting the dialog without paying.

However, this can still be done explicitly using the new "cancel" button.

With latest wallet-core (not yet in Android), aborted payments now transition to `aborted(failed)` instead of `refused(failed)`, so the UI can render them correctly.

commit d5fbc7a7f227fe82e05cad67b98170ef61b40c97
Author: Iván Ávalos <avalos@disroot.org>
Date: Wed Apr 30 21:16:22 2025 +0200

    wallet-core: aborted payments transition to 'aborted' instead of 'failed'

avalos

2025-04-30 21:36

developer   ~0024732

image.png (61,033 bytes)   
image.png (61,033 bytes)   

avalos

2025-04-30 21:37

developer   ~0024733

Feel free to re-open if the issue persists.

Issue History

Date Modified Username Field Change
2025-04-16 17:06 Bohdan New Issue
2025-04-16 17:06 Bohdan Status new => assigned
2025-04-16 17:06 Bohdan Assigned To => avalos
2025-04-16 17:07 avalos Target Version => 1.0
2025-04-18 15:24 Christian Grothoff Target Version 1.0 => 1.0 stretch goals
2025-04-22 11:03 avalos Status assigned => acknowledged
2025-04-23 19:17 avalos Relationship added duplicate of 0009675
2025-04-23 20:05 avalos Note Added: 0024653
2025-04-23 20:05 avalos Note Edited: 0024653
2025-04-23 20:06 avalos Relationship deleted 0009675
2025-04-23 21:06 Bohdan Note Added: 0024654
2025-04-24 13:05 avalos Note Added: 0024661
2025-04-24 13:46 Christian Grothoff Status acknowledged => assigned
2025-04-30 21:36 avalos Note Added: 0024731
2025-04-30 21:36 avalos File Added: image.png
2025-04-30 21:36 avalos File Deleted: image.png
2025-04-30 21:36 avalos Note Added: 0024732
2025-04-30 21:36 avalos File Added: image.png
2025-04-30 21:37 avalos Status assigned => resolved
2025-04-30 21:37 avalos Resolution open => fixed
2025-04-30 21:37 avalos Note Added: 0024733
2025-04-30 22:20 Christian Grothoff Fixed in Version => 1.0
2025-04-30 22:20 Christian Grothoff Target Version 1.0 stretch goals => 1.0