gnunet-svn
[Top][All Lists]
Advanced

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

[taler-exchange] branch master updated: rename fest on refactored audito


From: gnunet
Subject: [taler-exchange] branch master updated: rename fest on refactored auditor logic
Date: Sat, 21 Mar 2020 11:05:54 +0100

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 2ace9969 rename fest on refactored auditor logic
2ace9969 is described below

commit 2ace9969b7e1ede610ff99546c5a84f59adf0931
Author: Christian Grothoff <address@hidden>
AuthorDate: Sat Mar 21 11:05:51 2020 +0100

    rename fest on refactored auditor logic
---
 src/auditor/.gitignore                             |   5 +
 src/auditor/Makefile.am                            |  64 +-
 src/auditor/report-lib.c                           | 243 +++---
 src/auditor/report-lib.h                           |  85 +--
 ...gation.c => taler-helper-auditor-aggregation.c} | 373 +++++----
 ...uditor-coins.c => taler-helper-auditor-coins.c} | 660 ++++++++--------
 ...-deposits.c => taler-helper-auditor-deposits.c} | 133 ++--
 ...-reserves.c => taler-helper-auditor-reserves.c} | 607 ++++++++-------
 ...-wire-auditor.c => taler-helper-auditor-wire.c} | 843 +++++++++------------
 src/auditor/test-auditor.sh                        |  22 +-
 10 files changed, 1519 insertions(+), 1516 deletions(-)

diff --git a/src/auditor/.gitignore b/src/auditor/.gitignore
index fe067a53..d065d10a 100644
--- a/src/auditor/.gitignore
+++ b/src/auditor/.gitignore
@@ -13,3 +13,8 @@ test-wire-audit-inc.json
 wirefees/
 bank.err
 libauditor.a
+taler-helper-auditor-aggregation
+taler-helper-auditor-coins
+taler-helper-auditor-deposits
+taler-helper-auditor-reserves
+taler-helper-auditor-wire
diff --git a/src/auditor/Makefile.am b/src/auditor/Makefile.am
index 819789ef..13410a16 100644
--- a/src/auditor/Makefile.am
+++ b/src/auditor/Makefile.am
@@ -13,11 +13,11 @@ pkgcfg_DATA = \
 
 bin_PROGRAMS = \
   taler-auditor \
-  taler-auditor-reserves \
-  taler-auditor-coins \
-  taler-auditor-aggregation \
-  taler-auditor-deposits \
-  taler-wire-auditor \
+  taler-helper-auditor-reserves \
+  taler-helper-auditor-coins \
+  taler-helper-auditor-aggregation \
+  taler-helper-auditor-deposits \
+  taler-helper-auditor-wire \
   taler-auditor-exchange \
   taler-auditor-httpd \
   taler-auditor-sign \
@@ -44,9 +44,9 @@ taler_auditor_dbinit_CPPFLAGS = \
   -I$(top_srcdir)/src/pq/ \
   $(POSTGRESQL_CPPFLAGS)
 
-taler_auditor_reserves_SOURCES = \
-  taler-auditor-reserves.c
-taler_auditor_reserves_LDADD = \
+taler_helper_auditor_reserves_SOURCES = \
+  taler-helper-auditor-reserves.c
+taler_helper_auditor_reserves_LDADD = \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/json/libtalerjson.la \
@@ -58,9 +58,9 @@ taler_auditor_reserves_LDADD = \
   -lgnunetjson \
   -lgnunetutil
 
-taler_auditor_coins_SOURCES = \
-  taler-auditor-coins.c
-taler_auditor_coins_LDADD = \
+taler_helper_auditor_coins_SOURCES = \
+  taler-helper-auditor-coins.c
+taler_helper_auditor_coins_LDADD = \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/json/libtalerjson.la \
@@ -72,9 +72,9 @@ taler_auditor_coins_LDADD = \
   -lgnunetjson \
   -lgnunetutil
 
-taler_auditor_aggregation_SOURCES = \
-  taler-auditor-aggregation.c
-taler_auditor_aggregation_LDADD = \
+taler_helper_auditor_aggregation_SOURCES = \
+  taler-helper-auditor-aggregation.c
+taler_helper_auditor_aggregation_LDADD = \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/json/libtalerjson.la \
@@ -86,9 +86,9 @@ taler_auditor_aggregation_LDADD = \
   -lgnunetjson \
   -lgnunetutil
 
-taler_auditor_deposits_SOURCES = \
-  taler-auditor-deposits.c
-taler_auditor_deposits_LDADD = \
+taler_helper_auditor_deposits_SOURCES = \
+  taler-helper-auditor-deposits.c
+taler_helper_auditor_deposits_LDADD = \
   $(LIBGCRYPT_LIBS) \
   $(top_builddir)/src/util/libtalerutil.la \
   $(top_builddir)/src/json/libtalerjson.la \
@@ -100,6 +100,22 @@ taler_auditor_deposits_LDADD = \
   -lgnunetjson \
   -lgnunetutil
 
+taler_helper_auditor_wire_SOURCES = \
+  taler-helper-auditor-wire.c
+taler_helper_auditor_wire_LDADD = \
+  $(LIBGCRYPT_LIBS) \
+  $(top_builddir)/src/util/libtalerutil.la \
+  $(top_builddir)/src/json/libtalerjson.la \
+  $(top_builddir)/src/bank-lib/libtalerbank.la \
+  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
+  $(top_builddir)/src/auditordb/libtalerauditordb.la \
+  libauditor.a \
+  -ljansson \
+  -lgnunetjson \
+  -lgnunetcurl \
+  -lgnunetutil
+
+
 taler_auditor_SOURCES = \
   taler-auditor.c
 taler_auditor_LDADD = \
@@ -131,20 +147,6 @@ taler_auditor_httpd_LDADD = \
   -lgnunetutil \
   -lz
 
-taler_wire_auditor_SOURCES = \
-  taler-wire-auditor.c
-taler_wire_auditor_LDADD = \
-  $(LIBGCRYPT_LIBS) \
-  $(top_builddir)/src/util/libtalerutil.la \
-  $(top_builddir)/src/json/libtalerjson.la \
-  $(top_builddir)/src/bank-lib/libtalerbank.la \
-  $(top_builddir)/src/exchangedb/libtalerexchangedb.la \
-  $(top_builddir)/src/auditordb/libtalerauditordb.la \
-  -ljansson \
-  -lgnunetjson \
-  -lgnunetcurl \
-  -lgnunetutil
-
 taler_auditor_sign_SOURCES = \
   taler-auditor-sign.c
 taler_auditor_sign_LDADD = \
diff --git a/src/auditor/report-lib.c b/src/auditor/report-lib.c
index b2df8a14..b00a522a 100644
--- a/src/auditor/report-lib.c
+++ b/src/auditor/report-lib.c
@@ -22,49 +22,49 @@
 #include "report-lib.h"
 
 /**
- * Command-line option "-r": restart audit from scratch
+ * Command-line option "-r": TALER_ARL_restart audit from scratch
  */
-int restart;
+int TALER_ARL_restart;
 
 /**
  * Handle to access the exchange's database.
  */
-struct TALER_EXCHANGEDB_Plugin *edb;
+struct TALER_EXCHANGEDB_Plugin *TALER_ARL_edb;
 
 /**
- * Which currency are we doing the audit for?
+ * Which TALER_ARL_currency are we doing the audit for?
  */
-char *currency;
+char *TALER_ARL_currency;
 
 /**
- * How many fractional digits does the currency use?
+ * How many fractional digits does the TALER_ARL_currency use?
  */
-struct TALER_Amount currency_round_unit;
+struct TALER_Amount TALER_ARL_currency_round_unit;
 
 /**
  * Our configuration.
  */
-const struct GNUNET_CONFIGURATION_Handle *cfg;
+const struct GNUNET_CONFIGURATION_Handle *TALER_ARL_cfg;
 
 /**
- * Our session with the #edb.
+ * Our session with the #TALER_ARL_edb.
  */
-struct TALER_EXCHANGEDB_Session *esession;
+struct TALER_EXCHANGEDB_Session *TALER_ARL_esession;
 
 /**
  * Handle to access the auditor's database.
  */
-struct TALER_AUDITORDB_Plugin *adb;
+struct TALER_AUDITORDB_Plugin *TALER_ARL_adb;
 
 /**
- * Our session with the #adb.
+ * Our session with the #TALER_ARL_adb.
  */
-struct TALER_AUDITORDB_Session *asession;
+struct TALER_AUDITORDB_Session *TALER_ARL_asession;
 
 /**
  * Master public key of the exchange to audit.
  */
-struct TALER_MasterPublicKeyP master_pub;
+struct TALER_MasterPublicKeyP TALER_ARL_master_pub;
 
 /**
  * At what time did the auditor process start?
@@ -85,7 +85,7 @@ static struct GNUNET_CONTAINER_MultiHashMap *denominations;
  * @return human-readable string representing the time
  */
 json_t *
