migrate auditor-report.tex.j2 to current JSON style where currency/value are no longer separated

This commit is contained in:
Christian Grothoff 2018-11-24 22:30:16 +01:00
parent d0231022f2
commit 55015a2332
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC

View File

@ -49,17 +49,11 @@ The source code for the template is available at \url{https://git.taler.net/}.
\section{Operations} \section{Operations}
The balance of the escrow account should The balance of the escrow account should
be {\bf be {\bf {{ data.total_escrow_balance }}}.
\mbox{
{{ data.total_escrow_balance.value }}.{{ data.total_escrow_balance.fraction }}
{{ data.total_escrow_balance.currency }}}}.
\noindent \noindent
The active operational risk stands at The active operational risk stands at
\mbox{ {\bf {{ data.total_active_risk }}}.
{\bf
{{ data.total_active_risk.value }}.{{ data.total_active_risk.fraction }}
{{ data.total_active_risk.currency }}}}.
\section{Income} \section{Income}
@ -70,26 +64,14 @@ This section analyzes the income of the exchange operator from fees.
\begin{center} \begin{center}
\caption{Fee revenue summary} \caption{Fee revenue summary}
\label{table:revenue} \label{table:revenue}
\begin{tabular}{l|rl} \begin{tabular}{l|r}
Category & Amount & \\ \hline \hline Category & Amount \\ \hline \hline
Withdraw fees & Withdraw fees & {{ data.total_withdraw_fee_income }} \\
{{ data.total_withdraw_fee_income.value }}.{{ data.total_withdraw_fee_income.fraction }} & Deposit fees & {{ data.total_deposit_fee_income }} \\
{{ data.total_withdraw_fee_income.currency }} \\ Melt fees & {{ data.total_melt_fee_income }} \\
Deposit fees & Refund fees & {{ data.total_refund_fee_income }} \\
{{ data.total_deposit_fee_income.value }}.{{ data.total_deposit_fee_income.fraction }} & Aggregation fees & {{ data.total_aggregation_fee_income }} \\
{{ data.total_deposit_fee_income.currency }} \\ {\bf Total} & {{ data.income_fee_total }} \\
Melt fees &
{{ data.total_melt_fee_income.value }}.{{ data.total_melt_fee_income.fraction }} &
{{ data.total_melt_fee_income.currency }} \\
Refund fees &
{{ data.total_refund_fee_income.value }}.{{ data.total_refund_fee_income.fraction }} &
{{ data.total_refund_fee_income.currency }} \\
Aggregation fees &
{{ data.total_aggregation_fee_income.value }}.{{ data.total_aggregation_fee_income.fraction }} &
{{ data.total_aggregation_fee_income.currency }} \\
{\bf Total} &
{{ data.income_fee_total.value }}.{{ data.income_fee_total.fraction }} &
{{ data.income_fee_total.currency }} \\
\end{tabular} \end{tabular}
\end{center} \end{center}
\end{table} \end{table}
@ -101,8 +83,7 @@ This section analyzes the lag, which is by how much the exchange's aggregator is
making wire transfers that have been due. making wire transfers that have been due.
The total amount the exchange currently lags behind is The total amount the exchange currently lags behind is
{\bf {{ wire.total_amount_lag.value }}.{{ wire.total_amount_lag.fraction }} {\bf {{ wire.total_amount_lag }}}.
{{ wire.total_amount_lag.currency }}}.
Note that some lag is perfectly normal, as tiny amounts that are too small to be wired Note that some lag is perfectly normal, as tiny amounts that are too small to be wired
are deferred beyond the due date, hoping that additional transfers will push them above are deferred beyond the due date, hoping that additional transfers will push them above
@ -111,7 +92,7 @@ the tiny threshold. Below, we report {\em non-tiny} wire transfers that are lagg
{% if wire.lag_details|length() == 0 %} {% if wire.lag_details|length() == 0 %}
{\bf No non-tiny wire transfers that are lagging behind detected.} {\bf No non-tiny wire transfers that are lagging behind detected.}
{% else %} {% else %}
\begin{longtable}{p{1.5cm}|rl|c|rl} \begin{longtable}{p{1.5cm}|r|c|rl}
\multicolumn{4}{l}{\bf Coin} \\ \multicolumn{4}{l}{\bf Coin} \\
{\bf Deadline} & {\bf Amount} & {\bf Row} & {\bf Claimed done} \\ {\bf Deadline} & {\bf Amount} & {\bf Row} & {\bf Claimed done} \\
\multicolumn{4}{l}{\bf Target account} \\ \hline \hline \multicolumn{4}{l}{\bf Target account} \\ \hline \hline
@ -137,8 +118,7 @@ the tiny threshold. Below, we report {\em non-tiny} wire transfers that are lagg
\nopagebreak \nopagebreak
& &
{{ item.deadline }} & {{ item.deadline }} &
{{ item.amount.value }}.{{ item.amount.fraction }} & {{ item.amount }} &
{{ item.amount.currency }} &
{{ item.row }} & {{ item.row }} &
{{ item.claimed_done }} \\ {{ item.claimed_done }} \\
\nopagebreak \nopagebreak
@ -163,9 +143,8 @@ and should be answered by revoking the exchange's online siging keys.
% FIXME: reference PhD thesis? % FIXME: reference PhD thesis?
The total amount the exchange currently lags behind is The total amount the exchange currently lags behind is
{\bf {{ data.missing_deposit_confirmation_total.value }}.{{ data.missing_deposit_confirmation_total.fraction }} {\bf {{ data.missing_deposit_confirmation_total }} } or
{{ data.missing_deposit_confirmation_total.currency }}} or {\bf {{ data.missing_deposit_confirmation_count }} } deposit confirmations.
{\bf {{ data.total_missed_deposit_confirmations}} } deposit confirmations.
Note that some lag is perfectly normal. Note that some lag is perfectly normal.
Below, we report {\em all} deposit confirmations that are lagging behind. Below, we report {\em all} deposit confirmations that are lagging behind.
@ -173,7 +152,7 @@ Below, we report {\em all} deposit confirmations that are lagging behind.
{% if data.deposit_confirmation_inconsistencies|length() == 0 %} {% if data.deposit_confirmation_inconsistencies|length() == 0 %}
{\bf No deposit confirmations that are lagging behind detected.} {\bf No deposit confirmations that are lagging behind detected.}
{% else %} {% else %}
\begin{longtable}{p{1.5cm}|rl|c|rl} \begin{longtable}{p{1.5cm}|r|c|r}
{\bf Timestamp} & {\bf Amount} & {\bf Row} \\ {\bf Timestamp} & {\bf Amount} & {\bf Row} \\
\multicolumn{3}{l}{\bf Target account} \\ \hline \hline \multicolumn{3}{l}{\bf Target account} \\ \hline \hline
\endfirsthead \endfirsthead
@ -193,8 +172,7 @@ Below, we report {\em all} deposit confirmations that are lagging behind.
{% for item in data.deposit_confirmation_inconsistencies %} {% for item in data.deposit_confirmation_inconsistencies %}
& &
{{ item.timestamp }} & {{ item.timestamp }} &
{{ item.amount.value }}.{{ item.amount.fraction }} & {{ item.amount }} &
{{ item.amount.currency }} &
{{ item.row }} \\ {{ item.row }} \\
\nopagebreak \nopagebreak
\multicolumn{3}{l}{ {\tt {{ item.account }} } } \\ \hline \multicolumn{3}{l}{ {\tt {{ item.account }} } } \\ \hline
@ -225,7 +203,7 @@ compromise.
{% if data.emergencies|length() == 0 %} {% if data.emergencies|length() == 0 %}
{\bf No emergencies detected.} {\bf No emergencies detected.}
{% else %} {% else %}
\begin{longtable}{p{1.5cm}|rl|c|rl} \begin{longtable}{p{1.5cm}|r|c|r}
{\bf Public key hash} & {\bf Denomination} & {\bf Lifetime} & {\bf Risk exposure} \\ \hline \hline {\bf Public key hash} & {\bf Denomination} & {\bf Lifetime} & {\bf Risk exposure} \\ \hline \hline
\endfirsthead \endfirsthead
{\bf Public key hash} & {\bf Denomination} & {\bf Lifetime} & {\bf Risk exposure} \\ \hline \hline {\bf Public key hash} & {\bf Denomination} & {\bf Lifetime} & {\bf Risk exposure} \\ \hline \hline
@ -240,14 +218,12 @@ compromise.
\label{table:emergencies} \label{table:emergencies}
\endlastfoot \endlastfoot
{% for item in data.reserve_inconsistencies %} {% for item in data.reserve_inconsistencies %}
\multicolumn{6}{l}{ {\tt {{ item.denompub_hash }} } } \\ \multicolumn{4}{l}{ {\tt {{ item.denompub_hash }} } } \\
\nopagebreak \nopagebreak
& &
{{ item.value.value }}.{{ item.value.fraction }} & {{ item.value }} &
{{ item.value.currency }} &
{{ item.start }} - {{ item.deposit_end }} & {{ item.start }} - {{ item.deposit_end }} &
{{ item.denom_risk.value }}.{{ item.denom_risk.fraction }} & {{ item.denom_risk }} \\ \hline
{{ item.denom_risk.currency }} \\ \hline
{% endfor %} {% endfor %}
\end{longtable} \end{longtable}
{% endif %} {% endif %}
@ -264,7 +240,7 @@ the financial damage done to the customer).
{% if data.amount_arithmetic_inconsistencies|length() == 0 %} {% if data.amount_arithmetic_inconsistencies|length() == 0 %}
{\bf No arithmetic problems detected.} {\bf No arithmetic problems detected.}
{% else %} {% else %}
\begin{longtable}{p{3.5cm}|l|rl|rl} \begin{longtable}{p{3.5cm}|l|r|r}
{\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}} \\
\hline \hline \hline \hline
\endfirsthead \endfirsthead
@ -275,20 +251,16 @@ the financial damage done to the customer).
\endfoot \endfoot
\hline \hline \hline \hline
\multicolumn{2}{l|}{ {\bf $\sum$ Deltas (Auditor-Exchange)} } & \multicolumn{2}{l|}{ {\bf $\sum$ Deltas (Auditor-Exchange)} } &
+ {{ data.total_arithmetic_delta_plus.value }}.{{ data.total_arithmetic_delta_plus.fraction }} & + {{ data.total_arithmetic_delta_plus }} &
{{ data.total_arithmetic_delta_plus.currency }} & - {{ data.total_arithmetic_delta_minus }} \\
- {{ data.total_arithmetic_delta_minus.value }}.{{ data.total_arithmetic_delta_minus.fraction }} &
{{ data.total_arithmetic_delta_minus.currency }} \\
\caption{Arithmetic inconsistencies.} \caption{Arithmetic inconsistencies.}
\label{table:amount:arithmetic:inconsistencies} \label{table:amount:arithmetic:inconsistencies}
\endlastfoot \endlastfoot
{% for item in data.amount_arithmetic_inconsistencies %} {% for item in data.amount_arithmetic_inconsistencies %}
{{ item.operation }} & {{ item.operation }} &
{{ item.rowid }} & {{ item.rowid }} &
{{ item.exchange.value }}.{{ item.exchange.fraction }} & {{ item.exchange }} &
{{ item.exchange.currency }} & {{ item.auditor }} \\ \hline
{{ item.auditor.value }}.{{ item.auditor.fraction }} &
{{ item.auditor.currency }} \\ \hline
{% endfor %} {% endfor %}
\end{longtable} \end{longtable}
{% endif %} {% endif %}
@ -303,7 +275,7 @@ compromise resulting in proportional financial losses to the exchange.
{% if data.reserve_balance_insufficient_inconsistencies|length() == 0 %} {% if data.reserve_balance_insufficient_inconsistencies|length() == 0 %}
{\bf All withdrawals were covered by sufficient reserve funding.} {\bf All withdrawals were covered by sufficient reserve funding.}
{% else %} {% else %}
\begin{longtable}{p{4.5cm}|rl} \begin{longtable}{p{4.5cm}|r}
{\bf Reserve} & \multicolumn{2}{|c|}{ {\bf Loss}} \\ \hline \hline {\bf Reserve} & \multicolumn{2}{|c|}{ {\bf Loss}} \\ \hline \hline
\endfirsthead \endfirsthead
{\bf Reserve} & \multicolumn{2}{|c|}{ {\bf Loss}} \\ \hline \hline {\bf Reserve} & \multicolumn{2}{|c|}{ {\bf Loss}} \\ \hline \hline
@ -313,7 +285,7 @@ compromise resulting in proportional financial losses to the exchange.
\endfoot \endfoot
\hline \hline
{\bf Total loss} & & {\bf Total loss} & &
{{ data.total_loss_balance_insufficient.value}}.{{ data.total_loss_balance_insufficient.fraction}} & {{ data.total_loss_balance_insufficient.currency}} \\ {{ data.total_loss_balance_insufficient }} \\
\caption{Reserves with withdrawals higher than reserve funding.} \caption{Reserves with withdrawals higher than reserve funding.}
\label{table:reserve:balance_insufficient} \label{table:reserve:balance_insufficient}
\endlastfoot \endlastfoot
@ -321,8 +293,7 @@ compromise resulting in proportional financial losses to the exchange.
\multicolumn{3}{l}{ {\tt {{ item.reserve_pub }} } } \\ \multicolumn{3}{l}{ {\tt {{ item.reserve_pub }} } } \\
\nopagebreak \nopagebreak
& &
{{ item.loss.value }}.{{ item.loss.fraction }} & {{ item.loss }} \\ \hline
{{ item.loss.currency }} \\ \hline
{% endfor %} {% endfor %}
\end{longtable} \end{longtable}
{% endif %} {% endif %}
@ -343,18 +314,18 @@ would be reported separately in Section~\ref{sec:wire_check_out}.
{% if data.wire_out_inconsistencies|length() == 0 %} {% if data.wire_out_inconsistencies|length() == 0 %}
{\bf All aggregations matched up.} {\bf All aggregations matched up.}
{% else %} {% else %}
\begin{longtable}{p{1.5cm}|l|rl|rl} \begin{longtable}{p{1.5cm}|l|r|r}
{\bf Destination account} & {\bf Database row} & \multicolumn{2}{|c|}{ {\bf Expected}} & \multicolumn{2}{|c|}{ {\bf Claimed}} \\ \hline \hline {\bf Destination account} & {\bf Database row} & {\bf Expected} & {\bf Claimed} \\ \hline \hline
\endfirsthead \endfirsthead
{\bf Destination account} & {\bf Database row} & \multicolumn{2}{|c|}{ {\bf Expected}} & \multicolumn{2}{|c|}{ {\bf Claimed}} \\ \hline \hline {\bf Destination account} & {\bf Database row} & {\bf Expected} & {\bf Claimed} \\ \hline \hline
\endhead \endhead
\hline \hline \hline \hline
{\bf Destination account} & {\bf Database row} & \multicolumn{2}{|c|}{ {\bf Expected}} & \multicolumn{2}{|c|}{ {\bf Claimed}} \\ {\bf Destination account} & {\bf Database row} & {\bf Expected} & {\bf Claimed} \\
\endfoot \endfoot
\hline \hline
{\bf Total deltas} & & {\bf Total deltas} & &
{{ data.total_wire_out_delta_plus.value}}.{{ data.total_wire_out_delta_plus.fraction}} & {{ data.total_wire_out_delta_plus.currency}} & {{ data.total_wire_out_delta_plus}} &
- {{ data.total_wire_out_delta_minus.value}}.{{ data.total_wire_out_delta_minus.fraction}} & {{ data.total_wire_out_delta_minus.currency}} \\ - {{ data.total_wire_out_delta_minus}} \\
\caption{Claimed wire out aggregate totals not matching up.} \caption{Claimed wire out aggregate totals not matching up.}
\label{table:reserve:wire_out_balance_inconsistencies} \label{table:reserve:wire_out_balance_inconsistencies}
\endlastfoot \endlastfoot
@ -362,10 +333,8 @@ would be reported separately in Section~\ref{sec:wire_check_out}.
\multicolumn{6}{l}{ {\tt {{ item.destination_account }} } } \\ \multicolumn{6}{l}{ {\tt {{ item.destination_account }} } } \\
\nopagebreak \nopagebreak
& {{ item.rowid }} & & {{ item.rowid }} &
{{ item.expected.value }}.{{ item.expected.fraction }} & {{ item.expected }} &
{{ item.expected.currency }} & {{ item.claimed }} \\ \hline
{{ item.claimed.value }}.{{ item.claimed.fraction }} &
{{ item.claimed.currency }} \\ \hline
{% endfor %} {% endfor %}
\end{longtable} \end{longtable}
{% endif %} {% endif %}
@ -382,21 +351,19 @@ any effects on its own balance, those entries are excluded from the total.
{% if data.coin_inconsistencies|length() == 0 %} {% if data.coin_inconsistencies|length() == 0 %}
{\bf All coin histories were unproblematic.} {\bf All coin histories were unproblematic.}
{% else %} {% else %}
\begin{longtable}{p{1.8cm}|p{3cm}|rl|rl} \begin{longtable}{p{1.8cm}|p{3cm}|r|r}
{\bf Operation} & {\bf Coin public key} & \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c}{ {\bf Auditor}} \\ {\bf Operation} & {\bf Coin public key} & {\bf Exchange } & {\bf Auditor} \\
\hline \hline \hline \hline
\endfirsthead \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} & {\bf Exchange} & {\bf Auditor} \\ \hline \hline
\endhead \endhead
\hline \hline \hline \hline
{\bf Operation} & {\bf Coin public key} & \multicolumn{2}{|c|}{ {\bf Exchange}} & \multicolumn{2}{|c}{ {\bf Auditor}} \\ {\bf Operation} & {\bf Coin public key} & {\bf Exchange} & {\bf Auditor} \\
\endfoot \endfoot
\hline \hline
\multicolumn{2}{l|}{ $\sum$ {\bf Delta (Auditor-Exchange)} } & \multicolumn{2}{l|}{ $\sum$ {\bf Delta (Auditor-Exchange)} } &
{{ data.total_coin_delta_plus.value }}.{{ data.total_coin_delta_plus.fraction }} & {{ data.total_coin_delta_plus }} &
{{ data.total_coin_delta_plus.currency }} & - {{ data.total_coin_delta_minus }} \\
- {{ data.total_coin_delta_minus.value }}.{{ data.total_coin_delta_minus.fraction }} &
{{ data.total_coin_delta_minus.currency }} \\
\caption{Arithmetic inconsistencies of amount calculations involving a coin.} \caption{Arithmetic inconsistencies of amount calculations involving a coin.}
\label{table:amount:arithmetic:coin:inconsistencies} \label{table:amount:arithmetic:coin:inconsistencies}
\endlastfoot \endlastfoot
@ -404,10 +371,8 @@ any effects on its own balance, those entries are excluded from the total.
{{ item.operation }} & {{ item.operation }} &
\multicolumn{5}{l}{ {\tt {{ item.coin_pub }} } } \\ \multicolumn{5}{l}{ {\tt {{ item.coin_pub }} } } \\
\nopagebreak & & \nopagebreak & &
{{ item.exchange.value }}.{{ item.exchange.fraction }} & {{ item.exchange }} &
{{ item.exchange.currency }} & {{ item.auditor }} \\ \hline
{{ item.auditor.value }}.{{ item.auditor.fraction }} &
{{ item.auditor.currency }} \\ \hline
{% endfor %} {% endfor %}
\end{longtable} \end{longtable}
{% endif %} {% endif %}
@ -430,18 +395,18 @@ public key for ``payback-master'' operations.
{% if data.bad_sig_losses|length() == 0 %} {% if data.bad_sig_losses|length() == 0 %}
{\bf All signatures were valid.} {\bf All signatures were valid.}
{% else %} {% else %}
\begin{longtable}{p{1.5cm}|c|l|rl} \begin{longtable}{p{1.5cm}|c|l|r}
{\bf Public key} & {\bf Operation type} & Database row & \multicolumn{2}{|c|}{ {\bf Loss amount}} \\ {\bf Public key} & {\bf Operation type} & Database row & {\bf Loss amount} \\
\hline \hline \hline \hline
\endfirsthead \endfirsthead
{\bf Public key} & {\bf Operation type} & Database row & \multicolumn{2}{|c|}{ {\bf Loss amount}} \\ \hline \hline {\bf Public key} & {\bf Operation type} & Database row & {\bf Loss amount} \\ \hline \hline
\endhead \endhead
\hline \hline \hline \hline
{\bf Public key} & {\bf Operation type} & Database row & \multicolumn{2}{|c|}{ {\bf Loss amount}} \\ {\bf Public key} & {\bf Operation type} & Database row & {\bf Loss amount} \\
\endfoot \endfoot
\hline \hline
{\bf Total losses} & & & {\bf Total losses} & & &
{{ data.total_bad_sig_loss.value}}.{{ data.total_bad_sig_loss.fraction}} & {{ data.total_bad_sig_loss.currency}} \\ {{ data.total_bad_sig_loss}} \\
\caption{Losses from operations performed on coins without proper signatures.} \caption{Losses from operations performed on coins without proper signatures.}
\label{table:bad_signature_losses} \label{table:bad_signature_losses}
\endlastfoot \endlastfoot
@ -449,8 +414,7 @@ public key for ``payback-master'' operations.
\multicolumn{5}{l}{ {\tt {{ item.key_pub }} } } \\ \multicolumn{5}{l}{ {\tt {{ item.key_pub }} } } \\
\nopagebreak \nopagebreak
& {{ item.operation }} & {{ item.rowid }} & & {{ item.operation }} & {{ item.rowid }} &
{{ item.loss.value }}.{{ item.loss.fraction }} & {{ item.loss }} \\ \hline
{{ item.loss.currency }} \\ \hline
{% endfor %} {% endfor %}
\end{longtable} \end{longtable}
{% endif %} {% endif %}
@ -465,23 +429,23 @@ incoming wire transfers does not match with that of the bank.
{% if wire.reserve_in_amount_inconsistencies|length() == 0 %} {% if wire.reserve_in_amount_inconsistencies|length() == 0 %}
{\bf All incoming wire transfer amounts and subjects matched up.} {\bf All incoming wire transfer amounts and subjects matched up.}
{% else %} {% else %}
\begin{longtable}{p{5.5cm}|rl|rl} \begin{longtable}{p{5.5cm}|r|r}
\multicolumn{5}{l}{ {\bf Wire transfer identifier} ({\bf Row}) } \\ \multicolumn{5}{l}{ {\bf Wire transfer identifier} ({\bf Row}) } \\
{\bf Diagnostic} & \multicolumn{2}{|c|}{ {\bf Wired}} & \multicolumn{2}{|c}{ {\bf Expected}} \\ {\bf Diagnostic} & {\bf Wired} & {\bf Expected} \\
\hline \hline \hline \hline
\endfirsthead \endfirsthead
\multicolumn{5}{l}{ {\bf Wire transfer identifier} ({\bf Row}) } \\ \multicolumn{5}{l}{ {\bf Wire transfer identifier} ({\bf Row}) } \\
{\bf Diagnostic} & \multicolumn{2}{|c|}{ {\bf Wired}} & \multicolumn{2}{|c}{ {\bf Expected}} \\ {\bf Diagnostic} & {\bf Wired} & {\bf Expected} \\
\hline \hline \hline \hline
\endhead \endhead
\hline \hline \hline \hline
\multicolumn{5}{l}{ {\bf Wire transfer identifier} ({\bf Row}) } \\ \multicolumn{5}{l}{ {\bf Wire transfer identifier} ({\bf Row}) } \\
{\bf Diagnostic} & \multicolumn{2}{|c|}{ {\bf Wired}} & \multicolumn{2}{|c}{ {\bf Expected}} \\ {\bf Diagnostic} & {\bf Wired} & {\bf Expected} \\
\endfoot \endfoot
\hline \hline \hline \hline
{\bf Total deltas} & {\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_plus }} &
- {{ wire.total_wire_in_delta_minus.value}}.{{ wire.total_wire_in_delta_minus.fraction}} & {{ wire.total_wire_in_delta_minus.currency}} \\ - {{ wire.total_wire_in_delta_minus}} \\
\caption{Incoming wire transfer amounts not matching up.} \caption{Incoming wire transfer amounts not matching up.}
\label{table:wire_in:transfer_amount_inconsistencies} \label{table:wire_in:transfer_amount_inconsistencies}
\endlastfoot \endlastfoot
@ -489,10 +453,8 @@ incoming wire transfers does not match with that of the bank.
\multicolumn{5}{l}{ {\tt {{ item.wtid }} } ({{ item.row }}) } \\ \multicolumn{5}{l}{ {\tt {{ item.wtid }} } ({{ item.row }}) } \\
\nopagebreak \nopagebreak
{{ item.timestamp }}: & {{ item.timestamp }}: &
{{ item.amount_wired.value }}.{{ item.amount_wired.fraction }} & {{ item.amount_wired }} &
{{ item.amount_wired.currency }} & {{ item.amount_expected }} \\
{{ item.amount_expected.value }}.{{ item.amount_expected.fraction }} &
{{ item.amount_expected.currency }} \\
{{ item.diagnostic }} & & & & \\ {{ item.diagnostic }} & & & & \\
%\nopagebreak %\nopagebreak
% & \multicolumn{4}{|c}{ {{ item.timestamp }} } % & \multicolumn{4}{|c}{ {{ item.timestamp }} }
@ -514,26 +476,25 @@ account.
{% if wire.missattribution_in_inconsistencies|length() == 0 %} {% if wire.missattribution_in_inconsistencies|length() == 0 %}
{\bf All incoming wire transfer sender accounts matched up.} {\bf All incoming wire transfer sender accounts matched up.}
{% else %} {% else %}
\begin{longtable}{p{6.5cm}|rl} \begin{longtable}{p{6.5cm}|r}
{\bf Wire transfer identifier} & \multicolumn{2}{|c|}{ {\bf Amount}} \\ {\bf Wire transfer identifier} & {\bf Amount} \\
\hline \hline \hline \hline
\endfirsthead \endfirsthead
{\bf Wire transfer identifier} & \multicolumn{2}{|c|}{ {\bf Amount}} \\ {\bf Wire transfer identifier} & {\bf Amount} \\
\hline \hline \hline \hline
\endhead \endhead
\hline \hline \hline \hline
{\bf Wire transfer identifier} & \multicolumn{2}{|c|}{ {\bf Amount}} \\ {\bf Wire transfer identifier} & {\bf Amount} \\
\endfoot \endfoot
\hline \hline
{\bf Total amount} & {\bf Total amount} &
{{ wire.total_missattribution_in_plus.value}}.{{ wire.total_missattribution_in_plus.fraction}} & {{ wire.total_missattribution_in_plus.currency}} \\ {{ wire.total_missattribution_in_plus}} \\
\caption{Incoming wire transfer sender accounts not matching up.} \caption{Incoming wire transfer sender accounts not matching up.}
\label{table:wire_in:sender_account_inconsistencies} \label{table:wire_in:sender_account_inconsistencies}
\endlastfoot \endlastfoot
{% for item in wire.missattribution_in_inconsistencies %} {% for item in wire.missattribution_in_inconsistencies %}
{\tt {{ item.wtid }} } & {\tt {{ item.wtid }} } &
{{ item.amount.value }}.{{ item.amount.fraction }} & {{ item.amount }} \\ hline
{{ item.amount.currency }} \\ hline
{% endfor %} {% endfor %}
\end{longtable} \end{longtable}
{% endif %} {% endif %}
@ -549,32 +510,30 @@ with respect to outgoing wire transfers.
{% if wire.wire_out_amount_inconsistencies|length() == 0 %} {% if wire.wire_out_amount_inconsistencies|length() == 0 %}
{\bf All outgoing wire transfers matched up.} {\bf All outgoing wire transfers matched up.}
{% else %} {% else %}
\begin{longtable}{p{6.5cm}|rl|rl} \begin{longtable}{p{6.5cm}|r|r}
{\bf Wire transfer identifier} & \multicolumn{2}{|c|}{ {\bf Wired}} & \multicolumn{2}{|c|}{ {\bf Justified}} \\ {\bf Wire transfer identifier} & {\bf Wired} & {\bf Justified}} \\
{\bf Diagnostic} & \multicolumn{2}{|c|}{ {\bf Row}} & \multicolumn{2}{|c|}{ {\bf Timestamp}} \\ {\bf Diagnostic} & {\bf Row} & {\bf Timestamp} \\
\hline \hline \hline \hline
\endfirsthead \endfirsthead
{\bf Wire transfer identifier} & \multicolumn{2}{|c|}{ {\bf Wired}} & \multicolumn{2}{|c|}{ {\bf Justified}} \\ {\bf Wire transfer identifier} & {\bf Wired} & {\bf Justified} \\
{\bf Diagnostic} & \multicolumn{2}{|c|}{ {\bf Row}} & \multicolumn{2}{|c|}{ {\bf Timestamp}} \\ {\bf Diagnostic} & {\bf Row} & {\bf Timestamp} \\
\hline \hline \hline \hline
\endhead \endhead
\hline \hline \hline \hline
{\bf Wire transfer identifier} & \multicolumn{2}{|c|}{ {\bf Wired}} & \multicolumn{2}{|c|}{ {\bf Justified}} \\ {\bf Wire transfer identifier} & {\bf Wired} & {\bf Justified} \\
{\bf Diagnostic} & \multicolumn{2}{|c|}{ {\bf Row}} & \multicolumn{2}{|c|}{ {\bf Timestamp}} \\ {\bf Diagnostic} & {\bf Row}} & {\bf Timestamp} \\
\endfoot \endfoot
\hline \hline
{\bf Total deltas} & & {\bf Total deltas} & &
{{ 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_plus }} &
- {{ wire.total_wire_out_delta_minus.value}}.{{ wire.total_bad_amount_out_minus.fraction}} & {{ wire.total_wire_out_delta_minus.currency}} \\ - {{ wire.total_wire_out_delta_minus }} \\
\caption{Outgoing wire transfer amounts not matching up.} \caption{Outgoing wire transfer amounts not matching up.}
\label{table:wire_out:transfer_amount_inconsistencies} \label{table:wire_out:transfer_amount_inconsistencies}
\endlastfoot \endlastfoot
{% for item in wire.wire_out_amount_inconsistencies %} {% for item in wire.wire_out_amount_inconsistencies %}
{\tt {{ item.wtid }} } & {\tt {{ item.wtid }} } &
{{ item.amount_wired.value }}.{{ item.amount_wired.fraction }} & {{ item.amount_wired }} &
{{ item.amount_wired.currency }} & {{ item.amount_justified }} \\ \hline
{{ item.amount_justified.value }}.{{ item.amount_justified.fraction }} &
{{ item.amount_justified.currency }} \\ \hline
\nopagebreak \nopagebreak
& &
{{ item.diagnostic }} & {{ item.diagnostic }} &
@ -598,18 +557,18 @@ translate into a financial loss (yet).
{% if data.reserve_balance_summary_wrong_inconsistencies|length() == 0 %} {% if data.reserve_balance_summary_wrong_inconsistencies|length() == 0 %}
{\bf All balances matched up.} {\bf All balances matched up.}
{% else %} {% else %}
\begin{longtable}{p{1.5cm}|rl|rl} \begin{longtable}{p{1.5cm}|r|r}
{\bf Reserve} & \multicolumn{2}{|c|}{ {\bf Auditor}} & \multicolumn{2}{|c|}{ {\bf Exchange}} \\ \hline \hline {\bf Reserve} & {\bf Auditor} & {\bf Exchange} \\ \hline \hline
\endfirsthead \endfirsthead
{\bf Reserve} & \multicolumn{2}{|c|}{ {\bf Auditor}} & \multicolumn{2}{|c|}{ {\bf Exchange}} \\ \hline \hline {\bf Reserve} & {\bf Auditor} & {\bf Exchange} \\ \hline \hline
\endhead \endhead
\hline \hline \hline \hline
{\bf Reserve} & \multicolumn{2}{|c|}{ {\bf Auditor}} & \multicolumn{2}{|c|}{ {\bf Exchange}} {\bf Reserve} & {\bf Auditor} & {\bf Exchange}
\endfoot \endfoot
\hline \hline
{\bf Total deltas} & & {\bf Total deltas} & &
{{ data.total_balance_summary_delta_plus.value}}.{{ data.total_balance_summary_delta_plus.fraction}} & {{ data.total_balance_summary_delta_plus.currency}} & {{ data.total_balance_summary_delta_plus}} &
- {{ data.total_balance_summary_delta_minus.value}}.{{ data.total_balance_summary_delta_minus.fraction}} & {{ data.total_balance_summary_delta_minus.currency}} \\ - {{ data.total_balance_summary_delta_minus}} \\
\caption{Reserves balances not matching up.} \caption{Reserves balances not matching up.}
\label{table:reserve:balance_inconsistencies} \label{table:reserve:balance_inconsistencies}
\endlastfoot \endlastfoot
@ -617,10 +576,8 @@ translate into a financial loss (yet).
\multicolumn{5}{l}{ {\tt {{ item.reserve_pub }} } } \\ \multicolumn{5}{l}{ {\tt {{ item.reserve_pub }} } } \\
\nopagebreak \nopagebreak
& &
{{ item.auditor.value }}.{{ item.auditor.fraction }} & {{ item.auditor }} &
{{ item.auditor.currency }} & {{ item.exchange }} \\ \hline
{{ item.exchange.value }}.{{ item.exchange.fraction }} &
{{ item.exchange.currency }} \\ \hline
{% endfor %} {% endfor %}
\end{longtable} \end{longtable}
{% endif %} {% endif %}
@ -670,24 +627,23 @@ with duplicate or malformed wire transfer subjects.
{% if wire.wire_format_inconsistencies|length() == 0 %} {% if wire.wire_format_inconsistencies|length() == 0 %}
{\bf No wire format inconsistencies found.} {\bf No wire format inconsistencies found.}
{% else %} {% else %}
\begin{longtable}{p{4.5cm}|rl} \begin{longtable}{p{4.5cm}|r}
\multicolumn{3}{c}{ {\bf Row hash} } \\ \multicolumn{3}{c}{ {\bf Row hash} } \\
{\bf Diagnostic} & \multicolumn{2}{c|}{ {\bf Amount} } \\ {\bf Diagnostic} & {\bf Amount} \\
\hline \hline \hline \hline
\endfirsthead \endfirsthead
\multicolumn{3}{c}{ {\bf Row hash} } \\ \multicolumn{3}{c}{ {\bf Row hash} } \\
{\bf Diagnostic} & \multicolumn{2}{c|}{ {\bf Amount} } \\ {\bf Diagnostic} & {\bf Amount} \\
\hline \hline \hline \hline
\endhead \endhead
\hline \hline
\multicolumn{3}{c}{ {\bf Row hash} } \\ \multicolumn{3}{c}{ {\bf Row hash} } \\
{\bf Diagnostic} & \multicolumn{2}{c|}{ {\bf Amount} } \\ {\bf Diagnostic} & {\bf Amount} \\
\endfoot \endfoot
\hline \hline
\hline \hline
{\bf Total} & {\bf Total} &
{{ wire.total_wire_format_amount.value }}.{{ wire.total_wire_format_amount.fraction }} & {{ wire.total_wire_format_amount }} \\
{{ wire.total_wire_format_amount.currency }} \\
\caption{Outgoing wire transfer subject issues found.} \caption{Outgoing wire transfer subject issues found.}
\label{table:outgoing:wtid} \label{table:outgoing:wtid}
\endlastfoot \endlastfoot
@ -695,8 +651,7 @@ with duplicate or malformed wire transfer subjects.
\multicolumn{3}{l}{ \verb! {{ item.wire_offset_hash }} ! } \\ \multicolumn{3}{l}{ \verb! {{ item.wire_offset_hash }} ! } \\
\nopagebreak \nopagebreak
{{ item.diagnostic }} & {{ item.diagnostic }} &
{{ item.amount.value }}.{{ item.amount.fraction }} & {{ item.amount }} \\
{{ item.amount.currency }} \\
{% endfor %} {% endfor %}
\end{longtable} \end{longtable}
{% endif %} {% endif %}
@ -781,17 +736,17 @@ reserve expired.
{% if data.reserve_not_closed_inconsistencies|length() == 0 %} {% if data.reserve_not_closed_inconsistencies|length() == 0 %}
{\bf All expired reserves were closed.} {\bf All expired reserves were closed.}
{% else %} {% else %}
\begin{longtable}{p{1.5cm}|c|rl} \begin{longtable}{p{1.5cm}|c|r}
{\bf Reserve} & {\bf Expired} & \multicolumn{2}{|c}{ {\bf Balance}} \\ \hline \hline {\bf Reserve} & {\bf Expired} & {\bf Balance} \\ \hline \hline
\endfirsthead \endfirsthead
{\bf Reserve} & {\bf Expired} & \multicolumn{2}{|c}{ {\bf Balance}} \\ \hline \hline {\bf Reserve} & {\bf Expired} & {\bf Balance} \\ \hline \hline
\endhead \endhead
\hline \hline \hline \hline
{\bf Reserve} & {\bf Expired} & \multicolumn{2}{|c}{ {\bf Balance}} {\bf Reserve} & {\bf Expired} & {\bf Balance}
\endfoot \endfoot
\hline \hline
{\bf Sum} & & {\bf Sum} & &
{{ data.total_balance_reserve_not_closed.value}}.{{ data.total_balance_reserve_not_closed.fraction}} & {{ data.total_balance_reserve_not_closed.currency}} \\ {{ data.total_balance_reserve_not_closed}} \\
\caption{Reserves not closed on time.} \caption{Reserves not closed on time.}
\label{table:reserve:not_closed} \label{table:reserve:not_closed}
\endlastfoot \endlastfoot
@ -800,8 +755,7 @@ reserve expired.
\nopagebreak \nopagebreak
& &
{{ item.expiration_time }} & {{ item.expiration_time }} &
{{ item.balance.value }}.{{ item.balance.fraction }} & {{ item.balance }} \\ \hline
{{ item.balance.currency }} \\ \hline
{% endfor %} {% endfor %}
\end{longtable} \end{longtable}
{% endif %} {% endif %}
@ -818,19 +772,19 @@ may happen even if the exchange is correct.
{% if data.refresh_hanging|length() == 0 %} {% if data.refresh_hanging|length() == 0 %}
{\bf All melted coins were refreshed.} {\bf All melted coins were refreshed.}
{% else %} {% else %}
\begin{longtable}{p{1.5cm}|c|rl} \begin{longtable}{p{1.5cm}|c|r}
{\bf Key} & {\bf row} & \multicolumn{2}{|c|}{ {\bf Amount}} \\ {\bf Key} & {\bf row} & {\bf Amount} \\
\hline \hline \hline \hline
\endfirsthead \endfirsthead
{\bf Key} & {\bf row} & \multicolumn{2}{|c|}{ {\bf Amount}} \\ {\bf Key} & {\bf row} & {\bf Amount} \\
\hline \hline \hline \hline
\endhead \endhead
\hline \hline \hline \hline
{\bf Key} & {\bf row} & \multicolumn{2}{|c|}{ {\bf Amount}} \\ {\bf Key} & {\bf row} & {\bf Amount} \\
\endfoot \endfoot
\hline \hline
{\bf Sum} & & {\bf Sum} & &
{{ data.total_refresh_hanging.value}}.{{ data.total_refresh_hanging.fraction}} & {{ data.total_refresh_hanging.currency}} \\ {{ data.total_refresh_hanging}} \\
\caption{Refresh operations hanging.} \caption{Refresh operations hanging.}
\label{table:refresh:hanging} \label{table:refresh:hanging}
\endlastfoot \endlastfoot
@ -839,8 +793,7 @@ may happen even if the exchange is correct.
\nopagebreak \nopagebreak
& &
{{ item.row }} & {{ item.row }} &
{{ item.amount.value }}.{{ item.amount.fraction }} & {{ item.amount }} \\ \hline
{{ item.amount.currency }} \\ \hline
{% endfor %} {% endfor %}
\end{longtable} \end{longtable}
{% endif %} {% endif %}