View Issue Details

IDProjectCategoryView StatusLast Update
0004092Talerwallet (WebExtension)public2019-12-26 20:37
ReporterMarcello Stanisci Assigned ToMarcello Stanisci 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
PrioritynormalSeveritymajorReproducibilityN/A
Status closedResolutionfixed 
Product Version0.0 
Target Version0.0 
Summary0004092: payment algorithm improvement (?)
DescriptionAs of now, the algorithm works by ranking the coins from
the "most convenient" to the "least convenient" coin and then
it accumulates coins in order to achieve *at least* the price
to pay.

For example, say the price to pay is KUDOS 10.01, and the coins rank is

1) KUDOS 10
2) KUDOS 2
3) KUDOS 0.01

The wallet will send the payment by packing [KUDOS 10, KUDOS 2]

The situation gets worse if the rank is

1) KUDOS 10
2) KUDOS 10
3) KUDOS 0.01
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Christian Grothoff

2015-12-17 10:54

manager   ~0010011

Last edited: 2015-12-17 14:47

Need to include the refresh cost selectively.

For coin value <= contract amount (with fees), the refresh cost is zero (i.e. the 10 EUR coin when it is picked).

For coin value > contract amount (with fees), the refresh cost needs to be included ("penalty"). As we select coins to pay, we need to re-sort the array after each coin is selected. So initially, refresh costs are zero (for the example). We pick 10 EUR. Then, refresh costs are applied. 10/2 EUR coins now have a refresh cost, the 0.01 ct coin does NOT. If refresh cost penalty is sufficiently high, this means we pick the 0.01ct coin.

Note that we can include both the financial cost of the refresh (fee), as well as a "performance" cost (we need to do extra crypto, extra latency, extra bandwidth).

Christian Grothoff

2015-12-17 10:57

manager   ~0010012

Refresh costs include:
* melt fee (melt the old coin), PLUS
* withdraw fees for the new coins (i.e. the 2 EUR coin may create
  several withdraw fees for the change given, i.e. for the
  example we may return 1 EUR, 50 ct, 25 ct and 24 1ct change pieces,
  so possibly like 27 withdraw fees in addition to the melt fee!)
* and then we could also budget for the performance cost

Marcello Stanisci

2015-12-22 10:39

reporter   ~0010025

Further versions of the wallet may *suggest* the user to withdraw 10 KUDOS,
in case he has 10 KUDOS made by little pieces.

Marcello Stanisci

2015-12-22 16:32

reporter   ~0010026

algorithm tested. Deposit fee to be included in the
computation.

Marcello Stanisci

2015-12-22 17:38

reporter   ~0010027

deposit fee accounting added. To test.

Issue History

Date ModifiedUsernameFieldChange
2015-12-09 16:14Marcello StanisciNew Issue
2015-12-09 16:14Marcello StanisciStatusnew => assigned
2015-12-09 16:14Marcello StanisciAssigned To => Marcello Stanisci
2015-12-17 10:54Christian GrothoffNote Added: 0010011
2015-12-17 10:57Christian GrothoffNote Added: 0010012
2015-12-17 11:02Christian GrothoffProduct Version => 0.0
2015-12-17 11:02Christian GrothoffTarget Version => 0.0
2015-12-17 14:43Christian GrothoffSeverityminor => major
2015-12-17 14:47Christian GrothoffNote Edited: 0010011
2015-12-22 10:39Marcello StanisciNote Added: 0010025
2015-12-22 16:32Marcello StanisciNote Added: 0010026
2015-12-22 17:38Marcello StanisciNote Added: 0010027
2015-12-22 17:38Marcello StanisciStatusassigned => informing
2015-12-22 17:38Marcello StanisciResolutionopen => fixed
2015-12-25 09:48Christian GrothoffStatusinforming => closed
2019-12-26 20:37Florian DoldCategorywallet (browser-based) => wallet (WebExtensions)
2023-04-13 18:37Florian DoldCategorywallet (WebExtensions) => wallet (WebExtension)