gnunet-svn
[Top][All Lists]
Advanced

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

[taler-exchange] branch master updated: -update to latest GNUNET_PQ_make


From: gnunet
Subject: [taler-exchange] branch master updated: -update to latest GNUNET_PQ_make_prepare() API
Date: Wed, 12 Oct 2022 14:48:59 +0200

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

grothoff pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new 3b34acdb -update to latest GNUNET_PQ_make_prepare() API
3b34acdb is described below

commit 3b34acdb72cd450974a3bbde6169f1bf9644a302
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Wed Oct 12 14:48:49 2022 +0200

    -update to latest GNUNET_PQ_make_prepare() API
---
 src/auditordb/plugin_auditordb_postgres.c         | 144 ++----
 src/exchange/taler-exchange-httpd.c               |  51 ++-
 src/exchange/taler-exchange-httpd_reserves_open.c |  11 +
 src/exchangedb/pg_do_reserve_open.c               |   6 +-
 src/exchangedb/pg_helper.h                        |   2 +-
 src/exchangedb/plugin_exchangedb_postgres.c       | 520 ++++++++--------------
 src/lib/exchange_api_reserves_open.c              |   5 +-
 src/testing/test_exchange_p2p.c                   |  66 +++
 8 files changed, 355 insertions(+), 450 deletions(-)