-json_from_time_abs_nbo (struct GNUNET_TIME_AbsoluteNBO at)
+TALER_ARL_TALER_ARL_json_from_time_abs_nbo (struct GNUNET_TIME_AbsoluteNBO at)
 {
   return json_string
            (GNUNET_STRINGS_absolute_time_to_string
@@ -100,7 +100,7 @@ json_from_time_abs_nbo (struct GNUNET_TIME_AbsoluteNBO at)
  * @return human-readable string representing the time
  */
 json_t *
-json_from_time_abs (struct GNUNET_TIME_Absolute at)
+TALER_ARL_json_from_time_abs (struct GNUNET_TIME_Absolute at)
 {
   return json_string
            (GNUNET_STRINGS_absolute_time_to_string (at));
@@ -108,14 +108,14 @@ json_from_time_abs (struct GNUNET_TIME_Absolute at)
 
 
 /**
- * Add @a object to the report @a array.  Fail hard if this fails.
+ * Add @a object to the TALER_ARL_report @a array.  Fail hard if this fails.
  *
- * @param array report array to append @a object to
+ * @param array TALER_ARL_report array to append @a object to
  * @param object object to append, should be check that it is not NULL
  */
 void
-report (json_t *array,
-        json_t *object)
+TALER_ARL_report (json_t *array,
+                  json_t *object)
 {
   GNUNET_assert (NULL != object);
   GNUNET_assert (0 ==
@@ -185,9 +185,9 @@ add_denomination (void *cls,
  * @return transaction status code
  */
 enum GNUNET_DB_QueryStatus
-get_denomination_info_by_hash (const struct GNUNET_HashCode *dh,
-                               const struct
-                               TALER_DenominationKeyValidityPS **issue)
+TALER_ARL_get_denomination_info_by_hash (const struct GNUNET_HashCode *dh,
+                                         const struct
+                                         TALER_DenominationKeyValidityPS 
**issue)
 {
   const struct TALER_DenominationKeyValidityPS *i;
   enum GNUNET_DB_QueryStatus qs;
@@ -196,11 +196,11 @@ get_denomination_info_by_hash (const struct 
GNUNET_HashCode *dh,
   {
     denominations = GNUNET_CONTAINER_multihashmap_create (256,
                                                           GNUNET_NO);
-    qs = adb->select_denomination_info (adb->cls,
-                                        asession,
-                                        &master_pub,
-                                        &add_denomination,
-                                        NULL);
+    qs = TALER_ARL_adb->select_denomination_info (TALER_ARL_adb->cls,
+                                                  TALER_ARL_asession,
+                                                  &TALER_ARL_master_pub,
+                                                  &add_denomination,
+                                                  NULL);
     if (0 > qs)
     {
       *issue = NULL;
@@ -216,11 +216,11 @@ get_denomination_info_by_hash (const struct 
GNUNET_HashCode *dh,
     return GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
   }
   /* maybe database changed since we last iterated, give it one more shot */
-  qs = adb->select_denomination_info (adb->cls,
-                                      asession,
-                                      &master_pub,
-                                      &add_denomination,
-                                      NULL);
+  qs = TALER_ARL_adb->select_denomination_info (TALER_ARL_adb->cls,
+                                                TALER_ARL_asession,
+                                                &TALER_ARL_master_pub,
+                                                &add_denomination,
+                                                NULL);
   if (qs <= 0)
   {
     if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
@@ -255,10 +255,11 @@ get_denomination_info_by_hash (const struct 
GNUNET_HashCode *dh,
  * @return transaction status code
  */
 enum GNUNET_DB_QueryStatus
-get_denomination_info (const struct TALER_DenominationPublicKey *denom_pub,
-                       const struct
-                       TALER_DenominationKeyValidityPS **issue,
-                       struct GNUNET_HashCode *dh)
+TALER_ARL_get_denomination_info (const struct
+                                 TALER_DenominationPublicKey *denom_pub,
+                                 const struct
+                                 TALER_DenominationKeyValidityPS **issue,
+                                 struct GNUNET_HashCode *dh)
 {
   struct GNUNET_HashCode hc;
 
@@ -266,8 +267,8 @@ get_denomination_info (const struct 
TALER_DenominationPublicKey *denom_pub,
     dh = &hc;
   GNUNET_CRYPTO_rsa_public_key_hash (denom_pub->rsa_public_key,
                                      dh);
-  return get_denomination_info_by_hash (dh,
-                                        issue);
+  return TALER_ARL_get_denomination_info_by_hash (dh,
+                                                  issue);
 }
 
 
@@ -281,25 +282,25 @@ get_denomination_info (const struct 
TALER_DenominationPublicKey *denom_pub,
  *         #GNUNET_NO if we had an error on commit (retry may help)
  *         #GNUNET_SYSERR on hard errors
  */
-int
-transact (Analysis analysis,
+static int
+transact (TALER_ARL_Analysis analysis,
           void *analysis_cls)
 {
   int ret;
   enum GNUNET_DB_QueryStatus qs;
 
-  ret = adb->start (adb->cls,
-                    asession);
+  ret = TALER_ARL_adb->start (TALER_ARL_adb->cls,
+                              TALER_ARL_asession);
   if (GNUNET_OK != ret)
   {
     GNUNET_break (0);
     return GNUNET_SYSERR;
   }
-  edb->preflight (edb->cls,
-                  esession);
-  ret = edb->start (edb->cls,
-                    esession,
-                    "auditor");
+  TALER_ARL_edb->preflight (TALER_ARL_edb->cls,
+                            TALER_ARL_esession);
+  ret = TALER_ARL_edb->start (TALER_ARL_edb->cls,
+                              TALER_ARL_esession,
+                              "auditor");
   if (GNUNET_OK != ret)
   {
     GNUNET_break (0);
@@ -308,20 +309,20 @@ transact (Analysis analysis,
   qs = analysis (analysis_cls);
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs)
   {
-    qs = edb->commit (edb->cls,
-                      esession);
+    qs = TALER_ARL_edb->commit (TALER_ARL_edb->cls,
+                                TALER_ARL_esession);
     if (0 > qs)
     {
       GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Exchange DB commit failed, rolling back transaction\n");
-      adb->rollback (adb->cls,
-                     asession);
+      TALER_ARL_adb->rollback (TALER_ARL_adb->cls,
+                               TALER_ARL_asession);
     }
     else
     {
-      qs = adb->commit (adb->cls,
-                        asession);
+      qs = TALER_ARL_adb->commit (TALER_ARL_adb->cls,
+                                  TALER_ARL_asession);
       if (0 > qs)
       {
         GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -334,10 +335,10 @@ transact (Analysis analysis,
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Processing failed (or no changes), rolling back 
transaction\n");
-    adb->rollback (adb->cls,
-                   asession);
-    edb->rollback (edb->cls,
-                   esession);
+    TALER_ARL_adb->rollback (TALER_ARL_adb->cls,
+                             TALER_ARL_asession);
+    TALER_ARL_edb->rollback (TALER_ARL_edb->cls,
+                             TALER_ARL_esession);
   }
   switch (qs)
   {
@@ -362,18 +363,18 @@ transact (Analysis analysis,
  * @return #GNUNET_OK on success
  */
 int
-setup_sessions_and_run (Analysis ana,
-                        void *ana_cls)
+TALER_ARL_setup_sessions_and_run (TALER_ARL_Analysis ana,
+                                  void *ana_cls)
 {
-  esession = edb->get_session (edb->cls);
-  if (NULL == esession)
+  TALER_ARL_esession = TALER_ARL_edb->get_session (TALER_ARL_edb->cls);
+  if (NULL == TALER_ARL_esession)
   {
     fprintf (stderr,
              "Failed to initialize exchange session.\n");
     return GNUNET_SYSERR;
   }
-  asession = adb->get_session (adb->cls);
-  if (NULL == asession)
+  TALER_ARL_asession = TALER_ARL_adb->get_session (TALER_ARL_adb->cls);
+  if (NULL == TALER_ARL_asession)
   {
     fprintf (stderr,
              "Failed to initialize auditor session.\n");
@@ -388,7 +389,7 @@ setup_sessions_and_run (Analysis ana,
 
 
 /**
- * Test if the given @a mpub matches the #master_pub.
+ * Test if the given @a mpub matches the #TALER_ARL_master_pub.
  * If so, set "found" to GNUNET_YES.
  *
  * @param cls a `int *` pointing to "found"
@@ -404,29 +405,35 @@ test_master_present (void *cls,
 
   (void) exchange_url;
   if (0 == GNUNET_memcmp (mpub,
-                          &master_pub))
+                          &TALER_ARL_master_pub))
     *found = GNUNET_YES;
 }
 
 
+/**
+ * Setup global variables based on configuration.
+ *
+ * @param c configuration to use
+ * @return #GNUNET_OK on success
+ */
 int
-setup_globals (const struct GNUNET_CONFIGURATION_Handle *c)
+TALER_ARL_init (const struct GNUNET_CONFIGURATION_Handle *c)
 {
   int found;
   struct TALER_AUDITORDB_Session *as;
 
-  cfg = c;
+  TALER_ARL_cfg = c;
   start_time = GNUNET_TIME_absolute_get ();
-  if (0 == GNUNET_is_zero (&master_pub))
+  if (0 == GNUNET_is_zero (&TALER_ARL_master_pub))
   {
     /* -m option not given, try configuration */
-    char *master_public_key_str;
+    char *TALER_ARL_master_public_key_str;
 
     if (GNUNET_OK !=
-        GNUNET_CONFIGURATION_get_value_string (cfg,
+        GNUNET_CONFIGURATION_get_value_string (TALER_ARL_cfg,
                                                "exchange",
                                                "MASTER_PUBLIC_KEY",
-                                               &master_public_key_str))
+                                               
&TALER_ARL_master_public_key_str))
     {
       fprintf (stderr,
                "Pass option -m or set it in the configuration!\n");
@@ -436,35 +443,37 @@ setup_globals (const struct GNUNET_CONFIGURATION_Handle 
*c)
       return GNUNET_SYSERR;
     }
     if (GNUNET_OK !=
-        GNUNET_CRYPTO_eddsa_public_key_from_string (master_public_key_str,
-                                                    strlen (
-                                                      master_public_key_str),
-                                                    &master_pub.eddsa_pub))
+        GNUNET_CRYPTO_eddsa_public_key_from_string (
+          TALER_ARL_master_public_key_str,
+          strlen (
+            TALER_ARL_master_public_key_str),
+          &TALER_ARL_master_pub.
+          eddsa_pub))
     {
       fprintf (stderr,
                "Invalid master public key given in configuration file.");
-      GNUNET_free (master_public_key_str);
+      GNUNET_free (TALER_ARL_master_public_key_str);
       return GNUNET_SYSERR;
     }
-    GNUNET_free (master_public_key_str);
+    GNUNET_free (TALER_ARL_master_public_key_str);
   } /* end of -m not given */
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Taler auditor running for exchange master public key %s\n",
-              TALER_B2S (&master_pub));
+              TALER_B2S (&TALER_ARL_master_pub));
 
   if (GNUNET_OK !=
-      TALER_config_get_currency (cfg,
-                                 &currency))
+      TALER_config_get_currency (TALER_ARL_cfg,
+                                 &TALER_ARL_currency))
   {
     return GNUNET_SYSERR;
   }
   {
     if (GNUNET_OK !=
-        TALER_config_get_amount (cfg,
+        TALER_config_get_amount (TALER_ARL_cfg,
                                  "taler",
                                  "CURRENCY_ROUND_UNIT",
-                                 &currency_round_unit))
+                                 &TALER_ARL_currency_round_unit))
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Invalid or missing amount in `TALER' under 
`CURRENCY_ROUND_UNIT'\n");
@@ -472,78 +481,86 @@ setup_globals (const struct GNUNET_CONFIGURATION_Handle 
*c)
     }
   }
   if (NULL ==
-      (edb = TALER_EXCHANGEDB_plugin_load (cfg)))
+      (TALER_ARL_edb = TALER_EXCHANGEDB_plugin_load (TALER_ARL_cfg)))
   {
     fprintf (stderr,
              "Failed to initialize exchange database plugin.\n");
     return GNUNET_SYSERR;
   }
   if (NULL ==
-      (adb = TALER_AUDITORDB_plugin_load (cfg)))
+      (TALER_ARL_adb = TALER_AUDITORDB_plugin_load (TALER_ARL_cfg)))
   {
     fprintf (stderr,
              "Failed to initialize auditor database plugin.\n");
-    TALER_EXCHANGEDB_plugin_unload (edb);
+    TALER_EXCHANGEDB_plugin_unload (TALER_ARL_edb);
     return GNUNET_SYSERR;
   }
   found = GNUNET_NO;
-  as = adb->get_session (adb->cls);
+  as = TALER_ARL_adb->get_session (TALER_ARL_adb->cls);
   if (NULL == as)
   {
     fprintf (stderr,
              "Failed to start session with auditor database.\n");
-    TALER_AUDITORDB_plugin_unload (adb);
-    TALER_EXCHANGEDB_plugin_unload (edb);
+    TALER_AUDITORDB_plugin_unload (TALER_ARL_adb);
+    TALER_EXCHANGEDB_plugin_unload (TALER_ARL_edb);
     return GNUNET_SYSERR;
   }
-  (void) adb->list_exchanges (adb->cls,
-                              as,
-                              &test_master_present,
-                              &found);
+  (void) TALER_ARL_adb->list_exchanges (TALER_ARL_adb->cls,
+                                        as,
+                                        &test_master_present,
+                                        &found);
   if (GNUNET_NO == found)
   {
     fprintf (stderr,
              "Exchange's master public key `%s' not known to auditor DB. Did 
you forget to run `taler-auditor-exchange`?\n",
-             GNUNET_p2s (&master_pub.eddsa_pub));
-    TALER_AUDITORDB_plugin_unload (adb);
-    TALER_EXCHANGEDB_plugin_unload (edb);
+             GNUNET_p2s (&TALER_ARL_master_pub.eddsa_pub));
+    TALER_AUDITORDB_plugin_unload (TALER_ARL_adb);
+    TALER_EXCHANGEDB_plugin_unload (TALER_ARL_edb);
     return GNUNET_SYSERR;
   }
-  if (restart)
+  if (TALER_ARL_restart)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Full audit restart requested, dropping old audit data.\n");
+                "Full audit TALER_ARL_restart requested, dropping old audit 
data.\n");
     GNUNET_break (GNUNET_OK ==
-                  adb->drop_tables (adb->cls,
-                                    GNUNET_NO));
-    TALER_AUDITORDB_plugin_unload (adb);
+                  TALER_ARL_adb->drop_tables (TALER_ARL_adb->cls,
+                                              GNUNET_NO));
+    TALER_AUDITORDB_plugin_unload (TALER_ARL_adb);
     if (NULL ==
-        (adb = TALER_AUDITORDB_plugin_load (cfg)))
+        (TALER_ARL_adb = TALER_AUDITORDB_plugin_load (TALER_ARL_cfg)))
     {
       fprintf (stderr,
                "Failed to initialize auditor database plugin after drop.\n");
-      TALER_EXCHANGEDB_plugin_unload (edb);
+      TALER_EXCHANGEDB_plugin_unload (TALER_ARL_edb);
       return GNUNET_SYSERR;
     }
     GNUNET_break (GNUNET_OK ==
-                  adb->create_tables (adb->cls));
+                  TALER_ARL_adb->create_tables (TALER_ARL_adb->cls));
   }
 
   return GNUNET_OK;
 }
 
 
+/**
+ * Generate the report and close connectios to the database.
+ *
+ * @param report the report to output, may be NULL for no report
+ */
 void
-finish_report (json_t *report)
+TALER_ARL_done (json_t *report)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Audit complete\n");
-  TALER_AUDITORDB_plugin_unload (adb);
-  adb = NULL;
-  TALER_EXCHANGEDB_plugin_unload (edb);
-  edb = NULL;
-  json_dumpf (report,
-              stdout,
-              JSON_INDENT (2));
-  json_decref (report);
+  TALER_AUDITORDB_plugin_unload (TALER_ARL_adb);
+  TALER_ARL_adb = NULL;
+  TALER_EXCHANGEDB_plugin_unload (TALER_ARL_edb);
+  TALER_ARL_edb = NULL;
+  if (NULL != report)
+  {
+    json_dumpf (report,
+                stdout,
+                JSON_INDENT (2));
+    json_decref (report);
+  }
 }
diff --git a/src/auditor/report-lib.h b/src/auditor/report-lib.h
index 334ac198..59229ad1 100644
--- a/src/auditor/report-lib.h
+++ b/src/auditor/report-lib.h
@@ -30,49 +30,49 @@
 
 
 /**
- * Command-line option "-r": restart audit from scratch
+ * Command-line option "-r": TALER_ARL_restart audit from scratch
  */
-extern int restart;
+extern int TALER_ARL_restart;
 
 /**
  * Handle to access the exchange's database.
  */
-extern struct TALER_EXCHANGEDB_Plugin *edb;
+extern struct TALER_EXCHANGEDB_Plugin *TALER_ARL_edb;
 
 /**
- * Which currency are we doing the audit for?
+ * Which TALER_ARL_currency are we doing the audit for?
  */
-extern char *currency;
+extern char *TALER_ARL_currency;
 
 /**
- * How many fractional digits does the currency use?
+ * How many fractional digits does the TALER_ARL_currency use?
  */
-extern struct TALER_Amount currency_round_unit;
+extern struct TALER_Amount TALER_ARL_currency_round_unit;
 
 /**
  * Our configuration.
  */
-extern const struct GNUNET_CONFIGURATION_Handle *cfg;
+extern const struct GNUNET_CONFIGURATION_Handle *TALER_ARL_cfg;
 
 /**
- * Our session with the #edb.
+ * Our session with the #TALER_ARL_edb.
  */
-extern struct TALER_EXCHANGEDB_Session *esession;
+extern struct TALER_EXCHANGEDB_Session *TALER_ARL_esession;
 
 /**
  * Handle to access the auditor's database.
  */
-extern struct TALER_AUDITORDB_Plugin *adb;
+extern struct TALER_AUDITORDB_Plugin *TALER_ARL_adb;
 
 /**
- * Our session with the #adb.
+ * Our session with the #TALER_ARL_adb.
  */
-extern struct TALER_AUDITORDB_Session *asession;
+extern struct TALER_AUDITORDB_Session *TALER_ARL_asession;
 
 /**
  * Master public key of the exchange to audit.
  */
-extern struct TALER_MasterPublicKeyP master_pub;
+extern struct TALER_MasterPublicKeyP TALER_ARL_master_pub;
 
 /**
  * At what time did the auditor process start?
@@ -87,7 +87,7 @@ extern struct GNUNET_TIME_Absolute start_time;
  * @return human-readable string representing the time
  */
 json_t *
-json_from_time_abs_nbo (struct GNUNET_TIME_AbsoluteNBO at);
+TALER_ARL_TALER_ARL_json_from_time_abs_nbo (struct GNUNET_TIME_AbsoluteNBO at);
 
 
 /**
@@ -97,18 +97,18 @@ json_from_time_abs_nbo (struct GNUNET_TIME_AbsoluteNBO at);
  * @return human-readable string representing the time
  */
 json_t *
-json_from_time_abs (struct GNUNET_TIME_Absolute at);
+TALER_ARL_json_from_time_abs (struct GNUNET_TIME_Absolute at);
 
 
 /**
- * Add @a object to the report @a array.  Fail hard if this fails.
+ * Add @a object to the TALER_ARL_report @a array.  Fail hard if this fails.
  *
- * @param array report array to append @a object to
+ * @param array TALER_ARL_report array to append @a object to
  * @param object object to append, should be check that it is not NULL
  */
 void
-report (json_t *array,
-        json_t *object);
+TALER_ARL_report (json_t *array,
+                  json_t *object);
 
 
 /**
@@ -117,10 +117,10 @@ report (json_t *array,
  * @param dh hash of the denomination public key to look up
  * @param[out] issue set to detailed information about @a denom_pub, NULL if 
not found, must
  *                 NOT be freed by caller
- * @return transaction status code
+ * @return TALER_ARL_transaction status code
  */
 enum GNUNET_DB_QueryStatus
-get_denomination_info_by_hash (
+TALER_ARL_get_denomination_info_by_hash (
   const struct GNUNET_HashCode *dh,
   const struct TALER_DenominationKeyValidityPS **issue);
 
@@ -132,14 +132,15 @@ get_denomination_info_by_hash (
  * @param[out] issue set to detailed information about @a denom_pub, NULL if 
not found, must
  *                 NOT be freed by caller
  * @param[out] dh set to the hash of @a denom_pub, may be NULL
- * @return transaction status code
+ * @return TALER_ARL_transaction status code
  */
 enum GNUNET_DB_QueryStatus
-get_denomination_info (
+TALER_ARL_get_denomination_info (
   const struct TALER_DenominationPublicKey *denom_pub,
   const struct TALER_DenominationKeyValidityPS **issue,
   struct GNUNET_HashCode *dh);
 
+
 /**
  * Type of an analysis function.  Each analysis function runs in
  * its own transaction scope and must thus be internally consistent.
@@ -148,22 +149,7 @@ get_denomination_info (
  * @return transaction status code
  */
 typedef enum GNUNET_DB_QueryStatus
-(*Analysis)(void *cls);
-
-
-/**
- * Perform the given @a analysis within a transaction scope.
- * Commit on success.
- *
- * @param analysis analysis to run
- * @param analysis_cls closure for @a analysis
- * @return #GNUNET_OK if @a analysis succeessfully committed,
- *         #GNUNET_NO if we had an error on commit (retry may help)
- *         #GNUNET_SYSERR on hard errors
- */
-int
-transact (Analysis analysis,
-          void *analysis_cls);
+(*TALER_ARL_Analysis)(void *cls);
 
 
 /**
@@ -174,15 +160,26 @@ transact (Analysis analysis,
  * @return #GNUNET_OK on success
  */
 int
-setup_sessions_and_run (Analysis ana,
-                        void *ana_cls);
+TALER_ARL_setup_sessions_and_run (TALER_ARL_Analysis ana,
+                                  void *ana_cls);
 
 
+/**
+ * Setup global variables based on configuration.
+ *
+ * @param c configuration to use
+ * @return #GNUNET_OK on success
+ */
 int
-setup_globals (const struct GNUNET_CONFIGURATION_Handle *c);
+TALER_ARL_init (const struct GNUNET_CONFIGURATION_Handle *c);
 
 
+/**
+ * Generate the report and close connectios to the database.
+ *
+ * @param report the report to output, may be NULL for no report
+ */
 void
-finish_report (json_t *report);
+TALER_ARL_done (json_t *report);
 
 #endif
diff --git a/src/auditor/taler-auditor-aggregation.c 
b/src/auditor/taler-helper-auditor-aggregation.c
similarity index 79%
rename from src/auditor/taler-auditor-aggregation.c
rename to src/auditor/taler-helper-auditor-aggregation.c
index de249ed5..bbad7125 100644
--- a/src/auditor/taler-auditor-aggregation.c
+++ b/src/auditor/taler-helper-auditor-aggregation.c
@@ -14,7 +14,7 @@
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file auditor/taler-auditor-aggregation.c
+ * @file auditor/taler-helper-auditor-aggregation.c
  * @brief audits an exchange's aggregations.
  * @author Christian Grothoff
  */
@@ -133,8 +133,10 @@ static struct TALER_Amount total_bad_sig_loss;
 static void
 report_amount_arithmetic_inconsistency (const char *operation,
                                         uint64_t rowid,
-                                        const struct TALER_Amount *exchange,
-                                        const struct TALER_Amount *auditor,
+                                        const struct
+                                        TALER_Amount *exchange,
+                                        const struct
+                                        TALER_Amount *auditor,
                                         int profitable)
 {
   struct TALER_Amount delta;
@@ -158,13 +160,13 @@ report_amount_arithmetic_inconsistency (const char 
*operation,
                                          auditor,
                                          exchange));
   }
-  report (report_amount_arithmetic_inconsistencies,
-          json_pack ("{s:s, s:I, s:o, s:o, s:I}",
-                     "operation", operation,
-                     "rowid", (json_int_t) rowid,
-                     "exchange", TALER_JSON_from_amount (exchange),
-                     "auditor", TALER_JSON_from_amount (auditor),
-                     "profitable", (json_int_t) profitable));
+  TALER_ARL_report (report_amount_arithmetic_inconsistencies,
+                    json_pack ("{s:s, s:I, s:o, s:o, s:I}",
+                               "operation", operation,
+                               "rowid", (json_int_t) rowid,
+                               "exchange", TALER_JSON_from_amount (exchange),
+                               "auditor", TALER_JSON_from_amount (auditor),
+                               "profitable", (json_int_t) profitable));
   if (0 != profitable)
   {
     target = (1 == profitable)
@@ -194,9 +196,12 @@ report_amount_arithmetic_inconsistency (const char 
*operation,
 static void
 report_coin_arithmetic_inconsistency (const char *operation,
                                       const struct
-                                      TALER_CoinSpendPublicKeyP *coin_pub,
-                                      const struct TALER_Amount *exchange,
-                                      const struct TALER_Amount *auditor,
+                                      TALER_CoinSpendPublicKeyP *
+                                      coin_pub,
+                                      const struct
+                                      TALER_Amount *exchange,
+                                      const struct
+                                      TALER_Amount *auditor,
                                       int profitable)
 {
   struct TALER_Amount delta;
@@ -220,13 +225,14 @@ report_coin_arithmetic_inconsistency (const char 
*operation,
                                          auditor,
                                          exchange));
   }
-  report (report_coin_inconsistencies,
-          json_pack ("{s:s, s:o, s:o, s:o, s:I}",
-                     "operation", operation,
-                     "coin_pub", GNUNET_JSON_from_data_auto (coin_pub),
-                     "exchange", TALER_JSON_from_amount (exchange),
-                     "auditor", TALER_JSON_from_amount (auditor),
-                     "profitable", (json_int_t) profitable));
+  TALER_ARL_report (report_coin_inconsistencies,
+                    json_pack ("{s:s, s:o, s:o, s:o, s:I}",
+                               "operation", operation,
+                               "coin_pub", GNUNET_JSON_from_data_auto (
+                                 coin_pub),
+                               "exchange", TALER_JSON_from_amount (exchange),
+                               "auditor", TALER_JSON_from_amount (auditor),
+                               "profitable", (json_int_t) profitable));
   if (0 != profitable)
   {
     target = (1 == profitable)
@@ -252,11 +258,11 @@ report_row_inconsistency (const char *table,
                           uint64_t rowid,
                           const char *diagnostic)
 {
-  report (report_row_inconsistencies,
-          json_pack ("{s:s, s:I, s:s}",
-                     "table", table,
-                     "row", (json_int_t) rowid,
-                     "diagnostic", diagnostic));
+  TALER_ARL_report (report_row_inconsistencies,
+                    json_pack ("{s:s, s:I, s:s}",
+                               "table", table,
+                               "row", (json_int_t) rowid,
+                               "diagnostic", diagnostic));
 }
 
 
@@ -368,7 +374,7 @@ struct WireCheckContext
  * the amounts for the aggregation table and checks that the total
  * claimed coin value is within the value of the coin's denomination.
  *
- * @param coin_pub public key of the coin (for reporting)
+ * @param coin_pub public key of the coin (for TALER_ARL_reporting)
  * @param h_contract_terms hash of the proposal for which we calculate the 
amount
  * @param merchant_pub public key of the merchant (who is allowed to issue 
refunds)
  * @param issue denomination information about the coin
@@ -379,17 +385,24 @@ struct WireCheckContext
  */
 static int
 check_transaction_history_for_deposit (const struct
-                                       TALER_CoinSpendPublicKeyP *coin_pub,
+                                       TALER_CoinSpendPublicKeyP *
+                                       coin_pub,
                                        const struct
-                                       GNUNET_HashCode *h_contract_terms,
+                                       GNUNET_HashCode *
+                                       h_contract_terms,
                                        const struct
-                                       TALER_MerchantPublicKeyP *merchant_pub,
+                                       TALER_MerchantPublicKeyP *
+                                       merchant_pub,
                                        const struct
-                                       TALER_DenominationKeyValidityPS *issue,
+                                       TALER_DenominationKeyValidityPS
+                                       *issue,
                                        const struct
-                                       TALER_EXCHANGEDB_TransactionList 
*tl_head,
-                                       struct TALER_Amount *merchant_gain,
-                                       struct TALER_Amount *deposit_gain)
+                                       TALER_EXCHANGEDB_TransactionList
+                                       *tl_head,
+                                       struct TALER_Amount *
+                                       merchant_gain,
+                                       struct TALER_Amount *
+                                       deposit_gain)
 {
   struct TALER_Amount expenditures;
   struct TALER_Amount refunds;
@@ -406,16 +419,16 @@ check_transaction_history_for_deposit (const struct
 
   GNUNET_assert (NULL != tl_head);
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &expenditures));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &refunds));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         merchant_gain));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &merchant_loss));
   /* Go over transaction history to compute totals; note that we do not
      know the order, so instead of subtracting we compute positive
@@ -762,11 +775,11 @@ wire_transfer_information_cb (
   }
 
   /* Obtain coin's transaction history */
-  qs = edb->get_coin_transactions (edb->cls,
-                                   esession,
-                                   coin_pub,
-                                   GNUNET_YES,
-                                   &tl);
+  qs = TALER_ARL_edb->get_coin_transactions (TALER_ARL_edb->cls,
+                                             TALER_ARL_esession,
+                                             coin_pub,
+                                             GNUNET_YES,
+                                             &tl);
   if ( (qs < 0) ||
        (NULL == tl) )
   {
@@ -776,10 +789,10 @@ wire_transfer_information_cb (
                               "no transaction history for coin claimed in 
aggregation");
     return;
   }
-  qs = edb->get_known_coin (edb->cls,
-                            esession,
-                            coin_pub,
-                            &coin);
+  qs = TALER_ARL_edb->get_known_coin (TALER_ARL_edb->cls,
+                                      TALER_ARL_esession,
+                                      coin_pub,
+                                      &coin);
   if (qs < 0)
   {
     GNUNET_break (0); /* this should be a foreign key violation at this point! 
*/
@@ -790,13 +803,13 @@ wire_transfer_information_cb (
     return;
   }
 
-  qs = get_denomination_info_by_hash (&coin.denom_pub_hash,
-                                      &issue);
+  qs = TALER_ARL_get_denomination_info_by_hash (&coin.denom_pub_hash,
+                                                &issue);
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT != qs)
   {
     GNUNET_CRYPTO_rsa_signature_free (coin.denom_sig.rsa_signature);
-    edb->free_coin_transaction_list (edb->cls,
-                                     tl);
+    TALER_ARL_edb->free_coin_transaction_list (TALER_ARL_edb->cls,
+                                               tl);
     if (0 == qs)
       report_row_inconsistency ("aggregation",
                                 rowid,
@@ -809,20 +822,20 @@ wire_transfer_information_cb (
       TALER_test_coin_valid (&coin,
                              denom_pub))
   {
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "wire",
-                       "row", (json_int_t) rowid,
-                       "loss", TALER_JSON_from_amount (coin_value),
-                       "key_pub", GNUNET_JSON_from_data_auto (
-                         &issue->denom_hash)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation", "wire",
+                                 "row", (json_int_t) rowid,
+                                 "loss", TALER_JSON_from_amount (coin_value),
+                                 "key_pub", GNUNET_JSON_from_data_auto (
+                                   &issue->denom_hash)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_sig_loss,
                                     &total_bad_sig_loss,
                                     coin_value));
     GNUNET_CRYPTO_rsa_signature_free (coin.denom_sig.rsa_signature);
-    edb->free_coin_transaction_list (edb->cls,
-                                     tl);
+    TALER_ARL_edb->free_coin_transaction_list (TALER_ARL_edb->cls,
+                                               tl);
     wcc->qs = GNUNET_DB_STATUS_HARD_ERROR;
     report_row_inconsistency ("deposit",
                               rowid,
@@ -841,7 +854,8 @@ wire_transfer_information_cb (
                                              issue,
                                              tl,
                                              &computed_value,
-                                             &total_deposit_without_refunds))
+                                             &
+                                             total_deposit_without_refunds))
   {
     wcc->qs = GNUNET_DB_STATUS_HARD_ERROR;
     report_row_inconsistency ("coin history",
@@ -858,11 +872,12 @@ wire_transfer_information_cb (
                              deposit_fee))
   {
     wcc->qs = GNUNET_DB_STATUS_HARD_ERROR;
-    report_amount_arithmetic_inconsistency ("aggregation (fee structure)",
-                                            rowid,
-                                            coin_value,
-                                            deposit_fee,
-                                            -1);
+    report_amount_arithmetic_inconsistency (
+      "aggregation (fee structure)",
+      rowid,
+      coin_value,
+      deposit_fee,
+      -1);
     return;
   }
   if (0 !=
@@ -873,14 +888,16 @@ wire_transfer_information_cb (
                 "Expected coin contribution of %s to aggregate\n",
                 TALER_amount2s (&coin_value_without_fee));
     wcc->qs = GNUNET_DB_STATUS_HARD_ERROR;
-    report_amount_arithmetic_inconsistency ("aggregation (contribution)",
-                                            rowid,
-                                            &coin_value_without_fee,
-                                            &total_deposit_without_refunds,
-                                            -1);
+    report_amount_arithmetic_inconsistency (
+      "aggregation (contribution)",
+      rowid,
+      &coin_value_without_fee,
+      &
+      total_deposit_without_refunds,
+      -1);
   }
-  edb->free_coin_transaction_list (edb->cls,
-                                   tl);
+  TALER_ARL_edb->free_coin_transaction_list (TALER_ARL_edb->cls,
+                                             tl);
 
   /* Check other details of wire transfer match */
   if (0 != GNUNET_memcmp (h_wire,
@@ -949,15 +966,15 @@ get_wire_fee (struct AggregationContext *ac,
   /* Lookup fee in exchange database */
   wfi = GNUNET_new (struct WireFeeInfo);
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
-      edb->get_wire_fee (edb->cls,
-                         esession,
-                         method,
-                         timestamp,
-                         &wfi->start_date,
-                         &wfi->end_date,
-                         &wfi->wire_fee,
-                         &wfi->closing_fee,
-                         &master_sig))
+      TALER_ARL_edb->get_wire_fee (TALER_ARL_edb->cls,
+                                   TALER_ARL_esession,
+                                   method,
+                                   timestamp,
+                                   &wfi->start_date,
+                                   &wfi->end_date,
+                                   &wfi->wire_fee,
+                                   &wfi->closing_fee,
+                                   &master_sig))
   {
     GNUNET_break (0);
     GNUNET_free (wfi);
@@ -985,7 +1002,7 @@ get_wire_fee (struct AggregationContext *ac,
         GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MASTER_WIRE_FEES,
                                     &wf.purpose,
                                     &master_sig.eddsa_signature,
-                                    &master_pub.eddsa_pub))
+                                    &TALER_ARL_master_pub.eddsa_pub))
     {
       report_row_inconsistency ("wire-fee",
                                 timestamp.abs_value_us,
@@ -1012,20 +1029,24 @@ get_wire_fee (struct AggregationContext *ac,
   if ( (NULL != wfi->prev) &&
        (wfi->prev->end_date.abs_value_us > wfi->start_date.abs_value_us) )
   {
-    report (report_fee_time_inconsistencies,
-            json_pack ("{s:s, s:s, s:o}",
-                       "type", method,
-                       "diagnostic", "start date before previous end date",
-                       "time", json_from_time_abs (wfi->start_date)));
+    TALER_ARL_report (report_fee_time_inconsistencies,
+                      json_pack ("{s:s, s:s, s:o}",
+                                 "type", method,
+                                 "diagnostic",
+                                 "start date before previous end date",
+                                 "time", TALER_ARL_json_from_time_abs (
+                                   wfi->start_date)));
   }
   if ( (NULL != wfi->next) &&
        (wfi->next->start_date.abs_value_us >= wfi->end_date.abs_value_us) )
   {
-    report (report_fee_time_inconsistencies,
-            json_pack ("{s:s, s:s, s:o}",
-                       "type", method,
-                       "diagnostic", "end date date after next start date",
-                       "time", json_from_time_abs (wfi->end_date)));
+    TALER_ARL_report (report_fee_time_inconsistencies,
+                      json_pack ("{s:s, s:s, s:o}",
+                                 "type", method,
+                                 "diagnostic",
+                                 "end date date after next start date",
+                                 "time", TALER_ARL_json_from_time_abs (
+                                   wfi->end_date)));
   }
   return &wfi->wire_fee;
 }
@@ -1089,11 +1110,11 @@ check_wire_out_cb (void *cls,
     GNUNET_free (method);
     return GNUNET_SYSERR;
   }
-  qs = edb->lookup_wire_transfer (edb->cls,
-                                  esession,
-                                  wtid,
-                                  &wire_transfer_information_cb,
-                                  &wcc);
+  qs = TALER_ARL_edb->lookup_wire_transfer (TALER_ARL_edb->cls,
+                                            TALER_ARL_esession,
+                                            wtid,
+                                            &wire_transfer_information_cb,
+                                            &wcc);
   if (0 > qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -1133,11 +1154,12 @@ check_wire_out_cb (void *cls,
                                     &wcc.total_deposits,
                                     wire_fee))
     {
-      report_amount_arithmetic_inconsistency ("wire out (fee structure)",
-                                              rowid,
-                                              &wcc.total_deposits,
-                                              wire_fee,
-                                              -1);
+      report_amount_arithmetic_inconsistency (
+        "wire out (fee structure)",
+        rowid,
+        &wcc.total_deposits,
+        wire_fee,
+        -1);
       /* If fee arithmetic fails, we just assume the fee is zero */
       final_amount = wcc.total_deposits;
     }
@@ -1147,7 +1169,7 @@ check_wire_out_cb (void *cls,
   /* Round down to amount supported by wire method */
   GNUNET_break (GNUNET_SYSERR !=
                 TALER_amount_round_down (&final_amount,
-                                         &currency_round_unit));
+                                         &TALER_ARL_currency_round_unit));
 
   /* Calculate the exchange's gain as the fees plus rounding differences! */
   if (GNUNET_SYSERR ==
@@ -1203,14 +1225,14 @@ check_wire_out_cb (void *cls,
                                        &delta));
     }
 
-    report (report_wire_out_inconsistencies,
-            json_pack ("{s:O, s:I, s:o, s:o}",
-                       "destination_account", wire,
-                       "rowid", (json_int_t) rowid,
-                       "expected",
-                       TALER_JSON_from_amount (&final_amount),
-                       "claimed",
-                       TALER_JSON_from_amount (amount)));
+    TALER_ARL_report (report_wire_out_inconsistencies,
+                      json_pack ("{s:O, s:I, s:o, s:o}",
+                                 "destination_account", wire,
+                                 "rowid", (json_int_t) rowid,
+                                 "expected",
+                                 TALER_JSON_from_amount (&final_amount),
+                                 "claimed",
+                                 TALER_JSON_from_amount (amount)));
     return GNUNET_OK;
   }
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -1238,10 +1260,10 @@ analyze_aggregations (void *cls)
   (void) cls;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Analyzing aggregations\n");
-  qsp = adb->get_auditor_progress_aggregation (adb->cls,
-                                               asession,
-                                               &master_pub,
-                                               &ppa);
+  qsp = TALER_ARL_adb->get_auditor_progress_aggregation (TALER_ARL_adb->cls,
+                                                         TALER_ARL_asession,
+                                                         &TALER_ARL_master_pub,
+                                                         &ppa);
   if (0 > qsp)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qsp);
@@ -1264,21 +1286,22 @@ analyze_aggregations (void *cls)
   memset (&ac,
           0,
           sizeof (ac));
-  qsx = adb->get_wire_fee_summary (adb->cls,
-                                   asession,
-                                   &master_pub,
-                                   &total_aggregation_fee_income);
+  qsx = TALER_ARL_adb->get_wire_fee_summary (TALER_ARL_adb->cls,
+                                             TALER_ARL_asession,
+                                             &TALER_ARL_master_pub,
+                                             &total_aggregation_fee_income);
   if (0 > qsx)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qsx);
     return qsx;
   }
   ac.qs = GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
-  qs = edb->select_wire_out_above_serial_id (edb->cls,
-                                             esession,
-                                             ppa.last_wire_out_serial_id,
-                                             &check_wire_out_cb,
-                                             &ac);
+  qs = TALER_ARL_edb->select_wire_out_above_serial_id (TALER_ARL_edb->cls,
+                                                       TALER_ARL_esession,
+                                                       ppa.
+                                                       last_wire_out_serial_id,
+                                                       &check_wire_out_cb,
+                                                       &ac);
   if (0 > qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -1302,30 +1325,34 @@ analyze_aggregations (void *cls)
     return ac.qs;
   }
   if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qsx)
-    ac.qs = adb->insert_wire_fee_summary (adb->cls,
-                                          asession,
-                                          &master_pub,
-                                          &total_aggregation_fee_income);
+    ac.qs = TALER_ARL_adb->insert_wire_fee_summary (TALER_ARL_adb->cls,
+                                                    TALER_ARL_asession,
+                                                    &TALER_ARL_master_pub,
+                                                    &
+                                                    
total_aggregation_fee_income);
   else
-    ac.qs = adb->update_wire_fee_summary (adb->cls,
-                                          asession,
-                                          &master_pub,
-                                          &total_aggregation_fee_income);
+    ac.qs = TALER_ARL_adb->update_wire_fee_summary (TALER_ARL_adb->cls,
+                                                    TALER_ARL_asession,
+                                                    &TALER_ARL_master_pub,
+                                                    &
+                                                    
total_aggregation_fee_income);
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT != ac.qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == ac.qs);
     return ac.qs;
   }
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qsp)
-    qs = adb->update_auditor_progress_aggregation (adb->cls,
-                                                   asession,
-                                                   &master_pub,
-                                                   &ppa);
+    qs = TALER_ARL_adb->update_auditor_progress_aggregation 
(TALER_ARL_adb->cls,
+                                                             
TALER_ARL_asession,
+                                                             &
+                                                             
TALER_ARL_master_pub,
+                                                             &ppa);
   else
