Christian Decker
6706384c50
cln-plugin: Ensure we cleanly shut down when we lose the master conn
2022-03-10 10:21:41 +10:30
Christian Decker
1bd2b8c9f7
cln-plugin: Make notification handlers asynchronous
2022-03-10 10:21:41 +10:30
Christian Decker
af4eed3787
cln-plugin: Make hooks asynchronous
2022-03-10 10:21:41 +10:30
Christian Decker
a7ef38732f
cln-plugin: Make rpcmethod handlers async
2022-03-10 10:21:41 +10:30
Christian Decker
60e773239c
cln-plugin: Add notification subscriptions and hooks to the plugins
...
For now hooks are treated identically to rpcmethods, with the
exception of not being returned in the `getmanifest` call. Later on we
can add typed handlers as well.
2022-03-10 10:21:41 +10:30
Christian Decker
8c6af21169
cln-plugin: Add support for synchronous RPC methods
...
Changelog-Experimental: cln-plugin: Added support for non-async RPC method passthrough (async support coming soon)
2022-03-10 10:21:41 +10:30
Christian Decker
22618a2f94
cln-plugin: Rework the plugin library using a Builder
2022-03-10 10:21:41 +10:30
Christian Decker
fbcb4c33ad
cln-plugin: Populate the options when we get an init
call
2022-03-10 10:21:41 +10:30
Christian Decker
249fa8675a
cln-plugin: Add options to the getmanifest
call
2022-03-10 10:21:41 +10:30
Christian Decker
f5e1829117
cln-plugin: Implement logging facade adapter for cln plugins
...
We wrap emitted messages into a JSON-RPC notification envelope and
write them to stdout. We use an indirection over an mpsc channel in
order to avoid deadlocks if we emit logs while holding the writer lock
on stdout.
2022-03-10 10:21:41 +10:30
Christian Decker
9ae1f33992
cln-plugin: Get started with the plugin interface
2022-03-10 10:21:41 +10:30