diff --git a/src/auditordb/plugin_auditordb_postgres.c 
b/src/auditordb/plugin_auditordb_postgres.c
index 46c2eb1e..cf8d0b5d 100644
--- a/src/auditordb/plugin_auditordb_postgres.c
+++ b/src/auditordb/plugin_auditordb_postgres.c
@@ -157,28 +157,24 @@ setup_connection (struct PostgresClosure *pg)
   struct GNUNET_PQ_PreparedStatement ps[] = {
     /* used in #postgres_commit */
     GNUNET_PQ_make_prepare ("do_commit",
-                            "COMMIT",
-                            0),
+                            "COMMIT"),
     /* used in #postgres_insert_exchange */
     GNUNET_PQ_make_prepare ("auditor_insert_exchange",
                             "INSERT INTO auditor_exchanges "
                             "(master_pub"
                             ",exchange_url"
-                            ") VALUES ($1,$2);",
-                            2),
+                            ") VALUES ($1,$2);"),
     /* used in #postgres_delete_exchange */
     GNUNET_PQ_make_prepare ("auditor_delete_exchange",
                             "DELETE"
                             " FROM auditor_exchanges"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     /* used in #postgres_list_exchanges */
     GNUNET_PQ_make_prepare ("auditor_list_exchanges",
                             "SELECT"
                             " master_pub"
                             ",exchange_url"
-                            " FROM auditor_exchanges",
-                            0),
+                            " FROM auditor_exchanges"),
     /* used in #postgres_insert_exchange_signkey */
     GNUNET_PQ_make_prepare ("auditor_insert_exchange_signkey",
                             "INSERT INTO auditor_exchange_signkeys "
@@ -188,8 +184,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",ep_end"
                             ",exchange_pub"
                             ",master_sig"
-                            ") VALUES ($1,$2,$3,$4,$5,$6);",
-                            6),
+                            ") VALUES ($1,$2,$3,$4,$5,$6);"),
     /* Used in #postgres_insert_deposit_confirmation() */
     GNUNET_PQ_make_prepare ("auditor_deposit_confirmation_insert",
                             "INSERT INTO deposit_confirmations "
@@ -207,8 +202,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",exchange_sig"
                             ",exchange_pub"
                             ",master_sig" /* master_sig could be normalized... 
*/
-                            ") VALUES 
($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14);",
-                            14),
+                            ") VALUES 
($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14);"),
     /* Used in #postgres_get_deposit_confirmations() */
     GNUNET_PQ_make_prepare ("auditor_deposit_confirmation_select",
                             "SELECT"
@@ -228,8 +222,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",master_sig" /* master_sig could be normalized... 
*/
                             " FROM deposit_confirmations"
                             " WHERE master_pub=$1"
-                            " AND serial_id>$2",
-                            2),
+                            " AND serial_id>$2"),
     /* Used in #postgres_update_auditor_progress_reserve() */
     GNUNET_PQ_make_prepare ("auditor_progress_update_reserve",
                             "UPDATE auditor_progress_reserve SET "
@@ -242,8 +235,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",last_account_merges_serial_id=$7"
                             ",last_history_requests_serial_id=$8"
                             ",last_close_requests_serial_id=$9"
-                            " WHERE master_pub=$10",
-                            10),
+                            " WHERE master_pub=$10"),
     /* Used in #postgres_get_auditor_progress_reserve() */
     GNUNET_PQ_make_prepare ("auditor_progress_select_reserve",
                             "SELECT"
@@ -257,8 +249,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",last_history_requests_serial_id"
                             ",last_close_requests_serial_id"
                             " FROM auditor_progress_reserve"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     /* Used in #postgres_insert_auditor_progress_reserve() */
     GNUNET_PQ_make_prepare ("auditor_progress_insert_reserve",
                             "INSERT INTO auditor_progress_reserve "
@@ -272,48 +263,41 @@ setup_connection (struct PostgresClosure *pg)
                             ",last_account_merges_serial_id"
                             ",last_history_requests_serial_id"
                             ",last_close_requests_serial_id"
-                            ") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10);",
-                            10),
+                            ") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10);"),
     /* Used in #postgres_update_auditor_progress_aggregation() */
     GNUNET_PQ_make_prepare ("auditor_progress_update_aggregation",
                             "UPDATE auditor_progress_aggregation SET "
                             " last_wire_out_serial_id=$1"
-                            " WHERE master_pub=$2",
-                            2),
+                            " WHERE master_pub=$2"),
     /* Used in #postgres_get_auditor_progress_aggregation() */
     GNUNET_PQ_make_prepare ("auditor_progress_select_aggregation",
                             "SELECT"
                             " last_wire_out_serial_id"
                             " FROM auditor_progress_aggregation"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     /* Used in #postgres_insert_auditor_progress_aggregation() */
     GNUNET_PQ_make_prepare ("auditor_progress_insert_aggregation",
                             "INSERT INTO auditor_progress_aggregation "
                             "(master_pub"
                             ",last_wire_out_serial_id"
-                            ") VALUES ($1,$2);",
-                            2),
+                            ") VALUES ($1,$2);"),
     /* Used in #postgres_update_auditor_progress_deposit_confirmation() */
     GNUNET_PQ_make_prepare ("auditor_progress_update_deposit_confirmation",
                             "UPDATE auditor_progress_deposit_confirmation SET "
                             " last_deposit_confirmation_serial_id=$1"
-                            " WHERE master_pub=$2",
-                            2),
+                            " WHERE master_pub=$2"),
     /* Used in #postgres_get_auditor_progress_deposit_confirmation() */
     GNUNET_PQ_make_prepare ("auditor_progress_select_deposit_confirmation",
                             "SELECT"
                             " last_deposit_confirmation_serial_id"
                             " FROM auditor_progress_deposit_confirmation"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     /* Used in #postgres_insert_auditor_progress_deposit_confirmation() */
     GNUNET_PQ_make_prepare ("auditor_progress_insert_deposit_confirmation",
                             "INSERT INTO auditor_progress_deposit_confirmation 
"
                             "(master_pub"
                             ",last_deposit_confirmation_serial_id"
-                            ") VALUES ($1,$2);",
-                            2),
+                            ") VALUES ($1,$2);"),
     /* Used in #postgres_update_auditor_progress_coin() */
     GNUNET_PQ_make_prepare ("auditor_progress_update_coin",
                             "UPDATE auditor_progress_coin SET "
@@ -325,8 +309,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",last_recoup_refresh_serial_id=$6"
                             ",last_purse_deposits_serial_id=$7"
                             ",last_purse_refunds_serial_id=$8"
-                            " WHERE master_pub=$9",
-                            9),
+                            " WHERE master_pub=$9"),
     /* Used in #postgres_get_auditor_progress_coin() */
     GNUNET_PQ_make_prepare ("auditor_progress_select_coin",
                             "SELECT"
@@ -339,8 +322,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",last_purse_deposits_serial_id"
                             ",last_purse_refunds_serial_id"
                             " FROM auditor_progress_coin"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     /* Used in #postgres_insert_auditor_progress() */
     GNUNET_PQ_make_prepare ("auditor_progress_insert_coin",
                             "INSERT INTO auditor_progress_coin "
@@ -353,8 +335,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",last_recoup_refresh_serial_id"
                             ",last_purse_deposits_serial_id"
                             ",last_purse_refunds_serial_id"
-                            ") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9);",
-                            9),
+                            ") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9);"),
     /* Used in #postgres_insert_wire_auditor_account_progress() */
     GNUNET_PQ_make_prepare ("wire_auditor_account_progress_insert",
                             "INSERT INTO wire_auditor_account_progress "
@@ -364,8 +345,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",last_wire_wire_out_serial_id"
                             ",wire_in_off"
                             ",wire_out_off"
-                            ") VALUES ($1,$2,$3,$4,$5,$6);",
-                            6),
+                            ") VALUES ($1,$2,$3,$4,$5,$6);"),
     /* Used in #postgres_update_wire_auditor_account_progress() */
     GNUNET_PQ_make_prepare ("wire_auditor_account_progress_update",
                             "UPDATE wire_auditor_account_progress SET "
@@ -373,8 +353,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",last_wire_wire_out_serial_id=$2"
                             ",wire_in_off=$3"
                             ",wire_out_off=$4"
-                            " WHERE master_pub=$5 AND account_name=$6",
-                            6),
+                            " WHERE master_pub=$5 AND account_name=$6"),
     /* Used in #postgres_get_wire_auditor_account_progress() */
     GNUNET_PQ_make_prepare ("wire_auditor_account_progress_select",
                             "SELECT"
@@ -383,31 +362,27 @@ setup_connection (struct PostgresClosure *pg)
                             ",wire_in_off"
                             ",wire_out_off"
                             " FROM wire_auditor_account_progress"
-                            " WHERE master_pub=$1 AND account_name=$2;",
-                            2),
+                            " WHERE master_pub=$1 AND account_name=$2;"),
     /* Used in #postgres_insert_wire_auditor_progress() */
     GNUNET_PQ_make_prepare ("wire_auditor_progress_insert",
                             "INSERT INTO wire_auditor_progress "
                             "(master_pub"
                             ",last_timestamp"
                             ",last_reserve_close_uuid"
-                            ") VALUES ($1,$2,$3);",
-                            3),
+                            ") VALUES ($1,$2,$3);"),
     /* Used in #postgres_update_wire_auditor_progress() */
     GNUNET_PQ_make_prepare ("wire_auditor_progress_update",
                             "UPDATE wire_auditor_progress SET "
                             " last_timestamp=$1"
                             ",last_reserve_close_uuid=$2"
-                            " WHERE master_pub=$3",
-                            3),
+                            " WHERE master_pub=$3"),
     /* Used in #postgres_get_wire_auditor_progress() */
     GNUNET_PQ_make_prepare ("wire_auditor_progress_select",
                             "SELECT"
                             " last_timestamp"
                             ",last_reserve_close_uuid"
                             " FROM wire_auditor_progress"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     /* Used in #postgres_insert_reserve_info() */
     GNUNET_PQ_make_prepare ("auditor_reserves_insert",
                             "INSERT INTO auditor_reserves "
@@ -419,8 +394,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",withdraw_fee_balance_frac"
                             ",expiration_date"
                             ",origin_account"
-                            ") VALUES ($1,$2,$3,$4,$5,$6,$7,$8);",
-                            8),
+                            ") VALUES ($1,$2,$3,$4,$5,$6,$7,$8);"),
     /* Used in #postgres_update_reserve_info() */
     GNUNET_PQ_make_prepare ("auditor_reserves_update",
                             "UPDATE auditor_reserves SET"
@@ -429,8 +403,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",withdraw_fee_balance_val=$3"
                             ",withdraw_fee_balance_frac=$4"
                             ",expiration_date=$5"
-                            " WHERE reserve_pub=$6 AND master_pub=$7;",
-                            7),
+                            " WHERE reserve_pub=$6 AND master_pub=$7;"),
     /* Used in #postgres_get_reserve_info() */
     GNUNET_PQ_make_prepare ("auditor_reserves_select",
                             "SELECT"
@@ -442,14 +415,12 @@ setup_connection (struct PostgresClosure *pg)
                             ",auditor_reserves_rowid"
                             ",origin_account"
                             " FROM auditor_reserves"
-                            " WHERE reserve_pub=$1 AND master_pub=$2;",
-                            2),
+                            " WHERE reserve_pub=$1 AND master_pub=$2;"),
     /* Used in #postgres_del_reserve_info() */
     GNUNET_PQ_make_prepare ("auditor_reserves_delete",
                             "DELETE"
                             " FROM auditor_reserves"
-                            " WHERE reserve_pub=$1 AND master_pub=$2;",
-                            2),
+                            " WHERE reserve_pub=$1 AND master_pub=$2;"),
     /* Used in #postgres_insert_reserve_summary() */
     GNUNET_PQ_make_prepare ("auditor_reserve_balance_insert",
                             "INSERT INTO auditor_reserve_balance"
@@ -462,8 +433,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",purse_fee_balance_frac"
                             ",history_fee_balance_val"
                             ",history_fee_balance_frac"
-                            ") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9)",
-                            9),
+                            ") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9)"),
     /* Used in #postgres_update_reserve_summary() */
     GNUNET_PQ_make_prepare ("auditor_reserve_balance_update",
                             "UPDATE auditor_reserve_balance SET"
@@ -475,8 +445,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",purse_fee_balance_frac=$6"
                             ",history_fee_balance_val=$7"
                             ",history_fee_balance_frac=$8"
-                            " WHERE master_pub=$9;",
-                            9),
+                            " WHERE master_pub=$9;"),
     /* Used in #postgres_get_reserve_summary() */
     GNUNET_PQ_make_prepare ("auditor_reserve_balance_select",
                             "SELECT"
@@ -489,31 +458,27 @@ setup_connection (struct PostgresClosure *pg)
                             ",history_fee_balance_val"
                             ",history_fee_balance_frac"
                             " FROM auditor_reserve_balance"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     /* Used in #postgres_insert_wire_fee_summary() */
     GNUNET_PQ_make_prepare ("auditor_wire_fee_balance_insert",
                             "INSERT INTO auditor_wire_fee_balance"
                             "(master_pub"
                             ",wire_fee_balance_val"
                             ",wire_fee_balance_frac"
-                            ") VALUES ($1,$2,$3)",
-                            3),
+                            ") VALUES ($1,$2,$3)"),
     /* Used in #postgres_update_wire_fee_summary() */
     GNUNET_PQ_make_prepare ("auditor_wire_fee_balance_update",
                             "UPDATE auditor_wire_fee_balance SET"
                             " wire_fee_balance_val=$1"
                             ",wire_fee_balance_frac=$2"
-                            " WHERE master_pub=$3;",
-                            3),
+                            " WHERE master_pub=$3;"),
     /* Used in #postgres_get_wire_fee_summary() */
     GNUNET_PQ_make_prepare ("auditor_wire_fee_balance_select",
                             "SELECT"
                             " wire_fee_balance_val"
                             ",wire_fee_balance_frac"
                             " FROM auditor_wire_fee_balance"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     /* Used in #postgres_insert_denomination_balance() */
     GNUNET_PQ_make_prepare ("auditor_denomination_pending_insert",
                             "INSERT INTO auditor_denomination_pending "
@@ -529,8 +494,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",recoup_loss_frac"
                             ") VALUES ("
                             "$1,$2,$3,$4,$5,$6,$7,$8,$9,$10"
-                            ");",
-                            10),
+                            ");"),
     /* Used in #postgres_update_denomination_balance() */
     GNUNET_PQ_make_prepare ("auditor_denomination_pending_update",
                             "UPDATE auditor_denomination_pending SET"
@@ -543,8 +507,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",denom_risk_frac=$7"
                             ",recoup_loss_val=$8"
                             ",recoup_loss_frac=$9"
-                            " WHERE denom_pub_hash=$10",
-                            10),
+                            " WHERE denom_pub_hash=$10"),
     /* Used in #postgres_get_denomination_balance() */
     GNUNET_PQ_make_prepare ("auditor_denomination_pending_select",
                             "SELECT"
@@ -558,8 +521,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",recoup_loss_val"
                             ",recoup_loss_frac"
                             " FROM auditor_denomination_pending"
-                            " WHERE denom_pub_hash=$1",
-                            1),
+                            " WHERE denom_pub_hash=$1"),
     /* Used in #postgres_insert_balance_summary() */
     GNUNET_PQ_make_prepare ("auditor_balance_summary_insert",
                             "INSERT INTO auditor_balance_summary "
@@ -579,8 +541,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",irregular_recoup_val"
                             ",irregular_recoup_frac"
                             ") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,"
-                            "          $11,$12,$13,$14,$15);",
-                            15),
+                            "          $11,$12,$13,$14,$15);"),
     /* Used in #postgres_update_balance_summary() */
     GNUNET_PQ_make_prepare ("auditor_balance_summary_update",
                             "UPDATE auditor_balance_summary SET"
@@ -598,8 +559,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",loss_frac=$12"
                             ",irregular_recoup_val=$13"
                             ",irregular_recoup_frac=$14"
-                            " WHERE master_pub=$15;",
-                            15),
+                            " WHERE master_pub=$15;"),
     /* Used in #postgres_get_balance_summary() */
     GNUNET_PQ_make_prepare ("auditor_balance_summary_select",
                             "SELECT"
@@ -618,8 +578,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",irregular_recoup_val"
                             ",irregular_recoup_frac"
                             " FROM auditor_balance_summary"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     /* Used in #postgres_insert_historic_denom_revenue() */
     GNUNET_PQ_make_prepare ("auditor_historic_denomination_revenue_insert",
                             "INSERT INTO auditor_historic_denomination_revenue"
@@ -630,8 +589,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",revenue_balance_frac"
                             ",loss_balance_val"
                             ",loss_balance_frac"
-                            ") VALUES ($1,$2,$3,$4,$5,$6,$7);",
-                            7),
+                            ") VALUES ($1,$2,$3,$4,$5,$6,$7);"),
     /* Used in #postgres_select_historic_denom_revenue() */
     GNUNET_PQ_make_prepare ("auditor_historic_denomination_revenue_select",
                             "SELECT"
@@ -642,8 +600,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",loss_balance_val"
                             ",loss_balance_frac"
                             " FROM auditor_historic_denomination_revenue"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     /* Used in #postgres_insert_historic_reserve_revenue() */
     GNUNET_PQ_make_prepare ("auditor_historic_reserve_summary_insert",
                             "INSERT INTO auditor_historic_reserve_summary"
@@ -652,8 +609,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",end_date"
                             ",reserve_profits_val"
                             ",reserve_profits_frac"
-                            ") VALUES ($1,$2,$3,$4,$5);",
-                            5),
+                            ") VALUES ($1,$2,$3,$4,$5);"),
     /* Used in #postgres_select_historic_reserve_revenue() */
     GNUNET_PQ_make_prepare ("auditor_historic_reserve_summary_select",
                             "SELECT"
@@ -662,8 +618,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",reserve_profits_val"
                             ",reserve_profits_frac"
                             " FROM auditor_historic_reserve_summary"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     /* Used in #postgres_insert_predicted_result() */
     GNUNET_PQ_make_prepare ("auditor_predicted_result_insert",
                             "INSERT INTO auditor_predicted_result"
@@ -672,8 +627,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",balance_frac"
                             ",drained_val"
                             ",drained_frac"
-                            ") VALUES ($1,$2,$3,$4,$5);",
-                            5),
+                            ") VALUES ($1,$2,$3,$4,$5);"),
     /* Used in #postgres_update_predicted_result() */
     GNUNET_PQ_make_prepare ("auditor_predicted_result_update",
                             "UPDATE auditor_predicted_result SET"
@@ -681,8 +635,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",balance_frac=$2"
                             ",drained_val=$3"
                             ",drained_frac=$4"
-                            " WHERE master_pub=$5;",
-                            5),
+                            " WHERE master_pub=$5;"),
     /* Used in #postgres_get_predicted_balance() */
     GNUNET_PQ_make_prepare ("auditor_predicted_result_select",
                             "SELECT"
@@ -691,8 +644,7 @@ setup_connection (struct PostgresClosure *pg)
                             ",drained_val"
                             ",drained_frac"
                             " FROM auditor_predicted_result"
-                            " WHERE master_pub=$1;",
-                            1),
+                            " WHERE master_pub=$1;"),
     GNUNET_PQ_PREPARED_STATEMENT_END
   };
   struct GNUNET_PQ_ExecuteStatement es[] = {
diff --git a/src/exchange/taler-exchange-httpd.c 
b/src/exchange/taler-exchange-httpd.c
index 9349a5a2..a45c9d2b 100644
--- a/src/exchange/taler-exchange-httpd.c
+++ b/src/exchange/taler-exchange-httpd.c
@@ -55,8 +55,12 @@
 #include "taler-exchange-httpd_recoup-refresh.h"
 #include "taler-exchange-httpd_refreshes_reveal.h"
 #include "taler-exchange-httpd_refund.h"
+#include "taler-exchange-httpd_reserves_attest.h"
+#include "taler-exchange-httpd_reserves_close.h"
 #include "taler-exchange-httpd_reserves_get.h"
+#include "taler-exchange-httpd_reserves_get_attest.h"
 #include "taler-exchange-httpd_reserves_history.h"
+#include "taler-exchange-httpd_reserves_open.h"
 #include "taler-exchange-httpd_reserves_purse.h"
 #include "taler-exchange-httpd_reserves_status.h"
 #include "taler-exchange-httpd_terms.h"
@@ -360,14 +364,14 @@ handle_post_reserves (struct TEH_RequestContext *rc,
     ReserveOpHandler handler;
 
   } h[] = {
-    {
-      .op = "withdraw",
-      .handler = &TEH_handler_withdraw
-    },
     {
       .op = "batch-withdraw",
       .handler = &TEH_handler_batch_withdraw
     },
+    {
+      .op = "withdraw",
+      .handler = &TEH_handler_withdraw
+    },
     {
       .op = "status",
       .handler = &TEH_handler_reserves_status
@@ -380,6 +384,18 @@ handle_post_reserves (struct TEH_RequestContext *rc,
       .op = "purse",
       .handler = &TEH_handler_reserves_purse
     },
+    {
+      .op = "open",
+      .handler = &TEH_handler_reserves_open
+    },
+    {
+      .op = "attest",
+      .handler = &TEH_handler_reserves_attest
+    },
+    {
+      .op = "close",
+      .handler = &TEH_handler_reserves_close
+    },
     {
       .op = NULL,
       .handler = NULL
@@ -1038,6 +1054,27 @@ handle_post_auditors (struct TEH_RequestContext *rc,
 }
 
 
+/**
+ * Handle a GET "/reserves/$RID/$XXX" request.
+ *
+ * @param rc request context
+ * @param args array of additional options (length: 1, just the reserve_pub)
+ * @return MHD result code
+ */
+static MHD_RESULT
+handler_reserves_get3 (struct TEH_RequestContext *rc,
+                       const char *const args[3])
+{
+  if (0 == strcmp (args[2],
+                   "attest"))
+    return TEH_handler_reserves_get_attest (rc,
+                                            args);
+  GNUNET_break_op (0);
+  return r404 (rc->connection,
+               "/reserves/$RID/*");
+}
+
+
 /**
  * Handle incoming HTTP request.
  *
@@ -1151,6 +1188,12 @@ handle_mhd_request (void *cls,
       .handler.get = &TEH_handler_reserves_get,
       .nargs = 1
     },
+    {
+      .url = "reserves",
+      .method = MHD_HTTP_METHOD_GET,
+      .handler.get = &handler_reserves_get3,
+      .nargs = 3
+    },
     {
       .url = "reserves",
       .method = MHD_HTTP_METHOD_POST,
diff --git a/src/exchange/taler-exchange-httpd_reserves_open.c 
b/src/exchange/taler-exchange-httpd_reserves_open.c
index cbc54120..6ad2592f 100644
--- a/src/exchange/taler-exchange-httpd_reserves_open.c
+++ b/src/exchange/taler-exchange-httpd_reserves_open.c
@@ -184,12 +184,18 @@ reserve_open_transaction (void *cls,
     struct TEH_PurseDepositedCoin *coin = &rsc->payments[i];
     bool insufficient_funds = true;
 
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+                "Make coin %u known\n",
+                i);
     qs = TEH_make_coin_known (&coin->cpi,
                               connection,
                               &coin->known_coin_id,
                               mhd_ret);
     if (qs < 0)
       return qs;
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+                "Insert open deposit %u known\n",
+                i);
     qs = TEH_plugin->insert_reserve_open_deposit (
       TEH_plugin->cls,
       &coin->cpi,
@@ -215,6 +221,8 @@ reserve_open_transaction (void *cls,
     }
     if (insufficient_funds)
     {
+      GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+                  "Handle insufficient funds\n");
       *mhd_ret
         = TEH_RESPONSE_reply_coin_insufficient_funds (
             connection,
@@ -225,6 +233,8 @@ reserve_open_transaction (void *cls,
     }
   }
 
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Do reserve open\n");
   qs = TEH_plugin->do_reserve_open (TEH_plugin->cls,
                                     /* inputs */
                                     rsc->reserve_pub,
@@ -263,6 +273,7 @@ reserve_open_transaction (void *cls,
   }
   if (rsc->no_funds)
   {
+    TEH_plugin->rollback (TEH_plugin->cls);
     *mhd_ret
       = TEH_RESPONSE_reply_reserve_insufficient_balance (
           connection,
diff --git a/src/exchangedb/pg_do_reserve_open.c 
b/src/exchangedb/pg_do_reserve_open.c
index ad18cb93..542d1f46 100644
--- a/src/exchangedb/pg_do_reserve_open.c
+++ b/src/exchangedb/pg_do_reserve_open.c
@@ -56,12 +56,12 @@ TEH_PG_do_reserve_open (
     GNUNET_PQ_query_param_end
   };
   struct GNUNET_PQ_ResultSpec rs[] = {
-    GNUNET_PQ_result_spec_bool ("out_no_funds",
-                                no_funds),
     TALER_PQ_RESULT_SPEC_AMOUNT ("out_open_cost",
                                  open_cost),
     GNUNET_PQ_result_spec_timestamp ("out_final_expiration",
                                      final_expiration),
+    GNUNET_PQ_result_spec_bool ("out_no_funds",
+                                no_funds),
     GNUNET_PQ_result_spec_end
   };
 
@@ -73,7 +73,7 @@ TEH_PG_do_reserve_open (
            ",out_final_expiration"
            ",out_no_funds"
            " FROM exchange_do_reserve_open"
-           " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11);");
+           " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13);");
   return GNUNET_PQ_eval_prepared_singleton_select (pg->conn,
                                                    "do_reserve_open",
                                                    params,
diff --git a/src/exchangedb/pg_helper.h b/src/exchangedb/pg_helper.h
index 84d4c22b..3e9ce7b4 100644
--- a/src/exchangedb/pg_helper.h
+++ b/src/exchangedb/pg_helper.h
@@ -113,7 +113,7 @@ struct PostgresClosure
     if (prep_cnt < pg->prep_gen)                  \
     {                                             \
       struct GNUNET_PQ_PreparedStatement ps[] = { \
-        GNUNET_PQ_make_prepare (name, sql, 0),    \
+        GNUNET_PQ_make_prepare (name, sql),       \
         GNUNET_PQ_PREPARED_STATEMENT_END          \
       };                                          \
                                                   \
diff --git a/src/exchangedb/plugin_exchangedb_postgres.c 
b/src/exchangedb/plugin_exchangedb_postgres.c
index d6ea46d6..89998047 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/exchangedb/plugin_exchangedb_postgres.c
@@ -30,6 +30,7 @@
 #include "taler_json_lib.h"
 #include "taler_exchangedb_plugin.h"
 #include "pg_helper.h"
+#include "pg_do_reserve_open.h"
 #include "pg_insert_close_request.h"
 #include "pg_insert_records_by_table.h"
 #include "pg_insert_reserve_open_deposit.h"
@@ -157,8 +158,7 @@ postgres_create_shard_tables (void *cls,
     GNUNET_PQ_make_prepare ("create_shard_tables",
                             "SELECT"
                             " setup_shard"
-                            " ($1);",
-                            1),
+                            " ($1);"),
     GNUNET_PQ_PREPARED_STATEMENT_END
   };
 
@@ -200,8 +200,7 @@ postgres_setup_partitions (void *cls,
     GNUNET_PQ_make_prepare ("setup_partitions",
                             "SELECT"
                             " create_partitions"
-                            " ($1);",
-                            1),
+                            " ($1);"),
     GNUNET_PQ_PREPARED_STATEMENT_END
   };
   struct GNUNET_PQ_ExecuteStatement es[] = {
@@ -296,8 +295,7 @@ postgres_setup_foreign_servers (void *cls,
     GNUNET_PQ_make_prepare ("create_foreign_servers",
                             "SELECT"
                             " create_foreign_servers"
-                            " ($1, $2, $3, $4);",
-                            4),
+                            " ($1, $2, $3, $4);"),
     GNUNET_PQ_PREPARED_STATEMENT_END
   };
 
@@ -360,8 +358,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",age_mask"
       ") VALUES "
       "($1, $2, $3, $4, $5, $6, $7, $8, $9, $10,"
-      " $11, $12, $13, $14, $15, $16, $17, $18);",
-      18),
+      " $11, $12, $13, $14, $15, $16, $17, $18);"),
     /* Used in #postgres_iterate_denomination_info() */
     GNUNET_PQ_make_prepare (
       "denomination_iterate",
@@ -384,8 +381,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",fee_refund_frac"
       ",denom_pub"
       ",age_mask"
-      " FROM denominations;",
-      0),
+      " FROM denominations;"),
     /* Used in #postgres_iterate_denominations() */
     GNUNET_PQ_make_prepare (
       "select_denominations",
@@ -411,8 +407,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",denom_pub"
       " FROM denominations"
       " LEFT JOIN "
-      "   denomination_revocations USING (denominations_serial);",
-      0),
+      "   denomination_revocations USING (denominations_serial);"),
     /* Used in #postgres_iterate_active_signkeys() */
     GNUNET_PQ_make_prepare (
       "select_signkeys",
@@ -428,8 +423,7 @@ prepare_statements (struct PostgresClosure *pg)
       " AND NOT EXISTS "
       "  (SELECT esk_serial "
       "     FROM signkey_revocations skr"
-      "    WHERE esk.esk_serial = skr.esk_serial);",
-      1),
+      "    WHERE esk.esk_serial = skr.esk_serial);"),
     /* Used in #postgres_iterate_auditor_denominations() */
     GNUNET_PQ_make_prepare (
       "select_auditor_denoms",
@@ -440,8 +434,7 @@ prepare_statements (struct PostgresClosure *pg)
       " FROM auditor_denom_sigs"
       " JOIN auditors USING (auditor_uuid)"
       " JOIN denominations USING (denominations_serial)"
-      " WHERE auditors.is_active;",
-      0),
+      " WHERE auditors.is_active;"),
     /* Used in #postgres_iterate_active_auditors() */
     GNUNET_PQ_make_prepare (
       "select_auditors",
@@ -451,8 +444,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",auditor_name"
       " FROM auditors"
       " WHERE"
-      "   is_active;",
-      0),
+      "   is_active;"),
     /* Used in #postgres_get_denomination_info() */
     GNUNET_PQ_make_prepare (
       "denomination_get",
@@ -474,8 +466,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",fee_refund_frac"
       ",age_mask"
       " FROM denominations"
-      " WHERE denom_pub_hash=$1;",
-      1),
+      " WHERE denom_pub_hash=$1;"),
     /* Used in #postgres_insert_denomination_revocation() */
     GNUNET_PQ_make_prepare (
       "denomination_revocation_insert",
@@ -484,8 +475,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",master_sig"
       ") SELECT denominations_serial,$2"
       "    FROM denominations"
-      "   WHERE denom_pub_hash=$1;",
-      2),
+      "   WHERE denom_pub_hash=$1;"),
     /* Used in #postgres_get_denomination_revocation() */
     GNUNET_PQ_make_prepare (
       "denomination_revocation_get",
@@ -496,24 +486,21 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE denominations_serial="
       "  (SELECT denominations_serial"
       "    FROM denominations"
-      "    WHERE denom_pub_hash=$1);",
-      1),
+      "    WHERE denom_pub_hash=$1);"),
     /* Used in #postgres_reserves_get_origin() */
     GNUNET_PQ_make_prepare (
       "get_h_wire_source_of_reserve",
       "SELECT"
       " wire_source_h_payto"
       " FROM reserves_in"
-      " WHERE reserve_pub=$1",
-      1),
+      " WHERE reserve_pub=$1"),
     GNUNET_PQ_make_prepare (
       "get_kyc_h_payto",
       "SELECT"
       " wire_target_h_payto"
       " FROM wire_targets"
       " WHERE wire_target_h_payto=$1"
-      " LIMIT 1;",
-      1),
+      " LIMIT 1;"),
     /* Used in #postgres_insert_partner() */
     GNUNET_PQ_make_prepare (
       "insert_partner",
@@ -527,8 +514,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  ,master_sig"
       "  ,partner_base_url"
       "  ) VALUES "
-      "  ($1, $2, $3, $4, $5, $6, $7, $8);",
-      8),
+      "  ($1, $2, $3, $4, $5, $6, $7, $8);"),
     /* Used in #setup_wire_target() */
     GNUNET_PQ_make_prepare (
       "insert_kyc_status",
@@ -537,8 +523,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  ,payto_uri"
       "  ) VALUES "
       "  ($1, $2)"
-      " ON CONFLICT DO NOTHING",
-      2),
+      " ON CONFLICT DO NOTHING"),
     /* Used in #postgres_drain_kyc_alert() */
     GNUNET_PQ_make_prepare (
       "drain_kyc_alert",
@@ -549,8 +534,7 @@ prepare_statements (struct PostgresClosure *pg)
       "      FROM kyc_alerts"
       "     WHERE trigger_type=$1"
       "     LIMIT 1)"
-      " RETURNING h_payto;",
-      1),
+      " RETURNING h_payto;"),
     /* Used in #postgres_reserves_get() */
     GNUNET_PQ_make_prepare (
       "reserves_get",
@@ -561,8 +545,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",gc_date"
       " FROM reserves"
       " WHERE reserve_pub=$1"
-      " LIMIT 1;",
-      1),
+      " LIMIT 1;"),
     GNUNET_PQ_make_prepare (
       "reserve_create",
       "INSERT INTO reserves "
@@ -574,8 +557,7 @@ prepare_statements (struct PostgresClosure *pg)
       ") VALUES "
       "($1, $2, $3, $4, $5)"
       " ON CONFLICT DO NOTHING"
-      " RETURNING reserve_uuid;",
-      5),
+      " RETURNING reserve_uuid;"),
     /* Used in #postgres_insert_reserve_closed() */
     GNUNET_PQ_make_prepare (
       "reserves_close_insert",
@@ -588,8 +570,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",amount_frac"
       ",closing_fee_val"
       ",closing_fee_frac"
-      ") VALUES ($1, $2, $3, $4, $5, $6, $7, $8);",
-      8),
+      ") VALUES ($1, $2, $3, $4, $5, $6, $7, $8);"),
     /* Used in #postgres_insert_drain_profit() */
     GNUNET_PQ_make_prepare (
       "drain_profit_insert",
@@ -601,8 +582,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",amount_val"
       ",amount_frac"
       ",master_sig"
-      ") VALUES ($1, $2, $3, $4, $5, $6, $7);",
-      7),
+      ") VALUES ($1, $2, $3, $4, $5, $6, $7);"),
     /* Used in #postgres_profit_drains_get_pending() */
     GNUNET_PQ_make_prepare (
       "get_ready_profit_drain",
@@ -617,8 +597,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",master_sig"
       " FROM profit_drains"
       " WHERE NOT executed"
-      " ORDER BY trigger_date ASC;",
-      0),
+      " ORDER BY trigger_date ASC;"),
     /* Used in #postgres_profit_drains_get() */
     GNUNET_PQ_make_prepare (
       "get_profit_drain",
@@ -631,16 +610,14 @@ prepare_statements (struct PostgresClosure *pg)
       ",amount_frac"
       ",master_sig"
       " FROM profit_drains"
-      " WHERE wtid=$1;",
-      1),
+      " WHERE wtid=$1;"),
     /* Used in #postgres_profit_drains_set_finished() */
     GNUNET_PQ_make_prepare (
       "drain_profit_set_finished",
       "UPDATE profit_drains"
       " SET"
       " executed=TRUE"
-      " WHERE profit_drain_serial_id=$1;",
-      1),
+      " WHERE profit_drain_serial_id=$1;"),
     /* Used in #postgres_reserves_update() when the reserve is updated */
     GNUNET_PQ_make_prepare (
       "reserve_update",
@@ -650,8 +627,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",gc_date=$2"
       ",current_balance_val=$3"
       ",current_balance_frac=$4"
-      " WHERE reserve_pub=$5;",
-      5),
+      " WHERE reserve_pub=$5;"),
     /* Used in #postgres_reserves_in_insert() to store transaction details */
     GNUNET_PQ_make_prepare (
       "reserves_in_add_transaction",
@@ -664,8 +640,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",wire_source_h_payto"
       ",execution_date"
       ") VALUES ($1, $2, $3, $4, $5, $6, $7)"
-      " ON CONFLICT DO NOTHING;",
-      7),
+      " ON CONFLICT DO NOTHING;"),
     /* Used in postgres_select_reserves_in_above_serial_id() to obtain inbound
        transactions for reserves with serial id '\geq' the given parameter */
     GNUNET_PQ_make_prepare (
@@ -684,8 +659,7 @@ prepare_statements (struct PostgresClosure *pg)
       " JOIN wire_targets"
       "   ON (wire_source_h_payto = wire_target_h_payto)"
       " WHERE reserve_in_serial_id>=$1"
-      " ORDER BY reserve_in_serial_id;",
-      1),
+      " ORDER BY reserve_in_serial_id;"),
     /* Used in postgres_select_reserves_in_above_serial_id() to obtain inbound
        transactions for reserves with serial id '\geq' the given parameter */
     GNUNET_PQ_make_prepare (
@@ -704,8 +678,7 @@ prepare_statements (struct PostgresClosure *pg)
       " JOIN wire_targets"
       "   ON (wire_source_h_payto = wire_target_h_payto)"
       " WHERE reserve_in_serial_id>=$1 AND exchange_account_section=$2"
-      " ORDER BY reserve_in_serial_id;",
-      2),
+      " ORDER BY reserve_in_serial_id;"),
     /* Used in #postgres_get_reserve_history() to obtain inbound transactions
        for a reserve */
     GNUNET_PQ_make_prepare (
@@ -738,8 +711,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  ON (wire_target_h_payto = wire_source_h_payto) "
       "WHERE wire_target_h_payto = ( "
       "  SELECT wire_source_h_payto FROM ri "
-      "); ",
-      1),
+      "); "),
     /* Used in #postgres_get_reserve_status() to obtain inbound transactions
        for a reserve */
     GNUNET_PQ_make_prepare (
@@ -774,8 +746,7 @@ prepare_statements (struct PostgresClosure *pg)
       "WHERE execution_date >= $2"
       "  AND wire_target_h_payto = ( "
       "  SELECT wire_source_h_payto FROM ri "
-      "); ",
-      2),
+      "); "),
     /* Used in #postgres_do_withdraw() to store
        the signature of a blinded coin with the blinded coin's
        details before returning it during /reserve/withdraw. We store
@@ -791,8 +762,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",nonce_ok"
       ",ruuid"
       " FROM exchange_do_withdraw"
-      " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10);",
-      10),
+      " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10);"),
     /* Used in #postgres_do_batch_withdraw() to
        update the reserve balance and check its status */
     GNUNET_PQ_make_prepare (
@@ -802,8 +772,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",balance_ok"
       ",ruuid"
       " FROM exchange_do_batch_withdraw"
-      " ($1,$2,$3,$4,$5);",
-      5),
+      " ($1,$2,$3,$4,$5);"),
     /* Used in #postgres_do_batch_withdraw_insert() to store
        the signature of a blinded coin with the blinded coin's
        details. */