-    qs = adb->insert_auditor_progress_aggregation (adb->cls,
-                                                   asession,
-                                                   &master_pub,
-                                                   &ppa);
+    qs = TALER_ARL_adb->insert_auditor_progress_aggregation 
(TALER_ARL_adb->cls,
+                                                             
TALER_ARL_asession,
+                                                             &
+                                                             
TALER_ARL_master_pub,
+                                                             &ppa);
   if (0 >= qs)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -1346,24 +1373,24 @@ analyze_aggregations (void *cls)
  *
  * @param cls closure
  * @param args remaining command-line arguments
- * @param cfgfile name of the configuration file used (for saving, can be 
NULL!)
+ * @param TALER_ARL_cfgfile name of the configuration file used (for saving, 
can be NULL!)
  * @param c configuration
  */
 static void
 run (void *cls,
      char *const *args,
-     const char *cfgfile,
+     const char *TALER_ARL_cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *c)
 {
   json_t *report;
 
   (void) cls;
   (void) args;
-  (void) cfgfile;
+  (void) TALER_ARL_cfgfile;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Launching auditor\n");
   if (GNUNET_OK !=
-      setup_globals (c))
+      TALER_ARL_init (c))
   {
     global_ret = 1;
     return;
@@ -1371,28 +1398,28 @@ run (void *cls,
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Starting audit\n");
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_aggregation_fee_income));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_wire_out_delta_plus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_wire_out_delta_minus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_arithmetic_delta_plus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_arithmetic_delta_minus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_coin_delta_plus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_coin_delta_minus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_bad_sig_loss));
   GNUNET_assert (NULL !=
                  (report_row_inconsistencies = json_array ()));
@@ -1401,13 +1428,14 @@ run (void *cls,
   GNUNET_assert (NULL !=
                  (report_coin_inconsistencies = json_array ()));
   GNUNET_assert (NULL !=
-                 (report_amount_arithmetic_inconsistencies = json_array ()));
+                 (report_amount_arithmetic_inconsistencies =
+                    json_array ()));
   GNUNET_assert (NULL !=
                  (report_bad_sig_losses = json_array ()));
   GNUNET_assert (NULL !=
                  (report_fee_time_inconsistencies = json_array ()));
-  setup_sessions_and_run (&analyze_aggregations,
-                          NULL);
+  TALER_ARL_setup_sessions_and_run (&analyze_aggregations,
+                                    NULL);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Audit complete\n");
   report = json_pack ("{s:o, s:o, s:o, s:o, s:o,"
@@ -1418,9 +1446,11 @@ run (void *cls,
                       "wire_out_inconsistencies",
                       report_wire_out_inconsistencies,
                       "total_wire_out_delta_plus",
-                      TALER_JSON_from_amount (&total_wire_out_delta_plus),
+                      TALER_JSON_from_amount (
+                        &total_wire_out_delta_plus),
                       "total_wire_out_delta_minus",
-                      TALER_JSON_from_amount (&total_wire_out_delta_minus),
+                      TALER_JSON_from_amount (
+                        &total_wire_out_delta_minus),
                       /* Tested in test-auditor.sh #4/#5/#6/#7/#13 */
                       "bad_sig_losses",
                       report_bad_sig_losses,
@@ -1436,27 +1466,34 @@ run (void *cls,
                       "total_coin_delta_plus",
                       TALER_JSON_from_amount (&total_coin_delta_plus),
                       "total_coin_delta_minus",
-                      TALER_JSON_from_amount (&total_coin_delta_minus),
+                      TALER_JSON_from_amount (
+                        &total_coin_delta_minus),
                       "amount_arithmetic_inconsistencies",
                       report_amount_arithmetic_inconsistencies,
                       /* block #3 */
                       "total_arithmetic_delta_plus",
-                      TALER_JSON_from_amount (&total_arithmetic_delta_plus),
+                      TALER_JSON_from_amount (
+                        &total_arithmetic_delta_plus),
                       "total_arithmetic_delta_minus",
-                      TALER_JSON_from_amount (&total_arithmetic_delta_minus),
+                      TALER_JSON_from_amount (
+                        &total_arithmetic_delta_minus),
                       "total_aggregation_fee_income",
-                      TALER_JSON_from_amount (&total_aggregation_fee_income),
+                      TALER_JSON_from_amount (
+                        &total_aggregation_fee_income),
                       "start_ppa_wire_out_serial_id",
                       (json_int_t) ppa_start.last_wire_out_serial_id,
                       "end_ppa_wire_out_serial_id",
                       (json_int_t) ppa.last_wire_out_serial_id,
                       /* block #4 */
-                      "auditor_start_time", json_from_time_abs (start_time),
-                      "auditor_end_time", json_from_time_abs (
+                      "auditor_start_time",
+                      TALER_ARL_json_from_time_abs (
+                        start_time),
+                      "auditor_end_time",
+                      TALER_ARL_json_from_time_abs (
                         GNUNET_TIME_absolute_get ())
                       );
   GNUNET_break (NULL != report);
-  finish_report (report);
+  TALER_ARL_done (report);
 }
 
 
@@ -1477,11 +1514,11 @@ main (int argc,
                                       "exchange-key",
                                       "KEY",
                                       "public key of the exchange (Crockford 
base32 encoded)",
-                                      &master_pub),
+                                      &TALER_ARL_master_pub),
     GNUNET_GETOPT_option_flag ('r',
-                               "restart",
-                               "restart audit from the beginning (required on 
first run)",
-                               &restart),
+                               "TALER_ARL_restart",
+                               "TALER_ARL_restart audit from the beginning 
(required on first run)",
+                               &TALER_ARL_restart),
     GNUNET_GETOPT_option_timetravel ('T',
                                      "timetravel"),
     GNUNET_GETOPT_OPTION_END
diff --git a/src/auditor/taler-auditor-coins.c 
b/src/auditor/taler-helper-auditor-coins.c
similarity index 77%
rename from src/auditor/taler-auditor-coins.c
rename to src/auditor/taler-helper-auditor-coins.c
index d895c043..c9250961 100644
--- a/src/auditor/taler-auditor-coins.c
+++ b/src/auditor/taler-helper-auditor-coins.c
@@ -14,25 +14,10 @@
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file auditor/taler-auditor.c
- * @brief audits an exchange database.
+ * @file auditor/taler-helper-auditor0coins.c
+ * @brief audits coins in an exchange database.
  * @author Christian Grothoff
  *
- * NOTE:
- * - This auditor does not verify that 'reserves_in' actually matches
- *   the wire transfers from the bank. This needs to be checked separately!
- * - Similarly, we do not check that the outgoing wire transfers match those
- *   given in the 'wire_out' table. This needs to be checked separately!
- *
- * TODO:
- * - reorganize: different passes are combined in one tool and one
- *   file here, we should split this up!
- * - likely should do an iteration over known_coins instead of checking
- *   those signatures again and again
- * - might want to bite the bullet and do asynchronous signature
- *   verification to improve parallelism / speed -- we'll need to scale
- *   this eventually anyway!
- *
  * UNDECIDED:
  * - do we care about checking the 'done' flag in deposit_cb?
  */
@@ -76,19 +61,19 @@ static struct TALER_AUDITORDB_ProgressPointCoin ppc;
 static struct TALER_AUDITORDB_ProgressPointCoin ppc_start;
 
 /**
- * Array of reports about denomination keys with an
+ * Array of TALER_ARL_reports about denomination keys with an
  * emergency (more value deposited than withdrawn)
  */
 static json_t *report_emergencies;
 
 /**
- * Array of reports about denomination keys with an
+ * Array of TALER_ARL_reports about denomination keys with an
  * emergency (more coins deposited than withdrawn)
  */
 static json_t *report_emergencies_by_count;
 
 /**
- * Array of reports about row inconsitencies.
+ * Array of TALER_ARL_reports about row inconsitencies.
  */
 static json_t *report_row_inconsistencies;
 
@@ -164,7 +149,7 @@ static struct TALER_Amount total_melt_fee_income;
 static struct TALER_Amount total_refund_fee_income;
 
 /**
- * Array of reports about coin operations with bad signatures.
+ * Array of TALER_ARL_reports about coin operations with bad signatures.
  */
 static json_t *report_bad_sig_losses;
 
@@ -200,24 +185,27 @@ static struct TALER_Amount total_refresh_hanging;
  * @param loss actual losses already (actualized before denomination was 
revoked)
  */
 static void
