gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-merchant] branch master updated: fix #9376


From: gnunet
Subject: [taler-merchant] branch master updated: fix #9376
Date: Sun, 22 Dec 2024 13:36:30 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository merchant.

The following commit(s) were added to refs/heads/master by this push:
     new defba7f4 fix #9376
defba7f4 is described below

commit defba7f452f51385f79e3131db460f74af09e6ea
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Sun Dec 22 13:36:25 2024 +0100

    fix #9376
---
 src/backend/taler-merchant-httpd_exchanges.c  |  80 +--
 src/backenddb/pg_get_kyc_limits.c             |   4 +
 src/backenddb/pg_get_kyc_limits.h             |   2 +
 src/include/taler_merchantdb_plugin.h         | 739 +++++++++++++-------------
 src/merchant-tools/taler-merchant-benchmark.c |   5 +-
 src/testing/test_kyc_api.c                    |  72 ++-
 src/testing/test_merchant_api.conf            |   2 +-
 7 files changed, 469 insertions(+), 435 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_exchanges.c 
b/src/backend/taler-merchant-httpd_exchanges.c
index 618a80c3..75e62196 100644
--- a/src/backend/taler-merchant-httpd_exchanges.c
+++ b/src/backend/taler-merchant-httpd_exchanges.c
@@ -679,6 +679,7 @@ TMH_exchange_check_debit (
   bool have_kyc = false;
   struct TALER_Amount kyc_limit;
   bool unlimited = true;
+  bool no_access_token = true;
 
   if (NULL == keys)
     return GNUNET_SYSERR;
@@ -717,6 +718,7 @@ TMH_exchange_check_debit (
        account at this exchange, if we have any, apply them */
   }
   GNUNET_free (np.normalized_payto);
+  if (keys->kyc_enabled)
   {
     bool kyc_ok = false;
     json_t *jlimits = NULL;
@@ -727,6 +729,7 @@ TMH_exchange_check_debit (
                                  instance_id,
                                  exchange->url,
                                  &kyc_ok,
+                                 &no_access_token,
                                  &jlimits);
     GNUNET_break (qs >= 0);
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -797,45 +800,52 @@ TMH_exchange_check_debit (
     TALER_amount_min (max_amount,
                       max_amount,
                       &kyc_limit);
-  /* apply both deposit and transaction limits */
-  if ( (! have_kyc) &&
-       (TALER_EXCHANGE_keys_evaluate_zero_limits (
-          keys,
-          TALER_KYCLOGIC_KYC_TRIGGER_DEPOSIT) ||
-        TALER_EXCHANGE_keys_evaluate_zero_limits (
-          keys,
-          TALER_KYCLOGIC_KYC_TRIGGER_TRANSACTION)) )
+  if (keys->kyc_enabled)
   {
-    GNUNET_assert (GNUNET_OK ==
-                   TALER_amount_set_zero (
-                     max_amount->currency,
-                     max_amount));
-  }
-  else
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                "Evaluating default limits of %s\n",
-                exchange->url);
-    TALER_EXCHANGE_keys_evaluate_hard_limits (
-      keys,
-      TALER_KYCLOGIC_KYC_TRIGGER_DEPOSIT,
-      max_amount);
-    TALER_EXCHANGE_keys_evaluate_hard_limits (
-      keys,
-      TALER_KYCLOGIC_KYC_TRIGGER_TRANSACTION,
-      max_amount);
-    if (TALER_EXCHANGE_keys_evaluate_zero_limits (
-          keys,
-          TALER_KYCLOGIC_KYC_TRIGGER_DEPOSIT) ||
-        TALER_EXCHANGE_keys_evaluate_zero_limits (
-          keys,
-          TALER_KYCLOGIC_KYC_TRIGGER_TRANSACTION))
+    /* apply both deposit and transaction limits */
+    if ( (no_access_token) ||
+         ( (! have_kyc) &&
+           (TALER_EXCHANGE_keys_evaluate_zero_limits (
+              keys,
+              TALER_KYCLOGIC_KYC_TRIGGER_DEPOSIT) ||
+            TALER_EXCHANGE_keys_evaluate_zero_limits (
+              keys,
+              TALER_KYCLOGIC_KYC_TRIGGER_TRANSACTION)) ) )
     {
       GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                  "Operation is zero-limited by default\n");
+                  "KYC requirements of %s not satisfied\n",
+                  exchange->url);
       GNUNET_assert (GNUNET_OK ==
-                     TALER_amount_set_zero (max_amount->currency,
-                                            max_amount));
+                     TALER_amount_set_zero (
+                       max_amount->currency,
+                       max_amount));
+    }
+    else
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+                  "Evaluating default limits of %s\n",
+                  exchange->url);
+      TALER_EXCHANGE_keys_evaluate_hard_limits (
+        keys,
+        TALER_KYCLOGIC_KYC_TRIGGER_DEPOSIT,
+        max_amount);
+      TALER_EXCHANGE_keys_evaluate_hard_limits (
+        keys,
+        TALER_KYCLOGIC_KYC_TRIGGER_TRANSACTION,
+        max_amount);
+      if (TALER_EXCHANGE_keys_evaluate_zero_limits (
+            keys,
+            TALER_KYCLOGIC_KYC_TRIGGER_DEPOSIT) ||
+          TALER_EXCHANGE_keys_evaluate_zero_limits (
+            keys,
+            TALER_KYCLOGIC_KYC_TRIGGER_TRANSACTION))
+      {
+        GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+                    "Operation is zero-limited by default\n");
+        GNUNET_assert (GNUNET_OK ==
+                       TALER_amount_set_zero (max_amount->currency,
+                                              max_amount));
+      }
     }
   }
   return account_ok ? GNUNET_YES : GNUNET_NO;
