View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7824 [Taler] merchant backend API (HTTP specification) feature N/A 2023-04-26 00:19 2023-05-28 00:08
Reporter: Christian Grothoff Platform: i7  
Assigned To: Christian Grothoff OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: use more CRUD-like API to edit merchant instance accounts
Description: Currently account edits are folded into the instance PATCH, which results in very messy code.
Would probably be good to have the ability to edit instance accounts with their own operations instead of only with the overall instance.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020206)
Christian Grothoff   
2023-05-28 00:08   
16a14fc..62220c0 adds a POST /private/account and a DELETE /private/account/$H_WIRE endpoint (not yet documented!) to the merchant backend. I think we don't need GET (as that's covered by the GET on the instance) or PATCH (as I'd expect that could be done via DELETE + POST). Sebastian: let me know if you *want* a PATCH or see a reason for a GET or have other feedback on the API. I'll update docs.git "soon", and then start with the C client API fun, too.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7846 [Taler] merchant backend API (HTTP specification) major always 2023-05-22 19:07 2023-05-27 19:53
Reporter: sebasjm Platform:  
Assigned To: Christian Grothoff OS:  
Priority: normal OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: after creating a reserve for tipping, the list of account is empty
Description: creation was OK and it returned with account

curl 'https://merchant-backend.taler.ar/instances/default/private/reserves' \
  -H 'Authorization: Bearer secret-token:<something here>' \
  --data-raw '{"initial_balance":"ARS:2","exchange_url":"https://exchange.taler.ar/","wire_method":"iban"}' \

{
  "reserve_pub": "N1DJB6VSDX4M3NR8BVP1BF836EX86VE97HSJ8J4XTB8JM1H3SYAG",
  "accounts": [
    {
      "payto_uri": "payto://iban/SANDBOXX/DE295170?receiver-name=exchange-feb",
      "master_sig": "W7RX1SQE4GC6ATHBF08XEJNWZP2VG7J04AGN263YDPZHSG75AKTK20J4A0FZ6JNCVY6RK8P3CF51WEC63KBREC4QHYJ1S4B723G560G",
      "credit_restrictions": [],
      "debit_restrictions": []
    } ]
}

But then getting the details didn't return accounts


curl 'https://merchant-backend.taler.ar/instances/default/private/reserves/N1DJB6VSDX4M3NR8BVP1BF836EX86VE97HSJ8J4XTB8JM1H3SYAG?tips=yes' \
  -H 'Authorization: Bearer secret-token:<the same secret here unless it was changed>' \

{
  "creation_time": {
    "t_s": 1684775123
  },
  "expiration_time": {
    "t_s": 1716311123
  },
  "merchant_initial_amount": "ARS:2",
  "exchange_initial_amount": "ARS:0",
  "pickup_amount": "ARS:0",
  "committed_amount": "ARS:0",
  "active": true,
  "exchange_url": "https://exchange.taler.ar/",
  "accounts": []
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020204)
Christian Grothoff   
2023-05-27 19:48   
In "insert_reserve_key", we somehow stored the "reserve_pub" twice in the table, and once instead of "master_pub"...
(0020205)
Christian Grothoff   
2023-05-27 19:53   
db344e1..16a14fc fixes the issue and expands the test suite.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7850 [Taler] wallet-core feature N/A 2023-05-26 15:14 2023-05-26 17:41
Reporter: MarcS Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version: post-1.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: aborting: "revive" or "resurrect" back to pending
Description: As long as no irrevocable actions within "aborting" happened, it should be possible for the user to "revive" or "resurrect" the dying (aborting) transaction back to "pending".
s.e.
Once the dying (aborting) transaction is finally dead, this is no longer possible.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Transaction common states 2 abort is final.png (112,440 bytes) 2023-05-26 15:14
https://bugs.gnunet.org/file_download.php?file_id=1379&type=bug
png

Transaction common states 3 aborting can revive.png (115,411 bytes) 2023-05-26 15:43
https://bugs.gnunet.org/file_download.php?file_id=1381&type=bug
png
Notes
(0020203)
MarcS   
2023-05-26 15:43   

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7703 [Taler] wallet (WebExtension) minor have not tried 2023-02-17 13:35 2023-05-26 12:20
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: store microsecond offset for transaction timestamps in wallet-core
Description: ... Otherwise we can't properly order transactions that occur in the same second.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020202)
Florian Dold   
2023-05-26 12:20   
Fixed in cd8f76d.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7651 [GNUnet] DHT service trivial always 2023-01-30 00:49 2023-05-25 18:51
Reporter: ulfvonbelow Platform:  
Assigned To: schanzen OS:  
Priority: normal OS Version:  
Status: feedback Product Version: Git master  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 0.19.4  
    Target Version: 0.19.4  
Summary: "Memory leak" in gnunet-dht-get and gnunet-dht-put
Description: The argv created by GNUNET_STRINGS_get_utf8_args is never freed.
Tags: patch
Steps To Reproduce: ./configure --enable-sanitizer
make
make install
make check
Additional Information: Not a real problem, again, but sanitizers...
Patch attached.
Attached Files: 0001-DHT-remove-memory-leak-in-gnunet-dht-get-put.patch (2,234 bytes) 2023-01-30 00:49
https://bugs.gnunet.org/file_download.php?file_id=1351&type=bug
Notes
(0019765)
schanzen   
2023-02-06 06:54   
Actually, reverting this as we cannot free a const pointer here. This may have to be fixed in PROGRAM_run...
(0019766)
schanzen   
2023-02-06 07:05   
ab66a7a9d..eabc1baaf
(0020201)
ulfvonbelow   
2023-05-25 18:51   
eabc1baaf980d8948f3fc0ac83a84446d5f1b226 didn't reintroduce the 'ret = ...' line to replace the 'return ...' line, so it still always returns before the memory is freed. So the sanitizers still fail on this.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7849 [Taler] wallet-core minor have not tried 2023-05-25 12:24 2023-05-25 12:24
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: specify exchange state transitions in wallet-core
Description: Similarly to how we spec state transitions for transactions in wallet-core, we should do the same for exchanges.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7803 [Taler] taler-harness minor have not tried 2023-04-13 15:35 2023-05-25 12:19
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: generate list of sample transactions that UIs can use to test their parsers
Description: This list can't be exhaustive, but it'll still help catch problems, both in the wallet-core codebase as well as in the UI.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020200)
Florian Dold   
2023-05-25 12:19   
This is now implemented (a4112bae9) with the testingGetSampleTransactions call.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7327 [Taler] wallet-core feature have not tried 2022-09-06 18:58 2023-05-25 12:00
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: wallet-core responses should include the transaction ID of transaction it creates
Description: This is useful for the UI to direct the user to the transaction details.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020199)
Florian Dold   
2023-05-25 12:00   
Implemented as of wallet-core.git 0b4d900088d

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7336 [Taler] wallet (WebExtension) tweak always 2022-09-08 20:24 2023-05-25 09:56
Reporter: Christian Grothoff Platform: i7  
Assigned To: Florian Dold OS: Debian GNU/Linux  
Priority: low OS Version: squeeze  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: ToS language "wrong"
Description: During the UX study, a user complained that the ToS were in English.
One issue is that we may not have them translated yet, but even if they were, we use the platform language, which the user may or may not have set properly. So giving the user an easy way to change to other *available* ToS languages would be nice.
Tags:
Steps To Reproduce:
Additional Information: This will require some protocol extension to tell the wallet in which other languages the ToS are available.
System Description
Attached Files:
Notes
(0019405)
Christian Grothoff   
2022-11-13 10:42   
2650fea..44f5e5c (docs.git) documents the new "Acceptable-Languages" HTTP header returned by the exchange (and other /terms and /pp handlers) which now specifies the list of alternative languages in which the ToS/PP are available. UIs should make use of this information to allow users to switch to another language.

Note that when downloading the ToS/PP in an alternative language, the client MUST NOT set the ETag header after varying the Accept-Language (or Accept-Encoding) header, otherwise the service will just return a "304 Not Modified".
(0019406)
Christian Grothoff   
2022-11-13 11:25   
IMO wallet-core should now add support to expose the list of supported languages to the UIs, and then we can add a ToS/PP language switcher to UIs. Not urgent, of course.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7848 [Taler] wallet-core minor have not tried 2023-05-23 18:25 2023-05-23 18:25
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: wallet-core should return maximum expiration time for purse based on available points
Description: That allows the UIs to disable later expiration times.

Otherwise, purses might expire *before* coins expire.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7847 [Taler] wallet-core major unable to reproduce 2023-05-23 17:24 2023-05-23 17:24
Reporter: sebasjm Platform:  
Assigned To: Florian Dold OS:  
Priority: high OS Version:  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 1.0  
Summary: DoS when all wallet try to refresh coins at the same time
Description: Instead of wallet doing refresh exactly 3 months before expiration time, it should refresh based on a random value close to 3 months


From email

> The refresh transaction is automatically triggered by the wallet software 3 months before the end of the validity of a coin. Especially if Exchange
> operators charge refresh fees, the fact that a fee may automatically be charged in the background without user interaction is likely particularly
> difficult to explain.

> But that also means that "3 months before the end of the validity of a coin" will be the same for every wallet since the beginning,
> isn't this a self-DOS waiting for us?
> I mean, all the wallet with all those coins will try to refresh at the same time.
> Maybe refresh time should random time based in a normal distribution with mean expiration_time - 2 month and std_dev 1 month
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7681 [Taler] sandcastle (containerized demo deployment) feature have not tried 2023-02-12 20:46 2023-05-21 21:42
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: demo doesn't have any KYC checks
Description: The demo should support those to demonstrate KYC.

Maybe with a second exchange?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020198)
Christian Grothoff   
2023-05-21 21:42   
Marc has been asking for a 2nd KUDOS exchange with different fees. Sounds like a good target for this.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7440 [Taler] wallet (WebExtension) feature N/A 2022-11-06 22:55 2023-05-20 17:12
Reporter: Christian Grothoff Platform: i7  
Assigned To: MarcS OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: feedback Product Version: 0.9  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 0.9.1  
    Target Version: 0.9.1  
Summary: cannot specify expiration for push payments in WebExtension
Description: When 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.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0019391)
sebasjm   
2022-11-08 03:30   
first, it should be implemented by wallet-core :)

* parse the PeerContractTerms
* use amount from CT (instead of the request)
* use expiration from the CT (instead of hardcoded)
* both push and pull request

cc @grote @marc
(0019392)
grote   
2022-11-08 15:00   
can you please get me an API diff together with the wallet-core version this first lands in, once done, please?
additional info on how the current API flow must be adapted will be appreciated.
(0019397)
sebasjm   
2022-11-08 16:34   
@grote yes, AFAIK this is covered by the documentation generation that @florian mentioned

FTR this will also apply to pull payments
(0019398)
sebasjm   
2022-11-10 14:13   
at 5c742afb
(0020197)
MarcS   
2023-05-20 17:12   
re-opened for iOS

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7699 [Taler] wallet-core minor have not tried 2023-02-16 18:57 2023-05-18 21:24
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: wallet should support different types of instructed amounts (before and after fees)
Description: Depending on the context, the user wants the instructed amount to be the *effective* instructive amount or the *raw* instructed amount.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6800 [Taler] wallet-core feature have not tried 2021-03-10 19:06 2023-05-18 21:21
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: wallet should support link protocol (for double spend error recovery after restore from backup)
Description: The wallet should run the link protocol if it gets a double spend error that indicates the coin has been melted, and the new coin isn't known to the wallet.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7433 [Taler] wallet-core feature N/A 2022-11-04 16:20 2023-05-18 21:19
Reporter: Christian Grothoff Platform: i7  
Assigned To: Florian Dold OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: wallet does not support invoicing with non-zero purse fees
Description: It is currently unable to pay for the purse creation with its coins, even if it has coins.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7845 [Taler] libeufin-sandbox minor have not tried 2023-05-17 20:40 2023-05-17 20:40
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: "libeufin-sandbox config" command should allow changing individual settings ...
Description: ... without having to specify the value of *all* other configuration settings.

The way the tool does it right now makes it very difficult to use.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7844 [Taler] libeufin-sandbox minor have not tried 2023-05-17 20:11 2023-05-17 20:11
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: libeufin-sandbox tool should allow creating accounts
Description: Even if registering new accounts is disabled via the Web interface, there should still be a way to create new accounts.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7841 [Taler] merchant backend API (HTTP specification) feature N/A 2023-05-10 17:53 2023-05-13 22:18
Reporter: sebasjm Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: acknowledged Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: merchant should require wallet to accept or reject refund
Description: in current protocol refunds are unilateral decisions, when the merchant create a refund this is assume that is good for the wallet since is more money for the pocket.
the merchant is assume to behave in a good way but there are situations that this can be exploited

consider the scenario of selling ticket of concerts:

over sell
---
1.- merchant has 100 seats to sells
2.- merchant sells 110 seats
3.- choose 10 seats based on some factors to refund

speculative price
--
1.- merchant has 100 seats to sells
2.- merchant sells 100 seats at price X
3.- sold in 2 days, still 2 month for the performance
4.- refund 20%, double the price and sell again

in all cases
1.- wallet will automatically pickup refunds
2.- wallet user can't complain since refund was accepted and money is in their pockets

more importantly:

A. if the refund does cancel the contract: wallet doesn't have a warrant that after the purchase the merchant is not going to unilateral cancel the contract
B. if the refund doesn't cancel the contract: merchant can't have a way to deny the entrance (or the service in the contact terms) after a refund.

we want to make this work without reducing the refundable duration since in the example of a ticket for a concert, the refundable duration should be between the purchase and the performance.

proposal:
---

https://docs.taler.net/core/api-merchant.html#post-[-instances-$INSTANCE]-orders-$ORDER_ID-refund

interface WalletRefundRequest {
  // Hash of the order's contract terms (this is used to authenticate the
  // wallet/customer).
  h_contract: HashCode;
 
  // accepted -> actual case
  // denied -> return the amount to the merchant, as nothing happened
  decision: "accepted" | "denied"
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020195)
Christian Grothoff   
2023-05-13 20:36   
I think your report here is filed under a false legal premise. By merely (especially automatically) accepting a refund, a customer does not inherently forfeit their rights to the contract. So the customer could still go after the merchant for not fulfilling their original agreement. And in your scenario where the merchant behaved in bad faith, I'm pretty sure they'd loose in court. On the other hand, if the merchant could not be expected to uphold their end (say concert was cancelled due to sickness or natural disasters), then the merchant would be in their rights to unilaterally break the contract like this. But, again, this is something for the courts. So before implementing anything here, we definitively need to talk to an actual contract lawyer....

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7837 [Taler] exchange API (HTTP specification) feature N/A 2023-05-08 13:22 2023-05-13 22:18
Reporter: Christian Grothoff Platform: i7  
Assigned To: Christian Grothoff OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: add option to disable tipping
Description: /config and/or /keys should signal when an exchange does not allow tipping.
Merchant backends should then respect that choice.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020194)
Christian Grothoff   
2023-05-13 20:32   
Implemented in exchange.git, merchant still needs to be taught to respect the new option.
(0020196)
Christian Grothoff   
2023-05-13 22:18   
86dc054..f79387a implements this in the merchant.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7835 [Taler] challenger feature N/A 2023-05-07 01:47 2023-05-13 17:07
Reporter: Christian Grothoff Platform: i7  
Assigned To: Christian Grothoff OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: assigned Product Version: 0.9.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: exchange does not support challenger service yet
Description: Primarily, the initial authorized setup step is not supported by our existing OAuth 2.0 plugin.

Plus, we should probably test the integration ;-).
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020193)
Christian Grothoff   
2023-05-13 17:07   
ff1a2831..c9ed524b adds support for /setup. Still needs testing.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6564 [Taler] wallet-core feature have not tried 2020-09-03 19:30 2023-05-11 14:51
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: wallet-core API and UX design for auditor/exchange management needed
Description: We had some partially working, totally unusable implementation of this in an ancient version of the web extension.

Now that the requirements are more clear, we should properly re-design this based on the desired user experience, and then implement an API for it in wallet-core.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0018130)
belen   
2021-08-25 13:05   
Where can I find those requirements? Are they documented somewhere? And if not, who should I talk to about them?
(0019828)
Florian Dold   
2023-02-13 20:04   
Waiting for feedback on DD35 now.
(0020007)
Florian Dold   
2023-04-04 12:02   
Seems like everyone agrees on DD35, we need to spec the corresponding wallet APIs now.
(0020192)
Florian Dold   
2023-05-11 14:39   
As noted by Marc, we should also have functionality to delete a known exchange (and the balance associated with that).

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7842 [Taler] other major always 2023-05-10 19:38 2023-05-11 03:16
Reporter: dvn Platform:  
Assigned To: dvn OS:  
Priority: high OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: Buildbot doc-builder not updating project sources
Description: The doxygen jobs on the doc-builder are running without ever updating the source repositories.

This means the doxygen jobs are just rebuilding from the same outdated checkout every build.

We need to make sure those repos are being updated before the doxygen jobs are run.
Tags: buildbot
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020191)
dvn   
2023-05-11 03:16   
Fixed in the following commits:

https://git.taler.net/deployment.git/commit/?id=13404a396ce25bfba5ef4b12ac6a0084563443d4
https://git.taler.net/deployment.git/commit/?id=6ebbc2c66c18559e582f3b3962a258faf604042e

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7840 [Taler] wallet-core trivial N/A 2023-05-10 10:10 2023-05-10 10:10
Reporter: Christian Grothoff Platform: i7  
Assigned To: Florian Dold OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: support new post-oec /keys format
Description: That way, we can remove the code to generate the 'old' format -- and seriously safe on bandwidth for /keys ;-).
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7773 [GNUnet] transport service feature have not tried 2023-03-25 15:00 2023-05-09 19:25
Reporter: schanzen Platform:  
Assigned To: stmr OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: QUIC communicator
Description: This is the meta issue for the QUIC communicator in TNG
Tags: gsoc, tng
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7839 [Taler] libeufin (general) minor have not tried 2023-05-09 16:37 2023-05-09 16:37
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: CLI installation should check dependencies
Description: Following is one example where the CLI misses python3-click and the installation didn't detect it beforehand.

$ libeufin-cli sandbox --sandbox-url "${SANDBOX_URL}" demobank register
Traceback (most recent call last):
  File "/home/taler/bin/libeufin-cli", line 5, in <module>
    import click
ModuleNotFoundError: No module named 'click'
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7838 [Taler] challenger feature N/A 2023-05-08 22:33 2023-05-09 11:07
Reporter: Christian Grothoff Platform: i7  
Assigned To: OS: Debian GNU/Linux  
Priority: none OS Version: squeeze  
Status: confirmed Product Version: 0.9.3  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: Add support for rfc7636 to challenger
Description: This is mostly to follow best current practice, it is merely recommended in our scenario as our clients are no public and thus the "someone steals my client secret from an App" doesn't really apply to Taler. But, if we want to see challenger used more broadly (beyond Taler), this might be a nice feature to eventually add.
Tags:
Steps To Reproduce:
Additional Information: schanzen: I have some PKCE code in GNUnet if you want to steal it
https://git.gnunet.org/gnunet.git/tree/src/reclaim/oidc_helper.c#n710
System Description
Attached Files:
Notes
(0020189)
schanzen   
2023-05-09 11:07   
Note that you are implementing an AS. For the AS, it is a MUST in the BCP. For clients it is RECOMMENDED.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7811 [Taler] documentation feature have not tried 2023-04-22 17:55 2023-05-08 00:09
Reporter: Florian Dold Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: spec and implement taler://withdraw-exchange/ URIs
Description: This allows initiation of the manual withdrawal process even when the wallet does not necessarily know about the exchange yet.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7836 [Taler] wallet-core minor have not tried 2023-05-07 22:11 2023-05-07 22:11
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: test-refund-gone doesn't work as expected
Description: While the test passes, it looks like the refund isn't actually gone --- for some reason, time-travel isn't working, and the refund works even though it shouldn't.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6588 [Taler] wallet-core tweak have not tried 2020-09-08 16:48 2023-05-07 16:43
Reporter: Florian Dold Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: wallet-core should support range queries for the transactions list
Description: This might require some additional indices to be faster!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020188)
Florian Dold   
2023-05-07 16:43   
Main thing to discuss here: How do we actually do the pagination? What do we use as the "cursor"?

A transaction ID is not sufficient, as it doesn't efficiently allow querying transactions before or after it. So maybe a timestamp? But what if timestamps are not unique?

Probably the cursor should be a (timestamp, txid) tuple.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7816 [Taler] challenger feature N/A 2023-04-23 23:54 2023-05-07 01:46
Reporter: Christian Grothoff Platform: i7  
Assigned To: Christian Grothoff OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: challenger service needs to be implemented
Description: Right now, we have a skeleton.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020187)
Christian Grothoff   
2023-05-07 01:46   
challenger.git: 98577f5..95691c3 completes the first basic implementation of the challenger service. Tests pass!
What is missing is proper integration with the exchange.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7834 [Taler] wallet-core minor have not tried 2023-05-05 16:39 2023-05-05 16:39
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 1.0  
Summary: wallet relies on longpolling to work
Description: Instead, the wallet should make sure that it does appropriate waiting if long-polling returns too early.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7829 [Taler] Web site(s) text always 2023-04-29 19:41 2023-05-05 16:04
Reporter: dvn Platform:  
Assigned To: Stefan OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: Suboptimal Link Previews for taler.net
Description: When sharing the taler.net URL in a common messaging application, or social media site, the link preview generated shows a blurry GNU favicon instead of the Taler logo, and is non-descriptive.

This is due to the taler.net website lacking Open Graph[0] metadata in its HTML header. Link previews are generated using this metadata, if available.

I've included a patch which fixes this, and I've attached before and after screenshots of the link preview card. SVG is not supported, so I converted the logo to PNG and attached that, as well.


[0] https://ogp.me/
Tags:
Steps To Reproduce: Share "https://taler.net/" (or any localization) over a messenger such as Signal (what I did to test), or on a social media site like Twitter.
Additional Information:
Attached Files: opengraph.patch (855 bytes) 2023-04-29 19:41
https://bugs.gnunet.org/file_download.php?file_id=1373&type=bug
BEFORE-taler-linkpreview.png (20,580 bytes) 2023-04-29 19:41
https://bugs.gnunet.org/file_download.php?file_id=1374&type=bug
png

AFTER-taler-linkpreview.png (38,204 bytes) 2023-04-29 19:41
https://bugs.gnunet.org/file_download.php?file_id=1375&type=bug
png

logo-2021.png (28,781 bytes) 2023-04-29 19:41
https://bugs.gnunet.org/file_download.php?file_id=1376&type=bug
png

base.j2 (1,559 bytes) 2023-05-04 18:32
https://bugs.gnunet.org/file_download.php?file_id=1377&type=bug
stage.taler.png (22,757 bytes) 2023-05-04 23:35
https://bugs.gnunet.org/file_download.php?file_id=1378&type=bug
png
Notes
(0020171)
dvn   
2023-04-29 19:45   
This was auto-assigned to Stefan. I'm not sure if that's as it should be, but I don't seem to have the ability to change that.
(0020176)
dvn   
2023-05-04 17:11   
Stefan, what are your thoughts?
(0020178)
Stefan   
2023-05-04 18:32   
I poked a bit around with ICO generators and have now a couple of most common ICO and PNG files as well as an SVG image. 16x16 and 32x32 ICO images are awkward, so none of them will be at disposal.

All icon images have to be squares. favicon,ico and favicon.png have to be in the root folder (this requires an IE convention).

base.j2 shows the code to integrate all images. This is my solution to combine two worlds for an optimum outcome, also including your contribution as well. This code will be commited to Git and tested on several devices after I pushed the images to the git server, too.
 
Cheers,
Stefan
(0020181)
dvn   
2023-05-04 20:17   
Okay, so if I understand correctly you want to also update the icon/favicon to improve compatibility and image resolution?

That's a separate issue, in my mind, but it seems like a good idea.

The only thing I see that's a problem is in your `base.j2` attachment, is that you've added another `<meta name="description" [...]`

When you push the changes to master, can you make a comment here so we can look at https://stage.taler.net/ ?
(0020183)
Stefan   
2023-05-04 23:24   
You are absolutely right about the superfluous meta tag for description. I got rid of it now in the base-file and pushed changes in git to master so that you can see the effect on the staged website.

The 32x32 px favicon looks just ridiculous to me. I recommend to use the favicon we have on https://taler-systems.com instead (this was my choice over the old favicon). But please take a look yourself, whether it's OK for your eyes what you see on https://stage.taler.net/.

Thank you for your work in advance, dvn, looking forward to get your comments.
Cheers,
Stefan
(0020184)
dvn   
2023-05-04 23:35   
I agree that the current favicon does not look good scaled down so small. I also concur that the favicon https://taler-systems.com looks much better. I'd go with that if there's no reason *not* to.

As for the link previews, it is not showing any image, as I don't think .ico is supported by most clients. I've attached how it looks now.
We are not constrained to a square with the Open Graph image, so I think we should just use a PNG of the main Taler logo as I demonstrated before.
(0020185)
Stefan   
2023-05-05 06:31   
OK. Please test now.

Christian, is there any reason to not use the favicon we have for https://taler-systems.com?
(0020186)
dvn   
2023-05-05 16:04   
Stefan, it looks the same.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7830 [Taler] mechant backend feature N/A 2023-05-01 15:52 2023-05-04 22:02
Reporter: Christian Grothoff Platform: i7  
Assigned To: sebasjm OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: support webhooks for refunds
Description: n/a
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020182)
Christian Grothoff   
2023-05-04 22:02   
'refund' webhook event type is now implemented. Sebastian: please make sure the SPA allows the user to choose either 'pay' or 'refund' as the webhook event type when configuring webhooks.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7658 [Taler] qtart feature have not tried 2023-02-03 14:55 2023-05-04 20:19
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: support threaded crypto workers
Description: Right now, qtart doesn't support running wallet-core with threaded crypto workers, because wallet-core doesn't yet understand the Worker API that QuickJS-libc offers.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7697 [Taler] wallet-core tweak have not tried 2023-02-16 12:21 2023-05-04 20:19
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: wallet is not GCing denominations
Description: Thus the database grows to a very large size.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7518 [Taler] wallet (WebExtension) feature have not tried 2022-12-11 04:10 2023-05-04 20:19
Reporter: sebasjm Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: search transaction
Description: add a search bar

maybe in the first version just search fee text on transaction content
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7778 [Taler] wallet-core feature have not tried 2023-03-28 18:42 2023-05-04 20:19
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: do more things in the wallet-core internal integration test
Description: We should do p2p transactions, refunds, etc., so that wallet UIs can use this to test transaction list rendering.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7736 [Taler] wallet-core feature always 2023-03-02 12:53 2023-05-04 20:19
Reporter: sebasjm Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: wallet-core should enforce accepted ToS for various operations
Description: UI need information about the ToS status

wallet-core should not allow using an exchange without accepting ToS first (does this happen also with withdrawals?)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7783 [Taler] wallet-core feature have not tried 2023-03-31 15:42 2023-05-04 20:19
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: wallet-core should long-poll P2P kyc status
Description: Otherwise the UI updates slowly.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6397 [Taler] documentation text have not tried 2020-06-18 22:13 2023-05-04 20:19
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: write a good README(.md) file for LibEuFin
Description: See summary.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7506 [Taler] libeufin (general) feature have not tried 2022-11-30 22:58 2023-05-04 20:16
Reporter: MS Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: Add helpers to generate test data.
Description: database data used in tests should be generated by convenient helper functions, instead of
being entered by verbose blocks of bare database instructions copied in several parts.
Tags:
Steps To Reproduce:
Additional Information: Examples are MakeEnv.kt and DownloadAndSubmit.kt in the Nexus test suite.
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6396 [Taler] libeufin-nexus feature have not tried 2020-06-18 22:09 2023-05-04 20:16
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: Implement FinTS
Description: ... as another bank connection type.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7694 [Taler] libeufin-sandbox feature have not tried 2023-02-14 13:23 2023-05-04 20:16
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: set currency conversion rates and fees in the configuration
Description: as opposed to have the hard-coded, as in the current version.

This however should be done after 0007527 and 0007515.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7588 [Taler] libeufin-nexus major have not tried 2023-01-14 10:56 2023-05-04 20:16
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: /admin/add/incoming has hard-coded credentials
Description: This call is offered in the Taler facade. It is used for testing and forwards the request
to fund the caller to their own bank account at the Sandbox. The Sandbox credentials
now are hard-coded in the facade, but should be specified via another mechanism.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7520 [Taler] libeufin-sandbox feature have not tried 2022-12-12 17:33 2023-05-04 20:15
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Implement policy to abort non confirmed cashout operations.
Description: A configurable time span should instruct libeufin sandbox to abort the cashout
operations that were never confirmed with the TAN.