-report_emergency_by_amount (const struct TALER_DenominationKeyValidityPS 
*issue,
+report_emergency_by_amount (const struct
+                            TALER_DenominationKeyValidityPS *issue,
                             const struct TALER_Amount *risk,
                             const struct TALER_Amount *loss)
 {
-  report (report_emergencies,
-          json_pack ("{s:o, s:o, s:o, s:o, s:o, s:o}",
-                     "denompub_hash",
-                     GNUNET_JSON_from_data_auto (&issue->denom_hash),
-                     "denom_risk",
-                     TALER_JSON_from_amount (risk),
-                     "denom_loss",
-                     TALER_JSON_from_amount (loss),
-                     "start",
-                     json_from_time_abs_nbo (issue->start),
-                     "deposit_end",
-                     json_from_time_abs_nbo (issue->expire_deposit),
-                     "value",
-                     TALER_JSON_from_amount_nbo (&issue->value)));
+  TALER_ARL_report (report_emergencies,
+                    json_pack ("{s:o, s:o, s:o, s:o, s:o, s:o}",
+                               "denompub_hash",
+                               GNUNET_JSON_from_data_auto (&issue->denom_hash),
+                               "denom_risk",
+                               TALER_JSON_from_amount (risk),
+                               "denom_loss",
+                               TALER_JSON_from_amount (loss),
+                               "start",
+                               TALER_ARL_TALER_ARL_json_from_time_abs_nbo (
+                                 issue->start),
+                               "deposit_end",
+                               TALER_ARL_TALER_ARL_json_from_time_abs_nbo (
+                                 issue->expire_deposit),
+                               "value",
+                               TALER_JSON_from_amount_nbo (&issue->value)));
   GNUNET_assert (GNUNET_OK ==
                  TALER_amount_add (&reported_emergency_risk_by_amount,
                                    &reported_emergency_risk_by_amount,
@@ -244,29 +232,32 @@ report_emergency_by_amount (const struct 
TALER_DenominationKeyValidityPS *issue,
  * @param risk amount that is at risk
  */
 static void
-report_emergency_by_count (const struct TALER_DenominationKeyValidityPS *issue,
+report_emergency_by_count (const struct
+                           TALER_DenominationKeyValidityPS *issue,
                            uint64_t num_issued,
                            uint64_t num_known,
                            const struct TALER_Amount *risk)
 {
   struct TALER_Amount denom_value;
 
-  report (report_emergencies_by_count,
-          json_pack ("{s:o, s:I, s:I, s:o, s:o, s:o, s:o}",
-                     "denompub_hash",
-                     GNUNET_JSON_from_data_auto (&issue->denom_hash),
-                     "num_issued",
-                     (json_int_t) num_issued,
-                     "num_known",
-                     (json_int_t) num_known,
-                     "denom_risk",
-                     TALER_JSON_from_amount (risk),
-                     "start",
-                     json_from_time_abs_nbo (issue->start),
-                     "deposit_end",
-                     json_from_time_abs_nbo (issue->expire_deposit),
-                     "value",
-                     TALER_JSON_from_amount_nbo (&issue->value)));
+  TALER_ARL_report (report_emergencies_by_count,
+                    json_pack ("{s:o, s:I, s:I, s:o, s:o, s:o, s:o}",
+                               "denompub_hash",
+                               GNUNET_JSON_from_data_auto (&issue->denom_hash),
+                               "num_issued",
+                               (json_int_t) num_issued,
+                               "num_known",
+                               (json_int_t) num_known,
+                               "denom_risk",
+                               TALER_JSON_from_amount (risk),
+                               "start",
+                               TALER_ARL_TALER_ARL_json_from_time_abs_nbo (
+                                 issue->start),
+                               "deposit_end",
+                               TALER_ARL_TALER_ARL_json_from_time_abs_nbo (
+                                 issue->expire_deposit),
+                               "value",
+                               TALER_JSON_from_amount_nbo (&issue->value)));
   GNUNET_assert (GNUNET_OK ==
                  TALER_amount_add (&reported_emergency_risk_by_count,
                                    &reported_emergency_risk_by_count,
@@ -275,9 +266,10 @@ report_emergency_by_count (const struct 
TALER_DenominationKeyValidityPS *issue,
                      &issue->value);
   for (uint64_t i = num_issued; i<num_known; i++)
     GNUNET_assert (GNUNET_OK ==
-                   TALER_amount_add (&reported_emergency_loss_by_count,
-                                     &reported_emergency_loss_by_count,
-                                     &denom_value));
+                   TALER_amount_add (
+                     &reported_emergency_loss_by_count,
+                     &reported_emergency_loss_by_count,
+                     &denom_value));
 
 }
 
@@ -298,8 +290,10 @@ report_emergency_by_count (const struct 
TALER_DenominationKeyValidityPS *issue,
 static void
 report_amount_arithmetic_inconsistency (const char *operation,
                                         uint64_t rowid,
-                                        const struct TALER_Amount *exchange,
-                                        const struct TALER_Amount *auditor,
+                                        const struct
+                                        TALER_Amount *exchange,
+                                        const struct
+                                        TALER_Amount *auditor,
                                         int profitable)
 {
   struct TALER_Amount delta;
@@ -323,13 +317,13 @@ report_amount_arithmetic_inconsistency (const char 
*operation,
                                          auditor,
                                          exchange));
   }
-  report (report_amount_arithmetic_inconsistencies,
-          json_pack ("{s:s, s:I, s:o, s:o, s:I}",
-                     "operation", operation,
-                     "rowid", (json_int_t) rowid,
-                     "exchange", TALER_JSON_from_amount (exchange),
-                     "auditor", TALER_JSON_from_amount (auditor),
-                     "profitable", (json_int_t) profitable));
+  TALER_ARL_report (report_amount_arithmetic_inconsistencies,
+                    json_pack ("{s:s, s:I, s:o, s:o, s:I}",
+                               "operation", operation,
+                               "rowid", (json_int_t) rowid,
+                               "exchange", TALER_JSON_from_amount (exchange),
+                               "auditor", TALER_JSON_from_amount (auditor),
+                               "profitable", (json_int_t) profitable));
   if (0 != profitable)
   {
     target = (1 == profitable)
@@ -355,11 +349,11 @@ report_row_inconsistency (const char *table,
                           uint64_t rowid,
                           const char *diagnostic)
 {
-  report (report_row_inconsistencies,
-          json_pack ("{s:s, s:I, s:s}",
-                     "table", table,
-                     "row", (json_int_t) rowid,
-                     "diagnostic", diagnostic));
+  TALER_ARL_report (report_row_inconsistencies,
+                    json_pack ("{s:s, s:I, s:s}",
+                               "table", table,
+                               "row", (json_int_t) rowid,
+                               "diagnostic", diagnostic));
 }
 
 
@@ -416,7 +410,7 @@ struct DenominationSummary
   int in_db;
 
   /**
-   * Should we report an emergency for this denomination?
+   * Should we TALER_ARL_report an emergency for this denomination?
    */
   int report_emergency;
 
@@ -466,14 +460,14 @@ init_denomination (const struct GNUNET_HashCode 
*denom_hash,
   struct TALER_MasterSignatureP msig;
   uint64_t rowid;
 
-  qs = adb->get_denomination_balance (adb->cls,
-                                      asession,
-                                      denom_hash,
-                                      &ds->denom_balance,
-                                      &ds->denom_loss,
-                                      &ds->denom_risk,
-                                      &ds->denom_recoup,
-                                      &ds->num_issued);
+  qs = TALER_ARL_adb->get_denomination_balance (TALER_ARL_adb->cls,
+                                                TALER_ARL_asession,
+                                                denom_hash,
+                                                &ds->denom_balance,
+                                                &ds->denom_loss,
+                                                &ds->denom_risk,
+                                                &ds->denom_recoup,
+                                                &ds->num_issued);
   if (0 > qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -488,11 +482,11 @@ init_denomination (const struct GNUNET_HashCode 
*denom_hash,
                 TALER_amount2s (&ds->denom_balance));
     return GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
   }
-  qs = edb->get_denomination_revocation (edb->cls,
-                                         esession,
-                                         denom_hash,
-                                         &msig,
-                                         &rowid);
+  qs = TALER_ARL_edb->get_denomination_revocation (TALER_ARL_edb->cls,
+                                                   TALER_ARL_esession,
+                                                   denom_hash,
+                                                   &msig,
+                                                   &rowid);
   if (0 > qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -512,7 +506,7 @@ init_denomination (const struct GNUNET_HashCode *denom_hash,
           TALER_SIGNATURE_MASTER_DENOMINATION_KEY_REVOKED,
           &rm.purpose,
           &msig.eddsa_signature,
-          &master_pub.eddsa_pub))
+          &TALER_ARL_master_pub.eddsa_pub))
     {
       report_row_inconsistency ("denomination revocation table",
                                 rowid,
@@ -524,16 +518,16 @@ init_denomination (const struct GNUNET_HashCode 
*denom_hash,
     }
   }
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &ds->denom_balance));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &ds->denom_loss));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &ds->denom_risk));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &ds->denom_recoup));
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Starting balance for denomination `%s' is %s\n",
@@ -582,7 +576,7 @@ get_denomination_summary (struct CoinContext *cc,
 
 /**
  * Write information about the current knowledge about a denomination key
- * back to the database and update our global reporting data about the
+ * back to the database and update our global TALER_ARL_reporting data about 
the
  * denomination.  Also remove and free the memory of @a value.
  *
  * @param cls the `struct CoinContext`
@@ -613,9 +607,9 @@ sync_denomination (void *cls,
     /* Denominationkey has expired, book remaining balance of
        outstanding coins as revenue; and reduce cc->risk exposure. */
     if (ds->in_db)
-      qs = adb->del_denomination_balance (adb->cls,
-                                          asession,
-                                          denom_hash);
+      qs = TALER_ARL_adb->del_denomination_balance (TALER_ARL_adb->cls,
+                                                    TALER_ARL_asession,
+                                                    denom_hash);
     else
       qs = GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
     if ( (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs) &&
@@ -646,13 +640,15 @@ sync_denomination (void *cls,
                   GNUNET_h2s (denom_hash),
                   TALER_amount2s (&ds->denom_balance));
       if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
-          (qs = adb->insert_historic_denom_revenue (adb->cls,
-                                                    asession,
-                                                    &master_pub,
-                                                    denom_hash,
-                                                    expire_deposit,
-                                                    &ds->denom_balance,
-                                                    &ds->denom_recoup)))
+          (qs = TALER_ARL_adb->insert_historic_denom_revenue (
+             TALER_ARL_adb->cls,
+             TALER_ARL_asession,
+             &
+             TALER_ARL_master_pub,
+             denom_hash,
+             expire_deposit,
+             &ds->denom_balance,
+             &ds->denom_recoup)))
       {
         /* Failed to store profits? Bad database */
         GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -669,9 +665,9 @@ sync_denomination (void *cls,
                 GNUNET_h2s (denom_hash),
                 TALER_amount2s (&ds->denom_balance),
                 (unsigned long long) ds->num_issued);
-    cnt = edb->count_known_coins (edb->cls,
-                                  esession,
-                                  denom_hash);
+    cnt = TALER_ARL_edb->count_known_coins (TALER_ARL_edb->cls,
+                                            TALER_ARL_esession,
+                                            denom_hash);
     if (0 > cnt)
     {
       /* Failed to obtain count? Bad database */
@@ -696,23 +692,23 @@ sync_denomination (void *cls,
 
       }
       if (ds->in_db)
-        qs = adb->update_denomination_balance (adb->cls,
-                                               asession,
-                                               denom_hash,
-                                               &ds->denom_balance,
-                                               &ds->denom_loss,
-                                               &ds->denom_risk,
-                                               &ds->denom_recoup,
-                                               ds->num_issued);
+        qs = TALER_ARL_adb->update_denomination_balance (TALER_ARL_adb->cls,
+                                                         TALER_ARL_asession,
+                                                         denom_hash,
+                                                         &ds->denom_balance,
+                                                         &ds->denom_loss,
+                                                         &ds->denom_risk,
+                                                         &ds->denom_recoup,
+                                                         ds->num_issued);
       else
-        qs = adb->insert_denomination_balance (adb->cls,
-                                               asession,
-                                               denom_hash,
-                                               &ds->denom_balance,
-                                               &ds->denom_loss,
-                                               &ds->denom_risk,
-                                               &ds->denom_recoup,
-                                               ds->num_issued);
+        qs = TALER_ARL_adb->insert_denomination_balance (TALER_ARL_adb->cls,
+                                                         TALER_ARL_asession,
+                                                         denom_hash,
+                                                         &ds->denom_balance,
+                                                         &ds->denom_loss,
+                                                         &ds->denom_risk,
+                                                         &ds->denom_recoup,
+                                                         ds->num_issued);
     }
   }
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT != qs)
@@ -774,9 +770,9 @@ withdraw_cb (void *cls,
   GNUNET_assert (rowid >= ppc.last_withdraw_serial_id); /* should be 
monotonically increasing */
   ppc.last_withdraw_serial_id = rowid + 1;
 
-  qs = get_denomination_info (denom_pub,
-                              &issue,
-                              &dh);
+  qs = TALER_ARL_get_denomination_info (denom_pub,
+                                        &issue,
+                                        &dh);
   if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
   {
     report_row_inconsistency ("withdraw",
@@ -902,7 +898,7 @@ reveal_data_cb (void *cls,
 
 /**
  * Check that the @a coin_pub is a known coin with a proper
- * signature for denominatinon @a denom_pub. If not, report
+ * signature for denominatinon @a denom_pub. If not, TALER_ARL_report
  * a loss of @a loss_potential.
  *
  * @param coin_pub public key of a coin
@@ -923,10 +919,10 @@ check_known_coin (const struct TALER_CoinSpendPublicKeyP 
*coin_pub,
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Checking denomination signature on %s\n",
               TALER_B2S (coin_pub));
-  qs = edb->get_known_coin (edb->cls,
-                            esession,
-                            coin_pub,
-                            &ci);
+  qs = TALER_ARL_edb->get_known_coin (TALER_ARL_edb->cls,
+                                      TALER_ARL_esession,
+                                      coin_pub,
+                                      &ci);
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT != qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -936,12 +932,14 @@ check_known_coin (const struct TALER_CoinSpendPublicKeyP 
*coin_pub,
       TALER_test_coin_valid (&ci,
                              denom_pub))
   {
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "known-coin",
-                       "row", (json_int_t) -1,
-                       "loss", TALER_JSON_from_amount (loss_potential),
-                       "key_pub", GNUNET_JSON_from_data_auto (coin_pub)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation", "known-coin",
+                                 "row", (json_int_t) -1,
+                                 "loss", TALER_JSON_from_amount (
+                                   loss_potential),
+                                 "key_pub", GNUNET_JSON_from_data_auto (
+                                   coin_pub)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_sig_loss,
                                     &total_bad_sig_loss,
@@ -992,9 +990,9 @@ refresh_session_cb (void *cls,
   GNUNET_assert (rowid >= ppc.last_melt_serial_id); /* should be monotonically 
increasing */
   ppc.last_melt_serial_id = rowid + 1;
 
-  qs = get_denomination_info (denom_pub,
-                              &issue,
-                              NULL);
+  qs = TALER_ARL_get_denomination_info (denom_pub,
+                                        &issue,
+                                        NULL);
   if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
   {
     report_row_inconsistency ("melt",
@@ -1032,12 +1030,14 @@ refresh_session_cb (void *cls,
                                   &coin_sig->eddsa_signature,
                                   &coin_pub->eddsa_pub))
   {
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "melt",
-                       "row", (json_int_t) rowid,
-                       "loss", TALER_JSON_from_amount (amount_with_fee),
-                       "key_pub", GNUNET_JSON_from_data_auto (coin_pub)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation", "melt",
+                                 "row", (json_int_t) rowid,
+                                 "loss", TALER_JSON_from_amount (
+                                   amount_with_fee),
+                                 "key_pub", GNUNET_JSON_from_data_auto (
+                                   coin_pub)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_sig_loss,
                                     &total_bad_sig_loss,
@@ -1061,11 +1061,11 @@ refresh_session_cb (void *cls,
     memset (&reveal_ctx,
             0,
             sizeof (reveal_ctx));
-    qs = edb->get_refresh_reveal (edb->cls,
-                                  esession,
-                                  rc,
-                                  &reveal_data_cb,
-                                  &reveal_ctx);
+    qs = TALER_ARL_edb->get_refresh_reveal (TALER_ARL_edb->cls,
+                                            TALER_ARL_esession,
+                                            rc,
+                                            &reveal_data_cb,
+                                            &reveal_ctx);
     if (0 > qs)
     {
       GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -1077,12 +1077,14 @@ refresh_session_cb (void *cls,
     {
       /* This can happen if /refresh/reveal was not yet called or only
          with invalid data, even if the exchange is correctly
-         operating. We still report it. */
-      report (report_refreshs_hanging,
-              json_pack ("{s:I, s:o, s:o}",
-                         "row", (json_int_t) rowid,
-                         "amount", TALER_JSON_from_amount (amount_with_fee),
-                         "coin_pub", GNUNET_JSON_from_data_auto (coin_pub)));
+         operating. We still TALER_ARL_report it. */
+      TALER_ARL_report (report_refreshs_hanging,
+                        json_pack ("{s:I, s:o, s:o}",
+                                   "row", (json_int_t) rowid,
+                                   "amount", TALER_JSON_from_amount (
+                                     amount_with_fee),
+                                   "coin_pub", GNUNET_JSON_from_data_auto (
+                                     coin_pub)));
       GNUNET_break (GNUNET_OK ==
                     TALER_amount_add (&total_refresh_hanging,
                                       &total_refresh_hanging,
@@ -1100,9 +1102,9 @@ refresh_session_cb (void *cls,
       for (unsigned int i = 0; i<reveal_ctx.num_freshcoins; i++)
       {
         /* lookup new coin denomination key */
-        qs = get_denomination_info (&reveal_ctx.new_dps[i],
-                                    &new_issues[i],
-                                    NULL);
+        qs = TALER_ARL_get_denomination_info (&reveal_ctx.new_dps[i],
+                                              &new_issues[i],
+                                              NULL);
         if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
         {
           report_row_inconsistency ("refresh_reveal",
@@ -1369,9 +1371,9 @@ deposit_cb (void *cls,
   GNUNET_assert (rowid >= ppc.last_deposit_serial_id); /* should be 
monotonically increasing */
   ppc.last_deposit_serial_id = rowid + 1;
 
-  qs = get_denomination_info (denom_pub,
-                              &issue,
-                              NULL);
+  qs = TALER_ARL_get_denomination_info (denom_pub,
+                                        &issue,
+                                        NULL);
   if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
   {
     report_row_inconsistency ("deposits",
@@ -1404,12 +1406,14 @@ deposit_cb (void *cls,
       TALER_JSON_merchant_wire_signature_hash (receiver_wire_account,
                                                &dr.h_wire))
   {
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "deposit",
-                       "row", (json_int_t) rowid,
-                       "loss", TALER_JSON_from_amount (amount_with_fee),
-                       "key_pub", GNUNET_JSON_from_data_auto (coin_pub)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation", "deposit",
+                                 "row", (json_int_t) rowid,
+                                 "loss", TALER_JSON_from_amount (
+                                   amount_with_fee),
+                                 "key_pub", GNUNET_JSON_from_data_auto (
+                                   coin_pub)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_sig_loss,
                                     &total_bad_sig_loss,
@@ -1429,12 +1433,14 @@ deposit_cb (void *cls,
                                   &coin_sig->eddsa_signature,
                                   &coin_pub->eddsa_pub))
   {
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "deposit",
-                       "row", (json_int_t) rowid,
-                       "loss", TALER_JSON_from_amount (amount_with_fee),
-                       "key_pub", GNUNET_JSON_from_data_auto (coin_pub)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation", "deposit",
+                                 "row", (json_int_t) rowid,
+                                 "loss", TALER_JSON_from_amount (
+                                   amount_with_fee),
+                                 "key_pub", GNUNET_JSON_from_data_auto (
+                                   coin_pub)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_sig_loss,
                                     &total_bad_sig_loss,
@@ -1560,9 +1566,9 @@ refund_cb (void *cls,
   GNUNET_assert (rowid >= ppc.last_refund_serial_id); /* should be 
monotonically increasing */
   ppc.last_refund_serial_id = rowid + 1;
 
-  qs = get_denomination_info (denom_pub,
-                              &issue,
-                              NULL);
+  qs = TALER_ARL_get_denomination_info (denom_pub,
+                                        &issue,
+                                        NULL);
   if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
   {
     report_row_inconsistency ("refunds",
@@ -1592,12 +1598,14 @@ refund_cb (void *cls,
                                   &merchant_sig->eddsa_sig,
                                   &merchant_pub->eddsa_pub))
   {
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "refund",
-                       "row", (json_int_t) rowid,
-                       "loss", TALER_JSON_from_amount (amount_with_fee),
-                       "key_pub", GNUNET_JSON_from_data_auto (merchant_pub)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation", "refund",
+                                 "row", (json_int_t) rowid,
+                                 "loss", TALER_JSON_from_amount (
+                                   amount_with_fee),
+                                 "key_pub", GNUNET_JSON_from_data_auto (
+                                   merchant_pub)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_sig_loss,
                                     &total_bad_sig_loss,
@@ -1723,21 +1731,21 @@ check_recoup (struct CoinContext *cc,
       TALER_test_coin_valid (coin,
                              denom_pub))
   {
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "recoup",
-                       "row", (json_int_t) rowid,
-                       "loss", TALER_JSON_from_amount (amount),
-                       "key_pub", GNUNET_JSON_from_data_auto (
-                         &pr.h_denom_pub)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation", "recoup",
+                                 "row", (json_int_t) rowid,
+                                 "loss", TALER_JSON_from_amount (amount),
+                                 "key_pub", GNUNET_JSON_from_data_auto (
+                                   &pr.h_denom_pub)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_sig_loss,
                                     &total_bad_sig_loss,
                                     amount));
   }
-  qs = get_denomination_info (denom_pub,
-                              &issue,
-                              &pr.h_denom_pub);
+  qs = TALER_ARL_get_denomination_info (denom_pub,
+                                        &issue,
+                                        &pr.h_denom_pub);
   if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
   {
     report_row_inconsistency ("recoup",
@@ -1763,13 +1771,13 @@ check_recoup (struct CoinContext *cc,
                                   &coin_sig->eddsa_signature,
                                   &coin->coin_pub.eddsa_pub))
   {
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "recoup",
-                       "row", (json_int_t) rowid,
-                       "loss", TALER_JSON_from_amount (amount),
-                       "coin_pub", GNUNET_JSON_from_data_auto (
-                         &coin->coin_pub)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation", "recoup",
+                                 "row", (json_int_t) rowid,
+                                 "loss", TALER_JSON_from_amount (amount),
+                                 "coin_pub", GNUNET_JSON_from_data_auto (
+                                   &coin->coin_pub)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_sig_loss,
                                     &total_bad_sig_loss,
@@ -1782,13 +1790,14 @@ check_recoup (struct CoinContext *cc,
   if (GNUNET_NO == ds->was_revoked)
   {
     /* Woopsie, we allowed recoup on non-revoked denomination!? */
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "recoup (denomination not revoked)",
-                       "row", (json_int_t) rowid,
-                       "loss", TALER_JSON_from_amount (amount),
-                       "coin_pub", GNUNET_JSON_from_data_auto (
-                         &coin->coin_pub)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation",
+                                 "recoup (denomination not revoked)",
+                                 "row", (json_int_t) rowid,
+                                 "loss", TALER_JSON_from_amount (amount),
+                                 "coin_pub", GNUNET_JSON_from_data_auto (
+                                   &coin->coin_pub)));
   }
   GNUNET_break (GNUNET_OK ==
                 TALER_amount_add (&ds->denom_recoup,
@@ -1898,10 +1907,10 @@ analyze_coins (void *cls)
   (void) cls;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Analyzing coins\n");
-  qsp = adb->get_auditor_progress_coin (adb->cls,
-                                        asession,
-                                        &master_pub,
-                                        &ppc);
+  qsp = TALER_ARL_adb->get_auditor_progress_coin (TALER_ARL_adb->cls,
+                                                  TALER_ARL_asession,
+                                                  &TALER_ARL_master_pub,
+                                                  &ppc);
   if (0 > qsp)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qsp);
@@ -1928,16 +1937,16 @@ analyze_coins (void *cls)
   cc.qs = GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
   cc.denom_summaries = GNUNET_CONTAINER_multihashmap_create (256,
                                                              GNUNET_NO);
-  qsx = adb->get_balance_summary (adb->cls,
-                                  asession,
-                                  &master_pub,
-                                  &total_escrow_balance,
-                                  &total_deposit_fee_income,
-                                  &total_melt_fee_income,
-                                  &total_refund_fee_income,
-                                  &total_risk,
-                                  &total_recoup_loss,
-                                  &total_irregular_recoups);
+  qsx = TALER_ARL_adb->get_balance_summary (TALER_ARL_adb->cls,
+                                            TALER_ARL_asession,
+                                            &TALER_ARL_master_pub,
+                                            &total_escrow_balance,
+                                            &total_deposit_fee_income,
+                                            &total_melt_fee_income,
+                                            &total_refund_fee_income,
+                                            &total_risk,
+                                            &total_recoup_loss,
+                                            &total_irregular_recoups);
   if (0 > qsx)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qsx);
@@ -1946,12 +1955,13 @@ analyze_coins (void *cls)
 
   /* process withdrawals */
   if (0 >
-      (qs = edb->select_withdrawals_above_serial_id (edb->cls,
-                                                     esession,
-                                                     ppc.
-                                                     last_withdraw_serial_id,
-                                                     &withdraw_cb,
-                                                     &cc)) )
+      (qs = TALER_ARL_edb->select_withdrawals_above_serial_id (
+         TALER_ARL_edb->cls,
+         TALER_ARL_esession,
+         ppc.
+         last_withdraw_serial_id,
+         &withdraw_cb,
+         &cc)) )
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
     return qs;
@@ -1961,11 +1971,12 @@ analyze_coins (void *cls)
 
   /* process refunds */
   if (0 >
-      (qs = edb->select_refunds_above_serial_id (edb->cls,
-                                                 esession,
-                                                 ppc.last_refund_serial_id,
-                                                 &refund_cb,
-                                                 &cc)))
+      (qs = TALER_ARL_edb->select_refunds_above_serial_id (TALER_ARL_edb->cls,
+                                                           TALER_ARL_esession,
+                                                           ppc.
+                                                           
last_refund_serial_id,
+                                                           &refund_cb,
+                                                           &cc)))
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
     return qs;
@@ -1975,11 +1986,12 @@ analyze_coins (void *cls)
 
   /* process refreshs */
   if (0 >
-      (qs = edb->select_refreshes_above_serial_id (edb->cls,
-                                                   esession,
-                                                   ppc.last_melt_serial_id,
-                                                   &refresh_session_cb,
-                                                   &cc)))
+      (qs = TALER_ARL_edb->select_refreshes_above_serial_id 
(TALER_ARL_edb->cls,
+                                                             
TALER_ARL_esession,
+                                                             ppc.
+                                                             
last_melt_serial_id,
+                                                             
&refresh_session_cb,
+                                                             &cc)))
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
     return qs;
@@ -1989,11 +2001,12 @@ analyze_coins (void *cls)
 
   /* process deposits */
   if (0 >
-      (qs = edb->select_deposits_above_serial_id (edb->cls,
-                                                  esession,
-                                                  ppc.last_deposit_serial_id,
-                                                  &deposit_cb,
-                                                  &cc)))
+      (qs = TALER_ARL_edb->select_deposits_above_serial_id (TALER_ARL_edb->cls,
+                                                            TALER_ARL_esession,
+                                                            ppc.
+                                                            
last_deposit_serial_id,
+                                                            &deposit_cb,
+                                                            &cc)))
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
     return qs;
@@ -2003,11 +2016,12 @@ analyze_coins (void *cls)
 
   /* process recoups */
   if (0 >
-      (qs = edb->select_recoup_above_serial_id (edb->cls,
-                                                esession,
-                                                ppc.last_recoup_serial_id,
-                                                &recoup_cb,
-                                                &cc)))
+      (qs = TALER_ARL_edb->select_recoup_above_serial_id (TALER_ARL_edb->cls,
+                                                          TALER_ARL_esession,
+                                                          ppc.
+                                                          
last_recoup_serial_id,
+                                                          &recoup_cb,
+                                                          &cc)))
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
     return qs;
@@ -2015,12 +2029,14 @@ analyze_coins (void *cls)
   if (0 > cc.qs)
     return cc.qs;
   if (0 >
-      (qs = edb->select_recoup_refresh_above_serial_id (edb->cls,
-                                                        esession,
-                                                        ppc.
-                                                        
last_recoup_refresh_serial_id,
-                                                        &recoup_refresh_cb,
-                                                        &cc)))
+      (qs = TALER_ARL_edb->select_recoup_refresh_above_serial_id (
+         TALER_ARL_edb->cls,
+         TALER_ARL_esession,
+         ppc.
+         last_recoup_refresh_serial_id,
+         &
+         recoup_refresh_cb,
+         &cc)))
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
     return qs;
@@ -2040,27 +2056,27 @@ analyze_coins (void *cls)
     return cc.qs;
   }
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qsx)
-    qs = adb->update_balance_summary (adb->cls,
-                                      asession,
-                                      &master_pub,
-                                      &total_escrow_balance,
-                                      &total_deposit_fee_income,
-                                      &total_melt_fee_income,
-                                      &total_refund_fee_income,
-                                      &total_risk,
-                                      &total_recoup_loss,
-                                      &total_irregular_recoups);
+    qs = TALER_ARL_adb->update_balance_summary (TALER_ARL_adb->cls,
+                                                TALER_ARL_asession,
+                                                &TALER_ARL_master_pub,
+                                                &total_escrow_balance,
+                                                &total_deposit_fee_income,
+                                                &total_melt_fee_income,
+                                                &total_refund_fee_income,
+                                                &total_risk,
+                                                &total_recoup_loss,
+                                                &total_irregular_recoups);
   else
-    qs = adb->insert_balance_summary (adb->cls,
-                                      asession,
-                                      &master_pub,
-                                      &total_escrow_balance,
-                                      &total_deposit_fee_income,
-                                      &total_melt_fee_income,
-                                      &total_refund_fee_income,
-                                      &total_risk,
-                                      &total_recoup_loss,
-                                      &total_irregular_recoups);
+    qs = TALER_ARL_adb->insert_balance_summary (TALER_ARL_adb->cls,
+                                                TALER_ARL_asession,
+                                                &TALER_ARL_master_pub,
+                                                &total_escrow_balance,
+                                                &total_deposit_fee_income,
+                                                &total_melt_fee_income,
+                                                &total_refund_fee_income,
+                                                &total_risk,
+                                                &total_recoup_loss,
+                                                &total_irregular_recoups);
   if (0 >= qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -2068,15 +2084,15 @@ analyze_coins (void *cls)
   }
 
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qsp)
-    qs = adb->update_auditor_progress_coin (adb->cls,
-                                            asession,
-                                            &master_pub,
-                                            &ppc);
+    qs = TALER_ARL_adb->update_auditor_progress_coin (TALER_ARL_adb->cls,
+                                                      TALER_ARL_asession,
+                                                      &TALER_ARL_master_pub,
+                                                      &ppc);
   else
-    qs = adb->insert_auditor_progress_coin (adb->cls,
-                                            asession,
-                                            &master_pub,
-                                            &ppc);
+    qs = TALER_ARL_adb->insert_auditor_progress_coin (TALER_ARL_adb->cls,
+                                                      TALER_ARL_asession,
+                                                      &TALER_ARL_master_pub,
+                                                      &ppc);
   if (0 >= qs)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -2100,24 +2116,24 @@ analyze_coins (void *cls)
  *
  * @param cls closure
  * @param args remaining command-line arguments
- * @param cfgfile name of the configuration file used (for saving, can be 
NULL!)
+ * @param TALER_ARL_cfgfile name of the configuration file used (for saving, 
can be NULL!)
  * @param c configuration
  */
 static void
 run (void *cls,
      char *const *args,
-     const char *cfgfile,
+     const char *TALER_ARL_cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *c)
 {
   json_t *report;
 
   (void) cls;
   (void) args;
-  (void) cfgfile;
+  (void) TALER_ARL_cfgfile;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Launching auditor\n");
   if (GNUNET_OK !=
-      setup_globals (c))
+      TALER_ARL_init (c))
   {
     global_ret = 1;
     return;
@@ -2125,49 +2141,52 @@ run (void *cls,
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Starting audit\n");
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &reported_emergency_loss));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
-                                        &reported_emergency_risk_by_amount));
+                 TALER_amount_get_zero (TALER_ARL_currency,
+                                        &
+                                        reported_emergency_risk_by_amount));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
-                                        &reported_emergency_risk_by_count));
+                 TALER_amount_get_zero (TALER_ARL_currency,
+                                        &
+                                        reported_emergency_risk_by_count));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
-                                        &reported_emergency_loss_by_count));
+                 TALER_amount_get_zero (TALER_ARL_currency,
+                                        &
+                                        reported_emergency_loss_by_count));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_escrow_balance));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_risk));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_recoup_loss));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_irregular_recoups));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_deposit_fee_income));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_melt_fee_income));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_refund_fee_income));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_arithmetic_delta_plus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_arithmetic_delta_minus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_bad_sig_loss));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_refresh_hanging));
   GNUNET_assert (NULL !=
                  (report_emergencies = json_array ()));
@@ -2176,14 +2195,15 @@ run (void *cls,
   GNUNET_assert (NULL !=
                  (report_row_inconsistencies = json_array ()));
   GNUNET_assert (NULL !=
-                 (report_amount_arithmetic_inconsistencies = json_array ()));
+                 (report_amount_arithmetic_inconsistencies =
+                    json_array ()));
   GNUNET_assert (NULL !=
                  (report_bad_sig_losses = json_array ()));
   GNUNET_assert (NULL !=
                  (report_refreshs_hanging = json_array ()));
   if (GNUNET_OK !=
-      setup_sessions_and_run (&analyze_coins,
-                              NULL))
+      TALER_ARL_setup_sessions_and_run (&analyze_coins,
+                                        NULL))
   {
     global_ret = 1;
     return;
@@ -2203,11 +2223,13 @@ run (void *cls,
                       "total_active_risk",
                       TALER_JSON_from_amount (&total_risk),
                       "total_deposit_fee_income",
-                      TALER_JSON_from_amount (&total_deposit_fee_income),
+                      TALER_JSON_from_amount (
+                        &total_deposit_fee_income),
                       "total_melt_fee_income",
                       TALER_JSON_from_amount (&total_melt_fee_income),
                       "total_refund_fee_income",
-                      TALER_JSON_from_amount (&total_refund_fee_income),
+                      TALER_JSON_from_amount (
+                        &total_refund_fee_income),
                       /* Block #2 */
                       /* Tested in test-auditor.sh #18 */
                       "emergencies",
@@ -2229,9 +2251,11 @@ run (void *cls,
                       "amount_arithmetic_inconsistencies",
                       report_amount_arithmetic_inconsistencies,
                       "total_arithmetic_delta_plus",
-                      TALER_JSON_from_amount (&total_arithmetic_delta_plus),
+                      TALER_JSON_from_amount (
+                        &total_arithmetic_delta_plus),
                       "total_arithmetic_delta_minus",
-                      TALER_JSON_from_amount (&total_arithmetic_delta_minus),
+                      TALER_JSON_from_amount (
+                        &total_arithmetic_delta_minus),
                       /* Tested in test-auditor.sh #12 */
                       "total_refresh_hanging",
                       TALER_JSON_from_amount (&total_refresh_hanging),
@@ -2250,7 +2274,8 @@ run (void *cls,
                         &reported_emergency_risk_by_count),
                       /* Tested in test-auditor.sh #18 */
                       "emergencies_loss",
-                      TALER_JSON_from_amount (&reported_emergency_loss),
+                      TALER_JSON_from_amount (
+                        &reported_emergency_loss),
                       /* Tested in test-auditor.sh #18 */
                       "emergencies_loss_by_count",
                       TALER_JSON_from_amount (
@@ -2268,7 +2293,8 @@ run (void *cls,
                       (json_int_t) ppc_start.last_recoup_serial_id,
                       /* Block #6 */
                       "start_ppc_recoup_refresh_serial_id",
-                      (json_int_t) ppc_start.last_recoup_refresh_serial_id,
+                      (json_int_t) ppc_start.
+                      last_recoup_refresh_serial_id,
                       "end_ppc_withdraw_serial_id",
                       (json_int_t) ppc.last_withdraw_serial_id,
                       "end_ppc_deposit_serial_id",
@@ -2283,15 +2309,17 @@ run (void *cls,
                       "end_ppc_recoup_refresh_serial_id",
                       (json_int_t) ppc.last_recoup_refresh_serial_id,
                       "auditor_start_time", json_string (
-                        GNUNET_STRINGS_absolute_time_to_string (start_time)),
+                        GNUNET_STRINGS_absolute_time_to_string (
+                          start_time)),
                       "auditor_end_time", json_string (
                         GNUNET_STRINGS_absolute_time_to_string (
                           GNUNET_TIME_absolute_get ())),
                       "total_irregular_recoups",
-                      TALER_JSON_from_amount (&total_irregular_recoups)
+                      TALER_JSON_from_amount (
+                        &total_irregular_recoups)
                       );
   GNUNET_break (NULL != report);
-  finish_report (report);
+  TALER_ARL_done (report);
 }
 
 
@@ -2312,11 +2340,11 @@ main (int argc,
                                       "exchange-key",
                                       "KEY",
                                       "public key of the exchange (Crockford 
base32 encoded)",
-                                      &master_pub),
+                                      &TALER_ARL_master_pub),
     GNUNET_GETOPT_option_flag ('r',
-                               "restart",
-                               "restart audit from the beginning (required on 
first run)",
-                               &restart),
+                               "TALER_ARL_restart",
+                               "TALER_ARL_restart audit from the beginning 
(required on first run)",
+                               &TALER_ARL_restart),
     GNUNET_GETOPT_option_timetravel ('T',
                                      "timetravel"),
     GNUNET_GETOPT_OPTION_END
diff --git a/src/auditor/taler-auditor-deposits.c 
b/src/auditor/taler-helper-auditor-deposits.c
similarity index 71%
rename from src/auditor/taler-auditor-deposits.c
rename to src/auditor/taler-helper-auditor-deposits.c
index ac8a0b62..eb3e0e7a 100644
--- a/src/auditor/taler-auditor-deposits.c
+++ b/src/auditor/taler-helper-auditor-deposits.c
@@ -34,7 +34,7 @@
 static int global_ret;
 
 /**
- * Array of reports about missing deposit confirmations.
+ * Array of TALER_ARL_reports about missing deposit confirmations.
  */
 static json_t *report_deposit_confirmation_inconsistencies;
 
@@ -58,7 +58,7 @@ struct DepositConfirmationContext
 {
 
   /**
-   * How many deposit confirmations did we NOT find in the #edb?
+   * How many deposit confirmations did we NOT find in the #TALER_ARL_edb?
    */
   unsigned long long missed_count;
 
@@ -89,8 +89,8 @@ struct DepositConfirmationContext
 
 
 /**
- * Given a deposit confirmation from #adb, check that it is also
- * in #edb.  Update the deposit confirmation context accordingly.
+ * Given a deposit confirmation from #TALER_ARL_adb, check that it is also
+ * in #TALER_ARL_edb.  Update the deposit confirmation context accordingly.
  *
  * @param cls our `struct DepositConfirmationContext`
  * @param serial_id row of the @a dc in the database
@@ -115,10 +115,10 @@ test_dc (void *cls,
   dep.h_wire = dc->h_wire;
   dep.refund_deadline = dc->refund_deadline;
 
-  qs = edb->have_deposit (edb->cls,
-                          esession,
-                          &dep,
-                          GNUNET_NO /* do not check refund deadline */);
+  qs = TALER_ARL_edb->have_deposit (TALER_ARL_edb->cls,
+                                    TALER_ARL_esession,
+                                    &dep,
+                                    GNUNET_NO /* do not check refund deadline 
*/);
   if (qs > 0)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -132,17 +132,17 @@ test_dc (void *cls,
     dcc->qs = qs;
     return;
   }
-  /* deposit confirmation missing! report! */
-  report (report_deposit_confirmation_inconsistencies,
-          json_pack ("{s:o, s:o, s:I, s:o}",
-                     "timestamp",
-                     json_from_time_abs (dc->timestamp),
-                     "amount",
-                     TALER_JSON_from_amount (&dc->amount_without_fee),
-                     "rowid",
-                     (json_int_t) serial_id,
-                     "account",
-                     GNUNET_JSON_from_data_auto (&dc->h_wire)));
+  /* deposit confirmation missing! TALER_ARL_report! */
+  TALER_ARL_report (report_deposit_confirmation_inconsistencies,
+                    json_pack ("{s:o, s:o, s:I, s:o}",
+                               "timestamp",
+                               TALER_ARL_json_from_time_abs (dc->timestamp),
+                               "amount",
+                               TALER_JSON_from_amount 
(&dc->amount_without_fee),
+                               "rowid",
+                               (json_int_t) serial_id,
+                               "account",
+                               GNUNET_JSON_from_data_auto (&dc->h_wire)));
   dcc->first_missed_coin_serial = GNUNET_MIN (dcc->first_missed_coin_serial,
                                               serial_id);
   dcc->missed_count++;
@@ -154,7 +154,7 @@ test_dc (void *cls,
 
 
 /**
- * Check that the deposit-confirmations that were reported to
+ * Check that the deposit-confirmations that were TALER_ARL_reported to
  * us by merchants are also in the exchange's database.
  *
  * @param cls closure
@@ -173,10 +173,12 @@ analyze_deposit_confirmations (void *cls)
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Analyzing deposit confirmations\n");
   ppdc.last_deposit_confirmation_serial_id = 0;
-  qsp = adb->get_auditor_progress_deposit_confirmation (adb->cls,
-                                                        asession,
-                                                        &master_pub,
-                                                        &ppdc);
+  qsp = TALER_ARL_adb->get_auditor_progress_deposit_confirmation (
+    TALER_ARL_adb->cls,
+    TALER_ARL_asession,
+    &
+    TALER_ARL_master_pub,
+    &ppdc);
   if (0 > qsp)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qsp);
@@ -197,17 +199,18 @@ analyze_deposit_confirmations (void *cls)
 
   /* setup 'cc' */
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &dcc.missed_amount));
   dcc.qs = GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
   dcc.missed_count = 0LLU;
   dcc.first_missed_coin_serial = UINT64_MAX;
-  qsx = adb->get_deposit_confirmations (adb->cls,
-                                        asession,
-                                        &master_pub,
-                                        
ppdc.last_deposit_confirmation_serial_id,
-                                        &test_dc,
-                                        &dcc);
+  qsx = TALER_ARL_adb->get_deposit_confirmations (TALER_ARL_adb->cls,
+                                                  TALER_ARL_asession,
+                                                  &TALER_ARL_master_pub,
+                                                  ppdc.
+                                                  
last_deposit_confirmation_serial_id,
+                                                  &test_dc,
+                                                  &dcc);
   if (0 > qsx)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qsx);
@@ -229,15 +232,19 @@ analyze_deposit_confirmations (void *cls)
 
   /* sync 'cc' back to disk */
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qsp)
-    qs = adb->update_auditor_progress_deposit_confirmation (adb->cls,
-                                                            asession,
-                                                            &master_pub,
-                                                            &ppdc);
+    qs = TALER_ARL_adb->update_auditor_progress_deposit_confirmation (
+      TALER_ARL_adb->cls,
+      TALER_ARL_asession,
+      &
+      TALER_ARL_master_pub,
+      &ppdc);
   else
-    qs = adb->insert_auditor_progress_deposit_confirmation (adb->cls,
-                                                            asession,
-                                                            &master_pub,
-                                                            &ppdc);
+    qs = TALER_ARL_adb->insert_auditor_progress_deposit_confirmation (
+      TALER_ARL_adb->cls,
+      TALER_ARL_asession,
+      &
+      TALER_ARL_master_pub,
+      &ppdc);
   if (0 >= qs)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -260,24 +267,22 @@ analyze_deposit_confirmations (void *cls)
  *
  * @param cls closure
  * @param args remaining command-line arguments
- * @param cfgfile name of the configuration file used (for saving, can be 
NULL!)
+ * @param TALER_ARL_cfgfile name of the configuration file used (for saving, 
can be NULL!)
  * @param c configuration
  */
 static void
 run (void *cls,
      char *const *args,
-     const char *cfgfile,
+     const char *TALER_ARL_cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *c)
 {
-  json_t *report;
-
   (void) cls;
   (void) args;
-  (void) cfgfile;
+  (void) TALER_ARL_cfgfile;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Launching auditor\n");
   if (GNUNET_OK !=
-      setup_globals (c))
+      TALER_ARL_init (c))
   {
     global_ret = 1;
     return;
@@ -287,25 +292,29 @@ run (void *cls,
   GNUNET_assert (NULL !=
                  (report_deposit_confirmation_inconsistencies = json_array 
()));
   if (GNUNET_OK !=
-      setup_sessions_and_run (&analyze_deposit_confirmations,
-                              NULL))
+      TALER_ARL_setup_sessions_and_run (&analyze_deposit_confirmations,
+                                        NULL))
   {
     global_ret = 1;
     return;
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Audit complete\n");
-  report = json_pack ("{s:o, s:o, s:I}",
-                      "deposit_confirmation_inconsistencies",
-                      report_deposit_confirmation_inconsistencies,
-                      "missing_deposit_confirmation_count",
-                      (json_int_t) number_missed_deposit_confirmations,
-                      "missing_deposit_confirmation_total",
-                      TALER_JSON_from_amount (
-                        &total_missed_deposit_confirmations)
-                      );
-  GNUNET_break (NULL != report);
-  finish_report (report);
+  {
+    json_t *report;
+
+    report = json_pack ("{s:o, s:o, s:I}",
+                        "deposit_confirmation_inconsistencies",
+                        report_deposit_confirmation_inconsistencies,
+                        "missing_deposit_confirmation_count",
+                        (json_int_t) number_missed_deposit_confirmations,
+                        "missing_deposit_confirmation_total",
+                        TALER_JSON_from_amount (
+                          &total_missed_deposit_confirmations)
+                        );
+    GNUNET_break (NULL != report);
+    TALER_ARL_done (report);
+  }
 }
 
 
@@ -326,11 +335,11 @@ main (int argc,
                                       "exchange-key",
                                       "KEY",
                                       "public key of the exchange (Crockford 
base32 encoded)",
-                                      &master_pub),
+                                      &TALER_ARL_master_pub),
     GNUNET_GETOPT_option_flag ('r',
-                               "restart",
-                               "restart audit from the beginning (required on 
first run)",
-                               &restart),
+                               "TALER_ARL_restart",
+                               "TALER_ARL_restart audit from the beginning 
(required on first run)",
+                               &TALER_ARL_restart),
     GNUNET_GETOPT_option_timetravel ('T',
                                      "timetravel"),
     GNUNET_GETOPT_OPTION_END
diff --git a/src/auditor/taler-auditor-reserves.c 
b/src/auditor/taler-helper-auditor-reserves.c
similarity index 71%
rename from src/auditor/taler-auditor-reserves.c
rename to src/auditor/taler-helper-auditor-reserves.c
index 2fe103c8..cd0f1b98 100644
--- a/src/auditor/taler-auditor-reserves.c
+++ b/src/auditor/taler-helper-auditor-reserves.c
@@ -14,7 +14,7 @@
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file auditor/taler-auditor-reserves.c
+ * @file auditor/taler-helper-auditor-reserves.c
  * @brief audits the reserves of an exchange database
  * @author Christian Grothoff
  */
@@ -162,8 +162,10 @@ static struct TALER_Amount total_bad_sig_loss;
 static void
 report_amount_arithmetic_inconsistency (const char *operation,
                                         uint64_t rowid,
-                                        const struct TALER_Amount *exchange,
-                                        const struct TALER_Amount *auditor,
+                                        const struct
+                                        TALER_Amount *exchange,
+                                        const struct
+                                        TALER_Amount *auditor,
                                         int profitable)
 {
   struct TALER_Amount delta;
@@ -187,13 +189,13 @@ report_amount_arithmetic_inconsistency (const char 
*operation,
                                          auditor,
                                          exchange));
   }
-  report (report_amount_arithmetic_inconsistencies,
-          json_pack ("{s:s, s:I, s:o, s:o, s:I}",
-                     "operation", operation,
-                     "rowid", (json_int_t) rowid,
-                     "exchange", TALER_JSON_from_amount (exchange),
-                     "auditor", TALER_JSON_from_amount (auditor),
-                     "profitable", (json_int_t) profitable));
+  TALER_ARL_report (report_amount_arithmetic_inconsistencies,
+                    json_pack ("{s:s, s:I, s:o, s:o, s:I}",
+                               "operation", operation,
+                               "rowid", (json_int_t) rowid,
+                               "exchange", TALER_JSON_from_amount (exchange),
+                               "auditor", TALER_JSON_from_amount (auditor),
+                               "profitable", (json_int_t) profitable));
   if (0 != profitable)
   {
     target = (1 == profitable)
@@ -219,11 +221,11 @@ report_row_inconsistency (const char *table,
                           uint64_t rowid,
                           const char *diagnostic)
 {
-  report (report_row_inconsistencies,
-          json_pack ("{s:s, s:I, s:s}",
-                     "table", table,
-                     "row", (json_int_t) rowid,
-                     "diagnostic", diagnostic));
+  TALER_ARL_report (report_row_inconsistencies,
+                    json_pack ("{s:s, s:I, s:s}",
+                               "table", table,
+                               "row", (json_int_t) rowid,
+                               "diagnostic", diagnostic));
 }
 
 
@@ -306,15 +308,15 @@ load_auditor_reserve_summary (struct ReserveSummary *rs)
   enum GNUNET_DB_QueryStatus qs;
   uint64_t rowid;
 
-  qs = adb->get_reserve_info (adb->cls,
-                              asession,
-                              &rs->reserve_pub,
-                              &master_pub,
-                              &rowid,
-                              &rs->a_balance,
-                              &rs->a_withdraw_fee_balance,
-                              &rs->a_expiration_date,
-                              &rs->sender_account);
+  qs = TALER_ARL_adb->get_reserve_info (TALER_ARL_adb->cls,
+                                        TALER_ARL_asession,
+                                        &rs->reserve_pub,
+                                        &TALER_ARL_master_pub,
+                                        &rowid,
+                                        &rs->a_balance,
+                                        &rs->a_withdraw_fee_balance,
+                                        &rs->a_expiration_date,
+                                        &rs->sender_account);
   if (0 > qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -502,9 +504,9 @@ handle_reserve_out (void *cls,
   ppr.last_reserve_out_serial_id = rowid + 1;
 
   /* lookup denomination pub data (make sure denom_pub is valid, establish 
fees) */
-  qs = get_denomination_info (denom_pub,
-                              &issue,
-                              &wsrd.h_denomination_pub);
+  qs = TALER_ARL_get_denomination_info (denom_pub,
+                                        &issue,
+                                        &wsrd.h_denomination_pub);
   if (0 > qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -535,14 +537,15 @@ handle_reserve_out (void *cls,
   if ( (valid_start.abs_value_us > execution_date.abs_value_us) ||
        (expire_withdraw.abs_value_us < execution_date.abs_value_us) )
   {
-    report (denomination_key_validity_withdraw_inconsistencies,
-            json_pack ("{s:I, s:o, s:o, s:o}",
-                       "row", (json_int_t) rowid,
-                       "execution_date",
-                       json_from_time_abs (execution_date),
-                       "reserve_pub", GNUNET_JSON_from_data_auto (reserve_pub),
-                       "denompub_h", GNUNET_JSON_from_data_auto (
-                         &wsrd.h_denomination_pub)));
+    TALER_ARL_report (denomination_key_validity_withdraw_inconsistencies,
+                      json_pack ("{s:I, s:o, s:o, s:o}",
+                                 "row", (json_int_t) rowid,
+                                 "execution_date",
+                                 TALER_ARL_json_from_time_abs (execution_date),
+                                 "reserve_pub", GNUNET_JSON_from_data_auto (
+                                   reserve_pub),
+                                 "denompub_h", GNUNET_JSON_from_data_auto (
+                                   &wsrd.h_denomination_pub)));
   }
 
   /* check reserve_sig */
@@ -559,12 +562,14 @@ handle_reserve_out (void *cls,
                                   &reserve_sig->eddsa_signature,
                                   &reserve_pub->eddsa_pub))
   {
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "withdraw",
-                       "row", (json_int_t) rowid,
-                       "loss", TALER_JSON_from_amount (amount_with_fee),
-                       "key_pub", GNUNET_JSON_from_data_auto (reserve_pub)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation", "withdraw",
+                                 "row", (json_int_t) rowid,
+                                 "loss", TALER_JSON_from_amount (
+                                   amount_with_fee),
+                                 "key_pub", GNUNET_JSON_from_data_auto (
+                                   reserve_pub)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_sig_loss,
                                     &total_bad_sig_loss,
@@ -682,13 +687,13 @@ handle_recoup_by_reserve (void *cls,
                                   &coin_sig->eddsa_signature,
                                   &coin->coin_pub.eddsa_pub))
   {
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "recoup",
-                       "row", (json_int_t) rowid,
-                       "loss", TALER_JSON_from_amount (amount),
-                       "key_pub", GNUNET_JSON_from_data_auto (
-                         &coin->coin_pub)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation", "recoup",
+                                 "row", (json_int_t) rowid,
+                                 "loss", TALER_JSON_from_amount (amount),
+                                 "key_pub", GNUNET_JSON_from_data_auto (
+                                   &coin->coin_pub)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_sig_loss,
                                     &total_bad_sig_loss,
@@ -700,11 +705,11 @@ handle_recoup_by_reserve (void *cls,
                                            &pr.h_denom_pub);
   if (NULL == rev)
   {
-    qs = edb->get_denomination_revocation (edb->cls,
-                                           esession,
-                                           &pr.h_denom_pub,
-                                           &msig,
-                                           &rev_rowid);
+    qs = TALER_ARL_edb->get_denomination_revocation (TALER_ARL_edb->cls,
+                                                     TALER_ARL_esession,
+                                                     &pr.h_denom_pub,
+                                                     &msig,
+                                                     &rev_rowid);
     if (0 > qs)
     {
       GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -735,7 +740,7 @@ handle_recoup_by_reserve (void *cls,
             TALER_SIGNATURE_MASTER_DENOMINATION_KEY_REVOKED,
             &kr.purpose,
             &msig.eddsa_signature,
-            &master_pub.eddsa_pub))
+            &TALER_ARL_master_pub.eddsa_pub))
       {
         rev = "master signature invalid";
       }
@@ -757,12 +762,13 @@ handle_recoup_by_reserve (void *cls,
   if ( (NULL != rev) &&
        (0 == strcmp (rev, "master signature invalid")) )
   {
-    report (report_bad_sig_losses,
-            json_pack ("{s:s, s:I, s:o, s:o}",
-                       "operation", "recoup-master",
-                       "row", (json_int_t) rev_rowid,
-                       "loss", TALER_JSON_from_amount (amount),
-                       "key_pub", GNUNET_JSON_from_data_auto (&master_pub)));
+    TALER_ARL_report (report_bad_sig_losses,
+                      json_pack ("{s:s, s:I, s:o, s:o}",
+                                 "operation", "recoup-master",
+                                 "row", (json_int_t) rev_rowid,
+                                 "loss", TALER_JSON_from_amount (amount),
+                                 "key_pub", GNUNET_JSON_from_data_auto (
+                                   &TALER_ARL_master_pub)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_sig_loss,
                                     &total_bad_sig_loss,
@@ -843,15 +849,15 @@ get_closing_fee (const char *receiver_account,
               "Method is `%s'\n",
               method);
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
-      edb->get_wire_fee (edb->cls,
-                         esession,
-                         method,
-                         atime,
-                         &start_date,
-                         &end_date,
-                         &wire_fee,
-                         fee,
-                         &master_sig))
+      TALER_ARL_edb->get_wire_fee (TALER_ARL_edb->cls,
+                                   TALER_ARL_esession,
+                                   method,
+                                   atime,
+                                   &start_date,
+                                   &end_date,
+                                   &wire_fee,
+                                   fee,
+                                   &master_sig))
   {
     report_row_inconsistency ("closing-fee",
                               atime.abs_value_us,
@@ -950,11 +956,12 @@ handle_reserve_closed (void *cls,
     else if (0 != TALER_amount_cmp (&expected_fee,
                                     closing_fee))
     {
-      report_amount_arithmetic_inconsistency ("closing aggregation fee",
-                                              rowid,
-                                              closing_fee,
-                                              &expected_fee,
-                                              1);
+      report_amount_arithmetic_inconsistency (
+        "closing aggregation fee",
+        rowid,
+        closing_fee,
+        &expected_fee,
+        1);
     }
   }
   if (NULL == rs->sender_account)
@@ -1006,9 +1013,9 @@ verify_reserve_balance (void *cls,
 
   ret = GNUNET_OK;
   reserve.pub = rs->reserve_pub;
-  qs = edb->reserves_get (edb->cls,
-                          esession,
-                          &reserve);
+  qs = TALER_ARL_edb->reserves_get (TALER_ARL_edb->cls,
+                                    TALER_ARL_esession,
+                                    &reserve);
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT != qs)
   {
     char *diag;
@@ -1053,12 +1060,13 @@ verify_reserve_balance (void *cls,
                   TALER_amount_add (&total_balance_insufficient_loss,
                                     &total_balance_insufficient_loss,
                                     &loss));
-    report (report_reserve_balance_insufficient_inconsistencies,
-            json_pack ("{s:o, s:o}",
-                       "reserve_pub",
-                       GNUNET_JSON_from_data_auto (&rs->reserve_pub),
-                       "loss",
-                       TALER_JSON_from_amount (&loss)));
+    TALER_ARL_report (
+      report_reserve_balance_insufficient_inconsistencies,
+      json_pack ("{s:o, s:o}",
+                 "reserve_pub",
+                 GNUNET_JSON_from_data_auto (&rs->reserve_pub),
+                 "loss",
+                 TALER_JSON_from_amount (&loss)));
     goto cleanup;
   }
   if (0 != TALER_amount_cmp (&nbalance,
@@ -1091,14 +1099,15 @@ verify_reserve_balance (void *cls,
                                        &total_balance_summary_delta_minus,
                                        &delta));
     }
-    report (report_reserve_balance_summary_wrong_inconsistencies,
-            json_pack ("{s:o, s:o, s:o}",
-                       "reserve_pub",
-                       GNUNET_JSON_from_data_auto (&rs->reserve_pub),
-                       "exchange",
-                       TALER_JSON_from_amount (&reserve.balance),
-                       "auditor",
-                       TALER_JSON_from_amount (&nbalance)));
+    TALER_ARL_report (
+      report_reserve_balance_summary_wrong_inconsistencies,
+      json_pack ("{s:o, s:o, s:o}",
+                 "reserve_pub",
+                 GNUNET_JSON_from_data_auto (&rs->reserve_pub),
+                 "exchange",
+                 TALER_JSON_from_amount (&reserve.balance),
+                 "auditor",
+                 TALER_JSON_from_amount (&nbalance)));
     goto cleanup;
   }
 
@@ -1120,14 +1129,16 @@ verify_reserve_balance (void *cls,
                        TALER_amount_add (&total_balance_reserve_not_closed,
                                          &total_balance_reserve_not_closed,
                                          &nbalance));
-        report (report_reserve_not_closed_inconsistencies,
-                json_pack ("{s:o, s:o, s:o}",
-                           "reserve_pub",
-                           GNUNET_JSON_from_data_auto (&rs->reserve_pub),
-                           "balance",
-                           TALER_JSON_from_amount (&nbalance),
-                           "expiration_time",
-                           json_from_time_abs (rs->a_expiration_date)));
+        TALER_ARL_report (report_reserve_not_closed_inconsistencies,
+                          json_pack ("{s:o, s:o, s:o}",
+                                     "reserve_pub",
+                                     GNUNET_JSON_from_data_auto (
+                                       &rs->reserve_pub),
+                                     "balance",
+                                     TALER_JSON_from_amount (&nbalance),
+                                     "expiration_time",
+                                     TALER_ARL_json_from_time_abs (
+                                       rs->a_expiration_date)));
       }
     }
     else