@@ -814,8 +783,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",out_conflict AS conflict"
       ",out_nonce_reuse AS nonce_reuse"
       " FROM exchange_do_batch_withdraw_insert"
-      " ($1,$2,$3,$4,$5,$6,$7,$8,$9);",
-      9),
+      " ($1,$2,$3,$4,$5,$6,$7,$8,$9);"),
     /* Used in #postgres_do_deposit() to execute a deposit,
        checking the coin's balance in the process as needed. */
     GNUNET_PQ_make_prepare (
@@ -825,8 +793,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",out_balance_ok AS balance_ok"
       ",out_conflict AS conflicted"
       " FROM exchange_do_deposit"
-      " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17);",
-      17),
+      " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17);"),
     /* used in postgres_do_purse_deposit() */
     GNUNET_PQ_make_prepare (
       "call_purse_deposit",
@@ -834,24 +801,21 @@ prepare_statements (struct PostgresClosure *pg)
       " out_balance_ok AS balance_ok"
       ",out_conflict AS conflict"
       " FROM exchange_do_purse_deposit"
-      " ($1,$2,$3,$4,$5,$6,$7,$8,$9);",
-      9),
+      " ($1,$2,$3,$4,$5,$6,$7,$8,$9);"),
     /* Used in #postgres_update_aggregation_transient() */
     GNUNET_PQ_make_prepare (
       "set_purse_balance",
       "UPDATE purse_requests"
       " SET balance_val=$2"
       "    ,balance_frac=$3"
-      " WHERE purse_pub=$1;",
-      3),
+      " WHERE purse_pub=$1;"),
     /* used in #postgres_expire_purse() */
     GNUNET_PQ_make_prepare (
       "call_expire_purse",
       "SELECT "
       " out_found AS found"
       " FROM exchange_do_expire_purse"
-      " ($1,$2);",
-      2),
+      " ($1,$2);"),
     /* Used in #postgres_do_melt() to melt a coin. */
     GNUNET_PQ_make_prepare (
       "call_melt",
@@ -860,8 +824,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",out_zombie_bad AS zombie_required"
       ",out_noreveal_index AS noreveal_index"
       " FROM exchange_do_melt"
-      " ($1,$2,$3,$4,$5,$6,$7,$8,$9);",
-      9),
+      " ($1,$2,$3,$4,$5,$6,$7,$8,$9);"),
     /* Used in #postgres_do_refund() to refund a deposit. */
     GNUNET_PQ_make_prepare (
       "call_refund",
@@ -871,8 +834,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",out_gone AS gone"
       ",out_conflict AS conflict"
       " FROM exchange_do_refund"
-      " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13);",
-      13),
+      " ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13);"),
     /* Used in #postgres_do_recoup() to recoup a coin to a reserve. */
     GNUNET_PQ_make_prepare (
       "call_recoup",
@@ -881,8 +843,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",out_recoup_ok AS recoup_ok"
       ",out_internal_failure AS internal_failure"
       " FROM exchange_do_recoup_to_reserve"
-      " ($1,$2,$3,$4,$5,$6,$7,$8,$9);",
-      9),
+      " ($1,$2,$3,$4,$5,$6,$7,$8,$9);"),
     /* Used in #postgres_do_recoup_refresh() to recoup a coin to a zombie 
coin. */
     GNUNET_PQ_make_prepare (
       "call_recoup_refresh",
@@ -891,8 +852,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",out_recoup_ok AS recoup_ok"
       ",out_internal_failure AS internal_failure"
       " FROM exchange_do_recoup_to_coin"
-      " ($1,$2,$3,$4,$5,$6,$7);",
-      7),
+      " ($1,$2,$3,$4,$5,$6,$7);"),
     /* Used in #postgres_get_withdraw_info() to
        locate the response for a /reserve/withdraw request
        using the hash of the blinded message.  Used to
@@ -915,8 +875,7 @@ prepare_statements (struct PostgresClosure *pg)
       "      USING (reserve_uuid)"
       "    JOIN denominations denom"
       "      USING (denominations_serial)"
-      " WHERE h_blind_ev=$1;",
-      1),
+      " WHERE h_blind_ev=$1;"),
     /* Used during #postgres_get_reserve_history() to
        obtain all of the /reserve/withdraw operations that
        have been performed on a given reserve. (i.e. to
@@ -965,8 +924,7 @@ prepare_statements (struct PostgresClosure *pg)
       "JOIN reserves_out ro "
       "  ON (ro.h_blind_ev = robr.h_blind_ev) "
       "JOIN denominations denom "
-      "  ON (ro.denominations_serial = denom.denominations_serial); ",
-      1),
+      "  ON (ro.denominations_serial = denom.denominations_serial);"),
     /* Used during #postgres_get_reserve_status() to
        obtain all of the /reserve/withdraw operations that
        have been performed on a given reserve. (i.e. to
@@ -1017,8 +975,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  ON (ro.h_blind_ev = robr.h_blind_ev) "
       "JOIN denominations denom "
       "  ON (ro.denominations_serial = denom.denominations_serial)"
-      " WHERE ro.execution_date>=$2;",
-      2),
+      " WHERE ro.execution_date>=$2;"),
     /* Used in #postgres_select_withdrawals_above_serial_id() */
 
     GNUNET_PQ_make_prepare (
@@ -1027,8 +984,7 @@ prepare_statements (struct PostgresClosure *pg)
       " current_balance_val"
       ",current_balance_frac"
       " FROM reserves"
-      " WHERE reserve_pub=$1;",
-      1),
+      " WHERE reserve_pub=$1;"),
     /* Fetch deposits with rowid '\geq' the given parameter */
 
     GNUNET_PQ_make_prepare (
@@ -1048,8 +1004,7 @@ prepare_statements (struct PostgresClosure *pg)
       "    JOIN denominations denom"
       "      USING (denominations_serial)"
       " WHERE reserve_out_serial_id>=$1"
-      " ORDER BY reserve_out_serial_id ASC;",
-      1),
+      " ORDER BY reserve_out_serial_id ASC;"),
 
     /* Used in #postgres_count_known_coins() */
     GNUNET_PQ_make_prepare (
@@ -1060,8 +1015,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE denominations_serial="
       "  (SELECT denominations_serial"
       "    FROM denominations"
-      "    WHERE denom_pub_hash=$1);",
-      1),
+      "    WHERE denom_pub_hash=$1);"),
     /* Used in #postgres_get_known_coin() to fetch
        the denomination public key and signature for
        a coin known to the exchange. */
