Proto commits in ElementsProject/lightning

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:ff9e556
Author:Níckolas Goline
Committer:Níckolas Goline

common: add `OPT_SIMPLE_CLOSE` feature bit (60/61) features.h: Reserves bits 60/61 for `option_simple_close` per BOLT2. features.c: Add `OPT_SIMPLE_CLOSE` to `feature_styles[]` and declare the correct `feature_name`. tests/test_closing.py: Update options on `test_simple_close_...` to include `{experimental-simple-close: None}`. lightningd/options.c: Register noarg option for simple close. doc/schemas/listconfigs.json: add `experimental-simple-close` to config targeting v26.08. doc/lightningd-config.5.md: Specify `experimental-simple-close` option. contrib/pyln-testing/pyln/testing/utils.py: Allow setting `EXPERIMENTAL_SIMPLE_CLOSE` on tests. Generated files after modifying sources.

The documentation is generated from this commit.

Commit:46b039d
Author:daywalker90
Committer:daywalker90

schemas: add offer_id to invoice_creation notification Also partially reverts f96099691bee5df41c4ce87f396bcabad0d547d3 which was not properly rebased Changelog-None

Commit:11b8324
Author:daywalker90
Committer:Madeline

msggen: fix non-determinism edge case After adding back some fields in 62d1e3e405f722e7363d8e8dbc427039a12c421a there is one field that was in a different place sometimes in node.proto: DecodeInvoicePathsPath Changelog-None

Commit:62d1e3e
Author:daywalker90
Committer:Rusty Russell

msggen: remove most omits and generate them instead Changelog-None

Commit:b2fc984
Author:daywalker90
Committer:Rusty Russell

schemas: remove obsolete fields in decode

Commit:aeab451
Author:daywalker90
Committer:daywalker90

msggen: add createproof, xkeysend and graceful generation Fixed UnionField added and deprecated propagation New primitive ProofField for createproof Changelog-None

Commit:938bdea
Author:daywalker90
Committer:Madeline

schemas: remove old deprecations, add missing deprecations/added fields Also made fields not go optional if they are deprecated in the case that their parent is also deprecated. This makes more sense imo when you deprecate a whole command. I added deprecation annotation for the .proto file as well so that later in the convert.rs file it properly annotates everything to allow for deprecated stuff. Also fixed one propagation bug for the added/deprecated fields, that's why there are some additional changes of some fields. Changelog-None

Commit:4f8b041
Author:enaples
Committer:daywalker90

schemas: added `source` field to `currencyrate` Changelog-Added: `currencyrate` can now take a `source` argument to get the rate of a specific source

Commit:bd71651
Author:Lagrang3
Committer:Rusty Russell

xpay: add sendamount command Changelog-Added: sendamount command, to make a payment specifying the desired amount to send instead of the amount to be received. Signed-off-by: Lagrang3 <lagrang3@protonmail.com>

Commit:902242b
Author:Lagrang3
Committer:Rusty Russell

askrene: askrene-remove-channel-update Changelog-Added: askrene: askrene-remove-channel-update, a new RPC to remove channel_update entries from layers. Signed-off-by: Lagrang3 <lagrang3@protonmail.com>

Commit:e9fee87
Author:wqxoxo
Committer:Rusty Russell

setconfig: fix crash on dynamic multi-value plugin options We had an assert(!(ot->type & OPT_MULTI)) which crashed when using setconfig on a plugin option marked as both dynamic and multi. The fix changes plugin_set_dynamic_opt to accept an array of values (scalar options pass a 1-element array, multi options pass the complete set). For multi options, setconfig replaces ALL values atomically - an empty array clears them. Fixes: #8295 Changelog-Fixed: setconfig no longer crashes on dynamic multi-value plugin options

Commit:8dd682d
Author:Rusty Russell
Committer:Rusty Russell

sendpay: ignore unknown `route` fields, but take the `getroutes`-style ones. Changelog-Added: JSON-RPC: `sendpay` now accepts one of the `paths` returned from `getroutes` as its `route` parameter. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:6206d02
Author:Rusty Russell
Committer:Rusty Russell

getroutes: return more detailed fields in routes[]. This reflects a long-standing complaint from @lagrang3 when the API was first implemented, and I should have listened. In particular, the impedance mismatch with the sendpay API is annoying. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Added: JSON-RPC: `getroutes` `route` explicit fields `node_id_in`, `node_id_out`, `amount_in_msat`, `amount_out_msat`, `cltv_in`, `cltv_out`.

Commit:72f4cae
Author:Rusty Russell
Committer:Rusty Russell