@@ -1136,16 +1147,18 @@ verify_reserve_balance (void *cls,
                      TALER_amount_add (&total_balance_reserve_not_closed,
                                        &total_balance_reserve_not_closed,
                                        &nbalance));
-      report (report_reserve_not_closed_inconsistencies,
-              json_pack ("{s:o, s:o, s:o, s:s}",
-                         "reserve_pub",
-                         GNUNET_JSON_from_data_auto (&rs->reserve_pub),
-                         "balance",
-                         TALER_JSON_from_amount (&nbalance),
-                         "expiration_time",
-                         json_from_time_abs (rs->a_expiration_date),
-                         "diagnostic",
-                         "could not determine closing fee"));
+      TALER_ARL_report (report_reserve_not_closed_inconsistencies,
+                        json_pack ("{s:o, s:o, s:o, s:s}",
+                                   "reserve_pub",
+                                   GNUNET_JSON_from_data_auto (
+                                     &rs->reserve_pub),
+                                   "balance",
+                                   TALER_JSON_from_amount (&nbalance),
+                                   "expiration_time",
+                                   TALER_ARL_json_from_time_abs (
+                                     rs->a_expiration_date),
+                                   "diagnostic",
+                                   "could not determine closing fee"));
     }
   }
 
@@ -1191,10 +1204,10 @@ verify_reserve_balance (void *cls,
                   "Final balance of reserve `%s' is %s, dropping it\n",
                   TALER_B2S (&rs->reserve_pub),
                   TALER_amount2s (&nbalance));