This is not part of the API yet, and it should only be implemented after a first
deployment of Libeufin in the context of a local currency.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020060)
MS   
2023-04-11 10:40   
Not relevant for the Postfinance integration.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6268 [Taler] libeufin-sandbox feature have not tried 2020-05-29 08:47 2023-05-04 20:15
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: sandbox should support balances in c52/c53
Description: Right now, we always display a balance of 0.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0017920)
MS   
2021-05-27 15:41   
For now (4c44480..d527df4) every report always include the whole history of one bank account.
(0019146)
Florian Dold   
2022-09-19 12:53   
There is an (incomplete!) test case "test-libeufin-nexus-balance" in the wallet integration tests. I will disable this test for now, but we should eventually fix it.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7780 [Taler] taler-harness feature have not tried 2023-03-28 20:23 2023-05-04 20:15
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: taler-harness lint should check exchange ToS markdown syntax
Description: We require that there is at least one top-level section defined, and the linter should complain if not.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7592 [Taler] documentation text have not tried 2023-01-15 20:30 2023-05-04 20:12
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: libeufin-sandbox implementation of Taler Bank Access API may omit HTTP status codes.
Description: Research about which HTTP status codes should appear in the spec.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7147 [Taler] documentation text have not tried 2022-01-11 11:04 2023-05-04 20:12
Reporter: ttn Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: libeufin-{sandbox,nexus,cli} needs a manpage
Description: Question: Should it be part of the other Taler manpages?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: command-line-possibilities (4,652 bytes) 2022-01-11 13:26
https://bugs.gnunet.org/file_download.php?file_id=1136&type=bug
Notes
(0018628)
ttn   
2022-01-11 13:26   
I've made a preliminary distillation of the command-line possibilities for libeufin-cli (attached).
Please take a look. I'll convert it to a proper manpage once it gets your approval.
(0018637)
ttn   
2022-01-17 18:07   
Actually, it would be nice to have manpages for all libeufin programs, i.e., libeufin-{sandbox,nexus,cli}.
(0018640)
ttn   
2022-01-19 11:15   
I've started the libeufin-sandbox manpage:

https://git.taler.net/docs.git/commit/?id=bcd5adae13a2f0c94f98dc25c73c6dbcadf7d35d

@MS PTAL when you get a chance.
(0018641)
ttn   
2022-01-19 11:18   
I'm looking to clarify the libeufin-sandbox interaction model.
When you have a moment, could you take a look at the new (wip) manpage and let me know if i'm on the right track?
(0018642)
ttn   
2022-01-19 13:20   
@MS Another question:

https://git.taler.net/docs.git/commit/?id=edec0fdc0134da59e4293421f7bce37e392b8103
(0018663)
ttn   
2022-01-25 00:22   
I've just pushed the manpage for libeufin-sandbox(1).

Here are the relevant commits:
5adcf79 2022-01-24 New manpage: libeufin-sandbox(1)
01281b4 2022-01-24 add FIXME for ‘make-transaction’ and ‘camt053tick’
fcf97f5 2022-01-24 write ‘camt053tick’ description, including example
41f40cc 2022-01-24 fix typo: s/that/for/
45b63d0 2022-01-24 write ‘make-transaction’ description
4dc26e1 2022-01-24 replace question to MS w/ blurb on Control-C
a41b104 2022-01-24 replace FIXME w/ libeufin-cli
4432884 2022-01-24 mention direct-access operation mode
21f1f6b 2022-01-24 document automagic ‘default’ demobank creation for ‘make-transaction’ and ‘serve’
8de9a0e 2022-01-24 write ‘default-exchange’ description, including example
7bfee7b 2022-01-24 write ‘config’ description, including example
d6d3763 2022-01-24 reorder command ‘config’ before ‘default-exchange’
f770a37 2022-01-19 s/core banking system/banking system core/g
edec0fd 2022-01-19 describe ‘serve’ in libeufin-sandbox(1)
5c02597 2022-01-19 describe ‘reset-tables’ in libeufin-sandbox(1)
bcd5ada 2022-01-19 new WIP manpage: libeufin-sandbox(1)

Feedback welcome!

Now on to libeufin-nexus(1)...
(0018671)
ttn   
2022-01-26 12:21   
The libeufin-nexus(1) manpage is now available:

- https://git.taler.net/docs.git/commit/?id=65a9b2dc88c4756f10c8287347d33b01bb1ec9c4
- https://docs.taler.net/manpages/libeufin-nexus.1.html

Now on to the big one: libeufin-cli(1)!
(0018677)
ttn   
2022-02-02 06:25   
After some discussion w/ MS, i've come to a better understanding (maybe) of the Access API as it
relates to the LIBEUFIN_SANDBOX_URL env var. To help the documentation effort, i've pushed:

- https://git.taler.net/libeufin.git/commit/?h=dev/ttn/refactoring&id=4caed8388d11701da995cf368c21a6b742e2b628

IIUC, non-Acess-API commands will go away at some point. So, i wonder if it makes sense to document
them at all. My question is: Is there a timeframe planned for their removal?
(0018678)
ms-mantis   
2022-02-02 07:39   
I'd discourage to document those: both in the manpage and in various tutorials.
They'll be removed once TypeScript tests (at wallet-core.git) won't use them anymore.
No defined timeframe but now reported here: 0007168
(0018692)
ttn   
2022-02-10 10:37   
OK, i'm taking a detour from the libeufin-cli(1) manpage to fix up the "configuring the sandbox" section in the Nexus tutorial:

- https://git.taler.net/docs.git/tree/libeufin/nexus-tutorial.rst#n130

Currently, here are the libeufin-cli sandbox commands used in that section:
  - cli sandbox check
  - cli sandbox ebicshost create
  - cli sandbox ebicshost list
  - cli sandbox ebicssubscriber create
  - cli sandbox ebicssubscriber list
  - cli sandbox ebicsbankaccount create
  - cli sandbox bankaccount generate-transactions
  - cli sandbox bankaccount simulate-incoming-transaction
  - cli sandbox bankaccount transactions

Of these, i'm trying to determine which are "old" commands (to be replaced by 'libeufin-cli sandbox demobank' commands, perhaps).
I guess the "... create" commands are "old", but the "... list" commands are going to stay. Is that correct?
My question generally is: Which of those are "old"?
(0019055)
Christian Grothoff   
2022-08-25 21:30   
MS: can you please try to help ttn with this?

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7664 [Taler] documentation text have not tried 2023-02-08 13:18 2023-05-04 20:12
Reporter: sebasjm Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: merge api core documentation
Description: move libeufin sandbox api to core/libeufin-sandbox-api
move libeufin nexus api to core/libeufin-nexus-api
merge integration, access, circuit into sandbox document (same component, different sections, like merchant)
move wallet-core core/wallet-api (it's not HTTP but belongs here)

from grothoff
> I also think the existing chatper 1.15 on 'errors and testing' should probably be removed. It doesn't cover all the errors (gana does!), and I'm not sure the 2 testing scenarios described there belong there (or are still relevant!)
> 1.13 should also die: we have RFC 8905 for that. We should link to that and be done with that. For 1.14 we have the draft, which we should put on lst.gnunet.org and again remove that chapter and link to the draft.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7669 [Taler] documentation text have not tried 2023-02-09 16:07 2023-05-04 20:11
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Document data types used in libeufin REST calls.
Description: One example are amounts: there should be one document that specifies their format.
Along this, the API docs have to point at those specifications whenever the said type is
mentioned. The same way that Taler does with api-common.rst.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019791)
MS   
2023-02-09 16:52   
be6eb54..af11ed5 starts to address this. Notably, the size in bits of the integer part of amounts is not documented.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7591 [Taler] documentation text have not tried 2023-01-15 20:28 2023-05-04 20:11
Reporter: MS Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Review Nexus native API specification.
Description: Check whether the implementation matches the spec and research
about which HTTP response codes should appear in the spec.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019968)
MS   
2023-03-20 16:33   
What is documented does exist in the code. Before closing this, the reverse process should be done.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7665 [Taler] documentation text have not tried 2023-02-08 16:31 2023-05-04 20:10
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: Document database schema of Sandbox and Nexus
Description: of both Sandbox and Nexus.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7807 [Taler] documentation text have not tried 2023-04-21 15:04 2023-05-04 20:10
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: document conventions/guidelines for source-level dependencies (i.e. prebuilt branches and submodules)
Description: We currently handle this slightly different across subprojects.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7826 [Taler] other feature have not tried 2023-04-26 13:01 2023-05-04 20:06
Reporter: javier.sepulveda Platform:  
Assigned To: javier.sepulveda OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: Taler OPS - Install PostgreSQL
Description:  Install PostgreSQL
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020174)
javier.sepulveda   
2023-05-04 12:41   
PostgreSQL 13 installed.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7825 [Taler] other minor have not tried 2023-04-26 12:02 2023-05-04 20:06
Reporter: javier.sepulveda Platform:  
Assigned To: javier.sepulveda OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: Taler OPS - Etckeeper
Description: Install and configure etckeeper, instead of bind mount the /etc directory into the maintenance git folder.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020162)
javier.sepulveda   
2023-04-26 12:38   
Etckeeper installed and configured okay.
Plus I have left a short tutorial, with a simple list of commands, to keep track of changes or revert things.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7779 [Taler] wallet (Android App) minor have not tried 2023-03-28 18:45 2023-05-04 20:06
Reporter: grote Platform:  
Assigned To: grote OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: Add dev option to run integration test
Description: The integration test leaves transactions in the history and even some KUDOS in the balance. So this can be helpful for quick smoke testing.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019984)
grote   
2023-03-28 20:07   
resolved in https://git.taler.net/taler-android.git/commit/?id=4d0fabf804e1afffd91927d9805a026e8aaad777 just not sure if it is normal that no transaction of the test get left behind in the history.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7770 [Taler] demobank-ui minor have not tried 2023-03-16 15:18 2023-05-04 20:06
Reporter: MS Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: typo
Description: UI shows this wrong text: "Repeast password", when trying to change a user password from the admin panel.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020000)
sebasjm   
2023-04-01 00:17   
at ce53dd8b8

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7768 [Taler] demobank-ui minor have not tried 2023-03-14 12:43 2023-05-04 20:06
Reporter: MS Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: cash-out rates wrong when starting from fiat.
Description: When the cash-out amount is calculated starting from the fiat, then the UI
submits a rates/fees application that's not accepted by the backend.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019964)
sebasjm   
2023-03-15 13:46   
the truncation of amount after applying rate conversion is wrong, here [1] SPA is doing a simple string truncation and libeufin does a BigDecimal round up, SPA should match that [2]

if calculateFromCredit with amount 3.15 sellFee 0 sellRate 0.95 I get amount debit debitAmount 3.31 which is wrong because calculateFromCredit for amount 3.31 (same rates) the credit is 3.14 !== 3.15

Amounts API in taler-util doesnt have a truncation or roundup function, should we add this function in amounts API?


[1] https://git.taler.net/wallet-core.git/tree/packages/demobank-ui/src/pages/BusinessAccount.tsx#n839
[2] https://git.taler.net/libeufin.git/tree/sandbox/src/main/kotlin/tech/libeufin/sandbox/CircuitApi.kt#n404
(0019998)
sebasjm   
2023-04-01 00:16   
using the cashouts/estimate endpoint
(0019999)
sebasjm   
2023-04-01 00:16   
fixed at f947c8e54919343ac4f5f951d2f701651c06dd52

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7767 [Taler] demobank-ui minor have not tried 2023-03-14 12:41 2023-05-04 20:06
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: negative balance not shown from admin panel
Description: If one customer has negative balance "-X", the admin panel shows instead "X" as the balance.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019963)
sebasjm   
2023-03-15 13:43   
the balance response has "DBIT" | "CRDT" in field credit_debit_indicator
in the docs is specified "credit" | "debit" which SPA expect here https://git.taler.net/wallet-core.git/tree/packages/demobank-ui/src/pages/AdminPage.tsx#n323

doc https://docs.taler.net/libeufin/api-sandbox.html#get--accounts
(0019965)
MS   
2023-03-15 20:05   
fixed libeufin here: 297a6344..973ec3de.

Setting as feedback until the next test.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7756 [Taler] deployment and operations minor have not tried 2023-03-08 18:31 2023-05-04 20:06
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: move .deb packaging infra to non-root user, with user-local docker service enabled
Description: This allows us to build debs as a non-privileged user.

We should not have to log into the system as root for non-sysadmin tasks.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019962)
Florian Dold   
2023-03-14 11:02   
Could you elaborate a bit on which user is now responsible?
(0019966)
Florian Dold   
2023-03-16 09:18   
Did this myself; the taler-packaging user is now responsible.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7751 [Taler] merchant-pos-terminal (Android App) minor have not tried 2023-03-07 18:20 2023-05-04 20:06
Reporter: grote Platform:  
Assigned To: grote OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: Add free-form to add custom amounts to order
Description: Add a keypad icon that allows us to add a custom order item with a custom amount.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019970)
grote   
2023-03-21 17:36   
implemented in https://git.taler.net/taler-android.git/commit/?id=e690df6d0eaacb60ca9edf1d4caf382711278b8b

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7723 [Taler] demobank-ui minor have not tried 2023-02-24 01:15 2023-05-04 20:06
Reporter: Florian Dold Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: bank backend URL should be configurable in globalThis.talerDemobankSettings
Description: We currently use localStorage to override the bank backend base URL, but that's annoying to configure. We should also allow the same mechanism we use for the other config overrides.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019905)
sebasjm   
2023-02-26 00:06   
fixed at d11048b68

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7808 [Taler] exchange feature have not tried 2023-04-21 22:48 2023-05-04 20:05
Reporter: Florian Dold Platform:  
Assigned To: Christian Grothoff OS:  
Priority: normal OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: wire transfer tracking endpoints should support long-polling
Description: The wallet needs to wait for deposits to be done, and this should be done via long-polling rather than busy retrying.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020127)
Christian Grothoff   
2023-04-23 13:30   
Wallet should be able to signal that it wants to wait for a change in AML status here, too.
(0020128)
Christian Grothoff   
2023-04-23 13:32   
Merchant should then ALSO use this one to long-poll for AML status updates.
(0020130)
Christian Grothoff   
2023-04-23 17:52   
EXCHANGE_DEPOSIT_STATUS_CHANGED added to GANA for this.
(0020177)
Christian Grothoff   
2023-05-04 17:15   
2de2b6e3..7c0de44a modifies the main handler logic. Missing are:
1) actual DB event generation to wake up the handler
2) update to libtalerexchange to support LP in the C API
(0020180)
Christian Grothoff   
2023-05-04 20:05   
Seems fine, documented, updated merchant to accept new API.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7832 [Taler] deployment and operations tweak have not tried 2023-05-03 14:43 2023-05-04 13:22
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Setting libeufin log level.
Description: Both libEuFin services have a "--log-level" option under the "serve" subcommand. That should be set to "warn", to further reduce disk usage.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020175)
MS   
2023-05-04 13:22   
Fixed here (deployment.git): 83a8c0695d4e1a507adad8367f318065ae4ade7e

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6363 [Taler] mechant backend feature have not tried 2020-06-03 13:31 2023-05-04 10:52
Reporter: Florian Dold Platform:  
Assigned To: Christian Grothoff OS:  
Priority: high OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: allow merchants to query more information about the deposit status
Description: Quoting from the e-mail discussion:

>> I'm not really sure what to do there in practice, as "Taler 1.0" doesn't
>> really have any way for the merchant to ask about the status of the
>> transfer other than trying to call the exchange.
>>
>
> Well, we do have:
>
> https://docs.taler.net/core/api-exchange.html#get--deposits-$H_WIRE-$MERCHANT_PUB-$H_CONTRACT_TERMS-$COIN_PUB
>
> We could easily add a HTTP "Failed Dependency" status code to the API
> here and define a message format to indicate details about the problem
> to the merchant (and prescribe resolution strategies).
>
> This would mostly require another taler-exchange-XXX process to _query_
> LibEuFin for R-transactions, *and* a change to the exchange DB schema.
> More messy: this will require additional changes to the merchant
> backend. Please file a bug on this on Mantis, but I think we should
> target Taler v1.5 for this, given the scope of the changes and need for
> testing -- and the hopefully reasonably low likelihood of occurrence. At
> least I think we should be fine to manually handle the first generation
> of complaints for R-transactions, and that might even be better than
> trying to automate a process where we may not fully understand all the
> ways these things fail in practice.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0016388)
Christian Grothoff   
2020-07-06 11:00   
Some status information is now provided ('wired'), alas automatically querying LibEuFin for transactions as _merchant_ is missing: right now, the merchant has to manually POST incoming transactions to the backend.

Writing a taler-merchant-wirewatch tool should be done, but later.
(0017804)
Christian Grothoff   
2021-05-09 13:48   
DD13 will include the required wire API changes (as we need to change the wire API for DD13 anyway).
(0017805)
Christian Grothoff   
2021-05-09 19:45   
Discussed with Florian: wire API should NOT be used for this, but a separate libEuFin facade created.
(0019527)
Christian Grothoff   
2022-12-20 23:23   
Marcello: can we please semi-urgently discuss this? I think this would be very good for Basel, and if you can _easily_ add the facade (which I would expect), I could likely get Priscilla to do the merchant backend legwork in January...
(0020047)
Christian Grothoff   
2023-04-10 13:25   
Marcello (correctly) suggests to try to get this working using the Anastasis facade first.
(0020079)
Christian Grothoff   
2023-04-12 15:12   
taler-merchant-wirewatch skeleton now exists. Todo: parse subject line, persist progress in new DB table, add man-page + test.
(0020080)
Christian Grothoff   
2023-04-12 16:10   
Parsing, persisting and man-page are done. Testing is left.
(0020089)
Christian Grothoff   
2023-04-13 19:29   
src/testing/test_merchant_wirewatch.sh is now a new test for this feature. However, it currently fails with a 500 internal server error from libeufin.
1) obviously we shouldn't ever fail with 500, so that should be fixed, _maybe_ a 502 is appropriate. So first the HTTP status should probably be fixed.
2) I do not understand _why_ we fail (what is wrong with the setup/script).

Marcello: could you please look into both of these soon? Thanks!
(0020095)
MS   
2023-04-14 17:16   
The error is from Nexus alone, _before_ even reaching the bank: the 502 error would
not apply in this case.

That's the response along the 500 status:

{
  "code" : 9000,
  "hint" : "nexus error, see detail",
  "detail" : "EBICS (outgoing) document is invalid"
}

That happens because the EBICS document it is sending to the bank has one
invalid value, which is the EBICS partner ID (in this case). The log below from
libeufin-nexus-stderr.log shows the details:

16:55:23.343 [eventLoopGroupProxy-4-1] WARN tech.libeufin.util - Validation failed: org.x
ml.sax.SAXParseException; lineNumber: 1; columnNumber: 235; cvc-pattern-valid: Value '{gnu
net_partner}' is not facet-valid with respect to pattern '[a-zA-Z0-9,=]{1,35}' for type 'P
artnerIDType'.
16:55:23.349 [eventLoopGroupProxy-4-1] ERROR tech.libeufin.nexus - Caught exception while
handling '/bank-connections/gnunet-connection/connect (EBICS (outgoing) document is invali
d (HTTP status 500 Internal Server Error))

Try to adjust the value in "--partner-id" in the CLI's "new-ebicssubscriber" subcommand to one
that matches the pattern shown above in the logs.
(0020096)
Christian Grothoff   
2023-04-16 10:54   
After your fix, it still doesn't work: the facade doesn't return the transaction! I've tried adding an explicit fetch-transactions in addition to the existing "sleep 3", but neither seems to make the transfer show up in the facade!? Please help!
(0020097)
Christian Grothoff   
2023-04-16 11:34   
With the very latest wallet, the withdraw step fails (wallet regression). => Assigning to Florian.
(0020104)
Florian Dold   
2023-04-17 14:10   
According to what MS said on the phone, the issue was with how that wallet was used. And that invocation should be fixed now.
(0020131)
Christian Grothoff   
2023-04-23 17:52   
Design discussion:
- configuration for taler-merchant-wirewatch should entirely move into the database
- tmw should NOT use the REST API (no credentials!)
- tmw should support multiple instances (from one process)
- merchant-exchange interaction for transfers should be moved into a separate helper process (triggered by NOTIFY)
(0020132)
Christian Grothoff   
2023-04-23 17:53   
MERCHANT_WIRE_TRANSFER_CONFIRMED and MERCHANT_ACCOUNTS_CHANGED added to GANA as new event types for this.
(0020134)
Christian Grothoff   
2023-04-23 20:25   
31e5e07..dba2b83 documents the API change to allow user to configure taler-merchant-wirewatch per instance.
(0020135)
Christian Grothoff   
2023-04-23 23:06   
Credentials and progress tracking are now stored in merchant backend together with accounts. Missing is moving the merchant-exchange interaction into a separate helper.
(0020164)
sebasjm   
2023-04-26 19:21   
pushed 9df2547cc..03d3cce82

need an updated merchant to test it out
(0020173)
Christian Grothoff   
2023-05-04 10:51   
6396057..9316c05 should fix taler-merchant-exchange and removes now dead logic from the POST /transfers endpoint.
Assuming the SPA can handle the 204 instead of the 200 for the POST /transfers endpoint (reported separately on mattermost), this should fix "everything" for this bug.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7833 [Taler] libeufin (general) feature have not tried 2023-05-03 15:23 2023-05-03 22:19
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: high OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Implement programmatical DB migration.
Description: LibEuFin database should migrate the same way that other Taler components do. One .sql-file for every database version that get passed to 'psql'. The order to pass the .sql-files to 'psql' is determined by the numbered file names.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7831 [Taler] documentation text have not tried 2023-05-02 08:41 2023-05-02 18:51
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: confirmed Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Create section about setting up a regional currency.
Description: One NLnet suggestion was to have a documentation section about how
to _completely_ setup a regional currency, therefore with ALL the Taler
components.

And before publishing it, any tool (e.g. shell scripts) should have general names
that do NOT mention any particular regional currency, and the source code as well
should NOT hard-code any value related to one particular regional currency.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7810 [Taler] exchange feature have not tried 2023-04-22 17:54 2023-05-02 12:09
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: support conversion service URL and regex validation for /wire
Description: We also need to distinguish between withdrawals and deposits, as in the conversion case, different restrictions for the payto:// URI apply.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020126)
Christian Grothoff   
2023-04-22 22:08   
(Last edited: 2023-04-22 22:09)
API change for /wire specified in docs.git -- 43a3dca..d3102b7.

Once implemented, we MUST bump the protocol to "15:0:0" and add a (transient) protocol-version based switch in libtalerexchange.
(0020172)
Christian Grothoff   
2023-05-02 12:09   
This is largely implemented (exchange, merchant, documentation). Wallet is missing (=> assigning to Florian). What is still missing is that the merchant (and wallet) currently ignores debit restrictions imposed by the exchange and would be perfectly happy to accept deposits for coins from exchanges where the exchange doesn't actually accept the merchant's bank account.

To fix this, we need a working regex evaluator for this style of regex AND to modify the pay logic to actually check.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7446 [Taler] wallet-core feature have not tried 2022-11-07 16:30 2023-04-29 13:49
Reporter: sebasjm Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 0.9.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: dev mode is not persisted after restart
Description: Service worker is a short lived process, so any setting on the wallet core should persist restart.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019428)
sebasjm   
2022-11-16 18:55   
should we add this into the wallet-core db?
(0019452)
Christian Grothoff   
2022-11-18 22:40   
Does it even make sense to persist dev-mode? I actually think turning it off on restart might be a good thing. Devs can re-enable, but having it on by accident might be bad...
(0019473)
MarcS   
2022-11-23 00:07   
On iOS, Dev-Mode is persisted in the application settings, which is just two words of code preceding a variable definition:
    @AppStorage("developerMode") var developerMode: Bool = false
Next time the app launches it will not init with false, but use the value for key "developerMode". If I delete the first two words, the app will fall back to false at launch - after reboot, or if the user manually kicked it off the background app list, or the user launched so many other apps while we are in the background that iOS runs out of memory and kills us - which could take days if the user doesn't launch many other apps. In this case they would maybe see Dev-Mode active for multiple days, and on other days falling back to inactive even within minutes (if they launch many other apps before coming back to us). Such unpredictability is not the best user experience - but OK, it's just developer mode...
(0019477)
sebasjm   
2022-11-23 12:57   
> I actually think turning it off on restart might be a good thing.

Restart the browser yes, but service worker may restart (wiping out wallet memory) after short time.

I will implement saving the state in localStorage (the web version of marc's description) and sync wallet on startup.
(0020163)
sebasjm   
2023-04-26 16:28   
fixed with the implementation of feature flags

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7796 [Taler] merchant backend API (HTTP specification) feature N/A 2023-04-10 10:39 2023-04-29 13:48
Reporter: Christian Grothoff Platform: i7  
Assigned To: sebasjm OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: store user type in merchant instance settings
Description: We right now hard-code BUSINESS as the user-type for KYC, which is incorrect.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020076)
Christian Grothoff   
2023-04-11 19:45   
Fixed in feaf7ba..5ed3b2c
(0020077)
Christian Grothoff   
2023-04-11 19:45   
Next is to add support to the SPA => assigning to sebasjm!
(0020152)
sebasjm   
2023-04-25 05:35   
fixed at 25346a03f

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7134 [libmicrohttpd] build system major always 2021-12-30 07:21 2023-04-28 22:26
Reporter: kloczek Platform:  
Assigned To: Christian Grothoff OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 0.9.75  
Product Build: Resolution: reopened  
Projection: none      
ETA: none Fixed in Version: 0.9.76  
    Target Version: 0.9.76  
Summary: 0.9.75: missing file chapters/websocket.inc in dist tar ball
Description: Looks like it is missing file in dist tart ball. I found it after modify *texi files afetr which it was necessary to renerate info pages.

Making all in doc
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/libmicrohttpd-0.9.75/doc'
Making all in .
make[3]: Entering directory '/home/tkloczko/rpmbuild/BUILD/libmicrohttpd-0.9.75/doc'
restore=: && backupdir=".am$$" && \
am__cwd=`pwd` && CDPATH="${ZSH_VERSION+.}:" && cd . && \
rm -rf $backupdir && mkdir $backupdir && \
if (/bin/sh '/home/tkloczko/rpmbuild/BUILD/libmicrohttpd-0.9.75/build-aux/missing' makeinfo --version) >/dev/null 2>&1; then \
  for f in libmicrohttpd-tutorial.info libmicrohttpd-tutorial.info-[0-9] libmicrohttpd-tutorial.info-[0-9][0-9] libmicrohttpd-tutorial.i[0-9] libmicrohttpd-tutorial.i[0-9][0-9]; do \
    if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
  done; \
else :; fi && \
cd "$am__cwd"; \
if /bin/sh '/home/tkloczko/rpmbuild/BUILD/libmicrohttpd-0.9.75/build-aux/missing' makeinfo -I . \
 -o libmicrohttpd-tutorial.info libmicrohttpd-tutorial.texi; \
then \
  rc=0; \
  CDPATH="${ZSH_VERSION+.}:" && cd .; \
