mirror of
https://github.com/aljazceru/lightning.git
synced 2026-01-11 01:54:25 +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:
committed by
Rusty Russell
parent
15ca3b615f
commit
d2688bbaf5
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user