-      qs = adb->del_reserve_info (adb->cls,
-                                  asession,
-                                  &rs->reserve_pub,
-                                  &master_pub);
+      qs = TALER_ARL_adb->del_reserve_info (TALER_ARL_adb->cls,
+                                            TALER_ARL_asession,
+                                            &rs->reserve_pub,
+                                            &TALER_ARL_master_pub);
       if (0 >= qs)
       {
         GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -1220,22 +1233,22 @@ verify_reserve_balance (void *cls,
               TALER_amount2s (&nbalance));
 
   if (rs->had_ri)
-    qs = adb->update_reserve_info (adb->cls,
-                                   asession,
-                                   &rs->reserve_pub,
-                                   &master_pub,
-                                   &nbalance,
-                                   &rs->a_withdraw_fee_balance,
-                                   rs->a_expiration_date);
+    qs = TALER_ARL_adb->update_reserve_info (TALER_ARL_adb->cls,
+                                             TALER_ARL_asession,
+                                             &rs->reserve_pub,
+                                             &TALER_ARL_master_pub,
+                                             &nbalance,
+                                             &rs->a_withdraw_fee_balance,
+                                             rs->a_expiration_date);
   else
-    qs = adb->insert_reserve_info (adb->cls,
-                                   asession,
-                                   &rs->reserve_pub,
-                                   &master_pub,
-                                   &nbalance,
-                                   &rs->a_withdraw_fee_balance,
-                                   rs->a_expiration_date,
-                                   rs->sender_account);
+    qs = TALER_ARL_adb->insert_reserve_info (TALER_ARL_adb->cls,
+                                             TALER_ARL_asession,
+                                             &rs->reserve_pub,
+                                             &TALER_ARL_master_pub,
+                                             &nbalance,
+                                             &rs->a_withdraw_fee_balance,
+                                             rs->a_expiration_date,
+                                             rs->sender_account);
   if (0 >= qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -1270,10 +1283,10 @@ analyze_reserves (void *cls)
   (void) cls;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Analyzing reserves\n");
-  qsp = adb->get_auditor_progress_reserve (adb->cls,
-                                           asession,
-                                           &master_pub,
-                                           &ppr);
+  qsp = TALER_ARL_adb->get_auditor_progress_reserve (TALER_ARL_adb->cls,
+                                                     TALER_ARL_asession,
+                                                     &TALER_ARL_master_pub,
+                                                     &ppr);
   if (0 > qsp)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qsp);
@@ -1296,11 +1309,11 @@ analyze_reserves (void *cls)
                 (unsigned long long) ppr.last_reserve_close_serial_id);
   }
   rc.qs = GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
-  qsx = adb->get_reserve_summary (adb->cls,
-                                  asession,
-                                  &master_pub,
-                                  &total_escrow_balance,
-                                  &total_withdraw_fee_income);
+  qsx = TALER_ARL_adb->get_reserve_summary (TALER_ARL_adb->cls,
+                                            TALER_ARL_asession,
+                                            &TALER_ARL_master_pub,
+                                            &total_escrow_balance,
+                                            &total_withdraw_fee_income);
   if (qsx < 0)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qsx);
@@ -1311,42 +1324,46 @@ analyze_reserves (void *cls)
   rc.revoked = GNUNET_CONTAINER_multihashmap_create (4,
                                                      GNUNET_NO);
 
-  qs = edb->select_reserves_in_above_serial_id (edb->cls,
-                                                esession,
-                                                ppr.last_reserve_in_serial_id,
-                                                &handle_reserve_in,
-                                                &rc);
+  qs = TALER_ARL_edb->select_reserves_in_above_serial_id (TALER_ARL_edb->cls,
+                                                          TALER_ARL_esession,
+                                                          ppr.
+                                                          
last_reserve_in_serial_id,
+                                                          &handle_reserve_in,
+                                                          &rc);
   if (qs < 0)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
     return qs;
   }
-  qs = edb->select_withdrawals_above_serial_id (edb->cls,
-                                                esession,
-                                                ppr.last_reserve_out_serial_id,
-                                                &handle_reserve_out,
-                                                &rc);
+  qs = TALER_ARL_edb->select_withdrawals_above_serial_id (TALER_ARL_edb->cls,
+                                                          TALER_ARL_esession,
+                                                          ppr.
+                                                          
last_reserve_out_serial_id,
+                                                          &handle_reserve_out,
+                                                          &rc);
   if (qs < 0)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
     return qs;
   }
-  qs = edb->select_recoup_above_serial_id (edb->cls,
-                                           esession,
-                                           ppr.last_reserve_recoup_serial_id,
-                                           &handle_recoup_by_reserve,
-                                           &rc);
+  qs = TALER_ARL_edb->select_recoup_above_serial_id (TALER_ARL_edb->cls,
+                                                     TALER_ARL_esession,
+                                                     ppr.
+                                                     
last_reserve_recoup_serial_id,
+                                                     &handle_recoup_by_reserve,
+                                                     &rc);
   if (qs < 0)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
     return qs;
   }
-  qs = edb->select_reserve_closed_above_serial_id (edb->cls,
-                                                   esession,
-                                                   ppr.
-                                                   
last_reserve_close_serial_id,
-                                                   &handle_reserve_closed,
-                                                   &rc);
+  qs = TALER_ARL_edb->select_reserve_closed_above_serial_id 
(TALER_ARL_edb->cls,
+                                                             
TALER_ARL_esession,
+                                                             ppr.
+                                                             
last_reserve_close_serial_id,
+                                                             &
+                                                             
handle_reserve_closed,
+                                                             &rc);
   if (qs < 0)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -1366,19 +1383,19 @@ analyze_reserves (void *cls)
 
   if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qsx)
   {
-    qs = adb->insert_reserve_summary (adb->cls,
-                                      asession,
-                                      &master_pub,
-                                      &total_escrow_balance,
-                                      &total_withdraw_fee_income);
+    qs = TALER_ARL_adb->insert_reserve_summary (TALER_ARL_adb->cls,
+                                                TALER_ARL_asession,
+                                                &TALER_ARL_master_pub,
+                                                &total_escrow_balance,
+                                                &total_withdraw_fee_income);
   }
   else
   {
-    qs = adb->update_reserve_summary (adb->cls,
-                                      asession,
-                                      &master_pub,
-                                      &total_escrow_balance,
-                                      &total_withdraw_fee_income);
+    qs = TALER_ARL_adb->update_reserve_summary (TALER_ARL_adb->cls,
+                                                TALER_ARL_asession,
+                                                &TALER_ARL_master_pub,
+                                                &total_escrow_balance,
+                                                &total_withdraw_fee_income);
   }
   if (0 >= qs)
   {
@@ -1386,15 +1403,15 @@ analyze_reserves (void *cls)
     return qs;
   }
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qsp)
-    qs = adb->update_auditor_progress_reserve (adb->cls,
-                                               asession,
-                                               &master_pub,
-                                               &ppr);
+    qs = TALER_ARL_adb->update_auditor_progress_reserve (TALER_ARL_adb->cls,
+                                                         TALER_ARL_asession,
+                                                         &TALER_ARL_master_pub,
+                                                         &ppr);
   else
-    qs = adb->insert_auditor_progress_reserve (adb->cls,
-                                               asession,
-                                               &master_pub,
-                                               &ppr);
+    qs = TALER_ARL_adb->insert_auditor_progress_reserve (TALER_ARL_adb->cls,
+                                                         TALER_ARL_asession,
+                                                         &TALER_ARL_master_pub,
+                                                         &ppr);
   if (0 >= qs)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -1417,36 +1434,34 @@ analyze_reserves (void *cls)
  *
  * @param cls closure
  * @param args remaining command-line arguments
- * @param cfgfile name of the configuration file used (for saving, can be 
NULL!)
+ * @param TALER_ARL_cfgfile name of the configuration file used (for saving, 
can be NULL!)
  * @param c configuration
  */
 static void
 run (void *cls,
      char *const *args,
-     const char *cfgfile,
+     const char *TALER_ARL_cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *c)
 {
-  json_t *report;
-
   (void) cls;
   (void) args;
-  (void) cfgfile;
+  (void) TALER_ARL_cfgfile;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Launching auditor\n");
   if (GNUNET_OK !=
-      setup_globals (cfg))
+      TALER_ARL_init (TALER_ARL_cfg))
   {
     global_ret = 1;
     return;
   }
   if (GNUNET_OK !=
-      GNUNET_CONFIGURATION_get_value_time (cfg,
-                                           "exchangedb",
+      GNUNET_CONFIGURATION_get_value_time (TALER_ARL_cfg,
+                                           "exchangTALER_ARL_edb",
                                            "IDLE_RESERVE_EXPIRATION_TIME",
                                            &idle_reserve_expiration_time))
   {
     GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                               "exchangedb",
+                               "exchangTALER_ARL_edb",
                                "IDLE_RESERVE_EXPIRATION_TIME");
     global_ret = 1;
     return;
@@ -1454,34 +1469,34 @@ run (void *cls,
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Starting audit\n");
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_escrow_balance));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_irregular_recoups));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_withdraw_fee_income));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_balance_insufficient_loss));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_balance_summary_delta_plus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_balance_summary_delta_minus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_arithmetic_delta_plus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_arithmetic_delta_minus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_balance_reserve_not_closed));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_bad_sig_loss));
   GNUNET_assert (NULL !=
                  (report_row_inconsistencies = json_array ()));
@@ -1489,104 +1504,122 @@ run (void *cls,
                  (denomination_key_validity_withdraw_inconsistencies =
                     json_array ()));
   GNUNET_assert (NULL !=
-                 (report_reserve_balance_summary_wrong_inconsistencies =
-                    json_array ()));
+                 (report_reserve_balance_summary_wrong_inconsistencies
+                    =
+                      json_array ()));
   GNUNET_assert (NULL !=
-                 (report_reserve_balance_insufficient_inconsistencies =
-                    json_array ()));
+                 (report_reserve_balance_insufficient_inconsistencies
+                    =
+                      json_array ()));
   GNUNET_assert (NULL !=
-                 (report_reserve_not_closed_inconsistencies = json_array ()));
+                 (report_reserve_not_closed_inconsistencies =
+                    json_array ()));
   GNUNET_assert (NULL !=
-                 (report_amount_arithmetic_inconsistencies = json_array ()));
+                 (report_amount_arithmetic_inconsistencies =
+                    json_array ()));
   GNUNET_assert (NULL !=
                  (report_bad_sig_losses = json_array ()));
   if (GNUNET_OK !=
-      setup_sessions_and_run (&analyze_reserves,
-                              NULL))
+      TALER_ARL_setup_sessions_and_run (&analyze_reserves,
+                                        NULL))
   {
     global_ret = 1;
     return;
   }
-  report = json_pack ("{s:o, s:o, s:o, s:o, s:o,"
-                      " s:o, s:o, s:o, s:o, s:o,"
-                      " s:o, s:o, s:o, s:o, s:o,"
-                      " s:o, s:o, s:o, s:o, s:I,"
-                      " s:I, s:I, s:I, s:I, s:I,"
-                      " s:I, s:I }",
-                      /* blocks #1 */
-                      "reserve_balance_insufficient_inconsistencies",
-                      report_reserve_balance_insufficient_inconsistencies,
-                      /* Tested in test-auditor.sh #3 */
-                      "total_loss_balance_insufficient",
-                      TALER_JSON_from_amount 
(&total_balance_insufficient_loss),
-                      /* Tested in test-auditor.sh #3 */
-                      "reserve_balance_summary_wrong_inconsistencies",
-                      report_reserve_balance_summary_wrong_inconsistencies,
-                      "total_balance_summary_delta_plus",
-                      TALER_JSON_from_amount (
-                        &total_balance_summary_delta_plus),
-                      "total_balance_summary_delta_minus",
-                      TALER_JSON_from_amount (
-                        &total_balance_summary_delta_minus),
-                      /* blocks #2 */
-                      "total_escrow_balance",
-                      TALER_JSON_from_amount (&total_escrow_balance),
-                      "total_withdraw_fee_income",
-                      TALER_JSON_from_amount (&total_withdraw_fee_income),
-                      /* Tested in test-auditor.sh #21 */
-                      "reserve_not_closed_inconsistencies",
-                      report_reserve_not_closed_inconsistencies,
-                      /* Tested in test-auditor.sh #21 */
-                      "total_balance_reserve_not_closed",
-                      TALER_JSON_from_amount (
-                        &total_balance_reserve_not_closed),
-                      /* Tested in test-auditor.sh #4/#5/#6/#7/#13 */
-                      "bad_sig_losses",
-                      report_bad_sig_losses,
-                      /* blocks #3 */
-                      /* Tested in test-auditor.sh #4/#5/#6/#7/#13 */
-                      "total_bad_sig_loss",
-                      TALER_JSON_from_amount (&total_bad_sig_loss),
-                      /* Tested in test-auditor.sh #14/#15 */
-                      "row_inconsistencies",
-                      report_row_inconsistencies,
-                      /* Tested in test-auditor.sh #23 */
-                      "denomination_key_validity_withdraw_inconsistencies",
-                      denomination_key_validity_withdraw_inconsistencies,
-                      "amount_arithmetic_inconsistencies",
-                      report_amount_arithmetic_inconsistencies,
-                      "total_arithmetic_delta_plus",
-                      TALER_JSON_from_amount (&total_arithmetic_delta_plus),
-                      /* blocks #4 */
-                      "total_arithmetic_delta_minus",
-                      TALER_JSON_from_amount (&total_arithmetic_delta_minus),
-                      "auditor_start_time",
-                      json_from_time_abs (start_time),
-                      "auditor_end_time",
-                      json_from_time_abs (GNUNET_TIME_absolute_get ()),
-                      "total_irregular_recoups",
-                      TALER_JSON_from_amount (&total_irregular_recoups),
-                      "start_ppr_reserve_in_serial_id",
-                      (json_int_t) ppr_start.last_reserve_in_serial_id,
-                      /* blocks #5 */
-                      "start_ppr_reserve_out_serial_id",
-                      (json_int_t) ppr_start.last_reserve_out_serial_id,
-                      "start_ppr_reserve_recoup_serial_id",
-                      (json_int_t) ppr_start.last_reserve_recoup_serial_id,
-                      "start_ppr_reserve_close_serial_id",
-                      (json_int_t) ppr_start.last_reserve_close_serial_id,
-                      "end_ppr_reserve_in_serial_id",
-                      (json_int_t) ppr.last_reserve_in_serial_id,
-                      "end_ppr_reserve_out_serial_id",
-                      (json_int_t) ppr.last_reserve_out_serial_id,
-                      /* blocks #6 */
-                      "end_ppr_reserve_recoup_serial_id",
-                      (json_int_t) ppr.last_reserve_recoup_serial_id,
-                      "end_ppr_reserve_close_serial_id",
-                      (json_int_t) ppr.last_reserve_close_serial_id
-                      );
-  GNUNET_break (NULL != report);
-  finish_report (report);
+  {
+    json_t *report;
+
+    report = json_pack ("{s:o, s:o, s:o, s:o, s:o,"
+                        " s:o, s:o, s:o, s:o, s:o,"
+                        " s:o, s:o, s:o, s:o, s:o,"
+                        " s:o, s:o, s:o, s:o, s:I,"
+                        " s:I, s:I, s:I, s:I, s:I,"
+                        " s:I, s:I }",
+                        /* blocks #1 */
+                        "reserve_balance_insufficient_inconsistencies",
+                        report_reserve_balance_insufficient_inconsistencies,
+                        /* Tested in test-auditor.sh #3 */
+                        "total_loss_balance_insufficient",
+                        TALER_JSON_from_amount (
+                          &total_balance_insufficient_loss),
+                        /* Tested in test-auditor.sh #3 */
+                        "reserve_balance_summary_wrong_inconsistencies",
+                        report_reserve_balance_summary_wrong_inconsistencies,
+                        "total_balance_summary_delta_plus",
+                        TALER_JSON_from_amount (
+                          &total_balance_summary_delta_plus),
+                        "total_balance_summary_delta_minus",
+                        TALER_JSON_from_amount (
+                          &total_balance_summary_delta_minus),
+                        /* blocks #2 */
+                        "total_escrow_balance",
+                        TALER_JSON_from_amount (&total_escrow_balance),
+                        "total_withdraw_fee_income",
+                        TALER_JSON_from_amount (
+                          &total_withdraw_fee_income),
+                        /* Tested in test-auditor.sh #21 */
+                        "reserve_not_closed_inconsistencies",
+                        report_reserve_not_closed_inconsistencies,
+                        /* Tested in test-auditor.sh #21 */
+                        "total_balance_reserve_not_closed",
+                        TALER_JSON_from_amount (
+                          &total_balance_reserve_not_closed),
+                        /* Tested in test-auditor.sh #4/#5/#6/#7/#13 */
+                        "bad_sig_losses",
+                        report_bad_sig_losses,
+                        /* blocks #3 */
+                        /* Tested in test-auditor.sh #4/#5/#6/#7/#13 */
+                        "total_bad_sig_loss",
+                        TALER_JSON_from_amount (&total_bad_sig_loss),
+                        /* Tested in test-auditor.sh #14/#15 */
+                        "row_inconsistencies",
+                        report_row_inconsistencies,
+                        /* Tested in test-auditor.sh #23 */
+                        "denomination_key_validity_withdraw_inconsistencies",
+                        denomination_key_validity_withdraw_inconsistencies,
+                        "amount_arithmetic_inconsistencies",
+                        report_amount_arithmetic_inconsistencies,
+                        "total_arithmetic_delta_plus",
+                        TALER_JSON_from_amount (
+                          &total_arithmetic_delta_plus),
+                        /* blocks #4 */
+                        "total_arithmetic_delta_minus",
+                        TALER_JSON_from_amount (
+                          &total_arithmetic_delta_minus),
+                        "auditor_start_time",
+                        TALER_ARL_json_from_time_abs (
+                          start_time),
+                        "auditor_end_time",
+                        TALER_ARL_json_from_time_abs (
+                          GNUNET_TIME_absolute_get ()),
+                        "total_irregular_recoups",
+                        TALER_JSON_from_amount (
+                          &total_irregular_recoups),
+                        "start_ppr_reserve_in_serial_id",
+                        (json_int_t) ppr_start.last_reserve_in_serial_id,
+                        /* blocks #5 */
+                        "start_ppr_reserve_out_serial_id",
+                        (json_int_t) ppr_start.
+                        last_reserve_out_serial_id,
+                        "start_ppr_reserve_recoup_serial_id",
+                        (json_int_t) ppr_start.
+                        last_reserve_recoup_serial_id,
+                        "start_ppr_reserve_close_serial_id",
+                        (json_int_t) ppr_start.
+                        last_reserve_close_serial_id,
+                        "end_ppr_reserve_in_serial_id",
+                        (json_int_t) ppr.last_reserve_in_serial_id,
+                        "end_ppr_reserve_out_serial_id",
+                        (json_int_t) ppr.last_reserve_out_serial_id,
+                        /* blocks #6 */
+                        "end_ppr_reserve_recoup_serial_id",
+                        (json_int_t) ppr.last_reserve_recoup_serial_id,
+                        "end_ppr_reserve_close_serial_id",
+                        (json_int_t) ppr.last_reserve_close_serial_id
+                        );
+    GNUNET_break (NULL != report);
+    TALER_ARL_done (report);
+  }
 }
 
 
@@ -1607,11 +1640,11 @@ main (int argc,
                                       "exchange-key",
                                       "KEY",
                                       "public key of the exchange (Crockford 
base32 encoded)",
-                                      &master_pub),
+                                      &TALER_ARL_master_pub),
     GNUNET_GETOPT_option_flag ('r',
-                               "restart",
-                               "restart audit from the beginning (required on 
first run)",
-                               &restart),
+                               "TALER_ARL_restart",
+                               "TALER_ARL_restart audit from the beginning 
(required on first run)",
+                               &TALER_ARL_restart),
     GNUNET_GETOPT_option_timetravel ('T',
                                      "timetravel"),
     GNUNET_GETOPT_OPTION_END
diff --git a/src/auditor/taler-wire-auditor.c 
b/src/auditor/taler-helper-auditor-wire.c
similarity index 73%
rename from src/auditor/taler-wire-auditor.c
rename to src/auditor/taler-helper-auditor-wire.c
index fb8e52f7..bc982655 100644
--- a/src/auditor/taler-wire-auditor.c
+++ b/src/auditor/taler-helper-auditor-wire.c
@@ -14,7 +14,7 @@
   TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
 */
 /**
- * @file auditor/taler-wire-auditor.c
+ * @file auditor/taler-helper-auditor-wire.c
  * @brief audits that wire transfers match those from an exchange database.
  * @author Christian Grothoff
  *
@@ -33,6 +33,8 @@
 #include "taler_json_lib.h"
 #include "taler_bank_service.h"
 #include "taler_signatures.h"
+#include "report-lib.h"
+
 
 /**
  * How much time do we allow the aggregator to lag behind?  If
@@ -164,31 +166,6 @@ static struct GNUNET_CONTAINER_MultiHashMap 
*reserve_closures;
  */
 static int global_ret;
 
-/**
- * Command-line option "-r": restart audit from scratch
- */
-static int restart;
-
-/**
- * Time when we started the wire audit.
- */
-static struct GNUNET_TIME_Absolute start_time;
-
-/**
- * Handle to access the exchange's database.
- */
-static struct TALER_EXCHANGEDB_Plugin *edb;
-
-/**
- * Which currency are we doing the audit for?
- */
-static char *currency;
-
-/**
- * Our configuration.
- */
-static const struct GNUNET_CONFIGURATION_Handle *cfg;
-
 /**
  * Map with information about incoming wire transfers.
  * Maps hashes of the wire offsets to `struct ReserveInInfo`s.
@@ -202,26 +179,6 @@ static struct GNUNET_CONTAINER_MultiHashMap *in_map;
  */
 static struct GNUNET_CONTAINER_MultiHashMap *out_map;
 
-/**
- * Our session with the #edb.
- */
-static struct TALER_EXCHANGEDB_Session *esession;
-
-/**
- * Handle to access the auditor's database.
- */
-static struct TALER_AUDITORDB_Plugin *adb;
-
-/**
- * Our session with the #adb.
- */
-static struct TALER_AUDITORDB_Session *asession;
-
-/**
- * Master public key of the exchange to audit.
- */
-static struct TALER_MasterPublicKeyP master_pub;
-
 /**
  * Head of list of wire accounts we still need to look at.
  */
@@ -343,7 +300,7 @@ static struct TALER_Amount total_closure_amount_lag;
 static struct TALER_Amount total_wire_format_amount;
 
 /**
- * Amount of zero in our currency.
+ * Amount of zero in our TALER_ARL_currency.
  */
 static struct TALER_Amount zero;
 
@@ -389,7 +346,7 @@ struct ReserveInInfo
 
 /**
  * Entry in map with wire information we expect to obtain from the
- * #edb later.
+ * #TALER_ARL_edb later.
  */
 struct ReserveOutInfo
 {
@@ -407,20 +364,6 @@ struct ReserveOutInfo
 };
 
 
-/**
- * Convert absolute time to human-readable JSON string.
- *
- * @param at time to convert
- * @return human-readable string representing the time
- */
-static json_t *
-json_from_time_abs (struct GNUNET_TIME_Absolute at)
-{
-  return json_string
-           (GNUNET_STRINGS_absolute_time_to_string (at));
-}
-
-
 /**
  * Free entry in #in_map.
  *
@@ -534,26 +477,31 @@ do_shutdown (void *cls)
                         "wire_out_amount_inconsistencies",
                         report_wire_out_inconsistencies,
                         "total_wire_out_delta_plus",
-                        TALER_JSON_from_amount (&total_bad_amount_out_plus),
+                        TALER_JSON_from_amount (
+                          &total_bad_amount_out_plus),
                         /* Tested in test-auditor.sh #11, #15, #19 */
                         "total_wire_out_delta_minus",
-                        TALER_JSON_from_amount (&total_bad_amount_out_minus),
+                        TALER_JSON_from_amount (
+                          &total_bad_amount_out_minus),
                         /* Tested in test-auditor.sh #2 */
                         "reserve_in_amount_inconsistencies",
                         report_reserve_in_inconsistencies,
                         /* Tested in test-auditor.sh #2 */
                         "total_wire_in_delta_plus",
-                        TALER_JSON_from_amount (&total_bad_amount_in_plus),
+                        TALER_JSON_from_amount (
+                          &total_bad_amount_in_plus),
                         /* block */
                         /* Tested in test-auditor.sh #3 */
                         "total_wire_in_delta_minus",
-                        TALER_JSON_from_amount (&total_bad_amount_in_minus),
+                        TALER_JSON_from_amount (
+                          &total_bad_amount_in_minus),
                         /* Tested in test-auditor.sh #9 */
                         "missattribution_in_inconsistencies",
                         report_missattribution_in_inconsistencies,
                         /* Tested in test-auditor.sh #9 */
                         "total_missattribution_in",
-                        TALER_JSON_from_amount (&total_missattribution_in),
+                        TALER_JSON_from_amount (
+                          &total_missattribution_in),
                         "row_inconsistencies",
                         report_row_inconsistencies,
                         /* Tested in test-auditor.sh #10/#17 */
@@ -562,7 +510,8 @@ do_shutdown (void *cls)
                         /* block */
                         /* Tested in test-auditor.sh #19 */
                         "total_wire_format_amount",
-                        TALER_JSON_from_amount (&total_wire_format_amount),
+                        TALER_JSON_from_amount (
+                          &total_wire_format_amount),
                         /* Tested in test-auditor.sh #19 */
                         "wire_format_inconsistencies",
                         report_wire_format_inconsistencies,