else \
  rc=$?; \
  CDPATH="${ZSH_VERSION+.}:" && cd . && \
  $restore $backupdir/* `echo "./libmicrohttpd-tutorial.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
libmicrohttpd-tutorial.texi:116: @include: could not find chapters/websocket.inc
make[3]: *** [Makefile:553: libmicrohttpd-tutorial.info] Error 1
make[3]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/libmicrohttpd-0.9.75/doc'
make[2]: *** [Makefile:774: all-recursive] Error 1
make[2]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/libmicrohttpd-0.9.75/doc'
make[1]: *** [Makefile:608: all-recursive] Error 1
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/libmicrohttpd-0.9.75'
make: *** [Makefile:515: all] Error 2

Please next time on generate dist tar ball use "make distchec" instead "make dist"
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0018753)
Christian Grothoff   
2022-02-28 23:55   
Fixed by Evgeny in bf89bd95f8d4401ddaabdb59023175e66bdbd80f
(0020169)
kloczek   
2023-04-28 21:57   
Still dist tar ball is broken.
(0020170)
kloczek   
2023-04-28 22:26   
Looks like not only doc/chapters/websocket.inc is missing in tar ball.
After add that filre on buiulding rpm package building documentation failed on another file

libmicrohttpd-tutorial.texi:190: @verbatiminclude: could not find examples/websocket.c
make[1]: *** [Makefile:554: libmicrohttpd-tutorial.info] Error 1
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/libmicrohttpd-0.9.76/doc'
make: *** [Makefile:775: all-recursive] Error 1

PLEASE make sure next time that dist tar ball has been generated not using "make dist" but "make dist check".

IMO it would be good ASP make new release with all missing files.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7828 [Taler] wallet (WebExtension) minor have not tried 2023-04-28 19:02 2023-04-28 19:04
Reporter: MS Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: Blog payment opens two tabs with the content.
Description: Buying one article ends with two tabs showing the article just paid.

To reproduce:

0. Click on one article in the shop.
1. Open the wallet pop-up
2. Click the "open pay page".
3. Finalize the payment.

Observed in this version "0.9.3-dev.5".
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6860 [Taler] Merchant frontends (Python3) minor have not tried 2021-05-10 17:17 2023-04-28 18:30
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 0.8  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: avoid redirect loop in blog merchant frontend demo
Description: When the user agent blocks cookies (or for some other reason the cookie that we expect isn't set correctly, such as due to escaping issues), the browser is currently sent in a redirect loop.

This could be avoided via some intermediate URL that just sets the order ID cookie *or* shows a warning to the user that the cookie wasn't set.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020154)
MS   
2023-04-25 18:29   
I could reproduce it.

By disabling the cookies, and:

1, visiting shop.demo.taler.net
2, clicking on one article
3, getting the QR code page to pay
4, instructing the Firefox wallet to pay
5, confirming the payment in the contract page

The browser is faced again with the QR code page from step 3.
(0020168)
MS   
2023-04-28 18:30   
Addressed here: 6fa8d80..9431000.

The wallet redirect, however, still causes the article to be requested twice. The browser is left in fact with two tabs showing the content.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7827 [Taler] libeufin-sandbox minor have not tried 2023-04-27 14:57 2023-04-27 14:57
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: Refund invalid attempts of withdrawing the regional currency.
Description: Incoming payments to the association's fiat bank account are expected to have a valid reserve public key. The conversion service for now ignores invalid payments, letting them stay in the association's fiat bank account. Such payments should instead be refunded to the original sender.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7426 [Taler] Web site(s) minor have not tried 2022-11-03 09:18 2023-04-27 08:56
Reporter: MS Platform:  
Assigned To: javier.sepulveda OS:  
Priority: low OS Version:  
Status: assigned Product Version: 0.9.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: "public-accounts" link points at bank's homepage
Description: The landing Website offers a link to the "public-accounts" page at the bank. The
link however doesn't show a dedicate page of public accounts, but rather the bank's
homepage.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019362)
Christian Grothoff   
2022-11-06 23:18   
When I click the link inside of the SPA header, I get a message saying that there are no public accounts. Also, I don't know what the deep link to get the public account page would even be right now.

We should fix the demo to have the public accounts setup, fix the link inside the SPA, and have a way to get to the public accounts page from the outside. Maybe the public accounts page should even not be the main SPA but some separate page/SPA served under a different URL?
(0019363)
Christian Grothoff   
2022-11-06 23:19   
Maybe we should disable the links (landing page, bank header) until this is fixed? Not sure how long it'll take...
(0019366)
sebasjm   
2022-11-07 12:16   
The navigation should be made based on URI (fragment is usually used so the SPA can be serve from an unique location) instead of localStorage state.
I will take a look
(0019380)
sebasjm   
2022-11-07 16:44   
fixed at 3eafb649
(0019381)
MS   
2022-11-07 16:57   
The links on the demo navigation bar should now be adapted to this new change.
(0020166)
MS   
2023-04-27 08:54   
Fixed in taler-merchant-demos.git at 6fa8d80b8d6873935ab14956b4ba62932bdd2a14. The "?lang=en" part is also gone from the link, as suggested by Sebastian.
(0020167)
MS   
2023-04-27 08:55   
(Last edited: 2023-04-27 08:56)
Setting to feedback and assigning to Javier to be ultimately checked after the next demo deployment.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7819 [Taler] demobank-ui minor always 2023-04-25 09:12 2023-04-26 19:47
Reporter: Florian Dold Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: clicking "abort" in demobank-ui does not abort the underlying withdrawal operation
Description: It only closes the dialog. Instead, it should also POST ${wopid}/abort to notify wallets that have potentially already scanned the QR code that the withdrawal is aborted.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020165)
sebasjm   
2023-04-26 19:47   
fixed 93e8010b5

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7822 [Taler] libeufin-nexus feature have not tried 2023-04-25 23:50 2023-04-26 09:34
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: nexus should have endpoint to submit all pending payment initiations; exchange tests should use it
Description: See 0007809. Currently we use a sleep of 5 seconds in the test, to make sure that nexus has time to submit payment initiations to sandbox and then fetch transactions. Instead of sleeping, we should be able to explicitly trigger payment initiations. We already have an API that does that, but only for particular PAINs. But we should have one that submits *all* PAINs of a nexus account.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020161)
MS   
2023-04-26 09:33   
Exists, documentation now mentions it: https://git.taler.net/docs.git/commit/?id=493c38e2f7522da54e9e9ced88f8e5d68d77378d

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7809 [Taler] libeufin-nexus block always 2023-04-22 15:34 2023-04-26 00:23
Reporter: Christian Grothoff Platform: i7  
Assigned To: Florian Dold OS: Debian GNU/Linux  
Priority: urgent OS Version: squeeze  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: regression: test_bank_api_with_nexus started to fail
Description: Basically, the test says that the expected debit transaction history is empty, even though it should have a transaction in it.

There were no changes I would consider even 'related' to this issue in the exchange, so this is likely a regression in libeufin.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files: test_bank_api_with_nexus.log (27,721 bytes) 2023-04-24 20:25
https://bugs.gnunet.org/file_download.php?file_id=1371&type=bug
new-log.txt (33,288 bytes) 2023-04-25 23:07
https://bugs.gnunet.org/file_download.php?file_id=1372&type=bug
Notes
(0020141)
MS   
2023-04-24 14:49   
Could not reproduce.
(0020146)
Christian Grothoff   
2023-04-24 20:25   
Attaching the log from the test. I really just run 'make check' with the latest gnunet/exchange/merchant/libeufin.
(0020153)
MS   
2023-04-25 12:59   
(Last edited: 2023-04-25 13:02)
The logs suggest that the failing "history-2b" command started before the libeufin scheduler could start the
"fetch" task. This change in libeufin.git makes tighter rounds to schedule background tasks:
2471f00eba039a460cc31f02fc47a2267367efd.
(0020156)
Christian Grothoff   
2023-04-25 23:07   
With Florians help, after spending like 2h, we've added the fetch-transactions you suggested. But, it still fails the same way as before. Log attached.
(0020159)
Christian Grothoff   
2023-04-26 00:22   
Florian figured it out. Additional feature bugs filed, but for now the test again passes (together with MS change from 5s to 1s for scheduler loop frequency).
(0020160)
Christian Grothoff   
2023-04-26 00:23   
The high-level point was that fetch-transactions is not enough, as first the transaction from nexus to sandbox has to go through, not only from sandbox to nexus. With a scheduler loop running only every 5s, the 5s sleep was no longer enough, even with the force-fetch. With 1s frequency, a 5s wait is plenty.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7820 [Taler] merchant backend API (HTTP specification) feature N/A 2023-04-25 18:41 2023-04-26 00:20
Reporter: Christian Grothoff Platform: i7  
Assigned To: Christian Grothoff OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: /paid should signal if contract was refunded
Description: When, during repurchase detection, a wallet uses /paid, the merchant backend should signal the wallet if the order has been (partially) refunded.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020158)
Christian Grothoff   
2023-04-26 00:20   
Implemented in fd591ef..7afc018

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7821 [Taler] libeufin (general) major always 2023-04-25 23:10 2023-04-25 23:55
Reporter: Christian Grothoff Platform: i7  
Assigned To: MS OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: implementation of basic-auth on server is wrong
Description: Which is why it works with curl but not with wget. wget doesn't like it because the server does not return a proper challenge when requesting authorization.

This applies to nexus and sandbox.

When giving a 401, WWW-Authenticate should always be properly specified by the server.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020157)
Christian Grothoff   
2023-04-25 23:11   
Passing "--auth-no-challenge" to wget works around the issue, but this is a bug in the HTTP server logic and should be fixed there.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7716 [Taler] sandcastle (containerized demo deployment) major always 2023-02-23 01:02 2023-04-25 19:33
Reporter: Florian Dold Platform:  
Assigned To: javier.sepulveda OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: survey bank account does not allow high negative balance needed for tipping
Description: We either need to increase the limit or somehow add funds to the account in a different way.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019904)
Florian Dold   
2023-02-23 23:30   
We should just transfer a bigger amount of money from the bank's root account to the survey account.
(0019938)
Florian Dold   
2023-03-08 19:37   
I'm keeping this open until we automate it.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7229 [Taler] wallet-core minor have not tried 2022-04-18 17:36 2023-04-25 19:18
Reporter: ms-mantis Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: tipping fails due to "logic invariant failed"
Description: Passing the "taler://tip" URI to the CLI wallet fails with the following message:

2022-04-18T15:30:08.523Z wallet.ts INFO finished wallet core request with error: {
  "code": 7001,
  "hint": "unexpected exception (message: BUG: logic invariant failed)",
  "stack": "Error: BUG: logic invariant failed\n at checkLogicInvariant (/home/job/.local/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli.js:16495:19)\n at getExchangeWithdrawalInfo (/home/job/.local/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli.js:19462:5)\n at async prepareTip (/home/job/.local/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli.js:22622:9)\n at async dispatchRequestInternal (/home/job/.local/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli.js:26771:20)\n at async handleCoreApiRequest (/home/job/.local/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli.js:26900:24)\n at async Object.call (/home/job/.local/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli.js:26618:25)\n at async /home/job/.local/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli.js:47266:33\n at async withWallet (/home/job/.local/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli.js:47125:21)\n at async CommandGroup.myAction (/home/job/.local/lib/taler-wallet-cli/node_modules/taler-wallet-cli/dist/taler-wallet-cli.js:47255:5)"
}
Operation failed: undefined
Error details: undefined
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019859)
Florian Dold   
2023-02-17 02:37   
Do you recall how this can be reproduced? Otherwise, I suggest closing it.
(0020155)
MS   
2023-04-25 19:17   
Latest wallet (c8d78d68d369bcc3ff3e0fc257b481146ec92626) is not failing anymore.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7684 [Taler] merchant backend API (HTTP specification) feature N/A 2023-02-13 15:14 2023-04-25 04:47
Reporter: Christian Grothoff Platform: i7  
Assigned To: Christian Grothoff OS: Debian GNU/Linux  
Priority: high OS Version: squeeze  
Status: feedback Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: report exchange AML issues in merchant REST API
Description: https://docs.taler.net/core/api-merchant.html#get--instances-$INSTANCE-private-kyc should report AML status from
600fc4f645286d30cc8446bec1aac466a27a8ec3 (docs.git); GET /deposits/ endpoint of the exchange.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020044)
Christian Grothoff   
2023-04-10 10:48   
79b2673..837416e updates the spec.
(0020045)
Christian Grothoff   
2023-04-10 10:48   
677ac4a5..090c532b modifies the exchange to return the AML status together with the KYC status.
(0020046)
Christian Grothoff   
2023-04-10 11:19   
31babe5..208dbea modifies the merchant to expose the AML status in its API. Untested!
(0020063)
Christian Grothoff   
2023-04-11 11:01   
ad925cc..feaf7ba adds a test.
(0020064)
Christian Grothoff   
2023-04-11 11:02   
Last step is to add support to the SPA to show a pending/frozen AML state to let the user know why they might not be getting any money ;-). => Assigning to sebasjm.
(0020151)
sebasjm   
2023-04-25 04:46   
fixed 2f8de9ea8..00f108b9d

if (kyc url !== undefined) => kyc (1)
else if (aml === 1) => AML pending (2)
else => AML frozen (3)

text:
1.- Pending KYC process, click here to complete
2.- There is an anti-money laundering process pending complete
3.- The account is frozen due to the anti-money rules. Contact the exchange service provider for instructions.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7749 [Taler] wallet-core minor have not tried 2023-03-07 18:16 2023-04-24 23:00
Reporter: Florian Dold Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: wallet-core should forward offline payment TOTP to UIs
Description: See summary.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Selection_086.png (41,596 bytes) 2023-04-24 19:53
https://bugs.gnunet.org/file_download.php?file_id=1370&type=bug
png
Notes
(0020123)
Florian Dold   
2023-04-21 12:41   
Sebastian already implemented it in wallet-core. Is it also supported in the UI? I also wonder if we should have an integration test.
(0020142)
sebasjm   
2023-04-24 19:53   
fixed at 974cd0206
(0020143)
sebasjm   
2023-04-24 19:53   
(0020144)
sebasjm   
2023-04-24 19:57   
the list of numbers is serialized by the merchant to a string separated by \n
this is not standard

comma separated is better or maybe just a simple array of numbers instead of string

https://docs.taler.net/core/api-merchant.html#post-[-instances-$INSTANCE]-orders-$ORDER_ID-pay
(0020145)
Christian Grothoff   
2023-04-24 20:01   
(Last edited: 2023-04-24 20:02)
I'm not sure what you mean by "is not standard". First of all, we do not guarantee that this is an array, or even numbers.
The idea is (for now) that this is the "text to show", and that if it has newlines, you should render it with newlines! These are 5 TOTP
codes, and the idea is that the POS staff should match any single one of them. So I don't see why comma vs \n would be any better, or more "standard". My goal was to give it to you in exactly the format that you could just directly give to a rendering engine.

Oh, and you should NOT render them in one long line, that's not the intended format here. The idea was to show one code per line on 3-5 lines.
(0020147)
sebasjm   
2023-04-24 20:48   
(Last edited: 2023-04-24 22:52)
> Oh, and you should NOT render them in one long line, that's not the intended format here. The idea was to show one code per line on 3-5 lines.

That's how the render engine is showing it, I will add a < pre > so the browser will render the \n

> I'm not sure what you mean by "is not standard"
For clarification: I meant a standard way of showing a list of numbers, people can understand a comma separated value and it will show exactly the same way everywhere.

\n may not be rendered in the same way in html or in a cli using linux or windows.
(0020150)
sebasjm   
2023-04-24 23:00   
2f8de9ea86cc1170b45e13fae6f0a66c7c4fd038 added
			

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6723 [Taler] libeufin-nexus minor have not tried 2021-01-26 14:51 2023-04-24 22:41
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: unify responses format styles
Description: Right now Nexus uses *4* different flavors to respond:

1) JSON for exceptions.
2) Plain text for the fallback route.
3) a empty JSON for *some* successful requests.
4) plain text for some other successful requests.

Those should be unified under two JSONs formats: one for errors, and one for 200 OK responses.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020148)
MS   
2023-04-24 22:40   
(Last edited: 2023-04-24 22:41)
libeufin-keyrotation now breaks because of the format Nexus responds to "/fetch-transactions". The failing check is now commented out (see FIXME in the source file), and should be enabled after this bug gets fixed.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6558 [Taler] wallet-core feature have not tried 2020-09-03 12:34 2023-04-24 21:41
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: transaction item for "lost coins due to expiration" needed
Description: In some cases, the auto-refresh comes to late and the wallet loses coins. The wallet has to show an appropriate item in the transactions list for that.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0016824)
Florian Dold   
2020-09-03 17:27   
According to the discussion in 0006561, we also need to make sure that coins can be "revived" from this state when they were marked as expired because of a wrong system time setting.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7817 [Taler] exchange minor always 2023-04-23 23:55 2023-04-24 21:23
Reporter: Christian Grothoff Platform: i7  
Assigned To: Christian Grothoff OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: exchange twisted test skip
Description: ... due to a configuration issue. We should fix the configuration --- and not skip on configuration bugs.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7815 [Taler] exchange feature always 2023-04-23 22:21 2023-04-24 20:06
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: none OS Version:  
Status: confirmed Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: exchange should have API to give refunds for purses in peer-pull payments
Description: The refund should only be possible until the purse is filled completely. The refund is done for each deposited coin individually.

The attached diagram shows the state machine for peer-pull-debit transactions *with* refunds. The wallet for now does not support them.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: transaction-pull-debit-states.png (109,494 bytes) 2023-04-23 22:21
https://bugs.gnunet.org/file_download.php?file_id=1369&type=bug
png
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7745 [Taler] other minor always 2023-03-06 23:16 2023-04-24 19:38
Reporter: sebasjm Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: pogen doesnt work with double quotes
Description: somehow it creates invalid format

see commit https://git.taler.net/wallet-core.git/commit/?id=f99e1522d1114eeda6bd7ff3aea91421699c783c

error was

Error: Command failed: msgmerge -o 'src/i18n/de.po' 'src/i18n/de.po' 'src/i18n/taler-merchant-backoffice.pot'
src/i18n/taler-merchant-backoffice.pot:1986: missing 'msgstr' section
src/i18n/taler-merchant-backoffice.pot:1986:29: syntax error
src/i18n/taler-merchant-backoffice.pot:1986: keyword "$s" unknown
src/i18n/taler-merchant-backoffice.pot:2462: missing 'msgstr' section
src/i18n/taler-merchant-backoffice.pot:2462:36: syntax error
src/i18n/taler-merchant-backoffice.pot:2462: keyword "$s" unknown
msgmerge: found 6 fatal errors

    at checkExecSyncError (node:child_process:885:11)
    at Object.execSync (node:child_process:957:15)
    at Object.main (/home/sebasjm/Work/taler/taler-docker/development/base/wallet.git/packages/pogen/lib/pogen.js:35:31)
    at Object.<anonymous> (/home/sebasjm/Work/taler/taler-docker/development/base/wallet.git/packages/pogen/bin/pogen:2:28)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
    at Module.load (node:internal/modules/cjs/loader:1117:32)
    at Module._load (node:internal/modules/cjs/loader:958:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
  status: 1,


example of translation

#: src/paths/admin/list/index.tsx:89
#, c-format
msgid "Instance \\"%1$s\\" (ID: %2$s) has been deleted"
msgstr ""
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020094)
Florian Dold   
2023-04-14 16:06   
Should be fixed in f18305776167a3838245fd7d, please check!

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7804 [Taler] deployment and operations trivial always 2023-04-14 10:46 2023-04-24 13:42
Reporter: hbarnard Platform:  
Assigned To: javier.sepulveda OS:  
Priority: low OS Version:  
Status: resolved Product Version: 0.9.2  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Suggested tweaks to main.sh
Description: 1. Warn people to set up DNS before proceeding otherwise the pings will fail. Probably both in the README and the script:

Set up Domain names first!
=========================

Assuming a main domain at netzbon.ch (i.e. "netzbon.ch" will be given as the
value for the domain during configuration), this setup expects the following
subdomains to be reachable:

A netzbon.ch
CNAME exchange.netzbon.ch
CNAME bank.netzbon.ch
CNAME backend.netzbon.ch (merchants frontends need this)

etc.

2. I sometimes use a dollar symbol in passwords, this makes main.sh fail, presumably because of bash. Solution is remove config file and start again. Incidentally that password is in clear in the generated config? Need something a bit better there?

These are trivial suggestions and the whole process works well now.
Tags:
Steps To Reproduce: Run ./main.sh
Additional Information:
Attached Files:
Notes
(0020140)
javier.sepulveda   
2023-04-24 13:42   
Set up Domain names first! - Added to README file
Dollar symbol in passwords - DONE in main.sh
Web UI bank password field, removed character restrictions.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7818 [Taler] wallet-core feature always 2023-04-24 07:49 2023-04-24 07:49
Reporter: MarcS Platform:  
Assigned To: Florian Dold OS:  
Priority: low OS Version:  
Status: assigned Product Version: post-1.0  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: fractionalBaseDigits of currencies
Description: Most currencies in the world have two digits after the decimal point/comma - but some have three (most arabian countries: Bahraini Dinar, Iraqi Dinar, Jordanian Dinar, Kuwaiti Dinar, Libyan Dinar, Rial Omani, Tunisian Dinar) and some have none (Indonesian Rupiah, Japanese Yen, South-Korean Won, Vietnamese New Dong, Cape Verdi Escudo, Paraguay Guarani, and a few african and caribbean countries).

When querying for exchanges, the data returned should not only tell the name of the currency:
    var exchangeBaseUrl: String
    var currency: String?
but also the fractionalBaseDigits:
    var fractionalBaseDigits: UInt?

There are 3 possible wallet-core calls where that information could be returned:
1) ListExchangesOp
2) GetExchangeDetailedInfoOp
3) ListCurrenciesOp

Sebastian wrote about using denominations to find out what amount might be possible to send, but fractionalBaseDigits are needed to display amounts correctly in balances and transaction views, especially whole numbers which might still need to be shown with decimal delimiter and fractional digits (.00, .000, ...).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7510 [Taler] deployment and operations major have not tried 2022-12-06 21:43 2023-04-23 23:50
Reporter: MS Platform:  
Assigned To: javier.sepulveda OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: buildmaster-builder NOT automatically reloading the Buildbot master configuration.
Description: To be fixed.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020139)
Christian Grothoff   
2023-04-23 23:50   
Eh, this used to work just fine, with a buildslave kicking the buildmaster on master configuration changes -- unless the master configuration had a syntax error. MS: care to elaborate what you changed and what didn't work?

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7306 [Taler] wallet-core feature have not tried 2022-08-23 19:19 2023-04-23 23:49
Reporter: grote Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: Add number of decimal places to transaction list response
Description: Could be added here to `TransactionsResponse`: https://docs.taler.net/taler-wallet.html#transactions

Maybe there's other places to add this to as well?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019087)
Florian Dold   
2022-09-05 13:59   
I'm not sure if the transaction list is the right place to put this information. The information is per-currency, so it might make sense to have some general "getCurrencyInfo" request to wallet-core that the UI requests at startup. Would that help?

But additionally, do we ever *not* want to show all digits of an amount? It is already limited by the maximum number of decimal places of the amount data type in Taler.
(0019089)
grote   
2022-09-05 14:24   
Do you suggest to just always show the maximum number of decimal places? Would work for me.

Is this already part of the amount data type in the wallet API?
(0019091)
Florian Dold   
2022-09-05 16:23   
Amounts in Taler are limited to 8 decimal places [1].

Do you think we need some info for the *minimum* number of decimal places to display? Something like "10.00 EUR"?

[1] https://docs.taler.net/core/api-common.html#amounts
(0019093)
grote   
2022-09-05 16:27   
If we always want to show a minimum number of decimal places, then yeah I'd like to get that info from wallet core wherever I need it.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7116 [Taler] libeufin-nexus feature have not tried 2021-11-30 18:48 2023-04-23 23:46
Reporter: ms-mantis Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: payment bouncing fee should be configurable
Description: The Taler facade bounces malformed incoming payments with the same amount that was paid by the debtor. Instead it should deduct a bounce fee, and this one should be specified in the configuration.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7683 [Taler] wallet-core minor have not tried 2023-02-12 20:56 2023-04-23 23:43
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: remove deprecated auditor/exchange trust management
Description: ... in favor of new currency configuration
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7795 [Taler] libeufin-sandbox minor have not tried 2023-04-07 15:59 2023-04-23 23:38
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: STDOUT not showing.
Description: Redirecting both STDOUT and STDERR to a file doesn't show STDOUT.
Observed in Sandbox when using Exposed's StdOutSqlLogger.
Tags:
Steps To Reproduce:
Additional Information: Information loss is very unlikely, because logging goes to STDERR.
Attached Files:
Notes
(0020138)
Florian Dold   
2023-04-23 23:38   
Can you clarify this a bit?

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7600 [Taler] libeufin (general) minor have not tried 2023-01-18 23:11 2023-04-23 23:37
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Consider reducing 'util' file number.
Description: The Util package grew with >20 files, according to which feature the
function(s) in one file offer(s). However, some function may ambiguously
be appropriate to more than one file, resulting in this fine grained division
not being helpful (and therefore only creating more scaffolding).

On top of that, the files aren't placed under a path that matches their
package definition, with the IDE constantly warning about this.

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020137)
Florian Dold   
2023-04-23 23:37   
Is this still relevant?

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7771 [Taler] libeufin (general) trivial have not tried 2023-03-23 12:52 2023-04-23 23:36
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: low OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: Manage missing testing dependencies.
Description: Instead of failing when 'jq', Python 'requests', or 'sqlite3' are missing, tests should either
install them or inform the user about such missing dependencies.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
5954 [Taler] libeufin (general) minor have not tried 2019-10-29 18:00 2023-04-23 23:32
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: look for or implement better alternative to JAXB
Description: JAXB doesn't work well with kotlin, but it also is pretty bad in general.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6259 [Taler] libeufin-nexus minor have not tried 2020-05-24 13:58 2023-04-23 23:32
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: error log in database
Description: LibEuFin should collect bank-technical errors in a database, and the UI should be able to render them.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6556 [Taler] wallet-core tweak have not tried 2020-09-03 11:41 2023-04-23 23:31
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: have integration tests that mutate signatures to check that implementation checks all relevant signatures
Description: It's pretty easy to forget checking signatures in the wallet. We should have test cases that actually trigger signature verification failures.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7118 [Taler] other minor have not tried 2021-12-01 11:25 2023-04-23 23:30
Reporter: ms-mantis Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: merchant demos doesn't install all dependencies
Description: Namely, 'babel' and 'uwsgi' should be included as dependencies.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7582 [Taler] wallet-core feature have not tried 2023-01-13 02:27 2023-04-23 23:30
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: implement user-initiated p2p kyc / KYCed reserve management
Description: This might include the ability for users to initiate opening a KYC account (=KYCed reserve).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6804 [Taler] wallet-core feature have not tried 2021-03-11 16:10 2023-04-23 23:19
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: implement wallet test case for a multi-exchange payment
Description: The test case should withdraw from two exchanges and then pay for an order with a merchant that accepts both exchanges.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7792 [Taler] exchange minor always 2023-04-05 18:20 2023-04-23 23:17
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: exchange responds with 500 to non-idempotent deposit
Description: When the wallet handles a deposit request that is equivalent to a previous one *except* for the amount, it returns status 500

This issue is present in master and in the released 0.9.2.
Tags:
Steps To Reproduce: $ taler-harness run-integrationtests exchange-deposit
Additional Information:   "requestUrl": "http://localhost:8081/coins/EAEC4V41CBQEVMTXR2B3BT5J0P77Y36NF7NW6XXN1TT0HHKPKVD0/deposit",
  "requestMethod": "POST",
  "httpStatusCode": 500,
  "errorResponse": {
    "code": 52,
    "hint": "The service failed to store information in its database.",
    "detail": "deposit"
  }
Attached Files:
Notes
(0020038)
Christian Grothoff   
2023-04-08 08:30   
Fixed in 36b2cbb4..cbabddf0 -- now returning a 409. The test still fails though, as you don't like the 409. But I think 409 is correct.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7814 [Taler] wallet-core minor have not tried 2023-04-23 20:47 2023-04-23 22:18
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: DD37: handle funky deposit txn case where aborting(refresh) might still need to do a refund
Description: If the refund request fails because the deposit request did not arrive *yet*, the refresh will *also* fail if the refresh arrives after the deposit request is finally handled.

To resolve this, refresh groups should learn the ability to try to a refund request once if the refresh on that particular coin fails.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
4379 [Taler] wallet-core feature have not tried 2016-04-06 23:34 2023-04-23 20:21
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: confirmed Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: error handling: exportable proof of e.g. double spending for auditor
Description: When payments fail and it is not a transient error, the wallet needs to provide the user with a way to extract the information regarding the claim the merchant made.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0011423)
Florian Dold   
2016-11-03 20:21   
Not clear how this should look UI-wise, and I'm also not sure what's the best way to test this.

For the UI: We could open an in-extension tab that shows a message and a way to save the proof. Should it show up anywhere in the wallet popup, or just in the history?

Does this error page provide the user with the option to refresh coins that are not double-spended? Does this happen automatically (probably makes most sense)?

Should we have some informal spec that documents these cases before we start implementing?
(0011451)
Florian Dold   
2016-11-08 15:01   
Moved to 0.3 since we should have at least the facilities to trigger the various error paths (wallet really double-spended / merchant falsely claimed double spending).
(0011452)
Christian Grothoff   
2016-11-08 16:11   
Eh, that would be 0.5. That's when the error path triggering is on the roadmap.
(0011453)
Christian Grothoff   
2016-11-08 16:11   
Wrong again. 0.6.
(0011945)
Christian Grothoff   
2017-03-19 00:06   
In terms of specification, I basically expect that for each possible proof we export a JSON file with:

* always top-level: some numeric information about the type of proof
* always top-level: some human-readable information about the type of proof

Then, type-specific key-value pairs where:

key: some string describing the value
value: some json object (or array) with structured proof data, i.e. public keys, amounts, signatures, hashes, etc., depending on what the proof is about.


We should also have some command-line tool to verify proofs, i.e. I would run:

taler-check-proof FILENAME.json

and it would:
1) open file, parse the json (make sure JSON was valid)
2) look at the type, use it to load some plugin to verify the proof and
3) output the result of the check ("valid" / "invalid")

We need to have an additional options "--extract-contract" that could be used to extract the JSON contract from the overall proof (if present), so that one can use the (generic) contract renderer (which we need to have a standalone-version of) to show the contract. I think that's about it for the overall design, the individual JSON field members for each proof should probably just be speced as the export-logic and proof-validation plugin are implemented.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6258 [Taler] libeufin-nexus minor have not tried 2020-05-24 13:55 2023-04-23 19:38
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: parse HAC for better reliability
Description: With some operations, we will only know by looking at HAC whether they succeeded or failed.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7587 [Taler] libeufin (general) minor have not tried 2023-01-14 10:04 2023-04-23 19:36
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: General pass to potentially switch "200 OK" to "204 No Content".
Description: The Taler Wire Gateway API got already changed here: 0676e25980a8b..

This report contiues: 0007301.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020099)
Florian Dold   
2023-04-17 11:04   
What's the rationale for this? It's clearly not a performance issue, why are we complicating the API with different types of responses (empty list vs. 204) to indicate zero transactions?
(0020133)
Florian Dold   
2023-04-23 19:36   
Discussed with Christian: The idea is that 204 indicates that there are no new transactions *and the client should go into long-polling*, while we expect 200 only when transactions are present.

While I still think that this is an over-optimization, we should still consistently apply what we've agreed on.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7812 [Taler] libeufin-sandbox minor have not tried 2023-04-22 18:19 2023-04-22 18:19
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: high OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: demobank account registration sometimes fails because IBAN already exists
Description: It looks like the sandbox just generates a random IBAN but then gives up if it's already used. Instead, it must try harder to find a fresh one!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7276 [Taler] exchange feature N/A 2022-07-05 13:15 2023-04-22 15:17
Reporter: Christian Grothoff Platform: i7  
Assigned To: Christian Grothoff OS: Debian GNU/Linux  
Priority: urgent OS Version: squeeze  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: improve wirewatch performance via multi-value insert
Description: Right now, we do a separate INSERT per wire transfer, which needs one RTT per request to the database.

We could likely significantly improve wirewatch performance if we batched these requests, providing multiple tuples of values for a single INSERT.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020120)
Christian Grothoff   
2023-04-18 20:44   
Code exists in reserves_in_insert, but needs urgent correctness review!
(0020125)
Christian Grothoff   
2023-04-22 15:17   
Bugs fixed (including unrelated ones in fakebank and wirewatch), performance on my desktop due to batching went up from 33k to 43k TPS when going from batch size 1 to 8.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7738 [Taler] libeufin-nexus minor have not tried 2023-03-04 16:44 2023-04-21 22:03
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Creating a facade with a unavailable name responds 500.
Description: That should be changed to 409, or even 200 if the API is idempotent.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020124)
MS   
2023-04-21 21:41   
(Last edited: 2023-04-21 22:03)
Fixed here by making the facade creation idempotent: bb96fd4f635cd9b760363acc7aacb9f7d890cf89.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7581 [Taler] wallet-core feature have not tried 2023-01-13 02:26 2023-04-21 14:50
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: implement soft KYC for balance limits
Description: The wallet should request a KYC check when the balance exceeds a threshold
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7806 [Taler] wallet (Android App) minor have not tried 2023-04-17 17:44 2023-04-21 00:02
Reporter: hbarnard Platform:  
Assigned To: grote OS:  
Priority: normal OS Version:  
Status: assigned Product Version: 0.9.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Lots of 'complaints' when compiling wallet
Description: I'm doing some wallet compiles, because I may need a modified version. Maybe this is something I'm not setting?
Lots of deprecation warnings during the compile, but I seem to get an apk, that I haven't tried yet! See below:


hbarnard@hbarnard-OptiPlex-9020:~/projects/taler/taler-android$ ./gradlew :wallet:build
Configuration on demand is an incubating feature.
warn: removing resource net.taler.wallet.nightly:string/backup_last without required default value.
warn: removing resource net.taler.wallet.nightly:string/nav_settings_backup without required default value.
warn: removing resource net.taler.wallet.nightly:string/transactions_detail_title_balance without required default value.


> Task :wallet:compileNightlyDebugKotlin
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/MainActivity.kt:147:20 'onBackPressed(): Unit' is deprecated. Overrides deprecated member in 'androidx.core.app.ComponentActivity'. Deprecated in Java

> Task :wallet:packageFdroidRelease
PackagingOptions.jniLibs.useLegacyPackaging should be set to true because android:extractNativeLibs is set to "true" in AndroidManifest.xml.
warn: removing resource net.taler.wallet:string/backup_last without required default value.
warn: removing resource net.taler.wallet:string/nav_settings_backup without required default value.
warn: removing resource net.taler.wallet:string/transactions_detail_title_balance without required default value.

warn: removing resource net.taler.wallet.nightly:string/backup_last without required default value.
warn: removing resource net.taler.wallet.nightly:string/nav_settings_backup without required default value.
warn: removing resource net.taler.wallet.nightly:string/transactions_detail_title_balance without required default value.


> Task :wallet:compileGoogleReleaseKotlin
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/MainActivity.kt:147:20 'onBackPressed(): Unit' is deprecated. Overrides deprecated member in 'androidx.core.app.ComponentActivity'. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/Utils.kt:25:25 'WifiConfiguration' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/accounts/AccountManager.kt:33:27 Parameter 'knownBankAccounts' is never used, could be renamed to _
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/payment/ProductImageFragment.kt:50:41 'getParcelable(String?): T?' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt:58:9 'setHasOptionsMenu(Boolean): Unit' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt:99:27 'onOptionsItemSelected(MenuItem): Boolean' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt:106:15 'onCreateOptionsMenu(Menu, MenuInflater): Unit' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt:39:9 'setHasOptionsMenu(Boolean): Unit' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt:44:15 'onActivityCreated(Bundle?): Unit' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt:62:27 'onOptionsItemSelected(MenuItem): Boolean' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt:66:9 'setHasOptionsMenu(Boolean): Unit' is deprecated. Deprecated in Java

> Task :wallet:compileNightlyReleaseKotlin
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/MainActivity.kt:147:20 'onBackPressed(): Unit' is deprecated. Overrides deprecated member in 'androidx.core.app.ComponentActivity'. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/Utils.kt:25:25 'WifiConfiguration' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/accounts/AccountManager.kt:33:27 Parameter 'knownBankAccounts' is never used, could be renamed to _
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/payment/ProductImageFragment.kt:50:41 'getParcelable(String?): T?' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt:58:9 'setHasOptionsMenu(Boolean): Unit' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt:99:27 'onOptionsItemSelected(MenuItem): Boolean' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt:106:15 'onCreateOptionsMenu(Menu, MenuInflater): Unit' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt:39:9 'setHasOptionsMenu(Boolean): Unit' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt:44:15 'onActivityCreated(Bundle?): Unit' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/transactions/TransactionDetailFragment.kt:62:27 'onOptionsItemSelected(MenuItem): Boolean' is deprecated. Deprecated in Java
w: file:///home/hbarnard/projects/taler/taler-android/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt:66:9 'setHasOptionsMenu(Boolean): Unit' is deprecated. Deprecated in Java

> Task :wallet:packageGoogleRelease
PackagingOptions.jniLibs.useLegacyPackaging should be set to true because android:extractNativeLibs is set to "true" in AndroidManifest.xml.

> Task :wallet:packageNightlyRelease
PackagingOptions.jniLibs.useLegacyPackaging should be set to true because android:extractNativeLibs is set to "true" in AndroidManifest.xml.

> Task :wallet:packageFdroidDebug
PackagingOptions.jniLibs.useLegacyPackaging should be set to true because android:extractNativeLibs is set to "true" in AndroidManifest.xml.

> Task :wallet:packageGoogleDebug
PackagingOptions.jniLibs.useLegacyPackaging should be set to true because android:extractNativeLibs is set to "true" in AndroidManifest.xml.

> Task :wallet:packageNightlyDebug
PackagingOptions.jniLibs.useLegacyPackaging should be set to true because android:extractNativeLibs is set to "true" in AndroidManifest.xml.

> Task :wallet:lintReportFdroidDebug
Wrote HTML report to file:///home/hbarnard/projects/taler/taler-android/wallet/build/reports/lint-results-fdroidDebug.html

BUILD SUCCESSFUL in 6m 9s
Tags:
Steps To Reproduce: ./gradlew :wallet:build
Additional Information:
Attached Files:
Notes
(0020112)
grote   
2023-04-18 17:56   
None of those are critical. Deprecations happen all the time in Android and we'll take care of them eventually. Outdated strings get fixed when Weblate is pushing new translations.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7704 [Taler] wallet-core feature have not tried 2023-02-17 16:17 2023-04-19 17:43
Reporter: sebasjm Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: implement feature flags for wallet core
Description: UI dev mode should allow the user to set flags on and off
UI should save a map Record<string,boolean> with name of the flag and status (on,off)
By default all flags should be considered off
Wallet core should take this in the initialization
It is not expected to change the flags in runtime (restart needed)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020122)
sebasjm   
2023-04-19 17:43   
d483a3f5574355ed9c43eb6ddea59e5734323cf0

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7801 [Taler] deployment and operations minor have not tried 2023-04-12 17:33 2023-04-19 13:22
Reporter: hbarnard Platform:  
Assigned To: javier.sepulveda OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 0.9.1  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Deployment fails at last step
Description: Running deployment/netzbon/main.sh, finally it fails with:
`
TALER: Launching exchange
Created symlink /etc/systemd/system/multi-user.target.wants/taler-exchange.target → /lib/systemd/system/taler-exchange.target.
TALER: Waiting for exchange HTTP service (/config)...
TALER: DONE
TALER: Waiting for exchange management keys (this may take a while)...
TALER: DONE
TALER: Offline interaction...
2023-04-12T15:23:02.918130+0000 taler-exchange-offline-28437 WARNING Did NOT detect response `<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.22.0 (Ubuntu)</center>
</body>
</html>
' as JSON
2023-04-12T15:23:02.918277+0000 taler-exchange-offline-28437 ERROR Unexpected response code 404/10 for exchange management get keys
2023-04-12T15:23:02.918295+0000 taler-exchange-offline-28437 ERROR Failed to download keys from `http://exchange.bank-in-a-box.net/': The response we got from the server was not even in JSON format. (HTTP status: 404/10)
`
Maybe because I decided not to use https?
Tags:
Steps To Reproduce: 1. Clone deployment onto an Ubuntu 22.10 server
2. Run ./main.sh
3. Say no to TLS question
Additional Information:
Attached Files:
Notes
(0020082)
Christian Grothoff   
2023-04-12 21:46   
Florian, I remember you mentioning something about a missing nginx symlink for sites-available that might explain this. If this could be it, which Git version was this fixed in?
(0020083)
Christian Grothoff   
2023-04-12 21:46   
@hbarnard : We did quite a few changes even *today* to the netzbon script. Could you please report the exact Git version you used?
(0020084)
hbarnard   
2023-04-13 12:23   
Just wiped and recreated an Ubuntu 22.10 VM, apt update etc. git clone deployment repo from 13/4 and run the install, it looks 'good', so please close this one and thanks:

TALER: Exchange setup finished
TALER: Launching taler-merchant-httpd
Created symlink /etc/systemd/system/multi-user.target.wants/taler-merchant-httpd.service → /lib/systemd/system/taler-merchant-httpd.service.
TALER: Congratulations, you have successfully installed GNU Taler
TALER: Your bank is at https://bank.bank-in-a-box.net/
TALER: A merchant is at https://backend.bank-in-a-box.net/
TALER: You should set credentials for the merchant soon.
(0020085)
Florian Dold   
2023-04-13 12:48   
Great, marking this as resolved.
(0020091)
Christian Grothoff   
2023-04-13 20:22   
(Last edited: 2023-04-13 20:23)
Maybe we should extend the netzbon script to first *test* if the distro is the right one? Javier: can you write a test for this and add it to the top of the main script?
(0020121)
javier.sepulveda   
2023-04-19 13:22   
dev/javier-sepulveda/netzbon-tls
netzbon/check-distro.sh
Tested the whole branch from scratch (new instance Ubuntu 22.10) and works okay.
The new files {check-distro,check-services}.sh and config_journald.sh, work okay.
We can now manually add --new supported distros to the file "distros-supported.txt"
Pending merge by Florian.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7794 [Taler] exchange minor have not tried 2023-04-06 17:46 2023-04-18 23:11
Reporter: MS Platform:  
Assigned To: Christian Grothoff OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: Library not found despite correct LD_LIBRARY_PATH
Description: The following logs shows the execution environment and how the Postgres
database plugin is NOT being found by the taler-exchange-dbinit program.

ms@notebook:~$ ls $HOME/.local/lib/taler/ | grep exchangedb_postgres
libtaler_plugin_exchangedb_postgres.la
libtaler_plugin_exchangedb_postgres.so
ms@notebook:~$ export LD_LIBRARY_PATH=$HOME/.local/lib/taler
ms@notebook:~$ echo $LD_LIBRARY_PATH
/home/ms/.local/lib/taler
ms@notebook:~$ taler-exchange-dbinit
2023-04-06T17:45:15.673649+0200 util-plugin-176000 ERROR `lt_dlopenext' failed for library `libtaler_plugin_exchangedb_postgres' with error: file not found
Failed to initialize database plugin.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020034)
Christian Grothoff   
2023-04-06 22:28   
LD_LIBRARY_PATH is irrelevant for plugins. Did you set TALER_PREFIX correctly to $HOME/.local/? In fact, is you main binary linked correctly? Do you have more than one libtalerutil.so on your disk? Is the plugin actually installed, or was libgnunetpq outdated/not found during configure? Are you using the latest exchange with Joseph's linker issue fixed?
(0020101)
Florian Dold   
2023-04-17 11:40   
I also had this problem, but didn't see it recently. Likely that it was due to the issue that Joseph has now fixed.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6664 [Taler] documentation text have not tried 2020-12-08 15:59 2023-04-18 20:06
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 1.0  
Summary: clarify normalization algorithm of contract terms and backup blob
Description: We currently don't specify the algorithm, but just refer to the jansson implementation.

We should have a look at https://tools.ietf.org/html/rfc8785 for this.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020119)
Christian Grothoff   
2023-04-18 20:06   
DD 018 already clearly refers to RFC 8785, so I am not sure what else is left to do here.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7597 [Taler] exchange trivial have not tried 2023-01-17 17:01 2023-04-18 20:01
Reporter: Florian Dold Platform:  
Assigned To: Christian Grothoff OS:  
Priority: none OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: exchange triggers MHD deprecation warning
Description: taler_error_codes.c:177:13: warning: Value MHD_HTTP_PAYLOAD_TOO_LARGE is deprecated,
  177 | .http_code = MHD_HTTP_PAYLOAD_TOO_LARGE
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC yna.lo
taler_error_codes.c:2277:13: warning: Value MHD_HTTP_PAYLOAD_TOO_LARGE is deprecated,
 2277 | .http_code = MHD_HTTP_PAYLOAD_TOO_LARGE
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
taler_error_codes.c:2283:13: warning: Value MHD_HTTP_PAYLOAD_TOO_LARGE is deprecated,
 2283 | .http_code = MHD_HTTP_PAYLOAD_TOO_LARGE
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
taler_error_codes.c:2745:13: warning: Value MHD_HTTP_PAYLOAD_TOO_LARGE is deprecated,
 2745 | .http_code = MHD_HTTP_PAYLOAD_TOO_LARGE
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019692)
Christian Grothoff   
2023-01-17 19:44   
Yes, that's well-known and would be trivial to fix --- but we'd then require more recent versions of MHD to be deployed at end-users, so I'm holding off intentionally until recent versions of MHD are really universally available.
(0020118)
Christian Grothoff   
2023-04-18 20:00   
Fixed in latest GANA by updating HTTP status code registry to current IANA values.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7585 [Taler] mechant backend minor have not tried 2023-01-13 13:11 2023-04-18 19:36
Reporter: Florian Dold Platform:  
Assigned To: Christian Grothoff OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: merchant build shows compiler warning
Description: plugin_merchantdb_postgres.c: In function ‘lookup_accounts_cb’:
plugin_merchantdb_postgres.c:531:3: warning: ‘<unknown>’ may be used uninitialized [-Wmaybe-uninitialized]
  531 | call_with_accounts (lic,
      | ^~~~~~~~~~~~~~~~~~~~~~~~
  532 | num_results,
      | ~~~~~~~~~~~~
  533 | accounts);
      | ~~~~~~~~~
plugin_merchantdb_postgres.c:445:1: note: by argument 3 of type ‘const struct TALER_MERCHANTDB_AccountDetails[]’ to ‘call_with_accounts’ declared here
  445 | call_with_accounts (struct LookupInstancesContext *lic,
      | ^~~~~~~~~~~~~~~~~~
  CCLD libtaler_plugin_merchantdb_postgres.la
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019662)
Christian Grothoff   
2023-01-13 17:00   
Yeah, I checked, couldn't find at all why gcc thinks there is an issue with that code. Didn't want to just brutally memset() the warning away, so it stays "for now".
(0019663)
Christian Grothoff   
2023-01-13 18:50   
Which platform do you get this? Just tried on Debian with gcc-10 and gcc-12 and no warning even with -Wextra.
(0019668)
Florian Dold   
2023-01-15 14:59   
I get this both on my old Arch Linux installation and on Fedora on my Workstation:

[fdold-work@fedora merchant]$ gcc --version
gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
(0019675)
Christian Grothoff   
2023-01-15 22:45   
Update: affects gcc-11 and gcc-12, on -O2 with -Wall. Jose is on it as it looks like a gcc bug.
(0020117)
Christian Grothoff   
2023-04-18 19:36   
ccfd643c..d940480c adds a work-around using memset(). Just to make the warning disappear, as otherwise we'll surely hear again of it, even though it is a gcc bug.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7373 [Taler] documentation text have not tried 2022-09-27 10:45 2023-04-18 18:56
Reporter: ttn Platform:  
Assigned To: Christian Grothoff OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: add a "project overview" section in the developer's manual
Description: The core software components (exchange, merchant, libeufin, various SPAs)
need to be described in an overview that relates the components.

CG suggests adding such an overview to the developer manual.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020116)
Christian Grothoff   
2023-04-18 18:56   
Fixed in 159339b..88fc9a2.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6949 [Taler] documentation text have not tried 2021-07-23 13:36 2023-04-18 18:38
Reporter: Christian Grothoff Platform: i7  
Assigned To: Christian Grothoff OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: inventory use-cases should be properly described in merchant backend manual
Description: The manual should properly describe the inventory management use-case (limited stocks), and how to use product locks (when customer is building shopping cart), as well as order locks (once shopping cart is "complete") and the auto-unlocking (see 0006937).
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0018096)
ttn   
2021-08-11 05:34   
See https://git.taler.net/docs.git/commit/?id=108101d5c13e2e1e1e12290c29a53969ce715511
(particularly, the FIXME).
(0018098)
Christian Grothoff   
2021-08-11 09:17   
FIXME: I would say that the product locks expire after a given time if they are not transferred into an order lock, and the order locks expire when the offer to the customer expires without payment. There is not really any 'event' other than time that would remove the locks.
(0018099)
ttn   
2021-08-11 11:52   
Some recent commits, ending w/ "simplify":
2789962 2021-08-11 simplify; swap out old FIXME for new FIXME
f357f26 2021-08-11 link to ‘Reverse proxy configuration’
eaab49e 2021-08-11 replace hyphen between ‘reverse’ and ‘proxy’ with space
552ceeb 2021-08-11 add a pair of identical FIXMEs: "What about 40[34] swizzling? (0006944)"
Direct link: https://git.taler.net/docs.git/log/

Anyway, the new FIXME should be the last one in this file.

On to "how to use locks" documentation....
(0020115)
Christian Grothoff   
2023-04-18 18:37   
Last fixme addressed in 92103b6..159339b.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7013 [Taler] documentation text have not tried 2021-09-04 20:25 2023-04-18 18:32
Reporter: ttn Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: explain and index all $-substitutable variables (e.g., DATADIR)
Description: The explanation should include origins (e.g., DATADIR comes from Autotools),
common usage, and placement.

https://mail.gnu.org/archive/html/taler/2021-09/msg00001.html
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0018388)
Christian Grothoff   
2021-09-04 22:36   
Well, everything that can be $-substituted must be in $PATHS. Some variables there are in the default-config, others are created at runtime by libgnunetutil based on its heuristics to guess where the various autotools prefixes ended up.
(0018391)
Florian Dold   
2021-09-11 12:38   
This is not just a documentation issue, but the taler-util TS package also needs to support those variables.
(0020114)
Christian Grothoff   
2023-04-18 18:32   
Documented in 52c8fbc..92103b6. Not sure if something still needs to be done about the TS package, hence assigning to Florian.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7455 [Taler] documentation text always 2022-11-14 12:56 2023-04-18 18:17
Reporter: Christian Grothoff Platform: i7  
Assigned To: Christian Grothoff OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: resolved Product Version: 0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: merchant backend tutorial is completely outdated on tipping
Description: Ancient endpoints, doesn't work at all as described right now. Needs a thorough (!) revision based on the current core API.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020113)
Christian Grothoff   
2023-04-18 18:17   
Fixed in ffb0b26..52c8fbc

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7516 [Taler] deployment and operations minor sometimes 2022-12-10 15:36 2023-04-18 16:41
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: TypeScript test harness fails at preparing the database.
Description: The following error happens when running the complete suite (command below), marking the test case as failed.
It MAY be needed to run the suite more than once.

Ideally, the harness should handle the problem, or at least mark the test as skipped.

$ taler-wallet-cli testing run-integrationtests
Tags:
Steps To Reproduce:
Additional Information: running test test-withdrawal-manual in worker process
running test test-withdrawal-manual
2022-12-10T14:17:19.331Z harness.ts INFO running test in directory [
  "/tmp/taler-integrationtests-Li7zK6/test-withdrawal-manual"
]
FATAL: test failed with exception Error: Command failed: createdb "taler-integrationtest"
createdb: error: database creation failed: ERROR: database "taler-integrationtest" already exists

    at ChildProcess.exithandler (node:child_process:398:12)
    at ChildProcess.emit (node:events:527:28)
    at maybeClose (node:internal/child_process:1092:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5) {
  code: 1,
  killed: false,
  signal: null,
  cmd: 'createdb "taler-integrationtest"',
  stdout: '',
  stderr: 'createdb: error: database creation failed: ERROR: database "taler-integrationtest" already exists\n'
}
2022-12-10T14:17:24.395Z harness.ts INFO shutting down
test test-withdrawal-manual finished in worker
Attached Files:
Notes
(0019623)
Florian Dold   
2023-01-10 13:10   
I've added some code to the harness to write the output of "dropdb" and "createdb" to log files.

Please try again and look at the logs: /tmp/taler-integrationtests-$ID/$TESTNAME/{dropdb,createdb}-stderr.log

This might be a permissions issue on your side.
(0020105)
MS   
2023-04-18 11:09   
(Last edited: 2023-04-18 11:12)
Yes, the log files reflect your last change.

And no, in contrast with this bug report, Florian points out that integration
tests should fail even when a part not belonging to Taler isn't reliable. That
however isn't already the case for the exchange codebase, that instead skips
integration tests when the DB, for example, isn't properly configured.
(0020106)
Christian Grothoff   
2023-04-18 15:06   
That's different. If the OS is not configured correctly (dependencies missing, database down), then I think 'skip' is correct. But if say there is a bug in libgnunetutil, then the test should fail.
(0020110)
MS   
2023-04-18 16:38   
The TypeScript harness was observed to fail with a database down, so if things stay this way, wallet-core.git and exchange.git handle this scenario inconsistently.
(0020111)
Christian Grothoff   
2023-04-18 16:41   
I think it should fail --- with a return code of 77 ;-).

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7333 [Taler] wallet-core feature have not tried 2022-09-07 21:46 2023-04-18 15:52
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: introduce minimalistic JS API for wallet that can be used by SPAs
Description: With an approach similar to MetaMask, we can provide a simple talerWallet.handleUri API into the browser that can be used by SPAs to handle URIs without a navigation.

Additionally, the wallet is currently over-eager to open taler:// URIs. We should remove this behavior once the SPA API is available. Otherwise, *every* taler://... link on any page would trigger the wallet.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020087)
sebasjm   
2023-04-13 18:19   
webex now injects a script that add the taler support API

this is an example of can be done programmatically

window.location = window.taler.api.convertURIToWebExtensionPath("taler://pay/asd")

it should not be needed, since after the script run every link with href.value that start with taler should be intercepted
also, the scripts observes DOM mutation for new links that appears after initial load (like in the spa)
(0020088)
sebasjm   
2023-04-13 18:23   
I have intentionally commented out this 2 lines

https://git.taler.net/wallet-core.git/tree/packages/taler-wallet-webextension/src/taler-wallet-interaction-support.ts#n50
https://git.taler.net/wallet-core.git/tree/packages/taler-wallet-webextension/src/taler-wallet-interaction-loader.ts#n55

that check the presences of the taler support meta tag, this allows testing without updating bank.demo.taler.net and the merchant payments pages.
This should be un-commented after merchant and bank is updated
(0020109)
sebasjm   
2023-04-18 15:52   
feedback was given, final issues addressed.
commit b34f3568e8c9dde73f11583a6b46ef1509990397

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7539 [Taler] wallet (WebExtension) minor always 2022-12-25 22:51 2023-04-18 15:50
Reporter: davidak Platform:  
Assigned To: sebasjm OS:  
Priority: low OS Version:  
Status: resolved Product Version: 0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Can't go back to bank when "Automatically open wallet based on page content" is enabled
Description: Demonstration: https://youtu.be/_MIJfEMa4Mg
Tags:
Steps To Reproduce: 1. Go to wallet settings and enable "Automatically open wallet based on page content"
2. Go to bank and withdraw money
3. Cancel withdraw, you get redirected to your walled
4. Go back to the bank

now you always get the withdraw screen and can never go to the bank. you can't cancel the withdraw
Additional Information: Workaround: disable "Automatically open wallet based on page content"

Wallet Core
0.9.0 673e7a417d043cd6b0644d2a7a52d1fdbc5345ee
Web Extension
0.9.0.35 673e7a417d043cd6b0644d2a7a52d1fdbc5345ee
Attached Files:
Notes
(0020018)
Florian Dold   
2023-04-04 19:32   
We should implement the taler:// URI handling from DD39. The "Automatically open wallet based on page content" should go away.
(0020107)
sebasjm   
2023-04-18 15:50   
fixed, now this feature is not present anymore.
wallet inject a script which will handle all the links to taler:// and will navigate to the wallet. back button should work as expected and should not trigger this issue
(0020108)
sebasjm   
2023-04-18 15:50   
b34f3568e8c9dde73f11583a6b46ef1509990397

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6381 [Taler] libeufin-nexus minor have not tried 2020-06-14 17:19 2023-04-17 13:18
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: implement and test transaction identification matching for INFO->PENDING->BOOKED transition
Description: Currently we don't support a transaction transitioning between these states.

In order to do this, a transaction should be marked with a foreign key column "supersededBy" that points to the newer "version" of the same transaction with a different status.

By default, the superseded transaction shouldn't be returned in the transactions list anymore. The superseded and current transaction must share some common transaction identifier.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020062)
MS   
2023-04-11 10:54   
If one transaction gets from PENDING to BOOKED (becoming therefore superseded),
then this bug suggests that such transaction shows up in the list only as long as is pending.

Then, once it gets superseded by the new booked status, it won't show anymore?

If yes, why would the booked status NOT be interesting?

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7334 [Taler] wallet (Android App) tweak N/A 2022-09-08 20:20 2023-04-17 11:59
Reporter: Christian Grothoff Platform: i7  
Assigned To: grote OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: UX Study: user fails to identify QR button
Description: In the UX study today, one of the users had trouble to identify the QR button as the place to initiate interactions with QR codes.

We should discuss how we can make it easier to discover the button's functionality for first-time users.

Note: We had similar issues with the QR-Code button and URI-entry discoverability in the WebExtension.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files: Screenshot_20230411_114728.png (161,880 bytes) 2023-04-11 16:49
https://bugs.gnunet.org/file_download.php?file_id=1368&type=bug
png
Notes
(0019106)
Christian Grothoff   
2022-09-08 20:38   
One user suggested labeling the button "Payment" (which of course is not quite correct, as it can do more). I think "scan QR code" would be good, but maybe better to show a big hint (scan Taler QR codes to pay, withdraw, ...) as long as the balance is empty and we don't have much to show anyway?
(0020022)
Florian Dold   
2023-04-05 10:54   
One way to address this might also be what Marc suggested: Do one of these short intro slide shows (not sure what these are called by UI/UX people) that highlights the QR code button somehow.
(0020069)
grote   
2023-04-11 16:49   
Possible solution on Android to make the button more prominent.
(0020070)
Christian Grothoff   
2023-04-11 16:57   
Idea: change the text to be on 2 lines and say:

Tap: scan QR code
Hold: enter URI

That'd make the 'hold' feature more discoverable as well. Just an idea.
(0020071)
Florian Dold   
2023-04-11 17:02   
I think that's way too verbose and big (Christian's suggestion). I like grote's new label!

To make entering URIs more discoverable, we might want to do it like a lot of banking apps do it with IBANs: Detect when they're in the copy+paste buffer when opening the app and then showing some toast (or whatever this UI element is called) offering to handle it.
(0020081)
Christian Grothoff   
2023-04-12 16:44   
I think with Grote's new label, we can consider this one resolved.
(0020090)
grote   
2023-04-13 20:11   
resolved in https://git.taler.net/taler-android.git/commit/?id=d9985f0db0c8c603a6814b332328b43b97d1d367

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7788 [Taler] auditor major always 2023-03-31 20:32 2023-04-17 11:58
Reporter: sebasjm Platform:  
Assigned To: MS OS:  
Priority: high OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: account access is not possible for non-circuit accounts
Description: In admin panel, all account are listed. If the account is not a circuit account the 404 is returned.
Then, the admin can't change password or access the view.

Maybe this account show not be listed? Do new a new endpoint that just returns circuit accounts?
Should admin access this account if registration is enabled?

I think that even if cashout is not possible we will want the admin to be able to reset the password or close then if the balance is empty so endpoint should work for both type of accounts

{
  "error" : {
    "type" : "util-error",
    "description" : "sebasjm not managed by the Circuit API."
  }
}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020002)
MS   
2023-04-01 19:54   
Agreed.

Non-circuit accounts should be listed and be subject to any admin operation
that doesn't involve cashing-out.
(0020036)
MS   
2023-04-07 17:15   
Addressed here: f2710520..101fa06f

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7782 [Taler] auditor crash sometimes 2023-03-29 20:05 2023-04-17 11:58
Reporter: sebasjm Platform:  
Assigned To: MS OS:  
Priority: high OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: nexus was dead, found "sorry, too many clients already" in the logs
Description:     at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:121)

    at org.jetbrains.exposed.sql.AbstractQuery.iterator(AbstractQuery.kt:65)

    at org.jetbrains.exposed.sql.IterableExKt$mapLazy$1.iterator(IterableEx.kt:129)

    at tech.libeufin.nexus.SchedulingKt$startOperationScheduler$2.invoke(Scheduling.kt:149)

    at tech.libeufin.nexus.SchedulingKt$startOperationScheduler$2.invoke(Scheduling.kt:108)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:173)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.access$inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:1)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:194)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:202)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:193)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:151)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:202)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:123)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:121)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:120)

    at tech.libeufin.nexus.SchedulingKt.startOperationScheduler(Scheduling.kt:108)

    at tech.libeufin.nexus.SchedulingKt$startOperationScheduler$1.invokeSuspend(Scheduling.kt)

    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)

    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)

    at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)

    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)

    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)

    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)

    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)

    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

Caused by: org.postgresql.util.PSQLException: FATAL: sorry, too many clients already

    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:693)

    at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:203)

    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:258)

    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)

    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:253)

    at org.postgresql.Driver.makeConnection(Driver.java:434)

    at org.postgresql.Driver.connect(Driver.java:291)

    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681)

    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229)

    at org.jetbrains.exposed.sql.Database$Companion$connect$10.invoke(Database.kt:160)

    at org.jetbrains.exposed.sql.Database$Companion$connect$10.invoke(Database.kt:160)

    at org.jetbrains.exposed.sql.Database$Companion$doConnect$3.invoke(Database.kt:112)

    at org.jetbrains.exposed.sql.Database$Companion$doConnect$3.invoke(Database.kt:111)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManager$ThreadLocalTransaction$connectionLazy$1.invoke(ThreadLocalTransactionManager.kt:58)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManager$ThreadLocalTransaction$connectionLazy$1.invoke(ThreadLocalTransactionManager.kt:57)

    at kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManager$ThreadLocalTransaction.getConnection(ThreadLocalTransactionManager.kt:64)

    at org.jetbrains.exposed.sql.Transaction.getConnection(Transaction.kt)

    at org.jetbrains.exposed.sql.statements.Statement.prepared(Statement.kt:24)

    at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:47)

    ... 26 common frames omitted

17:16:26.469 [eventLoopGroupProxy-4-1] DEBUG tech.libeufin.nexus - LISTENing on domain LIBEUFIN_TALER_INCOMING for IBAN: DE210658 with timeout: 60000. Resulting channel name: XVD3K5HSN1KXP9YQG8SH29BTJNEWF4QYFB48EEKKW4B5VE38ZYW00

17:16:26.470 [DefaultDispatcher-worker-11] ERROR tech.libeufin.nexus - org.jetbrains.exposed.exceptions.ExposedSQLException: org.postgresql.util.PSQLException: FATAL: sorry, too many clients already

SQL: [Failed on expanding args for SELECT: org.jetbrains.exposed.sql.Query@4284b0bc]

    at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:49)

    at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:135)

    at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:121)

    at org.jetbrains.exposed.sql.AbstractQuery.iterator(AbstractQuery.kt:65)

    at org.jetbrains.exposed.sql.IterableExKt$mapLazy$1.iterator(IterableEx.kt:129)

    at tech.libeufin.nexus.SchedulingKt$startOperationScheduler$2.invoke(Scheduling.kt:149)

    at tech.libeufin.nexus.SchedulingKt$startOperationScheduler$2.invoke(Scheduling.kt:108)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:173)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.access$inTopLevelTransaction$run(ThreadLocalTransactionManager.kt:1)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:194)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:202)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:193)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:151)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:202)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:123)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:121)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:120)

    at tech.libeufin.nexus.SchedulingKt.startOperationScheduler(Scheduling.kt:108)

    at tech.libeufin.nexus.SchedulingKt$startOperationScheduler$1.invokeSuspend(Scheduling.kt)

    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)

    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)

    at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)

    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)

    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)

    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)

    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)

    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

Caused by: org.postgresql.util.PSQLException: FATAL: sorry, too many clients already

    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:693)

    at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:203)

    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:258)

    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:54)

    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:253)

    at org.postgresql.Driver.makeConnection(Driver.java:434)

    at org.postgresql.Driver.connect(Driver.java:291)

    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681)

    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229)

    at org.jetbrains.exposed.sql.Database$Companion$connect$10.invoke(Database.kt:160)

    at org.jetbrains.exposed.sql.Database$Companion$connect$10.invoke(Database.kt:160)

    at org.jetbrains.exposed.sql.Database$Companion$doConnect$3.invoke(Database.kt:112)

    at org.jetbrains.exposed.sql.Database$Companion$doConnect$3.invoke(Database.kt:111)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManager$ThreadLocalTransaction$connectionLazy$1.invoke(ThreadLocalTransactionManager.kt:58)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManager$ThreadLocalTransaction$connectionLazy$1.invoke(ThreadLocalTransactionManager.kt:57)

    at kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81)

    at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManager$ThreadLocalTransaction.getConnection(ThreadLocalTransactionManager.kt:64)

    at org.jetbrains.exposed.sql.Transaction.getConnection(Transaction.kt)

    at org.jetbrains.exposed.sql.statements.Statement.prepared(Statement.kt:24)

    at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:47)

    ... 26 more
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020048)
sebasjm   
2023-04-10 15:16   
not seen anymore

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6260 [Taler] libeufin-nexus minor have not tried 2020-05-24 14:34 2023-04-17 11:57
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: nexus should store balance
Description: The nexus should parse the latest account balance and offer it via API.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019821)
MS   
2023-02-13 18:29   
Not required for regional currencies: users don't have accounts at Nexus and the exchange doesn't need it.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6269 [Taler] libeufin-sandbox minor have not tried 2020-05-29 08:48 2023-04-17 11:56
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: sandbox should emit c52/c53 more like real banks do
Description: Right now we generate a fresh c53 statement for every request.

Banks would return the same message on every request. They basically emit c5x messages regularly, and EBICS just allows you to download them.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0015980)
Florian Dold   
2020-05-29 09:25   
A major problem right now is that the MsgId of messages emitted by the sandbox is always zero. This doesn't mesh well with the assumptions made in the nexus (and that are presumably true for all real banks).
(0015981)
Florian Dold   
2020-05-29 09:26   
Setting this to higher prio, as Heng Yeow needs this for testing his UI stuff
(0015983)
MS   
2020-05-29 13:33   
bf5ae27..01c8396 is a quick fix that gives more entropy to the message id.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6715 [Taler] libeufin-sandbox minor have not tried 2021-01-22 16:32 2023-04-17 11:54
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: sandbox should not "activate" EBICS subscriber keys by default
Description: Instead, there should be a separate step where a request is made to the sandbox to activate the keys.

This allows us to test the behavior of Nexus *before* keys were activated by the bank (but after they were uploaded electronically).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6741 [Taler] libeufin-nexus minor have not tried 2021-02-05 14:13 2023-04-17 11:54
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: bank account operation affects the whole connection
Description: The "fetch-transactions" API offered by Nexus operates under one bank account imported name. However,
the actual Camt record is asked in the name of the *connection*. If one connection can host two bank accounts,
then asking for account A will involve *also* account B, leading to confusion.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6893 [Taler] libeufin-sandbox minor have not tried 2021-05-27 15:51 2023-04-17 11:53
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: Camt reports should respect time "chunking".
Description: At this present time, every report / statement accounts for the whole history of the bank account. Instead, those reported histories need to account only for a particular time window. Usually, from one point in the past, up to the current date.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6962 [Taler] libeufin-sandbox minor have not tried 2021-07-29 11:44 2023-04-17 11:53
Reporter: ms-mantis Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: CAMT reports need more structure to specify negative balances.
Description: CAMT numbers cannot be negative, therefore whenever a bank account enters the debit status, the CAMT generation must include more structure to reflect it.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7569 [Taler] libeufin-sandbox minor have not tried 2023-01-12 17:27 2023-04-17 11:52
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: EBICS error codes should be fetched from the enum defined in Util.
Description: Sandbox hard-codes EBICS error codes as strings in its responses, ignoring the enum
offered in the util package that already collects many EBICS codes.

The enum is called "EbicsReturnCode", in Ebics.kt at util package.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7696 [Taler] libeufin-nexus major have not tried 2023-02-15 16:09 2023-04-17 11:48
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: EBICS_NO_DOWNLOAD_DATA_AVAILABLE check is possibly wrong.
Description: Nexus checks this as a EBICS-technical return code, although the documentation lists it among the
business-technical return codes. That doesn't break demo because Sandbox does the same (just
server-side).

However, this may break when using Nexus with other banks. Hence such check needs more tests
with different banks.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7735 [Taler] libeufin-sandbox minor have not tried 2023-02-28 17:09 2023-04-17 11:48
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Avoid calculating balances based on the transactions history.
Description: The bank should instead calculate the new balance right after having processed one
transaction, and store it into the database.
Tags:
Steps To Reproduce:
Additional Information: The reason for this change is to reduce the computational cost of the balance calculation.
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7739 [Taler] libeufin-nexus minor have not tried 2023-03-04 16:48 2023-04-17 11:45
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Creating background tasks should be idempotent.
Description: Now it responds with 400, which is not even suitable for a name conflict.

The "POST ../schedule" call is responsible.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019951)
MS   
2023-03-10 14:56   
Agreed that background tasks should be just overridden by the owner, without any idempotent behavior.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7762 [Taler] libeufin-nexus minor have not tried 2023-03-10 08:48 2023-04-17 11:44
Reporter: javier.sepulveda Platform:  
Assigned To: javier.sepulveda OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: The libeufin-{nexus,sandcastle} Debian packages ask additional questions
Description: The libeufin-{nexus,sandcastle} Debian packages ask additional
questions (hostname, password) about the database that the
taler-merchant Debian package does NOT ask. Likely some 'default' option
is missing that causes these additional questions to be asked. Ideally,
we like _zero_ questions to be asked, but surely we should be able to
get the libeufin-packages to ask only the 1 interactive question that
the taler-merchant package asks.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020102)
Florian Dold   
2023-04-17 11:44   
The packaging should use suggestions from DD40 for the database configuration.

Furthermore, we should validate that libeufin now supports unix domain socket connections for the database.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7763 [Taler] deployment and operations feature have not tried 2023-03-10 08:50 2023-04-17 11:43
Reporter: javier.sepulveda Platform:  
Assigned To: javier.sepulveda OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Netzbon - Terms of Service
Description: We need to make it easy for the netzbon-deployment to setup the
terms of service. This will require
a) modifying the script to set certain options for the Taler exchange,
including the TERMS_DIR and the TERMS_ETAG (and same for the privacy
policy). But, moreover, we *generate* the ToS using some non-trivial
scripting (see exchange.git/contrib/update-*.sh). We should probably
find a nice way to ship such TOS-generation scripts with the
Taler-exchange (maybe convert all of it -- including the logic and
configurations from the Makefile in the contrib/tos/ directory) into
some big shell script?). The idea is that the user would supply us with
the RST files of the ToS in en/de/it/es/etc, and then the script
generates the HTML, TXT, PDF and markdown versions from the master RST
file(s) and puts them into the right directory locations.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6250 [Taler] libeufin-nexus minor have not tried 2020-05-21 09:05 2023-04-17 11:42
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: implement advanced permission storage and checking
Description: Right now, the nexus doesn't do any permissions at all beyond authenticating the user.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020065)
MS   
2023-04-11 11:03   
It does. This is one example from the Taler facade:
https://git.taler.net/libeufin.git/tree/nexus/src/main/kotlin/tech/libeufin/nexus/Taler.kt?id=1b9fbb02ac2d2eb402c18877079d1bdbae03a620#n180
(0020066)
MS   
2023-04-11 11:08   
Although a valid issue, that can be moved to another release because Nexus
will rarely be exposed online AND have more than one user at the first deployment
with Postfinance. On top of that, the note above shows that checks do take place.

It remains to check WHERE ELSE they may be needed and test them.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7766 [Taler] libeufin-nexus major have not tried 2023-03-14 10:52 2023-04-17 11:41
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Production deployments need "since-last" when downloading bank transactions.
Description: Tasks that download bank transactions need "since-last" as the "range-type" (see API doc below),
in order to avoid data loss in case one batch doesn't get stored in the database.

This problem exists, for example, with the "latest" range type. If "latest"-batch at time T doesn't
arrive to the database, then "latest"-batch at time T+1 will likely NOT include payments from T,
resulting in data loss.

https://docs.taler.net/libeufin/api-nexus.html#post-nexusBase-bank-accounts-acctid-schedule
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7785 [Taler] libeufin-nexus minor have not tried 2023-03-31 18:40 2023-04-17 11:40
Reporter: MS Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Error handling mixes up bank- and EBICS-technical errors.
Description: For example, if Nexus submits a payment with the wrong currency, then
an error object named EbicsProtocolError is thrown and it carries the error
code from the bank in its 'ebicsTechnicalCode' field.

The error in question is NOT EBICS-technical because the problem was in
the EBICS _payload_ and NOT in the EBICS communication itself.

The fix should provide this difference, and as well be the occasion to review
the code to spot other places where the same problem lies.
Tags:
Steps To Reproduce:
Additional Information: The test case 'unsupportedCurrency()' at EbicsTest.kt reproduces the wrong currency scenario.
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
5973 [Taler] libeufin-sandbox minor have not tried 2019-11-18 19:33 2023-04-17 11:40
Reporter: Marcello Stanisci Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: report more information about a user's state
Description: For example, if the user tries to send signed data *before* sharing their keys with the bank, then the Sandbox responds with "invalid signature". Instead, the Sandbox should point the user to the right way telling them that their keys weren't received yet.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0015296)
Marcello Stanisci   
2020-01-23 00:13   
260528a..5bc7981 throws more appropriate errors (EbicsSubscriberStateError) whenever a subscriber attempts some operation while being in a wrong state. Leaving open until testing this change.
(0015914)
Marcello Stanisci   
2020-05-15 19:08   
Still untested.
(0019747)
MS   
2023-02-03 16:06   
The code doesn't show anymore such checks. Issue still open
(0019817)
MS   
2023-02-13 18:17   
(Last edited: 2023-02-13 18:17)
not needed for regional currencies. As soon as a user is registered, their state is ready to operate.
(0020100)
Florian Dold   
2023-04-17 11:06   
Not sure why this is assigned to me. @MS could you please look into this bug and whether we can already resolve it?

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6243 [Taler] libeufin-sandbox minor have not tried 2020-05-20 19:05 2023-04-17 11:39
Reporter: Marcello Stanisci Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: sandbox filtering on EBICS date range is missing in C53 requests
Description: The sandbox is ignoring the date range from C53 requests. To be fixed.
Tags:
Steps To Reproduce:
Additional Information: The responsible function is called "constructCamtResponse()"
Attached Files:
Notes
(0018149)
ms-mantis   
2021-08-31 14:49   
That is implemented here: 3967193487e42335b43b80ee7407fa44ad39cf70.

Extensive testing is now needed, especially via Nexus' querying.
(0019514)
MS   
2022-12-13 16:39   
(Last edited: 2022-12-14 23:14)
Camt.052 needs date range too. Now throws NotImplementedError().

=> after private discussion, libeufin won't support date ranges on C52.

Keep open until C53 gets tested. Not urgent as not used by Taler.
(0019751)
MS   
2023-02-03 18:17   
(Last edited: 2023-02-03 18:18)
That depends on the Sandbox to "tick" business days. A tick operation moves all the pending transactions to the booked state, and only then they become available for C53.

Hence before fixing this, Sandbox should tick, otherwise it will have always no C53-content.

This feature would help in case of data loss from Nexus, as then only the bank could resort
the lost information.
(0019822)
MS   
2023-02-13 18:39   
Lowering the priority because Sandbox won't _serve_ EBICS in the context of regional currencies.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7781 [Taler] libeufin-sandbox feature have not tried 2023-03-29 14:51 2023-04-17 11:37
Reporter: sebasjm Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: sandbox demobank should have endpoint for transaction volume / statistics info
Description:
from chat:
> But at least for the bank we should be able to show both
> # bank transactions (per day/week/month/year) and
> # <CURRENCY> transacted in total (per day/week/month/year).
>
> It should be displayed in SPA as an HTML table with a CSV-export might do as well.

So there should be endpoint for the SPA (returns json) but also content-type = csv
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6046 [Taler] libeufin-sandbox major have not tried 2020-01-15 10:12 2023-04-17 11:19
Reporter: Marcello Stanisci Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: Must distinguish between booked and non booked transactions
Description: To implement C52 and C53 messages, the database should allow to qualify transactions as "booked" or "non-booked".
Tags:
Steps To Reproduce:
Additional Information: In particular, non-booked transactions must be excluded from CAMT.053 responses.
Attached Files:
Notes
(0015913)
Marcello Stanisci   
2020-05-15 19:07   
Still open.
(0019816)
MS   
2023-02-13 18:14   
Removing the 0.9.2 target as this issue suggests to emulate traditional banks. That doesn't fit into the current regional currency scenario.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6427 [Taler] libeufin-sandbox feature have not tried 2020-07-09 19:41 2023-04-17 11:04
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: low OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: EBICS errors need XML
Description: In some (all?) error cases related to EBICS, the sandbox responds with plain text.
Instead it should respond with the XML document that complies to the EBICS specifications.
Tags:
Steps To Reproduce:
Additional Information: Moving to 0.2 because it became a testing problem.
Attached Files:
Notes
(0016507)
MS   
2020-07-23 13:42   
(Last edited: 2020-07-23 13:44)
Mostly addressed here: c716d23073be8846d0765fa766de341dbc953a88

(0016508)
MS   
2020-07-23 13:48   
The EbicsError global catcher needs a private key to be included in the exception object,
and if that's not found, it responds with JSON (and status 500). (The private key is needed
to sign the response object.)

The current problem is that not in all the parts of the code such private key is included in
the exception object, resulting still in JSON+500 being returned.
(0016509)
MS   
2020-07-23 17:13   
After private discussion, the private key will be moved away from the exception object. But at the same time, the exception handler
must be moved in a place where it is easier to get more context (including the private key) from the current request.
(0016531)
MS   
2020-07-29 15:41   
Fixed, but this test now fails: integration-tests/test-ebics-double-payment-submission.py
(0017647)
MS   
2021-03-25 10:42   
The test mentioned in the last comment was long ago removed, and in general, corner cases will 'all' have to be implemented in the new TypeScript harness. IMO, this can be closed.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7805 [Anastasis] General minor have not tried 2023-04-14 11:54 2023-04-17 09:51
Reporter: javier.sepulveda Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version:  
Summary: Taler OPS - Domain name
Description: Domain permissions - OK
Point domain name to the the taler-systems server
Create NGINX virtualhost
Configure Let's Encrypt certificate
Create under constructions .html file
Leave everything ready to just upload final website
Tags: taler-operations-server
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020093)
javier.sepulveda   
2023-04-14 13:14   
Everything done except for requesting domain TLS certificate.
(0020098)
javier.sepulveda   
2023-04-17 09:51   
TLS certifcate for domain taler-ops.ch domain name - Done
Pending to create a specific user for this new website such as /home/talerops/talerops-public
Right now the "under construction website" is within the talersystems user home folder.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6696 [Taler] documentation text have not tried 2021-01-13 23:50 2023-04-13 21:59
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: discuss better structure for LibEuFin docs
Description: The LibEuFin docs are currently pretty chaotic. We should come up with a better structure.

I guess there are three different target audiences for the docs:
* Operators of LibEuFin (who want to use it with Taler)
* Developers who want to use the LibEuFin API
* Core Developers of LibEuFin ("internal stuff, documented in public")
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0017449)
ttn   
2021-01-29 19:42   
Well, the HOWTO (tutorial) is clearly targeted at the Operator audience. I don't know what the distinction is between the other two audience groups are, however.
(0017490)
ttn   
2021-02-02 21:34   
Applicable not just to Libeufin, but all Taler documentation:
https://documentation.divio.com/
(0018093)
ttn   
2021-08-11 04:55   
Please see recent commits in docs.git/libeufin/*.rst --
the "target audience" can be "operator", "developer", "core developer".
(Feel free to add/correct my guesses.)
(0018632)
ttn   
2022-01-12 02:25   
Just managed to "manually" build/install libeufin. When i tried to run libeufin-cli, i saw an error:

 ModuleNotFoundError: No module named 'click'

This makes sense since i don't have that module installed on my system (yet).
Anyway, we should probably document these runtime dependencies, and additionally
make sure the Debian packaging declares them so that they are installed automatically.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
5830 [Taler] merchant backend API (C) feature have not tried 2019-08-17 19:26 2023-04-13 21:58
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: none OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: implement request tunneling for wallets
Description: The /proxy API should be implemented to allow the wallet to tunnel requests to the exchange and merchant backend via a PoS terminal.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0014870)
Florian Dold   
2019-09-06 11:51   
Moving this to a later milestone.

Currently the Android PoS app does the tunneling. Doing the tunneling through the merchant backend would be much nicer, but is not really urgently needed.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7748 [Taler] merchant backoffice SPA feature always 2023-03-07 18:15 2023-04-13 21:53
Reporter: sebasjm Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: qr code for the template order
Description: that
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019925)
sebasjm   
2023-03-07 18:34   
i should be printable
also should be able to add the paramteres like subject and amount
https://datatracker.ietf.org/doc/html/draft-grothoff-taler-00#name-action-pay-template
(0019949)
sebasjm   
2023-03-10 12:48   
fixed 867d2ca76

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6120 [Taler] libeufin (general) minor have not tried 2020-03-09 16:44 2023-04-13 21:50
Reporter: Marcello Stanisci Platform:  
Assigned To: Marcello Stanisci OS:  
Priority: normal OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Incapsulate marshall/unmarshall exceptions inside UtilError
Description: Right now Nexus and Sandbox code must explicitly install a exception handler for marshall/unmarshall errors, making the code more verbose. Ideally, the util layer should hide such details and just raise a UtilError().
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0015900)
Marcello Stanisci   
2020-05-15 18:17   
Confirming that this is STILL open!

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6404 [Taler] libeufin-nexus minor have not tried 2020-06-22 12:03 2023-04-13 21:49
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: ISO20022 camt mapping is not documented, incomplete and incorrect in some places
Description: See summary.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020059)
MS   
2023-04-11 10:39   
Assuming the bug refers to this data type, suggesting to more verbosely document its fields:
https://git.taler.net/libeufin.git/tree/nexus/src/main/kotlin/tech/libeufin/nexus/iso20022/Iso20022.kt?id=101fa06fd5fa863a90eb4cbc0b4fcd2e28fda583#n274

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7732 [Taler] libeufin-sandbox minor have not tried 2023-02-26 18:55 2023-04-13 21:49
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: high OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: circuit API uses floating point numbers
Description: We never ever want floating point numbers in financial calculations!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019906)
Florian Dold   
2023-02-26 19:15   
Furthermore, we made the decision to avoid floats in all JSON that we produce, because it makes normalization for signing very hard.

Doesn't matter it we don't sign this particular message; it's a principle we apply to all our protocols.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6383 [Taler] libeufin-nexus minor have not tried 2020-06-15 08:54 2023-04-13 21:49
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: support notifications / "long polling" for certain operations
Description: For the UI, we might want to support web socket notifications.

For the TWG, we need to support long polling.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019959)
MS   
2023-03-13 11:03   
TWG part addressed, see 0007693.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6387 [Taler] libeufin-nexus tweak have not tried 2020-06-16 12:05 2023-04-13 21:48
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: more integration tests for key management needed
Description: Right now we mostly cover the "happy path" in key management, but we should also cover error cases.

For example, real banks don't set the subscriber to "ready" after INI and HIA. We thus need a test to make sure that Nexus handles this situation correctly: A sent INI/HIA where the subscriber keys aren't activated on the bank side yet.

Some of these might require support from the sandbox.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6400 [Taler] libeufin-nexus minor have not tried 2020-06-21 14:18 2023-04-13 21:48
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: consider doing faster re-tries for some scheduled operations
Description: When the daily bank statement download fails, should LibEuFin retry before the next scheduled execution?

For most tasks, a faster re-try doesn't make sense though.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6704 [Taler] libeufin-nexus minor have not tried 2021-01-17 00:09 2023-04-13 21:48
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: TWG facade gives unhelpful error message when payto URI is incorrect
Description: ... we should return a better error message in the Taler error format.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7462 [Taler] libeufin (general) minor have not tried 2022-11-16 10:31 2023-04-13 21:47
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Unix domain sockets fails.
Description: The following error might be due to wrong file permissions on the open Unix domain socket.

11:42:34.310 [main] DEBUG tech.libeufin.util - Listening on /home/demo/sockets/bank.http ..
16:08:56.861 [epollEventLoopGroup-3-1] INFO ktor.test - Autoreload is disabled because the development mode is off.
16:08:56.868 [epollEventLoopGroup-3-1] INFO ktor.test - Application started in 0.057 seconds.
16:08:57.142 [DefaultDispatcher-worker-1] DEBUG tech.libeufin.sandbox - 404 Not Found, GET /bad-request - thread (id/name/group): 23/DefaultDispatcher-worker-1/main
16:08:57.149 [epollEventLoopGroup-3-1] DEBUG tech.libeufin.sandbox - Application stopping: io.ktor.application.Application@3b430b91
16:08:57.149 [epollEventLoopGroup-3-1] DEBUG tech.libeufin.sandbox - Application stopped: io.ktor.application.Application@3b430b91
16:08:57.158 [epollEventLoopGroup-3-1] WARN i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.lang.NullPointerException: null
    at io.netty.buffer.Unpooled.wrappedBuffer(Unpooled.java:156)
    at LibeufinHttpHandler$channelRead0$1.invoke(UnixDomainSocket.kt:108)
    at LibeufinHttpHandler$channelRead0$1.invoke(UnixDomainSocket.kt:72)
    at io.ktor.server.testing.TestEngineKt$withTestApplication$1.invoke(TestEngine.kt:68)
    at io.ktor.server.testing.TestEngineKt$withTestApplication$1.invoke(TestEngine.kt:66)
    at io.ktor.server.testing.TestEngineKt.withApplication(TestEngine.kt:49)
    at io.ktor.server.testing.TestEngineKt.withApplication$default(TestEngine.kt:41)
    at io.ktor.server.testing.TestEngineKt.withTestApplication(TestEngine.kt:66)
    at LibeufinHttpHandler.channelRead0(UnixDomainSocket.kt:72)
    at LibeufinHttpHandler.channelRead0(UnixDomainSocket.kt:67)
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
    at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:280)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795)
    at io.netty.channel.epoll.EpollDomainSocketChannel$EpollDomainUnsafe.epollInReady(EpollDomainSocketChannel.java:138)
    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480)
    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:829)

Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7515 [Taler] libeufin (general) minor have not tried 2022-12-09 20:21 2023-04-13 21:47
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Configuration should not impact the database.
Description: In the current version, every change in the configuration causes a database
migration, because every value gets a column. That is not sustainable. An alternative
would be to host all the configuration values into one global object that gets serialized
into the database.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019957)
MS   
2023-03-13 10:42   
Addressed in this tag: v0.9.2-dev.0

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6402 [Taler] libeufin-nexus major have not tried 2020-06-22 07:01 2023-04-13 21:47
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: handle disrupted EBICS transactions
Description: We should either explicitly cancel such a transaction or re-try if the EBICS host supports this feature.

Currently we might run into waiting for a timeout (for re-doing the same order type) until the bank cancels the active transaction.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6368 [Taler] libeufin-nexus tweak have not tried 2020-06-08 21:17 2023-04-13 21:47
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: test message chunking
Description: Right now we mostly have EBICS transactions with one segment. We also need test cases for bigger EBICS order payloads.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6376 [Taler] libeufin-nexus tweak have not tried 2020-06-11 09:39 2023-04-13 21:47
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: test against all samples given by the German standard supplement
Description: https://www.ebics.de/de/datenformate/ergaenzende-dokumente

We should test against the camt5x documents in particular.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0017381)
Florian Dold   
2021-01-21 02:15   
We mainly should make sure that the parser doesn't crash, and that we have the JSON that we generated as a reference file in a test case.
(0017391)
MS   
2021-01-22 17:07   
This gets delayed, as now the parser targets only one particular Camt style.
(0017392)
MS   
2021-01-25 15:56   
From commit: 5b536593b9d84a9bb5ea2908aa2ab259d9199308, libeufin-tests.git contains samples from ebics.de and the UBS testing platform.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6380 [Taler] libeufin-nexus minor have not tried 2020-06-14 15:53 2023-04-13 21:46
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: high OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: more extensive integration test cases for TWG are required
Description: We currently test very little. What we need to add is:

* transactions that are returned due to missing reserve pub
* transactions that don't even have a debtor account (needs sandbox support)
* transactions that
* ... and probably many more!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0017219)
MS   
2020-12-20 13:58   
The mapping between (a) and (b) needs to be tested.

(a) transaction indexes that are known natively (= no facade involved) by the nexus.
(b) the transaction indexes as viewed by the Taler facade.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6698 [Taler] libeufin (general) minor have not tried 2021-01-14 00:27 2023-04-13 21:46
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: general code cleanup required
Description: There are currently quite a number of compile-time warnings as well as linter issues pointed out by IntelliJ.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6973 [Taler] libeufin (general) minor have not tried 2021-08-03 14:54 2023-04-13 21:46
Reporter: Florian Dold Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: CLI integration test should test nexus permissions
Description: ... both positive (=yes, allowed user can access this) and negative (=no, without permissions the user can't access)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
5953 [Taler] libeufin (general) minor have not tried 2019-10-29 10:08 2023-04-13 21:46
Reporter: Florian Dold Platform:  
Assigned To: Marcello Stanisci OS:  
Priority: low OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: generate code documentation with Dokka
Description: See https://kotlinlang.org/docs/reference/kotlin-doc.html
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6364 [Taler] libeufin (general) text have not tried 2020-06-04 16:37 2023-04-13 21:46
Reporter: MS Platform:  
Assigned To: OS:  
Priority: none OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: Comments style.
Description: From a private conversation:

I've seen that some comments in LibEuFin use the

/**
 * foo
 * bar
 */

