summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2023-05-13 20:31:47 +0200
committerChristian Grothoff <christian@grothoff.org>2023-05-13 20:31:47 +0200
commit89e21002d6e76148904bd96aaf9b2d3f5e5a2da1 (patch)
tree226b146046cd586eaa8fe8520deedf5789723a0a
parent90ca90b576149c760a76a58f200aee64c416a6cb (diff)
downloadexchange-89e21002d6e76148904bd96aaf9b2d3f5e5a2da1.tar.gz
exchange-89e21002d6e76148904bd96aaf9b2d3f5e5a2da1.tar.bz2
exchange-89e21002d6e76148904bd96aaf9b2d3f5e5a2da1.zip
return tipping_allowed from /keys
-rw-r--r--src/exchange/taler-exchange-httpd.h5
-rw-r--r--src/exchange/taler-exchange-httpd_keys.c2
-rw-r--r--src/include/taler_exchange_service.h4
-rw-r--r--src/lib/exchange_api_handle.c6
4 files changed, 17 insertions, 0 deletions
diff --git a/src/exchange/taler-exchange-httpd.h b/src/exchange/taler-exchange-httpd.h
index 5ab0ea92b..e06807b59 100644
--- 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
index fa87a3b84..b39093ec1 100644
--- 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
index 3769315e8..6d4ca1091 100644
--- 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
index 0e8046305..601b163db 100644
--- 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 */
{