View Issue Details

IDProjectCategoryView StatusLast Update
0007439Talerwallet (Android App)public2023-09-23 15:09
ReporterChristian Grothoff Assigned Toavalos  
Status closedResolutionfixed 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Version0.9 
Target Version0.9.3Fixed in Version0.9.3 
Summary0007439: cannot specify expiration for push payments in Android wallet
DescriptionWhen sending money to another wallet, it must be possible for the user to specify an expiration time for the push payment, as only then the coins that were pushed can be recovered if the receiver didn't accept the payment.

Similarly, we should also allow setting an expiration date when invoicing (technically a separate issue, but very symmetric so should be done at the same time).

This is also missing in the other wallets.
TagsNo tags attached.


related to 0007440 closedMarcS cannot specify expiration for push payments in WebExtension 



2023-01-03 15:34

developer   ~0019558

@sebasjm I see that there is purse_expiration now added in However, the API docs still don't contain this. I can try to scrape the source code for details, but `any` in the docs should really go away in favor of real docs.


2023-01-03 15:39

developer   ~0019559

> it must be possible for the user to specify an expiration time for the push payment, as only then the coins that were pushed can be recovered if the receiver didn't accept the payment.

@Christian Grothoff  it looks like before wallet-core was setting this on its on to a sane default value. I am not sure cluttering the UI with this is actually a good idea. Is there a strong use-case for customizing the expiry or could we not just add a small print saying: The money will be available for X days and if not claimed will return automatically (minus a nominal fee).


2023-01-03 15:45

developer   ~0019560

@sebasjm it also seems in this commit, the amount was moved into the contract terms which is also not reflected in the documentation:

Also, this breaks peer-push in the Android wallet, because it was yet another unannounced protocol change.


2023-01-03 16:23

developer   ~0019561

docs updated, should be online soon


2023-01-03 16:45

developer   ~0019563

Christian, if you feel strongly about letting the user specify expiry, do you have special requirements for how to let the user do that? several options as buttons with one pre-selected or a date picker? or an input field for a number of days?

Christian Grothoff

2023-01-06 15:02

manager   ~0019594

No super-strong feelings. But:
1) I suspect we don't need time to be very precise in the default implementation, so *date* should be enough, not the exact hour / minute / second.
2) We probably don't want to offer excessively long choices --- like in 10 years makes no sense. In fact, probably even 1 year will not make sense. I'd expect all sane choices to be < 3 months (as we're talking about locking up funds!).

So based on this, an input field with a number of days limited to 2 or maybe 3 digits is probably the simplest widget and one that will prevent stupid inputs, too ;-).


2023-02-21 01:37

developer   ~0019892

This is my proposal.
Expiration Date.png (14,190 bytes)   
Expiration Date.png (14,190 bytes)   


2023-02-21 13:20

developer   ~0019895

Looks good. Fine with me. Maybe put the entire widget into a re-usable composable.


2023-03-21 22:14

developer   ~0019972

implemented in

Issue History

Date Modified Username Field Change
2022-11-06 22:54 Christian Grothoff New Issue
2022-11-06 22:54 Christian Grothoff Status new => assigned
2022-11-06 22:54 Christian Grothoff Assigned To => grote
2022-11-06 22:55 Christian Grothoff Summary cannot specify expiration for push payments => cannot specify expiration for push payments in Android wallet
2022-11-06 22:56 Christian Grothoff Relationship added related to 0007440
2022-12-20 18:26 Christian Grothoff Target Version 0.9.1 => 0.9.2
2023-01-03 15:34 grote Note Added: 0019558
2023-01-03 15:39 grote Note Added: 0019559
2023-01-03 15:45 grote Note Added: 0019560
2023-01-03 16:23 sebasjm Note Added: 0019561
2023-01-03 16:45 grote Assigned To grote => Christian Grothoff
2023-01-03 16:45 grote Status assigned => feedback
2023-01-03 16:45 grote Note Added: 0019563
2023-01-06 15:02 Christian Grothoff Note Added: 0019594
2023-01-06 15:02 Christian Grothoff Assigned To Christian Grothoff => grote
2023-01-06 15:02 Christian Grothoff Status feedback => assigned
2023-02-21 01:16 avalos Assigned To grote => avalos
2023-02-21 01:37 avalos Note Added: 0019892
2023-02-21 01:37 avalos File Added: Expiration Date.png
2023-02-21 13:20 grote Note Added: 0019895
2023-03-07 18:55 Florian Dold Target Version 0.9.2 => 0.9.3
2023-03-21 22:14 grote Status assigned => resolved
2023-03-21 22:14 grote Resolution open => fixed
2023-03-21 22:14 grote Note Added: 0019972
2023-09-23 15:07 Christian Grothoff Fixed in Version => 0.9.3
2023-09-23 15:09 Christian Grothoff Status resolved => closed