xpay: add a CLTV shadow for single non-blinded paths. BOLT 7 recommends this. pay did it: in fact, pay would also add sats, but that's much more difficult and fraught, so only do CLTV. Changelog-Added: Protocol: `xpay` now uses shadow CLTV additions to help mask final destination as per BOLT 7. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:1a9631c
Author:Rusty Russell
Committer:Rusty Russell

xpay: add `label` and `localinvreqid` params This bring us closer to pay parity, and `localinvreq` is needed for invoicerequest payments. Changelog-Added: JSON-RPC: `xpay` now accepts `label` and `localinvreqid` parameters (like `pay`). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:eb4655c
Author:Rusty Russell
Committer:Rusty Russell

injectpaymentonion: add explicit `destination` option. This allows us to correctly annotate the destination in listsendpays even if invstring isn't set (xkeysend). Changelog-Added: JSON-RPC: `injectpaymentonion` parameter `destination`. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:bf55e58
Author:Rusty Russell
Committer:Rusty Russell

decode / bolt12-cli: add missing invreq_recurrence_cancel field. We missed this. It's experimental, so no changelog needed. Spotted-by: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:d477db4
Author:Vincenzo Palazzo
Committer:Rusty Russell

common: add bolt12 payer proof support (decode) [Adapted for my decode routines --RR] Changelog-EXPERIMENTAL: JSON-RPC: `decode` now supports the `lnp` payer proof format.

Commit:98ba9eb
Author:Aditya Sharma
Committer:Sangbida

chanbackup: make getemergencyrecoverdata rpc more verbose Adding more information to geremergencyrecoverdata, to let users know if they are using legacy file format and the list of all the backed up channel ids. Key Changes: - Added: 1. can_create_penalty: To let user know if they need to update the file. 2. backed_up_channel_ids: List of all the backed up channels Changelog-Changed: Made getemergencyrecoverdata more verbose.

Commit:842a8f3
Author:daywalker90
Committer:daywalker90

crates: add JsonObjectOrArray and JsonScalar types for raw json rpc parameters We use it later for the `rpc_command` hook Changelog-None

Commit:9b128d6
Author:daywalker90
Committer:Sangbida

msggen: add bkpr-report rpc method Changelog-None

Commit:fabf4e8
Author:daywalker90
Committer:Sangbida

msggen: add `splicein` and `spliceout` rpc methods Changelog-None

Commit:8b6374e
Author:Peter Neuroth
Committer:Sangbida

msggen: generate native notification bindings from schemas Expand the native notification list consumed by msggen and regenerate the Rust and gRPC outputs for the documented notification schemas. This wires the new schema-backed native notifications through cln-rpc, cln-grpc, and the bundled msggen schema metadata. Keep the temporary xpay-prefixed plugin notifications out of generation for now. coin_movement.extra_tags remains a repeated string in the generated gRPC surface for now because msggen does not currently emit enums nested under repeated array items correctly. Changelog-Changed: cln-rpc and cln-grpc now expose notification bindings for balance_snapshot, coin_movement, deprecated_oneshot, disconnect, forward_event, invoice_creation, invoice_payment, log, onionmessage_forward_fail, openchannel_peer_sigs, plugin_started, plugin_stopped, sendpay_failure, sendpay_success, shutdown, and warning. msggen: generate xpay notification bindings Treat xpay as a built-in plugin for notification generation and include its documented notification schemas in the msggen output. This extends the generated cln-rpc and cln-grpc notification surfaces with the flat xpay schema files, while exposing the actual notification names `pay_part_start` and `pay_part_end` in generated APIs. Changelog-Changed: cln-rpc and cln-grpc now expose xpay notification bindings for `pay_part_start` and `pay_part_end`.

Commit:c5eb02b
Author:Rusty Russell
Committer:Rusty Russell

createonion: add `force_paths` parameter. We simply store it in the db, and return it with `listoffers` for now. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:b4a9dc5
Author:daywalker90
Committer:Christian Decker

schemas: make `direction` in `listpeerchannels` a u32 everywhere else it's a u32 aswell, an `integer` makes it a i64 but possible values are only 0 and 1 Changelog-None

Commit:9824cb6
Author:Rusty Russell
Committer:Sangbida

msggen: add currencyconvert, currencyrate and listcurrencyrates. I used daywalker's hack to patch.py to make this work: ``` if f.added is None and 'added' not in m: m['added'] = 'v26.04' ``` Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:0ced9a8
Author:Rusty Russell
Committer:Sangbida

bookeeper: add currencyrate to bkpr-listaccounts if we recorded it. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:420f266
Author:Dusty Daemon
Committer:Sangbida

ld: Expose splice feerate to RPC Adds the new `splice` feerate to the RPC

Commit:f755313
Author:Lagrang3
Committer:Rusty Russell