@@ -1073,8 +1027,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",denom_sig"
       " FROM known_coins"
       " JOIN denominations USING (denominations_serial)"
-      " WHERE coin_pub=$1;",
-      1),
+      " WHERE coin_pub=$1;"),
     /* Used in #postgres_ensure_coin_known() */
     GNUNET_PQ_make_prepare (
       "get_known_coin_dh",
@@ -1082,8 +1035,7 @@ prepare_statements (struct PostgresClosure *pg)
       " denominations.denom_pub_hash"
       " FROM known_coins"
       " JOIN denominations USING (denominations_serial)"
-      " WHERE coin_pub=$1;",
-      1),
+      " WHERE coin_pub=$1;"),
     /* Used in #postgres_get_coin_denomination() to fetch
        the denomination public key hash for
        a coin known to the exchange. */
@@ -1095,8 +1047,7 @@ prepare_statements (struct PostgresClosure *pg)
       " FROM known_coins"
       " JOIN denominations USING (denominations_serial)"
       " WHERE coin_pub=$1"
-      " FOR SHARE;",
-      1),
+      " FOR SHARE;"),
     /* Used in #postgres_insert_known_coin() to store the denomination public
        key and signature for a coin known to the exchange.
 
@@ -1154,8 +1105,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  FROM input_rows"
       "  JOIN known_coins kc USING (coin_pub)"
       "  JOIN denominations USING (denominations_serial)"
-      "  LIMIT 1",
-      4),
+      "  LIMIT 1"),
 
     /* Used in #postgres_get_melt() to fetch
        high-level information about a melt operation */
@@ -1203,8 +1153,7 @@ prepare_statements (struct PostgresClosure *pg)
       "JOIN rc"
       "  ON (kc.coin_pub=rc.old_coin_pub) "
       "JOIN denominations denoms"
-      "  USING (denominations_serial);",
-      1),
+      "  USING (denominations_serial);"),
     /* Used in #postgres_select_refreshes_above_serial_id() to fetch
        refresh session with id '\geq' the given parameter */
     GNUNET_PQ_make_prepare (
@@ -1225,8 +1174,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   JOIN denominations denom"
       "     ON (kc.denominations_serial = denom.denominations_serial)"
       " WHERE melt_serial_id>=$1"
-      " ORDER BY melt_serial_id ASC;",
-      1),
+      " ORDER BY melt_serial_id ASC;"),
     /* Query the 'refresh_commitments' by coin public key,
        used in #postgres_get_coin_transactions() */
     GNUNET_PQ_make_prepare (
@@ -1246,8 +1194,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   ON (refresh_commitments.old_coin_pub = kc.coin_pub)"
       " JOIN denominations denoms"
       "   USING (denominations_serial)"
-      " WHERE old_coin_pub=$1;",
-      1),
+      " WHERE old_coin_pub=$1;"),
     /* Find purse deposits by coin,
        used in #postgres_get_coin_transactions() */
     GNUNET_PQ_make_prepare (
@@ -1274,8 +1221,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   USING (denominations_serial)"
       // FIXME: use to-be-created materialized index
       // on coin_pub (query crosses partitions!)
-      " WHERE pd.coin_pub=$1;",
-      1),
+      " WHERE pd.coin_pub=$1;"),
     /* Store information about the desired denominations for a
        refresh operation, used in #postgres_insert_refresh_reveal() */
     GNUNET_PQ_make_prepare (
@@ -1293,8 +1239,7 @@ prepare_statements (struct PostgresClosure *pg)
       "         denominations_serial, $5, $6, $7, $8"
       "    FROM denominations"
       "   WHERE denom_pub_hash=$4"
-      " ON CONFLICT DO NOTHING;",
-      8),
+      " ON CONFLICT DO NOTHING;"),
     /* Obtain information about the coins created in a refresh
        operation, used in #postgres_get_refresh_reveal() */
     GNUNET_PQ_make_prepare (
@@ -1312,8 +1257,7 @@ prepare_statements (struct PostgresClosure *pg)
       "      USING (melt_serial_id)"
       "    JOIN denominations denom "
       "      USING (denominations_serial)"
-      " WHERE rc=$1;",
-      1),
+      " WHERE rc=$1;"),
 
     /* Used in #postgres_insert_refresh_reveal() to store the transfer
        keys we learned */
@@ -1324,8 +1268,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",transfer_pub"
       ",transfer_privs"
       ") VALUES ($1, $2, $3)"