diff --git a/src/backenddb/pg_get_kyc_limits.c 
b/src/backenddb/pg_get_kyc_limits.c
index 6d4f464b..8617698b 100644
--- a/src/backenddb/pg_get_kyc_limits.c
+++ b/src/backenddb/pg_get_kyc_limits.c
@@ -32,6 +32,7 @@ TMH_PG_get_kyc_limits (
   const char *instance_id,
   const char *exchange_url,
   bool *kyc_ok,
+  bool *no_access_token,
   json_t **jlimits)
 {
   struct PostgresClosure *pg = cls;
@@ -44,6 +45,8 @@ TMH_PG_get_kyc_limits (
   struct GNUNET_PQ_ResultSpec rs[] = {
     GNUNET_PQ_result_spec_bool ("kyc_ok",
                                 kyc_ok),
+    GNUNET_PQ_result_spec_bool ("no_access_token",
+                                no_access_token),
     GNUNET_PQ_result_spec_allow_null (
       TALER_PQ_result_spec_json ("jaccount_limits",
                                  jlimits),
@@ -57,6 +60,7 @@ TMH_PG_get_kyc_limits (
            "SELECT"
            " mk.kyc_ok"
            ",mk.jaccount_limits"
+           ",mk.access_token IS NULL AS no_access_token"
            " FROM merchant_kyc mk"
            " WHERE mk.exchange_url=$3"
            "   AND mk.account_serial="
diff --git a/src/backenddb/pg_get_kyc_limits.h 
b/src/backenddb/pg_get_kyc_limits.h
index 5ecd542e..238ec421 100644
--- a/src/backenddb/pg_get_kyc_limits.h
+++ b/src/backenddb/pg_get_kyc_limits.h
@@ -33,6 +33,7 @@
  * @param instance_id the instance for which to check
  * @param exchange_url base URL of the exchange
  * @param[out] kyc_ok true if no urgent KYC work must be done for this account
+ * @param[out] no_access_token true if we do not have a valid KYC access token 
(KYC auth missing)
  * @param[out] jlimits set to JSON array with AccountLimits, NULL if unknown 
(and likely defaults apply or KYC auth is urgently needed, see @a auth_ok)
  * @return database result code
  */
@@ -43,6 +44,7 @@ TMH_PG_get_kyc_limits (
   const char *instance_id,
   const char *exchange_url,
   bool *kyc_ok,
+  bool *no_access_token,
   json_t **jlimits);
 
 #endif
diff --git a/src/include/taler_merchantdb_plugin.h 
b/src/include/taler_merchantdb_plugin.h
index 5951758c..7d78a986 100644
--- a/src/include/taler_merchantdb_plugin.h
+++ b/src/include/taler_merchantdb_plugin.h
@@ -1390,7 +1390,7 @@ struct TALER_MERCHANTDB_Plugin
    * @param cls closure
    */
   enum GNUNET_GenericReturnValue
-  (*connect)(void *cls);
+    (*connect)(void *cls);
 
   /**
    * Drop merchant tables. Used for testcases and to reset the DB.
@@ -1399,7 +1399,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return #GNUNET_OK upon success; #GNUNET_SYSERR upon failure
    */
   enum GNUNET_GenericReturnValue
-  (*drop_tables)(void *cls);
+    (*drop_tables)(void *cls);
 
   /**
    * Initialize merchant tables
@@ -1408,7 +1408,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return #GNUNET_OK upon success; #GNUNET_SYSERR upon failure
    */
   enum GNUNET_GenericReturnValue
-  (*create_tables)(void *cls);
+    (*create_tables)(void *cls);
 
   /**
    * Register callback to be invoked on events of type @a es.
@@ -1471,8 +1471,8 @@ struct TALER_MERCHANTDB_Plugin
    * @return #GNUNET_OK on success
    */
   enum GNUNET_GenericReturnValue
-  (*start)(void *cls,
-           const char *name);
+    (*start)(void *cls,
+             const char *name);
 
   /**
    * Start a transaction with isolation level 'read committed'.
@@ -1483,8 +1483,8 @@ struct TALER_MERCHANTDB_Plugin
    * @return #GNUNET_OK on success
    */
   enum GNUNET_GenericReturnValue
-  (*start_read_committed)(void *cls,
-                          const char *name);
+    (*start_read_committed)(void *cls,
+                            const char *name);
 
   /**
    * Roll back the current transaction of a database connection.
@@ -1501,7 +1501,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*commit)(void *cls);
+    (*commit)(void *cls);
 
   /**
    * Lookup all of the instances this backend has configured.
@@ -1512,10 +1512,10 @@ struct TALER_MERCHANTDB_Plugin
    * @param cb_cls closure for @a cb
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_instances)(void *cls,
-                      bool active_only,
-                      TALER_MERCHANTDB_InstanceCallback cb,
-                      void *cb_cls);
+    (*lookup_instances)(void *cls,
+                        bool active_only,
+                        TALER_MERCHANTDB_InstanceCallback cb,
+                        void *cb_cls);
 
   /**
    * Lookup one of the instances this backend has configured.
@@ -1527,11 +1527,11 @@ struct TALER_MERCHANTDB_Plugin
    * @param cb_cls closure for @a cb
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_instance)(void *cls,
-                     const char *id,
-                     bool active_only,
-                     TALER_MERCHANTDB_InstanceCallback cb,
-                     void *cb_cls);
+    (*lookup_instance)(void *cls,
+                       const char *id,
+                       bool active_only,
+                       TALER_MERCHANTDB_InstanceCallback cb,
+                       void *cb_cls);
 
   /**
    * Lookup authentication data of an instance.
@@ -1541,9 +1541,9 @@ struct TALER_MERCHANTDB_Plugin
    * @param[out] ias where to store the auth data
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_instance_auth)(void *cls,
-                          const char *instance_id,
-                          struct TALER_MERCHANTDB_InstanceAuthSettings *ias);
+    (*lookup_instance_auth)(void *cls,
+                            const char *instance_id,
+                            struct TALER_MERCHANTDB_InstanceAuthSettings *ias);
 
 
   /**
@@ -1556,11 +1556,11 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_instance)(void *cls,
-                     const struct TALER_MerchantPublicKeyP *merchant_pub,
-                     const struct TALER_MerchantPrivateKeyP *merchant_priv,
-                     const struct TALER_MERCHANTDB_InstanceSettings *is,
-                     const struct TALER_MERCHANTDB_InstanceAuthSettings *ias);
+    (*insert_instance)(void *cls,
+                       const struct TALER_MerchantPublicKeyP *merchant_pub,
+                       const struct TALER_MerchantPrivateKeyP *merchant_priv,
+                       const struct TALER_MERCHANTDB_InstanceSettings *is,
+                       const struct TALER_MERCHANTDB_InstanceAuthSettings 
*ias);
 
   /**
    * Insert information about an instance's account into our database.
@@ -1570,7 +1570,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_account)(
+    (*insert_account)(
     void *cls,
     const struct TALER_MERCHANTDB_AccountDetails *account_details);
 
@@ -1587,7 +1587,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_login_token)(
+    (*insert_login_token)(
     void *cls,
     const char *id,
     const struct TALER_MERCHANTDB_LoginTokenP *token,
@@ -1607,7 +1607,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_login_token)(
+    (*select_login_token)(
     void *cls,
     const char *id,
     const struct TALER_MERCHANTDB_LoginTokenP *token,
@@ -1624,7 +1624,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_login_token)(
+    (*delete_login_token)(
     void *cls,
     const char *id,
     const struct TALER_MERCHANTDB_LoginTokenP *token);
@@ -1641,7 +1641,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*update_account)(
+    (*update_account)(
     void *cls,
     const char *id,
     const struct TALER_MerchantWireHashP *h_wire,
@@ -1659,7 +1659,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_accounts)(
+    (*select_accounts)(
     void *cls,
     const char *id,
     TALER_MERCHANTDB_AccountCallback cb,
@@ -1676,7 +1676,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_account)(
+    (*select_account)(
     void *cls,
     const char *id,
     const struct TALER_MerchantWireHashP *h_wire,
@@ -1693,7 +1693,7 @@ struct TALER_MERCHANTDB_Plugin
  * @return database result code
  */
   enum GNUNET_DB_QueryStatus
-  (*select_account_by_uri)(
+    (*select_account_by_uri)(
     void *cls,
     const char *id,
     struct TALER_FullPayto payto_uri,
@@ -1708,7 +1708,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_instance_private_key)(
+    (*delete_instance_private_key)(
     void *cls,
     const char *merchant_id);
 
@@ -1721,8 +1721,8 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*purge_instance)(void *cls,
-                    const char *merchant_id);
+    (*purge_instance)(void *cls,
+                      const char *merchant_id);
 
   /**
    * Update information about an instance into our database.
@@ -1732,8 +1732,8 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*update_instance)(void *cls,
-                     const struct TALER_MERCHANTDB_InstanceSettings *is);
+    (*update_instance)(void *cls,
+                       const struct TALER_MERCHANTDB_InstanceSettings *is);
 
   /**
    * Update information about an instance's authentication settings
@@ -1745,7 +1745,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*update_instance_auth)(
+    (*update_instance_auth)(
     void *cls,
     const char *merchant_id,
     const struct TALER_MERCHANTDB_InstanceAuthSettings *ias);
@@ -1759,9 +1759,9 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*inactivate_account)(void *cls,
-                        const char *merchant_id,
-                        const struct TALER_MerchantWireHashP *h_wire);
+    (*inactivate_account)(void *cls,
+                          const char *merchant_id,
+                          const struct TALER_MerchantWireHashP *h_wire);
 
 
   /**
@@ -1773,9 +1773,9 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*activate_account)(void *cls,
-                      const char *merchant_id,
-                      const struct TALER_MerchantWireHashP *h_wire);
+    (*activate_account)(void *cls,
+                        const char *merchant_id,
+                        const struct TALER_MerchantWireHashP *h_wire);
 
 
   /**
@@ -1792,7 +1792,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*account_kyc_get_status)(
+    (*account_kyc_get_status)(
     void *cls,
     const char *merchant_id,
     const struct TALER_MerchantWireHashP *h_wire,
@@ -1818,7 +1818,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_kyc_status)(
+    (*get_kyc_status)(
     void *cls,
     struct TALER_FullPayto merchant_account_uri,
     const char *instance_id,
@@ -1841,16 +1841,18 @@ struct TALER_MERCHANTDB_Plugin
    * @param instance_id the instance for which to check
    * @param exchange_url base URL of the exchange
    * @param[out] kyc_ok true if no urgent KYC work must be done for this 
account
+   * @param[out] no_access_token true if we do not have a valid KYC access 
token (KYC auth missing)
    * @param[out] jlimits set to JSON array with AccountLimits, NULL if unknown 
(and likely defaults apply or KYC auth is urgently needed, see @a auth_ok)
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_kyc_limits)(
+    (*get_kyc_limits)(
     void *cls,
     struct TALER_FullPayto merchant_account_uri,
     const char *instance_id,
     const char *exchange_url,
     bool *kyc_ok,
+    bool *no_access_token,
     json_t **jlimits);
 
 
@@ -1871,7 +1873,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*account_kyc_set_status)(
+    (*account_kyc_set_status)(
     void *cls,
     const char *merchant_id,
     const struct TALER_MerchantWireHashP *h_wire,
@@ -1898,7 +1900,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*account_kyc_set_failed) (
+    (*account_kyc_set_failed) (
     void *cls,
     const char *merchant_id,
     const struct TALER_MerchantWireHashP *h_wire,
@@ -1921,12 +1923,12 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_products)(void *cls,
-                     const char *instance_id,
-                     uint64_t offset,
-                     int64_t limit,
-                     TALER_MERCHANTDB_ProductsCallback cb,
-                     void *cb_cls);
+    (*lookup_products)(void *cls,
+                       const char *instance_id,
+                       uint64_t offset,
+                       int64_t limit,
+                       TALER_MERCHANTDB_ProductsCallback cb,
+                       void *cb_cls);
 
 
   /**
@@ -1939,10 +1941,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_all_products)(void *cls,
-                         const char *instance_id,
-                         TALER_MERCHANTDB_ProductCallback cb,
-                         void *cb_cls);
+    (*lookup_all_products)(void *cls,
+                           const char *instance_id,
+                           TALER_MERCHANTDB_ProductCallback cb,
+                           void *cb_cls);
 
   /**
    * Lookup details about a particular product.
@@ -1958,12 +1960,12 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_product)(void *cls,
-                    const char *instance_id,
-                    const char *product_id,
-                    struct TALER_MERCHANTDB_ProductDetails *pd,
-                    size_t *num_categories,
-                    uint64_t **categories);
+    (*lookup_product)(void *cls,
+                      const char *instance_id,
+                      const char *product_id,
+                      struct TALER_MERCHANTDB_ProductDetails *pd,
+                      size_t *num_categories,
+                      uint64_t **categories);
 
   /**
    * Delete information about a product. Note that the transaction must
@@ -1976,9 +1978,9 @@ struct TALER_MERCHANTDB_Plugin
    *           if locks prevent deletion OR product unknown
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_product)(void *cls,
-                    const char *instance_id,
-                    const char *product_id);
+    (*delete_product)(void *cls,
+                      const char *instance_id,
+                      const char *product_id);
 
   /**
    * Insert details about a particular product.
@@ -1996,15 +1998,15 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_product)(void *cls,
-                    const char *instance_id,
-                    const char *product_id,
-                    const struct TALER_MERCHANTDB_ProductDetails *pd,
-                    size_t num_cats,
-                    const uint64_t *cats,
-                    bool *no_instance,
-                    bool *conflict,
-                    ssize_t *no_cat);
+    (*insert_product)(void *cls,
+                      const char *instance_id,
+                      const char *product_id,
+                      const struct TALER_MERCHANTDB_ProductDetails *pd,
+                      size_t num_cats,
+                      const uint64_t *cats,
+                      bool *no_instance,
+                      bool *conflict,
+                      ssize_t *no_cat);
 
   /**
    * Update details about a particular product. Note that the
@@ -2028,18 +2030,18 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*update_product)(void *cls,
-                    const char *instance_id,
-                    const char *product_id,
-                    const struct TALER_MERCHANTDB_ProductDetails *pd,
-                    size_t num_cats,
-                    const uint64_t *cats,
-                    bool *no_instance,
-                    ssize_t *no_cat,
-                    bool *no_product,
-                    bool *lost_reduced,
-                    bool *sold_reduced,
-                    bool *stocked_reduced);
+    (*update_product)(void *cls,
+                      const char *instance_id,
+                      const char *product_id,
+                      const struct TALER_MERCHANTDB_ProductDetails *pd,
+                      size_t num_cats,
+                      const uint64_t *cats,
+                      bool *no_instance,
+                      ssize_t *no_cat,
+                      bool *no_product,
+                      bool *lost_reduced,
+                      bool *sold_reduced,
+                      bool *stocked_reduced);
 
   /**
    * Lock stocks of a particular product. Note that the transaction must
@@ -2055,12 +2057,12 @@ struct TALER_MERCHANTDB_Plugin
    *         product is unknown OR if there insufficient stocks remaining
    */
   enum GNUNET_DB_QueryStatus
-  (*lock_product)(void *cls,
-                  const char *instance_id,
-                  const char *product_id,
-                  const struct GNUNET_Uuid *uuid,
-                  uint64_t quantity,
-                  struct GNUNET_TIME_Timestamp expiration_time);
+    (*lock_product)(void *cls,
+                    const char *instance_id,
+                    const char *product_id,
+                    const struct GNUNET_Uuid *uuid,
+                    uint64_t quantity,
+                    struct GNUNET_TIME_Timestamp expiration_time);
 
 
   /**
@@ -2072,7 +2074,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*expire_locks)(void *cls);
+    (*expire_locks)(void *cls);
 
 
   /**
@@ -2087,10 +2089,10 @@ struct TALER_MERCHANTDB_Plugin
    *           if locks prevent deletion OR order unknown
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_order)(void *cls,
-                  const char *instance_id,
-                  const char *order_id,
-                  bool force);
+    (*delete_order)(void *cls,
+                    const char *instance_id,
+                    const char *order_id,
+                    bool force);
 
 
   /**
@@ -2107,12 +2109,12 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_order)(void *cls,
-                  const char *instance_id,
-                  const char *order_id,
-                  struct TALER_ClaimTokenP *claim_token,
-                  struct TALER_MerchantPostDataHashP *h_post_data,
-                  json_t **contract_terms);
+    (*lookup_order)(void *cls,
+                    const char *instance_id,
+                    const char *order_id,
+                    struct TALER_ClaimTokenP *claim_token,
+                    struct TALER_MerchantPostDataHashP *h_post_data,
+                    json_t **contract_terms);
 
 
   /**
@@ -2126,11 +2128,11 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_order_summary)(void *cls,
-                          const char *instance_id,
-                          const char *order_id,
-                          struct GNUNET_TIME_Timestamp *timestamp,
-                          uint64_t *order_serial);
+    (*lookup_order_summary)(void *cls,
+                            const char *instance_id,
+                            const char *order_id,
+                            struct GNUNET_TIME_Timestamp *timestamp,
+                            uint64_t *order_serial);
 
 
   /**
@@ -2144,11 +2146,11 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_orders)(void *cls,
-                   const char *instance_id,
-                   const struct TALER_MERCHANTDB_OrderFilter *of,
-                   TALER_MERCHANTDB_OrdersCallback cb,
-                   void *cb_cls);
+    (*lookup_orders)(void *cls,
+                     const char *instance_id,
+                     const struct TALER_MERCHANTDB_OrderFilter *of,
+                     TALER_MERCHANTDB_OrdersCallback cb,
+                     void *cb_cls);
 
 
   /**
@@ -2167,16 +2169,16 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_order)(void *cls,
-                  const char *instance_id,
-                  const char *order_id,
-                  const char *session_id,
-                  const struct TALER_MerchantPostDataHashP *h_post_data,
-                  struct GNUNET_TIME_Timestamp pay_deadline,
-                  const struct TALER_ClaimTokenP *claim_token,
-                  const json_t *contract_terms,
-                  const char *pos_key,
-                  enum TALER_MerchantConfirmationAlgorithm pos_algorithm);
+    (*insert_order)(void *cls,
+                    const char *instance_id,
+                    const char *order_id,
+                    const char *session_id,
+                    const struct TALER_MerchantPostDataHashP *h_post_data,
+                    struct GNUNET_TIME_Timestamp pay_deadline,
+                    const struct TALER_ClaimTokenP *claim_token,
+                    const json_t *contract_terms,
+                    const char *pos_key,
+                    enum TALER_MerchantConfirmationAlgorithm pos_algorithm);
 
 
   /**
@@ -2190,8 +2192,8 @@ struct TALER_MERCHANTDB_Plugin
    *   #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT indicates success
    */
   enum GNUNET_DB_QueryStatus
-  (*unlock_inventory)(void *cls,
-                      const struct GNUNET_Uuid *uuid);
+    (*unlock_inventory)(void *cls,
+                        const struct GNUNET_Uuid *uuid);
 
 
   /**
@@ -2207,11 +2209,11 @@ struct TALER_MERCHANTDB_Plugin
    *   #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT indicates success
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_order_lock)(void *cls,
-                       const char *instance_id,
-                       const char *order_id,
-                       const char *product_id,
-                       uint64_t quantity);
+    (*insert_order_lock)(void *cls,
+                         const char *instance_id,
+                         const char *order_id,
+                         const char *product_id,
+                         uint64_t quantity);
 
 
   /**
@@ -2229,7 +2231,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_contract_terms2)(
+    (*lookup_contract_terms2)(
     void *cls,
     const char *instance_id,
     const char *order_id,
@@ -2258,7 +2260,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_contract_terms3)(
+    (*lookup_contract_terms3)(
     void *cls,
     const char *instance_id,
     const char *order_id,
@@ -2284,7 +2286,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_contract_terms)(
+    (*lookup_contract_terms)(
     void *cls,
     const char *instance_id,
     const char *order_id,
@@ -2310,7 +2312,7 @@ struct TALER_MERCHANTDB_Plugin
    *          is malformed
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_contract_terms)(
+    (*insert_contract_terms)(
     void *cls,
     const char *instance_id,
     const char *order_id,
@@ -2334,10 +2336,10 @@ struct TALER_MERCHANTDB_Plugin
    *          is malformed
    */
   enum GNUNET_DB_QueryStatus
-  (*update_contract_terms)(void *cls,
-                           const char *instance_id,
-                           const char *order_id,
-                           json_t *contract_terms);
+    (*update_contract_terms)(void *cls,
+                             const char *instance_id,
+                             const char *order_id,
+                             json_t *contract_terms);
 
 
   /**
@@ -2354,10 +2356,10 @@ struct TALER_MERCHANTDB_Plugin
    *           if locks prevent deletion OR order unknown
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_contract_terms)(void *cls,
-                           const char *instance_id,
-                           const char *order_id,
-                           struct GNUNET_TIME_Relative legal_expiration);
+    (*delete_contract_terms)(void *cls,
+                             const char *instance_id,
+                             const char *order_id,
+                             struct GNUNET_TIME_Relative legal_expiration);
 
 
   /**
@@ -2372,11 +2374,12 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_deposits)(void *cls,
-                     const char *instance_id,
-                     const struct TALER_PrivateContractHashP *h_contract_terms,
-                     TALER_MERCHANTDB_DepositsCallback cb,
-                     void *cb_cls);
+    (*lookup_deposits)(void *cls,
+                       const char *instance_id,
+                       const struct TALER_PrivateContractHashP 
*h_contract_terms
+                       ,
+                       TALER_MERCHANTDB_DepositsCallback cb,
+                       void *cb_cls);
 
 
   /**
@@ -2391,7 +2394,7 @@ struct TALER_MERCHANTDB_Plugin
    * @param master_sig signature of @a master_pub over the @a exchange_pub and 
the dates
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_exchange_signkey)(
+    (*insert_exchange_signkey)(
     void *cls,
     const struct TALER_MasterPublicKeyP *master_pub,
     const struct TALER_ExchangePublicKeyP *exchange_pub,
@@ -2419,7 +2422,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_deposit_confirmation)(
+    (*insert_deposit_confirmation)(
     void *cls,
     const char *instance_id,
     struct GNUNET_TIME_Timestamp deposit_timestamp,
@@ -2449,7 +2452,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_deposit)(
+    (*insert_deposit)(
     void *cls,
     uint32_t offset,
     uint64_t deposit_confirmation_serial_id,
@@ -2471,11 +2474,11 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_refunds)(void *cls,
-                    const char *instance_id,
-                    const struct TALER_PrivateContractHashP *h_contract_terms,
-                    TALER_MERCHANTDB_RefundCallback rc,
-                    void *rc_cls);
+    (*lookup_refunds)(void *cls,
+                      const char *instance_id,
+                      const struct TALER_PrivateContractHashP 
*h_contract_terms,
+                      TALER_MERCHANTDB_RefundCallback rc,
+                      void *rc_cls);
 
 
   /**
@@ -2488,10 +2491,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_spent_tokens_by_order)(void *cls,
-                                  uint64_t order_serial,
-                                  TALER_MERCHANTDB_UsedTokensCallback cb,
-                                  void *cb_cls);
+    (*lookup_spent_tokens_by_order)(void *cls,
+                                    uint64_t order_serial,
+                                    TALER_MERCHANTDB_UsedTokensCallback cb,
+                                    void *cb_cls);
 
 
   /**
@@ -2506,7 +2509,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*mark_contract_paid)(
+    (*mark_contract_paid)(
     void *cls,
     const char *instance_id,
     const struct TALER_PrivateContractHashP *h_contract_terms,
@@ -2529,12 +2532,12 @@ struct TALER_MERCHANTDB_Plugin
    *        regardless of whether it actually increased the refund
    */
   enum GNUNET_DB_QueryStatus
-  (*refund_coin)(void *cls,
-                 const char *instance_id,
-                 const struct TALER_PrivateContractHashP *h_contract_terms,
-                 struct GNUNET_TIME_Timestamp refund_timestamp,
-                 const struct TALER_CoinSpendPublicKeyP *coin_pub,
-                 const char *reason);
+    (*refund_coin)(void *cls,
+                   const char *instance_id,
+                   const struct TALER_PrivateContractHashP *h_contract_terms,
+                   struct GNUNET_TIME_Timestamp refund_timestamp,
+                   const struct TALER_CoinSpendPublicKeyP *coin_pub,
+                   const char *reason);
 
 
   /**
@@ -2548,11 +2551,11 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_order_status)(void *cls,
-                         const char *instance_id,
-                         const char *order_id,
-                         struct TALER_PrivateContractHashP *h_contract_terms,
-                         bool *paid);
+    (*lookup_order_status)(void *cls,
+                           const char *instance_id,
+                           const char *order_id,
+                           struct TALER_PrivateContractHashP *h_contract_terms,
+                           bool *paid);
 
   /**
    * Retrieve contract terms given its @a order_serial
@@ -2566,13 +2569,13 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_order_status_by_serial)(void *cls,
-                                   const char *instance_id,
-                                   uint64_t order_serial,
-                                   char **order_id,
-                                   struct TALER_PrivateContractHashP *
-                                   h_contract_terms,
-                                   bool *paid);
+    (*lookup_order_status_by_serial)(void *cls,
+                                     const char *instance_id,
+                                     uint64_t order_serial,
+                                     char **order_id,
+                                     struct TALER_PrivateContractHashP *
+                                     h_contract_terms,
+                                     bool *paid);
 
 
   /**
@@ -2585,10 +2588,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_deposits_by_order)(void *cls,
-                              uint64_t order_serial,
-                              TALER_MERCHANTDB_DepositedCoinsCallback cb,
-                              void *cb_cls);
+    (*lookup_deposits_by_order)(void *cls,
+                                uint64_t order_serial,
+                                TALER_MERCHANTDB_DepositedCoinsCallback cb,
+                                void *cb_cls);
 
 
   /**
@@ -2602,7 +2605,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_transfer_details_by_order)(
+    (*lookup_transfer_details_by_order)(
     void *cls,
     uint64_t order_serial,
     TALER_MERCHANTDB_OrderTransferDetailsCallback cb,
@@ -2622,7 +2625,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*update_transfer_status)(
+    (*update_transfer_status)(
     void *cls,
     const char *exchange_url,
     const struct TALER_WireTransferIdentifierRawP *wtid,
@@ -2643,7 +2646,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*select_open_transfers)(
+    (*select_open_transfers)(
     void *cls,
     uint64_t limit,
     TALER_MERCHANTDB_OpenTransferCallback cb,
@@ -2659,9 +2662,9 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_deposit_to_transfer)(void *cls,
-                                uint64_t deposit_serial,
-                                const struct TALER_EXCHANGE_DepositData *dd);
+    (*insert_deposit_to_transfer)(void *cls,
+                                  uint64_t deposit_serial,
+                                  const struct TALER_EXCHANGE_DepositData *dd);
 
 
   /**
@@ -2672,8 +2675,8 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*mark_order_wired)(void *cls,
-                      uint64_t order_serial);
+    (*mark_order_wired)(void *cls,
+                        uint64_t order_serial);
 
 
   /**
@@ -2699,7 +2702,7 @@ struct TALER_MERCHANTDB_Plugin
    *        what was already refunded (idempotency!)
    */
   enum TALER_MERCHANTDB_RefundStatus
-  (*increase_refund)(
+    (*increase_refund)(
     void *cls,
     const char *instance_id,
     const char *order_id,
@@ -2720,7 +2723,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_refunds_detailed)(
+    (*lookup_refunds_detailed)(
     void *cls,
     const char *instance_id,
     const struct TALER_PrivateContractHashP *h_contract_terms,
@@ -2737,7 +2740,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_refund_proof)(
+    (*insert_refund_proof)(
     void *cls,
     uint64_t refund_serial,
     const struct TALER_ExchangeSignatureP *exchange_sig,
@@ -2756,7 +2759,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_spent_token)(
+    (*insert_spent_token)(
     void *cls,
     const struct TALER_PrivateContractHashP *
     h_contract_terms,
@@ -2776,7 +2779,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_issued_token)(
+    (*insert_issued_token)(
     void *cls,
     const struct TALER_PrivateContractHashP *h_contract_terms,
     const struct TALER_TokenIssuePublicKeyHashP *h_issue_pub,
@@ -2793,7 +2796,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_refund_proof)(
+    (*lookup_refund_proof)(
     void *cls,
     uint64_t refund_serial,
     struct TALER_ExchangeSignatureP *exchange_sig,
@@ -2814,7 +2817,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_order_by_fulfillment)(
+    (*lookup_order_by_fulfillment)(
     void *cls,
     const char *instance_id,
     const char *fulfillment_url,
@@ -2832,7 +2835,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*update_wirewatch_progress)(
+    (*update_wirewatch_progress)(
     void *cls,
     const char *instance,
     struct TALER_FullPayto payto_uri,
@@ -2848,7 +2851,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*select_wirewatch_accounts)(
+    (*select_wirewatch_accounts)(
     void *cls,
     TALER_MERCHANTDB_WirewatchWorkCallback cb,
     void *cb_cls);
@@ -2868,7 +2871,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_transfer)(
+    (*insert_transfer)(
     void *cls,
     const char *instance_id,
     const char *exchange_url,
@@ -2889,9 +2892,9 @@ struct TALER_MERCHANTDB_Plugin
    *           if deletion is prohibited OR transfer is unknown
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_transfer)(void *cls,
-                     const char *instance_id,
-                     uint64_t transfer_serial_id);
+    (*delete_transfer)(void *cls,
+                       const char *instance_id,
+                       uint64_t transfer_serial_id);
 
 
   /**
@@ -2905,9 +2908,9 @@ struct TALER_MERCHANTDB_Plugin
    *           if the transfer record exists
    */
   enum GNUNET_DB_QueryStatus
-  (*check_transfer_exists)(void *cls,
-                           const char *instance_id,
-                           uint64_t transfer_serial_id);
+    (*check_transfer_exists)(void *cls,
+                             const char *instance_id,
+                             uint64_t transfer_serial_id);
 
 
   /**
@@ -2920,10 +2923,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_account)(void *cls,
-                    const char *instance_id,
-                    struct TALER_FullPayto payto_uri,
-                    uint64_t *account_serial);
+    (*lookup_account)(void *cls,
+                      const char *instance_id,
+                      struct TALER_FullPayto payto_uri,
+                      uint64_t *account_serial);
 
 
   /**
@@ -2940,7 +2943,7 @@ struct TALER_MERCHANTDB_Plugin
    *   #GNUNET_DB_STATUS_SUCCESS_ONE_RESULT on success
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_transfer_details)(
+    (*insert_transfer_details)(
     void *cls,
     const char *instance_id,
     const char *exchange_url,
@@ -2964,7 +2967,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_wire_fee)(
+    (*lookup_wire_fee)(
     void *cls,
     const struct TALER_MasterPublicKeyP *master_pub,
     const char *wire_method,
@@ -2988,7 +2991,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_deposits_by_contract_and_coin)(
+    (*lookup_deposits_by_contract_and_coin)(
     void *cls,
     const char *instance_id,
     const struct TALER_PrivateContractHashP *h_contract_terms,
@@ -3015,7 +3018,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_transfer)(
+    (*lookup_transfer)(
     void *cls,
     const char *instance_id,
     const char *exchange_url,
@@ -3039,7 +3042,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*set_transfer_status_to_confirmed)(
+    (*set_transfer_status_to_confirmed)(
     void *cls,
     const char *instance_id,
     const char *exchange_url,
@@ -3058,7 +3061,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_transfer_summary)(
+    (*lookup_transfer_summary)(
     void *cls,
     const char *exchange_url,
     const struct TALER_WireTransferIdentifierRawP *wtid,
@@ -3077,7 +3080,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_transfer_details)(
+    (*lookup_transfer_details)(
     void *cls,
     const char *exchange_url,
     const struct TALER_WireTransferIdentifierRawP *wtid,
@@ -3102,7 +3105,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_transfers)(
+    (*lookup_transfers)(
     void *cls,
     const char *instance_id,
     struct TALER_FullPayto payto_uri,
@@ -3129,7 +3132,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*store_wire_fee_by_exchange)(
+    (*store_wire_fee_by_exchange)(
     void *cls,
     const struct TALER_MasterPublicKeyP *master_pub,
     const struct GNUNET_HashCode *h_wire_method,
@@ -3147,7 +3150,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_exchange_accounts)(
+    (*delete_exchange_accounts)(
     void *cls,
     const struct TALER_MasterPublicKeyP *master_pub);
 
@@ -3162,7 +3165,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_accounts_by_exchange)(
+    (*select_accounts_by_exchange)(
     void *cls,
     const struct TALER_MasterPublicKeyP *master_pub,
     TALER_MERCHANTDB_ExchangeAccountCallback cb,
@@ -3182,7 +3185,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_exchange_account)(
+    (*insert_exchange_account)(
     void *cls,
     const struct TALER_MasterPublicKeyP *master_pub,
     const struct TALER_FullPayto payto_uri,
@@ -3202,10 +3205,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_templates)(void *cls,
-                      const char *instance_id,
-                      TALER_MERCHANTDB_TemplatesCallback cb,
-                      void *cb_cls);
+    (*lookup_templates)(void *cls,
+                        const char *instance_id,
+                        TALER_MERCHANTDB_TemplatesCallback cb,
+                        void *cb_cls);
 
 
   /**
@@ -3219,10 +3222,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_template)(void *cls,
-                     const char *instance_id,
-                     const char *template_id,
-                     struct TALER_MERCHANTDB_TemplateDetails *td);
+    (*lookup_template)(void *cls,
+                       const char *instance_id,
+                       const char *template_id,
+                       struct TALER_MERCHANTDB_TemplateDetails *td);
 
   /**
    * Delete information about a template.
@@ -3234,9 +3237,9 @@ struct TALER_MERCHANTDB_Plugin
    *           if template unknown.
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_template)(void *cls,
-                     const char *instance_id,
-                     const char *template_id);
+    (*delete_template)(void *cls,
+                       const char *instance_id,
+                       const char *template_id);
 
 
   /**
@@ -3250,11 +3253,11 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_template)(void *cls,
-                     const char *instance_id,
-                     const char *template_id,
-                     uint64_t otp_serial_id,
-                     const struct TALER_MERCHANTDB_TemplateDetails *td);
+    (*insert_template)(void *cls,
+                       const char *instance_id,
+                       const char *template_id,
+                       uint64_t otp_serial_id,
+                       const struct TALER_MERCHANTDB_TemplateDetails *td);
 
 
   /**
@@ -3269,10 +3272,10 @@ struct TALER_MERCHANTDB_Plugin
    *         does not yet exist.
    */
   enum GNUNET_DB_QueryStatus
-  (*update_template)(void *cls,
-                     const char *instance_id,
-                     const char *template_id,
-                     const struct TALER_MERCHANTDB_TemplateDetails *td);
+    (*update_template)(void *cls,
+                       const char *instance_id,
+                       const char *template_id,
+                       const struct TALER_MERCHANTDB_TemplateDetails *td);
 
 
   /**
@@ -3285,9 +3288,9 @@ struct TALER_MERCHANTDB_Plugin
    *           if template unknown.
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_otp)(void *cls,
-                const char *instance_id,
-                const char *otp_id);
+    (*delete_otp)(void *cls,
+                  const char *instance_id,
+                  const char *otp_id);
 
   /**
    * Insert details about a particular OTP device.
@@ -3299,10 +3302,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_otp)(void *cls,
-                const char *instance_id,
-                const char *otp_id,
-                const struct TALER_MERCHANTDB_OtpDeviceDetails *td);
+    (*insert_otp)(void *cls,
+                  const char *instance_id,
+                  const char *otp_id,
+                  const struct TALER_MERCHANTDB_OtpDeviceDetails *td);
 
 
   /**
@@ -3317,10 +3320,10 @@ struct TALER_MERCHANTDB_Plugin
    *         does not yet exist.
    */
   enum GNUNET_DB_QueryStatus
-  (*update_otp)(void *cls,
-                const char *instance_id,
-                const char *otp_id,
-                const struct TALER_MERCHANTDB_OtpDeviceDetails *td);
+    (*update_otp)(void *cls,
+                  const char *instance_id,
+                  const char *otp_id,
+                  const struct TALER_MERCHANTDB_OtpDeviceDetails *td);
 
   /**
    * Lookup all of the OTP devices the given instance has configured.
@@ -3332,10 +3335,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_otp_devices)(void *cls,
-                        const char *instance_id,
-                        TALER_MERCHANTDB_OtpDeviceCallback cb,
-                        void *cb_cls);
+    (*lookup_otp_devices)(void *cls,
+                          const char *instance_id,
+                          TALER_MERCHANTDB_OtpDeviceCallback cb,
+                          void *cb_cls);
 
 
   /**
@@ -3349,10 +3352,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_otp)(void *cls,
-                const char *instance_id,
-                const char *otp_id,
-                struct TALER_MERCHANTDB_OtpDeviceDetails *td);
+    (*select_otp)(void *cls,
+                  const char *instance_id,
+                  const char *otp_id,
+                  struct TALER_MERCHANTDB_OtpDeviceDetails *td);
 
 
   /**
@@ -3364,10 +3367,10 @@ struct TALER_MERCHANTDB_Plugin
    * @param[out] serial set to the OTP device serial number   * @return 
database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_otp_serial)(void *cls,
-                       const char *instance_id,
-                       const char *otp_id,
-                       uint64_t *serial);
+    (*select_otp_serial)(void *cls,
+                         const char *instance_id,
+                         const char *otp_id,
+                         uint64_t *serial);
 
 
   /**
@@ -3380,9 +3383,9 @@ struct TALER_MERCHANTDB_Plugin
    *           if template unknown.
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_category)(void *cls,
-                     const char *instance_id,
-                     uint64_t category_id);
+    (*delete_category)(void *cls,
+                       const char *instance_id,
+                       uint64_t category_id);
 
   /**
    * Insert new product category.
@@ -3395,11 +3398,11 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_category)(void *cls,
-                     const char *instance_id,
-                     const char *category_name,
-                     const json_t *category_name_i18n,
-                     uint64_t *category_id);
+    (*insert_category)(void *cls,
+                       const char *instance_id,
+                       const char *category_name,
+                       const json_t *category_name_i18n,
+                       uint64_t *category_id);
 
 
   /**
@@ -3414,11 +3417,11 @@ struct TALER_MERCHANTDB_Plugin
    *         does not yet exist.
    */
   enum GNUNET_DB_QueryStatus
-  (*update_category)(void *cls,
-                     const char *instance_id,
-                     uint64_t category_id,
-                     const char *category_name,
-                     const json_t *category_name_i18n);
+    (*update_category)(void *cls,
+                       const char *instance_id,
+                       uint64_t category_id,
+                       const char *category_name,
+                       const json_t *category_name_i18n);
 
   /**
    * Lookup all of the product categories the given instance has configured.
@@ -3430,10 +3433,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_categories)(void *cls,
-                       const char *instance_id,
-                       TALER_MERCHANTDB_CategoriesCallback cb,
-                       void *cb_cls);
+    (*lookup_categories)(void *cls,
+                         const char *instance_id,
+                         TALER_MERCHANTDB_CategoriesCallback cb,
+                         void *cb_cls);
 
 
   /**
@@ -3449,12 +3452,12 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_category)(void *cls,
-                     const char *instance_id,
-                     uint64_t category_id,
-                     struct TALER_MERCHANTDB_CategoryDetails *cd,
-                     size_t *num_products,
-                     char **products);
+    (*select_category)(void *cls,
+                       const char *instance_id,
+                       uint64_t category_id,
+                       struct TALER_MERCHANTDB_CategoryDetails *cd,
+                       size_t *num_products,
+                       char **products);
 
 
   /**
@@ -3468,11 +3471,11 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_category_by_name)(void *cls,
-                             const char *instance_id,
-                             const char *category_name,
-                             json_t **name_i18n,
-                             uint64_t *category_id);
+    (*select_category_by_name)(void *cls,
+                               const char *instance_id,
+                               const char *category_name,
+                               json_t **name_i18n,
+                               uint64_t *category_id);
 
 
   /**
@@ -3485,10 +3488,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_webhooks)(void *cls,
-                     const char *instance_id,
-                     TALER_MERCHANTDB_WebhooksCallback cb,
-                     void *cb_cls);
+    (*lookup_webhooks)(void *cls,
+                       const char *instance_id,
+                       TALER_MERCHANTDB_WebhooksCallback cb,
+                       void *cb_cls);
 
 
   /**
@@ -3502,10 +3505,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_webhook)(void *cls,
-                    const char *instance_id,
-                    const char *webhook_id,
-                    struct TALER_MERCHANTDB_WebhookDetails *wb);
+    (*lookup_webhook)(void *cls,
+                      const char *instance_id,
+                      const char *webhook_id,
+                      struct TALER_MERCHANTDB_WebhookDetails *wb);
 
   /**
    * Delete information about a webhook.
@@ -3517,9 +3520,9 @@ struct TALER_MERCHANTDB_Plugin
    *           if webhook unknown.
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_webhook)(void *cls,
-                    const char *instance_id,
-                    const char *webhook_id);
+    (*delete_webhook)(void *cls,
+                      const char *instance_id,
+                      const char *webhook_id);
 
 
   /**
@@ -3532,10 +3535,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_webhook)(void *cls,
-                    const char *instance_id,
-                    const char *webhook_id,
-                    const struct TALER_MERCHANTDB_WebhookDetails *wb);
+    (*insert_webhook)(void *cls,
+                      const char *instance_id,
+                      const char *webhook_id,
+                      const struct TALER_MERCHANTDB_WebhookDetails *wb);
 
 
   /**
@@ -3550,10 +3553,10 @@ struct TALER_MERCHANTDB_Plugin
    *         does not yet exist.
    */
   enum GNUNET_DB_QueryStatus
-  (*update_webhook)(void *cls,
-                    const char *instance_id,
-                    const char *webhook_id,
-                    const struct TALER_MERCHANTDB_WebhookDetails *wb);
+    (*update_webhook)(void *cls,
+                      const char *instance_id,
+                      const char *webhook_id,
+                      const struct TALER_MERCHANTDB_WebhookDetails *wb);
 
   /**
    * Lookup webhook by event
@@ -3566,11 +3569,11 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_webhook_by_event)(void *cls,
-                             const char *instance_id,
-                             const char *event_type,
-                             TALER_MERCHANTDB_WebhookDetailCallback cb,
-                             void *cb_cls);
+    (*lookup_webhook_by_event)(void *cls,
+                               const char *instance_id,
+                               const char *event_type,
+                               TALER_MERCHANTDB_WebhookDetailCallback cb,
+                               void *cb_cls);
 
   /**
    * Insert webhook in the pending webhook.
@@ -3585,13 +3588,13 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_pending_webhook)(void *cls,
-                            const char *instance_id,
-                            uint64_t webhook_serial,
-                            const char *url,
-                            const char *http_method,
-                            const char *header,
-                            const char *body);
+    (*insert_pending_webhook)(void *cls,
+                              const char *instance_id,
+                              uint64_t webhook_serial,
+                              const char *url,
+                              const char *http_method,
+                              const char *header,
+                              const char *body);
   /**
    * Lookup the webhook that need to be send in priority. These webhooks are 
not successfully
    * send.
@@ -3602,9 +3605,9 @@ struct TALER_MERCHANTDB_Plugin
    */
   // WHERE next_attempt <= now ORDER BY next_attempt ASC
   enum GNUNET_DB_QueryStatus
-  (*lookup_pending_webhooks)(void *cls,
-                             TALER_MERCHANTDB_PendingWebhooksCallback cb,
-                             void *cb_cls);
+    (*lookup_pending_webhooks)(void *cls,
+                               TALER_MERCHANTDB_PendingWebhooksCallback cb,
+                               void *cb_cls);
 
   /**
    * Lookup future webhook in the pending webhook that need to be send.
@@ -3616,9 +3619,9 @@ struct TALER_MERCHANTDB_Plugin
    */
   // ORDER BY next_attempt ASC LIMIT 1
   enum GNUNET_DB_QueryStatus
-  (*lookup_future_webhook)(void *cls,
-                           TALER_MERCHANTDB_PendingWebhooksCallback cb,
-                           void *cb_cls);
+    (*lookup_future_webhook)(void *cls,
+                             TALER_MERCHANTDB_PendingWebhooksCallback cb,
+                             void *cb_cls);
 
   /**
    * Lookup all the webhooks in the pending webhook.
@@ -3633,12 +3636,12 @@ struct TALER_MERCHANTDB_Plugin
    */
   // WHERE webhook_pending_serial > min_row ORDER BY webhook_pending_serial 
ASC LIMIT max_results
   enum GNUNET_DB_QueryStatus
-  (*lookup_all_webhooks)(void *cls,
-                         const char *instance_id,
-                         uint64_t min_row,
-                         uint32_t max_results,
-                         TALER_MERCHANTDB_PendingWebhooksCallback cb,
-                         void *cb_cls);
+    (*lookup_all_webhooks)(void *cls,
+                           const char *instance_id,
+                           uint64_t min_row,
+                           uint32_t max_results,
+                           TALER_MERCHANTDB_PendingWebhooksCallback cb,
+                           void *cb_cls);
 
 
   /**
@@ -3650,9 +3653,9 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*update_pending_webhook)(void *cls,
-                            uint64_t webhook_pending_serial,
-                            struct GNUNET_TIME_Absolute next_attempt);
+    (*update_pending_webhook)(void *cls,
+                              uint64_t webhook_pending_serial,
+                              struct GNUNET_TIME_Absolute next_attempt);
   // maybe add: http status of failure?
 
 
@@ -3665,8 +3668,8 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_pending_webhook)(void *cls,
-                            uint64_t webhook_pending_serial);
+    (*delete_pending_webhook)(void *cls,
+                              uint64_t webhook_pending_serial);
 
 
   /**
@@ -3678,9 +3681,9 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*select_exchange_keys)(void *cls,
-                          const char *exchange_url,
-                          struct TALER_EXCHANGE_Keys **keys);
+    (*select_exchange_keys)(void *cls,
+                            const char *exchange_url,
+                            struct TALER_EXCHANGE_Keys **keys);
 
 
   /**
@@ -3691,8 +3694,8 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_exchange_keys)(void *cls,
-                          const struct TALER_EXCHANGE_Keys *keys);
+    (*insert_exchange_keys)(void *cls,
+                            const struct TALER_EXCHANGE_Keys *keys);
 
 
   /**
@@ -3705,10 +3708,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_token_families)(void *cls,
-                           const char *instance_id,
-                           TALER_MERCHANTDB_TokenFamiliesCallback cb,
-                           void *cb_cls);
+    (*lookup_token_families)(void *cls,
+                             const char *instance_id,
+                             TALER_MERCHANTDB_TokenFamiliesCallback cb,
+                             void *cb_cls);
 
   /**
    * Lookup details about a particular token family.
@@ -3721,10 +3724,10 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_token_family)(void *cls,
-                         const char *instance_id,
-                         const char *token_family_slug,
-                         struct TALER_MERCHANTDB_TokenFamilyDetails *details);
+    (*lookup_token_family)(void *cls,
+                           const char *instance_id,
+                           const char *token_family_slug,
+                           struct TALER_MERCHANTDB_TokenFamilyDetails 
*details);
 
   /**
    * Delete information about a token family.
@@ -3735,9 +3738,9 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_token_family)(void *cls,
-                         const char *instance_id,
-                         const char *token_family_slug);
+    (*delete_token_family)(void *cls,
+                           const char *instance_id,
+                           const char *token_family_slug);
 
   /**
    * Update details about a particular token family.
@@ -3750,7 +3753,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*update_token_family)(
+    (*update_token_family)(
     void *cls,
     const char *instance_id,
     const char *token_family_slug,
@@ -3767,7 +3770,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_token_family)(
+    (*insert_token_family)(
     void *cls,
     const char *instance_id,
     const char *token_family_slug,
@@ -3787,7 +3790,7 @@ struct TALER_MERCHANTDB_Plugin
   * @return database result code
   */
   enum GNUNET_DB_QueryStatus
-  (*lookup_token_family_key)(
+    (*lookup_token_family_key)(
     void *cls,
     const char *instance_id,
     const char *token_family_slug,
@@ -3809,7 +3812,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_token_family_keys)(
+    (*lookup_token_family_keys)(
     void *cls,
     const char *instance_id,
     const char *token_family_slug,
@@ -3834,7 +3837,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_token_family_key)(
+    (*insert_token_family_key)(
     void *cls,
     const char *merchant_id,
     const char *token_family_slug,
@@ -3856,7 +3859,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_pending_deposits)(
+    (*lookup_pending_deposits)(
     void *cls,
     const char *exchange_url,
     uint64_t limit,
@@ -3878,7 +3881,7 @@ struct TALER_MERCHANTDB_Plugin
    * @return database result code
    */
   enum GNUNET_DB_QueryStatus
-  (*update_deposit_confirmation_status)(
+    (*update_deposit_confirmation_status)(
     void *cls,
     uint64_t deposit_serial,
     bool wire_pending,
diff --git a/src/merchant-tools/taler-merchant-benchmark.c 
b/src/merchant-tools/taler-merchant-benchmark.c
index 48bf0d0b..4ee70a6f 100644
--- a/src/merchant-tools/taler-merchant-benchmark.c
+++ b/src/merchant-tools/taler-merchant-benchmark.c
@@ -539,12 +539,13 @@ main (int argc,
     }
   }
   if (NULL == exchange_bank_section)
-    exchange_bank_section = "exchange-account-1";
+    exchange_bank_section = GNUNET_strdup ("exchange-account-1");
   if (NULL == loglev)
-    loglev = "INFO";
+    loglev = GNUNET_strdup ("INFO");
   GNUNET_log_setup ("taler-merchant-benchmark",
                     loglev,
                     logfile);
+  GNUNET_free (loglev);
   if ( (! ordinary) &&
        (! corner) )
   {
diff --git a/src/testing/test_kyc_api.c b/src/testing/test_kyc_api.c
index 1e73bd7e..268b7970 100644
--- a/src/testing/test_kyc_api.c
+++ b/src/testing/test_kyc_api.c
@@ -191,6 +191,48 @@ run (void *cls,
       "create-reserve-1",
       "EUR:0",
       MHD_HTTP_OK),
+
+    /* KYC: we don't even know the legitimization UUID yet */
+    TALER_TESTING_cmd_merchant_kyc_get (
+      "kyc-pending-early",
+      merchant_url,
+      NULL,
+      NULL,
+      EXCHANGE_URL,
+      TALER_EXCHANGE_KLPT_NONE,
+      MHD_HTTP_OK,
+      true),
+    /* now we get the legi UUID by running taler-merchant-depositcheck */
+    TALER_TESTING_cmd_depositcheck (
+      "deposit-check",
+      CONFIG_FILE),
+
+    TALER_TESTING_cmd_merchant_get_instance (
+      "get-default-instance",
+      merchant_url,
+      NULL,
+      MHD_HTTP_OK,
+      "instance-create-default-setup"),
+    TALER_TESTING_cmd_admin_add_kycauth (
+      "merchant-kyc-auth-transfer",
+      "EUR:0.01",
+      &cred.ba,
+      merchant_payto,
+      "get-default-instance"),
+    CMD_EXEC_WIREWATCH (
+      "import-kyc-account-withdraw"),
+
+    TALER_TESTING_cmd_merchant_kyc_get (
+      "kyc-auth-done-check",
+      merchant_url,
+      NULL, /* default instance */
+      "instance-create-default-account", /* h_wire_ref: which account to query 
*/
+      EXCHANGE_URL,
+      TALER_EXCHANGE_KLPT_KYC_AUTH_TRANSFER,
+      MHD_HTTP_OK,
+      true),
+
+
     TALER_TESTING_cmd_merchant_post_orders2 (
       "create-proposal-1",
       cred.cfg,
@@ -211,20 +253,7 @@ run (void *cls,
       MHD_HTTP_OK,
       "create-proposal-1",
       NULL),
-    TALER_TESTING_cmd_merchant_get_instance (
-      "get-default-instance",
-      merchant_url,
-      NULL,
-      MHD_HTTP_OK,
-      "instance-create-default-setup"),
-    TALER_TESTING_cmd_admin_add_kycauth (
-      "merchant-kyc-auth-transfer",
-      "EUR:0.01",
-      &cred.ba,
-      merchant_payto,
-      "get-default-instance"),
-    CMD_EXEC_WIREWATCH (
-      "import-kyc-account-withdraw"),
+
     TALER_TESTING_cmd_merchant_pay_order (
       "deposit-simple",
       merchant_url,
@@ -247,21 +276,6 @@ run (void *cls,
     /* KYC: hence nothing happened at the bank yet: */
     TALER_TESTING_cmd_check_bank_empty (
       "check_bank_empty-2"),
-    /* KYC: we don't even know the legitimization UUID yet */
-    TALER_TESTING_cmd_merchant_kyc_get (
-      "kyc-pending-early",
-      merchant_url,
-      NULL,
-      NULL,
-      EXCHANGE_URL,
-      TALER_EXCHANGE_KLPT_NONE,
-      MHD_HTTP_OK,
-      true),
-    /* now we get the legi UUID by running taler-merchant-depositcheck */
-    TALER_TESTING_cmd_depositcheck (
-      "deposit-check",
-      CONFIG_FILE),
-    /* Now we should get a status of pending */
     TALER_TESTING_cmd_merchant_kyc_get (
       "kyc-pending",
       merchant_url,
diff --git a/src/testing/test_merchant_api.conf 
b/src/testing/test_merchant_api.conf
index 58245a4f..2de63f32 100644
--- a/src/testing/test_merchant_api.conf
+++ b/src/testing/test_merchant_api.conf
@@ -48,11 +48,11 @@ CURRENCY = EUR
 [exchange]
 CURRENCY = EUR
 CURRENCY_ROUND_UNIT = EUR:0.01
-AML_THRESHOLD = EUR:1000000
 PORT = 8081
 MASTER_PUBLIC_KEY = KHA6YSPRQV1ZFCF144SY8KJNR588XA8DA0F6510FKJW30DJFJNAG
 BASE_URL = "http://localhost:8081/";
 STEFAN_ABS = "EUR:5"
+ENABLE_KYC = NO
 
 [exchangedb-postgres]
 CONFIG = "postgres:///talercheck"

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]