style. While this is not really a big issue, I just wanted to mention
that comments beginning with "/**" usually indicate doc comments. That
is, comments that are relevant to the documentation generator (doxygen,
dokka, ...).

As such, it's better style to use "//" comments or "/*" comments (single
start) for comments that just explain what's going on inside the code,
as opposed to comments that represent the documentation for some
"documentable" element, such as functions, class members, etc.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6399 [Taler] libeufin-nexus minor have not tried 2020-06-19 14:19 2023-04-13 21:45
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: review and document date/time/timezone handling
Description: Especially for EBICS order params.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6602 [Taler] libeufin-nexus minor have not tried 2020-09-11 17:47 2023-04-13 21:44
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Check that API docs match the code.
Description: There is also a minimal library that checks if the fields are present in the JSON objects, although it doesn't validate the values.

Here's an example of how to use that library:
https://git.taler.net/libeufin.git/tree/integration-tests/json_checks.py?id=f3a2bf68bef89428d7a3885531b1780d51f6a81b
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0017113)
MS   
2020-11-10 11:39   
All the API calls used in the tests *except* the Taler facade have been double checked using the "check library" mentioned above.
Next step: test the Taler facade using the same check-library, and extend test cases to use EVERY API call that is written in the documentation.
(0019746)
MS   
2023-02-03 15:13   
Sandbox got reviewed along the Circuit API implementation. Nexus needs a pass.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7662 [Taler] libeufin-sandbox minor always 2023-02-07 15:34 2023-04-13 21:44
Reporter: sebasjm Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: error does not provide the field where the validation is made
Description: Some validation show the field where the error is, but for the username looks like not. It will be nice to have the some kind of error that help fixing the problem.