-      " ON CONFLICT DO NOTHING;",
-      3),
+      " ON CONFLICT DO NOTHING;"),
     /* Used in #postgres_insert_refund() to store refund information */
     GNUNET_PQ_make_prepare (
       "insert_refund",
@@ -1340,8 +1283,7 @@ prepare_statements (struct PostgresClosure *pg)
       "    FROM deposits"
       "   WHERE coin_pub=$1"
       "     AND h_contract_terms=$4"
-      "     AND merchant_pub=$2",
-      7),
+      "     AND merchant_pub=$2"),
     /* Query the 'refunds' by coin public key */
     GNUNET_PQ_make_prepare (
       "get_refunds_by_coin",
@@ -1362,8 +1304,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   ON (ref.coin_pub = kc.coin_pub)"
       " JOIN denominations denom"
       "   USING (denominations_serial)"
-      " WHERE ref.coin_pub=$1;",
-      1),
+      " WHERE ref.coin_pub=$1;"),
     /* Query the 'refunds' by coin public key, merchant_pub and contract hash 
*/
     GNUNET_PQ_make_prepare (
       "get_refunds_by_coin_and_contract",
@@ -1375,8 +1316,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   USING (coin_pub,deposit_serial_id)"
       " WHERE ref.coin_pub=$1"
       "   AND dep.merchant_pub=$2"
-      "   AND dep.h_contract_terms=$3;",
-      3),
+      "   AND dep.h_contract_terms=$3;"),
     /* Fetch refunds with rowid '\geq' the given parameter */
     GNUNET_PQ_make_prepare (
       "audit_get_refunds_incr",
@@ -1398,8 +1338,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   JOIN denominations denom"
       "     ON (kc.denominations_serial=denom.denominations_serial)"
       " WHERE ref.refund_serial_id>=$1"
-      " ORDER BY ref.refund_serial_id ASC;",
-      1),
+      " ORDER BY ref.refund_serial_id ASC;"),
     GNUNET_PQ_make_prepare (
       "test_refund_full",
       "SELECT"
@@ -1411,8 +1350,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   JOIN deposits dep"
       "     ON (ref.coin_pub=dep.coin_pub AND 
ref.deposit_serial_id=dep.deposit_serial_id)"
       " WHERE ref.refund_serial_id=$1"
-      " GROUP BY (dep.amount_with_fee_val, dep.amount_with_fee_frac);",
-      1),
+      " GROUP BY (dep.amount_with_fee_val, dep.amount_with_fee_frac);"),
 
     /* Store information about a /deposit the exchange is to execute.
        Used in #postgres_insert_deposit().  Only used in test cases. */
@@ -1437,8 +1375,7 @@ prepare_statements (struct PostgresClosure *pg)
       " $7, $8, $9, $10, $11, $12, $13"
       "    FROM known_coins"
       "   WHERE coin_pub=$1"
-      " ON CONFLICT DO NOTHING;",
-      13),
+      " ON CONFLICT DO NOTHING;"),
     /* Fetch an existing deposit request, used to ensure idempotency
        during /deposit processing. Used in #postgres_have_deposit(). */
     GNUNET_PQ_make_prepare (
@@ -1461,8 +1398,7 @@ prepare_statements (struct PostgresClosure *pg)
       " JOIN wire_targets wt USING (wire_target_h_payto)"
       " WHERE dep.coin_pub=$1"
       "   AND dep.merchant_pub=$3"
-      "   AND dep.h_contract_terms=$2;",
-      3),
+      "   AND dep.h_contract_terms=$2;"),
     /* Fetch deposits with rowid '\geq' the given parameter */
     GNUNET_PQ_make_prepare (
       "audit_get_deposits_incr",
@@ -1490,8 +1426,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE ("
       "  (deposit_serial_id>=$1)"
       " )"
-      " ORDER BY deposit_serial_id ASC;",
-      1),
+      " ORDER BY deposit_serial_id ASC;"),
     /* Fetch purse deposits with rowid '\geq' the given parameter */
     GNUNET_PQ_make_prepare (
       "audit_get_purse_deposits_incr",
@@ -1520,8 +1455,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE ("
       "  (purse_deposit_serial_id>=$1)"
       " )"
-      " ORDER BY purse_deposit_serial_id ASC;",
-      1),
+      " ORDER BY purse_deposit_serial_id ASC;"),
 
     GNUNET_PQ_make_prepare (
       "audit_get_account_merge_incr",
@@ -1545,8 +1479,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE ("
       "  (account_merge_request_serial_id>=$1)"
       " )"
-      " ORDER BY account_merge_request_serial_id ASC;",
-      1),
+      " ORDER BY account_merge_request_serial_id ASC;"),
 
     GNUNET_PQ_make_prepare (
       "audit_get_purse_merge_incr",
@@ -1569,8 +1502,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE ("
       "  (purse_merge_request_serial_id>=$1)"
       " )"
-      " ORDER BY purse_merge_request_serial_id ASC;",
-      1),
+      " ORDER BY purse_merge_request_serial_id ASC;"),
 
     GNUNET_PQ_make_prepare (
       "audit_get_history_requests_incr",
@@ -1585,9 +1517,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE ("
       "  (history_request_serial_id>=$1)"
       " )"
-      " ORDER BY history_request_serial_id ASC;",
-      1),
-
+      " ORDER BY history_request_serial_id ASC;"),
 
     GNUNET_PQ_make_prepare (
       "audit_get_purse_deposits_by_purse",
@@ -1600,8 +1530,7 @@ prepare_statements (struct PostgresClosure *pg)
       " FROM purse_deposits pd"
       " JOIN known_coins kc USING (coin_pub)"
       " JOIN denominations denom USING (denominations_serial)"
-      " WHERE purse_pub=$1;",
-      1),
+      " WHERE purse_pub=$1;"),
     GNUNET_PQ_make_prepare (
       "audit_get_purse_refunds_incr",
       "SELECT"
@@ -1611,8 +1540,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE ("
       "  (purse_refunds_serial_id>=$1)"
       " )"
-      " ORDER BY purse_refunds_serial_id ASC;",
-      1),
+      " ORDER BY purse_refunds_serial_id ASC;"),
     /* Fetch an existing deposit request.
        Used in #postgres_lookup_transfer_by_deposit(). */
     GNUNET_PQ_make_prepare (
@@ -1639,8 +1567,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE dep.coin_pub=$1"
       "   AND dep.merchant_pub=$3"
       "   AND dep.h_contract_terms=$2"
-      " LIMIT 1;",
-      3),
+      " LIMIT 1;"),
     /* Used in #postgres_get_ready_deposit() */
     GNUNET_PQ_make_prepare (
       "deposits_get_ready",
@@ -1659,8 +1586,7 @@ prepare_statements (struct PostgresClosure *pg)
       " ORDER BY "
       "   dbr.wire_deadline ASC"
       "  ,dbr.shard ASC"
-      " LIMIT 1;",
-      3),
+      " LIMIT 1;"),
     /* Used in #postgres_aggregate() */
     GNUNET_PQ_make_prepare (
       "aggregate",
@@ -1745,8 +1671,7 @@ prepare_statements (struct PostgresClosure *pg)
       " ,COALESCE(SUM(fees.fee_frac),0) AS sum_fee_fraction"
       " FROM dep "
       "   FULL OUTER JOIN ref ON (FALSE)"    /* We just want all sums */
-      "   FULL OUTER JOIN fees ON (FALSE);",
-      4),
+      "   FULL OUTER JOIN fees ON (FALSE);"),
 
 
     /* Used in #postgres_create_aggregation_transient() */
@@ -1760,8 +1685,7 @@ prepare_statements (struct PostgresClosure *pg)
       " ,legitimization_requirement_serial_id"
       " ,exchange_account_section"
       " ,wtid_raw)"
-      " VALUES ($1, $2, $3, $4, $5, $6, $7);",
-      7),
+      " VALUES ($1, $2, $3, $4, $5, $6, $7);"),
     /* Used in #postgres_select_aggregation_transient() */
     GNUNET_PQ_make_prepare (
       "select_aggregation_transient",
@@ -1772,8 +1696,7 @@ prepare_statements (struct PostgresClosure *pg)
       " FROM aggregation_transient"
       " WHERE wire_target_h_payto=$1"
       "   AND merchant_pub=$2"
-      "   AND exchange_account_section=$3;",
-      3),
+      "   AND exchange_account_section=$3;"),
     /* Used in #postgres_find_aggregation_transient() */
     GNUNET_PQ_make_prepare (
       "find_transient_aggregations",
@@ -1785,8 +1708,7 @@ prepare_statements (struct PostgresClosure *pg)
       " ,payto_uri"
       " FROM aggregation_transient atr"
       " JOIN wire_targets wt USING (wire_target_h_payto)"
-      " WHERE atr.wire_target_h_payto=$1;",
-      1),
+      " WHERE atr.wire_target_h_payto=$1;"),
     /* Used in #postgres_update_aggregation_transient() */
     GNUNET_PQ_make_prepare (
       "update_aggregation_transient",
@@ -1795,15 +1717,13 @@ prepare_statements (struct PostgresClosure *pg)
       "    ,amount_frac=$2"
       "    ,legitimization_requirement_serial_id=$5"
       " WHERE wire_target_h_payto=$3"
-      "   AND wtid_raw=$4",
-      5),
+      "   AND wtid_raw=$4"),
     /* Used in #postgres_delete_aggregation_transient() */
     GNUNET_PQ_make_prepare (
       "delete_aggregation_transient",
       "DELETE FROM aggregation_transient"
       " WHERE wire_target_h_payto=$1"
-      "   AND wtid_raw=$2",
-      2),
+      "   AND wtid_raw=$2"),
 
     /* Used in #postgres_get_coin_transactions() to obtain information
        about how a coin has been spend with /deposit requests. */
@@ -1833,8 +1753,7 @@ prepare_statements (struct PostgresClosure *pg)
       "      ON (kc.coin_pub = dep.coin_pub)"
       "    JOIN denominations denoms"
       "      USING (denominations_serial)"
-      " WHERE dep.coin_pub=$1;",
-      1),
+      " WHERE dep.coin_pub=$1;"),
 
     /* Used in #postgres_get_link_data(). */
     GNUNET_PQ_make_prepare (
@@ -1855,8 +1774,7 @@ prepare_statements (struct PostgresClosure *pg)
       "     JOIN denominations denoms"
       "       ON (rrc.denominations_serial = denoms.denominations_serial)"
       " WHERE old_coin_pub=$1"
-      " ORDER BY tp.transfer_pub, rrc.freshcoin_index ASC",
-      1),
+      " ORDER BY tp.transfer_pub, rrc.freshcoin_index ASC"),
     /* Used in #postgres_lookup_wire_transfer */
     GNUNET_PQ_make_prepare (
       "lookup_transactions",
@@ -1884,8 +1802,7 @@ prepare_statements (struct PostgresClosure *pg)
       "      USING (denominations_serial)"
       "    JOIN wire_out"
       "      USING (wtid_raw)"
-      " WHERE wtid_raw=$1;",
-      1),
+      " WHERE wtid_raw=$1;"),
     /* Used in #postgres_lookup_transfer_by_deposit */
     GNUNET_PQ_make_prepare (
       "lookup_deposit_wtid",
@@ -1911,8 +1828,7 @@ prepare_statements (struct PostgresClosure *pg)
       "      USING (wtid_raw)"
       " WHERE dep.coin_pub=$1"
       "   AND dep.merchant_pub=$3"
-      "   AND dep.h_contract_terms=$2",
-      3),
+      "   AND dep.h_contract_terms=$2"),
     /* Used in #postgres_insert_aggregation_tracking */
     GNUNET_PQ_make_prepare (
       "insert_aggregation_tracking",
@@ -1920,8 +1836,7 @@ prepare_statements (struct PostgresClosure *pg)
       "(deposit_serial_id"
       ",wtid_raw"
       ") VALUES "
-      "($1, $2);",
-      2),
+      "($1, $2);"),
     /* Used in #postgres_get_wire_fee() */
     GNUNET_PQ_make_prepare (
       "get_wire_fee",
@@ -1938,8 +1853,7 @@ prepare_statements (struct PostgresClosure *pg)
       " FROM wire_fee"
       " WHERE wire_method=$1"
       "   AND start_date <= $2"
-      "   AND end_date > $2;",
-      2),
+      "   AND end_date > $2;"),
     /* Used in #postgres_get_global_fee() */
     GNUNET_PQ_make_prepare (
       "get_global_fee",
@@ -1961,8 +1875,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",master_sig"
       " FROM global_fee"
       " WHERE start_date <= $1"
-      "   AND end_date > $1;",
-      1),
+      "   AND end_date > $1;"),
     /* Used in #postgres_get_global_fees() */
     GNUNET_PQ_make_prepare (
       "get_global_fees",
@@ -1983,8 +1896,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",purse_account_limit"
       ",master_sig"
       " FROM global_fee"
-      " WHERE start_date >= $1",
-      1),
+      " WHERE start_date >= $1"),
     /* Used in #postgres_insert_wire_fee */
     GNUNET_PQ_make_prepare (
       "insert_wire_fee",
@@ -2000,8 +1912,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",wad_fee_frac"
       ",master_sig"
       ") VALUES "
-      "($1, $2, $3, $4, $5, $6, $7, $8, $9, $10);",
-      10),
+      "($1, $2, $3, $4, $5, $6, $7, $8, $9, $10);"),
     /* Used in #postgres_insert_global_fee */
     GNUNET_PQ_make_prepare (
       "insert_global_fee",
@@ -2022,8 +1933,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",purse_account_limit"
       ",master_sig"
       ") VALUES "
-      "($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15);",
-      15),
+      "($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15);"),
     /* Used in #postgres_store_wire_transfer_out */
     GNUNET_PQ_make_prepare (
       "insert_wire_out",
@@ -2035,8 +1945,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",amount_val"
       ",amount_frac"
       ") VALUES "
-      "($1, $2, $3, $4, $5, $6);",
-      6),
+      "($1, $2, $3, $4, $5, $6);"),
     /* Used in #postgres_wire_prepare_data_insert() to store
        wire transfer information before actually committing it with the bank */
     GNUNET_PQ_make_prepare (
@@ -2045,22 +1954,19 @@ prepare_statements (struct PostgresClosure *pg)
       "(wire_method"
       ",buf"
       ") VALUES "
-      "($1, $2);",
-      2),
+      "($1, $2);"),
     /* Used in #postgres_wire_prepare_data_mark_finished() */
     GNUNET_PQ_make_prepare (
       "wire_prepare_data_mark_done",
       "UPDATE prewire"
       " SET finished=TRUE"
-      " WHERE prewire_uuid=$1;",
-      1),
+      " WHERE prewire_uuid=$1;"),
     /* Used in #postgres_wire_prepare_data_mark_failed() */
     GNUNET_PQ_make_prepare (
       "wire_prepare_data_mark_failed",
       "UPDATE prewire"
       " SET failed=TRUE"
-      " WHERE prewire_uuid=$1;",
-      1),
+      " WHERE prewire_uuid=$1;"),
     /* Used in #postgres_wire_prepare_data_get() */
     GNUNET_PQ_make_prepare (
       "wire_prepare_data_get",
@@ -2073,8 +1979,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   AND finished=FALSE"
       "   AND failed=FALSE"
       " ORDER BY prewire_uuid ASC"
-      " LIMIT $2;",
-      2),
+      " LIMIT $2;"),
     /* Used in #postgres_select_deposits_missing_wire */
     // FIXME: used by the auditor; can probably be done
     // smarter by checking if 'done' or 'blocked'
