From 6a53cf288b04d14b25df3fefb667946205eab350 Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Thu, 25 Jul 2024 13:13:11 +0200 Subject: [PATCH] libplugin: Add primitive to serialize `channel_hint` to JSON --- plugins/libplugin-pay.c | 12 +++++++++++- plugins/test/run-route-calc.c | 9 +++++++++ plugins/test/run-route-overlong.c | 9 +++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/plugins/libplugin-pay.c b/plugins/libplugin-pay.c index f5b72f56c..eb5bf791a 100644 --- a/plugins/libplugin-pay.c +++ b/plugins/libplugin-pay.c @@ -387,6 +387,16 @@ void payment_start(struct payment *p) payment_start_at_blockheight(p, INVALID_BLOCKHEIGHT); } +static void channel_hint_to_json(const char *name, const struct channel_hint *hint, struct json_stream *dest) +{ + json_object_start(dest, name); + json_add_u32(dest, "timestamp", hint->timestamp); + json_add_short_channel_id_dir(dest, "scid", hint->scid); + json_add_amount_msat(dest, "capacity_msat", hint->estimated_capacity); + json_add_bool(dest, "enabled", hint->enabled); + json_object_end(dest); +} + /** * Notify subscribers of the `channel_hint` topic about a changed hint * @@ -406,7 +416,7 @@ static void channel_hint_notify(struct plugin *plugin, plugin_notification_start(plugin, "channel_hint_update"); /* The timestamp used to decay the observation over time. */ - json_add_u32(js, "timestamp", hint->timestamp); + channel_hint_to_json("channel_hint", hint, js); plugin_notification_end(plugin, js); } diff --git a/plugins/test/run-route-calc.c b/plugins/test/run-route-calc.c index b85ea5858..da73c25a9 100644 --- a/plugins/test/run-route-calc.c +++ b/plugins/test/run-route-calc.c @@ -81,6 +81,10 @@ void json_add_amount_msat(struct json_stream *result UNNEEDED, struct amount_msat msat) { fprintf(stderr, "json_add_amount_msat called!\n"); abort(); } +/* Generated stub for json_add_bool */ +void json_add_bool(struct json_stream *result UNNEEDED, const char *fieldname UNNEEDED, + bool value UNNEEDED) +{ fprintf(stderr, "json_add_bool called!\n"); abort(); } /* Generated stub for json_add_hex_talarr */ void json_add_hex_talarr(struct json_stream *result UNNEEDED, const char *fieldname UNNEEDED, @@ -116,6 +120,11 @@ void json_add_short_channel_id(struct json_stream *response UNNEEDED, const char *fieldname UNNEEDED, struct short_channel_id id UNNEEDED) { fprintf(stderr, "json_add_short_channel_id called!\n"); abort(); } +/* Generated stub for json_add_short_channel_id_dir */ +void json_add_short_channel_id_dir(struct json_stream *response UNNEEDED, + const char *fieldname UNNEEDED, + struct short_channel_id_dir idd UNNEEDED) +{ fprintf(stderr, "json_add_short_channel_id_dir called!\n"); abort(); } /* Generated stub for json_add_string */ void json_add_string(struct json_stream *js UNNEEDED, const char *fieldname UNNEEDED, diff --git a/plugins/test/run-route-overlong.c b/plugins/test/run-route-overlong.c index d2210ac71..4a7d94b3f 100644 --- a/plugins/test/run-route-overlong.c +++ b/plugins/test/run-route-overlong.c @@ -78,6 +78,10 @@ void json_add_amount_msat(struct json_stream *result UNNEEDED, struct amount_msat msat) { fprintf(stderr, "json_add_amount_msat called!\n"); abort(); } +/* Generated stub for json_add_bool */ +void json_add_bool(struct json_stream *result UNNEEDED, const char *fieldname UNNEEDED, + bool value UNNEEDED) +{ fprintf(stderr, "json_add_bool called!\n"); abort(); } /* Generated stub for json_add_hex_talarr */ void json_add_hex_talarr(struct json_stream *result UNNEEDED, const char *fieldname UNNEEDED, @@ -113,6 +117,11 @@ void json_add_short_channel_id(struct json_stream *response UNNEEDED, const char *fieldname UNNEEDED, struct short_channel_id id UNNEEDED) { fprintf(stderr, "json_add_short_channel_id called!\n"); abort(); } +/* Generated stub for json_add_short_channel_id_dir */ +void json_add_short_channel_id_dir(struct json_stream *response UNNEEDED, + const char *fieldname UNNEEDED, + struct short_channel_id_dir idd UNNEEDED) +{ fprintf(stderr, "json_add_short_channel_id_dir called!\n"); abort(); } /* Generated stub for json_add_string */ void json_add_string(struct json_stream *js UNNEEDED, const char *fieldname UNNEEDED,