Also, I couldn't find documentation of this validations.

curl 'https://sandbox-libeufin.taler.ar/demobanks/default/circuit-api/accounts' -d '{"username":"1","password":"1","name":"the name","contact_data": {},"cashout_address":"payto://iban/DE123123"}' -v

  "error" : {
    "type" : "util-error",
    "description" : "Invalid resource name. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit."
  }
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7686 [Taler] libeufin-nexus minor have not tried 2023-02-13 18:48 2023-04-13 21:44
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Allow date range when asking transactions.
Description: That helps in case of data loss.

A typical example is:

1. data gets lost due to a parser issue
2. use this feature to download again the problematic transaction
3. fix the parser after inspecting the problematic transaction
4. download again the problematic transaction with the fixed parser
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019823)
MS   
2023-02-13 18:53   
Nexus needs to be adapted to use such date range.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6073 [Taler] libeufin-nexus major have not tried 2020-02-04 14:38 2023-04-13 21:43
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: serialize some transaction state to the database
Description: ... so that we don't run into timeouts when we didn't properly acknowledge a previous transaction.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0015908)
Marcello Stanisci   
2020-05-15 18:44   
Still pending. It seems that nexus performs all the steps in two big functions,
without storing any state during the operations:

- doEbicsDownloadTransaction()
- doEbicsUploadTransaction()
(0015953)
Florian Dold   
2020-05-24 13:52   
We likely require a new API for this. I wouldn't prioritize this right now though.