@@ -2103,8 +2008,7 @@ prepare_statements (struct PostgresClosure *pg)
       "       OR EXISTS (SELECT 1"
       "            FROM aggregation_tracking"
       "            WHERE (aggregation_tracking.deposit_serial_id = 
d.deposit_serial_id)))"
-      " ORDER BY wire_deadline ASC",
-      2),
+      " ORDER BY wire_deadline ASC"),
     /* Used in #postgres_select_wire_out_above_serial_id() */
     GNUNET_PQ_make_prepare (
       "audit_get_wire_incr",
@@ -2119,8 +2023,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   JOIN wire_targets"
       "     USING (wire_target_h_payto)"
       " WHERE wireout_uuid>=$1"
-      " ORDER BY wireout_uuid ASC;",
-      1),
+      " ORDER BY wireout_uuid ASC;"),
     /* Used in #postgres_select_wire_out_above_serial_id_by_account() */
     GNUNET_PQ_make_prepare (
       "audit_get_wire_incr_by_account",
@@ -2137,8 +2040,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE "
       "      wireout_uuid>=$1 "
       "  AND exchange_account_section=$2"
-      " ORDER BY wireout_uuid ASC;",
-      2),
+      " ORDER BY wireout_uuid ASC;"),
     /* Used in #postgres_select_recoup_above_serial_id() to obtain recoup 
transactions */
     GNUNET_PQ_make_prepare (
       "recoup_get_incr",
@@ -2166,8 +2068,7 @@ prepare_statements (struct PostgresClosure *pg)
       "    JOIN denominations denoms"
       "      ON (coins.denominations_serial = denoms.denominations_serial)"
       " WHERE recoup_uuid>=$1"
-      " ORDER BY recoup_uuid ASC;",
-      1),
+      " ORDER BY recoup_uuid ASC;"),
     /* Used in #postgres_select_recoup_refresh_above_serial_id() to obtain
        recoup-refresh transactions */
     GNUNET_PQ_make_prepare (
@@ -2201,8 +2102,7 @@ prepare_statements (struct PostgresClosure *pg)
       "    INNER JOIN denominations old_denoms"
       "      ON (old_coins.denominations_serial = 
old_denoms.denominations_serial)"
       " WHERE recoup_refresh_uuid>=$1"
-      " ORDER BY recoup_refresh_uuid ASC;",
-      1),
+      " ORDER BY recoup_refresh_uuid ASC;"),
     /* Used in #postgres_select_reserve_closed_above_serial_id() to
        obtain information about closed reserves */
     GNUNET_PQ_make_prepare (
@@ -2223,8 +2123,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   JOIN reserves"
       "     USING (reserve_pub)"
       " WHERE close_uuid>=$1"
-      " ORDER BY close_uuid ASC;",
-      1),
+      " ORDER BY close_uuid ASC;"),
     /* Used in #postgres_get_reserve_history() to obtain recoup transactions
        for a reserve - query optimization should be disabled i.e.
        BEGIN; SET LOCAL join_collapse_limit=1; query; COMMIT; */
@@ -2266,8 +2165,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  ,robr.denom_sig "
       "FROM denominations "
       "  JOIN exchange_do_recoup_by_reserve($1) robr"
-      " USING (denominations_serial);",
-      1),
+      " USING (denominations_serial);"),
     /* Used in #postgres_get_reserve_status() to obtain recoup transactions
        for a reserve - query optimization should be disabled i.e.
        BEGIN; SET LOCAL join_collapse_limit=1; query; COMMIT; */
@@ -2311,8 +2209,7 @@ prepare_statements (struct PostgresClosure *pg)
       "FROM denominations "
       "  JOIN exchange_do_recoup_by_reserve($1) robr"
       "    USING (denominations_serial)"
