View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0004498||Taler||wallet (WebExtensions)||public||2016-05-09 09:57||2017-06-06 14:18|
|Reporter||Florian Dold||Assigned To||Florian Dold|
|Priority||normal||Severity||feature||Reproducibility||have not tried|
|Target Version||0.3||Fixed in Version||0.3|
|Summary||0004498: wallet needs to periodically check /keys for panic DK revocation and trigger /payback|
|Description||Currently the wallet doesn't re-fetch /keys properly ...|
|Tags||No tags attached.|
The wallet already does re-fetch /keys before all relevant operations, like withdraw and refresh.
Is there a need to also re-fetch it periodically? And if so, at what rate?
||This is only technically needed for the "bankrupcy"/panic/DK compromise protocol which is not yet implemented or even speced. Left for 0.3.|
Specification was added to the exchange API in d39bbc6..91d1ae8.
This includes /keys (where the notification happens) and /payback (where the coins will be refunded).
Note that the wallet must keep the pre-secrets for the blinding factors around for /payback (as it needs to link the coin to the reserve).
The wallet should trigger /payback in rapid succession for all affected coins, verify the amounts the exchange is willing to refund (or check the double-spending proof), and report to the user. The (non-error) report should be shown in a new tab and include the total amount (over all coins for which the exchange returned the same wire subject and payment deadline), promised wire transfer deadline and wire transfer subject AND (from the records about the reserve) the bank account details to which the exchange will wire the money (this is NOT returned by the exchange).
Two things we need to think about before implementing:
- Testing: Is there currently a way to trigger the emergency payback on the exchange side? I.e. how can I tell the exchange to put a denom pub on the payback list?
- The UX aspect: Where in the UI do we show links to the reports for the emergency refund? Just in the log or also somewhere else? Of course we can open a tab when we're done, but there should be a way to get back to the report.
Testing: currently not possible, I still need to implement it. Watch 0003887.
UX aspect: I've decided to implement /payback simply as coins being added back to the reserve balance. Once we have 0004956 this means that the money _will_ go back to the customer's bank account, but it _also_ means that the wallet _could_ just /payback the old coins and immediately withdraw fresh ones (that is, if the exchange is still in business and offers valid denomination keys in /keys AND if the customer agrees to the possibly changed fee structure).
So if the wallet detects /payback, it should show the user that amount X was put back into a reserve due to a problem at the payment service provider and ask if the user wants to have his money back in his bank account (telling him that all he needs to do is wait until time X), or if he wants to withdraw fresh coins (showing the fee structure just like on the primary withdraw).
Afterwards, the money would show up either in the reserve history (assuming we'll eventually have a way to show reserves that we created but did not fully deplete yet), or the normal wallet balance, depending on the user's choice.
||Payback in the exchange implementation is now far enough for the wallet to start using it.|
I would actually suggest to have a "Recovered Funds" below that wallet balance, that only shows up when we did a payback where the user did not decide yet on what to do.
Popping up an error tab "randomly", when it not directly results from a user action, is really bad user experience. The user would be lacking context.
Implemented in 4c03a120 and 41ed276.
When a payback is available due to an emergency, the wallet will automatically do payback on all affected coins and then show a link to the payback page in the popup.
On the payback page, the user can select what to do with the reserve (currently only withdrawing again is supported, later we will add payback to bank account once the exchange supports it).
|2016-05-09 09:57||Florian Dold||New Issue|
|2016-05-09 09:57||Florian Dold||Status||new => assigned|
|2016-05-09 09:57||Florian Dold||Assigned To||=> Florian Dold|
|2016-05-31 09:38||Christian Grothoff||Product Version||=> 0.0|
|2016-05-31 09:38||Christian Grothoff||Target Version||=> 0.2|
|2016-10-18 02:12||Florian Dold||Note Added: 0011343|
|2016-10-18 02:12||Florian Dold||Status||assigned => feedback|
|2016-11-09 16:41||Christian Grothoff||Target Version||0.2 => 0.3|
|2016-11-09 16:41||Christian Grothoff||Note Added: 0011463|
|2017-03-08 02:58||Florian Dold||Summary||wallet needs to periodically re-fetch /keys => wallet needs to periodically check /keys for panic DK revocation|
|2017-03-08 13:14||Christian Grothoff||Relationship added||child of 0003887|
|2017-03-19 07:48||Christian Grothoff||Status||feedback => assigned|
|2017-03-19 07:48||Christian Grothoff||Note Added: 0011949|
|2017-03-19 07:49||Christian Grothoff||Severity||minor => feature|
|2017-03-19 07:49||Christian Grothoff||Summary||wallet needs to periodically check /keys for panic DK revocation => wallet needs to periodically check /keys for panic DK revocation and trigger /payback|
|2017-03-23 20:42||Florian Dold||Note Added: 0011971|
|2017-03-23 20:42||Florian Dold||Status||assigned => feedback|
|2017-04-02 00:22||Christian Grothoff||Note Added: 0012008|
|2017-04-10 17:58||Christian Grothoff||Status||feedback => assigned|
|2017-04-10 17:58||Christian Grothoff||Note Added: 0012030|
|2017-04-27 14:25||Florian Dold||Note Added: 0012072|
|2017-04-27 14:27||Florian Dold||Note Edited: 0012072|
|2017-05-01 04:11||Florian Dold||Status||assigned => resolved|
|2017-05-01 04:11||Florian Dold||Resolution||open => fixed|
|2017-05-01 04:11||Florian Dold||Note Added: 0012090|
|2017-05-03 02:16||Christian Grothoff||Fixed in Version||=> 0.3|
|2017-06-06 14:18||Christian Grothoff||Status||resolved => closed|