askrene-unreserve: add dev_remove_all option Changelog-None Signed-off-by: Lagrang3 <lagrang3@protonmail.com>

Commit:c25183f
Author:daywalker90
Committer:Sangbida

msggen: raise oldest supported version to v24.11

Commit:2044a91
Author:daywalker90
Committer:Sangbida

msggen: propagate added and deprecated fields Whenever we want to add a new rpc command or notification in msggen's `util.py` we get an error during `make` that the `added` field of that new command or notification is missing even when it's clearly not. We had to uncomment 2 lines in `patch.py` and override any missing `added` annotation to get it running. We now pass any `added` or `deprecated` fields from the parent object correctly so we no longer have to do this. Unfortunately we have commited wrong metadata to `.msggen.json` in the past. This commit also includes missing `added` annotation for commands added after the `pre-v0.10.1` cutoff and manual fixes of the metadata in `.msggen.json`

Commit:db1ad9c
Author:Rusty Russell
Committer:Rusty Russell

currencyrate: rename to cln-currencyrate, change options to currencyrate-add/disable-source. @daywalker90's was a little *too* faithful a reimplementation of the Python one! Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:09585ee
Author:daywalker90
Committer:Rusty Russell

currencyrate: new rust plugin to provide the `currencyconvert` API Changelog-Added: new plugin currencyrate to provide `currrencyconvert` API

Commit:2971f5d
Author:Peter Neuroth
Committer:Christian Decker

lightningd: add channel_id filter to listpeerchannels Sometimes we don't know the short_channel_id yet (e.g the channel has not been broadcasted), but we still know the channel_id from the funding transaction. Add a channel_id filter to listpeerchannels and clarify that id, short_channel_id and channel_id are mutually exclusive. Changelog-Added: `listpeerchannels` now accepts a `channel_id` filter, for cases where the `short_channel_id` is not known yet. Signed-off-by: Peter Neuroth <pet.v.ne@gmail.com>

Commit:64e4519
Author:Rusty Russell
Committer:Rusty Russell

offers: allow explicit fronting nodes for an offer. The next commit makes us honor these when issuing a payment. Changelog-Added: JSON-RPC: `offer` now has a `fronting_nodes` option to specify neighbors for payer to use to fetch invoices and make payments. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:9831467
Author:Rusty Russell
Committer:Rusty Russell

lightningd: remove tx and txid fields from close response. Changelog-Removed: JSON-RPC: `close` `tx` and `txid` field (use `txs` and `txids`), deprecated v24.11. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:592f858
Author:Rusty Russell
Committer:Rusty Russell

lightningd: remove `decodepay`. Changelog-Removed: JSON-RPC: `decodepay` (use `decode`), deprecated v24.11. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:d03cf82
Author:daywalker90
Committer:Rusty Russell

clnrest: add clnrest-register-path method for dynamic paths Changelog-Added: clnrest: add clnrest-register-path rpc method to register dynamic paths

Commit:54af71c
Author:ShahanaFarooqui
Committer:ShahanaFarooqui

doc: Added doc schemas with description and update proto

Commit:bcdce8f
Author:nazarevsky
Committer:ShahanaFarooqui

cln-rpc: update schema, update proto for xpay payer_note field

Commit:98a188b
Author:Rusty Russell
Committer:Christian Decker

doc: document the direction field in listpeerchannels. We mentioned it in the schema (so it was allowed), but we didn't document it! Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:62ee437
Author:Rusty Russell
Committer:Rusty Russell

askrene: add optional layers to reservations. We have the issue of aliases: xpay uses scids like 0x0x0 for routehints and blinded paths, and then can apply reservations to them. But generally, reservations are *global*, so we need to differentiate. Changelog-Added: Plugins: `askrene-reserve` and `askrene-unreserve` can take an optional `layer` inside `path` elements. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:ea0b804
Author:Rusty Russell
Committer:Rusty Russell

doc: include delnetworkevent in generated documentation, and grpc. Also added missing "added" annotation. This meant that I had to manually change contrib/msggen/msggen/patch.py to insert that added notation where it was missing from .msggen.json. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-None: introduced this release.

Commit:d125b3c
Author:daywalker90
Committer:Rusty Russell

msggen: add missing methods from v25.12 Changelog-None

Commit:ab73388
Author:daywalker90
Committer:Rusty Russell

msggen: add missing methods from v25.09

Commit:b74d32f
Author:Rusty Russell
Committer:Rusty Russell

lightningd: add withhold option to fundchannel_complete. This is just a polite way of telling us that if we close, don't bother broadcasting since we didn't broadcast the funding tx. Changelog-Added: JSON-RPC: `fundchannel_complete` new parameter `withhold` (default false). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:3934996
Author:Rusty Russell
Committer:Rusty Russell

