Commit Graph

347 Commits

Author SHA1 Message Date
Christian Grothoff
202827ebda
merging Florian's changes with my wire changes 2018-04-15 12:20:00 +02:00
Florian Dold
1b3bf1a001
disable /keys cherrypicking until #5315 is addressed 2018-04-06 00:58:15 +02:00
Florian Dold
b48013bd56
fix compiler warning 2018-04-04 00:14:02 +02:00
Christian Grothoff
2b0f98dd4b
report which command failed 2018-04-02 17:16:04 +02:00
Christian Grothoff
e098dbf4dc
get filename instead of get_string, nicify some strings 2018-04-02 17:10:05 +02:00
Christian Grothoff
8ebb4cda07
fix NULL termination of fee list 2018-04-02 16:35:14 +02:00
Christian Grothoff
40a64e8f0c
fix post-merge FTBFS 2018-04-02 14:34:23 +02:00
Christian Grothoff
cb55c1a3af
Changing configuration structure to enable multiple accounts.
This change enables using multiple wire plugins at the same time.
Also, we now distinguish between the wire plugin (i.e. EBICS or
taler_bank) and the wire method (i.e. SEPA or x-taler-bank) that
the wire plugin is implementing.  The "taler-bank" wire method
was renamed from "test" to "x-taler-bank".

This also changes the format of the /wire response of the exchange,
as we now need to return multiple accounts.  Note that wire fees
are specified per wire method, not per wire account.

taler-exchange-keyup now automatically signs all of the /wire
responses in the location specified by the configuration.

Account identification in wire plugins was changed to use
payto://-URLs instead of method-specific JSON fields.  Signing
and validation of /wire responses was moved from each wire
plugin to a generic validation method in libtalerutil (crypto)
or libtalerjson (for JSON-formatted inputs).
Convenience methods were added to generate JSON for wire accounts
(salting, signing).

