mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-22 14:42:40 +01:00
plugin: Unwrap the rpc_command payload
We were nesting like the following: ```json {"params": { "rpc_command": { "rpc_command": { } } } ``` This is really excessive, so we unwrap once, and now have the following: ```json {"params": { "rpc_command": { } } ``` Still more wrapping than necessary (the method is repeated in the `params` object), but it's getting closer. Changelog-Deprecated: JSON-RPC: Removed double wrapping of `rpc_command` payload in `rpc_command` JSON field. Suggested-by: @fiatjaf Signed-off-by: Christian Decker <@cdecker>
This commit is contained in:
parent
15ca3b615f
commit
d2688bbaf5
2 changed files with 16 additions and 2 deletions
|
@ -611,8 +611,22 @@ struct rpc_command_hook_payload {
|
||||||
static void rpc_command_hook_serialize(struct rpc_command_hook_payload *p,
|
static void rpc_command_hook_serialize(struct rpc_command_hook_payload *p,
|
||||||
struct json_stream *s)
|
struct json_stream *s)
|
||||||
{
|
{
|
||||||
|
const jsmntok_t *tok;
|
||||||
|
size_t i;
|
||||||
|
char *key;
|
||||||
json_object_start(s, "rpc_command");
|
json_object_start(s, "rpc_command");
|
||||||
json_add_tok(s, "rpc_command", p->request, p->buffer);
|
|
||||||
|
#ifdef COMPAT_V081
|
||||||
|
if (deprecated_apis)
|
||||||
|
json_add_tok(s, "rpc_command", p->request, p->buffer);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
json_for_each_obj(i, tok, p->request) {
|
||||||
|
key = tal_strndup(NULL, p->buffer + tok->start,
|
||||||
|
tok->end - tok->start);
|
||||||
|
json_add_tok(s, key, tok + 1, p->buffer);
|
||||||
|
tal_free(key);
|
||||||
|
}
|
||||||
json_object_end(s);
|
json_object_end(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ plugin = Plugin()
|
||||||
|
|
||||||
@plugin.hook("rpc_command")
|
@plugin.hook("rpc_command")
|
||||||
def on_rpc_command(plugin, rpc_command, **kwargs):
|
def on_rpc_command(plugin, rpc_command, **kwargs):
|
||||||
request = rpc_command["rpc_command"]
|
request = rpc_command
|
||||||
if request["method"] == "invoice":
|
if request["method"] == "invoice":
|
||||||
# Replace part of this command
|
# Replace part of this command
|
||||||
request["params"]["description"] = "A plugin modified this description"
|
request["params"]["description"] = "A plugin modified this description"
|
||||||
|
|
Loading…
Add table
Reference in a new issue