core-lightning/plugins
Christian Decker 8898511cf6 cln-plugin: Defer binding the plugin state until after configuring
We had a bit of a chicken-and-egg problem, where we instantiated the
`state` to be managed by the `Plugin` during the very first step when
creating the `Builder`, but then the state might depend on the
configuration we only get later. This would force developers to add
placeholders in the form of `Option` into the state, when really
they'd never be none after configuring.

This defers the binding until after we get the configuration and
cleans up the semantics:

 - `Builder`: declare options, hooks, etc
 - `ConfiguredPlugin`: we have exchanged the handshake with
   `lightningd`, now we can construct the `state` accordingly
 - `Plugin`: Running instance of the plugin

Changelog-Changed: cln-plugin: Moved the state binding to the plugin until after the configuration step
2022-09-25 15:13:12 +02:00
..
bkpr libplugin: avoid memmove if we have many outputs to lightningd. 2022-09-22 15:19:46 +02:00
examples cln-plugin: Defer binding the plugin state until after configuring 2022-09-25 15:13:12 +02:00
grpc-plugin cln-plugin: Defer binding the plugin state until after configuring 2022-09-25 15:13:12 +02:00
spender openingd: Add reserve to fundchannel and multifundchannel 2022-09-21 11:25:47 +02:00
src cln-plugin: Defer binding the plugin state until after configuring 2022-09-25 15:13:12 +02:00
test BOLT: update to version which requires option_channel_htlc_max. 2022-09-24 15:22:27 +09:30
.gitignore bookkeep: first commit, stub of new plugin 2022-07-28 12:08:18 +09:30
autoclean.c lightningd: allow delpay to delete a specific payment. 2022-09-22 15:19:46 +02:00
bcli.c libplugin: mark the cmd notleak() whenever command_still_pending() called. 2022-09-19 11:34:42 +09:30
Cargo.toml cln-plugin: Fix plugin dependencies 2022-07-21 14:19:06 +09:30
chanbackup.c common: clean up json routine locations. 2022-07-15 12:24:00 -05:00
commando.c libplugin: mark the cmd notleak() whenever command_still_pending() called. 2022-09-19 11:34:42 +09:30
fetchinvoice.c offers: remove backwards-compatiblity invoice_request signatures. 2022-09-12 09:34:52 +09:30
funder_policy.c daemons: remove unused functions or make static. 2021-12-06 10:05:39 +10:30
funder_policy.h daemons: remove unused functions or make static. 2021-12-06 10:05:39 +10:30
funder.c memleak: simplify API. 2022-09-19 11:34:42 +09:30
keysend.c keysend: allow extratlvs parameter, even in non-experimental mode. 2022-09-22 17:19:11 +09:30
libplugin-pay.c pay: If the channel_hint matches our allocation allow it 2022-09-21 11:25:47 +02:00
libplugin-pay.h pay: Populate the channel hints with either the scid or the alias 2022-07-04 22:14:06 +02:00
libplugin.c lightningd: allow a connection to specify db batching. 2022-09-22 15:19:46 +02:00
libplugin.h lightningd: allow a connection to specify db batching. 2022-09-22 15:19:46 +02:00
Makefile plugins/Makefile: regenerate plugins list when config changes. 2022-09-16 12:31:45 +09:30
offers_inv_hook.c common: clean up json routine locations. 2022-07-15 12:24:00 -05:00
offers_inv_hook.h connectd: restore obs2 onion support. 2022-03-29 10:55:12 +10:30
offers_invreq_hook.c offers: remove backwards-compatiblity invoice_request signatures. 2022-09-12 09:34:52 +09:30
offers_invreq_hook.h connectd: restore obs2 onion support. 2022-03-29 10:55:12 +10:30
offers_offer.c offers: update to remove "vendor" and "timestamp" fields. 2022-09-12 09:34:52 +09:30
offers_offer.h BOLT12: use point32 instead of pubkey32. 2021-10-08 13:47:30 +02:00
offers.c offers: remove backwards-compatiblity invoice_request signatures. 2022-09-12 09:34:52 +09:30
offers.h common: clean up json routine locations. 2022-07-15 12:24:00 -05:00
pay.c libplugin: mark the cmd notleak() whenever command_still_pending() called. 2022-09-19 11:34:42 +09:30
README.md doc: fix wording in plugins/README.md 2020-01-06 12:57:59 +01:00
topology.c common: assume htlc_maximum_msat, don't check bit any more. 2022-09-24 15:22:27 +09:30
txprepare.c memleak: simplify API. 2022-09-19 11:34:42 +09:30

Plugin Directory

Any file in this directory which is executable and whose name only consists of alphanumeric characters, space, '.', '-' or '_' will be automatically loaded when lightningd starts (unless suppressed with commandline options).