diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-03-18 13:58:40 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-03-18 13:58:40 +0100 |
commit | bab24a451a2c582951e636c388bd31e47abddecb (patch) | |
tree | 71a9a6ceab1f1df149bb73b330d23361f5574c85 /src/exchange-tools/taler-exchange-keycheck.c | |
parent | 59a5b1ceb8fac923eab7461115f492cafd2d0152 (diff) | |
download | exchange-bab24a451a2c582951e636c388bd31e47abddecb.tar.xz |
add -i option to taler-exchange-keycheck
Diffstat (limited to 'src/exchange-tools/taler-exchange-keycheck.c')
-rw-r--r-- | src/exchange-tools/taler-exchange-keycheck.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/exchange-tools/taler-exchange-keycheck.c b/src/exchange-tools/taler-exchange-keycheck.c index 7c0785808..6b6ce9eb9 100644 --- a/src/exchange-tools/taler-exchange-keycheck.c +++ b/src/exchange-tools/taler-exchange-keycheck.c @@ -41,6 +41,12 @@ static const struct GNUNET_CONFIGURATION_Handle *kcfg; */ static int global_ret; +/** + * Option -i used to print full denomination key hashes for + * denominations of certain amounts. + */ +static struct TALER_Amount print_dk_amount; + /** * Function called on each signing key. @@ -136,6 +142,7 @@ denomkeys_iter (void *cls, TALER_EXCHANGEDB_DenominationKey *dki) { struct GNUNET_HashCode hc; + struct TALER_Amount value; (void) cls; if (ntohl (dki->issue.properties.purpose.size) != @@ -187,6 +194,29 @@ denomkeys_iter (void *cls, "Denomination key `%s' (%s) is valid\n", alias, GNUNET_h2s (&hc)); + TALER_amount_ntoh (&value, + &dki->issue.properties.value); + if ( (GNUNET_OK == + TALER_amount_cmp_currency (&print_dk_amount, + &value)) && + (0 == + TALER_amount_cmp (&print_dk_amount, + &value)) ) + { + char *dh; + struct GNUNET_TIME_Absolute start; + + start = GNUNET_TIME_absolute_ntoh (dki->issue.properties.start); + dh = GNUNET_STRINGS_data_to_string_alloc (&dki->issue.properties.denom_hash, + sizeof (struct GNUNET_HashCode)); + /* output start time first for easy numeric sorting, then + the denomination hash, and finally the human-readable start time */ + printf ("%020llu %s %s\n", + (unsigned long long) start.abs_value_us, + dh, + GNUNET_STRINGS_absolute_time_to_string (start)); + GNUNET_free (dh); + } return GNUNET_OK; } @@ -275,6 +305,11 @@ main (int argc, char *const *argv) { const struct GNUNET_GETOPT_CommandLineOption options[] = { + TALER_getopt_get_amount ('i', + "denomination-info-hash", + "AMOUNT", + "print full denomination hashes of all denominations with the given AMOUNT value", + &print_dk_amount), GNUNET_GETOPT_OPTION_END }; |