Just as a reminder, the main purpose of this is to be more robust against failures, because when we don't acknowledge an EBICS upload/download transaction on our side, we might have to wait for a timeout until the bank lets us do the same order type again.
(0017908)
MS   
2021-05-27 10:23   
Priority changed after this last note.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6972 [Taler] libeufin-nexus minor have not tried 2021-08-03 14:53 2023-04-13 21:42
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: review /facades and /facades/${id} implementation
Description: We currently have a lot of code duplication there, and the code is not generic for the facade, but only works with the TWG facade.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6987 [Taler] other feature have not tried 2021-08-07 20:16 2023-04-13 21:42
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: wirewatch should use long polling
Description: While not supported yet by libeufin, it might be a good idea for taler-exchange-wirewatch to do long-polling.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0018110)
Christian Grothoff   
2021-08-12 13:18   
10d8342f..f174781b adds support for longpoll_ms to libtalerbank. fakebank still needs long polling support. Not sure about libeufin...
(0018112)
Christian Grothoff   
2021-08-17 10:05   
Fakebank now has long-polling support.
(0018115)
Christian Grothoff   
2021-08-18 10:22   
Exchange logic should be complete, now it's up to LibEuFin to finish this.
(0019958)
MS   
2023-03-13 11:01   
Implemented at this libeufin.git tag: long-polling-twg.

Sandcastle-Libeufin needs to switch to Postgres, to help testing.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7168 [Taler] libeufin (general) feature have not tried 2022-02-02 07:38 2023-04-13 21:41
Reporter: ms-mantis Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: remove non-Access-API command from libeufin-cli
Description: That should happen after having removed their use from wallet tests.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7414 [Taler] libeufin-sandbox major N/A 2022-10-23 15:20 2023-04-13 21:41
Reporter: Christian Grothoff Platform: i7  
Assigned To: MS OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: assigned Product Version: 0.9.2  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: [security] Demonstration SPA stores password in plaintext in localstorage
Description: Nora reports:

The SPA currently stores the login details on the client in LocalStorage as backend-state.username & backend-state.password in plaintext.

We should instead serve authentication tokens which would be stored in place of a password, at a bare minimum.

Something like a simple randomized string that would get invalidated after some time should be sufficient, however something similar to RFC7519 should also work. Either way, we should not store the password (in an unhashed form) anywhere, neither on the client, nor the server.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7458 [Taler] demobank feature always 2022-11-15 15:55 2023-04-13 21:40
Reporter: sebasjm Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: allow configuration of another BIC number other than SANDBOXX
Description: should this be done on account creation?
(CustomerRegistration needs a "val bic: String?" that can be used on /register)

it will be better to set a default value on sandbox config.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7507 [Taler] libeufin-nexus minor have not tried 2022-12-01 16:58 2023-04-13 21:39
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: EBICS management spans two API routes.
Description: Sandbox serves EBICS calls at both "/admin/ebics/*" and "/demobanks/default/ebics/subscribers".

Should all the endpoints be moved into only one route?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6122 [Taler] libeufin-nexus minor have not tried 2020-03-10 15:13 2023-04-13 21:39
Reporter: Marcello Stanisci Platform:  
Assigned To: Marcello Stanisci OS:  
Priority: normal OS Version:  
Status: feedback Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: EBICS error responses should be correctly parsed.
Description: The current Nexus responds with a "invalid XML" message whenever the bank gives it a EBICS error response. Such message is wrong, and should be adapted to reflect what happens.

The real responsible is the util module, where the actual parsing happens, therefore this one should be adapted to tolerate EBICS error responses. One example is the function: "parseAndDecryptEbicsKeyManagementResponse()"
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0015911)
Marcello Stanisci   
2020-05-15 19:05   
It doesn't look like that applies anymore, but I would defer solving this to when
we will be testing faulty requests along the integration tests.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6248 [Taler] libeufin-nexus tweak have not tried 2020-05-21 09:01 2023-04-13 21:39
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: test error handling during subscriber initialization
Description: Right now we assume everything goes okay.

We should have a *separate* test case where we mess with the sandbox during the subscriber initialization. For example, we can "undo" the INI on the sandbox and see if the nexus correctly reports what's going on.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6253 [Taler] libeufin-nexus text have not tried 2020-05-21 09:16 2023-04-13 21:38
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: adjust and document JSON formats for account information
Description: This includes:
 * information about the account itself (should include payto URI!)
 * information about a prepared payment
 * information about a transaction

These formats are currently barely documented.

We also should try to make the terms match more commonly accepted terminology, like creditorAccount and debitorAccount instead of "counterpart".
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6721 [Taler] libeufin-nexus minor have not tried 2021-01-25 15:14 2023-04-13 21:38
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 1.0  
Summary: consider a way to synchronize the row_id with the TWG
Description: We should be able to recover as cleanly as possible in case the LibEuFin state somehow gets purged.

The TWG might notify the exchange to reset to a lower row_id when the transactions request is "unreasonable".
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0017393)
Christian Grothoff   
2021-01-25 23:23   
I don't think the exchange can possibly reset -- it must not have duplicate row IDs. More importantly, it is necessary that the auditor sees/computes the same row IDs!

So what instead can/should be done, is that a resuming libeufin can be told to _begin_ its row IDs at a non-zero offset. That offset could then be extracted from the exchangedb.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7734 [Taler] libeufin-sandbox minor have not tried 2023-02-28 17:06 2023-04-13 21:37
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Track used IBANs.
Description: In order to avoid that one IBAN gets reassigned after a user removal, the bank has to keep track of all the IBANs
that were assigned to any bank account.
Tags:
Steps To Reproduce:
Additional Information: At a later stage, the bank may employ a policy to recycle those used IBANs.
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6547 [Taler] libeufin-nexus minor have not tried 2020-08-31 12:56 2023-04-13 21:36
Reporter: MS Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Offer raw EBICS upload for any message.
Description: Nexus needs to offer a API call to upload for any type of EBICS message. This is already documented,
therefore needs the implementation. The download does have a implementation already.

The endpoint will look like the following:
  
  {nexus_base_url}/bank-connections/{connection_name}/ebics/upload/{msg}
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020061)
MS   
2023-04-11 10:43   
Not _strictly_ relevant for the Postfinance integration as what gets uploaded to the bank
needs a defined type (as opposed to raw content to be sent "on the fly"). Still, this may result
convenient, so keeping for now but with low priority.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6085 [Taler] libeufin-nexus minor have not tried 2020-02-10 12:52 2023-04-13 21:36
Reporter: Florian Dold Platform:  
Assigned To: Marcello Stanisci OS:  
Priority: normal OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: abstract out ebics version
Description: The util library probably should not "leak" the version of the EBICS protocol we're using to the nexus and the sandbox. We should abstract out the details of EBICS 2.5 and EBICS 3 into data structures describing their content in a version-independent way that does not expose the underlying XML too much.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0015337)
Marcello Stanisci   
2020-02-10 19:02   
Could you point to the function / class that causes this?
(0015338)
Florian Dold   
2020-02-10 19:03   
Let's discuss this tomorrow in person, after I've committed my rather large change.
(0015906)
Marcello Stanisci   
2020-05-15 18:37   
Still pending.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6080 [Taler] libeufin-nexus minor have not tried 2020-02-06 15:28 2023-04-13 21:35
Reporter: Florian Dold Platform:  
Assigned To: Marcello Stanisci OS:  
Priority: normal OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: understand format of pain.002
Description: The pain.002 is the bank's way of telling us the result (error/success) of submitting a pain.002 message, and we should understand the content of it.

One possible way to do this is by playing around with the GLS client (making a payment, then requesting the payment status).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0015905)
Marcello Stanisci   
2020-05-15 18:36   
This got slowed down because GLS does not respond to the EBICS CRZ message type.
The issue was reported already to the GLS responsible department.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
5962 [Taler] libeufin-nexus minor have not tried 2019-11-08 19:46 2023-04-13 21:34
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: find out details about EBICS case sensitivity
Description: Apparently some EBICS clients treat data in a case-insensitive way and upper case even when they got data (e.g. transaction IDs) in lower case.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
5972 [Taler] libeufin-nexus minor have not tried 2019-11-18 19:28 2023-04-13 21:31
Reporter: Marcello Stanisci Platform:  
Assigned To: Marcello Stanisci OS:  
Priority: normal OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Avoid sending signed data before key exchange
Description: The Nexus should check if their keys were accepted by the bank (via INI / HIA) before performing any operation using those.

This is useful because some banks may simply respond "signature invalid" without telling what the real cause is.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0015917)
Marcello Stanisci   
2020-05-15 19:19   
This happens here (1) for example, where the 'makeEbicsHpbRequest()' function just
makes the message without checking the state of the key used to sign the message.

But possibly, this is not a real problem. If errors are nicely reported, then the user
will be correctly warned about the impossibility of the attempted operation.

[1] https://git.taler.net/libeufin.git/tree/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt?id=4f0af79c3cde2b71f8a3607d5310aaf375d011eb#n87
(0020067)
MS   
2023-04-11 11:14   
(Last edited: 2023-04-11 11:22)
This can be closed after testing how Postfinance reacts to such scenario,
but using keys that were never shared with the bank should be avoided.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6382 [Taler] libeufin-nexus minor have not tried 2020-06-15 08:47 2023-04-13 21:31
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: support transaction fetching since last successful bank-side creation date/time
Description: Thus we can request transaction history without any gaps.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0016330)
Florian Dold   
2020-06-21 16:06   
A rudimentary version of this is implemented, however the EBICS-related timezone mess still needs to be sorted out.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7786 [Taler] libeufin-nexus minor have not tried 2023-03-31 18:43 2023-04-13 21:31
Reporter: MS Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Taler facade throws EBICS errors.
Description: The Taler facade faces only clients that are unaware of EBICS. For this reason it should throw the more
generic NexusError objects.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7797 [Taler] libeufin-sandbox minor have not tried 2023-04-10 14:24 2023-04-13 21:30
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: high OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Integration API has the wrong error format.
Description: Error handling happens, but responds with the wrong format. Starting with the Integration API part,
and Ideally ending with all LibEuFin, the following format should be used:
this format: https://docs.taler.net/core/api-common.html#tsref-type-ErrorDetail

The original bug report follows:

> $ curl "
> https://bank.demo.taler.net/demobanks/default/integration-api/withdrawal-operation/b1155bcf-4550-497f-be0e-ff6948b03194"
> -d '{"reserve_pub":"123123"}'
> {
> "error" : {
> "type" : "sandbox-error",
> "description" : "Selecting a different reserve from the one already
> selected"
> }
> }
>
> The response doesn't contain error code, it follows another format.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
5955 [Taler] libeufin-sandbox minor have not tried 2019-10-31 19:48 2023-04-13 20:58
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: use EBICS return codes from EBICS spec, make sure correct codes are returned
Description: The specification has three things:
1. code
2. short name
3. explanatory text

and all these are required.

Furthermore, unless there is actually a bank-technical response code, ebicsHEVResponse should be used.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7556 [Taler] libeufin (general) minor have not tried 2023-01-07 10:35 2023-04-13 20:57
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Fix "make parse".
Description: The two failing tests (test_dashed_subject, test_camt53_example3) show both a message like the following:

self = <json.decoder.JSONDecoder object at 0x7fd9059361d0>
s = '10:04:43,134 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]\n10... "unstructuredRemittanceInformation" : "subject-with-dashes"\n }\n } ]\n } ]\n } ]\n } ]\n}\n'
_w = <built-in method match of re.Pattern object at 0x7fd905a892f0>
Tags:
Steps To Reproduce: Run "make parse".
Additional Information: =============================== short test summary info ================================
FAILED checks.py::test_dashed_subject - json.decoder.JSONDecodeError: Extra data: line 1 column 3 (char 2)
FAILED checks.py::test_camt53_example3 - json.decoder.JSONDecodeError: Extra data: line 1 column 3 (char 2)

Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7800 [Taler] demobank-ui feature have not tried 2023-04-12 13:26 2023-04-13 20:57
Reporter: Florian Dold Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Show payto:// URI in account info page
Description: It's currently not easy to get the payto:// URI for an account in the demobank. We should show it somewhere.

If that's too much clutter on the profile page, we could make the account name (i.e. in "Welcome,y (DE775470)!") clickable and to to a dedicated page with the verbose account info.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
5947 [Taler] libeufin-sandbox minor have not tried 2019-10-24 20:13 2023-04-13 20:56
Reporter: Marcello Stanisci Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: spec and implement proper generation of EBICS Host "OrderID"
Description: The element "ebicsKeyManagementResponse/header/mutable/orderID" is currently set to a mock value, but it must contain a meaningful identificator.
Tags:
Steps To Reproduce:
Additional Information: The responsible object is generated in KeyManagementResponse.kt.
Attached Files:
Notes
(0015024)
Florian Dold   
2019-10-25 11:02   
See "Order Number" in the glossary (https://docs.taler.net/libeufin/ebics.html#ebics-glossary) for more info about the order ID.

The number must be unique per subscriber and order type. I'd suggest keeping a counter per subscriber and incrementing that in the same (SQL) transaction where the (EBICS) transaction is created.
(0015025)
Florian Dold   
2019-10-25 14:58   
Also, there needs to be some additional logic to "recycle" order IDs, since the space of order IDs is very small.

An order ID can be reused if the corresponding order is completely processed (e.g., there are no pending VEUs).
(0019818)
MS   
2023-02-13 18:19   
not fitting into the regional currencies setup, since Sandbox will not _serve_ EBICS. Removing the 0.9.2 target.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
5936 [Taler] libeufin-sandbox minor have not tried 2019-10-18 19:16 2023-04-13 20:55
Reporter: Marcello Stanisci Platform:  
Assigned To: MS OS:  
Priority: low OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: version / revision / other globals / should be available from context
Description: Since EBICS responses want (at least) the EBICS version and revision, the sandbox should have some global object/context that is always updated with the revision and version under which it is serving requests
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0015019)
Marcello Stanisci   
2019-10-18 19:17   
Clearly, after this is done, the parts where such values are hardcoded must be adapted to use the global context.
(0015923)
Marcello Stanisci   
2020-05-15 19:43   
Still open, but not urgent.
(0019820)
MS   
2023-02-13 18:25   
takes even less priority, because Sandbox won't _serve_ EBICS in the context of regional currencies.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7693 [Taler] libeufin-nexus minor have not tried 2023-02-14 13:21 2023-04-13 20:55
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Serve transactions via long polling.
Description: The Nexus native JSON API should support long polling. This way, the currency
conversion service gets timely data without requesting every second. At the same
time, Nexus should always support the EBICS message that gets the most updated
transactions from the bank.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7789 [Taler] libeufin-sandbox major always 2023-03-31 20:33 2023-04-13 20:52
Reporter: sebasjm Platform:  
Assigned To: MS OS:  
Priority: low OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: Can delete account when balance is 0
Description: This error is thrown

org.postgresql.util.PSQLException: ERROR: update or delete on table "ebicssubscribers" violates foreign key constraint "fk_ebicsuploadtransactions_subscriber_id" on table "ebicsuploadtransactions" Detail: Key (id)=(10) is still referenced from table "ebicsuploadtransactions".


The account was a non-circuit account
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020035)
MS   
2023-04-07 14:50   
Lowering the priority because no regional setup will have EBICS accounts
in Sandbox and demo setups with EBICS have no reason to delete the only
EBICS account: exchange's.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6713 [Taler] libeufin-nexus minor have not tried 2021-01-21 16:53 2023-04-13 20:50
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 1.0  
Summary: implement exporting a TWG facade for easier upgrades of LibEuFin
Description: Due to the way that the Taler Wire Gataway works, we can't just "start from zero". An easy way to avoid costly migration code would be to offer an export feature for the facade.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6992 [Taler] libeufin-nexus feature N/A 2021-08-15 11:55 2023-04-13 20:43
Reporter: Christian Grothoff Platform: i7  
Assigned To: MS OS: Debian GNU/Linux  
Priority: high OS Version: squeeze  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: need new "generic-credit" facade
Description: For Anastasis, we need a new Facade of LibEuFin where we can _only_ poll for incoming credits into the account.
In contrast to the existing taler-exchange facade, the wire transfer subjects can be arbitrary strings and not only reserve public keys.

Please implement the respective facade and specify a REST API for it (based on the existing exchange facade API). The main difference should be that it returns an unrestricted "const char */String" for the wire subject.

Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0018138)
Christian Grothoff   
2021-08-27 23:15   
I think this is fixed, at least I'm happy with what I got ;-). Marcello: unless the facade is completely fake and only works with sandbox, you should probably 'resolve' this one :-)
(0020092)
Christian Grothoff   
2023-04-13 20:43   
We may want to rename it from anastasis to 'generic-credit' or something like that?

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7309 [Taler] demobank-ui tweak always 2022-08-25 16:52 2023-04-13 20:41
Reporter: Christian Grothoff Platform: i7  
Assigned To: MS OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: improve language switcher integration
Description: Right now, the SPA is launched via /demobanks/default and then always starts with English.
We should support passing "/demobanks/default?language=$LANG" ($LANG=en/de/it/...) and then automatically switch the SPA into the respective language on load, instead of relying on the user (again) setting the language via the language switcher.

The demo.site of nginx is currently configured to replace https://bank/$LANG/ with https://bank/demobanks/defaults, and should be updated to not throw away $LANG but instead pass it via language=$LANG.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7344 [Taler] demobank-ui text have not tried 2022-09-08 20:40 2023-04-13 20:33
Reporter: Christian Grothoff Platform: i7  
Assigned To: OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: withdraw target unclear
Description: One user was confused where the money would go when withdrawing money from the bank. The idea that it would go into the Wallet/Webextension in the browser (or on a Mobile phone) was completely alien. He would have liked to FIRST specify the destination before selecting an amount.

Idea: maybe do it more parallel to what we do in the wallet, where we can now specify "send money" and then pick "to wallet" or "to bank account" -- and then ask for the amount?
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7345 [Taler] demobank-ui feature N/A 2022-09-08 20:42 2023-04-13 20:32
Reporter: Christian Grothoff Platform: i7  
Assigned To: OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: User confused by captcha
Description: User was confused why a captcha was needed, did not see link to PIN/TAN. I guess we should probably really collect a phone number on account creation and send an actual SMS even in the demo...
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7509 [Taler] documentation text have not tried 2022-12-01 19:01 2023-04-13 20:31
Reporter: MS Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: libeufin-sandbox API doc lacks response status codes.
Description: Make sure that every endpoint has their HTTP response status and/or make a disclaimer where obvious statuses are omitted.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7685 [Taler] General minor have not tried 2023-02-13 18:42 2023-04-13 20:26
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Allow date range when serving transactions over JSON
Description: That helps against data loss, whenever Nexus fails at parsing one batch of transactions.
This feature is desired before launching regional currencies, because Nexus will speak JSON
to Sandbox.
Tags:
Steps To Reproduce:
Additional Information: This feature will affect the Access API.
Attached Files:
Notes
(0020058)
MS   
2023-04-11 10:36   
Solved. See the "from_ms" and "until_ms" URI parameters:
https://docs.taler.net/core/api-bank-access.html#get-$BANK_API_BASE_URL-accounts-$account_name-transactions

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7667 [Taler] General block always 2023-02-08 21:47 2023-04-13 20:26
Reporter: sebasjm Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Git master  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Unable to render counter part of the cashout (destination of the cashout)
Description: the response of the cashout details endpoint [1] has

  // Circuit bank account that created the cash-out.
  account: string;


if the caller is the owner of the account it is going to be always the same account, this field should contain the destination payto? AKA the counterpart

if the caller is the admin, it should contain both payto: origin and destination.

[1] https://docs.taler.net/libeufin/api-sandbox.html#get--cashouts-$cashoutId
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019789)
MS   
2023-02-09 12:57   
(Last edited: 2023-02-09 12:58)
the 'origin' is the "account: string" field reported in this bug's description, and the destination can be learned from GET ../circuit-api/accounts/$accountName. This call shows the cash-out address of $account that is *always* the payment destination.
(0019824)
sebasjm   
2023-02-13 19:40   
Sandbox should show historical information about where the money went.
If the account destination is taken from the account details endpoint then the information about where the cash went is lost after the user updates his/her account.
(0019834)
MS   
2023-02-14 15:24   
(Last edited: 2023-02-14 15:24)
implemented here: aec39ac06ca56.. Documentation updated accordingly

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7663 [Taler] General minor have not tried 2023-02-07 20:49 2023-04-13 20:26
Reporter: sebasjm Platform:  
Assigned To: MS OS:  
Priority: normal OS Version:  
Status: resolved Product Version: Git master  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: sandbox does not allow patch as cors method
Description: and some method are just available under patch method
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019846)
MS   
2023-02-15 11:21   
addressed here: aec39ac0..18126f19

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7802 [Taler] exchange API (C) major N/A 2023-04-13 12:48 2023-04-13 17:31
Reporter: Christian Grothoff Platform: i7  
Assigned To: Christian Grothoff OS: Debian GNU/Linux  
Priority: urgent OS Version: squeeze  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: wire fee signature not validated in libtalerexchange
Description: We validate the signature on the accounts, but not on the wire fee. Should be implemented.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0020086)
Christian Grothoff   
2023-04-13 17:31   
Fixed in 4e9c4395..eb2b4a13

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7790 [Taler] merchant-pos-terminal (Android App) major have not tried 2023-04-04 13:52 2023-04-11 19:45
Reporter: grote Platform:  
Assigned To: grote OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Try again to get payment status, after connection fails
Description: We already increased the timeout to something like unlimited, but we still do not re-try to make the connection when it fails due to network issues.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020008)
Christian Grothoff   
2023-04-04 15:03   
Just to clarify: having an *abort* button is of course OK, so there should be a way for the user to explicitly give up. My remark was just that until that happens, the PoS app should keep trying.
(0020078)
grote   
2023-04-11 19:45   
https://git.taler.net/taler-android.git/commit/?id=7e8d39aa6f7a97ae14cb90db12f3ab83c9c5a343

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7750 [Taler] exchange minor have not tried 2023-03-07 18:18 2023-04-11 19:16
Reporter: MS Platform:  
Assigned To: MS OS:  
Priority: high OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: no change required  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: taler-exchange-wirewatch ignores the -f option
Description: That causes requests to Nexus /history/incoming to lack the long_poll_ms parameter.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019927)
Christian Grothoff   
2023-03-07 21:20   
I've inspected the code (visually), and it seems to CLEARLY set the timeout, except for two key cases:
1) if we are in test-mode (-t), and
2) if we are going backwards in time