@@ -574,32 +523,34 @@ do_shutdown (void *cls)
                         report_lags,
                         /* Tested in test-auditor.sh #22 */
                         "total_closure_amount_lag",
-                        TALER_JSON_from_amount (&total_closure_amount_lag),
+                        TALER_JSON_from_amount (
+                          &total_closure_amount_lag),
                         /* blocks of 5 */
                         /* Tested in test-auditor.sh #22 */
                         "reserve_lag_details",
                         report_closure_lags,
                         "wire_auditor_start_time",
-                        json_from_time_abs (start_time),
+                        TALER_ARL_json_from_time_abs (
+                          start_time),
                         "wire_auditor_end_time",
-                        json_from_time_abs (GNUNET_TIME_absolute_get ()),
+                        TALER_ARL_json_from_time_abs (
+                          GNUNET_TIME_absolute_get ()),
                         "start_pp_reserve_close_uuid",
                         (json_int_t) start_pp.last_reserve_close_uuid,
                         "end_pp_reserve_close_uuid",
                         (json_int_t) pp.last_reserve_close_uuid,
                         /* blocks of 5 */
                         "start_pp_last_timestamp",
-                        json_from_time_abs (start_pp.last_timestamp),
+                        TALER_ARL_json_from_time_abs (
+                          start_pp.last_timestamp),
                         "end_pp_last_timestamp",
-                        json_from_time_abs (pp.last_timestamp),
+                        TALER_ARL_json_from_time_abs (
+                          pp.last_timestamp),
                         "account_progress",
                         report_account_progress
                         );
     GNUNET_break (NULL != report);
-    json_dumpf (report,
-                stdout,
-                JSON_INDENT (2));
-    json_decref (report);
+    TALER_ARL_done (report);
     report_wire_out_inconsistencies = NULL;
     report_reserve_in_inconsistencies = NULL;
     report_row_inconsistencies = NULL;
@@ -610,6 +561,10 @@ do_shutdown (void *cls)
     report_account_progress = NULL;
     report_wire_format_inconsistencies = NULL;
   }
+  else
+  {
+    TALER_ARL_done (NULL);
+  }
   if (NULL != reserve_closures)
   {
     GNUNET_CONTAINER_multihashmap_iterate (reserve_closures,
@@ -653,39 +608,12 @@ do_shutdown (void *cls)
     GNUNET_free (wa->section_name);
     GNUNET_free (wa);
   }
-  if (NULL != adb)
-  {
-    TALER_AUDITORDB_plugin_unload (adb);
-    adb = NULL;
-  }
-  if (NULL != edb)
-  {
-    TALER_EXCHANGEDB_plugin_unload (edb);
-    edb = NULL;
-  }
 }
 
 
 /* ***************************** Report logic **************************** */
 
 
-/**
- * Add @a object to the report @a array.  Fail hard if this fails.
- *
- * @param array report array to append @a object to
- * @param object object to append, should be check that it is not NULL
- */
-static void
-report (json_t *array,
-        json_t *object)
-{
-  GNUNET_assert (NULL != object);
-  GNUNET_assert (0 ==
-                 json_array_append_new (array,
-                                        object));
-}
-
-
 /**
  * Detect any entries in #reserve_closures that were not yet
  * observed on the wire transfer side and update the progress
@@ -711,13 +639,14 @@ check_pending_rc (void *cls,
                                   &rc->amount));
   if ( (0 != rc->amount.value) ||
        (0 != rc->amount.fraction) )
-    report (report_closure_lags,
-            json_pack ("{s:I, s:o, s:o, s:o, s:s}",
-                       "row", (json_int_t) rc->rowid,
-                       "amount", TALER_JSON_from_amount (&rc->amount),
-                       "deadline", json_from_time_abs (rc->execution_date),
-                       "wtid", GNUNET_JSON_from_data_auto (&rc->wtid),
-                       "account", rc->receiver_account));
+    TALER_ARL_report (report_closure_lags,
+                      json_pack ("{s:I, s:o, s:o, s:o, s:s}",
+                                 "row", (json_int_t) rc->rowid,
+                                 "amount", TALER_JSON_from_amount 
(&rc->amount),
+                                 "deadline", TALER_ARL_json_from_time_abs (
+                                   rc->execution_date),
+                                 "wtid", GNUNET_JSON_from_data_auto 
(&rc->wtid),
+                                 "account", rc->receiver_account));
   pp.last_reserve_close_uuid
     = GNUNET_MIN (pp.last_reserve_close_uuid,
                   rc->rowid);
@@ -773,10 +702,10 @@ commit (enum GNUNET_DB_QueryStatus qs)
     else
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Hard error, not recording progress\n");
-    adb->rollback (adb->cls,
-                   asession);
-    edb->rollback (edb->cls,
-                   esession);
+    TALER_ARL_adb->rollback (TALER_ARL_adb->cls,
+                             TALER_ARL_asession);
+    TALER_ARL_edb->rollback (TALER_ARL_edb->cls,
+                             TALER_ARL_esession);
     return qs;
   }
   for (struct WireAccount *wa = wa_head;
@@ -804,21 +733,25 @@ commit (enum GNUNET_DB_QueryStatus qs)
                                             ))
                    );
     if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == wa->qsx)
-      qs = adb->update_wire_auditor_account_progress (adb->cls,
-                                                      asession,
-                                                      &master_pub,
-                                                      wa->section_name,
-                                                      &wa->pp,
-                                                      wa->in_wire_off,
-                                                      wa->out_wire_off);
+      qs = TALER_ARL_adb->update_wire_auditor_account_progress (
+        TALER_ARL_adb->cls,
+        TALER_ARL_asession,
+        &
+        TALER_ARL_master_pub,
+        wa->section_name,
+        &wa->pp,
+        wa->in_wire_off,
+        wa->out_wire_off);
     else
-      qs = adb->insert_wire_auditor_account_progress (adb->cls,
-                                                      asession,
-                                                      &master_pub,
-                                                      wa->section_name,
-                                                      &wa->pp,
-                                                      wa->in_wire_off,
-                                                      wa->out_wire_off);
+      qs = TALER_ARL_adb->insert_wire_auditor_account_progress (
+        TALER_ARL_adb->cls,
+        TALER_ARL_asession,
+        &
+        TALER_ARL_master_pub,
+        wa->section_name,
+        &wa->pp,
+        wa->in_wire_off,
+        wa->out_wire_off);
     if (0 >= qs)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -831,15 +764,15 @@ commit (enum GNUNET_DB_QueryStatus qs)
                                          &check_pending_rc,
                                          NULL);
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qsx_gwap)
-    qs = adb->update_wire_auditor_progress (adb->cls,
-                                            asession,
-                                            &master_pub,
-                                            &pp);
+    qs = TALER_ARL_adb->update_wire_auditor_progress (TALER_ARL_adb->cls,
+                                                      TALER_ARL_asession,
+                                                      &TALER_ARL_master_pub,
+                                                      &pp);
   else
-    qs = adb->insert_wire_auditor_progress (adb->cls,
-                                            asession,
-                                            &master_pub,
-                                            &pp);
+    qs = TALER_ARL_adb->insert_wire_auditor_progress (TALER_ARL_adb->cls,
+                                                      TALER_ARL_asession,
+                                                      &TALER_ARL_master_pub,
+                                                      &pp);
   if (0 >= qs)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -853,20 +786,20 @@ commit (enum GNUNET_DB_QueryStatus qs)
 
   if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs)
   {
-    qs = edb->commit (edb->cls,
-                      esession);
+    qs = TALER_ARL_edb->commit (TALER_ARL_edb->cls,
+                                TALER_ARL_esession);
     if (0 > qs)
     {
       GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Exchange DB commit failed, rolling back transaction\n");
-      adb->rollback (adb->cls,
-                     asession);
+      TALER_ARL_adb->rollback (TALER_ARL_adb->cls,
+                               TALER_ARL_asession);
     }
     else
     {
-      qs = adb->commit (adb->cls,
-                        asession);
+      qs = TALER_ARL_adb->commit (TALER_ARL_adb->cls,
+                                  TALER_ARL_asession);
       if (0 > qs)
       {
         GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -879,10 +812,10 @@ commit (enum GNUNET_DB_QueryStatus qs)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Processing failed, rolling back transaction\n");
-    adb->rollback (adb->cls,
-                   asession);
-    edb->rollback (edb->cls,
-                   esession);
+    TALER_ARL_adb->rollback (TALER_ARL_adb->cls,
+                             TALER_ARL_asession);
+    TALER_ARL_edb->rollback (TALER_ARL_edb->cls,
+                             TALER_ARL_esession);
   }
   return qs;
 }
@@ -922,14 +855,16 @@ wire_missing_cb (void *cls,
        (0 > TALER_amount_cmp (amount,
                               &tiny_amount)) )
     return; /* acceptable, amount was tiny */
-  report (report_lags,
-          json_pack ("{s:I, s:o, s:o, s:s, s:o, s:O}",
-                     "row", (json_int_t) rowid,
-                     "amount", TALER_JSON_from_amount (amount),
-                     "deadline", json_from_time_abs (deadline),
-                     "claimed_done", (done) ? "yes" : "no",
-                     "coin_pub", GNUNET_JSON_from_data_auto (coin_pub),
-                     "account", wire));
+  TALER_ARL_report (report_lags,
+                    json_pack ("{s:I, s:o, s:o, s:s, s:o, s:O}",
+                               "row", (json_int_t) rowid,
+                               "amount", TALER_JSON_from_amount (amount),
+                               "deadline", TALER_ARL_json_from_time_abs (
+                                 deadline),
+                               "claimed_done", (done) ? "yes" : "no",
+                               "coin_pub", GNUNET_JSON_from_data_auto (
+                                 coin_pub),
+                               "account", wire));
 
 }
 
@@ -953,12 +888,12 @@ check_for_required_transfers ()
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Analyzing exchange's unfinished deposits (deadline: %s)\n",
               GNUNET_STRINGS_absolute_time_to_string (next_timestamp));
-  qs = edb->select_deposits_missing_wire (edb->cls,
-                                          esession,
-                                          pp.last_timestamp,
-                                          next_timestamp,
-                                          &wire_missing_cb,
-                                          &next_timestamp);
+  qs = TALER_ARL_edb->select_deposits_missing_wire (TALER_ARL_edb->cls,
+                                                    TALER_ARL_esession,
+                                                    pp.last_timestamp,
+                                                    next_timestamp,
+                                                    &wire_missing_cb,
+                                                    &next_timestamp);
   if (0 > qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -989,7 +924,7 @@ conclude_wire_out ()
 
 /**
  * Check that @a want is within #TIME_TOLERANCE of @a have.
- * Otherwise report an inconsistency in row @a rowid of @a table.
+ * Otherwise TALER_ARL_report an inconsistency in row @a rowid of @a table.
  *
  * @param table where is the inconsistency (if any)
  * @param rowid what is the row
@@ -1018,11 +953,11 @@ check_time_difference (const char *table,
                    "execution date mismatch (%s)",
                    GNUNET_STRINGS_relative_time_to_string (delta,
                                                            GNUNET_YES));
-  report (report_row_minor_inconsistencies,
-          json_pack ("{s:s, s:I, s:s}",
-                     "table", table,
-                     "row", (json_int_t) rowid,
-                     "diagnostic", details));
+  TALER_ARL_report (report_row_minor_inconsistencies,
+                    json_pack ("{s:s, s:I, s:s}",
+                               "table", table,
+                               "row", (json_int_t) rowid,
+                               "diagnostic", details));
   GNUNET_free (details);
 }
 
@@ -1067,15 +1002,17 @@ wire_out_cb (void *cls,
        justified), so the entire amount is missing / still to be done.
        This is moderately harmless, it might just be that the aggreator
        has not yet fully caught up with the transfers it should do. */
-    report (report_wire_out_inconsistencies,
-            json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
-                       "row", (json_int_t) rowid,
-                       "amount_wired", TALER_JSON_from_amount (&zero),
-                       "amount_justified", TALER_JSON_from_amount (amount),
-                       "wtid", GNUNET_JSON_from_data_auto (wtid),
-                       "timestamp", json_from_time_abs (date),
-                       "diagnostic", "wire transfer not made (yet?)",
-                       "account_section", wa->section_name));
+    TALER_ARL_report (report_wire_out_inconsistencies,
+                      json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
+                                 "row", (json_int_t) rowid,
+                                 "amount_wired", TALER_JSON_from_amount 
(&zero),
+                                 "amount_justified", TALER_JSON_from_amount (
+                                   amount),
+                                 "wtid", GNUNET_JSON_from_data_auto (wtid),
+                                 "timestamp", TALER_ARL_json_from_time_abs (
+                                   date),
+                                 "diagnostic", "wire transfer not made (yet?)",
+                                 "account_section", wa->section_name));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_amount_out_minus,
                                     &total_bad_amount_out_minus,
@@ -1092,29 +1029,34 @@ wire_out_cb (void *cls,
       /* Destination bank account is wrong in actual wire transfer, so
          we should count the wire transfer as entirely spurious, and
          additionally consider the justified wire transfer as missing. */
-      report (report_wire_out_inconsistencies,
-              json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
-                         "row", (json_int_t) rowid,
-                         "amount_wired", TALER_JSON_from_amount (
-                           &roi->details.amount),
-                         "amount_justified", TALER_JSON_from_amount (&zero),
-                         "wtid", GNUNET_JSON_from_data_auto (wtid),
-                         "timestamp", json_from_time_abs (date),
-                         "diagnostic", "recevier account mismatch",
-                         "account_section", wa->section_name));
+      TALER_ARL_report (report_wire_out_inconsistencies,
+                        json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
+                                   "row", (json_int_t) rowid,
+                                   "amount_wired", TALER_JSON_from_amount (
+                                     &roi->details.amount),
+                                   "amount_justified", TALER_JSON_from_amount (
+                                     &zero),
+                                   "wtid", GNUNET_JSON_from_data_auto (wtid),
+                                   "timestamp", TALER_ARL_json_from_time_abs (
+                                     date),
+                                   "diagnostic", "recevier account mismatch",
+                                   "account_section", wa->section_name));
       GNUNET_break (GNUNET_OK ==
                     TALER_amount_add (&total_bad_amount_out_plus,
                                       &total_bad_amount_out_plus,
                                       &roi->details.amount));
