gnunet-svn
[Top][All Lists]
Advanced

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

[taler-exchange] branch master updated (acfb6b0e -> 4216d6f5)


From: gnunet
Subject: [taler-exchange] branch master updated (acfb6b0e -> 4216d6f5)
Date: Wed, 13 Dec 2023 14:53:00 +0100

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

oec pushed a change to branch master
in repository exchange.

    from acfb6b0e bump debian version
     new a9c54ef2 -use enum values as indices
     new aa19314c Merge branch 'master' of ssh://git.taler.net/exchange
     new 9f690352 Merge branch 'master' of ssh://git.taler.net/exchange
     new 7e233ba5 -need more dot graph nodes for doxygen
     new d3ed984b -initialize variable
     new 227dc29f [wip, #7267] more refined age commitment conflict response 
during deposit
     new c7b4e82b Merge branch 'master' of ssh://git.taler.net/exchange
     new 4216d6f5 Protocol version revision bump

The 8 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 doc/doxygen/taler.doxy                        |   2 +-
 src/auditor/taler-helper-auditor-wire.c       |   2 +-
 src/exchange/taler-exchange-httpd_config.h    |   2 +-
 src/exchange/taler-exchange-httpd_db.c        |   8 +-
 src/exchange/taler-exchange-httpd_responses.c |  32 +-
 src/exchange/taler-exchange-httpd_responses.h |   3 +
 src/exchangedb/pg_batch_ensure_coin_known.c   | 222 ++++---
 src/exchangedb/pg_ensure_coin_known.c         |  23 +-
 src/exchangedb/pg_get_coin_transactions.c     |  19 +-
 src/include/taler_exchangedb_plugin.h         | 812 ++++++++++++++------------
 10 files changed, 599 insertions(+), 526 deletions(-)

diff --git a/doc/doxygen/taler.doxy b/doc/doxygen/taler.doxy
index a9a2bfe9..6fd2a687 100644
--- a/doc/doxygen/taler.doxy
+++ b/doc/doxygen/taler.doxy
@@ -2644,7 +2644,7 @@ PLANTUML_INCLUDE_PATH  =
 # Minimum value: 0, maximum value: 10000, default value: 50.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-DOT_GRAPH_MAX_NODES    = 100
+DOT_GRAPH_MAX_NODES    = 1000
 
 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
graphs
 # generated by dot. A depth value of 3 means that only nodes reachable from the
diff --git a/src/auditor/taler-helper-auditor-wire.c 
b/src/auditor/taler-helper-auditor-wire.c
index de5acc48..babf4bf2 100644
--- a/src/auditor/taler-helper-auditor-wire.c
+++ b/src/auditor/taler-helper-auditor-wire.c
@@ -1057,7 +1057,7 @@ generate_report (void *cls,
   }
   else if (TALER_AML_NORMAL != rd->status)
   {
-    const char *sstatus;
+    const char *sstatus = "<undefined>";
     json_t *rep;
 
     switch (rd->status)
diff --git a/src/exchange/taler-exchange-httpd_config.h 
b/src/exchange/taler-exchange-httpd_config.h
index ea455172..f3e67e37 100644
--- a/src/exchange/taler-exchange-httpd_config.h
+++ b/src/exchange/taler-exchange-httpd_config.h
@@ -41,7 +41,7 @@
  *
  * Returned via both /config and /keys endpoints.
  */
-#define EXCHANGE_PROTOCOL_VERSION "17:0:0"
+#define EXCHANGE_PROTOCOL_VERSION "17:1:0"
 
 
 /**
diff --git a/src/exchange/taler-exchange-httpd_db.c 
b/src/exchange/taler-exchange-httpd_db.c
index a00a9785..5be12a50 100644
--- a/src/exchange/taler-exchange-httpd_db.c
+++ b/src/exchange/taler-exchange-httpd_db.c
@@ -22,6 +22,7 @@
 #include <pthread.h>
 #include <jansson.h>
 #include <gnunet/gnunet_json_lib.h>
+#include "taler_exchangedb_plugin.h"
 #include "taler_json_lib.h"
 #include "taler_mhd_lib.h"
 #include "taler_exchangedb_lib.h"
@@ -37,7 +38,7 @@ TEH_make_coin_known (const struct TALER_CoinPublicInfo *coin,
 {
   enum TALER_EXCHANGEDB_CoinKnownStatus cks;
   struct TALER_DenominationHashP h_denom_pub;
-  struct TALER_AgeCommitmentHash h_age_commitment;
+  struct TALER_AgeCommitmentHash h_age_commitment = {{{0}}};
 
   /* make sure coin is 'known' in database */
   cks = TEH_plugin->ensure_coin_known (TEH_plugin->cls,
@@ -69,10 +70,13 @@ TEH_make_coin_known (const struct TALER_CoinPublicInfo 
*coin,
       &h_denom_pub,
       &coin->coin_pub);
     return GNUNET_DB_STATUS_HARD_ERROR;
-  case TALER_EXCHANGEDB_CKS_AGE_CONFLICT:
+  case TALER_EXCHANGEDB_CKS_AGE_CONFLICT_EXPECTED_NULL:
+  case TALER_EXCHANGEDB_CKS_AGE_CONFLICT_EXPECTED_NON_NULL:
+  case TALER_EXCHANGEDB_CKS_AGE_CONFLICT_VALUE_DIFFERS:
     *mhd_ret = TEH_RESPONSE_reply_coin_age_commitment_conflict (
       connection,
       TALER_EC_EXCHANGE_GENERIC_COIN_CONFLICTING_AGE_HASH,
+      cks,
       &h_denom_pub,
       &coin->coin_pub,
       &h_age_commitment);
diff --git a/src/exchange/taler-exchange-httpd_responses.c 
b/src/exchange/taler-exchange-httpd_responses.c
index c1aa9db6..2d8dede5 100644
--- a/src/exchange/taler-exchange-httpd_responses.c
+++ b/src/exchange/taler-exchange-httpd_responses.c
@@ -23,9 +23,11 @@
  * @author Christian Grothoff
  */
 #include "platform.h"
+#include <gnunet/gnunet_json_lib.h>
 #include <microhttpd.h>
 #include <zlib.h>
 #include "taler-exchange-httpd_responses.h"
+#include "taler_exchangedb_plugin.h"
 #include "taler_util.h"
 #include "taler_json_lib.h"
 #include "taler_mhd_lib.h"
@@ -181,10 +183,31 @@ MHD_RESULT
 TEH_RESPONSE_reply_coin_age_commitment_conflict (
   struct MHD_Connection *connection,
   enum TALER_ErrorCode ec,
+  enum TALER_EXCHANGEDB_CoinKnownStatus status,
   const struct TALER_DenominationHashP *h_denom_pub,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-  const struct TALER_AgeCommitmentHash *h_age_commitment_hash)
+  const struct TALER_AgeCommitmentHash *h_age_commitment)
 {
+  const struct TALER_AgeCommitmentHash *hac = h_age_commitment;
+  const char *conflict_detail;
+
+  switch (status)
+  {
+
+  case TALER_EXCHANGEDB_CKS_AGE_CONFLICT_EXPECTED_NULL:
+    conflict_detail = "expected NULL age commitment hash";
+    hac = NULL;
+    break;
+  case TALER_EXCHANGEDB_CKS_AGE_CONFLICT_EXPECTED_NON_NULL:
+    conflict_detail = "unexpected NULL age commitment hash";
+    break;
+  case TALER_EXCHANGEDB_CKS_AGE_CONFLICT_VALUE_DIFFERS:
+    conflict_detail = "expected age commitment hash differs";
+    break;
+  default:
+    GNUNET_assert (0);
+  }
+
   return TALER_MHD_REPLY_JSON_PACK (
     connection,
     TALER_ErrorCode_get_http_status_safe (ec),
@@ -193,8 +216,11 @@ TEH_RESPONSE_reply_coin_age_commitment_conflict (
                                 coin_pub),
     GNUNET_JSON_pack_data_auto ("h_denom_pub",
                                 h_denom_pub),
-    GNUNET_JSON_pack_data_auto ("h_age_commitment_hash",
-                                h_age_commitment_hash)
+    GNUNET_JSON_pack_allow_null (
+      GNUNET_JSON_pack_data_auto ("expected_age_commitment_hash",
+                                  hac)),
+    GNUNET_JSON_pack_string ("conflict_detail",
+                             conflict_detail)
     );
 }
 
diff --git a/src/exchange/taler-exchange-httpd_responses.h 
b/src/exchange/taler-exchange-httpd_responses.h
index 5fe106e1..b10a7282 100644
--- a/src/exchange/taler-exchange-httpd_responses.h
+++ b/src/exchange/taler-exchange-httpd_responses.h
@@ -31,6 +31,7 @@
 #include "taler_error_codes.h"
 #include "taler-exchange-httpd.h"
 #include "taler-exchange-httpd_db.h"
+#include "taler_exchangedb_plugin.h"
 
 
 /**
@@ -167,6 +168,7 @@ TEH_RESPONSE_reply_coin_insufficient_funds (
  *
  * @param connection connection to the client
  * @param ec error code to return
+ * @param cks specific conflict type
  * @param h_denom_pub hash of the denomination of the coin
  * @param coin_pub public key of the coin
  * @param h_age_commitment hash of the age commitment as found in the database
@@ -176,6 +178,7 @@ MHD_RESULT
 TEH_RESPONSE_reply_coin_age_commitment_conflict (
   struct MHD_Connection *connection,
   enum TALER_ErrorCode ec,
+  enum TALER_EXCHANGEDB_CoinKnownStatus cks,
   const struct TALER_DenominationHashP *h_denom_pub,
   const struct TALER_CoinSpendPublicKeyP *coin_pub,
   const struct TALER_AgeCommitmentHash *h_age_commitment);
diff --git a/src/exchangedb/pg_batch_ensure_coin_known.c 
b/src/exchangedb/pg_batch_ensure_coin_known.c
index e4981306..aca2732c 100644
--- a/src/exchangedb/pg_batch_ensure_coin_known.c
+++ b/src/exchangedb/pg_batch_ensure_coin_known.c
@@ -17,10 +17,14 @@
  * @file exchangedb/pg_batch_ensure_coin_known.c
  * @brief Implementation of the batch_ensure_coin_known function for Postgres
  * @author Christian Grothoff
+ *
+ * FIXME: use the array support for postgres to simplify this code!
+ *
  */
 #include "platform.h"
 #include "taler_error_codes.h"
 #include "taler_dbevents.h"
+#include "taler_exchangedb_plugin.h"
 #include "taler_pq_lib.h"
 #include "pg_batch_ensure_coin_known.h"
 #include "pg_helper.h"
@@ -93,14 +97,37 @@ insert1 (struct PostgresClosure *pg,
     result[0].denom_conflict = true;
   }
 
-  if ( (! is_age_hash_null) &&
-       (0 != GNUNET_memcmp (&result[0].h_age_commitment,
-                            &coin->h_age_commitment)) )
+  if ( (! is_denom_pub_hash_null) &&
+       (0 != GNUNET_memcmp (&result[0].denom_hash,
+                            &coin[0].denom_pub_hash)) )
+  {
+    GNUNET_break_op (0);
+    result[0].denom_conflict = true;
+  }
+
+  result[0].age_conflict = TALER_AgeCommitmentHash_NoConflict;
+
+  if (is_age_hash_null != coin[0].no_age_commitment)
+  {
+    if (is_age_hash_null)
+    {
+      GNUNET_break_op (0);
+      result[0].age_conflict = TALER_AgeCommitmentHash_NullExpected;
+    }
+    else
+    {
+      GNUNET_break_op (0);
+      result[0].age_conflict = TALER_AgeCommitmentHash_ValueExpected;
+    }
+  }
+  else if ( (! is_age_hash_null) &&
+            (0 != GNUNET_memcmp (&result[0].h_age_commitment,
+                                 &coin[0].h_age_commitment)) )
   {
-    GNUNET_break (GNUNET_is_zero (&result[0].h_age_commitment));
     GNUNET_break_op (0);
-    result[0].age_conflict = true;
+    result[0].age_conflict = TALER_AgeCommitmentHash_ValueDiffers;
   }
+
   return qs;
 }
 
@@ -111,10 +138,8 @@ insert2 (struct PostgresClosure *pg,
          struct TALER_EXCHANGEDB_CoinInfo result[2])
 {
   enum GNUNET_DB_QueryStatus qs;
-  bool is_denom_pub_hash_null = false;
-  bool is_age_hash_null = false;
-  bool is_denom_pub_hash_null2 = false;
-  bool is_age_hash_null2 = false;
+  bool is_denom_pub_hash_null[2] = {false, false};
+  bool is_age_hash_null[2] = {false, false};
 
   PREPARE (pg,
            "batch2_known_coin",
@@ -150,11 +175,11 @@ insert2 (struct PostgresClosure *pg,
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash",
                                             &result[0].denom_hash),
-      &is_denom_pub_hash_null),
+      &is_denom_pub_hash_null[0]),
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash",
                                             &result[0].h_age_commitment),
