summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/auditor/taler-auditor.c2
-rw-r--r--src/auditor/taler-wire-auditor.c2
-rw-r--r--src/bank-lib/fakebank.c1
-rw-r--r--src/exchange-tools/taler-exchange-dbinit.c2
-rw-r--r--src/exchange/taler-exchange-aggregator.c2
-rw-r--r--src/exchange/taler-exchange-httpd_db.c119
-rw-r--r--src/exchange/taler-exchange-httpd_db.h18
-rw-r--r--src/exchange/taler-exchange-httpd_deposit.c6
-rw-r--r--src/exchange/taler-exchange-httpd_payback.c6
-rw-r--r--src/exchange/taler-exchange-httpd_refresh_melt.c6
-rw-r--r--src/exchangedb/Makefile.am3
-rw-r--r--src/exchangedb/exchangedb_fees.c2
-rw-r--r--src/exchangedb/exchangedb_transactions.c142
-rw-r--r--src/include/taler_exchangedb_lib.h97
-rw-r--r--src/include/taler_exchangedb_plugin.h77
-rw-r--r--src/include/taler_testing_lib.h16
-rw-r--r--src/lib/test_taler_exchange_aggregator.c530
-rw-r--r--src/lib/testing_api_cmd_insert_deposit.c23
18 files changed, 546 insertions, 508 deletions
diff --git a/src/auditor/taler-auditor.c b/src/auditor/taler-auditor.c
index afce190ec..42724efba 100644
--- a/src/auditor/taler-auditor.c
+++ b/src/auditor/taler-auditor.c
@@ -39,7 +39,7 @@
#include "platform.h"
#include <gnunet/gnunet_util_lib.h>
#include "taler_auditordb_plugin.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_exchangedb_lib.h"
#include "taler_json_lib.h"
#include "taler_bank_service.h"
#include "taler_signatures.h"
diff --git a/src/auditor/taler-wire-auditor.c b/src/auditor/taler-wire-auditor.c
index ffbbfd718..d8da36d07 100644
--- a/src/auditor/taler-wire-auditor.c
+++ b/src/auditor/taler-wire-auditor.c
@@ -29,7 +29,7 @@
#include <gnunet/gnunet_util_lib.h>
#include <gnunet/gnunet_curl_lib.h>
#include "taler_auditordb_plugin.h"
-#include "taler_exchangedb_plugin.h"
+#include "taler_exchangedb_lib.h"
#include "taler_json_lib.h"
#include "taler_bank_service.h"
#include "taler_signatures.h"
diff --git a/src/bank-lib/fakebank.c b/src/bank-lib/fakebank.c
index 8dc268bba..15b21ba39 100644
--- a/src/bank-lib/fakebank.c
+++ b/src/bank-lib/fakebank.c
@@ -1293,6 +1293,7 @@ schedule_httpd (struct TALER_FAKEBANK_Handle *h)
h);
}
+
#else
/**
* Schedule MHD. This function should be called initially when an
diff --git a/src/exchange-tools/taler-exchange-dbinit.c b/src/exchange-tools/taler-exchange-dbinit.c
index e9a1e3349..50c8c4836 100644
--- a/src/exchange-tools/taler-exchange-dbinit.c
+++ b/src/exchange-tools/taler-exchange-dbinit.c
@@ -20,7 +20,7 @@
*/
#include "platform.h"
#include <gnunet/gnunet_util_lib.h>
-#include "taler_exchangedb_plugin.h"
+#include "taler_exchangedb_lib.h"
/**
diff --git a/src/exchange/taler-exchange-aggregator.c b/src/exchange/taler-exchange-aggregator.c
index 37ac5336b..264cbf62b 100644
--- a/src/exchange/taler-exchange-aggregator.c
+++ b/src/exchange/taler-exchange-aggregator.c
@@ -1835,7 +1835,7 @@ run_transfers (void *cls)
if (GNUNET_OK !=
db_plugin->start (db_plugin->cls,
session,
- "aggregator run transfer"))
+ "aggregator run transfer"))
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to start database transaction!\n");
diff --git a/src/exchange/taler-exchange-httpd_db.c b/src/exchange/taler-exchange-httpd_db.c
index be7a0300b..bc6f1ca60 100644
--- a/src/exchange/taler-exchange-httpd_db.c
+++ b/src/exchange/taler-exchange-httpd_db.c
@@ -165,123 +165,4 @@ TEH_DB_run_transaction (struct MHD_Connection *connection,
}
-/**
- * Calculate the total value of all transactions performed.
- * Stores @a off plus the cost of all transactions in @a tl
- * in @a ret.
- *
- * @param tl transaction list to process
- * @param off offset to use as the starting value
- * @param[out] ret where the resulting total is to be stored
- * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
- */
-// FIXME: maybe move to another module, i.e. exchangedb???
-int
-TEH_DB_calculate_transaction_list_totals (struct
- TALER_EXCHANGEDB_TransactionList *tl,
- const struct TALER_Amount *off,
- struct TALER_Amount *ret)
-{
- struct TALER_Amount spent = *off;
- struct TALER_Amount refunded;
-
- GNUNET_assert (GNUNET_OK ==
- TALER_amount_get_zero (spent.currency,
- &refunded));
- for (struct TALER_EXCHANGEDB_TransactionList *pos = tl; NULL != pos; pos =
- pos->next)
- {
- switch (pos->type)
- {
- case TALER_EXCHANGEDB_TT_DEPOSIT:
- /* spent += pos->amount_with_fee */
- if (GNUNET_OK !=
- TALER_amount_add (&spent,
- &spent,
- &pos->details.deposit->amount_with_fee))
- {
- GNUNET_break (0);
- return GNUNET_SYSERR;
- }
- break;
- case TALER_EXCHANGEDB_TT_REFRESH_MELT:
- /* spent += pos->amount_with_fee */
- if (GNUNET_OK !=
- TALER_amount_add (&spent,
- &spent,
- &pos->details.melt->session.amount_with_fee))
- {
- GNUNET_break (0);
- return GNUNET_SYSERR;
- }
- break;
- case TALER_EXCHANGEDB_TT_REFUND:
- /* refunded += pos->refund_amount - pos->refund_fee */
- if (GNUNET_OK !=
- TALER_amount_add (&refunded,
- &refunded,
- &pos->details.refund->refund_amount))
- {
- GNUNET_break (0);
- return GNUNET_SYSERR;
- }
- if (GNUNET_OK !=
- TALER_amount_subtract (&refunded,
- &refunded,
- &pos->details.refund->refund_fee))
- {
- GNUNET_break (0);
- return GNUNET_SYSERR;
- }
- break;
- case TALER_EXCHANGEDB_TT_OLD_COIN_PAYBACK:
- /* refunded += pos->value */
- if (GNUNET_OK !=
- TALER_amount_add (&refunded,
- &refunded,
- &pos->details.old_coin_payback->value))
- {
- GNUNET_break (0);
- return GNUNET_SYSERR;
- }
- break;
- case TALER_EXCHANGEDB_TT_PAYBACK:
- /* spent += pos->value */
- if (GNUNET_OK !=
- TALER_amount_add (&spent,
- &spent,
- &pos->details.payback->value))
- {
- GNUNET_break (0);
- return GNUNET_SYSERR;
- }
- break;
- case TALER_EXCHANGEDB_TT_PAYBACK_REFRESH:
- /* spent += pos->value */
- if (GNUNET_OK !=
- TALER_amount_add (&spent,
- &spent,
- &pos->details.payback_refresh->value))
- {
- GNUNET_break (0);
- return GNUNET_SYSERR;
- }
- break;
- }
- }
- /* spent = spent - refunded */
- if (GNUNET_SYSERR ==
- TALER_amount_subtract (&spent,
- &spent,
- &refunded))
- {
- GNUNET_break (0);
- return GNUNET_SYSERR;
- }
-
- *ret = spent;
- return GNUNET_OK;
-}
-
-
/* end of taler-exchange-httpd_db.c */
diff --git a/src/exchange/taler-exchange-httpd_db.h b/src/exchange/taler-exchange-httpd_db.h
index c63b3668b..e6d38d7fe 100644
--- a/src/exchange/taler-exchange-httpd_db.h
+++ b/src/exchange/taler-exchange-httpd_db.h
@@ -107,23 +107,5 @@ TEH_DB_run_transaction (struct MHD_Connection *connection,
void *cb_cls);
-/**
- * Calculate the total value of all transactions performed.
- * Stores @a off plus the cost of all transactions in @a tl
- * in @a ret.
- *
- * @param tl transaction list to process
- * @param off offset to use as the starting value
- * @param[out] ret where the resulting total is to be stored
- * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
- */
-// FIXME: maybe move to another module, i.e. exchangedb???
-int
-TEH_DB_calculate_transaction_list_totals (struct
- TALER_EXCHANGEDB_TransactionList *tl,
- const struct TALER_Amount *off,
- struct TALER_Amount *ret);
-
-
#endif
/* TALER_EXCHANGE_HTTPD_DB_H */
diff --git a/src/exchange/taler-exchange-httpd_deposit.c b/src/exchange/taler-exchange-httpd_deposit.c
index 485047784..11f579abc 100644
--- a/src/exchange/taler-exchange-httpd_deposit.c
+++ b/src/exchange/taler-exchange-httpd_deposit.c
@@ -193,9 +193,9 @@ deposit_transaction (void *cls,
if (0 > qs)
return qs;
if (GNUNET_OK !=
- TEH_DB_calculate_transaction_list_totals (tl,
- &spent,
- &spent))
+ TALER_EXCHANGEDB_calculate_transaction_list_totals (tl,
+ &spent,
+ &spent))
{
TEH_plugin->free_coin_transaction_list (TEH_plugin->cls,
tl);
diff --git a/src/exchange/taler-exchange-httpd_payback.c b/src/exchange/taler-exchange-httpd_payback.c
index b7fe593d9..a05045b24 100644
--- a/src/exchange/taler-exchange-httpd_payback.c
+++ b/src/exchange/taler-exchange-httpd_payback.c
@@ -312,9 +312,9 @@ payback_transaction (void *cls,
TALER_amount_get_zero (pc->value.currency,
&spent));
if (GNUNET_OK !=
- TEH_DB_calculate_transaction_list_totals (tl,
- &spent,
- &spent))
+ TALER_EXCHANGEDB_calculate_transaction_list_totals (tl,
+ &spent,
+ &spent))
{
GNUNET_break (0);
TEH_plugin->free_coin_transaction_list (TEH_plugin->cls,
diff --git a/src/exchange/taler-exchange-httpd_refresh_melt.c b/src/exchange/taler-exchange-httpd_refresh_melt.c
index 8fbb58513..4f429012c 100644
--- a/src/exchange/taler-exchange-httpd_refresh_melt.c
+++ b/src/exchange/taler-exchange-httpd_refresh_melt.c
@@ -225,9 +225,9 @@ refresh_check_melt (struct MHD_Connection *connection,
}
}
if (GNUNET_OK !=
- TEH_DB_calculate_transaction_list_totals (tl,
- &spent,
- &spent))
+ TALER_EXCHANGEDB_calculate_transaction_list_totals (tl,
+ &spent,
+ &spent))
{
GNUNET_break (0);
TEH_plugin->free_coin_transaction_list (TEH_plugin->cls,
diff --git a/src/exchangedb/Makefile.am b/src/exchangedb/Makefile.am
index 1a8665849..c0d6bc669 100644
--- a/src/exchangedb/Makefile.am
+++ b/src/exchangedb/Makefile.am
@@ -46,8 +46,9 @@ libtalerexchangedb_la_SOURCES = \
exchangedb_auditorkeys.c \
exchangedb_denomkeys.c \
exchangedb_fees.c \
+ exchangedb_plugin.c \
exchangedb_signkeys.c \
- exchangedb_plugin.c
+ exchangedb_transactions.c
libtalerexchangedb_la_LIBADD = \
$(top_builddir)/src/util/libtalerutil.la \
diff --git a/src/exchangedb/exchangedb_fees.c b/src/exchangedb/exchangedb_fees.c
index 386c5de90..c025604fa 100644
--- a/src/exchangedb/exchangedb_fees.c
+++ b/src/exchangedb/exchangedb_fees.c
@@ -1,6 +1,6 @@
/*
This file is part of TALER
- Copyright (C) 2017 GNUnet e.V.
+ Copyright (C) 2017 Taler Systems SA
TALER is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
diff --git a/src/exchangedb/exchangedb_transactions.c b/src/exchangedb/exchangedb_transactions.c
new file mode 100644
index 000000000..2891f0adb
--- /dev/null
+++ b/src/exchangedb/exchangedb_transactions.c
@@ -0,0 +1,142 @@
+/*
+ This file is part of TALER
+ Copyright (C) 2017-2020 Taler Systems SA
+
+ TALER is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file exchangedb/exchangedb_transactions.c
+ * @brief Logic to compute transaction totals of a transaction list for a coin
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "taler_exchangedb_lib.h"
+
+
+/**
+ * Calculate the total value of all transactions performed.
+ * Stores @a off plus the cost of all transactions in @a tl
+ * in @a ret.
+ *
+ * @param tl transaction list to process
+ * @param off offset to use as the starting value
+ * @param[out] ret where the resulting total is to be stored
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
+ */
+int
+TALER_EXCHANGEDB_calculate_transaction_list_totals (struct
+ TALER_EXCHANGEDB_TransactionList
+ *tl,
+ const struct
+ TALER_Amount *off,
+ struct TALER_Amount *ret)
+{
+ struct TALER_Amount spent = *off;
+ struct TALER_Amount refunded;
+
+ GNUNET_assert (GNUNET_OK ==
+ TALER_amount_get_zero (spent.currency,
+ &refunded));
+ for (struct TALER_EXCHANGEDB_TransactionList *pos = tl; NULL != pos; pos =
+ pos->next)
+ {
+ switch (pos->type)
+ {
+ case TALER_EXCHANGEDB_TT_DEPOSIT:
+ /* spent += pos->amount_with_fee */
+ if (GNUNET_OK !=
+ TALER_amount_add (&spent,
+ &spent,
+ &pos->details.deposit->amount_with_fee))
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
+ break;
+ case TALER_EXCHANGEDB_TT_REFRESH_MELT:
+ /* spent += pos->amount_with_fee */
+ if (GNUNET_OK !=
+ TALER_amount_add (&spent,
+ &spent,
+ &pos->details.melt->session.amount_with_fee))
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
+ break;
+ case TALER_EXCHANGEDB_TT_REFUND:
+ /* refunded += pos->refund_amount - pos->refund_fee */
+ if (GNUNET_OK !=
+ TALER_amount_add (&refunded,
+ &refunded,
+ &pos->details.refund->refund_amount))
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
+ if (GNUNET_OK !=
+ TALER_amount_subtract (&refunded,
+ &refunded,
+ &pos->details.refund->refund_fee))
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
+ break;
+ case TALER_EXCHANGEDB_TT_OLD_COIN_PAYBACK:
+ /* refunded += pos->value */
+ if (GNUNET_OK !=
+ TALER_amount_add (&refunded,
+ &refunded,
+ &pos->details.old_coin_payback->value))
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
+ break;
+ case TALER_EXCHANGEDB_TT_PAYBACK:
+ /* spent += pos->value */
+ if (GNUNET_OK !=
+ TALER_amount_add (&spent,
+ &spent,
+ &pos->details.payback->value))
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
+ break;
+ case TALER_EXCHANGEDB_TT_PAYBACK_REFRESH:
+ /* spent += pos->value */
+ if (GNUNET_OK !=
+ TALER_amount_add (&spent,
+ &spent,
+ &pos->details.payback_refresh->value))
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
+ break;
+ }
+ }
+ /* spent = spent - refunded */
+ if (GNUNET_SYSERR ==
+ TALER_amount_subtract (&spent,
+ &spent,
+ &refunded))
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
+
+ *ret = spent;
+ return GNUNET_OK;
+}
diff --git a/src/include/taler_exchangedb_lib.h b/src/include/taler_exchangedb_lib.h
index 1681c45aa..f820d1a25 100644
--- a/src/include/taler_exchangedb_lib.h
+++ b/src/include/taler_exchangedb_lib.h
@@ -23,9 +23,8 @@
#ifndef TALER_EXCHANGEDB_LIB_H
#define TALER_EXCHANGEDB_LIB_H
-
#include "taler_signatures.h"
-
+#include "taler_exchangedb_plugin.h"
/**
* Subdirectroy under the exchange's base directory which contains
@@ -40,81 +39,6 @@
#define TALER_EXCHANGEDB_DIR_DENOMINATION_KEYS "denomkeys"
-GNUNET_NETWORK_STRUCT_BEGIN
-
-/**
- * @brief On disk format used for a exchange signing key. Signing keys are used
- * by the exchange to affirm its messages, but not to create coins.
- * Includes the private key followed by the public information about
- * the signing key.
- */
-struct TALER_EXCHANGEDB_PrivateSigningKeyInformationP
-{
- /**
- * Private key part of the exchange's signing key.
- */
- struct TALER_ExchangePrivateKeyP signkey_priv;
-
- /**
- * Signature over @e issue
- */
- struct TALER_MasterSignatureP master_sig;
-
- /**
- * Public information about a exchange signing key.
- */
- struct TALER_ExchangeSigningKeyValidityPS issue;
-
-};
-
-
-/**
- * Information about a denomination key.
- */
-struct TALER_EXCHANGEDB_DenominationKeyInformationP
-{
-
- /**
- * Signature over this struct to affirm the validity of the key.
- */
- struct TALER_MasterSignatureP signature;
-
- /**
- * Signed properties of the denomination key.
- */
- struct TALER_DenominationKeyValidityPS properties;
-};
-
-
-GNUNET_NETWORK_STRUCT_END
-
-
-/**
- * @brief All information about a denomination key (which is used to
- * sign coins into existence).
- */
-struct TALER_EXCHANGEDB_DenominationKeyIssueInformation
-{
- /**
- * The private key of the denomination. Will be NULL if the private
- * key is not available (this is the case after the key has expired
- * for signing coins, but is still valid for depositing coins).
- */
- struct TALER_DenominationPrivateKey denom_priv;
-
- /**
- * Decoded denomination public key (the hash of it is in
- * @e issue, but we sometimes need the full public key as well).
- */
- struct TALER_DenominationPublicKey denom_pub;
-
- /**
- * Signed public information about a denomination key.
- */
- struct TALER_EXCHANGEDB_DenominationKeyInformationP issue;
-};
-
-
/**
* @brief Iterator over signing keys.
*
@@ -525,4 +449,23 @@ TALER_EXCHANGEDB_find_accounts (const struct GNUNET_CONFIGURATION_Handle *cfg,
void *cb_cls);
+/**
+ * Calculate the total value of all transactions performed.
+ * Stores @a off plus the cost of all transactions in @a tl
+ * in @a ret.
+ *
+ * @param tl transaction list to process
+ * @param off offset to use as the starting value
+ * @param[out] ret where the resulting total is to be stored
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
+ */
+int
+TALER_EXCHANGEDB_calculate_transaction_list_totals (struct
+ TALER_EXCHANGEDB_TransactionList
+ *tl,
+ const struct
+ TALER_Amount *off,
+ struct TALER_Amount *ret);
+
+
#endif
diff --git a/src/include/taler_exchangedb_plugin.h b/src/include/taler_exchangedb_plugin.h
index 06be27e0f..cb5d6cc68 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -24,7 +24,82 @@
#include <jansson.h>
#include <gnunet/gnunet_util_lib.h>
#include <gnunet/gnunet_db_lib.h>
-#include "taler_exchangedb_lib.h"
+#include "taler_signatures.h"
+
+
+GNUNET_NETWORK_STRUCT_BEGIN
+
+/**
+ * @brief On disk format used for a exchange signing key. Signing keys are used
+ * by the exchange to affirm its messages, but not to create coins.
+ * Includes the private key followed by the public information about
+ * the signing key.
+ */
+struct TALER_EXCHANGEDB_PrivateSigningKeyInformationP
+{
+ /**
+ * Private key part of the exchange's signing key.
+ */
+ struct TALER_ExchangePrivateKeyP signkey_priv;
+
+ /**
+ * Signature over @e issue
+ */
+ struct TALER_MasterSignatureP master_sig;
+
+ /**
+ * Public information about a exchange signing key.
+ */
+ struct TALER_ExchangeSigningKeyValidityPS issue;
+
+};
+
+
+/**
+ * Information about a denomination key.
+ */
+struct TALER_EXCHANGEDB_DenominationKeyInformationP
+{
+
+ /**
+ * Signature over this struct to affirm the validity of the key.
+ */
+ struct TALER_MasterSignatureP signature;
+
+ /**
+ * Signed properties of the denomination key.
+ */
+ struct TALER_DenominationKeyValidityPS properties;
+};
+
+
+GNUNET_NETWORK_STRUCT_END
+
+
+/**
+ * @brief All information about a denomination key (which is used to
+ * sign coins into existence).
+ */
+struct TALER_EXCHANGEDB_DenominationKeyIssueInformation
+{
+ /**
+ * The private key of the denomination. Will be NULL if the private
+ * key is not available (this is the case after the key has expired
+ * for signing coins, but is still valid for depositing coins).
+ */
+ struct TALER_DenominationPrivateKey denom_priv;
+
+ /**
+ * Decoded denomination public key (the hash of it is in
+ * @e issue, but we sometimes need the full public key as well).
+ */
+ struct TALER_DenominationPublicKey denom_pub;
+
+ /**
+ * Signed public information about a denomination key.
+ */
+ struct TALER_EXCHANGEDB_DenominationKeyInformationP issue;
+};
/**
diff --git a/src/include/taler_testing_lib.h b/src/include/taler_testing_lib.h
index 9b0ca422c..783aa5966 100644
--- a/src/include/taler_testing_lib.h
+++ b/src/include/taler_testing_lib.h
@@ -104,7 +104,7 @@ struct TALER_TESTING_DatabaseConnection
* Database plugin.
*/
struct TALER_EXCHANGEDB_Plugin *plugin;
-
+
/**
* Session with the database.
*/
@@ -1679,6 +1679,7 @@ TALER_TESTING_cmd_serialize_keys (const char *label);
struct TALER_TESTING_Command
TALER_TESTING_cmd_connect_with_state (const char *label,
const char *state_reference);
+
/**
* Make the "insert-deposit" CMD.
*
@@ -1694,12 +1695,13 @@ TALER_TESTING_cmd_connect_with_state (const char *label,
*/
struct TALER_TESTING_Command
TALER_TESTING_cmd_insert_deposit (const char *label,
- const struct TALER_TESTING_DatabaseConnection *dbc,
- const char *merchant_name,
- const char *merchant_account,
- struct GNUNET_TIME_Relative wire_deadline,
- const char *amount_with_fee,
- const char *deposit_fee);
+ const struct
+ TALER_TESTING_DatabaseConnection *dbc,
+ const char *merchant_name,
+ const char *merchant_account,
+ struct GNUNET_TIME_Relative wire_deadline,
+ const char *amount_with_fee,
+ const char *deposit_fee);
/* *** Generic trait logic for implementing traits ********* */
diff --git a/src/lib/test_taler_exchange_aggregator.c b/src/lib/test_taler_exchange_aggregator.c
index 6f97a71de..e9f96a6d8 100644
--- a/src/lib/test_taler_exchange_aggregator.c
+++ b/src/lib/test_taler_exchange_aggregator.c
@@ -63,7 +63,7 @@ static char *config_filename;
*/
static int
prepare_database (void *cls,
- const struct GNUNET_CONFIGURATION_Handle *cfg)
+ const struct GNUNET_CONFIGURATION_Handle *cfg)
{
// connect to the database.
@@ -103,424 +103,436 @@ run (void *cls,
// check no aggregation happens on a empty database
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-on-empty-db",
- config_filename),
+ config_filename),
TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-on-start"),
// check aggregation happens on the simplest case:
// one deposit into the database.
TALER_TESTING_cmd_insert_deposit ("do-deposit-1",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:1",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:1",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-on-deposit-1",
- config_filename),
+ config_filename),
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-1",
- ec.exchange_url,
- "EUR:0.89",
- bc.exchange_payto,
- bc.user42_payto),
+ ec.exchange_url,
+ "EUR:0.89",
+ bc.exchange_payto,
+ bc.user42_payto),
TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-1"),
// check aggregation accumulates well.
TALER_TESTING_cmd_insert_deposit ("do-deposit-2a",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:1",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:1",
+ "EUR:0.1"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-2b",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:1",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:1",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-2",
- config_filename),
+ config_filename),
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-2",
- ec.exchange_url,
- "EUR:1.79",
- bc.exchange_payto,
- bc.user42_payto),
+ ec.exchange_url,
+ "EUR:1.79",
+ bc.exchange_payto,
+ bc.user42_payto),
TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-2"),
-
+
// check that different merchants stem different aggregations.
-
+
TALER_TESTING_cmd_insert_deposit ("do-deposit-3a",
- &dbc,
- "bob",
- "4",
- GNUNET_TIME_UNIT_ZERO,
- "EUR:1",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ "4",
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:1",
+ "EUR:0.1"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-3b",
- &dbc,
- "bob",
- "5",
- GNUNET_TIME_UNIT_ZERO,
- "EUR:1",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ "5",
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:1",
+ "EUR:0.1"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-3c",
- &dbc,
- "alice",
- "4",
- GNUNET_TIME_UNIT_ZERO,
- "EUR:1",
- "EUR:0.1"),
-
+ &dbc,
+ "alice",
+ "4",
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:1",
+ "EUR:0.1"),
+
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-3",
- config_filename),
+ config_filename),
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-3a",
- ec.exchange_url,
- "EUR:0.89",
- bc.exchange_payto,
- TALER_payto_xtalerbank_make (bc.bank_url, "4")),
+ ec.exchange_url,
+ "EUR:0.89",
+ bc.exchange_payto,
+ TALER_payto_xtalerbank_make (
+ bc.bank_url, "4")),
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-3b",
- ec.exchange_url,
- "EUR:0.89",
- bc.exchange_payto,
- TALER_payto_xtalerbank_make (bc.bank_url, "4")),
+ ec.exchange_url,
+ "EUR:0.89",
+ bc.exchange_payto,
+ TALER_payto_xtalerbank_make (
+ bc.bank_url, "4")),
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-3c",
- ec.exchange_url,
- "EUR:0.89",
- bc.exchange_payto,
- TALER_payto_xtalerbank_make (bc.bank_url, "5")),
+ ec.exchange_url,
+ "EUR:0.89",
+ bc.exchange_payto,
+ TALER_payto_xtalerbank_make (
+ bc.bank_url, "5")),
TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-3"),
// checking that aggregator waits for the deadline.
TALER_TESTING_cmd_insert_deposit ("do-deposit-4a",
- &dbc,
- "bob",
- USER42_ACCOUNT,
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
- GNUNET_TIME_relative_multiply
- (GNUNET_TIME_UNIT_SECONDS,
- 5),
+ GNUNET_TIME_relative_multiply
+ (GNUNET_TIME_UNIT_SECONDS,
+ 5),
- "EUR:0.2",
- "EUR:0.1"),
+ "EUR:0.2",
+ "EUR:0.1"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-4b",
- &dbc,
- "bob",
- USER42_ACCOUNT,
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
- GNUNET_TIME_relative_multiply
- (GNUNET_TIME_UNIT_SECONDS,
- 5),
+ GNUNET_TIME_relative_multiply
+ (GNUNET_TIME_UNIT_SECONDS,
+ 5),
- "EUR:0.2",
- "EUR:0.1"),
+ "EUR:0.2",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-4-early",
- config_filename),
+ config_filename),
- TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-4-fast"),
+ TALER_TESTING_cmd_check_bank_empty (
+ "expect-empty-transactions-after-4-fast"),
TALER_TESTING_cmd_sleep ("wait (5s)", 5),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-4-delayed",
- config_filename),
+ config_filename),
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-4",
- ec.exchange_url,
- "EUR:0.19",
- bc.exchange_payto,
- bc.user42_payto),
+ ec.exchange_url,
+ "EUR:0.19",
+ bc.exchange_payto,
+ bc.user42_payto),
// test picking all deposits at earliest deadline
TALER_TESTING_cmd_insert_deposit ("do-deposit-5a",
- &dbc,
- "bob",
- USER42_ACCOUNT,
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
- GNUNET_TIME_relative_multiply
- (GNUNET_TIME_UNIT_SECONDS,
- 10),
+ GNUNET_TIME_relative_multiply
+ (GNUNET_TIME_UNIT_SECONDS,
+ 10),
- "EUR:0.2",
- "EUR:0.1"),
+ "EUR:0.2",
+ "EUR:0.1"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-5b",
- &dbc,
- "bob",
- USER42_ACCOUNT,
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
- GNUNET_TIME_relative_multiply
- (GNUNET_TIME_UNIT_SECONDS,
- 5),
+ GNUNET_TIME_relative_multiply
+ (GNUNET_TIME_UNIT_SECONDS,
+ 5),
- "EUR:0.2",
- "EUR:0.1"),
+ "EUR:0.2",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-5-early",
- config_filename),
+ config_filename),
- TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-5-early"),
+ TALER_TESTING_cmd_check_bank_empty (
+ "expect-empty-transactions-after-5-early"),
TALER_TESTING_cmd_sleep ("wait (5s)", 5),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-5-delayed",
- config_filename),
+ config_filename),
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-5",
- ec.exchange_url,
- "EUR:0.19",
- bc.exchange_payto,
- bc.user42_payto),
+ ec.exchange_url,
+ "EUR:0.19",
+ bc.exchange_payto,
+ bc.user42_payto),
// Test NEVER running 'tiny' unless they make up minimum unit
TALER_TESTING_cmd_insert_deposit ("do-deposit-6a",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:0.102",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:0.102",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-6a-tiny",
- config_filename),
- TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-6a-tiny"),
+ config_filename),
+ TALER_TESTING_cmd_check_bank_empty (
+ "expect-empty-transactions-after-6a-tiny"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-6b",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:0.102",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:0.102",
+ "EUR:0.1"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-6c",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:0.102",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:0.102",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-6c-tiny",
- config_filename),
- TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-6c-tiny"),
+ config_filename),
+ TALER_TESTING_cmd_check_bank_empty (
+ "expect-empty-transactions-after-6c-tiny"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-6d",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:0.102",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:0.102",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-6d-tiny",
- config_filename),
- TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-6d-tiny"),
+ config_filename),
+ TALER_TESTING_cmd_check_bank_empty (
+ "expect-empty-transactions-after-6d-tiny"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-6e",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:0.112",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:0.112",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-6e",
- config_filename),
+ config_filename),
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-6",
- ec.exchange_url,
- "EUR:0.01",
- bc.exchange_payto,
- bc.user42_payto),
+ ec.exchange_url,
+ "EUR:0.01",
+ bc.exchange_payto,
+ bc.user42_payto),
// Test profiteering if wire deadline is short
-
+
TALER_TESTING_cmd_insert_deposit ("do-deposit-7a",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:0.109",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:0.109",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-7a-tiny",
- config_filename),
+ config_filename),
- TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-7a-tiny"),
+ TALER_TESTING_cmd_check_bank_empty (
+ "expect-empty-transactions-after-7a-tiny"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-7b",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:0.119",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:0.119",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-7-profit",
- config_filename),
+ config_filename),
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-7",
- ec.exchange_url,
- "EUR:0.01",
- bc.exchange_payto,
- bc.user42_payto),
+ ec.exchange_url,
+ "EUR:0.01",
+ bc.exchange_payto,
+ bc.user42_payto),
// Now check profit was actually taken
TALER_TESTING_cmd_insert_deposit ("do-deposit-7c",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:0.122",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:0.122",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-7-loss",
- config_filename),
+ config_filename),
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-7",
- ec.exchange_url,
- "EUR:0.01",
- bc.exchange_payto,
- bc.user42_payto),
+ ec.exchange_url,
+ "EUR:0.01",
+ bc.exchange_payto,
+ bc.user42_payto),
// Test that aggregation would happen fully if wire deadline is long
TALER_TESTING_cmd_insert_deposit ("do-deposit-8a",
- &dbc,
- "bob",
- USER42_ACCOUNT,
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
- GNUNET_TIME_relative_multiply
- (GNUNET_TIME_UNIT_SECONDS,
- 5),
+ GNUNET_TIME_relative_multiply
+ (GNUNET_TIME_UNIT_SECONDS,
+ 5),
- "EUR:0.109",
- "EUR:0.1"),
+ "EUR:0.109",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-8a-tiny",
- config_filename),
+ config_filename),
- TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-8a-tiny"),
+ TALER_TESTING_cmd_check_bank_empty (
+ "expect-empty-transactions-after-8a-tiny"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-8b",
- &dbc,
- "bob",
- USER42_ACCOUNT,
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
- GNUNET_TIME_relative_multiply
- (GNUNET_TIME_UNIT_SECONDS,
- 5),
+ GNUNET_TIME_relative_multiply
+ (GNUNET_TIME_UNIT_SECONDS,
+ 5),
- "EUR:0.109",
- "EUR:0.1"),
+ "EUR:0.109",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-8b-tiny",
- config_filename),
+ config_filename),
- TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-8b-tiny"),
+ TALER_TESTING_cmd_check_bank_empty (
+ "expect-empty-transactions-after-8b-tiny"),
// now trigger aggregate with large transaction and short deadline
TALER_TESTING_cmd_insert_deposit ("do-deposit-8c",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:0.122",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:0.122",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-8",
- config_filename),
+ config_filename),
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-8",
- ec.exchange_url,
- "EUR:0.03",
- bc.exchange_payto,
- bc.user42_payto),
+ ec.exchange_url,
+ "EUR:0.03",
+ bc.exchange_payto,
+ bc.user42_payto),
// Test aggregation with fees and rounding profits.
-
+
TALER_TESTING_cmd_insert_deposit ("do-deposit-9a",
- &dbc,
- "bob",
- USER42_ACCOUNT,
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
- GNUNET_TIME_relative_multiply
- (GNUNET_TIME_UNIT_SECONDS,
- 5),
+ GNUNET_TIME_relative_multiply
+ (GNUNET_TIME_UNIT_SECONDS,
+ 5),
- "EUR:0.104",
- "EUR:0.1"),
+ "EUR:0.104",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-9a-tiny",
- config_filename),
+ config_filename),
- TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-9a-tiny"),
+ TALER_TESTING_cmd_check_bank_empty (
+ "expect-empty-transactions-after-9a-tiny"),
TALER_TESTING_cmd_insert_deposit ("do-deposit-9b",
- &dbc,
- "bob",
- USER42_ACCOUNT,
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
- GNUNET_TIME_relative_multiply
- (GNUNET_TIME_UNIT_SECONDS,
- 5),
+ GNUNET_TIME_relative_multiply
+ (GNUNET_TIME_UNIT_SECONDS,
+ 5),
- "EUR:0.105",
- "EUR:0.1"),
+ "EUR:0.105",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-9b-tiny",
- config_filename),
- TALER_TESTING_cmd_check_bank_empty ("expect-empty-transactions-after-9b-tiny"),
-
-
+ config_filename),
+ TALER_TESTING_cmd_check_bank_empty (
+ "expect-empty-transactions-after-9b-tiny"),
// now trigger aggregate with large transaction and short deadline
TALER_TESTING_cmd_insert_deposit ("do-deposit-9c",
- &dbc,
- "bob",
- USER42_ACCOUNT,
- GNUNET_TIME_UNIT_ZERO,
- "EUR:0.112",
- "EUR:0.1"),
+ &dbc,
+ "bob",
+ USER42_ACCOUNT,
+ GNUNET_TIME_UNIT_ZERO,
+ "EUR:0.112",
+ "EUR:0.1"),
TALER_TESTING_cmd_exec_aggregator ("run-aggregator-deposit-9",
- config_filename),
+ config_filename),
// 0.009 + 0.009 + 0.022 - 0.001 - 0.002 - 0.008 = 0.029 => 0.02
TALER_TESTING_cmd_check_bank_transfer ("expect-deposit-9",
- ec.exchange_url,
- "EUR:0.01",
- bc.exchange_payto,
- bc.user42_payto),
- TALER_TESTING_cmd_end ()
+ ec.exchange_url,
+ "EUR:0.01",
+ bc.exchange_payto,
+ bc.user42_payto),
+ TALER_TESTING_cmd_end ()
};
-
+
TALER_TESTING_run_with_fakebank (is,
- all,
- bc.bank_url);
+ all,
+ bc.bank_url);
}
+
int
main (int argc,
char *const argv[])
@@ -552,22 +564,22 @@ main (int argc,
TALER_TESTING_cleanup_files (config_filename);
if (GNUNET_OK != TALER_TESTING_prepare_exchange (config_filename,
- &ec))
+ &ec))
{
TALER_LOG_WARNING ("Could not prepare the exchange.\n");
return 77;
}
if (GNUNET_OK != TALER_TESTING_prepare_fakebank (config_filename,
- "account-1",
- &bc))
+ "account-1",
+ &bc))
{
TALER_LOG_WARNING ("Could not prepare the fakebank\n");
return 77;
}
if (GNUNET_OK != GNUNET_CONFIGURATION_parse_and_run (config_filename,
- &prepare_database,
+ &prepare_database,
NULL))
{
TALER_LOG_WARNING ("Could not prepare database for tests.\n");
@@ -575,10 +587,10 @@ main (int argc,
}
result = TALER_TESTING_setup (&run,
- NULL,
- config_filename,
- NULL, // no exchange process handle.
- GNUNET_NO); // do not try to connect to the exchange
+ NULL,
+ config_filename,
+ NULL, // no exchange process handle.
+ GNUNET_NO); // do not try to connect to the exchange
GNUNET_free (config_filename);
GNUNET_free (testname);
diff --git a/src/lib/testing_api_cmd_insert_deposit.c b/src/lib/testing_api_cmd_insert_deposit.c
index a5a285b0c..47729a0ad 100644
--- a/src/lib/testing_api_cmd_insert_deposit.c
+++ b/src/lib/testing_api_cmd_insert_deposit.c
@@ -98,8 +98,6 @@ fake_issue (struct TALER_EXCHANGEDB_DenominationKeyInformationP *issue)
}
-
-
/**
* Run the command.
*
@@ -147,7 +145,7 @@ insert_deposit_run (void *cls,
// prepare and store deposit now.
memset (&deposit,
0,
- sizeof (deposit));
+ sizeof (deposit));
GNUNET_CRYPTO_kdf (&merchant_priv,
sizeof (struct TALER_MerchantPrivateKeyP),
@@ -156,7 +154,7 @@ insert_deposit_run (void *cls,
ids->merchant_name,
strlen (ids->merchant_name),
NULL,
- 0);
+ 0);
GNUNET_CRYPTO_eddsa_key_get_public (&merchant_priv.eddsa_priv,
&deposit.merchant_pub.eddsa_pub);
GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK,
@@ -173,7 +171,7 @@ insert_deposit_run (void *cls,
}
GNUNET_CRYPTO_rsa_public_key_hash (dpk.rsa_public_key,
- &deposit.coin.denom_pub_hash);
+ &deposit.coin.denom_pub_hash);
GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK,
&hc);
@@ -244,7 +242,7 @@ insert_deposit_cleanup (void *cls,
const struct TALER_TESTING_Command *cmd)
{
struct InsertDepositState *ids = cls;
-
+
GNUNET_free (ids);
}
@@ -283,12 +281,13 @@ insert_deposit_traits (void *cls,
*/
struct TALER_TESTING_Command
TALER_TESTING_cmd_insert_deposit (const char *label,
- const struct TALER_TESTING_DatabaseConnection *dbc,
- const char *merchant_name,
- const char *merchant_account,
- struct GNUNET_TIME_Relative wire_deadline,
- const char *amount_with_fee,
- const char *deposit_fee)
+ const struct
+ TALER_TESTING_DatabaseConnection *dbc,
+ const char *merchant_name,
+ const char *merchant_account,
+ struct GNUNET_TIME_Relative wire_deadline,
+ const char *amount_with_fee,
+ const char *deposit_fee)
{
struct TALER_TESTING_Command cmd;
struct InsertDepositState *ids;