-      " WHERE recoup_timestamp>=$2;",
-      2),
+      " WHERE recoup_timestamp>=$2;"),
     /* Used in #postgres_get_coin_transactions() to obtain recoup transactions
        affecting old coins of refreshed coins */
     GNUNET_PQ_make_prepare (
@@ -2337,8 +2234,7 @@ prepare_statements (struct PostgresClosure *pg)
       "    FROM refresh_commitments"
       "       JOIN refresh_revealed_coins rrc"
       "           USING (melt_serial_id)"
-      "    WHERE old_coin_pub=$1);",
-      1),
+      "    WHERE old_coin_pub=$1);"),
     /* Used in #postgres_get_reserve_history() */
     GNUNET_PQ_make_prepare (
       "close_by_reserve",
@@ -2353,8 +2249,7 @@ prepare_statements (struct PostgresClosure *pg)
       " FROM reserves_close"
       "   JOIN wire_targets"
       "     USING (wire_target_h_payto)"
-      " WHERE reserve_pub=$1;",
-      1),
+      " WHERE reserve_pub=$1;"),
     /* Used in #postgres_get_reserve_status() */
     GNUNET_PQ_make_prepare (
       "close_by_reserve_truncated",
@@ -2370,8 +2265,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   JOIN wire_targets"
       "     USING (wire_target_h_payto)"
       " WHERE reserve_pub=$1"
-      "   AND execution_date>=$2;",
-      2),
+      "   AND execution_date>=$2;"),
     /* Used in #postgres_get_reserve_history() */
     GNUNET_PQ_make_prepare (
       "merge_by_reserve",
@@ -2399,8 +2293,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE pm.reserve_pub=$1"
       "  AND pm.partner_serial_id=0" /* must be local! */
       "  AND pr.finished"
-      "  AND NOT pr.refunded;",
-      1),
+      "  AND NOT pr.refunded;"),
     /* Used in #postgres_get_reserve_status() */
     GNUNET_PQ_make_prepare (
       "merge_by_reserve_truncated",
@@ -2429,8 +2322,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  AND pm.merge_timestamp >= $2"
       "  AND pm.partner_serial_id=0" /* must be local! */
       "  AND pr.finished"
-      "  AND NOT pr.refunded;",
-      2),
+      "  AND NOT pr.refunded;"),
     /* Used in #postgres_get_reserve_history() */
     GNUNET_PQ_make_prepare (
       "history_by_reserve",
@@ -2440,8 +2332,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",request_timestamp"
       ",reserve_sig"
       " FROM history_requests"
-      " WHERE reserve_pub=$1;",
-      1),
+      " WHERE reserve_pub=$1;"),
     /* Used in #postgres_get_reserve_status() */
     GNUNET_PQ_make_prepare (
       "history_by_reserve_truncated",
@@ -2452,8 +2343,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",reserve_sig"
       " FROM history_requests"
       " WHERE reserve_pub=$1"
-      "  AND request_timestamp>=$2;",
-      2),
+      "  AND request_timestamp>=$2;"),
     /* Used in #postgres_get_expired_reserves() */
     GNUNET_PQ_make_prepare (
       "get_expired_reserves",
@@ -2479,8 +2369,7 @@ prepare_statements (struct PostgresClosure *pg)
       "     SELECT reserve_pub FROM ed) "
       " ) ri "
       "JOIN wire_targets wt ON (ri.wire_source_h_payto = 
wt.wire_target_h_payto) "
-      "JOIN ed ON (ri.reserve_pub = ed.reserve_pub); ",
-      1),
+      "JOIN ed ON (ri.reserve_pub = ed.reserve_pub);"),
     /* Used in #postgres_get_coin_transactions() to obtain recoup transactions
        for a coin */
     GNUNET_PQ_make_prepare (
@@ -2507,8 +2396,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   USING (coin_pub)"
       " JOIN denominations denoms"
       "   ON (denoms.denominations_serial = coins.denominations_serial)"
-      " WHERE coins.coin_pub=$1;",
-      1),
+      " WHERE coins.coin_pub=$1;"),
     /* Used in #postgres_get_coin_transactions() to obtain recoup transactions
        for a refreshed coin */
     GNUNET_PQ_make_prepare (
@@ -2534,8 +2422,7 @@ prepare_statements (struct PostgresClosure *pg)
       "      ON (recoup_refresh.coin_pub = coins.coin_pub)"
       "    JOIN denominations denoms"
       "      ON (denoms.denominations_serial = coins.denominations_serial)"
-      " WHERE coins.coin_pub=$1;",
-      1),
+      " WHERE coins.coin_pub=$1;"),
     /* Used in #postgres_get_reserve_by_h_blind() */
     GNUNET_PQ_make_prepare (
       "reserve_by_h_blind",
@@ -2546,8 +2433,7 @@ prepare_statements (struct PostgresClosure *pg)
       " JOIN reserves"
       "   USING (reserve_uuid)"
       " WHERE h_blind_ev=$1"
-      " LIMIT 1;",
-      1),
+      " LIMIT 1;"),
     /* Used in #postgres_get_old_coin_by_h_blind() */
     GNUNET_PQ_make_prepare (
       "old_coin_by_h_blind",
@@ -2558,16 +2444,14 @@ prepare_statements (struct PostgresClosure *pg)
       " JOIN refresh_commitments rcom USING (melt_serial_id)"
       " JOIN known_coins okc ON (rcom.old_coin_pub = okc.coin_pub)"
       " WHERE h_coin_ev=$1"
-      " LIMIT 1;",
-      1),
+      " LIMIT 1;"),
     /* Used in #postgres_lookup_auditor_timestamp() */
     GNUNET_PQ_make_prepare (
       "lookup_auditor_timestamp",
       "SELECT"
       " last_change"
       " FROM auditors"
-      " WHERE auditor_pub=$1;",
-      1),
+      " WHERE auditor_pub=$1;"),
     /* Used in #postgres_lookup_auditor_status() */
     GNUNET_PQ_make_prepare (
       "lookup_auditor_status",
@@ -2575,16 +2459,14 @@ prepare_statements (struct PostgresClosure *pg)
       " auditor_url"
       ",is_active"
       " FROM auditors"
-      " WHERE auditor_pub=$1;",
-      1),
+      " WHERE auditor_pub=$1;"),
     /* Used in #postgres_lookup_wire_timestamp() */
     GNUNET_PQ_make_prepare (
       "lookup_wire_timestamp",
       "SELECT"
       " last_change"
       " FROM wire_accounts"
-      " WHERE payto_uri=$1;",
-      1),
+      " WHERE payto_uri=$1;"),
     /* used in #postgres_insert_auditor() */
     GNUNET_PQ_make_prepare (
       "insert_auditor",
@@ -2595,8 +2477,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",is_active"
       ",last_change"
       ") VALUES "
-      "($1, $2, $3, true, $4);",
-      4),
+      "($1, $2, $3, true, $4);"),
     /* used in #postgres_update_auditor() */
     GNUNET_PQ_make_prepare (
       "update_auditor",
@@ -2606,8 +2487,7 @@ prepare_statements (struct PostgresClosure *pg)
       " ,auditor_name=$3"
       " ,is_active=$4"
       " ,last_change=$5"
-      " WHERE auditor_pub=$1",
-      5),
+      " WHERE auditor_pub=$1"),
     /* used in #postgres_insert_wire() */
     GNUNET_PQ_make_prepare (
       "insert_wire",
@@ -2617,8 +2497,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",is_active"
       ",last_change"
       ") VALUES "
-      "($1, $2, true, $3);",
-      3),
+      "($1, $2, true, $3);"),
     /* used in #postgres_update_wire() */
     GNUNET_PQ_make_prepare (
       "update_wire",
@@ -2626,8 +2505,7 @@ prepare_statements (struct PostgresClosure *pg)
       " SET"
       "  is_active=$2"
       " ,last_change=$3"
-      " WHERE payto_uri=$1",
-      3),
+      " WHERE payto_uri=$1"),
     /* used in #postgres_update_wire() */
     GNUNET_PQ_make_prepare (
       "get_wire_accounts",
@@ -2635,8 +2513,7 @@ prepare_statements (struct PostgresClosure *pg)
       " payto_uri"
       ",master_sig"
       " FROM wire_accounts"
-      " WHERE is_active",
-      0),
+      " WHERE is_active"),
     /* used in #postgres_update_wire() */
     GNUNET_PQ_make_prepare (
       "get_wire_fees",
@@ -2651,8 +2528,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",end_date"
       ",master_sig"
       " FROM wire_fee"
-      " WHERE wire_method=$1",
-      1),
+      " WHERE wire_method=$1"),
     /* used in #postgres_insert_signkey_revocation() */
     GNUNET_PQ_make_prepare (
       "insert_signkey_revocation",
@@ -2661,8 +2537,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",master_sig"
       ") SELECT esk_serial, $2 "
       "    FROM exchange_sign_keys"
-      "   WHERE exchange_pub=$1;",
-      2),
+      "   WHERE exchange_pub=$1;"),
     /* used in #postgres_insert_signkey_revocation() */
     GNUNET_PQ_make_prepare (
       "lookup_signkey_revocation",
@@ -2672,8 +2547,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE esk_serial="
       "   (SELECT esk_serial"
       "      FROM exchange_sign_keys"
-      "     WHERE exchange_pub=$1);",
-      1),
+      "     WHERE exchange_pub=$1);"),
     /* used in #postgres_insert_signkey() */
     GNUNET_PQ_make_prepare (
       "insert_signkey",
@@ -2684,8 +2558,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",expire_legal"
       ",master_sig"
       ") VALUES "
-      "($1, $2, $3, $4, $5);",
-      5),
+      "($1, $2, $3, $4, $5);"),
     /* used in #postgres_lookup_signing_key() */
     GNUNET_PQ_make_prepare (
       "lookup_signing_key",
@@ -2694,8 +2567,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",expire_sign"
       ",expire_legal"
       " FROM exchange_sign_keys"
-      " WHERE exchange_pub=$1",
-      1),
+      " WHERE exchange_pub=$1"),
     /* used in #postgres_lookup_denomination_key() */
     GNUNET_PQ_make_prepare (
       "lookup_denomination_key",
@@ -2716,8 +2588,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",fee_refund_frac"
       ",age_mask"
       " FROM denominations"
-      " WHERE denom_pub_hash=$1;",
-      1),
+      " WHERE denom_pub_hash=$1;"),
     /* used in #postgres_insert_auditor_denom_sig() */
     GNUNET_PQ_make_prepare (
       "insert_auditor_denom_sig",
@@ -2732,8 +2603,7 @@ prepare_statements (struct PostgresClosure *pg)
       ") SELECT ax.auditor_uuid, denominations_serial, $3 "
       "    FROM denominations"
       "   CROSS JOIN ax"
-      "   WHERE denom_pub_hash=$2;",
-      3),
+      "   WHERE denom_pub_hash=$2;"),
     /* used in #postgres_select_auditor_denom_sig() */
     GNUNET_PQ_make_prepare (
       "select_auditor_denom_sig",
@@ -2747,8 +2617,7 @@ prepare_statements (struct PostgresClosure *pg)
       " AND denominations_serial="
       "  (SELECT denominations_serial"
       "    FROM denominations"
-      "    WHERE denom_pub_hash=$2);",
-      2),
+      "    WHERE denom_pub_hash=$2);"),
     /* used in #postgres_lookup_wire_fee_by_time() */
     GNUNET_PQ_make_prepare (
       "lookup_wire_fee_by_time",
@@ -2762,8 +2631,7 @@ prepare_statements (struct PostgresClosure *pg)
       " FROM wire_fee"
       " WHERE wire_method=$1"
       " AND end_date > $2"
-      " AND start_date < $3;",
-      1),
+      " AND start_date < $3;"),
     /* used in #postgres_lookup_wire_fee_by_time() */
     GNUNET_PQ_make_prepare (
       "lookup_global_fee_by_time",
@@ -2782,13 +2650,11 @@ prepare_statements (struct PostgresClosure *pg)
       ",purse_account_limit"
       " FROM global_fee"
       " WHERE end_date > $1"
-      "   AND start_date < $2;",
-      1),
+      "   AND start_date < $2;"),
     /* used in #postgres_commit */
     GNUNET_PQ_make_prepare (
       "do_commit",
-      "COMMIT",
-      0),
+      "COMMIT"),
     /* Used in #postgres_begin_shard() */
     GNUNET_PQ_make_prepare (
       "get_open_shard",
@@ -2800,8 +2666,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   AND completed=FALSE"
       "   AND last_attempt<$2"
       " ORDER BY last_attempt ASC"
-      " LIMIT 1;",
-      2),
+      " LIMIT 1;"),
     /* Used in #postgres_begin_revolving_shard() */
     GNUNET_PQ_make_prepare (
       "get_open_revolving_shard",
@@ -2812,8 +2677,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE job_name=$1"
       "   AND active=FALSE"
       " ORDER BY last_attempt ASC"
-      " LIMIT 1;",
-      2),
+      " LIMIT 1;"),
     /* Used in #postgres_begin_shard() */
     GNUNET_PQ_make_prepare (
       "reclaim_shard",
@@ -2821,8 +2685,7 @@ prepare_statements (struct PostgresClosure *pg)
       " SET last_attempt=$2"
       " WHERE job_name=$1"
       "   AND start_row=$3"
-      "   AND end_row=$4",
-      4),
+      "   AND end_row=$4"),
     /* Used in #postgres_begin_revolving_shard() */
     GNUNET_PQ_make_prepare (
       "reclaim_revolving_shard",
@@ -2831,8 +2694,7 @@ prepare_statements (struct PostgresClosure *pg)
       "    ,active=TRUE"
       " WHERE job_name=$1"
       "   AND start_row=$3"
-      "   AND end_row=$4",
-      4),
+      "   AND end_row=$4"),
     /* Used in #postgres_begin_shard() */
     GNUNET_PQ_make_prepare (
       "get_last_shard",
@@ -2841,8 +2703,7 @@ prepare_statements (struct PostgresClosure *pg)
       " FROM work_shards"
       " WHERE job_name=$1"
       " ORDER BY end_row DESC"
-      " LIMIT 1;",
-      1),
+      " LIMIT 1;"),
     /* Used in #postgres_begin_revolving_shard() */
     GNUNET_PQ_make_prepare (
       "get_last_revolving_shard",
@@ -2851,8 +2712,7 @@ prepare_statements (struct PostgresClosure *pg)
       " FROM revolving_work_shards"
       " WHERE job_name=$1"
       " ORDER BY end_row DESC"
-      " LIMIT 1;",
-      1),
+      " LIMIT 1;"),
     /* Used in #postgres_abort_shard() */
     GNUNET_PQ_make_prepare (
       "abort_shard",
@@ -2860,8 +2720,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   SET last_attempt=0"
       " WHERE job_name = $1 "
       "    AND start_row = $2 "
-      "    AND end_row = $3;",
-      3),
+      "    AND end_row = $3;"),
     /* Used in #postgres_begin_shard() */
     GNUNET_PQ_make_prepare (
       "claim_next_shard",
@@ -2871,8 +2730,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",start_row"
       ",end_row"
       ") VALUES "
-      "($1, $2, $3, $4);",
-      4),
+      "($1, $2, $3, $4);"),
     /* Used in #postgres_claim_revolving_shard() */
     GNUNET_PQ_make_prepare (
       "create_revolving_shard",
@@ -2883,8 +2741,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",end_row"
       ",active"
       ") VALUES "
-      "($1, $2, $3, $4, TRUE);",
-      4),
+      "($1, $2, $3, $4, TRUE);"),
     /* Used in #postgres_complete_shard() */
     GNUNET_PQ_make_prepare (
       "complete_shard",
@@ -2892,8 +2749,7 @@ prepare_statements (struct PostgresClosure *pg)
       " SET completed=TRUE"
       " WHERE job_name=$1"
       "   AND start_row=$2"
-      "   AND end_row=$3",
-      3),
+      "   AND end_row=$3"),
     /* Used in #postgres_complete_shard() */
     GNUNET_PQ_make_prepare (
       "release_revolving_shard",
@@ -2901,23 +2757,20 @@ prepare_statements (struct PostgresClosure *pg)
       " SET active=FALSE"
       " WHERE job_name=$1"
       "   AND start_row=$2"
-      "   AND end_row=$3",
-      3),
+      "   AND end_row=$3"),
     /* Used in #postgres_set_extension_config */
     GNUNET_PQ_make_prepare (
       "set_extension_config",
       "INSERT INTO extensions (name, config) VALUES ($1, $2) "
       "ON CONFLICT (name) "
-      "DO UPDATE SET config=$2",
-      2),
+      "DO UPDATE SET config=$2"),
     /* Used in #postgres_get_extension_config */
     GNUNET_PQ_make_prepare (
       "get_extension_config",
       "SELECT "
       " config "
       "FROM extensions"
-      "   WHERE name=$1;",
-      1),
+      "   WHERE name=$1;"),
     /* Used in #postgres_insert_contract() */
     GNUNET_PQ_make_prepare (
       "insert_contract",
@@ -2931,8 +2784,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  $1, $2, $3, $4, purse_expiration"
       "  FROM purse_requests"
       "  WHERE purse_pub=$1"
-      "  ON CONFLICT DO NOTHING;",
-      4),
+      "  ON CONFLICT DO NOTHING;"),
     /* Used in #postgres_select_contract */
     GNUNET_PQ_make_prepare (
       "select_contract",
@@ -2941,8 +2793,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",e_contract"
       ",contract_sig"
       " FROM contracts"
-      "   WHERE pub_ckey=$1;",
-      1),
+      "   WHERE pub_ckey=$1;"),
     /* Used in #postgres_select_contract_by_purse */
     GNUNET_PQ_make_prepare (
       "select_contract_by_purse",
@@ -2951,8 +2802,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",e_contract"
       ",contract_sig"
       " FROM contracts"
-      "   WHERE purse_pub=$1;",
-      1),
+      "   WHERE purse_pub=$1;"),
     /* Used in #postgres_insert_purse_request() */
     GNUNET_PQ_make_prepare (
       "insert_purse_request",
@@ -2972,8 +2822,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  ,purse_sig"
       "  ) VALUES "
       "  ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13)"
-      "  ON CONFLICT DO NOTHING;",
-      13),
+      "  ON CONFLICT DO NOTHING;"),
     /* Used in #postgres_select_purse */
     GNUNET_PQ_make_prepare (
       "select_purse",
@@ -2988,8 +2837,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",merge_timestamp"
       " FROM purse_requests"
       " LEFT JOIN purse_merges USING (purse_pub)"
-      " WHERE purse_pub=$1;",
-      1),
+      " WHERE purse_pub=$1;"),
     /* Used in #postgres_select_purse_request */
     GNUNET_PQ_make_prepare (
       "select_purse_request",
@@ -3004,8 +2852,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",balance_frac"
       ",purse_sig"
       " FROM purse_requests"
-      " WHERE purse_pub=$1;",
-      1),
+      " WHERE purse_pub=$1;"),
     /* Used in #postgres_select_purse_by_merge_pub */
     GNUNET_PQ_make_prepare (
       "select_purse_by_merge_pub",
@@ -3020,8 +2867,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",balance_frac"
       ",purse_sig"
       " FROM purse_requests"
-      " WHERE merge_pub=$1;",
-      1),
+      " WHERE merge_pub=$1;"),
     /* Used in #postgres_get_purse_deposit */
     GNUNET_PQ_make_prepare (
       "select_purse_deposit_by_coin_pub",
@@ -3037,8 +2883,7 @@ prepare_statements (struct PostgresClosure *pg)
       " JOIN known_coins kc USING (coin_pub)"
       " JOIN denominations USING (denominations_serial)"
       " WHERE coin_pub=$2"
-      "   AND purse_pub=$1;",
-      2),
+      "   AND purse_pub=$1;"),
     /* Used in #postgres_do_purse_merge() */
     GNUNET_PQ_make_prepare (
       "call_purse_merge",
@@ -3047,8 +2892,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",out_no_balance AS no_balance"
       ",out_conflict AS conflict"
       " FROM exchange_do_purse_merge"
-      "  ($1, $2, $3, $4, $5, $6, $7, $8);",
-      7),
+      "  ($1, $2, $3, $4, $5, $6, $7, $8);"),
     /* Used in #postgres_do_reserve_purse() */
     GNUNET_PQ_make_prepare (
       "call_reserve_purse",
@@ -3057,8 +2901,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",out_no_reserve AS no_reserve"
       ",out_conflict AS conflict"
       " FROM exchange_do_reserve_purse"
-      "  ($1, $2, $3, $4, $5, $6, $7, $8, $9);",
-      9),
+      "  ($1, $2, $3, $4, $5, $6, $7, $8, $9);"),
     /* Used in #postgres_select_purse_merge */
     GNUNET_PQ_make_prepare (
       "select_purse_merge",
@@ -3069,15 +2912,13 @@ prepare_statements (struct PostgresClosure *pg)
       ",partner_base_url"
       " FROM purse_merges"
       " LEFT JOIN partners USING (partner_serial_id)"
-      " WHERE purse_pub=$1;",
-      1),
+      " WHERE purse_pub=$1;"),
     /* Used in #postgres_do_account_merge() */
     GNUNET_PQ_make_prepare (
       "call_account_merge",
       "SELECT 1"
       " FROM exchange_do_account_merge"
-      "  ($1, $2, $3);",
-      3),
+      "  ($1, $2, $3);"),
     /* Used in #postgres_insert_history_request() */
     GNUNET_PQ_make_prepare (
       "call_history_request",
@@ -3085,8 +2926,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  out_balance_ok AS balance_ok"
       " ,out_idempotent AS idempotent"
       " FROM exchange_do_history_request"
-      "  ($1, $2, $3, $4, $5)",
-      5),
+      "  ($1, $2, $3, $4, $5)"),
 
     /* Used in #postgres_insert_kyc_requirement_for_account() */
     GNUNET_PQ_make_prepare (
@@ -3098,8 +2938,7 @@ prepare_statements (struct PostgresClosure *pg)
       "  ($1, $2)"
       " ON CONFLICT (h_payto,required_checks) "
       "   DO UPDATE SET h_payto=$1" /* syntax requirement: dummy op */
-      " RETURNING legitimization_requirement_serial_id",
-      2),
+      " RETURNING legitimization_requirement_serial_id"),
     /* Used in #postgres_insert_kyc_requirement_process() */
     GNUNET_PQ_make_prepare (
       "insert_legitimization_process",
@@ -3114,8 +2953,7 @@ prepare_statements (struct PostgresClosure *pg)
       "   DO UPDATE SET"
       "      provider_user_id=$3"
       "     ,provider_legitimization_id=$4"
-      " RETURNING legitimization_process_serial_id",
-      4),
+      " RETURNING legitimization_process_serial_id"),
     /* Used in #postgres_update_kyc_requirement_by_row() */
     GNUNET_PQ_make_prepare (
       "update_legitimization_process",
@@ -3126,16 +2964,14 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE"
       "      h_payto=$3"
       "  AND legitimization_process_serial_id=$1"
-      "  AND provider_section=$2;",
-      6),
+      "  AND provider_section=$2;"),
     GNUNET_PQ_make_prepare (
       "alert_kyc_status_change",
       "INSERT INTO kyc_alerts"
       " (h_payto"
       " ,trigger_type)"
       " VALUES"
-      " ($1,$2);",
-      2),
+      " ($1,$2);"),
     /* Used in #postgres_lookup_kyc_requirement_by_row() */
     GNUNET_PQ_make_prepare (
       "lookup_legitimization_requirement_by_row",
@@ -3143,8 +2979,7 @@ prepare_statements (struct PostgresClosure *pg)
       " required_checks"
       ",h_payto"
       " FROM legitimization_requirements"
-      " WHERE legitimization_requirement_serial_id=$1;",
-      1),
+      " WHERE legitimization_requirement_serial_id=$1;"),
     /* Used in #postgres_lookup_kyc_process_by_account() */
     GNUNET_PQ_make_prepare (
       "lookup_process_by_account",
@@ -3155,8 +2990,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",provider_legitimization_id"
       " FROM legitimization_processes"
       " WHERE h_payto=$1"
-      "   AND provider_section=$2;",
-      2),
+      "   AND provider_section=$2;"),
     /* Used in #postgres_kyc_provider_account_lookup() */
     GNUNET_PQ_make_prepare (
       "get_wire_target_by_legitimization_id",
@@ -3165,8 +2999,7 @@ prepare_statements (struct PostgresClosure *pg)
       ",legitimization_process_serial_id"
       " FROM legitimization_processes"
       " WHERE provider_legitimization_id=$1"
-      "   AND provider_section=$2;",
-      2),
+      "   AND provider_section=$2;"),
     /* Used in #postgres_select_satisfied_kyc_processes() */
     GNUNET_PQ_make_prepare (
       "get_satisfied_legitimizations",
@@ -3174,8 +3007,7 @@ prepare_statements (struct PostgresClosure *pg)
       " provider_section"
       " FROM legitimization_processes"
       " WHERE h_payto=$1"
-      "   AND expiration_time>=$2;",
-      2),
+      "   AND expiration_time>=$2;"),
 
     /* Used in #postgres_select_withdraw_amounts_for_kyc_check (
 () */
