Browse Source

JSON-RPC: getmanifest passes allow-deprecated-apis flag.

This allows plugins to choose how to present things in getmanifest.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Added: plugins: `getmanifest` may now include "allow-deprecated-apis" boolean flag.
Changelog-Deprecated: plugins: `getmanifest` without any parameters; plugins should accept any parameters for future use.
bump-pyln-proto
Rusty Russell 4 years ago
parent
commit
151bc47583
  1. 2
      contrib/plugins/fail/failtimeout.py
  2. 7
      doc/PLUGINS.md
  3. 3
      lightningd/plugin.c

2
contrib/plugins/fail/failtimeout.py

@ -8,7 +8,7 @@ import sys
import time
def json_getmanifest(request):
def json_getmanifest(request, **kwargs):
# Timeout is 60 seconds, so wait more
time.sleep(61)
return {

7
doc/PLUGINS.md

@ -57,9 +57,10 @@ interface.
### The `getmanifest` method
The `getmanifest` method is required for all plugins and will be called on
startup without any params. It MUST return a JSON object similar to
this example:
The `getmanifest` method is required for all plugins and will be
called on startup with optionsl parameters (in particular, it may have
`allow-deprecated-apis: false`, but you should accept others). It
MUST return a JSON object similar to this example:
```json
{

3
lightningd/plugin.c

@ -1285,6 +1285,9 @@ const char *plugin_send_getmanifest(struct plugin *p)
p->stdin_conn = io_new_conn(p, stdin, plugin_stdin_conn_init, p);
req = jsonrpc_request_start(p, "getmanifest", p->log,
plugin_manifest_cb, p);
/* Adding allow-deprecated-apis is part of the deprecation cycle! */
if (!deprecated_apis)
json_add_bool(req->stream, "allow-deprecated-apis", deprecated_apis);
jsonrpc_request_end(req);
plugin_request_send(p, req);
p->plugin_state = AWAITING_GETMANIFEST_RESPONSE;

Loading…
Cancel
Save