-      &is_age_hash_null),
+      &is_age_hash_null[0]),
     GNUNET_PQ_result_spec_bool ("existed2",
                                 &result[1].existed),
     GNUNET_PQ_result_spec_uint64 ("known_coin_id2",
@@ -162,11 +187,11 @@ insert2 (struct PostgresClosure *pg,
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash2",
                                             &result[1].denom_hash),
-      &is_denom_pub_hash_null2),
+      &is_denom_pub_hash_null[1]),
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash2",
                                             &result[1].h_age_commitment),
-      &is_age_hash_null2),
+      &is_age_hash_null[1]),
     GNUNET_PQ_result_spec_end
   };
 
@@ -188,38 +213,40 @@ insert2 (struct PostgresClosure *pg,
     break; /* continued below */
   }
 
-  if ( (! is_denom_pub_hash_null) &&
-       (0 != GNUNET_memcmp (&result[0].denom_hash,
-                            &coin[0].denom_pub_hash)) )
+  for (int i = 0; i < 2; i++)
   {
-    GNUNET_break_op (0);
-    result[0].denom_conflict = true;
-  }
+    if ( (! is_denom_pub_hash_null[i]) &&
+         (0 != GNUNET_memcmp (&result[i].denom_hash,
+                              &coin[i].denom_pub_hash)) )
+    {
+      GNUNET_break_op (0);
+      result[i].denom_conflict = true;
+    }
 
-  if ( (! is_age_hash_null) &&
-       (0 != GNUNET_memcmp (&result[0].h_age_commitment,
-                            &coin[0].h_age_commitment)) )
-  {
-    GNUNET_break (GNUNET_is_zero (&result[0].h_age_commitment));
-    GNUNET_break_op (0);
-    result[0].age_conflict = true;
-  }
-  if ( (! is_denom_pub_hash_null2) &&
-       (0 != GNUNET_memcmp (&result[1].denom_hash,
-                            &coin[1].denom_pub_hash)) )
-  {
-    GNUNET_break_op (0);
-    result[1].denom_conflict = true;
-  }
+    result[i].age_conflict = TALER_AgeCommitmentHash_NoConflict;
 
-  if ( (! is_age_hash_null) &&
-       (0 != GNUNET_memcmp (&result[1].h_age_commitment,
-                            &coin[1].h_age_commitment)) )
-  {
-    GNUNET_break (GNUNET_is_zero (&result[1].h_age_commitment));
-    GNUNET_break_op (0);
-    result[1].age_conflict = true;
+    if (is_age_hash_null[i] != coin[i].no_age_commitment)
+    {
+      if (is_age_hash_null[i])
+      {
+        GNUNET_break_op (0);
+        result[i].age_conflict = TALER_AgeCommitmentHash_NullExpected;
+      }
+      else
+      {
+        GNUNET_break_op (0);
+        result[i].age_conflict = TALER_AgeCommitmentHash_ValueExpected;
+      }
+    }
+    else if ( (! is_age_hash_null[i]) &&
+              (0 != GNUNET_memcmp (&result[i].h_age_commitment,
+                                   &coin[i].h_age_commitment)) )
+    {
+      GNUNET_break_op (0);
+      result[i].age_conflict = TALER_AgeCommitmentHash_ValueDiffers;
+    }
   }
+
   return qs;
 }
 
@@ -230,14 +257,8 @@ insert4 (struct PostgresClosure *pg,
          struct TALER_EXCHANGEDB_CoinInfo result[4])
 {
   enum GNUNET_DB_QueryStatus qs;
-  bool is_denom_pub_hash_null = false;
-  bool is_age_hash_null = false;
-  bool is_denom_pub_hash_null2 = false;
-  bool is_age_hash_null2 = false;
-  bool is_denom_pub_hash_null3 = false;
-  bool is_age_hash_null3 = false;
-  bool is_denom_pub_hash_null4 = false;
-  bool is_age_hash_null4 = false;
+  bool is_denom_pub_hash_null[4] = {false, false, false, false};
+  bool is_age_hash_null[4] = {false, false, false, false};
   PREPARE (pg,
            "batch4_known_coin",
            "SELECT"
@@ -290,11 +311,11 @@ insert4 (struct PostgresClosure *pg,
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash",
                                             &result[0].denom_hash),
-      &is_denom_pub_hash_null),
+      &is_denom_pub_hash_null[0]),
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash",
                                             &result[0].h_age_commitment),
-      &is_age_hash_null),
+      &is_age_hash_null[0]),
     GNUNET_PQ_result_spec_bool ("existed2",
                                 &result[1].existed),
     GNUNET_PQ_result_spec_uint64 ("known_coin_id2",
@@ -302,11 +323,11 @@ insert4 (struct PostgresClosure *pg,
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash2",
                                             &result[1].denom_hash),
-      &is_denom_pub_hash_null2),
+      &is_denom_pub_hash_null[1]),
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash2",
                                             &result[1].h_age_commitment),
-      &is_age_hash_null2),
+      &is_age_hash_null[1]),
     GNUNET_PQ_result_spec_bool ("existed3",
                                 &result[2].existed),
     GNUNET_PQ_result_spec_uint64 ("known_coin_id3",
@@ -314,11 +335,11 @@ insert4 (struct PostgresClosure *pg,
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash3",
                                             &result[2].denom_hash),
-      &is_denom_pub_hash_null3),
+      &is_denom_pub_hash_null[2]),
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash3",
                                             &result[2].h_age_commitment),
-      &is_age_hash_null3),
+      &is_age_hash_null[2]),
     GNUNET_PQ_result_spec_bool ("existed4",
                                 &result[3].existed),
     GNUNET_PQ_result_spec_uint64 ("known_coin_id4",
@@ -326,11 +347,11 @@ insert4 (struct PostgresClosure *pg,
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("denom_pub_hash4",
                                             &result[3].denom_hash),
-      &is_denom_pub_hash_null4),
+      &is_denom_pub_hash_null[3]),
     GNUNET_PQ_result_spec_allow_null (
       GNUNET_PQ_result_spec_auto_from_type ("age_commitment_hash4",
                                             &result[3].h_age_commitment),
-      &is_age_hash_null4),
+      &is_age_hash_null[3]),
     GNUNET_PQ_result_spec_end
   };
 
@@ -352,69 +373,40 @@ insert4 (struct PostgresClosure *pg,
     break; /* continued below */
   }
 
-  if ( (! is_denom_pub_hash_null) &&
-       (0 != GNUNET_memcmp (&result[0].denom_hash,
-                            &coin[0].denom_pub_hash)) )
+  for (int i = 0; i < 4; i++)
   {
-    GNUNET_break_op (0);
-    result[0].denom_conflict = true;
-  }
-  if ( (! is_age_hash_null) &&
-       (0 != GNUNET_memcmp (&result[0].h_age_commitment,
-                            &coin[0].h_age_commitment)) )
-  {
-    GNUNET_break (GNUNET_is_zero (&result[0].h_age_commitment));
-    GNUNET_break_op (0);
-    result[0].age_conflict = true;
-  }
+    if ( (! is_denom_pub_hash_null[i]) &&
+         (0 != GNUNET_memcmp (&result[i].denom_hash,
+                              &coin[i].denom_pub_hash)) )
+    {
+      GNUNET_break_op (0);
+      result[i].denom_conflict = true;
+    }
 
-  if ( (! is_denom_pub_hash_null2) &&
-       (0 != GNUNET_memcmp (&result[1].denom_hash,
-                            &coin[1].denom_pub_hash)) )
-  {
-    GNUNET_break_op (0);
-    result[1].denom_conflict = true;
-  }
-  if ( (! is_age_hash_null2) &&
-       (0 != GNUNET_memcmp (&result[1].h_age_commitment,
-                            &coin[1].h_age_commitment)) )
-  {
-    GNUNET_break (GNUNET_is_zero (&result[1].h_age_commitment));
-    GNUNET_break_op (0);
-    result[1].age_conflict = true;
-  }
+    result[i].age_conflict = TALER_AgeCommitmentHash_NoConflict;
 
-  if ( (! is_denom_pub_hash_null3) &&
-       (0 != GNUNET_memcmp (&result[2].denom_hash,
-                            &coin[2].denom_pub_hash)) )
-  {
-    GNUNET_break_op (0);
-    result[2].denom_conflict = true;
-  }
-  if ( (! is_age_hash_null3) &&
-       (0 != GNUNET_memcmp (&result[2].h_age_commitment,
-                            &coin[2].h_age_commitment)) )
-  {
-    GNUNET_break (GNUNET_is_zero (&result[2].h_age_commitment));
-    GNUNET_break_op (0);
-    result[2].age_conflict = true;
+    if (is_age_hash_null[i] != coin[i].no_age_commitment)
+    {
+      if (is_age_hash_null[i])
+      {
+        GNUNET_break_op (0);
+        result[i].age_conflict = TALER_AgeCommitmentHash_NullExpected;
+      }
+      else
+      {
+        GNUNET_break_op (0);
+        result[i].age_conflict = TALER_AgeCommitmentHash_ValueExpected;
+      }
+    }
+    else if ( (! is_age_hash_null[i]) &&
+              (0 != GNUNET_memcmp (&result[i].h_age_commitment,
+                                   &coin[i].h_age_commitment)) )
+    {
+      GNUNET_break_op (0);
+      result[i].age_conflict = TALER_AgeCommitmentHash_ValueDiffers;
+    }
   }
 
