[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [taler-exchange] branch master updated: implement more audi
From: |
gnunet |
Subject: |
[GNUnet-SVN] [taler-exchange] branch master updated: implement more audit checks for refunds |
Date: |
Fri, 17 Mar 2017 17:47:59 +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 382e3df implement more audit checks for refunds
382e3df is described below
commit 382e3dfedbf3384065fc19b3ea561aed754b402f
Author: Christian Grothoff <address@hidden>
AuthorDate: Fri Mar 17 17:49:55 2017 +0100
implement more audit checks for refunds
---
src/auditor/taler-auditor.c | 43 +++++++++++++++++++++++++++++++----
src/include/taler_exchangedb_plugin.h | 3 +++
2 files changed, 42 insertions(+), 4 deletions(-)
diff --git a/src/auditor/taler-auditor.c b/src/auditor/taler-auditor.c
index dab3d90..d04eabc 100644
--- a/src/auditor/taler-auditor.c
+++ b/src/auditor/taler-auditor.c
@@ -1833,7 +1833,10 @@ refund_cb (void *cls,
struct CoinContext *cc = cls;
struct CoinSummary *cs;
const struct TALER_EXCHANGEDB_DenominationKeyInformationP *dki;
+ struct DenominationSummary *ds;
struct TALER_RefundRequestPS rr;
+ struct TALER_Amount amount_without_fee;
+ struct TALER_Amount refund_fee;
cs = get_coin_summary (cc,
coin_pub);
@@ -1860,15 +1863,47 @@ refund_cb (void *cls,
&merchant_sig->eddsa_sig,
&merchant_pub->eddsa_pub))
{
- report_row_inconsistency ("deposit",
+ report_row_inconsistency ("refund",
rowid,
- "invalid signature for coin deposit");
+ "invalid signature for refund");
return GNUNET_OK;
}
- // TODO: update denomination key balance!
+ TALER_amount_ntoh (&refund_fee,
+ &dki->properties.fee_refund);
+ if (GNUNET_OK !=
+ TALER_amount_subtract (&amount_without_fee,
+ amount_with_fee,
+ &refund_fee))
+ {
+ report_row_inconsistency ("refund",
+ rowid,
+ "refunded amount smaller than refund fee");
+ return GNUNET_OK;
+ }
+
+ /* update coin's denomination balance */
+ ds = get_denomination_summary (cc,
+ &dki->properties.denom_hash);
+ if (GNUNET_OK !=
+ TALER_amount_add (&ds->denom_balance,
+ &ds->denom_balance,
+ &amount_without_fee))
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
+
+ /* update total refund fee balance */
+ if (GNUNET_OK !=
+ TALER_amount_add (&cc->refund_fee_balance,
+ &cc->refund_fee_balance,
+ &refund_fee))
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
- // TODO: update expected amounts in 'cc'
return GNUNET_OK;
}
diff --git a/src/include/taler_exchangedb_plugin.h
b/src/include/taler_exchangedb_plugin.h
index a365e35..3409278 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -1738,6 +1738,9 @@ struct TALER_EXCHANGEDB_Plugin
/**
+ * FIXME: this is NOT the API we want here, as we cannot exactly determine
the
+ * important WTID from the callback!
+ *
* Function called to select all wire transfers the exchange
* executed or plans to execute.
*
--
To stop receiving notification emails like this one, please contact
address@hidden
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] [taler-exchange] branch master updated: implement more audit checks for refunds,
gnunet <=