View Issue Details

IDProjectCategoryView StatusLast Update
0003955Talertaler-merchant-demospublic2024-01-12 13:08
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
PriorityhighSeverityblockReproducibilityhave not tried
Status closedResolutionfixed 
Product Version0.0 
Target Version0.0 
Summary0003955: adapt 'create reserve' to real world use cases
Descriptionthe demonstrator should reproduce a system for doing wire transfers
(aimed to create reserves on some mint) which does not rely on the wallet, just as normal bannks do.
Furthermore, the wallet should provide a mean to check the amount of money on the created reserve.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

The plan

IDSummaryStatusAssigned ToEstimated effort (hours)
0003923need algorithm to determine which denominations to withdraw closedMarcello Stanisci
0003959update 'latest_fetch' column each time a reserve is queried closedMarcello Stanisci
0003960inhibit reserve polling on failure closedMarcello Stanisci
0003963reserve's polling starts too early closedMarcello Stanisci
This issue (hours)
Its children (hours)0
Together (hours)0
Nothing is missing: the plan can be finished.

Relationships

parent of 0003959 closedMarcello Stanisci update 'latest_fetch' column each time a reserve is queried 
parent of 0003960 closedMarcello Stanisci inhibit reserve polling on failure 
parent of 0003963 closedMarcello Stanisci reserve's polling starts too early 
parent of 0003923 closedMarcello Stanisci need algorithm to determine which denominations to withdraw 

Activities

Marcello Stanisci

2015-09-02 09:42

reporter   ~0009596

In particular, since the wallet is totally unaware of the mint's URL
(and it needs this information for both checking the present amount on
some reserve and for storing DB records like "mint_url, reserve_key"),
it is needed a way of letting it know that.

Choice 1: ask the user to insert that into 'create reserve' dialog when he
specifies also the desired amount.

Christian Grothoff

2015-09-03 16:55

manager   ~0009603

Ok, here is my 'preferred' interaction right now:

1) We get rid of the 'create reserve' entry in the menu entirely; instead, we begin the interaction by having the user visit the WEBSITE of the mint.
(the menu entry could be replaced by one where we jump to a default page where we offer a list of mints for various currencies so the user knows where to start)

2) The mint website has a button 'wire funds to reserve' or something like that. That button (active if extension present) triggers the extension and passes the mint's base URL to it; that way, the extension can learn where to /withdraw/sign from later. The extension then shows the dialog with the reserve public key and the /wire information (like /wire/sepa details from the mint) and allows the user to enter an amount.

3) The user is then supposed to enter the same information from that dialog into his banking application.

4) The wallet starts to periodically check in the background if the amount has arrived, and if so, withdraws the coins.

Does this make sense?

Marcello Stanisci

2015-09-04 08:18

reporter   ~0009605

1) Yes, that way the user may feel less "lost": the mint has a *homepage* now.

2) This is the part where the user may feel a bit annoyed, by having to enter two
times the same information: the amount. As for the 'wire funds to reserve', that is
handy and intuitive as well. Here the protocol with which the banks transfer their funds
may save the user from stating two times the amount, but a slight modification in the
interaction between the agents is needed.

Let consider the new scenario:

When the wallet wants to create a new reserve, it generates its public key for *both*
the bank and the mint. Then it uses this key in the wire transfer subject (as we already do),
and it sends it to the mint as well, so the mint know that a new reserve should be created.
At this point the mint can mark this reserve
as "incomplete". Hopefully, if the protocol between the banks let the mint know how much
money it has to receive, the mint can mark the reserve as "complete" as soon as it gets
all the expected money. Of course, when a reserve associated with some public key turns
to be "complete", that means that the desired amount has been transferred (and the coins
can be withdrawn).
That may help since the user enters the amount just once during the interaction with his
bank system and the wallet can soon start polling the mint about this new reserve.

4) The situation now is that the user click on a 'withdraw' menu and chooses how much to
withdraw. Do you suggest to change this behaviour and withdraw all the coins automatically
as soon as the reserve is created?

Christian Grothoff

2015-09-04 10:24

manager   ~0009606

Oh, I'm aware about the ugliness of (2), but ultimately we want to partner with banks and get rid of (2) entirely anyway (not exactly the way you describe, but that doesn't matter). The point is, until we have either more tight integration with a bank and unless we have the wallet speak the bank's protocol (which it won't for a while, if ever), I see no alternative.

(4) yes, I think we should always 'empty' the reserve(s).

Marcello Stanisci

2015-09-04 11:52

reporter   ~0009607

Ok! So let's do as described in message 9603

Marcello Stanisci

2015-10-20 20:25

reporter   ~0009760

Adding a subdirectory 'website/' to the mint's tree. Add the following directive
to nginx's mint virtual server:
        
        # the URI where the user will see the options to wire funds to the mint.
        location /transfer {
            index index.html;
            alias /home/m/prog/Taler/mint/website/;
        
        }

Marcello Stanisci

2015-10-20 21:20

reporter   ~0009761

Grey out the 'Wire funds' button when uninstalling the wallet

Marcello Stanisci

2015-10-20 22:02

reporter   ~0009762

Add also the following to the mint's virtual server conf

        location ~ \.php$ {

                root /home/m/prog/Taler/mint/website/;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;

        }

Marcello Stanisci

2015-10-20 22:05

reporter   ~0009763

Fixed in:
8e06fbf (wallet repo)
761a763 (mint repo)

Issue History

Date ModifiedUsernameFieldChange
2015-09-02 08:14Marcello StanisciNew Issue
2015-09-02 08:14Marcello StanisciStatusnew => assigned
2015-09-02 08:14Marcello StanisciAssigned To => Marcello Stanisci
2015-09-02 09:42Marcello StanisciNote Added: 0009596
2015-09-03 16:55Christian GrothoffNote Added: 0009603
2015-09-04 08:18Marcello StanisciNote Added: 0009605
2015-09-04 10:24Christian GrothoffNote Added: 0009606
2015-09-04 11:52Marcello StanisciNote Added: 0009607
2015-09-04 15:46Marcello StanisciRelationship addedparent of 0003959
2015-09-04 15:46Marcello StanisciRelationship addedparent of 0003960
2015-09-04 16:26Marcello StanisciRelationship addedparent of 0003963
2015-09-19 18:40Christian GrothoffPrioritynormal => high
2015-09-19 18:40Christian GrothoffSeverityminor => block
2015-09-19 18:40Christian GrothoffProduct Version => 0.0
2015-09-19 18:40Christian GrothoffTarget Version => 0.0
2015-09-19 18:40Christian GrothoffDescription Updated
2015-09-30 07:31Marcello StanisciRelationship addedparent of 0003923
2015-10-20 20:25Marcello StanisciNote Added: 0009760
2015-10-20 21:20Marcello StanisciNote Added: 0009761
2015-10-20 22:02Marcello StanisciNote Added: 0009762
2015-10-20 22:05Marcello StanisciNote Added: 0009763
2015-10-20 22:05Marcello StanisciStatusassigned => informing
2015-10-20 22:05Marcello StanisciResolutionopen => fixed
2015-10-21 15:11Christian GrothoffStatusinforming => closed
2015-11-29 12:48Christian GrothoffCategorymerchant (demonstrator) => merchant frontend (demonstrator)
2016-02-17 02:24Florian DoldCategorymerchant frontend (demonstrator) => merchant frontend (donations)
2024-01-12 13:08Christian GrothoffCategorymerchant frontend (donations) => Merchant frontends (Python3)
2026-08-23 14:16Florian DoldCategoryMerchant frontends (Python3) => taler-merchant-demos