-  if ( (! is_denom_pub_hash_null4) &&
-       (0 != GNUNET_memcmp (&result[3].denom_hash,
-                            &coin[3].denom_pub_hash)) )
-  {
-    GNUNET_break_op (0);
-    result[3].denom_conflict = true;
-  }
-  if ( (! is_age_hash_null4) &&
-       (0 != GNUNET_memcmp (&result[3].h_age_commitment,
-                            &coin[3].h_age_commitment)) )
-  {
-    GNUNET_break (GNUNET_is_zero (&result[3].h_age_commitment));
-    GNUNET_break_op (0);
-    result[3].age_conflict = true;
-  }
   return qs;
 }
 
diff --git a/src/exchangedb/pg_ensure_coin_known.c 
b/src/exchangedb/pg_ensure_coin_known.c
index 952acf24..307b8df5 100644
--- a/src/exchangedb/pg_ensure_coin_known.c
+++ b/src/exchangedb/pg_ensure_coin_known.c
@@ -21,6 +21,7 @@
 #include "platform.h"
 #include "taler_error_codes.h"
 #include "taler_dbevents.h"
+#include "taler_exchangedb_plugin.h"
 #include "taler_pq_lib.h"
 #include "pg_ensure_coin_known.h"
 #include "pg_helper.h"
@@ -143,13 +144,25 @@ TEH_PG_ensure_coin_known (void *cls,
     return TALER_EXCHANGEDB_CKS_DENOM_CONFLICT;
   }
 
-  if ( (! is_age_hash_null) &&
-       (0 != GNUNET_memcmp (h_age_commitment,
-                            &coin->h_age_commitment)) )
+  if (is_age_hash_null != coin->no_age_commitment)
+  {
+    if (is_age_hash_null)
+    {
+      GNUNET_break_op (0);
+      return TALER_EXCHANGEDB_CKS_AGE_CONFLICT_EXPECTED_NULL;
+    }
+    else
+    {
+      GNUNET_break_op (0);
+      return TALER_EXCHANGEDB_CKS_AGE_CONFLICT_EXPECTED_NON_NULL;
+    }
+  }
+  else if ( (! is_age_hash_null) &&
+            (0 != GNUNET_memcmp (h_age_commitment,
+                                 &coin->h_age_commitment)) )
   {
-    GNUNET_break (GNUNET_is_zero (h_age_commitment));
     GNUNET_break_op (0);
-    return TALER_EXCHANGEDB_CKS_AGE_CONFLICT;
+    return TALER_EXCHANGEDB_CKS_AGE_CONFLICT_VALUE_DIFFERS;
   }
 
   return TALER_EXCHANGEDB_CKS_PRESENT;
diff --git a/src/exchangedb/pg_get_coin_transactions.c 
b/src/exchangedb/pg_get_coin_transactions.c
index 421fb442..fef33a48 100644
--- a/src/exchangedb/pg_get_coin_transactions.c
+++ b/src/exchangedb/pg_get_coin_transactions.c
@@ -21,6 +21,7 @@
 #include "platform.h"
 #include "taler_error_codes.h"
 #include "taler_dbevents.h"
+#include "taler_exchangedb_plugin.h"
 #include "taler_pq_lib.h"
 #include "pg_get_coin_transactions.h"
 #include "pg_helper.h"