lightningd: add withheld flag to listpeerchannels and listclosedchannels. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Added: JSON-RPC: `listpeerchannels` `funding` object `withheld` flag, and `listclosedchannels` `funding_withheld` flags, indicating fundchannel_complete was called with the `withheld` parameter true.

Commit:cbfe1a9
Author:Matt Whitlock
Committer:Rusty Russell

lightningd: notify plugins when finalizing channel Changelog-Added: Plugins now receive `channel_state_changed` notification upon final change to `CLOSED` state.

Commit:1102d80
Author:Rusty Russell
Committer:Rusty Russell

askrene: add optional layers to reservations. We have the issue of aliases: xpay uses scids like 0x0x0 for routehints and blinded paths, and then can apply reservations to them. But generally, reservations are *global*, so we need to differentiate. Changelog-Added: Plugins: `askrene-reserve` and `askrene-unreserve` can take an optional `layer` inside `path` elements. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:4f1c880
Author:Lagrang3
Committer:Rusty Russell

askrene: add askrene-bias-node rpc Changelog-Added: askrene-bias-node: an RPC command to set a bias on node's outgoing or incoming channels. Signed-off-by: Lagrang3 <lagrang3@protonmail.com>

Commit:5769beb
Author:Lagrang3
Committer:Rusty Russell

askrene: add timestamp to biases We add one more field to biases: "timestamp". With the timestamp variable old biases can be removed with the askrene-age command. Changelog-Added: Plugins: askrene channel biases now have an associated timestamp, and are timed out by askrene-age Signed-off-by: Lagrang3 <lagrang3@protonmail.com>

Commit:e9f3aaf
Author:daywalker90
Committer:Rusty Russell

docs: fix htlc states description regarding direction Changelog-None

Commit:ec05e5d
Author:Rusty Russell
Committer:Rusty Russell

autoclean: clean network events (30 days by default). We also document this in the listnetworkevents command itself. The test_autoclean_once was getting repetitive, so I cleaned that up too. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Added: `autoclean` will remove networkevents after 30 days by default.

Commit:3b33294
Author:Rusty Russell
Committer:Rusty Russell

lightningd: implement listnetworkevents. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:de9c630
Author:Sangbida Chaudhuri
Committer:Rusty Russell

exposesecret: Add support for mnemonic-based HSM secrets Update the exposesecret plugin to work with the new unified HSM secret format that supports BIP39 mnemonics. Changelog-Added - exposesecret now has a mnemonic field

Commit:54444e4
Author:Rusty Russell
Committer:Rusty Russell

BOLT12: Update recurrence to latest spec draft. Changes: * Fields renumbered to their draft values + billion. * offer_recurrence now comes in compulsory or optional (backwards compat) flavors. * `proportional_amount` is now inside `offer_recurrence_base` not `offer_recurrence_paywindow`. * New field `invreq_recurrence_cancel`. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-EXPERIMENTAL: Draft specification for recurring offers changed: old recurring offers will no longer work.

Commit:e7ea57e
Author:Rusty Russell
Committer:Rusty Russell

BOLT12: Remove `start_any_period` from recurrence_base. Offer_absolute_expiry should be used if you want to require starting at the start. Changelog-EXPERIMENTAL: Protocol: BOLT 12 recurrence `start_any_period` removed, use expiry if you need to restrict when they can start using the offer.

Commit:6c626b1
Author:Rusty Russell
Committer:Rusty Russell

lightningd: add chainmoves and channelmoves to wait command. Only makes sense to wait on creation, since they neither are deleted nor updated. We also enhance the list commands to take the standard index options. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Added: JSON-RPC: `wait`: new subsystems `chainmoves` and `channelmoves`.

Commit:9680404
Author:Rusty Russell
Committer:Rusty Russell

doc/schemas: add websocket to type in doc/schemas/notification/connect.json This is done by tests/test_connection.py::test_websocket: ``` { "jsonrpc": "2.0", "method": "connect", "params": { "connect": { "id": "031b84c5567b126440995d3ed5aaba0565d71e1834604819ff9c17f5e9d5dd078f", "direction": "in", "address": { "type": "websocket", "subtype": "ipv4", "address": "127.0.0.1", "port": 59412 } } } } ``` Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:a686bda
Author:Rusty Russell
Committer:Rusty Russell

lightningd: deprecate `null` short_channel_id and `unknown` old_state in channel_state_changed notification We always prefer to omit fields rather than use 'null' (or unknown!). Note that before this, the schema was broken, so we have to put a special exemption in for that case. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:0c5c7a5
Author:Lagrang3
Committer:Rusty Russell

