diff --git a/doc/PLUGINS.md b/doc/PLUGINS.md index 7e3c92454..a6eac78be 100644 --- a/doc/PLUGINS.md +++ b/doc/PLUGINS.md @@ -683,6 +683,71 @@ processed before the HTLC was forwarded, failed, or resolved, then the plugin may see the same HTLC again during startup. It is therefore paramount that the plugin is idempotent if it talks to an external system. + +#### `rpc_command` + +The `rpc_command` hook allows a plugin to take over any RPC command. It sends +the received JSON-RPC request to the registered plugin, + +```json +{ + "rpc_command": { + "method": "method_name", + "params": { + "param_1": [], + "param_2": {}, + "param_n": "", + } + } +} +``` + +which can in turn: + +Let `lightningd` execute the command with + +```json +{ + "continue": true +} +``` +Replace the request made to `lightningd`: + +```json +{ + "replace": { + "method": "method_name", + "params": { + "param_1": [], + "param_2": {}, + "param_n": "", + } + } +} +``` + +Return a custom response to the request sender: + +```json +{ + "return": { + "result": { + } + } +} +``` + +Return a custom error to the request sender: + +```json +{ + "return": { + "error": { + } + } +} +``` + [jsonrpc-spec]: https://www.jsonrpc.org/specification [jsonrpc-notification-spec]: https://www.jsonrpc.org/specification#notification [bolt4]: https://github.com/lightningnetwork/lightning-rfc/blob/master/04-onion-routing.md