In both cases, using the timeout makes no sense and is correctly disabled. How exactly are you calling taler-exchange-wirewatch to conclude that '-f' is not respected?
(0019934)
MS   
2023-03-08 14:27   
with -t. Why is that disabled? What if users want to check that both client and server respect the timeout?
(0019935)
Christian Grothoff   
2023-03-08 14:29   
-t is test-mode, where the service is supposed to exit when no more work is available, not "hang around". So long polling doesn't make sense in test-mode.
(0019936)
MS   
2023-03-08 14:39   
Also, the help message is unclear about the unit of time being expected by -f. Below is the relevant --help part:

  -f, --longpoll-timeout=DELAY
                             what is the timeout when asking the bank about
                               new transactions

After some tries, it seems that -f N translates to a long_poll_ms of N/1000.

This command:
$ taler-exchange-wirewatch -c wirewatch.conf -L DEBUG -f 100000

Causes this request:
GET /facades/test-facade/taler-wire-gateway/history/incoming?delta=1024&long_poll_ms=100

Is that intentional?
(0019937)
Christian Grothoff   
2023-03-08 14:49   
(Last edited: 2023-03-08 14:50)
Yes. Note that you probably want to use

$ taler-exchange-wirewatch -c wirewatch.conf -L DEBUG -f "100 ms"
$ taler-exchange-wirewatch -c wirewatch.conf -L DEBUG -f "30 s"

etc, just like we usually do when passing time values. Without any unit, it is microseconds and hence correctly divided by 1000.
(0020075)
MS   
2023-04-11 19:15   
Ack. for the clarification and yes, without "-t" wirewatch sends the long_poll_ms parameter.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7680 [Taler] sandcastle (containerized demo deployment) minor have not tried 2023-02-12 20:45 2023-04-11 18:29
Reporter: Florian Dold Platform:  
Assigned To: javier.sepulveda OS:  
Priority: high OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: demo survey tipping should be topped up automatically
Description: We have the tooling (see sandcastle README), but there needs to be some container with a systemd timer or similar mechanism to regularly create a new tipping reserve.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7705 [Taler] sandcastle (containerized demo deployment) minor have not tried 2023-02-19 14:20 2023-04-11 18:29
Reporter: Florian Dold Platform:  
Assigned To: javier.sepulveda OS:  
Priority: urgent OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: exchange ToS not properly configured in the sandcastle exchange
Description: Some configuration settings is missing here.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6591 [Taler] wallet (Android App) minor have not tried 2020-09-08 23:10 2023-04-11 18:26
Reporter: Florian Dold Platform:  
Assigned To: avalos OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Android wallet should support aborting partially failed payments
Description: The wallet-core API now supports aborting failed payments (and obtaining a refund of partial spends) via "abortFailedPayWithRefund".

See 0006590 for general UX issues regarding this, especially for what happens if this refund fails (currently if will be retried "infinitely" with increasing retry timeout).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0017004)
Florian Dold   
2020-10-08 17:08   
Based on Mumble discussions: We should avoid making this too complex in the UI.

=> A pending payment should have one "cancel" button, and the "abortFailedPayWithRefund" should be replaced with a simpler "cancelPayment" method that "does the right thing" and recovers as much funds as possible.
(0019858)
Florian Dold   
2023-02-17 02:35   
We now have a generic "abortTransaction" request and DD37 specifies the transaction lifecycle.
(0019872)
avalos   
2023-02-17 21:01   
What's the first version of wallet-core to support it?
(0019883)
Florian Dold   
2023-02-19 23:32   
0.9.1 definitely supports it
(0020073)
avalos   
2023-04-11 18:26   
This pretty much depends on DD37, which I'm already working on implementing in `dev/ivan-avalos/dd37` branch. I still need some wallet-core features to be implemented before I can finish my client-side DD37 work, but once it's all done, it will be possible to abort partially failed payments, only when DD37 says it's possible.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
5867 [Taler] wallet (WebExtension) minor have not tried 2019-08-31 14:23 2023-04-11 18:04
Reporter: Florian Dold Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: interaction between refunds and payment re-play unclear
Description: When an article is refunded and the merchant offers to pay for a new instance of it (with a new order ID), the wallet will still try to replay the payment for the refunded payment. This will just lead to the "can't view article, it has been refunded" page of the merchant.

The wallet should probably provide some escape hatch and offer the user to make a payment for the new contract in case there is a refund for the matching old payment.

All these cases should be written down somewhere, also to make it easier for merchants.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019866)
sebasjm   
2023-02-17 15:09   
I think that we may want to have 2 kind of order/payment/refund interaction.

(a) Fungible asset: like the right to read the article in the demo
 * Any paid order will work
 * Having a refunded order is like no having an order at all
 * If no order or order refunded, show the paywall

(b) non-Fungible asset: like buying a drink online
 * There is 1-to-1 match between an order an a product
 * The merchant need to see the order to know which product is
 * If the order is refunded, is ok for the merchant to inform that this product is no longer accessible

I think the demo shop example is (a) but behaving like (b)
(0020026)
Florian Dold   
2023-04-05 17:36   
Assigning to Sebastian as he's currently looking over DD7.
(0020072)
Florian Dold   
2023-04-11 18:04   
From the discussion with Christian and Sebastian: This is something we need to address before 1.0, but we need to address this without introducing some completely new feature.

Maybe the wallet just needs to disable repurchase detection when there is a refund.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7760 [Taler] wallet (Android App) major always 2023-03-09 15:21 2023-04-11 16:39
Reporter: sebasjm Platform:  
Assigned To: grote OS:  
Priority: normal OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: making a deposit with lower case country (in the IBAN field) throws an error
Description: The UI allows to send the deposit.
The deposit then fails because the exchange throws 404

Log

03-09 10:56:10.069 29726 29759 V taler-wallet-backend: got back response: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "response",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "operation": "getPendingOperations",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": 168,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "result": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "pendingOperations": [
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "exchange-update",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": "exchange-update:http:\/\/exchange.taler\/",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isDue": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "timestampDue": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678372689000
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isLongpolling": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "givesLifeness": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "exchangeBaseUrl": "http:\/\/exchange.taler\/"
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "exchange-check-refresh",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": "exchange-update:http:\/\/exchange.taler\/",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isDue": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "timestampDue": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678455489000
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isLongpolling": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "givesLifeness": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "exchangeBaseUrl": "http:\/\/exchange.taler\/"
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "exchange-update",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": "exchange-update:https:\/\/exchange.demo.taler.net\/",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isDue": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "timestampDue": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678372663000
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isLongpolling": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "givesLifeness": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "exchangeBaseUrl": "https:\/\/exchange.demo.taler.net\/"
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "exchange-check-refresh",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": "exchange-update:https:\/\/exchange.demo.taler.net\/",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isDue": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "timestampDue": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678455463000
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isLongpolling": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "givesLifeness": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "exchangeBaseUrl": "https:\/\/exchange.demo.taler.net\/"
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "type": "deposit",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "id": "deposit:BMREECH4CM2187PKTZT6WJTKYQES4ZEWMCRN4NZEX4M025D6FNCG",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isDue": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "timestampDue": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1.678370181094625E12
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "isLongpolling": false,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "givesLifeness": true,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "depositGroupId": "BMREECH4CM2187PKTZT6WJTKYQES4ZEWMCRN4NZEX4M025D6FNCG",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "lastError": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "code": 7005,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "when": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678370169701
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "hint": "Unexpected HTTP status 400 in response",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "requestUrl": "http:\/\/exchange.taler\/coins\/2M7G9JJRKMF1AM5PRKP1B8H9RCC858FWZDD4J37K3VXEB2PD1CMG\/deposit",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "requestMethod": "POST",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "httpStatusCode": 400,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "errorResponse": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "code": 26,
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "hint": "A parameter in the request was malformed.",
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "detail": "Country code `de' not supported\n"
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: }
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "retryInfo": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "firstTry": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1678370133368
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "nextRetry": {
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "t_ms": 1.678370181094625E12
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: },
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: "retryCounter": 6
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: }
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: }
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: ]
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: }
03-09 10:56:10.069 29726 29759 V taler-wallet-backend: }
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019943)
grote   
2023-03-09 17:43   
What's the fix here? Force all characters in the IBAN to uppercase? Or show an error to the user if they enter lower-case?
(0019944)
sebasjm   
2023-03-09 19:15   
The exchange will fail to validate the iban using this https://git.taler.net/exchange.git/tree/src/util/iban.c

There is a country table and a checksum validator.

Forcing uppercase seems ok, i think.
(0019955)
grote   
2023-03-10 21:33   
A C validator? Shouldn't it be the job of wallet core to validate/fix those?

However, I can do uppercase for now.
(0019971)
grote   
2023-03-21 17:47   
So I did uppercasing, but entering random stuff now gives me an IBAN checksum is wrong error. I would really expect wallet-core to have a validator method for wallets instead of each wallet having to implement their own.
(0019990)
Florian Dold   
2023-03-29 21:07   
As discussed on Mattermost, wallet-core v0.9.3-dev.10 now supports the "validateIban" request.
(0020068)
grote   
2023-04-11 16:39   
IBAN gets validated in https://git.taler.net/taler-android.git/commit/?id=f5aced13fda3132d5ee3a6947fe95f7b7b22b98a

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7799 [Taler] wallet-core feature always 2023-04-11 16:04 2023-04-11 16:04
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: wallet-core should be more lazy with downloading exchange /keys
Description: Downloading and validating the /keys response is resource-hungry when we have many built-in exchanges.

Also, it makes network requests without direct user interaction, see https://gitlab.com/fdroid/fdroiddata/-/issues/2964
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7728 [Taler] wallet (Android App) minor have not tried 2023-02-24 19:58 2023-04-10 22:45
Reporter: Florian Dold Platform:  
Assigned To: avalos OS:  
Priority: high OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: "confirm with bank" button stays in transaction history even when withdrawal is complete
Description: Something is not updated correctly here.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019910)
avalos   
2023-02-28 17:15   
What do you mean by “transaction history”? The transactions list? As far as I know, the “confirm with bank” button hasn't been merged there yet. Currently, it is only present in the transaction details.
(0019911)
avalos   
2023-02-28 17:20   
Nevermind, the “confirm with bank” button was already merged. However, there's a pending refactoring of the button. Now I'm using a Jetpack composable for the button, and it has improved logic.
(0019912)
avalos   
2023-02-28 17:35   
I can confirm that the new composable action button is updating correctly.
(0019974)
grote   
2023-03-21 22:18   
@avalos do we need to merge anything to resolve this? Are composable versions of this button strictly needed for the fix?

@florian I remember that Christian wasn't so keen on having that button in the transaction list at all. Maybe easier to just remove it?
(0020016)
Florian Dold   
2023-04-04 18:26   
Decided today on Mumble: We leave out the button in the transaction list. Instead we show a badge, ideally based on the state and substate when DD37 support is available in wallet-core.
(0020043)
avalos   
2023-04-10 08:39   
I removed the action button from the transaction list in dev/ivan-avalos/master, please give it a check. I still think it would be a good idea to put the composable action button in the transaction details, as it has a more flexible handling of user actions, and it won't affect performance noticeably in the release version, as things are significantly optimized.
(0020057)
grote   
2023-04-10 22:45   
Buttons was removed in c2283c02428005a8ce0dc00df72535e27f7892d9

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7673 [Taler] wallet (WebExtension) minor always 2023-02-10 16:58 2023-04-10 16:46
Reporter: sebasjm Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: unable to reproduce  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: retry on kyc shows an error
Description: when doing a retry the last error of the operation is shown in the global error message.

should this be hidden since it is going to be shown in the tx error?

something should be done to prevent duplicate error message
Tags:
Steps To Reproduce:
Additional Information:
Attached Files: Selection_410.png (54,862 bytes) 2023-02-10 16:58
https://bugs.gnunet.org/file_download.php?file_id=1358&type=bug
png
Notes
(0020055)
sebasjm   
2023-04-10 16:46   
could not reproduce in the latest version

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7568 [Taler] wallet (WebExtension) minor have not tried 2023-01-12 16:28 2023-04-10 16:44
Reporter: sebasjm Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: implement the new semantic of aborting/cancel/forgetting/resuming a tx
Description: check the extendedStatus field
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019835)
sebasjm   
2023-02-14 15:33   
https://git.taler.net/docs.git/tree/design-documents/037-wallet-transactions-lifecycle.rst

If aborted is an end state, resuming a aborted tx should create a new one.
WDYT?
(0019853)
Florian Dold   
2023-02-16 22:24   
I don't think "aborted" should be an end state. Having multiple versions of basically the same transaction would be very confusing.
(0019864)
sebasjm   
2023-02-17 13:53   
Well, my argument for using aborted transaction as and end state is because running again the transaction may be done based on different conditions and the old aborted tx have important information that should not be lost.

Maybe we should put some examples

 * On withdraw, the transaction may be aborted from the bank or from the wallet. This information need to be saved. If the withdrawal was initiated from the bank, resuming won't be possible because I understand resuming the withdrawal as creating a new manual withdraw.
 * Aborted transfer or invoices can't reuse purse, so it will need to pay that fee again. Am I correct?
* Aborted payment, when restarted again, will have different contract. Old payment tx will have the amount spend (fees) and refund associated.
(0019865)
Florian Dold   
2023-02-17 14:51   
I think the details in DD37 should clarify this.

All your examples would be non-resumable aborted transactions, so effectively we *are* creating new transactions in these cases. It just has nothing to do with the resume mechanism. So we practically agree here?

The only place where resuming aborted transactions makes sense if the abort wasn't destructive. For example, aborting a withdrawal where the money was already wired.
(0020054)
sebasjm   
2023-04-10 16:44   
Closing this since DD37 is in progress

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7741 [Taler] wallet-core major have not tried 2023-03-05 02:15 2023-04-10 16:42
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: "continue with mobile wallet" flow doesn't work for payments
Description: When I pay with my mobile phone for an order (blog shop demo) that was claimed by the WebExtension wallet (after showing the QR code with the "continue with mobile wallet" link), nothing happens in the WebExtension.

Instead, I would expect the WebExtension to also navigate to the now paid article.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020053)
sebasjm   
2023-04-10 16:42   
same as withdrawal, there is no transaction yet and wallet-core is not polling the state of the payment

this is going to be fixed with the implementation of DD 37

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6907 [Taler] wallet-core minor have not tried 2021-06-22 13:14 2023-04-10 15:50
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: low OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: operations should support cancellation tokens
Description: The wallet implementation currently doesn't handle cancellation and timeouts nicely. Most operations should take a cancellation token and pass that to other operations that are invoked.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0018985)
Florian Dold   
2022-08-02 18:10   
To clarify: When the user clicks "Delete" on a transaction, any asynchronous work related to that transaction in wallet-core should be cancelled. This is not strictly needed for correctness, but is overall nicer behavior.
(0020052)
sebasjm   
2023-04-10 15:50   
this issue needs to be reviewed.

I think is covered by DD 37

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7719 [Taler] wallet (WebExtension) major always 2023-02-23 15:50 2023-04-10 15:41
Reporter: sebasjm Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: confirmed Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: withdraw call to action should check if mobile withdrawal has been initiated
Description:  * set "Automatically open wallet based on page content"
 * initiate a withdrawal
 * choose "withdraw to a mobile phone"

Complete the withdrawal with the mobile

webex should update and move to the bank confirmation page.

When the confirmation is done with the browser, mobile app should then be updated (do not ask again for "confirm with the bank")
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020051)
sebasjm   
2023-04-10 15:40   
this will be fixed with the implementation of DD 037

there is no polling in the withdrawalgroup (to the bank status) because there is not transaction/operation yet in the wallet.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7533 [Taler] wallet (WebExtension) major always 2022-12-25 18:49 2023-04-10 15:38
Reporter: davidak Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version: 0.9  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Unable to add a new bank account to wallet
Description: So i can't get money back to bank.
Tags:
Steps To Reproduce: 1. Open wallet balance
1. Click "Send"
1. Put in amount like 5 and click "deposit" to bank
1. "There is no account to make a deposit for currency KUDOS"
1. Click "Add"
1. Fill out your bank details
1. "We can not validate the account so make sure the value is correct."
Additional Information: Wallet Core
0.9.0 673e7a417d043cd6b0644d2a7a52d1fdbc5345ee
Web Extension
0.9.0.35 673e7a417d043cd6b0644d2a7a52d1fdbc5345ee
Attached Files: Screenshot from 2022-12-25 18-43-54.png (43,415 bytes) 2022-12-25 18:49
https://bugs.gnunet.org/file_download.php?file_id=1288&type=bug
png
Notes
(0020050)
sebasjm   
2023-04-10 15:38   
fixed

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7691 [Taler] wallet-core major always 2023-02-13 20:52 2023-04-10 15:36
Reporter: sebasjm Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: feedback Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: getting refund in the demo frontend get refund = 0
Description: This may be due to the coins that the user had in the wallet.

Step to reproduce:
1- withdraw some coins
2- pay some articles
3- try to get some refunds

Refund fee will apply, given the low value of the article and relative high fee the total refund will equals to 0
Worse, the total refund may not be always the same (even if the article is the same price) since the coins may be small with relative high refund fee.

Exchange configuration:
# curl https://exchange.demo.taler.net/keys | jq '.denominations[] | {fee_withdraw, fee_deposit, fee_refresh, value}'

{
  "fee_withdraw": "KUDOS:0.01",
  "fee_deposit": "KUDOS:0.01",
  "fee_refresh": "KUDOS:0.01",
  "value": "KUDOS:0.1"
}
{
  "fee_withdraw": "KUDOS:0.01",
  "fee_deposit": "KUDOS:0.01",
  "fee_refresh": "KUDOS:0.01",
  "value": "KUDOS:2"
}
{
  "fee_withdraw": "KUDOS:0.01",
  "fee_deposit": "KUDOS:0.01",
  "fee_refresh": "KUDOS:0.01",
  "value": "KUDOS:10"
}
{
  "fee_withdraw": "KUDOS:0.01",
  "fee_deposit": "KUDOS:0.01",
  "fee_refresh": "KUDOS:0.01",
  "value": "KUDOS:1"
}
{
  "fee_withdraw": "KUDOS:0.01",
  "fee_deposit": "KUDOS:0.01",
  "fee_refresh": "KUDOS:0.01",
  "value": "KUDOS:5"
}

Here if what is remaining in the wallet is just KUDOS:0.01 then the refund is always be 0 !!!
Maybe the wallet should do a refresh?
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020031)
Florian Dold   
2023-04-05 18:27   
This seems to be about the denomination structure of the exchange.

I'm not sure what wallet-core should do differently here or how refreshing would help.
(0020049)
sebasjm   
2023-04-10 15:36   
Agree that this may be more related to the exchange fee structure, but the experience is bad for the user since is unexpected. Trying to get a refund and the effective amount of the transaction is 0, not a refund. Bad exchange and wallet should handle it.

Maybe this can also be solved by with the help for the merchant => with the feature of the merchant being able to pay the refund fee.

Regarding the refresh operation, the situation in my mind was:
 * the contract was paid with a coin with high refund fee because coin-selection doesn't not optimize by refund_fee when doing a payment.
 * if the denomination to be refund is not the best, maybe it can be changed/refreshed before refund so it will pay less fee

This situation is possible:
 1 start a wallet with high amount
 2 create an order of low amount
 3 pay a refund
 4 go to 2

At the beginning, refund of the order will be X and after a while refund will be less (and maybe 0) even if the order is the same.
What change here are the coins being used to pay, smaller coins with higher relative refund fee.

Here, a refresh operation could make the refund stable? in terms of fees

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7452 [Taler] wallet-core feature have not tried 2022-11-14 02:58 2023-04-10 14:52
Reporter: sebasjm Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: extend GetExchangeTos wallet operation to be reuse for backup or auditor
Description: Wallet will be accepting ToS from other service, it will be useful to reuse the same logic.

Currently I need something similar for backup providers.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019986)
Florian Dold   
2023-03-28 20:28   
I actually do not think that these operations are sufficiently similar enough to abstract them out.

The exchange ToS is human-readable text with an Etag, while the sync ToS is structured JSON without any versioning.
(0020001)
sebasjm   
2023-04-01 16:53   
What is the difference between the ToS that backup service provider and auditor uses?

Can we make a standard way of creating, serving, querying and displaying ToS for every service so we no need to build particular solutions for every service?

I think that the exchange implementation is good enough to be replicated, and we can reuse the same logic in the wallet (and ui)
(0020004)
Florian Dold   
2023-04-03 19:19   
The main problem here is that the ToS of different services (exchange vs. auditor vs. sync) do not share a lot of structure:

* auditor: do we even have ToS here yet?
* exchange: multi-language, multi-format human-readable document, ETag for version tracking
   (also, we might want to stop storing the ToS document, and only store which ETag was accepted by the user, as there's not a real need to review the exchange ToS while offline)
* sync: JSON format to explain fees of the service, unversioned

In general it's not a good idea to create an abstraction over things that are too different.
(0020042)
Christian Grothoff   
2023-04-09 21:46   
I'm confused by Florian's comment: the ToS of the different services use *exactly* the same code server-side, and should follow the same structure. Sure, the auditor doesn't yet have a ToS, but that's likely a matter of time. exchange, sync, merchant & anastasis, all use the same logic with ETag and support returning in format requested by the client. They are also all versioned, so the same abstraction makes sense client-side.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7672 [Taler] documentation text have not tried 2023-02-10 16:07 2023-04-09 20:06
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: spec wallet-core transaction lifecycle in a design document
Description: Based on the extendedStatus, we should document which transitions are possible and what they mean.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019825)
Florian Dold   
2023-02-13 19:42   
Generic states and transitions are documented, I'm waiting for feedback on that before documenting everything for the specific transaction types.
(0019856)
Florian Dold   
2023-02-17 02:18   
The basic spec of all transactions is done, but there are various "XXX" comments indicating questions, and the whole thing needs a few more passes and some review.
(0020041)
Christian Grothoff   
2023-04-09 20:06   
I've done an extensive pass over the document now. Note that I disagree with supporting auto-refunds in p2p payments, so they are left half-baked in the spec. Also likely tons of stuff left to discuss, but Florian's turn now :-)

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7365 [Taler] exchange API (HTTP specification) feature N/A 2022-09-18 11:33 2023-04-08 10:02
Reporter: Christian Grothoff Platform: i7  
Assigned To: OS: Debian GNU/Linux  
Priority: low OS Version: squeeze  
Status: confirmed Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: KYC fee is never charged / not speced or implemented
Description: The taler-exchange-offline tool (already) has a means to specify a KYC fee, and in principle the "/kyc-check" endpoint could generate a 402 payment required for the KYC process. However, the detailed 402 response is unspecified and also not implemented.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0019170)
Christian Grothoff   
2022-09-22 15:36   
There's now a high-level hint of the exchange possibly returning a 402 in the /kyc-check spec.
(0019224)
Christian Grothoff   
2022-10-18 19:17   
Discussion today: have different KYC fees per trigger.
(0019225)
Christian Grothoff   
2022-10-18 19:27   
Charge KYC fees either to reserve (incl. wallet's long-term reserve for balance trigger) or to outgoing wire amount.
(0019226)
Christian Grothoff   
2022-10-18 19:27   
(Last edited: 2022-10-18 19:28)
As long as frees cannot be paid, transaction is simply on hold until KYC threshold is gone below or balance goes high enough to pay KYC fee.
(0019697)
Christian Grothoff   
2023-01-21 21:21   
Given that AML may trigger KYC, I think the _only_ case where we legitimately can and should charge a KYC fee is if a client explicitly asks for it -- e.g. because they want to get attributes signed for invoicing.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7271 [Taler] exchange API (HTTP specification) feature N/A 2022-07-05 11:27 2023-04-08 10:01
Reporter: Christian Grothoff Platform: i7  
Assigned To: OS: Debian GNU/Linux  
Priority: low OS Version: squeeze  
Status: confirmed Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: exchange-to-exchange wad transfers are not implemented
Description: This is a feature for W2W payments across exchanges. Places in the code that are related are marked with this bug number.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7737 [Taler] merchant backend API (HTTP specification) feature always 2023-03-02 13:55 2023-04-08 10:01
Reporter: sebasjm Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: confirmed Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: merchant with a wallet should be able to fill a reserve for tipping
Description: wallet support starting a deposit with a payto URI and right now it fills a contract with some empty values
but this deposit will make a wire transfer to the exchange without the reserveId

The exchange could detect if "merchant_payto_uri" in the DepositRequest of https://docs.taler.net/core/api-exchange.html#deposit is the same of the exchange account and then it could reuse some fields to get the reserve id (maybe the order_id?)

With this there is no need of a wire transfer and it make the transaction efficient
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019916)
Christian Grothoff   
2023-03-02 15:41   
Actually, we should use the P2P transfer feature for this. That requires then no changes at the exchange. All we need is for the merchant backend/SPA to generate an 'invoice' (pull payment request) using its tipping reserve private key!

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6952 [Taler] documentation text have not tried 2021-07-23 13:42 2023-04-08 10:00
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: feedback Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: document how public /pay handles refunded coins
Description: The current implementation allows them, but excludes the refunded amount from the total payment amount.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0018008)
Florian Dold   
2021-07-23 14:18   
From our workshop discussion: The merchant should actually just *reject* /pay requests with refunded coins, as due to the exchange API, such payments can never work in the first place. Once a coin is refunded, it can't be spent on the same h_contract_terms again.

The merchant code should not accommodate with extra, complex logic for an input that will lead to an error at the exchange anyway.
(0020028)
Florian Dold   
2023-04-05 18:21   
Actually it turns out that the exchange doesn't properly document how /deposit handles refunded coins for the same h_contract_terms.

While trying to experiment with the exchange's behavior, I stumbled on 0007792.
(0020029)
Florian Dold   
2023-04-05 18:22   
Assigning to Christian to review the exchange docs for coin deposit/refund, which in turn informs the documentation for the merchant's /pay endpoint.
(0020040)
Christian Grothoff   
2023-04-08 09:59   
56e7647..991e5d2 clarifies the /deposit (and /batch-deposit) endpoints with respect to coin re-use.
991e5d2..a7dd26c clairfies the /pay endpoint hopefully making it clearer that you must not use the same coin-pub a second time for a purchase of the same contract after a /refund for the same purchase.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7267 [Taler] exchange major always 2022-06-30 10:31 2023-04-08 09:56
Reporter: oec Platform:  
Assigned To: oec OS:  
Priority: normal OS Version:  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.5  
Summary: TEH_make_coin_known needs proper conflict handling and evidence gathering
Description: Right now, TEH_make_coin_known calls TEH_RESPONSE_reply_coin_insufficient_funds in the cases TALER_EXCHANGEDB_CKS_DENOM_CONFLICT and TALER_EXCHANGEDB_CKS_AGE_CONFLICT. This is not correct because that function does not gather the required evidence for the noticed conflicts.

We need a new conflict resolver/evidence gatherer function for those cases. It must take into account the usage of the coin in deposits, p2p or refunds (and maybe other circumstances?)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0018951)
oec   
2022-06-30 10:33   
And we need test cases for those situations, too!
(0018952)
oec   
2022-06-30 10:40   
Also, other places that call TEH_RESPONSE_reply_coin_insufficient_funds might require similar treatment

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7747 [Taler] exchange minor have not tried 2023-03-07 13:13 2023-04-08 09:46
Reporter: Florian Dold Platform:  
Assigned To: Christian Grothoff OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version: 0.9.3  
    Target Version: 0.9.3  
Summary: sample exchange ToS HTML is giant
Description: For some reason, the ToS converted to HTML is unacceptable large (>600KB), when it is just simple, plain text.

It is so large, that it doesn't fit into one Android IPC message (with JSON encoding/escaping overhead)
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019924)
Christian Grothoff   
2023-03-07 13:17   
Why does the Android wallet request the HTML version? It is so huge as it packs various JS+CSS to make it render nicely. The Android wallet should be asking for RST or TXT, not HTML!
(0019985)
Florian Dold   
2023-03-28 20:20   
One issue is that the exchange returns the giant HTML response *by default*, either when no "Accept:" header is specified, or there is no match for the requested content type.

