View Issue Details

IDProjectCategoryView StatusLast Update
0005077Talerexchangepublic2021-09-02 18:14
ReporterChristian Grothoff Assigned ToChristian Grothoff  
Status closedResolutionfixed 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Versiongit (master) 
Target Version0.5Fixed in Version0.5 
Summary0005077: wirewatch should wire back transfers with invalid wtid
DescriptionIf the WTID is not well-formed, wirewatch should "automatically" send the money back. Note that it may be important to extend the wire plugin with an additional API for this, as the banking system must know that this back-transfer is to cancel the invalid incoming transfer (least the incoming transfer can be rolled back and the back-transfer is still valid!).

The test_taler_exchange_wirewatch should be extended to cover this case (trivial), and the plugin_wire_test's "bhist_cb" includes a NOTE pointing out the location in the code that likely needs to be modified; except that the modification should probably be to return the 'subject' as a 'char *' instead of a wtid (thereby removing the "if") and then have the wirewatch application deal with the subject->wtid conversion failure.
Additional InformationFor nicer testing, this also means the bank should support doing wire transfers with arbitrary subjects.
TagsNo tags attached.


related to 0005169 closedMarcello Stanisci bank Web interface should allow wire transfers between accounts *without* Taler 
related to 0005191 closedMarcello Stanisci Python bank needs to implement /reject API (and related updates) 


Christian Grothoff

2017-10-12 20:52

manager   ~0012474

This also relates to the wire plugin's API, as right now the API also returns "reserve_pub" wire subjects for *outgoing* wire transfers, which is nonsense.

Christian Grothoff

2017-11-12 15:45

manager   ~0012579

reserve_pub/wtid confusion in naming was fixed.

Current wire plugin API returns also wtid or wtid_s, depending on whether the WTID was well-formed.

Current wire plugin API has a method that allows rejection of incoming transfers, and taler-exchange-wirewatch now uses this if the wtid was invalid.

However, the 'test' wire plugin does not yet implement rejection, and the bank API, fakebank implementation and the real bank do not include an API for transfer rejection. So todo:

1) spec /reject API for bank
2) implement and test /reject API in bank lib & fakebank
3) use /reject API in test wire plugin
4) implement /reject API in bank.
5) implement 0005169
6) test wirewatch wire-back functionality in production with Python bank

Christian Grothoff

2017-12-06 19:24

manager   ~0012629

As cof commit 5540747..0426168
1) Specification done.
2) implementation in fakebank and bank lib done; testcase done
3) /reject use in test wire plugin done

(4) is now filed as 0005191.

Christian Grothoff

2017-12-10 16:02

manager   ~0012652

Test committed and works in d36de3b..6623afa

Christian Grothoff

2021-09-02 18:14

manager   ~0018289

Fix committed to master branch.

Related Changesets

exchange: master 04261689

2017-12-06 20:24

Christian Grothoff

Details Diff
largely fix 0005077 Affected Issues
mod - src/auditor/taler-wire-auditor.c Diff File
mod - src/bank-lib/ Diff File
mod - src/bank-lib/bank_api_admin.c Diff File
mod - src/bank-lib/bank_api_common.c Diff File
mod - src/bank-lib/bank_api_common.h Diff File
mod - src/bank-lib/bank_api_history.c Diff File
add - src/bank-lib/bank_api_reject.c Diff File
mod - src/bank-lib/fakebank.c Diff File
mod - src/bank-lib/test_bank_api.c Diff File
mod - src/bank-lib/test_bank_api_with_fakebank.c Diff File
mod - src/bank-lib/test_bank_interpreter.c Diff File
mod - src/bank-lib/test_bank_interpreter.h Diff File
mod - src/exchange/taler-exchange-wirewatch.c Diff File
mod - src/include/taler_bank_service.h Diff File
mod - src/include/taler_error_codes.h Diff File
mod - src/include/taler_fakebank_lib.h Diff File
mod - src/include/taler_wire_plugin.h Diff File
mod - src/wire/plugin_wire_test.c Diff File
mod - src/wire/test_wire_plugin_transactions_test.c Diff File

Issue History

Date Modified Username Field Change
2017-06-11 15:52 Christian Grothoff New Issue
2017-06-11 15:52 Christian Grothoff Status new => assigned
2017-06-11 15:52 Christian Grothoff Assigned To => Christian Grothoff
2017-10-01 09:53 Christian Grothoff Priority normal => high
2017-10-12 20:52 Christian Grothoff Note Added: 0012474
2017-11-12 15:45 Christian Grothoff Note Added: 0012579
2017-11-12 15:45 Christian Grothoff Relationship added related to 0005169
2017-12-06 12:47 Christian Grothoff Relationship added related to 0005191
2017-12-06 19:24 Christian Grothoff Note Added: 0012629
2017-12-06 19:24 Christian Grothoff Target Version 0.9 => 0.5
2017-12-10 16:02 Christian Grothoff Note Added: 0012652
2017-12-10 16:02 Christian Grothoff Status assigned => resolved
2017-12-10 16:02 Christian Grothoff Resolution open => fixed
2017-12-10 16:02 Christian Grothoff Fixed in Version => 0.5
2018-04-15 20:34 Christian Grothoff Status resolved => closed
2021-09-02 18:13 Christian Grothoff Changeset attached => Taler-exchange master 04261689
2021-09-02 18:14 Christian Grothoff Note Added: 0018289