askrene: add maxparts Changelog-Added: askrene: add a new parameter maxparts to getroutes that limits the number of routes in the solution. Signed-off-by: Lagrang3 <lagrang3@protonmail.com>

Commit:e3e4116
Author:daywalker90
Committer:Rusty Russell

cln-bip353: add plugin that fetches payment instructions from human readable addresses Changelog-Add: new plugin cln-bip353 that can fetch BIP-353 payment instructions from human readable addresses

Commit:529337a
Author:daywalker90
Committer:Christian Decker

msggen: add signmessagewithkey Changelog-None

Commit:a90de8d
Author:Lagrang3
Committer:Rusty Russell

sendonion: add total_amount_msat parameter Changelog-Added: sendonion: a new paramter total_amount_msat to make MPP payments with sendpay and sendonion compatible. [ Reordered to put new parameter at the end --RR ] Signed-off-by: Lagrang3 <lagrang3@protonmail.com>

Commit:e20efa1
Author:Rusty Russell
Committer:Rusty Russell

msggen: regenerate. Somehow GitHub's "Enable auto-merge" merged the PR without it actually passing. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:c81ec4f
Author:Rusty Russell
Committer:Rusty Russell

lightningd: deprecate (undocumented!) "unknown" old_state field in channel_state_changed notification. Reported-by: daywalker90 Changelog-Deprecated: JSON-RPC: channel_state_changed notification field `old_state` value "unknown" (it will be omitted, instead) Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:6bf3691
Author:Rusty Russell
Committer:Rusty Russell

lightningd: support index/start/end pagination for listhtlcs. Changelog-Added: JSON-RPC: `listhtlcs` supports `index`, `start` and `end` parameters for pagination support. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:7ba6263
Author:Rusty Russell
Committer:Rusty Russell

lightningd: add created_index and updated_index to listhtlcs. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Added: JSON-RPC: `listhtlcs` has `created_index` and `updated_index` fields.

Commit:9636553
Author:Rusty Russell
Committer:Rusty Russell

lightningd: wait interface for htlcs indexes. Note that documentation says invoice expiries can batch, but that's no longer true, so delete it. Usually, we miss a number because the change is too fast. This adds the wait interface, but it doesn't actually fire until the next commit, which wires it into the db code. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Added: JSON-RPC: `wait` now supports the `htlcs` (`listhtlcs`) subsystem.

Commit:db104aa
Author:Rusty Russell
Committer:Rusty Russell

lightningd: improve wait API by making details fields per-subsystem. It makes the schema simpler, and indeed, expressable by GRPC. Changelog-Added: JSON-RPC: `wait` now has separate `invoices`, `forwards` and `sendpays` objects for each subsystem. Changelog-Deprecated: JSON-RPC: `wait` reply `details` object: use subsytem specific object instead. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:8974375
Author:Rusty Russell
Committer:Rusty Russell

lightningd: add `short_channel_id` option to listpeerchannels. Requested-by: @whitslack Closes: https://github.com/ElementsProject/lightning/issues/8233 Changelog-Added: JSON-RPC: `listpeerchannels` now has a `short_channel_id` parameter for just listing a specific channel. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:f285284
Author:Rusty Russell
Committer:Rusty Russell

lightningd: remove accept-htlc-tlv-types. Changelog-Removed: accept-htlc-tlv-types (deprecated v23.08, disabled by default in v24.11). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:3e46103
Author:daywalker90
Committer:Alex Myers

msggen: add InjectOnionMessage Changelog-None

Commit:5dab24f
Author:daywalker90
Committer:Alex Myers

msggen: add channel_state_changed notification Changelog-None

Commit:05f0100
Author:daywalker90
Committer:Alex Myers

msggen: comply with grpc and rust naming conventions Changelog-Changed: Some enums, structs, functions in pyln-grpc-proto/cln-grpc/cln-rpc have been slightly renamed so they follow grpc and rust's naming convention

Commit:5a80223
Author:Rusty Russell
Committer:Rusty Russell

setconfig: add transient option. Changelog-Added: JSON-RPC: `setconfig` now has a `transient` flag which means it won't rewrite your config file. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:fe4d503
Author:Lagrang3
Committer:Alex Myers

add max_htlc_value_in_flight_msat to listpeerchan Changelog-Added: JSON-RPC: `listpeerchannels` new output fields `their_max_total_htlc_out_msat` and `our_max_total_htlc_out_msat` as the value of `max_htlc_value_in_flight` (as of BOLT02) set by the local and remote nodes on channel creation. Changelog-Deprecated: JSON-RPC: `listpeerchannels` value `max_total_htlc_in_msat`: use `our_max_total_htlc_out_msat` instead to follow spec naming convention.

Commit:ba3e85b
Author:Rusty Russell
Committer:Alex Myers