But I currently don't understand why wallet-core is not requesting either "text/plain" or "text/markdown", I'll have to look into this.
(0019989)
Florian Dold   
2023-03-29 21:01   
Okay, so I've fixed a bug in qtart that caused *duplicate* "Accept: application/json" and "Accept: text/plain" headers to be added, which was clearly wrong.

However, I still think it's bad behavior of the exchange to default to returning HTML when there is no matching ToS for the requested MIME type or no Accept header was given.
(0019991)
Christian Grothoff   
2023-03-30 03:11   
Well, what do you think should be the default? HTML is usually the default for the Web, but I guess we could default to text/plain as well...
(0020039)
Christian Grothoff   
2023-04-08 09:46   
cbabddf0..677ac4a5 changes the default to text/plain.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7743 [Taler] demobank-ui minor have not tried 2023-03-05 02:22 2023-04-08 00:00
Reporter: Florian Dold Platform:  
Assigned To: sebasjm OS:  
Priority: high OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: "Confirm with bank" flow does not work with current demobank-ui
Description: There is no way to tell the demobank-ui to continue with a certain withdrawal. Also, the confirm_transfer_url generated by the libeufin demobank doesn't contain any reference to the account that created the withdrawal operation.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019987)
sebasjm   
2023-03-29 14:39   
changed required
 * sandbox should set `confirm_transfer_url` to [1] in these endpoints [2]
 * spa should show an message if it is confirming a transfer with an account different than the current user

optionally: if transfer_user !== current_user then ask password, this require sandbox to check of auth header when doing abort or cancel withdrawal operation

[1] https://docs.taler.net/core/api-bank-access.html#get-$BANK_API_BASE_URL-accounts-$account_name-withdrawals-$withdrawal_id
endpoint contains account name in the path
it will be nice to have the accountName in the response object so SPA will not need to parse the path and potentially break in the future (also remove /accounts/${account_name} from the enpodint)
endpoints (get, abort, cancel) do not require credentials so it will be possible to call them without asking for the password


[2] https://docs.taler.net/core/api-bank-integration.html#withdrawing
(0020021)
sebasjm   
2023-04-04 20:30   
new docs https://git.taler.net/docs.git/commit/?id=3273debb32a00825e7c77b8468d09d070ff8f9cd

which describe the new behavior of sandbox so confirm_transfer_url will have the withdrwal operation id that will redirect to the correct UI in the demobank SPA
(0020037)
sebasjm   
2023-04-08 00:00   
at 877a4bb1328661ae2e97d764c26e2bc0ff1f46fe

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6077 [Taler] wallet-core feature N/A 2020-02-04 22:13 2023-04-06 14:45
Reporter: Christian Grothoff Platform: i7  
Assigned To: Florian Dold OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: sync support needed in wallet core
Description: The operations that should be provided (here described as command-line options for the CLI wallet) are:

0) sync --info-by-url $URL: obtain fee structure and other high level terms (warranty, etc.)
1) sync --create $URL: setup a new sync account (and pay for it!)
2) sync --info: show meta data of current account (fees, paid until, warranty, etc.)
3) sync --show: display a URI (taler://sync/$URL/$SECRET) with the information needed to join a sync group / download a backup
4) taler-wallet-cli taler://sync/$URL/$SECRET: join the sync group (download, merge, upload to notify other members of join)
5) sync [nothing]: synchronize NOW with the active sync/backup service (try upload, if fail download, merge, upload)
6) sync --reserve $AMOUNT: reserve $AMOUNT money (in the respective currency) for *this* wallet
7) sync --leave ($AMOUNT)* leave the sync group, taking $AMOUNT funds out of the joint funds. $AMOUNT may be
   specified multiple times for different currencies.

Let me know if something is unclear, or extend/add to the list in case I missed something.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0016834)
Florian Dold   
2020-09-04 09:06   
The CLI for this looks mostly good to me (modulo questions below). Except that the "--..." options should actually subcommands. But that's a pervasive usability problem in many binaries of GNUnet and Taler, because the library we use in C for CLI parsing doesn't handle subcommands nicely </rant>.

Regarding starting the implementation of sync: what we actually need is primarily the wallet-core JSON API for all those things. I'll write these docs after we've clarified some other issues. The CLI will follow from that.

# 1. Balances

1.1 How does this affect the balance, both in terms of API and UI? WIll we only show the "reserved" amount?
1.2 Do balances now need to include some timestamp(s) that show how current they are? Sync otherwise might lead users into thinking they have more money than they actually do ...
1.3. How does this affect the coin selection for payments? What happens if the current wallet's reserved balance is too low, but the sync group's balance is high enough to pay?

# 2. Funds reservation

2.1 Does the funds reservation imply a sync, or is it only done locally? Do other devices somehow acknowledge the reservation?

# 3. Device identifiers and encryption

3.1. I'm assuming in the first implementation, a "rogue" device won't be able to be kicked out of the sync group, right? So we don't do any encryption with the some per-device key, we just use the sync key.

# 4. Payments

4.1. Does the user need to confirm the payment to create the sync group? What if the contract terms contain a different amount than what's advertised by the sync server?
4.2. Does the user need to confirm subsequent payments for the sync server to extend the service duration?
4.3. What happens if two wallets in a sync group pay to extend the sync service? Will the 402 always give the same order (=> other wallets receive "order already claimed)?
(0016836)
Christian Grothoff   
2020-09-04 10:06   
1.1: sync may cost money, if it does, it's a purchase.
1.2: I'd say no. We could store the # devices in the sync group, and if >1 we could do a GET request against the sync service at a reasonable frequency (say on Wallet start, unless started "just before"?). I'd not show a timestamp.
1.3: We grab from the sync group and POST to sync as soon as possible (but after the payment)
(0016837)
Florian Dold   
2020-09-04 11:38   
Regarding 1.1: This question wasn't related to how the *payment* for sync will show up, but how being in a sync group will affect the balance that is shown. Or to rephrase the question: How will reserving funds from the sync group affect the balance display?

Will it even affect the balance display / API response, or is it an internal thing completely transparent to the user, and just used to reduce (not completely prevent!) spending conflicts?
(0016838)
Christian Grothoff   
2020-09-04 12:55   
1.1: I'd say not at all. We should show the overall balance, sync groups should be managed "behind the scenes".
(0016849)
Christian Grothoff   
2020-09-04 14:49   
2.1: Funds reservation is 'soft' anyway, it just means that a wallet will preferentially spend certain coins over others. So I would say any wallet in a sync group can 'grab' a coin (or even assign it to another wallet in the sync group, i.e. on withdrawal), and the latest grab counts (so grabs must have: coin_pub + wallet_id + timestamp). I'd treat grabs like any other wallet-operation (withdraw, pay, refresh) in terms of sync behavior: randomized reduction in the time to the next backup per operation might be a reasonable strategy.

3.1: Why not have a header (encrypted with sync key) that has a list of all participating wallets and then a backup key encrypted *to* all wallet private keys, followed by the actual wallet data encrypted with the backup key? Sounds not too hard, and why not do it right immediately?

4.1a: Yes, but simply have the normal dialog contain the word "confirm payment" in the button and the amount next to it. No need for a 'full' regular pay dialog IMO.
4.1b: That's a protocol violation. Treat it as such and tell the user the sync server failed to respond properly.

4.2: I'd have a checkbox 'auto-renew'. If payment is not possible OR if auto-renew is off, 1 month before expiration we should have an alert on the main screen about the impending expiration of the backup enabling manual renewal.

4.3: We should always force a sync between auto-renew claiming and payment to prevent this. The sync server cannot tell if you want to extend by +1 year, so it will create a fresh order. So simply claim, sync, and if you do not find another claimed order in the DB, then pay (or pay the earliest claimed order in the freshly sync'ed DB).
(0016856)
Florian Dold   
2020-09-04 16:34   
2.1. brings me to the crypto. Why not just use a HKDF and libnacl/libsodium crypto_(secret)box? Pulling in AES (and using it in what mode? ;-) ) will add more, potentially unaudited dependencies and is *much* easier to use incorrectly.
(0016862)
Christian Grothoff   
2020-09-05 00:14   
2.1: nothing against HKDF+cryptobox for the 'inner layer', but we need some 'outer layer' to allow adding/removing wallets from the sync group, including telling a wallet that it has been removed. So I don't think we can do without some DH between each group member's private key and some ephemeral key chosen by the last wallet to publish the backup.
(0016958)
Florian Dold   
2020-09-10 08:09   
After thinking about it some more: How would the per-wallet key work with Anastasis? Isn't that fundamentally incompatible?
(0016959)
Christian Grothoff   
2020-09-10 09:19   
(Last edited: 2020-09-10 09:22)
Easy solution: Imagine W1 / W2 / W3 are the per-wallet keys and A is the Anastasis key (A_priv in Anastasis) and the actual symmetric encryption key of the main wallet state is K.

Then, we could store W1_pub, W2_pub, W3_pub, A_pub and an _encrypted_ K in the sync data preamble encrypted with DH(W1,A), DH(W2,A), DH(W3,A).

Note that K can here not change on every encryption, so we'd need an additional IV (or IMO better: salt and KDF via salt) before encryption with traditional AEAD/GCM.

Kicking a wallet out of the device group requires changing K, and so a new Anastasis policy upload. But that is rare and thus should be Anastasis-compatible.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7793 [Taler] other minor have not tried 2023-04-05 18:40 2023-04-05 18:40
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: normal OS Version:  
Status: new Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 1.0  
Summary: use token auth for SPAs instead of storing credentials plain-text in local storage
Description: What we currently do is obviously not very nice from a security perspective.

Instead of using the plain-text user/password credentials, there should be a /login endpoint that then returns a bearer token.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6954 [Taler] merchant backoffice SPA feature have not tried 2021-07-23 14:20 2023-04-05 18:37
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: none OS Version:  
Status: acknowledged Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: post-1.0  
Summary: create sample deployment to test external authentication
Description: We currently have only tested the SPA with merchant-internal token authentication.

We should create a very simple test deployment (with fixed auth information in, say, nginx) to make sure that the SPA handles external auth properly (both conceptually and in the implementation).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
3476 [Taler] wallet-core feature have not tried 2014-07-01 18:49 2023-04-05 18:36
Reporter: Florian Dold Platform:  
Assigned To: OS:  
Priority: low OS Version:  
Status: confirmed Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: evil exchange testsuite
Description: There should be an "evil" exchange testsuite, which tries to trigger edge- or error cases in the customer implementation.

Preferably, the result of these test cases should be that the customer can always construct a cryptographic proof that demonstrates the exchange's failure. This is of course only possible for byzantine failures, and not for denial-of-service.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0012906)
Christian Grothoff   
2018-03-27 17:30   
With Twister, we now have in principle the infrastructure in place for this, but we naturally need to modify the (existing?) wallet tests to trigger the Twister at the right times. This sounds like it would be best done in May or June as a collaboration between Marcello and Florian.
(0013233)
Christian Grothoff   
2018-09-17 11:31   
Changing to be against wallet, as this is about testing the wallet and the wallet thus needs to do the required twister instrumentation. (Do we have a separate bug for the merchant backend? Do we need one?)

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7270 [Taler] exchange API (HTTP specification) feature N/A 2022-07-05 11:25 2023-04-05 18:35
Reporter: Christian Grothoff Platform: i7  
Assigned To: oec OS: Debian GNU/Linux  
Priority: normal OS Version: squeeze  
Status: assigned Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.6  
Summary: extension support is not implemented everywhere consistently
Description: Places in the code related to where extension support is known to be missing are (to be) marked with this bug number.
Tags:
Steps To Reproduce:
Additional Information:
System Description
Attached Files:
Notes
(0019353)
oec   
2022-11-04 14:02   
Commit 752f10273860d2496fc3eb1e03de6ad4451e7c0f and 680ae81d860eb9bde951a3f95c0da06c111b66f8 fixes most of the places, and tests pass.

Missing: add tests with policy_details set.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7498 [Taler] exchange API (HTTP specification) major always 2022-11-28 14:19 2023-04-05 18:34
Reporter: oec Platform:  
Assigned To: oec OS:  
Priority: normal OS Version:  
Status: feedback Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 1.0  
Summary: fee structure considerations (was: Incoherent calculation of fees during withdraw)
Description: With the latest wallet webextension (commit 3577227cc0ff0f9e0c422ae34c4407d88e98ec21) there is an inconsistency with the transaction fee calculation:

A withdraw amount of '10' leads to an transaction fee of '-0.13'.
A (higher) withdraw amount of '10.01' leads to a transaction fee of (only) '-0.01'.

Is this the result of a miscalculation or the fee-structure of the denominations?
Tags:
Steps To Reproduce: A)
1. On the withdraw form, I enter '10' as the value.
2. On the next dialog, I see '-0.13' as the transaction fee.

B)
1. On the withdraw form, I enter '10.01' as the value.
2. On the next dialog, I see '-0.01' as the transaction fee.
Additional Information: - exchange config attached.
Attached Files: 2022-11-28-141823_715x727_scrot.png (40,220 bytes) 2022-11-28 14:19
https://bugs.gnunet.org/file_download.php?file_id=1278&type=bug
png

2022-11-28-141747_681x742_scrot.png (44,078 bytes) 2022-11-28 14:19
https://bugs.gnunet.org/file_download.php?file_id=1279&type=bug
png

c.conf (5,030 bytes) 2022-11-28 14:19
https://bugs.gnunet.org/file_download.php?file_id=1280&type=bug
Notes
(0019485)
sebasjm   
2022-11-28 15:58   
Well, I see that if you wire transfer 10.01, the exchange will give you 1 coin of 10 with the fee of 0.1 (as seen in the config)

If you wire transfer 10, it will discount 0.01 for every coin used an that will depend on the configuration.

I don't see any bug here.
(0019486)
oec   
2022-11-28 16:20   
(Last edited: 2022-11-28 16:38)
Here is why this is broken, IMHO:

1. A user enters '10' to receive an amount of '10' because he/she needs that much.
2. On the next dialog page the user sees that he/she won't receive '10' but only '9.87' due to fees of '0.13'
3. But the user wants _10_ not, 9.87, so goes back and enters '10.13' instead, to include the fees.
4. But now, surprisingly, the result is '10.11' and the fees seem to be _lower_ for a _higher_ amount.

As a user I find this incoherent. Why should the user care about the demonination-structure and additive model for fees in the exchange?

I think the following are potential, orthogonal solutions:

a) Add to the withdraw form an option to either _include_ or _exclude_ the fees in the amount to be withdrawn. That way, the user wouldn't be confused in first place.

b) Change the fee mechanism for withdraw in the exchange to be based on the total _amount_ to be withdrawn, not the particular _denominations_ needed for that amount.
(0019487)
oec   
2022-11-28 16:34   
(Last edited: 2022-11-28 16:34)
... c) Make the fees for denomations additive: D1 = N*D2 => fee(D1) = N*fee(D2). The auditor can check that, too.
(0019496)
Christian Grothoff   
2022-12-05 10:34   
Well, let's see about (c):
1) Obviously, the lowest possible fee must be the lowest denomination, let's say that is 0.01 KUDOS.
2) Then for a 0.01 KUDOS coin, the deposit fee must be 0.01 KUDOS.
3) By your math, the fee for a coin of value X must then be X.
Consequently, you can only pay fees, but never merchants. See the problem?
(0019498)
oec   
2022-12-05 14:22   
Not if the fee(v) = q*v with 0 < q << 1 and we only round up to D_0 at the end of the calculation, no?

However, I agree that (b) and (c) don't discourage the withdrawal of many small denominations.
(0019499)
Christian Grothoff   
2022-12-05 14:35   
There are more problems with (c): the fees end up either too low for our business model (where microtransactions are where we can make real profits), or too high to be competitive with traditional payment systems for larger amounts. Imagine q=1%. Then for a 1cent transaction, you may make too little profit. But for a 1000 EUR transaction, your fee is already insanely high. Logarithmic fees are actually good for Taler, it makes us competitive in all markets.
(0019500)
oec   
2022-12-05 15:53   
That leaves option a) above.
(0020033)
Florian Dold   
2023-04-05 18:34   
I think we should write down these considerations somewhere outside of the bug tracker.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6548 [Taler] wallet-core tweak have not tried 2020-09-01 14:34 2023-04-05 18:32
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: low OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: wallet should handle (accidental!) double spending and have integration test for it
Description: ... which can be caused by a restore from backup.

The wallet should respond appropriately.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
6016 [Taler] wallet-core minor have not tried 2019-12-26 21:43 2023-04-05 18:32
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: high OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: wallet should recover from payments where the exchange reports an invalid coin
Description: These cases include:

 * coin is double-spent
 * coin is of a denomination that is not offered by the exchange anymore (due to exchange DB reset)

The wallet has to report this error and offer the possibility to re-try the payment using a different set of coins (if balance is sufficient).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0017845)
Florian Dold   
2021-05-12 16:28   
The double-spending scenario is now covered and has a test case. The "selected denomination is now outdated" scenario still needs a test case.
(0019039)
Christian Grothoff   
2022-08-25 20:46   
P2P payments still need to worry about this as well.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7701 [Taler] wallet-core minor have not tried 2023-02-17 12:57 2023-04-05 18:29
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: implement abort semantics from DD37 for withdrawals
Description: This will lead to clearer messages in the UI with regards to what happens when a withdrawal is aborted (or deleted afterwards).
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7687 [Taler] wallet-core major always 2023-02-13 20:23 2023-04-05 18:29
Reporter: sebasjm Platform:  
Assigned To: Florian Dold OS:  
Priority: high OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: cancel withdrawal from wallet when withdrawal in progress should not lose money
Description: First case (a)

 1.- initiate a bank withdrawal
 2.- upon math challenge, abort the withdrawal
expected: wallet shows "operation was cancelled by the bank"
current: forever pending

Doing the same operation with manual withdrawal: it make sense to cancel the operation from the wallet since it was initiated by the wallet.
No change needed

Second case (b)

 1.- initiate withdrawal (bank or manual)
 2.- complete the challenge, confirming the wire transfer
 3.- abort the operation in the wallet
expected: exchange returns what was not withdrawn from the wallet
current: no message is shown to the user of the bank that the money is going to be back, this should also consider the scenario that the wallet never withdraw the money and the reserve is timed out
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020032)
Florian Dold   
2023-04-05 18:29   
The two cases described here are just 0007435 and 0007701

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7319 [Taler] exchange API (HTTP specification) feature always 2022-09-02 22:04 2023-04-05 18:25
Reporter: sebasjm Platform:  
Assigned To: Florian Dold OS:  
Priority: low OS Version:  
Status: resolved Product Version: git (master)  
Product Build: Resolution: duplicate  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: The sender should be able to cancel an invoice or transfer before the recipient pays or withdraws
Description: As a sender of a transfer, I want to be able to cancel and get the money back (without fee) before the recipient withdraws
As a sender of an invoice, I want to be able to cancel and avoid the contract to be paid before the recipient pays.

From email discussion:

"we could add a DELETE endpoint to the exchange for this. But, a
bit tricky: we'd need the wallet to do a long-polling GET while showing
the pending transaction anywhere in the UI to notice removal and then
hide it. Also, if we truly DELETE on the exchange side (which seems
best), we'd have no data to share with the recipient (or auditor) about
the deletion, so we'd only have the refresh fees (and a malicious actor
may not refresh) and maybe the purse fees"
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019545)
Christian Grothoff   
2022-12-30 00:36   
Exchange part is done, next is wallet-core.
(0020030)
Florian Dold   
2023-04-05 18:25   
(Last edited: 2023-04-05 18:25)
There are separate bugs open now for the implementation in wallet-core (0007584 and 0007583), so let's mark this one as resolved, as it was originally about the exchange.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7584 [Taler] wallet-core feature have not tried 2023-01-13 02:35 2023-04-05 18:25
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: implement aborting p2p pull payments
Description: This should use the new API from the exchange.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
There are no notes attached to this issue.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7561 [Taler] qtart feature have not tried 2023-01-10 15:35 2023-04-05 17:44
Reporter: Florian Dold Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: assigned Product Version:  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.4  
Summary: make taler-wallet-cli runnable under qtart
Description: Some small helpers are still missing.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019851)
Florian Dold   
2023-02-16 13:59   
Almost done, it works but the native taler-wallet-cli should still be added as an optional build target to the quickjs-tart build system.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7100 [Taler] wallet-core minor have not tried 2021-11-20 12:13 2023-04-05 17:43
Reporter: ms-mantis Platform:  
Assigned To: Florian Dold OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: Suggested exchange expected, in contrast to it being optional.
Description: The Bank Integration API specifies the "suggested_exchange" field of the "GET /withdrawal-operation/$id"
as optional. The wallet however interrupts one withdrawal in case this information is missing.

Logs:

withdrawInfo {
  amount: 'EUR:5',
  defaultExchangeBaseUrl: undefined,
  possibleExchanges: []
}
no suggested exchange!
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020027)
Florian Dold   
2023-04-05 17:43   
Fixed in 451400b3a. The taler-wallet-cli handle-uri subcommand now accepts a --withdrawal-exchange option.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7473 [Taler] wallet (Android App) minor always 2022-11-17 18:20 2023-04-05 17:35
Reporter: sebasjm Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: feedback Product Version: git (master)  
Product Build: Resolution: open  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: The app should navigate to the article after payment: (I need manually go back)
Description: If the user is using mobile to read the articles on demo and tries to read one the wallet opens with the payment dialog.

After the payment is completed, the user should be redirected to the article again.

From an email

> Yes, open fulfillment URL in browser. However, there is a small issue:
> if I scanned the QR code from a desktop-browser, we'd open the URL in a
> different browser (and the session-bound payment is bound to the browser
> on my desktop!). So we shouldn't auto-navigate here at all, and merely
> go to the page with the order details where the user can click on a
> button to open the page.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0019435)
grote   
2022-11-17 18:33   
I am not sure I understand. The quoted text says "we shouldn't auto-navigate here at all", but you want to auto-navigate after payment?
(0019438)
sebasjm   
2022-11-17 20:03   
The comment is describing a scenario when the QR code is scanned from the android wallet but the article is going to be read in the desktop.

So, from the desktop:
 - go the shop
 - try to read an article
 - the qr code is shown
 - pay it with the mobile wallet
 - after being paid the wallet should show the tx is completed
 - the shop in the desktop browser should detect that the order has been pay and render the article

Here the article is not shown in the mobile browser.

Alternative scenario is when the article is being accessed from the mobile browser, pay and the the wallet should redirect again to the article.
(0019440)
grote   
2022-11-17 20:41   
So you want after all payments that the Android wallet opens the fullfillment Uri without asking?
(0019443)
sebasjm   
2022-11-18 16:37   
You mean like "you are going to be redirected to" type of question?

Maybe, I'm not sure. In the first scenario (when the redirect needs to be made, reading from mobile and paying with the same device) the user is coming FROM the article to the wallet to pay. It sounds reasonable that the user will want to go back to the article and the fulfillment url will redirect the user to that.
(0019583)
grote   
2023-01-05 21:27   
OK, but how do we reliably detect that the user is coming from an article they want to go back to? On Android, we don't get informed by the browser where the user is coming from, so we only see the taler:// Uri. Maybe there's something in that Uri that indicates the desire to auto-go-back to fulfillment?

Btw. a feature like this could have security implications as you can force the user to visit a certain site.
(0019593)
Christian Grothoff   
2023-01-06 14:58   
I see. Yes, I guess we should add an argument to the taler://-URI that tells the mobile phone that it scanned a QR code on an 'external' system and thus should not navigate back itself. Something like "?nav=yes" would do, right? The QR code is where we need things to be compact, so there I would leave it out. I think the merchant can easily be modified to append such an argument when offering a link for clicking.

All agree?
(0019605)
sebasjm   
2023-01-07 14:59   
I prefer not to add an extra parameter in QR more, there should be a default behavior that cover both use cases in a good enough experience.

My suggestion:
 * after payment is done we add a successful payment screen with
  -- "ok" button (go back to the wallet)
  -- "close" (close the wallet)
  -- "continue to" (follow the fulfillment url)

That I think solve what grote raise as security issue (we are not redirecting without user consent)
Also, in the use-desktop-pay-with-mobile scenario the user will see the successful screen, the browser will reload showing the article, and can use the "close" button (since the wallet is just being summoned for the payment)
If the scenario is navigating-with-mobile-and-payment, the "continue to" button or link will redirect to the article using the fulfillment url

The "ok" button there if the user want to check balance before closing.

What about that? (main idea: convention over configuration)
(0019606)
Christian Grothoff   
2023-01-07 17:24   
Not good, as 'continue to' would be shown but would NOT work! The payment is session bound, so the browser would open but shown an error. So telling the wallet that the payment is for an article on another device (media-break) is an important hint to drive the right UX.

I'm not sure the redirecting without user consent is an issue. The user consented to actually spend money already. If I can get you to do that, it's probably OK if I can ask you to open a web page ;-).

Now, the really funky case is where the user opened in a browser, paid by mobile, and then _later_ wants to go back to the article on the mobile. Here, we'll need to open the browser, the browser will trigger the wallet, and then the wallet's repurchase detection has to change the payment in the merchant backend to the new session on the mobile and go back to the browser.

Still, with my extra taler://-URI argument, all of this is possible and we don't show the user 'strange' paths that don't work.
(0019607)
sebasjm   
2023-01-07 22:35   
> Not good, as 'continue to' would be shown but would NOT work! The payment is session bound, so the browser would open but shown an error.
Well, this is bad.
AFAIK the merchant front-office has a volatile session that is used to bound the payment with the article, if that session is lost the user will need to pay again?

If I ever payed for an article I would like to go back again even if I lost the session, isn't? That would mean that fulfillment URL should work in any setup. Like carrying the orderId and a prove of ownership in the request params (session-less)

> Now, the really funky case is where the user opened in a browser, paid by mobile, and then _later_ wants to go back to the article on the mobile.
This seems equal to the "continue to" plus a delay before clicking.

> I'm not sure the redirecting without user consent is an issue. The user consented to actually spend money already. If I can get you to do that, it's probably OK if I can ask you to open a web page ;-)

Sending a user to another app or external site (other than the wallet) should be warned.
Merchant input should be considered untrusted from the wallet perspective and this lead to open-redirect issues
https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html

> repurchase detection has to change the payment in the merchant backend to the new session on the mobile and go back to the browser
I don't have very clear how the repurchase work. Is this some missing feature what you are describing?
(0019608)
Christian Grothoff   
2023-01-07 23:01   
Repurchase detection is exactly the feature you are looking for, and is implemented. Basically, if you did already pay for an article, but in a different session, you are first asked to pay again. But once you try, the wallet detects that you did already pay before, and simply proves to the merchant that you paid before, and asks the merchant to change the session ID on the purchase to the current session. BUT what this means is that if the user switches devices, they will get asked to pay again first, and have to scan the QR code with the wallet (or see some jumping around if the browser can auto-trigger the wallet) to allow the wallet to see the repurchase and rebind the session.
(0020025)
Florian Dold   
2023-04-05 17:35   
I don't think that Christian's approach can work. How would the merchant decide whether it is a "media break" or not?
When I click on an article in the blog demo, the merchant doesn't know whether I'm gonna pay with the browser wallet or the phone wallet.

I'm proposing a different user experience: When going to the fulfillment URL, the merchant checks if there is a session mismatch.
If the session matches, the article is rendered.
On a mismatch, it offers to instead view the article in this browser. It then shows the QR code page.

That's one more step, but it IMHO makes the user experience much clearer.

And maybe the wallet can also add additional information to the fulfillment URL to make clear that this is a repurchase.

IMHO we need to go back to the drawing board for the blog shop article, because it's currently both horribly complicated *and* not fully working.

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7791 [Taler] wallet (WebExtension) minor have not tried 2023-04-05 11:10 2023-04-05 17:06
Reporter: Florian Dold Platform:  
Assigned To: sebasjm OS:  
Priority: normal OS Version:  
Status: resolved Product Version:  
Product Build: Resolution: fixed  
Projection: none      
ETA: none Fixed in Version:  
    Target Version: 0.9.3  
Summary: wallet UI should show better error message when suggested exchange is not reachable
Description: Right now, when we are:
* withdrawing the first time and do not have an exchange for the currency yet, and
* the exchange is not reachable

the wallet shows a rather confusing error message, namely that there is no matching exchange *and the bank did not suggest one*, even though that is false.

Instead, we should show that we can't contact the exchange.

This might need some wallet-core support to get error messages from contacting possibly relevant exchanges.
Tags:
Steps To Reproduce:
Additional Information:
Attached Files:
Notes
(0020024)
sebasjm   
2023-04-05 17:06   
8eee38d55936c194637ecead302dde69ec0b9897

View Issue Details
ID: Category: Severity: Reproducibility: Date Submitted: Last Update:
7740 [Taler] wallet-core minor always 2023-03-05 02:11 2023-04-05 11:07
Reporter: Florian Dold Platform: