commit 89e21002d6e76148904bd96aaf9b2d3f5e5a2da1
parent 90ca90b576149c760a76a58f200aee64c416a6cb
Author: Christian Grothoff <christian@grothoff.org>
Date: Sat, 13 May 2023 20:31:47 +0200
return tipping_allowed from /keys
Diffstat:
4 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/src/exchange/taler-exchange-httpd.h b/src/exchange/taler-exchange-httpd.h
@@ -65,6 +65,11 @@ extern int TEH_check_invariants_flag;
extern int TEH_allow_keys_timetravel;
/**
+ * Option set to #GNUNET_YES if tipping is enabled.
+ */
+extern int TEH_enable_tipping;
+
+/**
* Main directory with revocation data.
*/
extern char *TEH_revocation_directory;
diff --git a/src/exchange/taler-exchange-httpd_keys.c b/src/exchange/taler-exchange-httpd_keys.c
@@ -1857,6 +1857,8 @@ create_krd (struct TEH_KeyStateHandle *ksh,
TEH_currency),
GNUNET_JSON_pack_string ("asset_type",
asset_type),
+ GNUNET_JSON_pack_bool ("tipping_allowed",
+ GNUNET_YES == TEH_enable_tipping),
GNUNET_JSON_pack_data_auto ("master_public_key",
&TEH_master_public_key),
GNUNET_JSON_pack_time_rel ("reserve_closing_delay",
diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h
@@ -366,6 +366,10 @@ struct TALER_EXCHANGE_Keys
*/
char *asset_type;
+ /**
+ * Set to true if tipping is allowed at this exchange.
+ */
+ bool tipping_allowed;
};
diff --git a/src/lib/exchange_api_handle.c b/src/lib/exchange_api_handle.c
@@ -733,6 +733,7 @@ decode_keys_json (const json_t *resp_obj,
struct TALER_ExchangePublicKeyP pub;
const char *currency;
const char *asset_type;
+ bool tipping_allowed = true;
json_t *wblwk = NULL;
struct GNUNET_JSON_Specification mspec[] = {
GNUNET_JSON_spec_fixed_auto ("denominations_sig",
@@ -750,6 +751,10 @@ decode_keys_json (const json_t *resp_obj,
GNUNET_JSON_spec_string ("asset_type",
&asset_type),
GNUNET_JSON_spec_mark_optional (
+ GNUNET_JSON_spec_bool ("tipping_allowed",
+ &tipping_allowed),
+ NULL),
+ GNUNET_JSON_spec_mark_optional (
GNUNET_JSON_spec_json ("wallet_balance_limit_without_kyc",
&wblwk),
NULL),
@@ -819,6 +824,7 @@ decode_keys_json (const json_t *resp_obj,
NULL, NULL));
key_data->currency = GNUNET_strdup (currency);
key_data->asset_type = GNUNET_strdup (asset_type);
+ key_data->tipping_allowed = tipping_allowed;
/* parse the global fees */
{