decode: handle new bip353 fields. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:c22cc11
Author:Rusty Russell
Committer:Alex Myers

fetchinvoice: allow user to specify bip353 name corresponding to how they got offer. Changelog-Added: JSON-RPC: `fetchinvoice` BIP 353 name support (`bip353`). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:b78b323
Author:Rusty Russell
Committer:Alex Myers

lightningd: implement unblacklist. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Added: JSON-RPC: `blacklistrune` now has an option to un-blacklist (`relist`).

Commit:060368b
Author:michael1011
Committer:ShahanaFarooqui

xpay: add maxdelay parameter Changelog-Added: Plugins: `xpay` now supports a `maxdelay` parameter for better `xpay-handle-pay` compatibility.

Commit:cf0bd39
Author:Rusty Russell
Committer:Rusty Russell

injectpaymentionion: allow specification of actual amount which reaches destination. This appears in listsendpays / listpays, and is useful information (if we know!). This doesn't fix old payments, but means that xpay can use this for new payments. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:6311a54
Author:Rusty Russell
Committer:Rusty Russell

doc: fix injectpaymentonion schema. I used an unknown arg and it didn't complain. injectpaymentonion's schema predated the sweep which fixed up use of "additionalProperties". Indeed, we were missing some properties! Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:aaca16d
Author:Rusty Russell
Committer:Rusty Russell

doc: fix injectpaymentonion schema. I used an unknown arg and it didn't complain. injectpaymentonion's schema predated the sweep which fixed up use of "additionalProperties". Indeed, we were missing some properties! Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:80c43ec
Author:Rusty Russell
Committer:Rusty Russell

injectpaymentionion: allow specification of actual amount which reaches destination. This appears in listsendpays / listpays, and is useful information (if we know!). This doesn't fix old payments, but means that xpay can use this for new payments. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Commit:2ba05ef
Author:daywalker90
Committer:Rusty Russell

msggen: add missing rpc commands new to 24.11 Changelog-None

Commit:dc878dc
Author:Alex Myers
Committer:Rusty Russell

lightningd: add option for minimum seeker autoconnect peers Changelog-added: Added option --autoconnect-seeker-peers, allowing seeker to reach out to new nodes for additional gossip.

Commit:6f0dbbb
Author:Vincenzo Palazzo
Committer:Vincenzo Palazzo

bolt12: allow to inject payer_metadata Payer metadata is a field that controls the payer ID provided during the fetchinvoice process. There are use cases where this is highly useful, such as proving that the payer has paid for the correct item. Imagine visiting a merchant's website to pay for multiple offers, where one of these offers is a default offer (with no description and no set amount). In this scenario, the merchant could claim not to have received payment for a specific item. Since the same offer may be used to fetch invoices for different products, there needs to be a way to identify which product the invoice corresponds to. With this commit, it will be possible to inject payer metadata, which helps solve the issue described above. For example, possible payer metadata could be `to_hex(b"{payer_node_id}.{product_id}.{created_at}")`. Changelog-Added: JSON-RPC: `fetchinvoice` allows setting invreq_metadata via `payer_metadata` parameter. Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>

Commit:809f3b0
Author:Dusty Daemon
Committer:Rusty Russell

close: Print multiple txs; Fixes #6467 Changelog-Changed: `close` now outputs txs & txids of all closing transactions (splice candidates can cause there to be multiple).

Commit:c4e67c0
Author:daywalker90
Committer:Vincenzo Palazzo

add listing options to listpays Changelog-Added: JSON-RPC: `listpays` has `index`, `start` and `limit` parameters for listing control.

Commit:73ad8ea
Author:Dusty Daemon
Committer:Rusty Russell

splice: Allow splice_update to return signatures This is needed to all multi-channel splices. When channeld can return the signatures to the user (based on signing order precedent), it now does from splice_update. Additionally, we move sending of the initial psbt from splice_init down to splice_update. This is also necessary for correct psbt diff detection during multi-channel splices. Changelog-Changed: splice_update can in some cases now return the remotely partiall signed psbt to the user, if so `signtures_secured` will be true.

Commit:b03f299
Author:Dusty Daemon
Committer:Rusty Russell

splice: Modify splice_signed to work with multiple channels `splice_signed` now searchs the PSBT for channel ids Changelog-Changed: `splice_signed` parameters are switched in order to make `channel_id` an optional parameter, enabling multi-splice-signatures.

Commit:7b2c791
Author:Rusty Russell
Committer:Rusty Russell