@@ -3191,8 +3023,7 @@ prepare_statements (struct PostgresClosure *pg)
       " JOIN reserves_in ri ON (res.reserve_pub = ri.reserve_pub)"
       " WHERE wire_source_h_payto=$1"
       "   AND ro.execution_date >= $2"
-      " ORDER BY ro.execution_date DESC",
-      2),
+      " ORDER BY ro.execution_date DESC"),
     /* Used in #postgres_select_aggregation_amounts_for_kyc_check (
 () */
     GNUNET_PQ_make_prepare (
@@ -3204,8 +3035,7 @@ prepare_statements (struct PostgresClosure *pg)
       " FROM wire_out"
       " WHERE wire_target_h_payto=$1"
       "   AND execution_date >= $2"
-      " ORDER BY execution_date DESC",
-      2),
+      " ORDER BY execution_date DESC"),
 
     /* Used in #postgres_select_merge_amounts_for_kyc_check (
 () */
@@ -3221,8 +3051,7 @@ prepare_statements (struct PostgresClosure *pg)
       " WHERE wallet_h_payto=$1"
       "   AND merge_timestamp >= $2"
       "   AND finished"
-      " ORDER BY merge_timestamp DESC",
-      2),
+      " ORDER BY merge_timestamp DESC"),
 
     GNUNET_PQ_PREPARED_STATEMENT_END
   };
@@ -9242,8 +9071,7 @@ postgres_gc (void *cls)
       GNUNET_PQ_make_prepare ("run_gc",
                               "CALL"
                               " exchange_do_gc"
-                              " ($1,$2);",
-                              2),
+                              " ($1,$2);"),
       GNUNET_PQ_PREPARED_STATEMENT_END
     };
 
@@ -15460,6 +15288,8 @@ libtaler_plugin_exchangedb_postgres_init (void *cls)
   plugin->select_merge_amounts_for_kyc_check
     = &postgres_select_merge_amounts_for_kyc_check;
   /* NEW style, sort alphabetically! */
+  plugin->do_reserve_open
+    = &TEH_PG_do_reserve_open;
   plugin->insert_records_by_table
     = &TEH_PG_insert_records_by_table;
   plugin->insert_reserve_open_deposit
diff --git a/src/lib/exchange_api_reserves_open.c 
b/src/lib/exchange_api_reserves_open.c
index 08d267fb..b41c3f88 100644
--- a/src/lib/exchange_api_reserves_open.c
+++ b/src/lib/exchange_api_reserves_open.c
@@ -252,6 +252,9 @@ handle_reserves_open_finished (void *cls,
     /* This should never happen, either us or the exchange is buggy
        (or API version conflict); just pass JSON reply to the application */
     GNUNET_break (0);
+    json_dumpf (j,
+                stderr,
+                JSON_INDENT (2));
     rs.hr.ec = TALER_JSON_get_error_code (j);
     rs.hr.hint = TALER_JSON_get_error_hint (j);
     break;
@@ -452,7 +455,7 @@ TALER_EXCHANGE_reserves_open (
                                     cpa),
       TALER_JSON_pack_amount ("reserve_payment",
                               reserve_contribution),
-      GNUNET_JSON_pack_uint64 ("min_purses",
+      GNUNET_JSON_pack_uint64 ("purse_limit",
                                min_purses),
       GNUNET_JSON_pack_data_auto ("reserve_sig",
                                   &roh->reserve_sig));
diff --git a/src/testing/test_exchange_p2p.c b/src/testing/test_exchange_p2p.c
index e9c3b65b..d0a0a989 100644
--- a/src/testing/test_exchange_p2p.c
+++ b/src/testing/test_exchange_p2p.c
@@ -354,6 +354,70 @@ run (void *cls,
     TALER_TESTING_cmd_end ()
   };
   struct TALER_TESTING_Command reserves[] = {
+    CMD_TRANSFER_TO_EXCHANGE ("create-reserve-100",
+                              "EUR:1.04"),
+    TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-100",
+                                                 "EUR:1.04",
+                                                 bc.user42_payto,
+                                                 bc.exchange_payto,
+                                                 "create-reserve-100"),
+    CMD_TRANSFER_TO_EXCHANGE ("create-reserve-101",
+                              "EUR:1.04"),
+    TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-101",
+                                                 "EUR:1.04",
+                                                 bc.user42_payto,
+                                                 bc.exchange_payto,
+                                                 "create-reserve-101"),
+    CMD_EXEC_WIREWATCH ("wirewatch-100"),
+    TALER_TESTING_cmd_withdraw_amount ("withdraw-coin-100",
+                                       "create-reserve-100",
+                                       "EUR:1",
+                                       0, /* age restriction off */
+                                       MHD_HTTP_OK),
+    TALER_TESTING_cmd_reserve_open ("reserve-open-101-fail",
+                                    "create-reserve-101",
+                                    "EUR:0",
+                                    GNUNET_TIME_UNIT_YEARS,
+                                    5, /* min purses */
+                                    MHD_HTTP_PAYMENT_REQUIRED, // FIXME: or 
CONFLICT?
+                                    NULL,
+                                    NULL),
+    TALER_TESTING_cmd_reserve_open ("reserve-open-101-ok",
+                                    "create-reserve-101",
+                                    "EUR:0.01",
+                                    GNUNET_TIME_UNIT_MONTHS,
+                                    1, /* min purses */
+                                    MHD_HTTP_OK,
+                                    NULL,
+                                    NULL),
+    TALER_TESTING_cmd_status ("status-101-open-paid",
+                              "create-reserve-101",
+                              "EUR:1.03",
+                              MHD_HTTP_OK),
+    TALER_TESTING_cmd_reserve_open ("reserve-open-101-ok",
+                                    "create-reserve-101",
+                                    "EUR:0",
+                                    GNUNET_TIME_UNIT_MONTHS,
+                                    2, /* min purses */
+                                    MHD_HTTP_OK,
+                                    "withdraw-coin-100",
+                                    "EUR:0.02",
+                                    NULL,
+                                    NULL),
+    /* FIXME: use purse quota here */
+    TALER_TESTING_cmd_reserve_get_attestable ("reserve-101-attestable",
+                                              "create-reserve-101",
+                                              MHD_HTTP_OK,
+                                              NULL),
+    TALER_TESTING_cmd_reserve_get_attestable ("reserve-101-attest",
+                                              "create-reserve-101",
+                                              MHD_HTTP_CONFLICT,
+                                              "nx-attribute-name",
+                                              NULL),
+    TALER_TESTING_cmd_reserve_close ("reserve-101-close",
+                                     "create-reserve-101",
+                                     NULL, /* to origin */
+                                     MHD_HTTP_OK),
     TALER_TESTING_cmd_end ()
   };
 
@@ -387,9 +451,11 @@ run (void *cls,
                                               config_file),
     TALER_TESTING_cmd_check_keys_pull_all_keys ("refetch /keys",
                                                 1),
+#if 0
     TALER_TESTING_cmd_batch ("reserves",
                              reserves),
     TALER_TESTING_cmd_end (), // FIXME
+#endif
     TALER_TESTING_cmd_batch ("withdraw",
                              withdraw),
     TALER_TESTING_cmd_batch ("push",

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