mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-21 14:24:09 +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,
|
||||
struct json_stream *s)
|
||||
{
|
||||
const jsmntok_t *tok;
|
||||
size_t i;
|
||||
char *key;
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ plugin = Plugin()
|
|||
|
||||
@plugin.hook("rpc_command")
|
||||
def on_rpc_command(plugin, rpc_command, **kwargs):
|
||||
request = rpc_command["rpc_command"]
|
||||
request = rpc_command
|
||||
if request["method"] == "invoice":
|
||||
# Replace part of this command
|
||||
request["params"]["description"] = "A plugin modified this description"
|
||||
|
|
Loading…
Add table
Reference in a new issue