aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/auditor-report.tex.j244
-rwxr-xr-xcontrib/render.py4
-rw-r--r--contrib/samples/auditor.json162
-rw-r--r--contrib/samples/wire-auditor.json5
-rw-r--r--src/auditor/taler-auditor.c14
-rw-r--r--src/auditor/taler-wire-auditor.c2
6 files changed, 144 insertions, 87 deletions
diff --git a/contrib/auditor-report.tex.j2 b/contrib/auditor-report.tex.j2
index d852f90ca..62db4db89 100644
--- a/contrib/auditor-report.tex.j2
+++ b/contrib/auditor-report.tex.j2
@@ -14,15 +14,15 @@
The balance of the escrow account should
be {\bf
\mbox{
- {{ data.report_denomination_balance[0].total_escrow_balance.value }}.{{ data.report_denomination_balance[0].total_escrow_balance.fraction }}
- {{ data.report_denomination_balance[0].total_escrow_balance.currency }}}}.
+ {{ data.total_escrow_balance.value }}.{{ data.total_escrow_balance.fraction }}
+ {{ data.total_escrow_balance.currency }}}}.
\noindent
The active operational risk stands at
\mbox{
{\bf
- {{ data.report_denomination_balance[0].total_active_risk.value }}.{{ data.report_denomination_balance[0].total_active_risk.fraction }}
- {{ data.report_denomination_balance[0].total_active_risk.currency }}}}.
+ {{ data.total_active_risk.value }}.{{ data.total_active_risk.fraction }}
+ {{ data.total_active_risk.currency }}}}.
\section{Income}
@@ -120,17 +120,17 @@ the financial damage done to the customer).
{\bf Operation} & {\bf Table row} & \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c|}{ {\bf Auditor}} \\
\hline \hline
\endfirsthead
- {\bf Operation} & {\bf Table row} & \ \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c|}{ {\bf Auditor}} \\ \hline \hline
+ {\bf Operation} & {\bf Table row} & \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c|}{ {\bf Auditor}} \\ \hline \hline
\endhead
\hline \hline
- {\bf Operation} & {\bf Table row} & \ \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c|}{ {\bf Auditor}} \\
+ {\bf Operation} & {\bf Table row} & \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c|}{ {\bf Auditor}} \\
\endfoot
\hline
{\bf Total} & &
{{ data.total_arithmetic_delta_plus.value }}.{{ data.total_arithmetic_delta_plus.fraction }} &
{{ data.total_arithmetic_delta_plus.currency }} &
{{ data.total_arithmetic_delta_minus.value }}.{{ data.total_arithmetic_delta_minus.fraction }} &
- {{ data.total_arithmetic_delta_minus.currency }} &
+ {{ data.total_arithmetic_delta_minus.currency }} \\
\caption{Arithmetic inconsistencies.}
\label{table:amount:arithmetic:inconsistencies}
\endlastfoot
@@ -192,7 +192,7 @@ that is a separate check). Note that not making the wire transfer
would be reported separately in Section~\ref{sec:wire_check_out}.
-{% if data.reserve_wire_out_inconsistencies|length() == 0 %}
+{% if data.wire_out_inconsistencies|length() == 0 %}
{\bf All aggregations matched up.}
{% else %}
\begin{longtable}{p{1.5cm}|l|rl|rl}
@@ -238,17 +238,17 @@ any effects on its own balance, those entries are excluded from the total.
{\bf Operation} & {\bf Coin public key} & \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c|}{ {\bf Auditor}} \\
\hline \hline
\endfirsthead
- {\bf Operation} & {\bf Coin public key} & \ \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c|}{ {\bf Auditor}} \\ \hline \hline
+ {\bf Operation} & {\bf Coin public key} & \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c|}{ {\bf Auditor}} \\ \hline \hline
\endhead
\hline \hline
- {\bf Operation} & {\bf Coin public key} & \ \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c|}{ {\bf Auditor}} \\
+ {\bf Operation} & {\bf Coin public key} & \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c|}{ {\bf Auditor}} \\
\endfoot
\hline
{\bf Total} & &
{{ data.total_coin_delta_plus.value }}.{{ data.total_coin_delta_plus.fraction }} &
{{ data.total_coin_delta_plus.currency }} &
- {{ data.total_coin_delta_minus.value }}.{{ data.total_coin_delta_minus.fraction }} &
- {{ data.total_coin_delta_minus.currency }} &
+ {{ data.total_coin_delta_minus.currency }} \\
\caption{Arithmetic inconsistencies of amount calculations involving a coin.}
\label{table:amount:arithmetic:coin:inconsistencies}
\endlastfoot
@@ -279,7 +279,7 @@ the (hash of the) denomination public key for
``payback-verify'' and ``deposit-verify'' operations, and the master
public key for ``payback-master'' operations.
-{% if data.reserve_wire_out_inconsistencies|length() == 0 %}
+{% if data.bad_sig_losses|length() == 0 %}
{\bf All signatures were valid.}
{% else %}
\begin{longtable}{p{1.5cm}|c|l|rl}
@@ -314,7 +314,7 @@ public key for ``payback-master'' operations.
This section highlights cases where the exchange's record about
incoming wire transfers does not match with that of the bank.
-{% if wire.reserve_in_amount_inconsistencies() == 0 %}
+{% if wire.reserve_in_amount_inconsistencies|length() == 0 %}
{\bf All incoming wire transfer amounts and subjects matched up.}
{% else %}
\begin{longtable}{p{6.5cm}|rl|rl}
@@ -331,9 +331,9 @@ incoming wire transfers does not match with that of the bank.
{\bf Diagnostic} & \multicolumn{2}{|c|}{ {\bf Row}} & \multicolumn{2}{|c|}{ {\bf Timestamp}} \\
\endfoot
\hline
- {\bf Total deltas} & &
- {{ wire.total_bad_amount_in_plus.value}}.{{ wire.total_bad_amount_in_plus.fraction}} & {{ wire.total_bad_amount_in_plus.currency}} &
- - {{ wire.total_bad_amount_in_minus.value}}.{{ wire.total_bad_amount_in_minus.fraction}} & {{ wire.total_bad_amount_in_minus.currency}} \\
+ {\bf Total deltas} &
+ {{ wire.total_wire_in_delta_plus.value}}.{{ wire.total_wire_in_delta_plus.fraction}} & {{ wire.total_wire_in_delta_plus.currency}} &
+ - {{ wire.total_wire_in_delta_minus.value}}.{{ wire.total_wire_in_delta_minus.fraction}} & {{ wire.total_wire_in_delta_minus.currency}} \\
\caption{Incoming wire transfer amounts not matching up.}
\label{table:wire_in:transfer_amount_inconsistencies}
\endlastfoot
@@ -347,7 +347,7 @@ incoming wire transfers does not match with that of the bank.
&
{{ item.diagnostic }} &
{{ item.row }} &
- {{ item.timestmap }} \\ \hline
+ {{ item.timestamp }} \\ \hline
{% endfor %}
\end{longtable}
{% endif %}
@@ -362,7 +362,7 @@ is closed and the remaining balance is refunded to the original
account.
-{% if wire.missattribution_in_inconsistencies() == 0 %}
+{% if wire.missattribution_in_inconsistencies|length() == 0 %}
{\bf All incoming wire transfer sender accounts matched up.}
{% else %}
\begin{longtable}{p{6.5cm}|rl}
@@ -397,7 +397,7 @@ account.
This section highlights cases where the exchange missbehaved
with respect to outgoing wire transfers.
-{% if wire.wire_out_amount_inconsistencies() == 0 %}
+{% if wire.wire_out_amount_inconsistencies|length() == 0 %}
{\bf All outgoing wire transfers matched up.}
{% else %}
\begin{longtable}{p{6.5cm}|rl|rl}
@@ -415,8 +415,8 @@ with respect to outgoing wire transfers.
\endfoot
\hline
{\bf Total deltas} & &
- {{ wire.total_bad_amount_out_plus.value}}.{{ wire.total_bad_amount_out_plus.fraction}} & {{ wire.total_bad_amount_out_plus.currency}} &
- - {{ wire.total_bad_amount_out_minus.value}}.{{ wire.total_bad_amount_out_minus.fraction}} & {{ wire.total_bad_amount_out_minus.currency}} \\
+ {{ wire.total_wire_out_delta_plus.value}}.{{ wire.total_wire_out_delta_plus.fraction}} & {{ wire.total_wire_out_delta_plus.currency}} &
+ - {{ wire.total_wire_out_delta_minus.value}}.{{ wire.total_bad_amount_out_minus.fraction}} & {{ wire.total_wire_out_delta_minus.currency}} \\
\caption{Outgoing wire transfer amounts not matching up.}
\label{table:wire_out:transfer_amount_inconsistencies}
\endlastfoot
@@ -485,7 +485,7 @@ have a clear financial impact.
{% if wire.row_inconsistencies|length() == 0 %}
{\bf No wire row inconsistencies found.}
{% else %}
- \begin{longtable}{p{1.5cm}|l|p{5.5}}
+ \begin{longtable}{p{1.5cm}|l|p{5.5cm}}
{\bf Table} & {\bf Row} & {\bf Diagnostic} \\
\hline \hline
\endfirsthead
diff --git a/contrib/render.py b/contrib/render.py
index 093db3559..47c00bb25 100755
--- a/contrib/render.py
+++ b/contrib/render.py
@@ -31,10 +31,10 @@ class StdinLoader(BaseLoader):
jsonFile1 = open (sys.argv[1], 'r')
-jsonData1 = json.load(jsonFile)
+jsonData1 = json.load(jsonFile1)
jsonFile2 = open (sys.argv[2], 'r')
-jsonData2 = json.load(jsonFile)
+jsonData2 = json.load(jsonFile2)
jinjaEnv = jinja2.Environment(loader=StdinLoader(),
lstrip_blocks=True,
diff --git a/contrib/samples/auditor.json b/contrib/samples/auditor.json
index 18754d1a2..441ab4f37 100644
--- a/contrib/samples/auditor.json
+++ b/contrib/samples/auditor.json
@@ -1,60 +1,112 @@
{
+ "reserve_balance_insufficient_inconsistencies": [],
+ "total_loss_balance_insufficient": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "reserve_balance_summary_wrong_inconsistencies": [],
+ "total_balance_summary_delta_plus": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "total_balance_summary_delta_minus": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "total_escrow_balance": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "total_active_risk": {
+ "currency": "KUDOS",
+ "value": 150,
+ "fraction": 0
+ },
+ "total_withdraw_fee_income": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 30000000
+ },
+ "total_deposit_fee_income": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 30000000
+ },
+ "total_melt_fee_income": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "total_refund_fee_income": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "income_fee_total": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 60000000
+ },
"emergencies": [],
- "row_inconsistencies": [],
- "row_minor_inconsistencies": [],
- "reserve_inconsistencies": [],
+ "emergencies_risk_total": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "reserve_not_closed_inconsistencies": [],
+ "total_balance_reserve_not_closed": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
"wire_out_inconsistencies": [],
+ "total_wire_out_delta_plus": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "total_wire_out_delta_minus": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "bad_sig_losses": [],
+ "total_bad_sig_loss": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "row_inconsistencies": [],
+ "denomination_key_validity_withdraw_inconsistencies": [],
"coin_inconsistencies": [],
- "reserve_balance": [
- {
- "total_escrow_balance": {
- "currency": "KUDOS",
- "value": 0,
- "fraction": 0
- },
- "total_withdraw_fee_income": {
- "currency": "KUDOS",
- "value": 0,
- "fraction": 30000000
- }
- }
- ],
- "aggregation_fee_balance": [
- {
- "total_aggregation_fee_income": {
- "currency": "KUDOS",
- "value": 0,
- "fraction": 0
- }
- }
- ],
- "report_denomination_balance": [
- {
- "total_escrow_balance": {
- "currency": "KUDOS",
- "value": 0,
- "fraction": 0
- },
- "total_active_risk": {
- "currency": "KUDOS",
- "value": 150,
- "fraction": 0
- },
- "total_deposit_fee_income": {
- "currency": "KUDOS",
- "value": 0,
- "fraction": 30000000
- },
- "total_melt_fee_income": {
- "currency": "KUDOS",
- "value": 0,
- "fraction": 0
- },
- "total_refund_fee_income": {
- "currency": "KUDOS",
- "value": 0,
- "fraction": 0
- }
- }
- ]
+ "total_coin_delta_plus": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "total_coin_delta_minus": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "amount_arithmetic_inconsistencies": [],
+ "total_arithmetic_delta_plus": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "total_arithmetic_delta_minus": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
+ "total_aggregation_fee_income": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ }
} \ No newline at end of file
diff --git a/contrib/samples/wire-auditor.json b/contrib/samples/wire-auditor.json
index cf8019458..44e338273 100644
--- a/contrib/samples/wire-auditor.json
+++ b/contrib/samples/wire-auditor.json
@@ -28,6 +28,11 @@
"diagnostic": "incoming wire transfer claimed by exchange not found"
}
],
+ "total_wire_in_delta_plus": {
+ "currency": "KUDOS",
+ "value": 0,
+ "fraction": 0
+ },
"total_wire_in_delta_minus": {
"currency": "KUDOS",
"value": 5,
diff --git a/src/auditor/taler-auditor.c b/src/auditor/taler-auditor.c
index e801ec77b..d33b23dff 100644
--- a/src/auditor/taler-auditor.c
+++ b/src/auditor/taler-auditor.c
@@ -4072,8 +4072,7 @@ run (void *cls,
" 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:o,"
- " s:o}",
+ " s:o, s:o, s:o, s:o, s:o}",
/* blocks of 5 for easier counting/matching to format string */
/* block */
"reserve_balance_insufficient_inconsistencies",
@@ -4096,8 +4095,8 @@ run (void *cls,
"total_deposit_fee_income",
TALER_JSON_from_amount (&total_deposit_fee_income),
"total_melt_fee_income",
- /* block */
TALER_JSON_from_amount (&total_melt_fee_income),
+ /* block */
"total_refund_fee_income",
TALER_JSON_from_amount (&total_refund_fee_income),
"income_fee_total",
@@ -4106,9 +4105,9 @@ run (void *cls,
report_emergencies,
"emergencies_risk_total",
TALER_JSON_from_amount (&reported_emergency_sum),
- /* block */
"reserve_not_closed_inconsistencies",
report_reserve_not_closed_inconsistencies,
+ /* block */
"total_balance_reserve_not_closed",
TALER_JSON_from_amount (&total_balance_reserve_not_closed),
"wire_out_inconsistencies",
@@ -4117,9 +4116,9 @@ run (void *cls,
TALER_JSON_from_amount (&total_wire_out_delta_plus),
"total_wire_out_delta_minus",
TALER_JSON_from_amount (&total_wire_out_delta_minus),
- /* block */
"bad_sig_losses",
report_bad_sig_losses,
+ /* block */
"total_bad_sig_loss",
TALER_JSON_from_amount (&total_bad_sig_loss),
"row_inconsistencies",
@@ -4128,9 +4127,9 @@ run (void *cls,
denomination_key_validity_withdraw_inconsistencies,
"coin_inconsistencies",
report_coin_inconsistencies,
- /* block */
"total_coin_delta_plus",
TALER_JSON_from_amount (&total_coin_delta_plus),
+ /* block */
"total_coin_delta_minus",
TALER_JSON_from_amount (&total_coin_delta_minus),
"amount_arithmetic_inconsistencies",
@@ -4139,10 +4138,11 @@ run (void *cls,
TALER_JSON_from_amount (&total_arithmetic_delta_plus),
"total_arithmetic_delta_minus",
TALER_JSON_from_amount (&total_arithmetic_delta_minus),
- /* block */
"total_aggregation_fee_income",
TALER_JSON_from_amount (&total_aggregation_fee_income)
+ /* block */
);
+ GNUNET_break (NULL != report);
json_dumpf (report,
stdout,
JSON_INDENT (2));
diff --git a/src/auditor/taler-wire-auditor.c b/src/auditor/taler-wire-auditor.c
index 13a293c36..f34fc7e71 100644
--- a/src/auditor/taler-wire-auditor.c
+++ b/src/auditor/taler-wire-auditor.c
@@ -314,7 +314,7 @@ do_shutdown (void *cls)
TALER_JSON_from_amount (&total_bad_amount_out_minus),
"reserve_in_amount_inconsistencies",
report_reserve_in_inconsistencies,
- "total_wire_in_delta_minus",
+ "total_wire_in_delta_plus",
TALER_JSON_from_amount (&total_bad_amount_in_plus),
/* block */
"total_wire_in_delta_minus",