-      report (report_wire_out_inconsistencies,
-              json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
-                         "row", (json_int_t) rowid,
-                         "amount_wired", TALER_JSON_from_amount (&zero),
-                         "amount_justified", TALER_JSON_from_amount (amount),
-                         "wtid", GNUNET_JSON_from_data_auto (wtid),
-                         "timestamp", json_from_time_abs (date),
-                         "diagnostic", "receiver account mismatch",
-                         "account_section", wa->section_name));
+      TALER_ARL_report (report_wire_out_inconsistencies,
+                        json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
+                                   "row", (json_int_t) rowid,
+                                   "amount_wired", TALER_JSON_from_amount (
+                                     &zero),
+                                   "amount_justified", TALER_JSON_from_amount (
+                                     amount),
+                                   "wtid", GNUNET_JSON_from_data_auto (wtid),
+                                   "timestamp", TALER_ARL_json_from_time_abs (
+                                     date),
+                                   "diagnostic", "receiver account mismatch",
+                                   "account_section", wa->section_name));
       GNUNET_break (GNUNET_OK ==
                     TALER_amount_add (&total_bad_amount_out_minus,
                                       &total_bad_amount_out_minus,
@@ -1127,16 +1069,18 @@ wire_out_cb (void *cls,
   if (0 != TALER_amount_cmp (&roi->details.amount,
                              amount))
   {
-    report (report_wire_out_inconsistencies,
-            json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
-                       "row", (json_int_t) rowid,
-                       "amount_justified", TALER_JSON_from_amount (amount),
-                       "amount_wired", TALER_JSON_from_amount (
-                         &roi->details.amount),
-                       "wtid", GNUNET_JSON_from_data_auto (wtid),
-                       "timestamp", json_from_time_abs (date),
-                       "diagnostic", "wire amount does not match",
-                       "account_section", wa->section_name));
+    TALER_ARL_report (report_wire_out_inconsistencies,
+                      json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
+                                 "row", (json_int_t) rowid,
+                                 "amount_justified", TALER_JSON_from_amount (
+                                   amount),
+                                 "amount_wired", TALER_JSON_from_amount (
+                                   &roi->details.amount),
+                                 "wtid", GNUNET_JSON_from_data_auto (wtid),
+                                 "timestamp", TALER_ARL_json_from_time_abs (
+                                   date),
+                                 "diagnostic", "wire amount does not match",
+                                 "account_section", wa->section_name));
     if (0 < TALER_amount_cmp (amount,
                               &roi->details.amount))
     {
@@ -1244,7 +1188,7 @@ check_rc_matches (void *cls,
  *
  * @param cls a `struct WireAccount`
  * @param key unused key
- * @param value the `struct ReserveOutInfo` to report
+ * @param value the `struct ReserveOutInfo` to TALER_ARL_report
  * @return #GNUNET_OK
  */
 static int
@@ -1270,19 +1214,21 @@ complain_out_not_found (void *cls,
                                               &ctx);
   if (GNUNET_YES == ctx.found)
     return GNUNET_OK;
-  report (report_wire_out_inconsistencies,
-          json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
-                     "row", (json_int_t) 0,
-                     "amount_wired", TALER_JSON_from_amount (
-                       &roi->details.amount),
-                     "amount_justified", TALER_JSON_from_amount (&zero),
-                     "wtid", GNUNET_JSON_from_data_auto (&roi->details.wtid),
-                     "timestamp", json_from_time_abs (
-                       roi->details.execution_date),
-                     "account_section",
-                     wa->section_name,
-                     "diagnostic",
-                     "justification for wire transfer not found"));
+  TALER_ARL_report (report_wire_out_inconsistencies,
+                    json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
+                               "row", (json_int_t) 0,
+                               "amount_wired", TALER_JSON_from_amount (
+                                 &roi->details.amount),
+                               "amount_justified", TALER_JSON_from_amount (
+                                 &zero),
+                               "wtid", GNUNET_JSON_from_data_auto (
+                                 &roi->details.wtid),
+                               "timestamp", TALER_ARL_json_from_time_abs (
+                                 roi->details.execution_date),
+                               "account_section",
+                               wa->section_name,
+                               "diagnostic",
+                               "justification for wire transfer not found"));
   GNUNET_break (GNUNET_OK ==
                 TALER_amount_add (&total_bad_amount_out_plus,
                                   &total_bad_amount_out_plus,
@@ -1316,13 +1262,15 @@ check_exchange_wire_out (struct WireAccount *wa)
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Analyzing exchange's wire OUT table for account `%s'\n",
               wa->section_name);
-  qs = edb->select_wire_out_above_serial_id_by_account (edb->cls,
-                                                        esession,
-                                                        wa->section_name,
-                                                        wa->pp.
-                                                        
last_wire_out_serial_id,
-                                                        &wire_out_cb,
-                                                        wa);
+  qs = TALER_ARL_edb->select_wire_out_above_serial_id_by_account (
+    TALER_ARL_edb->cls,
+    TALER_ARL_esession,
+    wa->
+    section_name,
+    wa->pp.
+    last_wire_out_serial_id,
+    &wire_out_cb,
+    wa);
   if (0 > qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -1420,11 +1368,12 @@ history_debit_cb (void *cls,
                   TALER_amount_add (&total_wire_format_amount,
                                     &total_wire_format_amount,
                                     &details->amount));
-    report (report_wire_format_inconsistencies,
-            json_pack ("{s:o, s:I, s:s}",
-                       "amount", TALER_JSON_from_amount (&details->amount),
-                       "wire_offset", (json_int_t) row_off,
-                       "diagnostic", diagnostic));
+    TALER_ARL_report (report_wire_format_inconsistencies,
+                      json_pack ("{s:o, s:I, s:s}",
+                                 "amount", TALER_JSON_from_amount (
+                                   &details->amount),
+                                 "wire_offset", (json_int_t) row_off,
+                                 "diagnostic", diagnostic));
     GNUNET_free (diagnostic);
     return GNUNET_OK;
   }
@@ -1482,7 +1431,7 @@ process_debits (void *cls)
  * Begin analyzing wire_out.
  */
 static void
-begin_debit_audit ()
+begin_debit_audit (void)
 {
   out_map = GNUNET_CONTAINER_multihashmap_create (1024,
                                                   GNUNET_YES);
@@ -1561,13 +1510,14 @@ reserve_in_cb (void *cls,
                                          rii,
                                          
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY))
   {
-    report (report_row_inconsistencies,
-            json_pack ("{s:s, s:I, s:o, s:s}",
-                       "table", "reserves_in",
-                       "row", (json_int_t) rowid,
-                       "wire_offset_hash", GNUNET_JSON_from_data_auto (
-                         &rii->row_off_hash),
-                       "diagnostic", "duplicate wire offset"));
+    TALER_ARL_report (report_row_inconsistencies,
+                      json_pack ("{s:s, s:I, s:o, s:s}",
+                                 "table", "reserves_in",
+                                 "row", (json_int_t) rowid,
+                                 "wire_offset_hash",
+                                 GNUNET_JSON_from_data_auto (
+                                   &rii->row_off_hash),
+                                 "diagnostic", "duplicate wire offset"));
     GNUNET_free (rii);
     return GNUNET_OK;
   }
@@ -1593,19 +1543,20 @@ complain_in_not_found (void *cls,
   struct ReserveInInfo *rii = value;
 
   (void) key;
-  report (report_reserve_in_inconsistencies,
-          json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
-                     "row", (json_int_t) rii->rowid,
-                     "amount_exchange_expected", TALER_JSON_from_amount (
-                       &rii->details.amount),
-                     "amount_wired", TALER_JSON_from_amount (&zero),
-                     "reserve_pub", GNUNET_JSON_from_data_auto (
-                       &rii->details.reserve_pub),
-                     "timestamp", json_from_time_abs (
-                       rii->details.execution_date),
-                     "account", wa->section_name,
-                     "diagnostic",
-                     "incoming wire transfer claimed by exchange not found"));
+  TALER_ARL_report (report_reserve_in_inconsistencies,
+                    json_pack ("{s:I, s:o, s:o, s:o, s:o, s:s, s:s}",
+                               "row", (json_int_t) rii->rowid,
+                               "amount_exchange_expected",
+                               TALER_JSON_from_amount (
+                                 &rii->details.amount),
+                               "amount_wired", TALER_JSON_from_amount (&zero),
+                               "reserve_pub", GNUNET_JSON_from_data_auto (
+                                 &rii->details.reserve_pub),
+                               "timestamp", TALER_ARL_json_from_time_abs (
+                                 rii->details.execution_date),
+                               "account", wa->section_name,
+                               "diagnostic",
+                               "incoming wire transfer claimed by exchange not 
found"));
   GNUNET_break (GNUNET_OK ==
                 TALER_amount_add (&total_bad_amount_in_minus,
                                   &total_bad_amount_in_minus,
@@ -1706,35 +1657,37 @@ history_credit_cb (void *cls,
   if (0 != GNUNET_memcmp (&details->reserve_pub,
                           &rii->details.reserve_pub))
   {
-    report (report_reserve_in_inconsistencies,
-            json_pack ("{s:I, s:I, s:o, s:o, s:o, s:o, s:s}",
-                       "row", (json_int_t) rii->rowid,
-                       "bank_row", (json_int_t) row_off,
-                       "amount_exchange_expected", TALER_JSON_from_amount (
-                         &rii->details.amount),
-                       "amount_wired", TALER_JSON_from_amount (&zero),
-                       "reserve_pub", GNUNET_JSON_from_data_auto (
-                         &rii->details.reserve_pub),
-                       "timestamp", json_from_time_abs (
-                         rii->details.execution_date),
-                       "diagnostic", "wire subject does not match"));
+    TALER_ARL_report (report_reserve_in_inconsistencies,
+                      json_pack ("{s:I, s:I, s:o, s:o, s:o, s:o, s:s}",
+                                 "row", (json_int_t) rii->rowid,
+                                 "bank_row", (json_int_t) row_off,
+                                 "amount_exchange_expected",
+                                 TALER_JSON_from_amount (
+                                   &rii->details.amount),
+                                 "amount_wired", TALER_JSON_from_amount 
(&zero),
+                                 "reserve_pub", GNUNET_JSON_from_data_auto (
+                                   &rii->details.reserve_pub),
+                                 "timestamp", TALER_ARL_json_from_time_abs (
+                                   rii->details.execution_date),
+                                 "diagnostic", "wire subject does not match"));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_amount_in_minus,
                                     &total_bad_amount_in_minus,
                                     &rii->details.amount));
-    report (report_reserve_in_inconsistencies,
-            json_pack ("{s:I, s:I, s:o, s:o, s:o, s:o, s:s}",
-                       "row", (json_int_t) rii->rowid,
-                       "bank_row", (json_int_t) row_off,
-                       "amount_exchange_expected", TALER_JSON_from_amount (
-                         &zero),
-                       "amount_wired", TALER_JSON_from_amount (
-                         &details->amount),
-                       "reserve_pub", GNUNET_JSON_from_data_auto (
-                         &details->reserve_pub),
-                       "timestamp", json_from_time_abs (
-                         details->execution_date),
-                       "diagnostic", "wire subject does not match"));
+    TALER_ARL_report (report_reserve_in_inconsistencies,
+                      json_pack ("{s:I, s:I, s:o, s:o, s:o, s:o, s:s}",
+                                 "row", (json_int_t) rii->rowid,
+                                 "bank_row", (json_int_t) row_off,
+                                 "amount_exchange_expected",
+                                 TALER_JSON_from_amount (
+                                   &zero),
+                                 "amount_wired", TALER_JSON_from_amount (
+                                   &details->amount),
+                                 "reserve_pub", GNUNET_JSON_from_data_auto (
+                                   &details->reserve_pub),
+                                 "timestamp", TALER_ARL_json_from_time_abs (
+                                   details->execution_date),
+                                 "diagnostic", "wire subject does not match"));
 
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_bad_amount_in_plus,
@@ -1745,19 +1698,20 @@ history_credit_cb (void *cls,
   if (0 != TALER_amount_cmp (&rii->details.amount,
                              &details->amount))
   {
-    report (report_reserve_in_inconsistencies,
-            json_pack ("{s:I, s:I, s:o, s:o, s:o, s:o, s:s}",
-                       "row", (json_int_t) rii->rowid,
-                       "bank_row", (json_int_t) row_off,
-                       "amount_exchange_expected", TALER_JSON_from_amount (
-                         &rii->details.amount),
-                       "amount_wired", TALER_JSON_from_amount (
-                         &details->amount),
-                       "reserve_pub", GNUNET_JSON_from_data_auto (
-                         &details->reserve_pub),
-                       "timestamp", json_from_time_abs (
-                         details->execution_date),
-                       "diagnostic", "wire amount does not match"));
+    TALER_ARL_report (report_reserve_in_inconsistencies,
+                      json_pack ("{s:I, s:I, s:o, s:o, s:o, s:o, s:s}",
+                                 "row", (json_int_t) rii->rowid,
+                                 "bank_row", (json_int_t) row_off,
+                                 "amount_exchange_expected",
+                                 TALER_JSON_from_amount (
+                                   &rii->details.amount),
+                                 "amount_wired", TALER_JSON_from_amount (
+                                   &details->amount),
+                                 "reserve_pub", GNUNET_JSON_from_data_auto (
+                                   &details->reserve_pub),
+                                 "timestamp", TALER_ARL_json_from_time_abs (
+                                   details->execution_date),
+                                 "diagnostic", "wire amount does not match"));
     if (0 < TALER_amount_cmp (&details->amount,
                               &rii->details.amount))
     {
@@ -1792,13 +1746,14 @@ history_credit_cb (void *cls,
   if (0 != strcasecmp (details->debit_account_url,
                        rii->details.debit_account_url))
   {
-    report (report_missattribution_in_inconsistencies,
-            json_pack ("{s:o, s:I, s:I, s:o}",
-                       "amount", TALER_JSON_from_amount (&rii->details.amount),
-                       "row", (json_int_t) rii->rowid,
-                       "bank_row", (json_int_t) row_off,
-                       "reserve_pub", GNUNET_JSON_from_data_auto (
-                         &rii->details.reserve_pub)));
+    TALER_ARL_report (report_missattribution_in_inconsistencies,
+                      json_pack ("{s:o, s:I, s:I, s:o}",
+                                 "amount", TALER_JSON_from_amount (
+                                   &rii->details.amount),
+                                 "row", (json_int_t) rii->rowid,
+                                 "bank_row", (json_int_t) row_off,
+                                 "reserve_pub", GNUNET_JSON_from_data_auto (
+                                   &rii->details.reserve_pub)));
     GNUNET_break (GNUNET_OK ==
                   TALER_amount_add (&total_missattribution_in,
                                     &total_missattribution_in,
@@ -1807,12 +1762,12 @@ history_credit_cb (void *cls,
   if (details->execution_date.abs_value_us !=
       rii->details.execution_date.abs_value_us)
   {
-    report (report_row_minor_inconsistencies,
-            json_pack ("{s:s, s:I, s:I, s:s}",
-                       "table", "reserves_in",
-                       "row", (json_int_t) rii->rowid,
-                       "bank_row", (json_int_t) row_off,
-                       "diagnostic", "execution date mismatch"));
+    TALER_ARL_report (report_row_minor_inconsistencies,
+                      json_pack ("{s:s, s:I, s:I, s:s}",
+                                 "table", "reserves_in",
+                                 "row", (json_int_t) rii->rowid,
+                                 "bank_row", (json_int_t) row_off,
+                                 "diagnostic", "execution date mismatch"));
   }
 cleanup:
   GNUNET_assert (GNUNET_OK ==
@@ -1851,13 +1806,16 @@ process_credits (void *cls)
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Analyzing exchange's wire IN table for account `%s'\n",
               wa->section_name);
-  qs = edb->select_reserves_in_above_serial_id_by_account (edb->cls,
-                                                           esession,
-                                                           wa->section_name,
-                                                           wa->pp.
-                                                           
last_reserve_in_serial_id,
-                                                           &reserve_in_cb,
-                                                           wa);
+  qs = TALER_ARL_edb->select_reserves_in_above_serial_id_by_account (
+    TALER_ARL_edb->cls,
+    TALER_ARL_esession,
+    wa->
+    section_name,
+    wa->pp.
+    last_reserve_in_serial_id,
+    &
+    reserve_in_cb,
+    wa);
   if (0 > qs)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -1891,7 +1849,7 @@ process_credits (void *cls)
  * Begin audit of CREDITs to the exchange.
  */
 static void
-begin_credit_audit ()
+begin_credit_audit (void)
 {
   in_map = GNUNET_CONTAINER_multihashmap_create (1024,
                                                  GNUNET_YES);
@@ -1934,15 +1892,18 @@ reserve_closed_cb (void *cls,
                              amount_with_fee,
                              closing_fee))
   {
-    report (report_row_inconsistencies,
-            json_pack ("{s:s, s:I, s:o, s:o, s:o, s:s}",
-                       "table", "reserves_closures",
-                       "row", (json_int_t) rowid,
-                       "reserve_pub", GNUNET_JSON_from_data_auto (reserve_pub),
-                       "amount_with_fee", TALER_JSON_from_amount (
-                         amount_with_fee),
-                       "closing_fee", TALER_JSON_from_amount (closing_fee),
-                       "diagnostic", "closing fee above total amount"));
+    TALER_ARL_report (report_row_inconsistencies,
+                      json_pack ("{s:s, s:I, s:o, s:o, s:o, s:s}",
+                                 "table", "reserves_closures",
+                                 "row", (json_int_t) rowid,
+                                 "reserve_pub", GNUNET_JSON_from_data_auto (
+                                   reserve_pub),
+                                 "amount_with_fee", TALER_JSON_from_amount (
+                                   amount_with_fee),
+                                 "closing_fee", TALER_JSON_from_amount (
+                                   closing_fee),
+                                 "diagnostic",
+                                 "closing fee above total amount"));
     GNUNET_free (rc);
     return GNUNET_OK;
   }
@@ -1966,63 +1927,62 @@ reserve_closed_cb (void *cls,
 
 /**
  * Start the database transactions and begin the audit.
+ *
+ * @param cls NULL
+ * @return transaction status code
  */
-static void
-begin_transaction ()
+static enum GNUNET_DB_QueryStatus
+begin_transaction (void *cls)
 {
   int ret;
 
-  ret = adb->start (adb->cls,
-                    asession);
+  (void) cls;
+  ret = TALER_ARL_adb->start (TALER_ARL_adb->cls,
+                              TALER_ARL_asession);
   if (GNUNET_OK != ret)
   {
     GNUNET_break (0);
-    global_ret = 1;
-    GNUNET_SCHEDULER_shutdown ();
-    return;
+    return GNUNET_DB_STATUS_HARD_ERROR;
   }
-  edb->preflight (edb->cls,
-                  esession);
-  ret = edb->start (edb->cls,
-                    esession,
-                    "wire auditor");
+  TALER_ARL_edb->preflight (TALER_ARL_edb->cls,
+                            TALER_ARL_esession);
+  ret = TALER_ARL_edb->start (TALER_ARL_edb->cls,
+                              TALER_ARL_esession,
+                              "wire auditor");
   if (GNUNET_OK != ret)
   {
     GNUNET_break (0);
-    global_ret = 1;
-    GNUNET_SCHEDULER_shutdown ();
-    return;
+    return GNUNET_DB_STATUS_HARD_ERROR;
   }
   for (struct WireAccount *wa = wa_head;
        NULL != wa;
        wa = wa->next)
   {
-    wa->qsx = adb->get_wire_auditor_account_progress (adb->cls,
-                                                      asession,
-                                                      &master_pub,
-                                                      wa->section_name,
-                                                      &wa->pp,
-                                                      &wa->in_wire_off,
-                                                      &wa->out_wire_off);
+    wa->qsx = TALER_ARL_adb->get_wire_auditor_account_progress (
+      TALER_ARL_adb->cls,
+      TALER_ARL_asession,
+      &
+      TALER_ARL_master_pub,
+      wa->section_name,
+      &wa->pp,
+      &wa->in_wire_off,
+      &wa->
+      out_wire_off);
     if (0 > wa->qsx)
     {
       GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == wa->qsx);
-      global_ret = 1;
-      GNUNET_SCHEDULER_shutdown ();
-      return;
+      return GNUNET_DB_STATUS_HARD_ERROR;
     }
     wa->start_pp = wa->pp;
   }
-  qsx_gwap = adb->get_wire_auditor_progress (adb->cls,
-                                             asession,
-                                             &master_pub,
-                                             &pp);
+  qsx_gwap = TALER_ARL_adb->get_wire_auditor_progress (TALER_ARL_adb->cls,
+                                                       TALER_ARL_asession,
+                                                       &TALER_ARL_master_pub,
+                                                       &pp);
   if (0 > qsx_gwap)
   {
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qsx_gwap);
-    global_ret = 1;
-    GNUNET_SCHEDULER_shutdown ();
-    return;
+    return GNUNET_DB_STATUS_HARD_ERROR;
   }
   if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qsx_gwap)
   {
@@ -2042,21 +2002,22 @@ begin_transaction ()
   {
     enum GNUNET_DB_QueryStatus qs;
 
-    qs = edb->select_reserve_closed_above_serial_id (edb->cls,
-                                                     esession,
-                                                     pp.
-                                                     last_reserve_close_uuid,
-                                                     &reserve_closed_cb,
-                                                     NULL);
+    qs = TALER_ARL_edb->select_reserve_closed_above_serial_id (
+      TALER_ARL_edb->cls,
+      TALER_ARL_esession,
+      pp.
+      last_reserve_close_uuid,
+      &
+      reserve_closed_cb,
+      NULL);
     if (0 > qs)
     {
       GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
-      global_ret = 1;
-      GNUNET_SCHEDULER_shutdown ();
-      return;
+      return GNUNET_DB_STATUS_HARD_ERROR;
     }
   }
   begin_credit_audit ();
+  return GNUNET_DB_STATUS_SUCCESS_NO_RESULTS;
 }
 
 
@@ -2086,13 +2047,14 @@ process_account_cb (void *cls,
   wa->watch_debit = ai->debit_enabled;
   wa->watch_credit = ai->credit_enabled;
   if (GNUNET_OK !=
-      TALER_BANK_auth_parse_cfg (cfg,
+      TALER_BANK_auth_parse_cfg (TALER_ARL_cfg,
                                  ai->section_name,
                                  &wa->auth))
   {
     GNUNET_break (0);
     GNUNET_free (wa->section_name);
     GNUNET_free (wa);
+
     fprintf (stderr,
              "Failed to access bank account `%s'\n",
              wa->section_name);
@@ -2111,26 +2073,28 @@ process_account_cb (void *cls,
  *
  * @param cls closure
  * @param args remaining command-line arguments
- * @param cfgfile name of the configuration file used (for saving, can be 
NULL!)
+ * @param TALER_ARL_cfgfile name of the configuration file used (for saving, 
can be NULL!)
  * @param c configuration
  */
 static void
 run (void *cls,
      char *const *args,
-     const char *cfgfile,
+     const char *TALER_ARL_cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *c)
 {
-  static const struct TALER_MasterPublicKeyP zeromp;
-
   (void) cls;
   (void) args;
-  (void) cfgfile;
+  (void) TALER_ARL_cfgfile;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Launching auditor\n");
-  start_time = GNUNET_TIME_absolute_get ();
-  cfg = c;
   if (GNUNET_OK !=
-      TALER_config_get_amount (cfg,
+      TALER_ARL_init (c))
+  {
+    global_ret = 1;
+    return;
+  }
+  if (GNUNET_OK !=
+      TALER_config_get_amount (TALER_ARL_cfg,
                                "auditor",
                                "TINY_AMOUNT",
                                &tiny_amount))
@@ -2142,85 +2106,6 @@ run (void *cls,
     global_ret = 1;
     return;
   }
-  if (0 == GNUNET_memcmp (&zeromp,
-                          &master_pub))
-  {
-    /* -m option not given, try configuration */
-    char *master_public_key_str;
-
-    if (GNUNET_OK !=
-        GNUNET_CONFIGURATION_get_value_string (cfg,
-                                               "exchange",
-                                               "MASTER_PUBLIC_KEY",
-                                               &master_public_key_str))
-    {
-      fprintf (stderr,
-               "Pass option -m or set it in the configuration!\n");
-      GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
-                                 "exchange",
-                                 "MASTER_PUBLIC_KEY");
-      global_ret = 1;
-      return;
-    }
-    if (GNUNET_OK !=
-        GNUNET_CRYPTO_eddsa_public_key_from_string (master_public_key_str,
-                                                    strlen (
-                                                      master_public_key_str),
-                                                    &master_pub.eddsa_pub))
-    {
-      fprintf (stderr,
-               "Invalid master public key given in configuration file.");
-      GNUNET_free (master_public_key_str);
-      global_ret = 1;
-      return;
-    }
-    GNUNET_free (master_public_key_str);
-  } /* end of -m not given */
-
-  if (GNUNET_OK !=
-      TALER_config_get_currency (cfg,
-                                 &currency))
-  {
-    global_ret = 1;
-    return;
-  }
-  if (NULL ==
-      (edb = TALER_EXCHANGEDB_plugin_load (cfg)))
-  {
-    fprintf (stderr,
-             "Failed to initialize exchange database plugin.\n");
-    global_ret = 1;
-    return;
-  }
-  if (NULL ==
-      (adb = TALER_AUDITORDB_plugin_load (cfg)))
-  {
-    fprintf (stderr,
-             "Failed to initialize auditor database plugin.\n");
-    global_ret = 1;
-    TALER_EXCHANGEDB_plugin_unload (edb);
-    return;
-  }
-  if (restart)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Full audit restart requested, dropping old audit data.\n");
-    GNUNET_break (GNUNET_OK ==
-                  adb->drop_tables (adb->cls,
-                                    GNUNET_NO));
-    TALER_AUDITORDB_plugin_unload (adb);
-    if (NULL ==
-        (adb = TALER_AUDITORDB_plugin_load (cfg)))
-    {
-      fprintf (stderr,
-               "Failed to initialize auditor database plugin after drop.\n");
-      global_ret = 1;
-      TALER_EXCHANGEDB_plugin_unload (edb);
-      return;
-    }
-    GNUNET_break (GNUNET_OK ==
-                  adb->create_tables (adb->cls));
-  }
   GNUNET_SCHEDULER_add_shutdown (&do_shutdown,
                                  NULL);
   ctx = GNUNET_CURL_init (&GNUNET_CURL_gnunet_scheduler_reschedule,
@@ -2231,24 +2116,6 @@ run (void *cls,
     GNUNET_break (0);
     return;
   }
-  esession = edb->get_session (edb->cls);
-  if (NULL == esession)
-  {
-    fprintf (stderr,
-             "Failed to initialize exchange session.\n");
-    global_ret = 1;
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-  asession = adb->get_session (adb->cls);
-  if (NULL == asession)
-  {
-    fprintf (stderr,
-             "Failed to initialize auditor session.\n");
-    global_ret = 1;
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
   reserve_closures = GNUNET_CONTAINER_multihashmap_create (1024,
                                                            GNUNET_NO);
   GNUNET_assert (NULL !=
@@ -2258,11 +2125,13 @@ run (void *cls,
   GNUNET_assert (NULL !=
                  (report_row_minor_inconsistencies = json_array ()));
   GNUNET_assert (NULL !=
-                 (report_wire_format_inconsistencies = json_array ()));
+                 (report_wire_format_inconsistencies =
+                    json_array ()));
   GNUNET_assert (NULL !=
                  (report_row_inconsistencies = json_array ()));
   GNUNET_assert (NULL !=
-                 (report_missattribution_in_inconsistencies = json_array ()));
+                 (report_missattribution_in_inconsistencies =
+                    json_array ()));
   GNUNET_assert (NULL !=
                  (report_lags = json_array ()));
   GNUNET_assert (NULL !=
@@ -2270,36 +2139,42 @@ run (void *cls,
   GNUNET_assert (NULL !=
                  (report_account_progress = json_array ()));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_bad_amount_out_plus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_bad_amount_out_minus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_bad_amount_in_plus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_bad_amount_in_minus));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_missattribution_in));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_amount_lag));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_closure_amount_lag));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &total_wire_format_amount));
   GNUNET_assert (GNUNET_OK ==
-                 TALER_amount_get_zero (currency,
+                 TALER_amount_get_zero (TALER_ARL_currency,
                                         &zero));
-  TALER_EXCHANGEDB_find_accounts (cfg,
+  TALER_EXCHANGEDB_find_accounts (TALER_ARL_cfg,
                                   &process_account_cb,
                                   NULL);
-  begin_transaction ();
+  if (GNUNET_OK !=
+      TALER_ARL_setup_sessions_and_run (&begin_transaction,
+                                        NULL))
+  {
+    global_ret = 1;
+    GNUNET_SCHEDULER_shutdown ();
+  }
 }
 
 
@@ -2320,11 +2195,11 @@ main (int argc,
                                       "exchange-key",
                                       "KEY",
                                       "public key of the exchange (Crockford 
base32 encoded)",
-                                      &master_pub),
+                                      &TALER_ARL_master_pub),
     GNUNET_GETOPT_option_flag ('r',
-                               "restart",
-                               "restart audit from the beginning (required on 
first run)",
-                               &restart),
+                               "TALER_ARL_restart",
+                               "TALER_ARL_restart audit from the beginning 
(required on first run)",
+                               &TALER_ARL_restart),
     GNUNET_GETOPT_option_timetravel ('T',
                                      "timetravel"),
     GNUNET_GETOPT_OPTION_END
diff --git a/src/auditor/test-auditor.sh b/src/auditor/test-auditor.sh
index 76d74d82..236a1151 100755
--- a/src/auditor/test-auditor.sh
+++ b/src/auditor/test-auditor.sh
@@ -84,10 +84,10 @@ function audit_only () {
     # Also do incremental run
     $VALGRIND taler-auditor -L DEBUG -c $CONF -m $MASTER_PUB > 
test-audit-inc.json 2> test-audit-inc.log || exit_fail "auditor failed"
     echo -n "."
-    $VALGRIND taler-wire-auditor -L DEBUG -r -c $CONF -m $MASTER_PUB > 
test-wire-audit.json 2> test-wire-audit.log || exit_fail "wire auditor failed"
+    $VALGRIND taler-helper-auditor-wire -L DEBUG -r -c $CONF -m $MASTER_PUB > 
test-wire-audit.json 2> test-wire-audit.log || exit_fail "wire auditor failed"
     # Also do incremental run
     echo -n "."
-    $VALGRIND taler-wire-auditor -L DEBUG -c $CONF -m $MASTER_PUB > 
test-wire-audit-inc.json 2> test-wire-audit-inc.log || exit_fail "wire auditor 
failed"
+    $VALGRIND taler-helper-auditor-wire -L DEBUG -c $CONF -m $MASTER_PUB > 
test-wire-audit-inc.json 2> test-wire-audit-inc.log || exit_fail "wire auditor 
failed"
     echo " DONE"
 }
 
@@ -255,7 +255,7 @@ echo -n "Check for lag detection... "
 # NOTE: This test is EXPECTED to fail for ~1h after
 # re-generating the test database as we do not
 # report lag of less than 1h (see GRACE_PERIOD in
-# taler-wire-auditor.c)
+# taler-helper-auditor-wire.c)
 if [ $DATABASE_AGE -gt 3600 ]
 then
     jq -e .lag_details[0] < test-wire-audit.json > /dev/null || exit_fail "Lag 
not detected in run without aggregator at age $DELTA"
@@ -893,7 +893,7 @@ echo "===========15: deposit wire hash 
wrong================="
 # NOTE: This test is EXPECTED to fail for ~1h after
 # re-generating the test database as we do not
 # report lag of less than 1h (see GRACE_PERIOD in
-# taler-wire-auditor.c)
+# taler-helper-auditor-wire.c)
 if [ $DATABASE_AGE -gt 3600 ]
 then
 
@@ -930,7 +930,7 @@ echo "===========16: incorrect wire_out 
amount================="
 # NOTE: This test is EXPECTED to fail for ~1h after
 # re-generating the test database as we do not
 # report lag of less than 1h (see GRACE_PERIOD in
-# taler-wire-auditor.c)
+# taler-helper-auditor-wire.c)
 if [ $DATABASE_AGE -gt 3600 ]
 then
 
@@ -1023,7 +1023,7 @@ echo "===========17: incorrect wire_out 
timestamp================="
 # NOTE: This test is EXPECTED to fail for ~1h after
 # re-generating the test database as we do not
 # report lag of less than 1h (see GRACE_PERIOD in
-# taler-wire-auditor.c)
+# taler-helper-auditor-wire.c)
 if [ $DATABASE_AGE -gt 3600 ]
 then
 
@@ -1115,7 +1115,7 @@ echo "===========19: reserve closure done properly 
================="
 # NOTE: This test is EXPECTED to fail for ~1h after
 # re-generating the test database as we do not
 # report lag of less than 1h (see GRACE_PERIOD in
-# taler-wire-auditor.c)
+# taler-helper-auditor-wire.c)
 if [ $DATABASE_AGE -gt 3600 ]
 then
 
@@ -1193,7 +1193,7 @@ echo "===========21: reserve closure missreported 
================="
 # NOTE: This test is EXPECTED to fail for ~1h after
 # re-generating the test database as we do not
 # report lag of less than 1h (see GRACE_PERIOD in
-# taler-wire-auditor.c)
+# taler-helper-auditor-wire.c)
 if [ $DATABASE_AGE -gt 3600 ]
 then
 
@@ -1279,7 +1279,7 @@ echo "===========23: wire out calculations 
================="
 # NOTE: This test is EXPECTED to fail for ~1h after
 # re-generating the test database as we do not
 # report lag of less than 1h (see GRACE_PERIOD in
-# taler-wire-auditor.c)
+# taler-helper-auditor-wire.c)
 if [ $DATABASE_AGE -gt 3600 ]
 then
 
@@ -1400,7 +1400,7 @@ echo "=========25: inconsistent coin history========="
 # NOTE: This test is EXPECTED to fail for ~1h after
 # re-generating the test database as we do not
 # report lag of less than 1h (see GRACE_PERIOD in
-# taler-wire-auditor.c)
+# taler-helper-auditor-wire.c)
 if [ $DATABASE_AGE -gt 3600 ]
 then
 
@@ -1493,7 +1493,7 @@ echo "===========27: duplicate WTID detection 
================="
 # NOTE: This test is EXPECTED to fail for ~1h after
 # re-generating the test database as we do not
 # report lag of less than 1h (see GRACE_PERIOD in
-# taler-wire-auditor.c)
+# taler-helper-auditor-wire.c)
 if [ $DATABASE_AGE -gt 3600 ]
 then
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

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