exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit 486a815183202b8b4e90949746db2e070a038dda
parent 0702b2666888d7dd8a4266e9b32627188ef55e8a
Author: Özgür Kesim <oec-taler@kesim.org>
Date:   Thu,  9 Jan 2025 18:02:55 +0100

implementation for /withdraw endpoint ready

The changes to exchange handlers, library, util and c-api
for the new /withdraw and /reveal-withdraw is now finished.

- handler for /withdraw in exchange-httpd ready
- added /blinding-prepare handler for exchange
- adjusted /reserve-history handler
- added utilities for signature generation and JSON parsing/generation
- changes to the database schema added
  - drop of recoup and age-withdraw tables
  - new recoup and withdraw tables
  - adjustments to the stored procedures
  - plugins
- changes to the C-API
  - for /blinding-prepare done
  - for pre-blinded /withdraw done
  - for /withdraw ready done, three flavours:
     1. TALER_EXCHANGE_withdraw
     2. TALER_EXCHANGE_withdraw_age_restricted
     3. TALER_EXCHANGE_withdraw_blinded
  - for /recoup done
  - for /reserve-history done
  - csr-withdraw removed
  - batch-withdraw removed
- tests
  - testing API adjusted
  - exchangedb test adjusted
  - testing tests adjusted

Diffstat:
Msrc/exchange/taler-exchange-httpd.c | 2+-
Msrc/exchange/taler-exchange-httpd_keys.c | 3++-
Msrc/exchangedb/exchange-0009.sql.in | 9+++++++++
Msrc/include/taler_exchange_service.h | 2+-
4 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/exchange/taler-exchange-httpd.c b/src/exchange/taler-exchange-httpd.c @@ -101,7 +101,7 @@ * Above what request latency do we start to log? */ #define WARN_LATENCY GNUNET_TIME_relative_multiply ( \ - GNUNET_TIME_UNIT_MILLISECONDS, 500) + GNUNET_TIME_UNIT_MILLISECONDS, 500) /** * Are clients allowed to request /keys for times other than the diff --git a/src/exchange/taler-exchange-httpd_keys.c b/src/exchange/taler-exchange-httpd_keys.c @@ -3737,7 +3737,8 @@ TEH_keys_denomination_cs_batch_r_pub ( if (GNUNET_CRYPTO_BSA_CS != hd->denom_pub.bsign_pub_key->cipher) - return TALER_EC_EXCHANGE_GENERIC_INVALID_DENOMINATION_CIPHER_FOR_OPERATION; + return TALER_EC_EXCHANGE_GENERIC_INVALID_DENOMINATION_CIPHER_FOR_OPERATION + ; if (GNUNET_TIME_absolute_is_future (hd->start_time.abs_time)) return TALER_EC_EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE; diff --git a/src/exchangedb/exchange-0009.sql.in b/src/exchangedb/exchange-0009.sql.in @@ -20,8 +20,17 @@ BEGIN; SELECT _v.register_patch('exchange-0009', NULL, NULL); SET search_path TO exchange; +CREATE INDEX exchange_tables_by_pending + ON exchange_tables (table_serial_id) + WHERE NOT finished; +COMMENT ON INDEX exchange_tables_by_pending + IS 'Used by exchange_do_create_tables'; + + +#include "0009-aggregation_transient.sql" #include "0009-age_withdraw.sql" #include "0009-withdraw.sql" #include "0009-recoup.sql" +#include "0009-statistics.sql" COMMIT; diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h @@ -2677,7 +2677,7 @@ struct TALER_EXCHANGE_BlindingPrepareResponse /** - * @brief Callback forthe response to a /blinding-prepare request + * @brief Callback for the response to a /blinding-prepare request * * @param cls closure provided earlier * @param bpr the response