@@ -698,39 +699,39 @@ handle_history_entry (void *cls,
   struct CoinHistoryContext *chc = cls;
   struct PostgresClosure *pg = chc->pg;
   static const struct Work work[] = {
-    /** #TALER_EXCHANGEDB_TT_DEPOSIT */
+    [TALER_EXCHANGEDB_TT_DEPOSIT] =
     { "coin_deposits",
       "get_deposit_with_coin_pub",
       &add_coin_deposit },
-    /** #TALER_EXCHANGEDB_TT_MELT */
+    [TALER_EXCHANGEDB_TT_MELT] =
     { "refresh_commitments",
       "get_refresh_session_by_coin",
       &add_coin_melt },
-    /** #TALER_EXCHANGEDB_TT_PURSE_DEPOSIT */
+    [TALER_EXCHANGEDB_TT_PURSE_DEPOSIT] =
     { "purse_deposits",
       "get_purse_deposit_by_coin_pub",
       &add_coin_purse_deposit },
-    /** #TALER_EXCHANGEDB_TT_PURSE_REFUND */
+    [TALER_EXCHANGEDB_TT_PURSE_REFUND] =
     { "purse_decision",
       "get_purse_decision_by_coin_pub",
       &add_coin_purse_decision },
-    /** #TALER_EXCHANGEDB_TT_REFUND */
+    [TALER_EXCHANGEDB_TT_REFUND] =
     { "refunds",
       "get_refunds_by_coin",
       &add_coin_refund },
-    /** #TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP */
+    [TALER_EXCHANGEDB_TT_OLD_COIN_RECOUP] =
     { "recoup_refresh::OLD",
       "recoup_by_old_coin",
       &add_old_coin_recoup },
-    /** #TALER_EXCHANGEDB_TT_RECOUP */
+    [TALER_EXCHANGEDB_TT_RECOUP] =
     { "recoup",
       "recoup_by_coin",
       &add_coin_recoup },
-    /** #TALER_EXCHANGEDB_TT_RECOUP_REFRESH */
+    [TALER_EXCHANGEDB_TT_RECOUP_REFRESH] =
     { "recoup_refresh::NEW",
       "recoup_by_refreshed_coin",
       &add_coin_recoup_refresh },
-    /** #TALER_EXCHANGEDB_TT_RESERVE_OPEN */
+    [TALER_EXCHANGEDB_TT_RESERVE_OPEN] =
     { "reserves_open_deposits",
       "reserve_open_by_coin",
       &add_coin_reserve_open },
diff --git a/src/include/taler_exchangedb_plugin.h 
b/src/include/taler_exchangedb_plugin.h
index 6da27863..596764b1 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -29,6 +29,23 @@
 #include "taler_signatures.h"
 #include "taler_extensions_policy.h"
 
+/**
+ * The conflict that can occur for the age restriction
+ */
+enum TALER_EXCHANGEDB_AgeCommitmentHash_Conflict
+{
+  /* Value OK, no conflict */
+  TALER_AgeCommitmentHash_NoConflict    = 0,
+
+  /* Given hash had a value, but NULL (or zero) was expected */
+  TALER_AgeCommitmentHash_NullExpected  = 1,
+
+  /* Given hash was NULL, but value was expected */
+  TALER_AgeCommitmentHash_ValueExpected = 2,
+
+  /* Given hash differs from value in the known coin */
+  TALER_AgeCommitmentHash_ValueDiffers  = 3,
+};
 
 /**
  * Per-coin information returned when doing a batch insert.
@@ -63,11 +80,12 @@ struct TALER_EXCHANGEDB_CoinInfo
   bool denom_conflict;
 
   /**
-   * True if the known coin has a different age restriction;
+   * Indicates if and what kind of conflict with the age
+   * restriction of the known coin was present;
    * application will find age commitment of the already
    * known coin in @e h_age_commitment.
    */
-  bool age_conflict;
+  enum TALER_EXCHANGEDB_AgeCommitmentHash_Conflict age_conflict;
 };
 
 
@@ -3538,7 +3556,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return #GNUNET_OK upon success; #GNUNET_SYSERR upon failure
    */
   enum GNUNET_GenericReturnValue
-  (*drop_tables)(void *cls);
+    (*drop_tables)(void *cls);
 
   /**
    * Create the necessary tables if they are not present
@@ -3551,9 +3569,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return #GNUNET_OK upon success; #GNUNET_SYSERR upon failure
    */
   enum GNUNET_GenericReturnValue
-  (*create_tables)(void *cls,
-                   bool support_partitions,
-                   uint32_t num_partitions);
+    (*create_tables)(void *cls,
+                     bool support_partitions,
+                     uint32_t num_partitions);
 
 
   /**
@@ -3565,8 +3583,8 @@ struct TALER_EXCHANGEDB_Plugin
    * @return #GNUNET_OK on success
    */
   enum GNUNET_GenericReturnValue
-  (*start)(void *cls,
-           const char *name);
+    (*start)(void *cls,
+             const char *name);
 
 
   /**
@@ -3578,8 +3596,8 @@ struct TALER_EXCHANGEDB_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);
 
   /**
    * Start a READ ONLY serializable transaction.
@@ -3590,8 +3608,8 @@ struct TALER_EXCHANGEDB_Plugin
    * @return #GNUNET_OK on success
    */
   enum GNUNET_GenericReturnValue
-  (*start_read_only)(void *cls,
-                     const char *name);
+    (*start_read_only)(void *cls,
+                       const char *name);
 
 
   /**
@@ -3601,7 +3619,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*commit)(void *cls);
+    (*commit)(void *cls);
 
 
   /**
@@ -3615,7 +3633,7 @@ struct TALER_EXCHANGEDB_Plugin
    *         #GNUNET_SYSERR on hard errors
    */
   enum GNUNET_GenericReturnValue
-  (*preflight)(void *cls);
+    (*preflight)(void *cls);
 
 
   /**
@@ -3682,7 +3700,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return status of the query
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_denomination_info)(
+    (*insert_denomination_info)(
     void *cls,
     const struct TALER_DenominationPublicKey *denom_pub,
     const struct TALER_EXCHANGEDB_DenominationKeyInformation *issue);
@@ -3697,7 +3715,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_denomination_info)(
+    (*get_denomination_info)(
     void *cls,
     const struct TALER_DenominationHashP *denom_pub_hash,
     struct TALER_EXCHANGEDB_DenominationKeyInformation *issue);
@@ -3715,9 +3733,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*iterate_denomination_info)(void *cls,
-                               TALER_EXCHANGEDB_DenominationCallback cb,
-                               void *cb_cls);
+    (*iterate_denomination_info)(void *cls,
+                                 TALER_EXCHANGEDB_DenominationCallback cb,
+                                 void *cb_cls);
 
 
   /**
@@ -3731,9 +3749,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*iterate_denominations)(void *cls,
-                           TALER_EXCHANGEDB_DenominationsCallback cb,
-                           void *cb_cls);
+    (*iterate_denominations)(void *cls,
+                             TALER_EXCHANGEDB_DenominationsCallback cb,
+                             void *cb_cls);
 
   /**
    * Function called to invoke @a cb on every non-revoked exchange signing key
@@ -3746,9 +3764,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*iterate_active_signkeys)(void *cls,
-                             TALER_EXCHANGEDB_ActiveSignkeysCallback cb,
-                             void *cb_cls);
+    (*iterate_active_signkeys)(void *cls,
+                               TALER_EXCHANGEDB_ActiveSignkeysCallback cb,
+                               void *cb_cls);
 
 
   /**
@@ -3761,9 +3779,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*iterate_active_auditors)(void *cls,
-                             TALER_EXCHANGEDB_AuditorsCallback cb,
-                             void *cb_cls);
+    (*iterate_active_auditors)(void *cls,
+                               TALER_EXCHANGEDB_AuditorsCallback cb,
+                               void *cb_cls);
 
 
   /**
@@ -3777,7 +3795,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*iterate_auditor_denominations)(
+    (*iterate_auditor_denominations)(
     void *cls,
     TALER_EXCHANGEDB_AuditorDenominationsCallback cb,
     void *cb_cls);
@@ -3793,8 +3811,8 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*reserves_get)(void *cls,
-                  struct TALER_EXCHANGEDB_Reserve *reserve);
+    (*reserves_get)(void *cls,
+                    struct TALER_EXCHANGEDB_Reserve *reserve);
 
 
   /**
@@ -3806,7 +3824,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*reserves_get_origin)(
+    (*reserves_get_origin)(
     void *cls,
     const struct TALER_ReservePublicKeyP *reserve_pub,
     struct TALER_PaytoHashP *h_payto);
@@ -3821,9 +3839,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*drain_kyc_alert)(void *cls,
-                     uint32_t trigger_type,
-                     struct TALER_PaytoHashP *h_payto);
+    (*drain_kyc_alert)(void *cls,
+                       uint32_t trigger_type,
+                       struct TALER_PaytoHashP *h_payto);
 
 
   /**
@@ -3837,7 +3855,7 @@ struct TALER_EXCHANGEDB_Plugin
    *             set to the status of the
    */
   enum GNUNET_DB_QueryStatus
-  (*reserves_in_insert)(
+    (*reserves_in_insert)(
     void *cls,
     const struct TALER_EXCHANGEDB_ReserveInInfo *reserves,
     unsigned int reserves_length,
@@ -3854,10 +3872,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return statement execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*lock_nonce)(void *cls,
-                const struct GNUNET_CRYPTO_CsSessionNonce *nonce,
-                const struct TALER_DenominationHashP *denom_pub_hash,
-                const union TALER_EXCHANGEDB_NonceLockTargetP *target);
+    (*lock_nonce)(void *cls,
+                  const struct GNUNET_CRYPTO_CsSessionNonce *nonce,
+                  const struct TALER_DenominationHashP *denom_pub_hash,
+                  const union TALER_EXCHANGEDB_NonceLockTargetP *target);
 
 
   /**
@@ -3872,9 +3890,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return statement execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_withdraw_info)(void *cls,
-                       const struct TALER_BlindedCoinHashP *bch,
-                       struct TALER_EXCHANGEDB_CollectableBlindcoin 
*collectable);
+    (*get_withdraw_info)(void *cls,
+                         const struct TALER_BlindedCoinHashP *bch,
+                         struct TALER_EXCHANGEDB_CollectableBlindcoin *
+                         collectable);
 
 
   /**
@@ -3905,7 +3924,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*do_batch_withdraw)(
+    (*do_batch_withdraw)(
     void *cls,
     struct GNUNET_TIME_Timestamp now,
     const struct TALER_ReservePublicKeyP *reserve_pub,
@@ -3934,7 +3953,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*do_batch_withdraw_insert)(
+    (*do_batch_withdraw_insert)(
     void *cls,
     const union GNUNET_CRYPTO_BlindSessionNonce *nonce,
     const struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable,
@@ -3956,7 +3975,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return statement execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_age_withdraw)(
+    (*get_age_withdraw)(
     void *cls,
     const struct TALER_ReservePublicKeyP *reserve_pub,
     const struct TALER_AgeWithdrawCommitmentHashP *ach,
@@ -3978,7 +3997,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*do_age_withdraw)(
+    (*do_age_withdraw)(
     void *cls,
     const struct TALER_EXCHANGEDB_AgeWithdraw *commitment,
     struct GNUNET_TIME_Timestamp now,
@@ -3999,7 +4018,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_policy_details)(
+    (*get_policy_details)(
     void *cls,
     const struct GNUNET_HashCode *hc,
     struct TALER_PolicyDetails *detail);
@@ -4017,7 +4036,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*persist_policy_details)(
+    (*persist_policy_details)(
     void *cls,
     const struct TALER_PolicyDetails *details,
     uint64_t *policy_details_serial_id,
@@ -4039,7 +4058,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*do_deposit)(
+    (*do_deposit)(
     void *cls,
     const struct TALER_EXCHANGEDB_BatchDeposit *bd,
     struct GNUNET_TIME_Timestamp *exchange_timestamp,
@@ -4062,7 +4081,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*do_melt)(
+    (*do_melt)(
     void *cls,
     const struct TALER_RefreshMasterSecretP *rms,
     struct TALER_EXCHANGEDB_Refresh *refresh,
@@ -4079,7 +4098,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*add_policy_fulfillment_proof)(
+    (*add_policy_fulfillment_proof)(
     void *cls,
     struct TALER_PolicyFulfillmentTransactionData *fulfillment);
 
@@ -4098,7 +4117,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*cs_refreshes_reveal)(
+    (*cs_refreshes_reveal)(
     void *cls,
     const struct GNUNET_CRYPTO_CsSessionNonce *nonce,
     const struct TALER_CoinSpendPublicKeyP *old_coin_pub,
@@ -4121,7 +4140,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*do_refund)(
+    (*do_refund)(
     void *cls,
     const struct TALER_EXCHANGEDB_Refund *refund,
     const struct TALER_Amount *deposit_fee,
@@ -4149,7 +4168,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*do_recoup)(
+    (*do_recoup)(
     void *cls,
     const struct TALER_ReservePublicKeyP *reserve_pub,
     uint64_t reserve_out_serial_id,
@@ -4179,7 +4198,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*do_recoup_refresh)(
+    (*do_recoup_refresh)(
     void *cls,
     const struct TALER_CoinSpendPublicKeyP *old_coin_pub,
     uint64_t rrc_serial,
@@ -4210,13 +4229,13 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_reserve_history)(void *cls,
-                         const struct TALER_ReservePublicKeyP *reserve_pub,
-                         uint64_t start_off,
-                         uint64_t etag_in,
-                         uint64_t *etag_out,
-                         struct TALER_Amount *balance,
-                         struct TALER_EXCHANGEDB_ReserveHistory **rhp);
+    (*get_reserve_history)(void *cls,
+                           const struct TALER_ReservePublicKeyP *reserve_pub,
+                           uint64_t start_off,
+                           uint64_t etag_in,
+                           uint64_t *etag_out,
+                           struct TALER_Amount *balance,
+                           struct TALER_EXCHANGEDB_ReserveHistory **rhp);
 
 
   /**
@@ -4228,9 +4247,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_reserve_balance)(void *cls,
-                         const struct TALER_ReservePublicKeyP *reserve_pub,
-                         struct TALER_Amount *balance);
+    (*get_reserve_balance)(void *cls,
+                           const struct TALER_ReservePublicKeyP *reserve_pub,
+                           struct TALER_Amount *balance);
 
 
   /**
@@ -4293,10 +4312,21 @@ struct TALER_EXCHANGEDB_Plugin
      */
     TALER_EXCHANGEDB_CKS_DENOM_CONFLICT = -3,
 
+    /**
+     * Conflicting coin (expected NULL age hash) already in database.
+     */
+    TALER_EXCHANGEDB_CKS_AGE_CONFLICT_EXPECTED_NULL = -4,
+
+    /**
+     * Conflicting coin (unexpected NULL age hash) already in database.
+     */
+    TALER_EXCHANGEDB_CKS_AGE_CONFLICT_EXPECTED_NON_NULL = -5,
+
     /**
      * Conflicting coin (different age hash) already in database.
      */
-    TALER_EXCHANGEDB_CKS_AGE_CONFLICT = -4,
+    TALER_EXCHANGEDB_CKS_AGE_CONFLICT_VALUE_DIFFERS = -6,
+
   }
   (*ensure_coin_known)(void *cls,
                        const struct TALER_CoinPublicInfo *coin,
@@ -4316,7 +4346,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status, non-negative on success
    */
   enum GNUNET_DB_QueryStatus
-  (*batch_ensure_coin_known)(
+    (*batch_ensure_coin_known)(
     void *cls,
     const struct TALER_CoinPublicInfo *coin,
     struct TALER_EXCHANGEDB_CoinInfo *result,
@@ -4332,9 +4362,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status, non-negative on success
    */
   enum GNUNET_DB_QueryStatus
-  (*get_known_coin)(void *cls,
-                    const struct TALER_CoinSpendPublicKeyP *coin_pub,
-                    struct TALER_CoinPublicInfo *coin_info);
+    (*get_known_coin)(void *cls,
+                      const struct TALER_CoinSpendPublicKeyP *coin_pub,
+                      struct TALER_CoinPublicInfo *coin_info);
 
 
   /**
@@ -4347,10 +4377,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_coin_denomination)(void *cls,
-                           const struct TALER_CoinSpendPublicKeyP *coin_pub,
-                           uint64_t *known_coin_id,
-                           struct TALER_DenominationHashP *denom_hash);
+    (*get_coin_denomination)(void *cls,
+                             const struct TALER_CoinSpendPublicKeyP *coin_pub,
+                             uint64_t *known_coin_id,
+                             struct TALER_DenominationHashP *denom_hash);
 
 
   /**
@@ -4370,7 +4400,7 @@ struct TALER_EXCHANGEDB_Plugin
    */
   // FIXME: rename!
   enum GNUNET_DB_QueryStatus
-  (*have_deposit2)(
+    (*have_deposit2)(
     void *cls,
     const struct TALER_PrivateContractHashP *h_contract_terms,
     const struct TALER_MerchantWireHashP *h_wire,
@@ -4390,8 +4420,8 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query result status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_refund)(void *cls,
-                   const struct TALER_EXCHANGEDB_Refund *refund);
+    (*insert_refund)(void *cls,
+                     const struct TALER_EXCHANGEDB_Refund *refund);
 
 
   /**
@@ -4406,12 +4436,14 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query result status
    */
   enum GNUNET_DB_QueryStatus
-  (*select_refunds_by_coin)(void *cls,
-                            const struct TALER_CoinSpendPublicKeyP *coin_pub,
-                            const struct TALER_MerchantPublicKeyP 
*merchant_pub,
-                            const struct TALER_PrivateContractHashP 
*h_contract,
-                            TALER_EXCHANGEDB_RefundCoinCallback cb,
-                            void *cb_cls);
+    (*select_refunds_by_coin)(void *cls,
+                              const struct TALER_CoinSpendPublicKeyP *coin_pub,
+                              const struct
+                              TALER_MerchantPublicKeyP *merchant_pub,
+                              const struct
+                              TALER_PrivateContractHashP *h_contract,
+                              TALER_EXCHANGEDB_RefundCoinCallback cb,
+                              void *cb_cls);
 
 
   /**
@@ -4428,11 +4460,11 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_ready_deposit)(void *cls,
-                       uint64_t start_shard_row,
-                       uint64_t end_shard_row,
-                       struct TALER_MerchantPublicKeyP *merchant_pub,
-                       char **payto_uri);
+    (*get_ready_deposit)(void *cls,
+                         uint64_t start_shard_row,
+                         uint64_t end_shard_row,
+                         struct TALER_MerchantPublicKeyP *merchant_pub,
+                         char **payto_uri);
 
 
   /**
@@ -4447,7 +4479,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*aggregate)(
+    (*aggregate)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     const struct TALER_MerchantPublicKeyP *merchant_pub,
@@ -4468,7 +4500,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*create_aggregation_transient)(
+    (*create_aggregation_transient)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     const char *exchange_account_section,
@@ -4490,7 +4522,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*select_aggregation_transient)(
+    (*select_aggregation_transient)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     const struct TALER_MerchantPublicKeyP *merchant_pub,
@@ -4509,7 +4541,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*find_aggregation_transient)(
+    (*find_aggregation_transient)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     TALER_EXCHANGEDB_TransientAggregationCallback cb,
@@ -4528,7 +4560,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*update_aggregation_transient)(
+    (*update_aggregation_transient)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     const struct TALER_WireTransferIdentifierRawP *wtid,
@@ -4546,7 +4578,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*delete_aggregation_transient)(
+    (*delete_aggregation_transient)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     const struct TALER_WireTransferIdentifierRawP *wtid);
@@ -4564,10 +4596,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_melt)(void *cls,
-              const struct TALER_RefreshCommitmentP *rc,
-              struct TALER_EXCHANGEDB_Melt *melt,
-              uint64_t *melt_serial_id);
+    (*get_melt)(void *cls,
+                const struct TALER_RefreshCommitmentP *rc,
+                struct TALER_EXCHANGEDB_Melt *melt,
+                uint64_t *melt_serial_id);
 
 
   /**
@@ -4585,7 +4617,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query status for the transaction
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_refresh_reveal)(
+    (*insert_refresh_reveal)(
     void *cls,
     uint64_t melt_serial_id,
     uint32_t num_rrcs,
@@ -4606,10 +4638,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_refresh_reveal)(void *cls,
-                        const struct TALER_RefreshCommitmentP *rc,
-                        TALER_EXCHANGEDB_RefreshCallback cb,
-                        void *cb_cls);
+    (*get_refresh_reveal)(void *cls,
+                          const struct TALER_RefreshCommitmentP *rc,
+                          TALER_EXCHANGEDB_RefreshCallback cb,
+                          void *cb_cls);
 
 
   /**
@@ -4625,10 +4657,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return statement execution status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_link_data)(void *cls,
-                   const struct TALER_CoinSpendPublicKeyP *coin_pub,
-                   TALER_EXCHANGEDB_LinkCallback ldc,
-                   void *tdc_cls);
+    (*get_link_data)(void *cls,
+                     const struct TALER_CoinSpendPublicKeyP *coin_pub,
+                     TALER_EXCHANGEDB_LinkCallback ldc,
+                     void *tdc_cls);
 
 
   /**
@@ -4652,7 +4684,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_coin_transactions)(
+    (*get_coin_transactions)(
     void *cls,
     const struct TALER_CoinSpendPublicKeyP *coin_pub,
     uint64_t start_off,
@@ -4685,10 +4717,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query status of the transaction
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_wire_transfer)(void *cls,
-                          const struct TALER_WireTransferIdentifierRawP *wtid,
-                          TALER_EXCHANGEDB_AggregationDataCallback cb,
-                          void *cb_cls);
+    (*lookup_wire_transfer)(void *cls,
+                            const struct TALER_WireTransferIdentifierRawP 
*wtid,
+                            TALER_EXCHANGEDB_AggregationDataCallback cb,
+                            void *cb_cls);
 
 
   /**
@@ -4713,7 +4745,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_transfer_by_deposit)(
+    (*lookup_transfer_by_deposit)(
     void *cls,
     const struct TALER_PrivateContractHashP *h_contract_terms,
     const struct TALER_MerchantWireHashP *h_wire,
@@ -4740,12 +4772,12 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_wire_fee)(void *cls,
-                     const char *wire_method,
-                     struct GNUNET_TIME_Timestamp start_date,
-                     struct GNUNET_TIME_Timestamp end_date,
-                     const struct TALER_WireFeeSet *fees,
-                     const struct TALER_MasterSignatureP *master_sig);
+    (*insert_wire_fee)(void *cls,
+                       const char *wire_method,
+                       struct GNUNET_TIME_Timestamp start_date,
+                       struct GNUNET_TIME_Timestamp end_date,
+                       const struct TALER_WireFeeSet *fees,
+                       const struct TALER_MasterSignatureP *master_sig);
 
 
   /**
@@ -4762,15 +4794,15 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_global_fee)(void *cls,
-                       struct GNUNET_TIME_Timestamp start_date,
-                       struct GNUNET_TIME_Timestamp end_date,
-                       const struct TALER_GlobalFeeSet *fees,
-                       struct GNUNET_TIME_Relative purse_timeout,
-                       struct GNUNET_TIME_Relative history_expiration,
-                       uint32_t purse_account_limit,
+    (*insert_global_fee)(void *cls,
+                         struct GNUNET_TIME_Timestamp start_date,
+                         struct GNUNET_TIME_Timestamp end_date,
+                         const struct TALER_GlobalFeeSet *fees,
+                         struct GNUNET_TIME_Relative purse_timeout,
+                         struct GNUNET_TIME_Relative history_expiration,
+                         uint32_t purse_account_limit,
 
-                       const struct TALER_MasterSignatureP *master_sig);
+                         const struct TALER_MasterSignatureP *master_sig);
 
 
   /**
@@ -4786,13 +4818,13 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query status of the transaction
    */
   enum GNUNET_DB_QueryStatus
-  (*get_wire_fee)(void *cls,
-                  const char *type,
-                  struct GNUNET_TIME_Timestamp date,
-                  struct GNUNET_TIME_Timestamp *start_date,
-                  struct GNUNET_TIME_Timestamp *end_date,
-                  struct TALER_WireFeeSet *fees,
-                  struct TALER_MasterSignatureP *master_sig);
+    (*get_wire_fee)(void *cls,
+                    const char *type,
+                    struct GNUNET_TIME_Timestamp date,
+                    struct GNUNET_TIME_Timestamp *start_date,
+                    struct GNUNET_TIME_Timestamp *end_date,
+                    struct TALER_WireFeeSet *fees,
+                    struct TALER_MasterSignatureP *master_sig);
 
 
   /**
@@ -4810,15 +4842,15 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query status of the transaction
    */
   enum GNUNET_DB_QueryStatus
-  (*get_global_fee)(void *cls,
-                    struct GNUNET_TIME_Timestamp date,
-                    struct GNUNET_TIME_Timestamp *start_date,
-                    struct GNUNET_TIME_Timestamp *end_date,
-                    struct TALER_GlobalFeeSet *fees,
-                    struct GNUNET_TIME_Relative *purse_timeout,
-                    struct GNUNET_TIME_Relative *history_expiration,
-                    uint32_t *purse_account_limit,
-                    struct TALER_MasterSignatureP *master_sig);
+    (*get_global_fee)(void *cls,
+                      struct GNUNET_TIME_Timestamp date,
+                      struct GNUNET_TIME_Timestamp *start_date,
+                      struct GNUNET_TIME_Timestamp *end_date,
+                      struct TALER_GlobalFeeSet *fees,
+                      struct GNUNET_TIME_Relative *purse_timeout,
+                      struct GNUNET_TIME_Relative *history_expiration,
+                      uint32_t *purse_account_limit,
+                      struct TALER_MasterSignatureP *master_sig);
 
 
   /**
@@ -4832,10 +4864,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_expired_reserves)(void *cls,
-                          struct GNUNET_TIME_Timestamp now,
-                          TALER_EXCHANGEDB_ReserveExpiredCallback rec,
-                          void *rec_cls);
+    (*get_expired_reserves)(void *cls,
+                            struct GNUNET_TIME_Timestamp now,
+                            TALER_EXCHANGEDB_ReserveExpiredCallback rec,
+                            void *rec_cls);
 
 
   /**
@@ -4850,7 +4882,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_unfinished_close_requests)(
+    (*get_unfinished_close_requests)(
     void *cls,
     TALER_EXCHANGEDB_ReserveExpiredCallback rec,
     void *rec_cls);
@@ -4871,7 +4903,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code, 0 if operation is already in the DB
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_reserve_open_deposit)(
+    (*insert_reserve_open_deposit)(
     void *cls,
     const struct TALER_CoinPublicInfo *cpi,
     const struct TALER_CoinSpendSignatureP *coin_sig,
@@ -4901,19 +4933,19 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*do_reserve_open)(void *cls,
-                     const struct TALER_ReservePublicKeyP *reserve_pub,
-                     const struct TALER_Amount *total_paid,
-                     const struct TALER_Amount *reserve_payment,
-                     uint32_t min_purse_limit,
-                     const struct TALER_ReserveSignatureP *reserve_sig,
-                     struct GNUNET_TIME_Timestamp desired_expiration,
-                     struct GNUNET_TIME_Timestamp now,
-                     const struct TALER_Amount *open_fee,
-                     bool *no_funds,
-                     struct TALER_Amount *reserve_balance,
-                     struct TALER_Amount *open_cost,
-                     struct GNUNET_TIME_Timestamp *final_expiration);
+    (*do_reserve_open)(void *cls,
+                       const struct TALER_ReservePublicKeyP *reserve_pub,
+                       const struct TALER_Amount *total_paid,
+                       const struct TALER_Amount *reserve_payment,
+                       uint32_t min_purse_limit,
+                       const struct TALER_ReserveSignatureP *reserve_sig,
+                       struct GNUNET_TIME_Timestamp desired_expiration,
+                       struct GNUNET_TIME_Timestamp now,
+                       const struct TALER_Amount *open_fee,
+                       bool *no_funds,
+                       struct TALER_Amount *reserve_balance,
+                       struct TALER_Amount *open_cost,
+                       struct GNUNET_TIME_Timestamp *final_expiration);
 
 
   /**
@@ -4929,7 +4961,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code, 0 if reserve unknown
    */
   enum GNUNET_DB_QueryStatus
-  (*select_reserve_close_info)(
+    (*select_reserve_close_info)(
     void *cls,
     const struct TALER_ReservePublicKeyP *reserve_pub,
     struct TALER_Amount *balance,
@@ -4952,7 +4984,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code, 0 if reserve unknown
    */
   enum GNUNET_DB_QueryStatus
-  (*select_reserve_close_request_info)(
+    (*select_reserve_close_request_info)(
     void *cls,
     const struct TALER_ReservePublicKeyP *reserve_pub,
     uint64_t rowid,
@@ -4976,7 +5008,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code, @a kac aborting with #GNUNET_NO is not 
an error
    */
   enum GNUNET_DB_QueryStatus
-  (*iterate_reserve_close_info)(
+    (*iterate_reserve_close_info)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     struct GNUNET_TIME_Absolute time_limit,
@@ -4998,14 +5030,15 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_reserve_closed)(void *cls,
-                           const struct TALER_ReservePublicKeyP *reserve_pub,
-                           struct GNUNET_TIME_Timestamp execution_date,
-                           const char *receiver_account,
-                           const struct TALER_WireTransferIdentifierRawP *wtid,
-                           const struct TALER_Amount *amount_with_fee,
-                           const struct TALER_Amount *closing_fee,
-                           uint64_t close_request_row);
+    (*insert_reserve_closed)(void *cls,
+                             const struct TALER_ReservePublicKeyP *reserve_pub,
+                             struct GNUNET_TIME_Timestamp execution_date,
+                             const char *receiver_account,
+                             const struct
+                             TALER_WireTransferIdentifierRawP *wtid,
+                             const struct TALER_Amount *amount_with_fee,
+                             const struct TALER_Amount *closing_fee,
+                             uint64_t close_request_row);
 
 
   /**
@@ -5018,10 +5051,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return query status code
    */
   enum GNUNET_DB_QueryStatus
-  (*wire_prepare_data_insert)(void *cls,
-                              const char *type,
-                              const char *buf,
-                              size_t buf_size);
+    (*wire_prepare_data_insert)(void *cls,
+                                const char *type,
+                                const char *buf,
+                                size_t buf_size);
 
 
   /**
@@ -5032,8 +5065,8 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*wire_prepare_data_mark_finished)(void *cls,
-                                     uint64_t rowid);
+    (*wire_prepare_data_mark_finished)(void *cls,
+                                       uint64_t rowid);
 
 
   /**
@@ -5044,8 +5077,8 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*wire_prepare_data_mark_failed)(void *cls,
-                                   uint64_t rowid);
+    (*wire_prepare_data_mark_failed)(void *cls,
+                                     uint64_t rowid);
 
 
   /**
@@ -5060,11 +5093,11 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*wire_prepare_data_get)(void *cls,
-                           uint64_t start_row,
-                           uint64_t limit,
-                           TALER_EXCHANGEDB_WirePreparationIterator cb,
-                           void *cb_cls);
+    (*wire_prepare_data_get)(void *cls,
+                             uint64_t start_row,
+                             uint64_t limit,
+                             TALER_EXCHANGEDB_WirePreparationIterator cb,
+                             void *cb_cls);
 
 
   /**
@@ -5076,7 +5109,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return #GNUNET_OK on success
    */
   enum GNUNET_GenericReturnValue
-  (*start_deferred_wire_out)(void *cls);
+    (*start_deferred_wire_out)(void *cls);
 
 
   /**
@@ -5093,7 +5126,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*store_wire_transfer_out)(
+    (*store_wire_transfer_out)(
     void *cls,
     struct GNUNET_TIME_Timestamp date,
     const struct TALER_WireTransferIdentifierRawP *wtid,
@@ -5111,7 +5144,7 @@ struct TALER_EXCHANGEDB_Plugin
    *         #GNUNET_SYSERR on DB errors
    */
   enum GNUNET_GenericReturnValue
-  (*gc)(void *cls);
+    (*gc)(void *cls);
 
 
   /**
@@ -5125,10 +5158,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_coin_deposits_above_serial_id)(void *cls,
-                                          uint64_t serial_id,
-                                          TALER_EXCHANGEDB_DepositCallback cb,
-                                          void *cb_cls);
+    (*select_coin_deposits_above_serial_id)(void *cls,
+                                            uint64_t serial_id,
+                                            TALER_EXCHANGEDB_DepositCallback 
cb,
+                                            void *cb_cls);
 
 
   /**
@@ -5142,7 +5175,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_purse_requests_above_serial_id)(
+    (*select_purse_requests_above_serial_id)(
     void *cls,
     uint64_t serial_id,
     TALER_EXCHANGEDB_PurseRequestCallback cb,
@@ -5160,7 +5193,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_purse_deposits_above_serial_id)(
+    (*select_purse_deposits_above_serial_id)(
     void *cls,
     uint64_t serial_id,
     TALER_EXCHANGEDB_PurseDepositCallback cb,
@@ -5178,7 +5211,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_account_merges_above_serial_id)(
+    (*select_account_merges_above_serial_id)(
     void *cls,
     uint64_t serial_id,
     TALER_EXCHANGEDB_AccountMergeCallback cb,
@@ -5196,7 +5229,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_purse_merges_above_serial_id)(
+    (*select_purse_merges_above_serial_id)(
     void *cls,
     uint64_t serial_id,
     TALER_EXCHANGEDB_PurseMergeCallback cb,
@@ -5215,7 +5248,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_purse_decisions_above_serial_id)(
+    (*select_purse_decisions_above_serial_id)(
     void *cls,
     uint64_t serial_id,
     bool refunded,
@@ -5234,7 +5267,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_all_purse_decisions_above_serial_id)(
+    (*select_all_purse_decisions_above_serial_id)(
     void *cls,
     uint64_t serial_id,
     TALER_EXCHANGEDB_AllPurseDecisionCallback cb,
@@ -5251,7 +5284,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_purse_deposits_by_purse)(
+    (*select_purse_deposits_by_purse)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     TALER_EXCHANGEDB_PurseRefundCoinCallback cb,
@@ -5269,10 +5302,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_refreshes_above_serial_id)(void *cls,
-                                      uint64_t serial_id,
-                                      TALER_EXCHANGEDB_RefreshesCallback cb,
-                                      void *cb_cls);
+    (*select_refreshes_above_serial_id)(void *cls,
+                                        uint64_t serial_id,
+                                        TALER_EXCHANGEDB_RefreshesCallback cb,
+                                        void *cb_cls);
 
 
   /**
@@ -5286,10 +5319,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_refunds_above_serial_id)(void *cls,
-                                    uint64_t serial_id,
-                                    TALER_EXCHANGEDB_RefundCallback cb,
-                                    void *cb_cls);
+    (*select_refunds_above_serial_id)(void *cls,
+                                      uint64_t serial_id,
+                                      TALER_EXCHANGEDB_RefundCallback cb,
+                                      void *cb_cls);
 
 
   /**
@@ -5303,10 +5336,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_reserves_in_above_serial_id)(void *cls,
-                                        uint64_t serial_id,
-                                        TALER_EXCHANGEDB_ReserveInCallback cb,
-                                        void *cb_cls);
+    (*select_reserves_in_above_serial_id)(void *cls,
+                                          uint64_t serial_id,
+                                          TALER_EXCHANGEDB_ReserveInCallback 
cb,
+                                          void *cb_cls);
 
 
   /**
@@ -5321,7 +5354,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_reserves_in_above_serial_id_by_account)(
+    (*select_reserves_in_above_serial_id_by_account)(
     void *cls,
     const char *account_name,
     uint64_t serial_id,
@@ -5341,7 +5374,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_withdrawals_above_serial_id)(
+    (*select_withdrawals_above_serial_id)(
     void *cls,
     uint64_t serial_id,
     TALER_EXCHANGEDB_WithdrawCallback cb,
@@ -5359,10 +5392,11 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_wire_out_above_serial_id)(void *cls,
-                                     uint64_t serial_id,
-                                     TALER_EXCHANGEDB_WireTransferOutCallback 
cb,
-                                     void *cb_cls);
+    (*select_wire_out_above_serial_id)(void *cls,
+                                       uint64_t serial_id,
+                                       TALER_EXCHANGEDB_WireTransferOutCallback
+                                       cb,
+                                       void *cb_cls);
 
   /**
    * Function called to select outgoing wire transfers the exchange
@@ -5376,7 +5410,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_wire_out_above_serial_id_by_account)(
+    (*select_wire_out_above_serial_id_by_account)(
     void *cls,
     const char *account_name,
     uint64_t serial_id,
@@ -5395,10 +5429,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_recoup_above_serial_id)(void *cls,
-                                   uint64_t serial_id,
-                                   TALER_EXCHANGEDB_RecoupCallback cb,
-                                   void *cb_cls);
+    (*select_recoup_above_serial_id)(void *cls,
+                                     uint64_t serial_id,
+                                     TALER_EXCHANGEDB_RecoupCallback cb,
+                                     void *cb_cls);
 
 
   /**
@@ -5412,7 +5446,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_recoup_refresh_above_serial_id)(
+    (*select_recoup_refresh_above_serial_id)(
     void *cls,
     uint64_t serial_id,
     TALER_EXCHANGEDB_RecoupRefreshCallback cb,
@@ -5430,7 +5464,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_reserve_open_above_serial_id)(
+    (*select_reserve_open_above_serial_id)(
     void *cls,
     uint64_t serial_id,
     TALER_EXCHANGEDB_ReserveOpenCallback cb,
@@ -5448,7 +5482,7 @@ struct TALER_EXCHANGEDB_Plugin
  * @return transaction status code
  */
   enum GNUNET_DB_QueryStatus
-  (*select_reserve_closed_above_serial_id)(
+    (*select_reserve_closed_above_serial_id)(
     void *cls,
     uint64_t serial_id,
     TALER_EXCHANGEDB_ReserveClosedCallback cb,
@@ -5466,7 +5500,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_reserve_by_h_blind)(
+    (*get_reserve_by_h_blind)(
     void *cls,
     const struct TALER_BlindedCoinHashP *bch,
     struct TALER_ReservePublicKeyP *reserve_pub,
@@ -5484,7 +5518,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_old_coin_by_h_blind)(
+    (*get_old_coin_by_h_blind)(
     void *cls,
     const struct TALER_BlindedCoinHashP *h_blind_ev,
     struct TALER_CoinSpendPublicKeyP *old_coin_pub,
@@ -5501,7 +5535,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_denomination_revocation)(
+    (*insert_denomination_revocation)(
     void *cls,
     const struct TALER_DenominationHashP *denom_pub_hash,
     const struct TALER_MasterSignatureP *master_sig);
@@ -5518,7 +5552,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_denomination_revocation)(
+    (*get_denomination_revocation)(
     void *cls,
     const struct TALER_DenominationHashP *denom_pub_hash,
     struct TALER_MasterSignatureP *master_sig,
@@ -5536,7 +5570,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_batch_deposits_missing_wire)(
+    (*select_batch_deposits_missing_wire)(
     void *cls,
     uint64_t min_batch_deposit_serial_id,
     TALER_EXCHANGEDB_WireMissingCallback cb,
@@ -5554,7 +5588,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_aggregations_above_serial)(
+    (*select_aggregations_above_serial)(
     void *cls,
     uint64_t min_tracking_serial_id,
     TALER_EXCHANGEDB_AggregationCallback cb,
@@ -5576,7 +5610,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_justification_for_missing_wire)(
+    (*select_justification_for_missing_wire)(
     void *cls,
     const struct TALER_PaytoHashP *wire_target_h_payto,
     char **payto_uri,
@@ -5594,7 +5628,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_auditor_timestamp)(
+    (*lookup_auditor_timestamp)(
     void *cls,
     const struct TALER_AuditorPublicKeyP *auditor_pub,
     struct GNUNET_TIME_Timestamp *last_date);
@@ -5611,7 +5645,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_auditor_status)(
+    (*lookup_auditor_status)(
     void *cls,
     const struct TALER_AuditorPublicKeyP *auditor_pub,
     char **auditor_url,
@@ -5630,7 +5664,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_auditor)(
+    (*insert_auditor)(
     void *cls,
     const struct TALER_AuditorPublicKeyP *auditor_pub,
     const char *auditor_url,
@@ -5651,7 +5685,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*update_auditor)(
+    (*update_auditor)(
     void *cls,
     const struct TALER_AuditorPublicKeyP *auditor_pub,
     const char *auditor_url,
@@ -5669,9 +5703,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_wire_timestamp)(void *cls,
-                           const char *payto_uri,
-                           struct GNUNET_TIME_Timestamp *last_date);
+    (*lookup_wire_timestamp)(void *cls,
+                             const char *payto_uri,
+                             struct GNUNET_TIME_Timestamp *last_date);
 
 
   /**
@@ -5689,13 +5723,13 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_wire)(void *cls,
-                 const char *payto_uri,
-                 const char *conversion_url,
-                 const json_t *debit_restrictions,
-                 const json_t *credit_restrictions,
-                 struct GNUNET_TIME_Timestamp start_date,
-                 const struct TALER_MasterSignatureP *master_sig);
+    (*insert_wire)(void *cls,
+                   const char *payto_uri,
+                   const char *conversion_url,
+                   const json_t *debit_restrictions,
+                   const json_t *credit_restrictions,
+                   struct GNUNET_TIME_Timestamp start_date,
+                   const struct TALER_MasterSignatureP *master_sig);
 
 
   /**
@@ -5712,13 +5746,13 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*update_wire)(void *cls,
-                 const char *payto_uri,
-                 const char *conversion_url,
-                 const json_t *debit_restrictions,
-                 const json_t *credit_restrictions,
-                 struct GNUNET_TIME_Timestamp change_date,
-                 bool enabled);
+    (*update_wire)(void *cls,
+                   const char *payto_uri,
+                   const char *conversion_url,
+                   const json_t *debit_restrictions,
+                   const json_t *credit_restrictions,
+                   struct GNUNET_TIME_Timestamp change_date,
+                   bool enabled);
 
 
   /**
@@ -5730,9 +5764,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_wire_accounts)(void *cls,
-                       TALER_EXCHANGEDB_WireAccountCallback cb,
-                       void *cb_cls);
+    (*get_wire_accounts)(void *cls,
+                         TALER_EXCHANGEDB_WireAccountCallback cb,
+                         void *cb_cls);
 
 
   /**
@@ -5746,10 +5780,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_wire_fees)(void *cls,
-                   const char *wire_method,
-                   TALER_EXCHANGEDB_WireFeeCallback cb,
-                   void *cb_cls);
+    (*get_wire_fees)(void *cls,
+                     const char *wire_method,
+                     TALER_EXCHANGEDB_WireFeeCallback cb,
+                     void *cb_cls);
 
 
   /**
@@ -5761,9 +5795,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_global_fees)(void *cls,
-                     TALER_EXCHANGEDB_GlobalFeeCallback cb,
-                     void *cb_cls);
+    (*get_global_fees)(void *cls,
+                       TALER_EXCHANGEDB_GlobalFeeCallback cb,
+                       void *cb_cls);
 
 
   /**
@@ -5775,7 +5809,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_signkey_revocation)(
+    (*insert_signkey_revocation)(
     void *cls,
     const struct TALER_ExchangePublicKeyP *exchange_pub,
     const struct TALER_MasterSignatureP *master_sig);
@@ -5790,7 +5824,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_signkey_revocation)(
+    (*lookup_signkey_revocation)(
     void *cls,
     const struct TALER_ExchangePublicKeyP *exchange_pub,
     struct TALER_MasterSignatureP *master_sig);
@@ -5805,7 +5839,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_denomination_key)(
+    (*lookup_denomination_key)(
     void *cls,
     const struct TALER_DenominationHashP *h_denom_pub,
     struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta);
@@ -5822,7 +5856,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*add_denomination_key)(
+    (*add_denomination_key)(
     void *cls,
     const struct TALER_DenominationHashP *h_denom_pub,
     const struct TALER_DenominationPublicKey *denom_pub,
@@ -5841,7 +5875,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*activate_signing_key)(
+    (*activate_signing_key)(
     void *cls,
     const struct TALER_ExchangePublicKeyP *exchange_pub,
     const struct TALER_EXCHANGEDB_SignkeyMetaData *meta,
@@ -5857,7 +5891,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_signing_key)(
+    (*lookup_signing_key)(
     void *cls,
     const struct TALER_ExchangePublicKeyP *exchange_pub,
     struct TALER_EXCHANGEDB_SignkeyMetaData *meta);
@@ -5873,7 +5907,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_auditor_denom_sig)(
+    (*insert_auditor_denom_sig)(
     void *cls,
     const struct TALER_DenominationHashP *h_denom_pub,
     const struct TALER_AuditorPublicKeyP *auditor_pub,
@@ -5890,7 +5924,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_auditor_denom_sig)(
+    (*select_auditor_denom_sig)(
     void *cls,
     const struct TALER_DenominationHashP *h_denom_pub,
     const struct TALER_AuditorPublicKeyP *auditor_pub,
@@ -5910,7 +5944,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_wire_fee_by_time)(
+    (*lookup_wire_fee_by_time)(
     void *cls,
     const char *wire_method,
     struct GNUNET_TIME_Timestamp start_time,
@@ -5933,7 +5967,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_global_fee_by_time)(
+    (*lookup_global_fee_by_time)(
     void *cls,
     struct GNUNET_TIME_Timestamp start_time,
     struct GNUNET_TIME_Timestamp end_time,
@@ -5954,9 +5988,9 @@ struct TALER_EXCHANGEDB_Plugin
    *         @a table does not have a serial number
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_serial_by_table)(void *cls,
-                            enum TALER_EXCHANGEDB_ReplicatedTable table,
-                            uint64_t *serial);
+    (*lookup_serial_by_table)(void *cls,
+                              enum TALER_EXCHANGEDB_ReplicatedTable table,
+                              uint64_t *serial);
 
   /**
    * Lookup records above @a serial number in @a table. Used in
@@ -5971,11 +6005,11 @@ struct TALER_EXCHANGEDB_Plugin
    *         @a table does not have a serial number
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_records_by_table)(void *cls,
-                             enum TALER_EXCHANGEDB_ReplicatedTable table,
-                             uint64_t serial,
-                             TALER_EXCHANGEDB_ReplicationCallback cb,
-                             void *cb_cls);
+    (*lookup_records_by_table)(void *cls,
+                               enum TALER_EXCHANGEDB_ReplicatedTable table,
+                               uint64_t serial,
+                               TALER_EXCHANGEDB_ReplicationCallback cb,
+                               void *cb_cls);
 
 
   /**
@@ -5989,8 +6023,8 @@ struct TALER_EXCHANGEDB_Plugin
    *         @a table does not have a serial number
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_records_by_table)(void *cls,
-                             const struct TALER_EXCHANGEDB_TableData *td);
+    (*insert_records_by_table)(void *cls,
+                               const struct TALER_EXCHANGEDB_TableData *td);
 
 
   /**
@@ -6006,12 +6040,12 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*begin_shard)(void *cls,
-                 const char *job_name,
-                 struct GNUNET_TIME_Relative delay,
-                 uint64_t shard_size,
-                 uint64_t *start_row,
-                 uint64_t *end_row);
+    (*begin_shard)(void *cls,
+                   const char *job_name,
+                   struct GNUNET_TIME_Relative delay,
+                   uint64_t shard_size,
+                   uint64_t *start_row,
+                   uint64_t *end_row);
 
   /**
    * Function called to abort work on a shard.
@@ -6023,10 +6057,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*abort_shard)(void *cls,
-                 const char *job_name,
-                 uint64_t start_row,
-                 uint64_t end_row);
+    (*abort_shard)(void *cls,
+                   const char *job_name,
+                   uint64_t start_row,
+                   uint64_t end_row);
 
   /**
    * Function called to persist that work on a shard was completed.
@@ -6038,10 +6072,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*complete_shard)(void *cls,
-                    const char *job_name,
-                    uint64_t start_row,
-                    uint64_t end_row);
+    (*complete_shard)(void *cls,
+                      const char *job_name,
+                      uint64_t start_row,
+                      uint64_t end_row);
 
 
   /**
@@ -6057,12 +6091,12 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*begin_revolving_shard)(void *cls,
-                           const char *job_name,
-                           uint32_t shard_size,
-                           uint32_t shard_limit,
-                           uint32_t *start_row,
-                           uint32_t *end_row);
+    (*begin_revolving_shard)(void *cls,
+                             const char *job_name,
+                             uint32_t shard_size,
+                             uint32_t shard_limit,
+                             uint32_t *start_row,
+                             uint32_t *end_row);
 
 
   /**
@@ -6076,10 +6110,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*release_revolving_shard)(void *cls,
-                             const char *job_name,
-                             uint32_t start_row,
-                             uint32_t end_row);
+    (*release_revolving_shard)(void *cls,
+                               const char *job_name,
+                               uint32_t start_row,
+                               uint32_t end_row);
 
 
   /**
@@ -6092,7 +6126,7 @@ struct TALER_EXCHANGEDB_Plugin
    *         #GNUNET_SYSERR on failure
    */
   enum GNUNET_GenericReturnValue
-  (*delete_shard_locks)(void *cls);
+    (*delete_shard_locks)(void *cls);
 
 
   /**
@@ -6105,9 +6139,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*set_extension_manifest)(void *cls,
-                            const char *extension_name,
-                            const char *manifest);
+    (*set_extension_manifest)(void *cls,
+                              const char *extension_name,
+                              const char *manifest);
 
 
   /**
@@ -6120,9 +6154,9 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_extension_manifest)(void *cls,
-                            const char *extension_name,
-                            char **manifest);
+    (*get_extension_manifest)(void *cls,
+                              const char *extension_name,
+                              char **manifest);
 
 
   /**
@@ -6140,14 +6174,14 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_partner)(void *cls,
-                    const struct TALER_MasterPublicKeyP *master_pub,
-                    struct GNUNET_TIME_Timestamp start_date,
-                    struct GNUNET_TIME_Timestamp end_date,
-                    struct GNUNET_TIME_Relative wad_frequency,
-                    const struct TALER_Amount *wad_fee,
-                    const char *partner_base_url,
-                    const struct TALER_MasterSignatureP *master_sig);
+    (*insert_partner)(void *cls,
+                      const struct TALER_MasterPublicKeyP *master_pub,
+                      struct GNUNET_TIME_Timestamp start_date,
+                      struct GNUNET_TIME_Timestamp end_date,
+                      struct GNUNET_TIME_Relative wad_frequency,
+                      const struct TALER_Amount *wad_fee,
+                      const char *partner_base_url,
+                      const struct TALER_MasterSignatureP *master_sig);
 
 
   /**
@@ -6163,10 +6197,10 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_contract)(void *cls,
-                     const struct TALER_PurseContractPublicKeyP *purse_pub,
-                     const struct TALER_EncryptedContract *econtract,
-                     bool *in_conflict);
+    (*insert_contract)(void *cls,
+                       const struct TALER_PurseContractPublicKeyP *purse_pub,
+                       const struct TALER_EncryptedContract *econtract,
+                       bool *in_conflict);
 
 
   /**
@@ -6181,7 +6215,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_contract)(
+    (*select_contract)(
     void *cls,
     const struct TALER_ContractDiffiePublicP *pub_ckey,
     struct TALER_PurseContractPublicKeyP *purse_pub,
@@ -6199,7 +6233,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_contract_by_purse)(
+    (*select_contract_by_purse)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     struct TALER_EncryptedContract *econtract);
@@ -6225,7 +6259,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_purse_request)(
+    (*insert_purse_request)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     const struct TALER_PurseMergePublicKeyP *merge_pub,
@@ -6248,7 +6282,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code (#GNUNET_DB_STATUS_SUCCESS_NO_RESULTS if 
no purse expired in the given time interval).
    */
   enum GNUNET_DB_QueryStatus
-  (*expire_purse)(
+    (*expire_purse)(
     void *cls,
     struct GNUNET_TIME_Absolute start_time,
     struct GNUNET_TIME_Absolute end_time);
@@ -6269,7 +6303,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_purse)(
+    (*select_purse)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     struct GNUNET_TIME_Timestamp *purse_creation,
@@ -6297,7 +6331,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_purse_request)(
+    (*get_purse_request)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     struct TALER_PurseMergePublicKeyP *merge_pub,
@@ -6325,7 +6359,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_purse_by_merge_pub)(
+    (*select_purse_by_merge_pub)(
     void *cls,
     const struct TALER_PurseMergePublicKeyP *merge_pub,
     struct TALER_PurseContractPublicKeyP *purse_pub,
@@ -6361,7 +6395,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*do_purse_deposit)(
+    (*do_purse_deposit)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     const struct TALER_CoinSpendPublicKeyP *coin_pub,
@@ -6386,7 +6420,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*do_purse_delete)(
+    (*do_purse_delete)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     const struct TALER_PurseContractSignatureP *purse_sig,
@@ -6405,7 +6439,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*set_purse_balance)(
+    (*set_purse_balance)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     const struct TALER_Amount *balance);
@@ -6426,7 +6460,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_purse_deposit)(
+    (*get_purse_deposit)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     const struct TALER_CoinSpendPublicKeyP *coin_pub,
@@ -6456,7 +6490,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*do_purse_merge)(
+    (*do_purse_merge)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     const struct TALER_PurseMergeSignatureP *merge_sig,
@@ -6487,7 +6521,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*do_reserve_purse)(
+    (*do_reserve_purse)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     const struct TALER_PurseMergeSignatureP *merge_sig,
@@ -6513,7 +6547,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_purse_merge)(
+    (*select_purse_merge)(
     void *cls,
     const struct TALER_PurseContractPublicKeyP *purse_pub,
     struct TALER_PurseMergeSignatureP *merge_sig,
@@ -6535,13 +6569,13 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_close_request)(void *cls,
-                          const struct TALER_ReservePublicKeyP *reserve_pub,
-                          const char *payto_uri,
-                          const struct TALER_ReserveSignatureP *reserve_sig,
-                          struct GNUNET_TIME_Timestamp request_timestamp,
-                          const struct TALER_Amount *balance,
-                          const struct TALER_Amount *closing_fee);
+    (*insert_close_request)(void *cls,
+                            const struct TALER_ReservePublicKeyP *reserve_pub,
+                            const char *payto_uri,
+                            const struct TALER_ReserveSignatureP *reserve_sig,
+                            struct GNUNET_TIME_Timestamp request_timestamp,
+                            const struct TALER_Amount *balance,
+                            const struct TALER_Amount *closing_fee);
 
 
   /**
@@ -6557,13 +6591,13 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_drain_profit)(void *cls,
-                         const struct TALER_WireTransferIdentifierRawP *wtid,
-                         const char *account_section,
-                         const char *payto_uri,
-                         struct GNUNET_TIME_Timestamp request_timestamp,
-                         const struct TALER_Amount *amount,
-                         const struct TALER_MasterSignatureP *master_sig);
+    (*insert_drain_profit)(void *cls,
+                           const struct TALER_WireTransferIdentifierRawP *wtid,
+                           const char *account_section,
+                           const char *payto_uri,
+                           struct GNUNET_TIME_Timestamp request_timestamp,
+                           const struct TALER_Amount *amount,
+                           const struct TALER_MasterSignatureP *master_sig);
 
 
   /**
@@ -6580,14 +6614,14 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*get_drain_profit)(void *cls,
-                      const struct TALER_WireTransferIdentifierRawP *wtid,
-                      uint64_t *serial,
-                      char **account_section,
-                      char **payto_uri,
-                      struct GNUNET_TIME_Timestamp *request_timestamp,
-                      struct TALER_Amount *amount,
-                      struct TALER_MasterSignatureP *master_sig);
+    (*get_drain_profit)(void *cls,
+                        const struct TALER_WireTransferIdentifierRawP *wtid,
+                        uint64_t *serial,
+                        char **account_section,
+                        char **payto_uri,
+                        struct GNUNET_TIME_Timestamp *request_timestamp,
+                        struct TALER_Amount *amount,
+                        struct TALER_MasterSignatureP *master_sig);
 
 
   /**
@@ -6604,7 +6638,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*profit_drains_get_pending)(
+    (*profit_drains_get_pending)(
     void *cls,
     uint64_t *serial,
     struct TALER_WireTransferIdentifierRawP *wtid,
@@ -6623,7 +6657,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*profit_drains_set_finished)(
+    (*profit_drains_set_finished)(
     void *cls,
     uint64_t serial);
 
@@ -6639,7 +6673,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_kyc_requirement_for_account)(
+    (*insert_kyc_requirement_for_account)(
     void *cls,
     const char *requirements,
     const struct TALER_PaytoHashP *h_payto,
@@ -6659,7 +6693,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_kyc_requirement_process)(
+    (*insert_kyc_requirement_process)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     const char *provider_section,
@@ -6678,7 +6712,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*get_pending_kyc_requirement_process)(
+    (*get_pending_kyc_requirement_process)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     const char *provider_section,
@@ -6700,7 +6734,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*update_kyc_process_by_row)(
+    (*update_kyc_process_by_row)(
     void *cls,
     uint64_t process_row,
     const char *provider_section,
@@ -6722,7 +6756,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_kyc_requirement_by_row)(
+    (*lookup_kyc_requirement_by_row)(
     void *cls,
     uint64_t requirement_row,
     char **requirements,
@@ -6743,7 +6777,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_kyc_process_by_account)(
+    (*lookup_kyc_process_by_account)(
     void *cls,
     const char *provider_section,
     const struct TALER_PaytoHashP *h_payto,
@@ -6765,7 +6799,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*kyc_provider_account_lookup)(
+    (*kyc_provider_account_lookup)(
     void *cls,
     const char *provider_section,
     const char *provider_legitimization_id,
@@ -6784,7 +6818,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*select_satisfied_kyc_processes)(
+    (*select_satisfied_kyc_processes)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     TALER_EXCHANGEDB_SatisfiedProviderCallback spc,
@@ -6802,7 +6836,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code
    */
   enum GNUNET_DB_QueryStatus
-  (*iterate_kyc_reference)(
+    (*iterate_kyc_reference)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     TALER_EXCHANGEDB_LegitimizationProcessCallback lpc,
@@ -6821,7 +6855,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code, @a kac aborting with #GNUNET_NO is not 
an error
    */
   enum GNUNET_DB_QueryStatus
-  (*select_withdraw_amounts_for_kyc_check)(
+    (*select_withdraw_amounts_for_kyc_check)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     struct GNUNET_TIME_Absolute time_limit,
@@ -6841,7 +6875,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code, @a kac aborting with #GNUNET_NO is not 
an error
    */
   enum GNUNET_DB_QueryStatus
-  (*select_aggregation_amounts_for_kyc_check)(
+    (*select_aggregation_amounts_for_kyc_check)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     struct GNUNET_TIME_Absolute time_limit,
@@ -6861,7 +6895,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return transaction status code, @a kac aborting with #GNUNET_NO is not 
an error
    */
   enum GNUNET_DB_QueryStatus
-  (*select_merge_amounts_for_kyc_check)(
+    (*select_merge_amounts_for_kyc_check)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     struct GNUNET_TIME_Absolute time_limit,
@@ -6891,7 +6925,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_kyc_attributes)(
+    (*insert_kyc_attributes)(
     void *cls,
     uint64_t process_row,
     const struct TALER_PaytoHashP *h_payto,
@@ -6919,7 +6953,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*select_similar_kyc_attributes)(
+    (*select_similar_kyc_attributes)(
     void *cls,
     const struct GNUNET_ShortHashCode *kyc_prox,
     TALER_EXCHANGEDB_AttributeCallback cb,
@@ -6936,7 +6970,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*select_kyc_attributes)(
+    (*select_kyc_attributes)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     TALER_EXCHANGEDB_AttributeCallback cb,
@@ -6957,7 +6991,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_aml_officer)(
+    (*insert_aml_officer)(
     void *cls,
     const struct TALER_AmlOfficerPublicKeyP *decider_pub,
     const struct TALER_MasterSignatureP *master_sig,
@@ -6977,7 +7011,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status, if member is unknown or not active, 
1 if member is active
    */
   enum GNUNET_DB_QueryStatus
-  (*test_aml_officer)(
+    (*test_aml_officer)(
     void *cls,
     const struct TALER_AmlOfficerPublicKeyP *decider_pub);
 
@@ -6995,7 +7029,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*lookup_aml_officer)(
+    (*lookup_aml_officer)(
     void *cls,
     const struct TALER_AmlOfficerPublicKeyP *decider_pub,
     struct TALER_MasterSignatureP *master_sig,
@@ -7015,7 +7049,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status, 0 if no threshold was set
    */
   enum GNUNET_DB_QueryStatus
-  (*select_aml_threshold)(
+    (*select_aml_threshold)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     enum TALER_AmlDecisionState *decision,
@@ -7033,7 +7067,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*trigger_aml_process)(
+    (*trigger_aml_process)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     const struct TALER_Amount *threshold_crossed);
@@ -7051,7 +7085,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*select_aml_process)(
+    (*select_aml_process)(
     void *cls,
     enum TALER_AmlDecisionState decision,
     uint64_t row_off,
@@ -7071,7 +7105,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*select_aml_history)(
+    (*select_aml_history)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     TALER_EXCHANGEDB_AmlHistoryCallback cb,
@@ -7098,7 +7132,7 @@ struct TALER_EXCHANGEDB_Plugin
    * @return database transaction status
    */
   enum GNUNET_DB_QueryStatus
-  (*insert_aml_decision)(
+    (*insert_aml_decision)(
     void *cls,
     const struct TALER_PaytoHashP *h_payto,
     const struct TALER_Amount *new_threshold,

-- 
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]