doc: fix up missing fields from schemas. This allows the next patch (which makes the schemas stricter) to not break our tests. We add some missing fields (including dev fields, but they're empty and hidden), and add a few minor clarifications and a spelling fix. Most of these are new schemas for this release, so no mention in Changelog. Here is the difference in the man pages: --- doc/lightning-askrene-inform-channel.7.md.old 2024-10-29 17:33:07.714521584 +1030 +++ doc/lightning-askrene-inform-channel.7.md 2024-10-29 17:42:37.434280109 +1030 @@ -24,6 +24,8 @@ - **short\_channel\_id\_dir** (short\_channel\_id\_dir): The short channel id and direction +- **layer** (string): The name of the layer to apply this change to. +- **timestamp** (u64): The UNIX timestamp when this constraint was created. - **maximum\_msat** (msat, optional): The maximum value which this channel could pass. --- doc/lightning-askrene-listlayers.7.md.old 2024-10-29 17:33:07.716521571 +1030 +++ doc/lightning-askrene-listlayers.7.md 2024-10-29 17:42:37.424280316 +1030 @@ -29,13 +29,16 @@ - **channel\_updates** (array of objects): + - **short\_channel\_id\_dir** (short\_channel\_id\_dir): The short channel id and direction this update applies to. + - **enabled** (boolean, optional): True if this can be used, false otherwise. - **htlc\_minimum\_msat** (msat, optional): The minimum value allowed in this direction. - **htlc\_maximum\_msat** (msat, optional): The maximum value allowed in this direction. - **fee\_base\_msat** (msat, optional): The base fee to apply to use the channel in this direction. - **fee\_proportional\_millionths** (u32, optional): The proportional fee (in parts per million) to apply to use the channel in this direction. - - **delay** (u16, optional): The CLTV delay required for this direction. + - **cltv\_expiry\_delta** (u16, optional): The CLTV delay required for this direction. - **constraints** (array of objects): - **short\_channel\_id\_dir** (short\_channel\_id\_dir): The short channel id and direction + - **timestamp** (u64, optional): The UNIX timestamp when this constraint was created. - **maximum\_msat** (msat, optional): The maximum value which this channel could pass. --- doc/lightning-askrene-listreservations.7.md.old 2024-10-29 17:33:07.719521550 +1030 +++ doc/lightning-askrene-listreservations.7.md 2024-10-29 17:42:37.428280233 +1030 @@ -16,7 +16,7 @@ -On success, an object containing **layers** is returned. It is an array of objects, where each object contains: +On success, an object containing **reservations** is returned. It is an array of objects, where each object contains: --- doc/lightning-autoclean-status.7.md.old 2024-10-29 17:33:07.732521462 +1030 +++ doc/lightning-autoclean-status.7.md 2024-10-29 17:42:37.441279965 +1030 @@ -9,7 +9,7 @@ -The **autoclean-status** RPC command tells you about the status of the autclean plugin, optionally for only one subsystem. +The **autoclean-status** RPC command tells you about the status of the autoclean plugin, optionally for only one subsystem. --- doc/lightning-renepay.7.md.old 2024-10-29 17:33:07.927520140 +1030 +++ doc/lightning-renepay.7.md 2024-10-29 17:42:37.996268504 +1030 @@ -58,6 +58,9 @@ - **status** (string) (one of "complete", "pending", "failed"): Status of payment. +- **bolt11** (string, optional): The bolt11 invoice paid. *(added v23.08)* +- **bolt12** (string, optional): The bolt12 invoice paid. *(added v23.08)* +- **groupid** (u64, optional): The groupid used for these payment parts (as can be seen in listsendpays) *(added v23.08)* - **destination** (pubkey, optional): The final destination of the payment. --- doc/lightning-sendonion.7.md.old 2024-10-29 17:33:07.937520073 +1030 +++ doc/lightning-sendonion.7.md 2024-10-29 17:42:37.957269309 +1030 @@ -22,7 +22,7 @@ -- **first\_hop** (object): Instructs Core Lightning which peer to send the onion to. It is a JSON dictionary that corresponds to the first element of the route array returned by *getroute*.: +- **first\_hop** (object): Instructs Core Lightning which peer to send the onion to. It is a JSON dictionary that corresponds to the first element of the route array returned by *getroute* (so fields not mentioned here are ignored).: Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-EXPERIMENTAL: `renepay` return fields documented in schema (`bolt11`, `bolt12` and `groupid`)

Commit:c2d02f4
Author:Jesse de Wit
Committer:Rusty Russell

cln-grpc: add anchors/even to primitives The `anchors/even` channel type was missing from the grpc bindings. It is now the default channel type, so `fundchannel` over grpc fails with: ``` Failed to deserialize response : unknown variant `anchors/even`, expected one of `static_remotekey/even`, `anchor_outputs/even`, `anchors_zero_fee_htlc_tx/even`, `scid_alias/even`, `zeroconf/even` ``` Changelog-Changed: Channel type `anchors/even` was added to the grpc bindings.

Commit:fd717c7
Author:Rusty Russell
Committer:Rusty Russell

global: deprecate old names in JSON fields, add new ones. Changelog-Added: JSON-RPC: `decode` now used modern BOLT 4 language for blinded paths, `first_path_key`. Changelog-Deprecated: JSON-RPC: `decode` `blinding` in blinded path: use `first_path_key`. Changelog-Added: Plugins: `onion_message_recv` and `onion_message_recv_secret` hooks now used modern BOLT 4 language for blinded paths, `first_path_key`. Changelog-Deprecated: JSON-RPC: `onion_message_recv` and `onion_message_recv_secret` hooks `blinding` in blinded path: use `first_path_key`.

Commit:f9e28b9
Author:Se7enZ
Committer:Christian Decker

keysend: Add `maxfee` to keysend for consistency with pay. ([#7227]) Changelog-Added: keysend: Add `maxfee` to keysend for consistency with pay. ([#7227])

Commit:2798b4b
Author:Jesse de Wit
Committer:ShahanaFarooqui

cln-grpc: add anchors/even to primitives The `anchors/even` channel type was missing from the grpc bindings. It is now the default channel type, so `fundchannel` over grpc fails with: ``` Failed to deserialize response : unknown variant `anchors/even`, expected one of `static_remotekey/even`, `anchor_outputs/even`, `anchors_zero_fee_htlc_tx/even`, `scid_alias/even`, `zeroconf/even` ``` Changelog-Changed: Channel type `anchors/even` was added to the grpc bindings.

Commit:18312a4
Author:laanwj
Committer:ShahanaFarooqui

schemas: "description" field in "wait(any)invoice" is optional since BOLT12 For BOLT12 invoices, the "description" is field missing in the invoice responses. Update the schemas accordingly: - `doc/schemas/lightning-waitanyinvoice.json` - `doc/schemas/lightning-waitinvoice.json` Also commit the generated msggen, cln-grpc, cln-rpc and pyln-grpc-proto files. Changelog-Fixed: schemas: Make description in `Wait(any)invoiceResponse` optional to handle BOLT12

Commit:c8660c8
Author:laanwj
Committer:Rusty Russell

schemas: "description" field in "wait(any)invoice" is optional since BOLT12 For BOLT12 invoices, the "description" is field missing in the invoice responses. Update the schemas accordingly: - `doc/schemas/lightning-waitanyinvoice.json` - `doc/schemas/lightning-waitinvoice.json` Also commit the generated msggen, cln-grpc, cln-rpc and pyln-grpc-proto files. Changelog-Fixed: schemas: Make description in `Wait(any)invoiceResponse` optional to handle BOLT12

Commit:9afc10b
Author:Lagrang3
Committer:ShahanaFarooqui

renepay: add cli option exclude msggen cannot handle the complex type in renepay-exclude, therefore I added a rule override for it, just like pay-exclude. ``` msggen cln-grpc/proto/node.proto Traceback (most recent call last): File "/home/rusty/devel/cvs/lightning/contrib/msggen/msggen/__main__.py", line 131, in <module> main() File "/home/rusty/devel/cvs/lightning/contrib/msggen/msggen/__main__.py", line 115, in main run() File "/home/rusty/devel/cvs/lightning/contrib/msggen/msggen/__main__.py", line 72, in run service = load_jsonrpc_service( ^^^^^^^^^^^^^^^^^^^^^ File "/home/rusty/devel/cvs/lightning/contrib/msggen/msggen/utils/utils.py", line 241, in load_jsonrpc_service methods = [load_jsonrpc_method(name) for name in grpc_method_names] ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/rusty/devel/cvs/lightning/contrib/msggen/msggen/utils/utils.py", line 209, in load_jsonrpc_method request = CompositeField.from_js(schema["methods"][rpc_name]['request'], path=name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/rusty/devel/cvs/lightning/contrib/msggen/msggen/model.py", line 297, in from_js field = ArrayField.from_js(fpath, ftype) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/rusty/devel/cvs/lightning/contrib/msggen/msggen/model.py", line 464, in from_js itemtype = UnionField.from_js(child_js, path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/rusty/devel/cvs/lightning/contrib/msggen/msggen/model.py", line 393, in from_js itemtype = PrimitiveField( ^^^^^^^^^^^^^^^ TypeError: PrimitiveField.__init__() missing 2 required positional arguments: 'added' and 'deprecated' ``` Signed-off-by: Lagrang3 <lagrang3@protonmail.com> Changelog-EXPERIMENTAL: renepay: add cli option "exclude" to manually disable channels and nodes.