Various section and option names were adjusted to streamline the
configuration and make it more consistent overall.  Documentation
was updated as well.
2018-04-02 14:29:44 +02:00
Marcello Stanisci
3e191f3b08
still on gentle twister termination. 2018-03-26 21:43:25 +02:00
Marcello Stanisci
0056cb6d09
addressing leaks. 2018-03-21 17:13:27 +01:00
Marcello Stanisci
9cc813adec
build exchange url at (withdraw) command creation. 2018-03-21 17:13:27 +01:00
Marcello Stanisci
8fe985c767
address leaks. 2018-03-21 17:13:27 +01:00
Marcello Stanisci
7d4d3b3e9d
address leaks. 2018-03-21 17:13:26 +01:00
Marcello Stanisci
e364aa76e1
fix segfault. 2018-03-19 18:47:52 +01:00
Marcello Stanisci
4eb9bcfb0f
format output 2018-03-17 02:05:48 +01:00
Marcello Stanisci
094af3b679
Twisted tests scaffold. 2018-03-17 02:05:45 +01:00
Marcello Stanisci
a360d9c6a0
Test cases connect to the exchange via the base URL
they get from exchange/BASE_URL config value.  This way, the
twister can be easily put in the middle by making it
listen on the same port specified after the : of the
exchange/BASE_URL.
2018-02-28 16:59:39 +01:00
Marcello Stanisci
f1f5377003
static 2018-02-28 16:25:00 +01:00
Marcello Stanisci
ed8dfac6db
helpers return exchange base url from config. 2018-02-28 16:15:18 +01:00
Marcello Stanisci
663f26a1a2
fix reject test command. 2018-02-27 22:55:18 +01:00
Christian Grothoff
cfab4194f0
use more 'static' where applicable, use GNUNET_log instead of fprintf 2018-02-27 22:22:18 +01:00
Marcello Stanisci
b593d416d6
Bank-lib tests, using the new (libraries-based) style. 2018-02-26 14:12:46 +01:00
Marcello Stanisci
8d5cc9f550
denom pub trait made 'const' 2018-02-21 16:58:18 +01:00
Marcello Stanisci
1e6efdc5f0
no need for a "hash trait" here. Removing code. 2018-02-21 15:13:58 +01:00
Marcello Stanisci
3c9757a163
actually loading config 2018-02-21 12:41:22 +01:00
Marcello Stanisci
377f35fd7d
adding command to wire transfer to exchange by
reading a merchant instance's (reserve tip) private
key in order to construct the subject.
2018-02-21 12:23:45 +01:00
Marcello Stanisci
b09bd97c3b
test command "fakebank transfer"
takes exchange url in arguments
2018-02-21 09:56:49 +01:00
Marcello Stanisci
6ac3c6cd4d
bank-check test cmd offers exchange url as trait. 2018-02-19 15:38:21 +01:00
Marcello Stanisci
76ba8f1291
fix reserve creation with reference 2018-02-17 23:41:08 +01:00
Marcello Stanisci
844f39c85e
hash and public key traits. 2018-02-17 15:39:44 +01:00
Marcello Stanisci
d20c94d870
indent 2018-02-16 12:05:42 +01:00
Marcello Stanisci
7ffc6d0fb9
hash code trait 2018-02-16 11:59:32 +01:00
Marcello Stanisci
513a22c344
offering amount _objects_ as traits (a string version of
it was already implemented).  "Withdraw" command uses it.
2018-02-16 10:57:23 +01:00
Marcello Stanisci
63109b6910
paste leftover 2018-02-15 17:23:29 +01:00
Marcello Stanisci
d78f66d5e4
adding "order id" trait 2018-02-15 16:36:00 +01:00
Marcello Stanisci
5b1e17617f
offer url trait 2018-02-14 12:46:01 +01:00
Marcello Stanisci
fe6960cce8
Implement new traits-based tests. 2018-02-12 16:12:07 +01:00
Florian Dold
e318edb5e5
use url instead of uri consistently 2018-01-30 01:38:04 +01:00
Christian Grothoff
bb39c62dff
add missing cmd file 2018-01-21 20:16:14 +01:00
Christian Grothoff
de092c2c2b
make fakebank_url more robust 2018-01-21 20:10:05 +01:00
Christian Grothoff
652bb0f9c4
finish simplifying main by adding more helpers and macros 2018-01-21 19:57:09 +01:00
Christian Grothoff
8013c4b66a
use CONFIG_FILE macro 2018-01-21 19:25:12 +01:00
Christian Grothoff
3f930c0f6a
more wire transfer variants 2018-01-21 19:21:45 +01:00
Christian Grothoff
a252daa6a1
factor out more helpers 2018-01-21 19:11:27 +01:00
Christian Grothoff
d09beecc8f
integrate sigpipe with ain loop 2018-01-21 18:49:47 +01:00
Christian Grothoff
41cb8b4c51
integrate sigpipe with ain loop 2018-01-21 18:46:29 +01:00
Christian Grothoff
673e418c76
forgotten file 2018-01-21 18:45:19 +01:00
Christian Grothoff
bba0ec72fa
finish new withdraw command implementation 2018-01-21 16:27:58 +01:00
Christian Grothoff
6ba7747ac3
more traits 2018-01-21 16:01:08 +01:00
Christian Grothoff
82b0eda3ef
new test interpreter architecture, first draft 2018-01-21 15:39:48 +01:00
Christian Grothoff
5c3d25eb29
implement #5254 2018-01-18 16:55:16 +01:00
Christian Grothoff
bc7957f393
fix fakebank memory leak 2018-01-16 13:11:35 +01:00
Christian Grothoff
b31d803c16
add timestamp for /reserve/status deposit events 2018-01-15 15:19:31 +01:00
Christian Grothoff
57eb85976b
enable test for #5234 2018-01-04 11:57:11 +01:00
Christian Grothoff
77a58673ef
comment out extended test again 2018-01-04 10:39:13 +01:00
Christian Grothoff
5587732f52
fix auditor to properly verify wire fee signatures and more gracefully handle arithmetic amount issue 2018-01-04 00:41:19 +01:00
Christian Grothoff
dad63db5f9
extending test logic to detect refund issue (commented out for now) 2018-01-02 14:05:03 +01:00
Christian Grothoff
ff0d4bb6eb
add TALER_EXCHANGE_refund2, make sure fee test initializes all amounts; update ChangeLog 2018-01-01 23:28:19 +01:00
Christian Grothoff
4f2ad1051b
change 'f' to 'contribution' in /deposit 2018-01-01 22:28:49 +01:00
Christian Grothoff
229907c6e2
implement taler-bank-transfer, fixes #5195 2017-12-14 15:33:10 +01:00
Christian Grothoff
f7c9de73e1
remove _admin APIs from libtalerexchange 2017-12-14 13:42:25 +01:00
Christian Grothoff
c182b960f8
remove _admin APIs from libtalerexchange 2017-12-14 13:42:07 +01:00
Christian Grothoff
749c02fe37
bump protocol version of C client, we do support the new refresh 2017-12-10 19:03:11 +01:00
Christian Grothoff
6623afa2a3
add testcase for #5077 (passes), start to reduce use of exchange's admin/add/incoming (#5172, more to come) 2017-12-10 16:02:03 +01:00
Christian Grothoff
d36de3bdd6
add wirewatch command to testcase (not yet active), for #5077 2017-12-10 14:25:15 +01:00
Christian Grothoff
ff452e6033
check find_pk return value in test 2017-12-10 00:25:43 +01:00
Christian Grothoff
499247a480
fixing #5178 2017-11-29 20:23:08 +01:00
Christian Grothoff
6b4313da61
fix stupid ordering issue after refactoring 2017-10-31 22:59:34 +01:00
Christian Grothoff
beeece1d6a
add TALER_EXCHANGE_reserve_withdraw2 function for easy withdrawal of tips 2017-10-31 14:45:15 +01:00
Christian Grothoff
2f2930f1ba
major API refactoring, adding planchet generation and coin extraction APIs to the Taler crypto library, thereby simplifying code in withdraw, refresh, tipping, payback and testcases; slight API incompatibilities to previous versions are introduced 2017-10-31 14:02:54 +01:00
Christian Grothoff
ec8146de92
rename: TALER_setup_planchet -> TALER_planchet_setup_refresh 2017-10-31 12:44:17 +01:00
Christian Grothoff
a491a4709a
rename: TALER_FreshCoinP -> TALER_PlanchetSecretsP, and TALER_setup_fresh_coin -> TALER_setup_planchet 2017-10-31 12:38:14 +01:00
Christian Grothoff
9807e5c50c
releasing v0.4.0 2017-10-18 15:21:06 +02:00
Christian Grothoff
15e27abed5
doh, do not try to clean up after allocation failure 2017-10-06 22:10:32 +02:00
Christian Grothoff
a7746c8153
add assertion to be more defensive against buffer overflow (cannot happen, but this better protects against future changes) 2017-10-06 21:32:33 +02:00
Christian Grothoff
dc883f8556
add assertion to be more defensive against buffer overflow (cannot happen, but this better protects against future changes) 2017-10-06 21:27:58 +02:00
Christian Grothoff
06f5621fba
better logging if IBAN validation fails, also avoid potentially unbounded stack allocation 2017-10-06 21:04:56 +02:00
Christian Grothoff
dbab0c6587
check return value from TALER_amount_get_zero 2017-10-06 20:54:42 +02:00
Christian Grothoff
2f715c27f8
check return value from TALER_JSON_hash 2017-10-06 20:02:28 +02:00
Christian Grothoff
a0d410e01b
fix mapping of auditor sigs to DKs, avoid one hash operation by caching hash value 2017-09-26 15:05:27 +02:00
Christian Grothoff
a8de810bf7
simplify time conversion using strptime instead of manual hack, also check for timezone issues if we get unusual time values 2017-09-26 13:46:06 +02:00
Christian Grothoff
7cb48a720b
check json_array_append_new() return values, proper logging on errors 2017-09-26 12:30:24 +02:00
Christian Grothoff
e5a9b3ffa7
bump version of taler protocol we implement 2017-09-17 16:56:23 +02:00
Christian Grothoff
e328b44172
clean up /keys cherry picking logic, including changing the last_issue_date value to be in seconds 2017-09-17 16:53:14 +02:00
Christian Grothoff
f346e89ceb
(imperfect) test for #4840 2017-09-14 20:52:39 +02:00
Christian Grothoff
36a7ac723e
do keep signing over DKs even for cherry-picked /keys replies 2017-09-13 21:43:10 +02:00
Christian Grothoff
80a7fe9dcf
add logic to signal exchange to reload keys 2017-09-13 14:35:57 +02:00
Christian Grothoff
b46735fbaf
add argument to TALER_EXCHANGE_check_keys_current() to allow forcing the download 2017-09-13 14:08:11 +02:00
Christian Grothoff
e33d72683c
skeleton for /keys cherry picking testcase 2017-09-13 13:27:13 +02:00
Christian Grothoff
6d7645a99b
theoretically finished implementation of #4840 (/keys cherry picking), but by far not done testing 2017-09-13 01:14:31 +02:00
Christian Grothoff
7aa23a39bd
add support for #4840 (/keys cherry picking) to libtalerexchange 2017-09-12 15:34:38 +02:00
Christian Grothoff
d77c4160ec
implement logic to check protocol version compatibility (#5035) 2017-07-01 14:15:26 +02:00
Christian Grothoff
f048de9782
preparations for #4840 2017-06-29 20:46:52 +02:00
Christian Grothoff
3d701e8d2a
fix leaks and typos 2017-06-19 00:17:16 +02:00
Christian Grothoff
dea0f7c411
fixing #5010 for /reserve/withdraw 2017-06-19 00:17:16 +02:00
Christian Grothoff
16b7c26605
modify fakebank API to allow arbitrary subjects, not just well-fromed WTIDs 2017-06-11 15:25:59 +02:00
Christian Grothoff
0c522791fe
bump versions for release 2017-06-06 14:03:53 +02:00
Christian Grothoff
850d84a1b6
assert non-NULL 2017-06-05 18:05:01 +02:00
Christian Grothoff
1d40a01a1e
fix indentation 2017-06-05 00:17:40 +02:00
Christian Grothoff
2f74a5b00e
fix remaining leak from #5050 2017-06-04 12:24:51 +02:00
Christian Grothoff
4694810d9d
free auditor data on shutdown (#5050) 2017-06-04 12:13:30 +02:00
Christian Grothoff
59fd83b731
fix memory leaks (#5050) 2017-06-04 12:07:53 +02:00
Christian Grothoff
1e30d60a25
fixing misc doxygen issues 2017-06-04 11:30:43 +02:00
Christian Grothoff
b217058821
add version to keydata returned by libtalerexchange (#5035) 2017-06-01 23:00:06 +02:00
Florian Dold
85350ced32
rename proposal_data to contract_terms (see #4879) 2017-05-29 01:15:41 +02:00
Christian Grothoff
5dff30e20b
nicer logging 2017-05-12 22:41:29 +02:00
Christian Grothoff
f6f4b07bab
clean up debug logic 2017-05-11 11:43:50 +02:00
Christian Grothoff
43126e867a
acutally initialize num_auditors field, helps a lot... 2017-05-11 11:41:05 +02:00
Christian Grothoff
d5ddbb648c
fail hard if any auditor sig is wrong 2017-05-11 11:05:48 +02:00
Christian Grothoff
beee1fb689
generate auditor signatures in exchange-lib testcase, and handle problem with bogus revocation keys during startup more gracefully by terminating instead of looping 2017-05-11 10:56:15 +02:00
Christian Grothoff
7a259fb7bd
nicely handle error from json_dumps without assert 2017-05-09 13:28:01 +02:00
Christian Grothoff
20aad54c3e
remove dead transfer details field from reserves_in (API, exchangedb, etc.) 2017-05-08 13:18:36 +02:00
Christian Grothoff
5e36e520a5
updates to distinguish clearly between wtid and json transfer details 2017-05-08 12:44:40 +02:00
Christian Grothoff
0e73c0d451
check json_pack return value, just to be nice 2017-05-07 14:07:48 +02:00
Christian Grothoff
1ea22a37c6
add /history support to fakebank 2017-05-04 23:29:08 +02:00
Christian Grothoff
f4df63e448
adding support for transaction history to wire plugin API (#4959) 2017-05-04 18:35:53 +02:00
Christian Grothoff
27c921c7c4
finished implementing #4956 in principle, but not yet tested 2017-04-20 21:38:02 +02:00
Christian Grothoff
487237381d
fix misc doxygen issues 2017-04-20 07:49:56 +02:00
Christian Grothoff
c15ff78f0c
implementing #4956-support in libtalerexchange 2017-04-19 14:15:48 +02:00
Christian Grothoff
5e8ef38680
fixing #4980 2017-04-18 21:05:27 +02:00
Christian Grothoff
164c125528
introducing closing fee 2017-04-17 14:01:55 +02:00
Christian Grothoff
4d4ac495a4
test case of /payback done twice, handle 403-case in /payback handler, thereby also testing coin-with-payback history case in test logic (fixes #3887) 2017-04-16 02:39:11 +02:00
Christian Grothoff
1fe26d5d2e
also test reserve history after payback 2017-04-10 17:59:33 +02:00
Christian Grothoff
58463df9d2
fix test_exchangedb denomkeys test 2017-04-10 17:01:20 +02:00
Christian Grothoff
17a74ee707
expand /payback tests 2017-04-10 16:51:09 +02:00
Christian Grothoff
368b9f8fcb
add test case for #3887 2017-04-10 16:37:08 +02:00
Christian Grothoff
2684327176
preparations for testing /payback API 2017-04-10 01:24:05 +02:00
Christian Grothoff
cc3aa31732
implement #3887-handling in exchange-lib 2017-04-03 22:45:48 +02:00
Christian Grothoff
dbb2368403
mark TODOs for #3887 in exchange-lib 2017-04-03 16:49:38 +02:00
Christian Grothoff
29a2f9b345
implement rest of exchange logic for #3887 (return payback information in reserve and coin histories) 2017-04-03 16:40:31 +02:00
Christian Grothoff
b293bda4ac
implement DB plugin function to obtain reserve information, migrate logic to simplified API spec (#3887); use plugin API in /payback DB implementation 2017-04-01 23:43:55 +02:00
Christian Grothoff
c329b92ccf
implementing remaining /payback responses 2017-03-29 16:57:20 +02:00
Christian Grothoff
5aebc70da6
implement /payback-functions in libtalerexchange.so (new C file) 2017-03-29 15:45:18 +02:00
Christian Grothoff
722577835f
implement /payback-functions in libtalerexchange.so 2017-03-29 15:44:59 +02:00
Christian Grothoff
7ebacc6fbd
merge aggregator 2017-03-24 13:42:02 +01:00
Christian Grothoff
7ba2ee0966
test more of /wire, fix off-by-one 2017-03-06 17:36:10 +01:00
Christian Grothoff
92345d05e2
cover get more of /wire API in test case 2017-03-06 17:07:31 +01:00
Christian Grothoff
0e15a99504
implement #4937: allow extraction of fees 2017-03-04 18:45:25 +01:00
Christian Grothoff
e3dcc27b68
implementing/fixing #4933: check total_amount matches aggregated transactions 2017-03-04 17:53:04 +01:00
Christian Grothoff
6ab67a3a76
implementing #4929 2017-03-04 16:49:33 +01:00
Christian Grothoff
f406f96129
implement #4929: add wire transfer fee to /wire (but not yet charged by aggregator) 2017-03-03 20:31:29 +01:00
Christian Grothoff
4d2faa5ec9
changing wire plugin specification from [exchange]WIREFORMAT to [exchange-wire-PLUGIN]enable=YES/NO 2017-03-03 19:24:08 +01:00
Christian Grothoff
397c718809
implementing #4921: add base URL to wire transfers 2017-03-02 06:26:12 +01:00
Christian Grothoff
4d8942b818
fix expire header parsing if day-of-month is 7th due to field confusing (wday vs mday) 2017-03-02 05:53:02 +01:00
Christian Grothoff
3592083874
do not print warnings for perfectly expected status codes 2017-02-08 08:02:12 +01:00
Christian Grothoff
e9cdf641de
ensure testcase terminates if wget is not installed or launching httpd failed 2017-02-08 07:58:46 +01:00
Christian Grothoff
aca6003d42
skip test if binaries are not in PATH 2017-02-08 06:04:13 +01:00
Florian Dold
92246c3e88
remove transaction_id, only one payment per proposal allowed 2017-02-07 15:09:10 +01:00
Florian Dold
8c820b6916
contract terminology renaming (#4877) 2017-02-06 15:43:06 +01:00
Florian Dold
0bfb5b2509
Add option to initialized db, fixes 4858
Additionally remove the TESTRUN option, since the name is confusing and
doesn't match the original semantics (temp tables).
Test cases should now invoke the exchange httpd with the "-i" option.
2017-01-13 14:44:51 +01:00