diff --git a/.msggen.json b/.msggen.json index fa522b2c7..e90db8050 100644 --- a/.msggen.json +++ b/.msggen.json @@ -499,6 +499,9 @@ "DatastoreUsage.datastoreusage.key": 1, "DatastoreUsage.datastoreusage.total_bytes": 2 }, + "DatastoreusageRequest": { + "DatastoreUsage.key": 1 + }, "DatastoreusageResponse": { "DatastoreUsage.datastoreusage": 1 }, @@ -1215,6 +1218,7 @@ "ListPeerChannels.channels[].peer_id": 1, "ListPeerChannels.channels[].private": 18, "ListPeerChannels.channels[].receivable_msat": 34, + "ListPeerChannels.channels[].reestablished": 58, "ListPeerChannels.channels[].scratch_txid": 4, "ListPeerChannels.channels[].short_channel_id": 8, "ListPeerChannels.channels[].spendable_msat": 33, @@ -1415,6 +1419,7 @@ "ListSendPays.payments[].amount_sent_msat": 8, "ListSendPays.payments[].bolt11": 10, "ListSendPays.payments[].bolt12": 11, + "ListSendPays.payments[].completed_at": 18, "ListSendPays.payments[].created_at": 7, "ListSendPays.payments[].created_index": 16, "ListSendPays.payments[].description": 14, @@ -2213,6 +2218,10 @@ "added": "v23.11", "deprecated": false }, + "DatastoreUsage.key": { + "added": "v23.11", + "deprecated": false + }, "Decode": { "added": "v23.05", "deprecated": null @@ -4693,6 +4702,10 @@ "added": "v23.02", "deprecated": false }, + "ListPeerChannels.channels[].reestablished": { + "added": "v24.02", + "deprecated": false + }, "ListPeerChannels.channels[].scratch_txid": { "added": "v23.02", "deprecated": false @@ -5241,6 +5254,10 @@ "added": "pre-v0.10.1", "deprecated": false }, + "ListSendPays.payments[].completed_at": { + "added": "pre-v0.10.1", + "deprecated": false + }, "ListSendPays.payments[].created_at": { "added": "pre-v0.10.1", "deprecated": false diff --git a/cln-grpc/proto/node.proto b/cln-grpc/proto/node.proto index 9292eae7b..1f923bfe6 100644 --- a/cln-grpc/proto/node.proto +++ b/cln-grpc/proto/node.proto @@ -494,6 +494,7 @@ message ConnectAddress { message CreateinvoiceRequest { string invstring = 1; + string label = 2; bytes preimage = 3; } @@ -551,6 +552,7 @@ message DatastoreResponse { } message DatastoreusageRequest { + repeated string key = 1; } message DatastoreusageResponse { @@ -810,6 +812,7 @@ message ListsendpaysPayments { optional string bolt11 = 10; optional string description = 14; optional string bolt12 = 11; + optional uint64 completed_at = 18; optional bytes payment_preimage = 12; optional bytes erroronion = 13; } @@ -942,6 +945,7 @@ message WaitanyinvoicePaid_outpoint { } message WaitinvoiceRequest { + string label = 1; } message WaitinvoiceResponse { @@ -1198,6 +1202,7 @@ message ListpeerchannelsChannels { } optional bytes peer_id = 1; optional bool peer_connected = 2; + optional bool reestablished = 58; optional ListpeerchannelsChannelsState state = 3; optional bytes scratch_txid = 4; optional ListpeerchannelsChannelsUpdates updates = 55; @@ -1837,7 +1842,7 @@ message OfferRequest { optional string recurrence = 7; optional string recurrence_base = 8; optional string recurrence_paywindow = 9; - optional uint64 recurrence_limit = 10; + optional uint32 recurrence_limit = 10; optional bool single_use = 11; } diff --git a/cln-grpc/src/convert.rs b/cln-grpc/src/convert.rs index 0f60980cf..3f26c5559 100644 --- a/cln-grpc/src/convert.rs +++ b/cln-grpc/src/convert.rs @@ -658,6 +658,7 @@ impl From for pb::ListsendpaysPayments { bolt11: c.bolt11, // Rule #2 for type string? description: c.description, // Rule #2 for type string? bolt12: c.bolt12, // Rule #2 for type string? + completed_at: c.completed_at, // Rule #2 for type u64? payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? erroronion: c.erroronion.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? } @@ -1118,6 +1119,7 @@ impl From for pb::ListpeerchannelsChannels Self { peer_id: c.peer_id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? peer_connected: c.peer_connected, // Rule #2 for type boolean? + reestablished: c.reestablished, // Rule #2 for type boolean? state: c.state.map(|v| v as i32), scratch_txid: c.scratch_txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? updates: c.updates.map(|v| v.into()), @@ -1576,7 +1578,7 @@ impl From for pb::FundchannelResponse { tx: hex::decode(&c.tx).unwrap(), // Rule #2 for type hex txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid outnum: c.outnum, // Rule #2 for type u32 - channel_id: hex::decode(&c.channel_id).unwrap(), // Rule #2 for type hex + channel_id: >::as_ref(&c.channel_id).to_vec(), // Rule #2 for type hash channel_type: c.channel_type.map(|v| v.into()), close_to: c.close_to.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? mindepth: c.mindepth, // Rule #2 for type u32? @@ -1757,7 +1759,7 @@ impl From for pb::SetchannelChannels { fn from(c: responses::SetchannelChannels) -> Self { Self { peer_id: c.peer_id.serialize().to_vec(), // Rule #2 for type pubkey - channel_id: hex::decode(&c.channel_id).unwrap(), // Rule #2 for type hex + channel_id: >::as_ref(&c.channel_id).to_vec(), // Rule #2 for type hash short_channel_id: c.short_channel_id.map(|v| v.to_string()), // Rule #2 for type short_channel_id? fee_base_msat: Some(c.fee_base_msat.into()), // Rule #2 for type msat fee_proportional_millionths: c.fee_proportional_millionths, // Rule #2 for type u32 @@ -2016,6 +2018,7 @@ impl From for pb::CreateinvoiceRequest { fn from(c: requests::CreateinvoiceRequest) -> Self { Self { invstring: c.invstring, // Rule #2 for type string + label: c.label, // Rule #2 for type string preimage: hex::decode(&c.preimage).unwrap(), // Rule #2 for type hex } } @@ -2039,6 +2042,8 @@ impl From for pb::DatastoreRequest { impl From for pb::DatastoreusageRequest { fn from(c: requests::DatastoreusageRequest) -> Self { Self { + // Field: DatastoreUsage.key + key: c.key.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 } } } @@ -2237,6 +2242,7 @@ impl From for pb::WaitanyinvoiceRequest { impl From for pb::WaitinvoiceRequest { fn from(c: requests::WaitinvoiceRequest) -> Self { Self { + label: c.label, // Rule #2 for type string } } } @@ -2552,7 +2558,7 @@ impl From for pb::OfferRequest { recurrence: c.recurrence, // Rule #2 for type string? recurrence_base: c.recurrence_base, // Rule #2 for type string? recurrence_paywindow: c.recurrence_paywindow, // Rule #2 for type string? - recurrence_limit: c.recurrence_limit, // Rule #2 for type u64? + recurrence_limit: c.recurrence_limit, // Rule #2 for type u32? single_use: c.single_use, // Rule #2 for type boolean? } } @@ -2811,6 +2817,7 @@ impl From for requests::CreateinvoiceRequest { fn from(c: pb::CreateinvoiceRequest) -> Self { Self { invstring: c.invstring, // Rule #1 for type string + label: c.label, // Rule #1 for type string preimage: hex::encode(&c.preimage), // Rule #1 for type hex } } @@ -2833,6 +2840,7 @@ impl From for requests::DatastoreRequest { impl From for requests::DatastoreusageRequest { fn from(c: pb::DatastoreusageRequest) -> Self { Self { + key: Some(c.key.into_iter().map(|s| s.into()).collect()), // Rule #4 } } } @@ -3025,6 +3033,7 @@ impl From for requests::WaitanyinvoiceRequest { impl From for requests::WaitinvoiceRequest { fn from(c: pb::WaitinvoiceRequest) -> Self { Self { + label: c.label, // Rule #1 for type string } } } @@ -3332,7 +3341,7 @@ impl From for requests::OfferRequest { recurrence: c.recurrence, // Rule #1 for type string? recurrence_base: c.recurrence_base, // Rule #1 for type string? recurrence_paywindow: c.recurrence_paywindow, // Rule #1 for type string? - recurrence_limit: c.recurrence_limit, // Rule #1 for type u64? + recurrence_limit: c.recurrence_limit, // Rule #1 for type u32? single_use: c.single_use, // Rule #1 for type boolean? } } diff --git a/cln-rpc/src/model.rs b/cln-rpc/src/model.rs index a1d5b5ee5..e9a02ba35 100644 --- a/cln-rpc/src/model.rs +++ b/cln-rpc/src/model.rs @@ -195,7 +195,7 @@ pub mod requests { "getinfo" } } - /// supplying level will show log entries related to that peer at the given log level + /// ['Supplying level will show log entries related to that peer at the given log level.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListpeersLevel { #[serde(rename = "io")] @@ -491,6 +491,7 @@ pub mod requests { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct CreateinvoiceRequest { pub invstring: String, + pub label: String, pub preimage: String, } @@ -511,7 +512,7 @@ pub mod requests { "createinvoice" } } - /// - `must-create`: fails if it already exists. - `must-replace`: fails if it doesn't already exist. - `create-or-replace`: never fails. - `must-append`: must already exist, append this to what's already there. - `create-or-append`: append if anything is there, otherwise create. Default is `must-create` + /// ['Write mode to determine how the record is updated:', ' * `must-create`: fails if it already exists.', " * `must-replace`: fails if it doesn't already exist.", ' * `create-or-replace`: never fails.', " * `must-append`: must already exist, append this to what's already there.", ' * `create-or-append`: append if anything is there, otherwise create.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum DatastoreMode { #[serde(rename = "must-create")] @@ -584,6 +585,8 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DatastoreusageRequest { + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub key: Option>, } impl From for Request { @@ -683,7 +686,7 @@ pub mod requests { "delexpiredinvoice" } } - /// label of the invoice to be deleted. The caller should be particularly aware of the error case caused by the *status* changing just before this command is invoked! + /// ['Label of the invoice to be deleted. The caller should be particularly aware of the error case caused by the *status* changing just before this command is invoked!'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum DelinvoiceStatus { #[serde(rename = "paid")] @@ -799,7 +802,7 @@ pub mod requests { "listdatastore" } } - /// if neither *in_channel* nor *out_channel* is specified, it controls ordering. Defaults to `created` + /// ['If neither *in_channel* nor *out_channel* is specified, it controls ordering.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListinvoicesIndex { #[serde(rename = "created")] @@ -912,7 +915,7 @@ pub mod requests { "sendonion" } } - /// Whether the invoice has been paid, pending, or failed + /// ['Whether the invoice has been paid, pending, or failed.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListsendpaysStatus { #[serde(rename = "pending")] @@ -945,7 +948,7 @@ pub mod requests { } } - /// if neither bolt11 or payment_hash is specified, `index` controls ordering, by `created` (default) or `updated` + /// ['If neither bolt11 or payment_hash is specified, `index` controls ordering, by `created` (default) or `updated`.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListsendpaysIndex { #[serde(rename = "created")] @@ -1122,6 +1125,7 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct WaitinvoiceRequest { + pub label: String, } impl From for Request { @@ -1169,7 +1173,7 @@ pub mod requests { "waitsendpay" } } - /// it specifies the type of address wanted; currently *bech32* (e.g. `tb1qu9j4lg5f9rgjyfhvfd905vw46eg39czmktxqgg` on bitcoin testnet or `bc1qwqdg6squsna38e46795at95yu9atm8azzmyvckulcc7kytlcckxswvvzej` on bitcoin mainnet), or *p2tr* taproot addresses. The special value *all* generates all known address types for the same underlying key. Defaults to *bech32* address + /// ['It specifies the type of address wanted; currently *bech32* (e.g. `tb1qu9j4lg5f9rgjyfhvfd905vw46eg39czmktxqgg` on bitcoin testnet or `bc1qwqdg6squsna38e46795at95yu9atm8azzmyvckulcc7kytlcckxswvvzej` on bitcoin mainnet), or *p2tr* taproot addresses. The special value *all* generates all known address types for the same underlying key.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum NewaddrAddresstype { #[serde(rename = "bech32")] @@ -1602,7 +1606,7 @@ pub mod requests { "disconnect" } } - /// *perkw* - provide feerate in units of satoshis per 1000 weight (e.g. the minimum fee is usually `253perkw`) *perkb* - provide feerate in units of satoshis per 1000 virtual bytes (eg. the minimum fee is usually `1000perkb`) + /// ['Fee rate style to use. This can be:', ' *perkw* - provide feerate in units of satoshis per 1000 weight (e.g. the minimum fee is usually `253perkw`).', ' *perkb* - provide feerate in units of satoshis per 1000 virtual bytes (eg. the minimum fee is usually `1000perkb`).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum FeeratesStyle { #[serde(rename = "perkb")] @@ -1769,7 +1773,7 @@ pub mod requests { "getroute" } } - /// if specified, then only the forwards with the given status are returned + /// ['If specified, then only the forwards with the given status are returned.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListforwardsStatus { #[serde(rename = "offered")] @@ -1806,7 +1810,7 @@ pub mod requests { } } - /// if neither *in_channel* nor *out_channel* is specified, it controls ordering. Defaults to `created` + /// ['If neither *in_channel* nor *out_channel* is specified, it controls ordering.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListforwardsIndex { #[serde(rename = "created")] @@ -1893,7 +1897,7 @@ pub mod requests { "listoffers" } } - /// to filter the payment by status + /// ['To filter the payment by status.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListpaysStatus { #[serde(rename = "pending")] @@ -1995,7 +1999,7 @@ pub mod requests { #[serde(skip_serializing_if = "Option::is_none")] pub recurrence_paywindow: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub recurrence_limit: Option, + pub recurrence_limit: Option, #[serde(skip_serializing_if = "Option::is_none")] pub single_use: Option, } @@ -2168,7 +2172,7 @@ pub mod requests { "waitblockheight" } } - /// the subsystem to get the next index value from + /// ['The subsystem to get the next index value from.', ' `invoices`: corresponding to `listinvoices` (added in *v23.08*).', ' `sendpays`: corresponding to `listsendpays` (added in *v23.11*).', ' `forwards`: corresponding to `listforwards` (added in *v23.11*).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum WaitSubsystem { #[serde(rename = "invoices")] @@ -2201,7 +2205,7 @@ pub mod requests { } } - /// the name of the index to get the next value for + /// ['The name of the index to get the next value for.', ' `created` is incremented by one for every new object.', ' `updated` is incremented by one every time an object is changed.', ' `deleted` is incremented by one every time an object is deleted.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum WaitIndexname { #[serde(rename = "created")] @@ -2397,7 +2401,7 @@ pub mod responses { pub invoice: String, } - /// Type of connection (until 23.08, `websocket` was also allowed) + /// ['Type of connection (until 23.08, `websocket` was also allowed).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum GetinfoAddressType { #[serde(rename = "dns")] @@ -2448,7 +2452,7 @@ pub mod responses { pub address: Option, } - /// Type of connection + /// ['Type of connection.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum GetinfoBindingType { #[serde(rename = "local socket")] @@ -2612,7 +2616,7 @@ pub mod responses { pub data: Option, } - /// the channel state, in particular "CHANNELD_NORMAL" means the channel can be used normally + /// ['Current state of the channel:', ' * `OPENINGD`: The channel funding protocol with the peer is ongoing and both sides are negotiating parameters.', ' * `CHANNELD_AWAITING_LOCKIN`: The peer and you have agreed on channel parameters and are just waiting for the channel funding transaction to be confirmed deeply. Both you and the peer must acknowledge the channel funding transaction to be confirmed deeply before entering the next state.', ' * `CHANNELD_NORMAL`: The channel can be used for normal payments.', ' * `CHANNELD_SHUTTING_DOWN`: A mutual close was requested (by you or peer) and both of you are waiting for HTLCs in-flight to be either failed or succeeded. The channel can no longer be used for normal payments and forwarding. Mutual close will proceed only once all HTLCs in the channel have either been fulfilled or failed.', ' * `CLOSINGD_SIGEXCHANGE`: You and the peer are negotiating the mutual close onchain fee.', ' * `CLOSINGD_COMPLETE`: You and the peer have agreed on the mutual close onchain fee and are awaiting the mutual close getting confirmed deeply.', ' * `AWAITING_UNILATERAL`: You initiated a unilateral close, and are now waiting for the peer-selected unilateral close timeout to complete.', ' * `FUNDING_SPEND_SEEN`: You saw the funding transaction getting spent (usually the peer initiated a unilateral close) and will now determine what exactly happened (i.e. if it was a theft attempt).', ' * `ONCHAIN`: You saw the funding transaction getting spent and now know what happened (i.e. if it was a proper unilateral close by the peer, or a theft attempt).', ' * `CLOSED`: The channel closure has been confirmed deeply. The channel will eventually be removed from this array.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListpeersPeersChannelsState { #[serde(rename = "OPENINGD")] @@ -2723,7 +2727,7 @@ pub mod responses { pub remote: Option, } - /// Whether it came from peer, or is going to peer + /// ['Whether it came from peer, or is going to peer.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListpeersPeersChannelsHtlcsDirection { #[serde(rename = "in")] @@ -2990,7 +2994,7 @@ pub mod responses { } } - /// status of the payment (could be complete if already sent previously) + /// ['Status of the payment (could be complete if already sent previously).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum SendpayStatus { #[serde(rename = "pending")] @@ -3153,7 +3157,7 @@ pub mod responses { } } - /// Whether we successfully negotiated a mutual close, closed without them, or discarded not-yet-opened channel + /// ['Whether we successfully negotiated a mutual close, closed without them, or discarded not-yet-opened channel.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum CloseType { #[serde(rename = "mutual")] @@ -3208,7 +3212,7 @@ pub mod responses { } } - /// Whether they initiated connection or we did + /// ['Whether they initiated connection or we did.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ConnectDirection { #[serde(rename = "in")] @@ -3237,7 +3241,7 @@ pub mod responses { } } - /// Type of connection (*torv2*/*torv3* only if **direction** is *out*) + /// ['Type of connection (*torv2*/*torv3* only if **direction** is *out*).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ConnectAddressType { #[serde(rename = "local socket")] @@ -3311,7 +3315,7 @@ pub mod responses { } } - /// Whether it has been paid, or can no longer be paid + /// ['Whether it has been paid, or can no longer be paid.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum CreateinvoiceStatus { #[serde(rename = "paid")] @@ -3496,7 +3500,7 @@ pub mod responses { } } - /// State of invoice + /// ['State of invoice.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum DelinvoiceStatus { #[serde(rename = "paid")] @@ -3623,7 +3627,7 @@ pub mod responses { } } - /// Whether it's paid, unpaid or unpayable + /// ["Whether it's paid, unpaid or unpayable."] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListinvoicesInvoicesStatus { #[serde(rename = "unpaid")] @@ -3715,7 +3719,7 @@ pub mod responses { } } - /// status of the payment (could be complete if already sent previously) + /// ['Status of the payment (could be complete if already sent previously).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum SendonionStatus { #[serde(rename = "pending")] @@ -3785,7 +3789,7 @@ pub mod responses { } } - /// status of the payment + /// ['Status of the payment.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListsendpaysPaymentsStatus { #[serde(rename = "pending")] @@ -3846,6 +3850,8 @@ pub mod responses { #[serde(skip_serializing_if = "Option::is_none")] pub bolt12: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub completed_at: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub payment_preimage: Option, #[serde(skip_serializing_if = "Option::is_none")] pub erroronion: Option, @@ -3910,7 +3916,7 @@ pub mod responses { } } - /// status of payment + /// ['Status of payment.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum PayStatus { #[serde(rename = "complete")] @@ -3970,7 +3976,7 @@ pub mod responses { } } - /// Type of connection (until 23.08, `websocket` was also allowed) + /// ['Type of connection (until 23.08, `websocket` was also allowed).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListnodesNodesAddressesType { #[serde(rename = "dns")] @@ -4052,7 +4058,7 @@ pub mod responses { } } - /// Whether it's paid or expired + /// ["Whether it's paid or expired."] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum WaitanyinvoiceStatus { #[serde(rename = "paid")] @@ -4130,7 +4136,7 @@ pub mod responses { } } - /// Whether it's paid or expired + /// ["Whether it's paid or expired."] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum WaitinvoiceStatus { #[serde(rename = "paid")] @@ -4208,7 +4214,7 @@ pub mod responses { } } - /// status of the payment + /// ['Status of the payment.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum WaitsendpayStatus { #[serde(rename = "complete")] @@ -4313,7 +4319,7 @@ pub mod responses { } } - /// status of payment + /// ['Status of payment.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum KeysendStatus { #[serde(rename = "complete")] @@ -4515,7 +4521,7 @@ pub mod responses { } } - /// the channel state, in particular "CHANNELD_NORMAL" means the channel can be used normally + /// ['The channel state, in particular `CHANNELD_NORMAL` means the channel can be used normally.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListpeerchannelsChannelsState { #[serde(rename = "OPENINGD")] @@ -4676,7 +4682,7 @@ pub mod responses { pub remote: Option, } - /// Whether it came from peer, or is going to peer + /// ['Whether it came from peer, or is going to peer.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListpeerchannelsChannelsHtlcsDirection { #[serde(rename = "in")] @@ -4732,6 +4738,8 @@ pub mod responses { #[serde(skip_serializing_if = "Option::is_none")] pub peer_connected: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub reestablished: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub state: Option, #[serde(skip_serializing_if = "Option::is_none")] pub scratch_txid: Option, @@ -4862,7 +4870,7 @@ pub mod responses { pub remote: Option, } - /// What caused the channel to close + /// ['What caused the channel to close.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListclosedchannelsClosedchannelsClose_cause { #[serde(rename = "unknown")] @@ -4963,7 +4971,7 @@ pub mod responses { } } - /// the address type (if known) + /// ['The address type (if known).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum DecodepayFallbacksType { #[serde(rename = "P2PKH")] @@ -5058,7 +5066,7 @@ pub mod responses { } } - /// what kind of object it decoded to + /// ['What kind of object it decoded to.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum DecodeType { #[serde(rename = "bolt12 offer")] @@ -5466,7 +5474,7 @@ pub mod responses { pub tx: String, pub txid: String, pub outnum: u32, - pub channel_id: String, + pub channel_id: Sha256, #[serde(skip_serializing_if = "Option::is_none")] pub channel_type: Option, #[serde(skip_serializing_if = "Option::is_none")] @@ -5486,7 +5494,7 @@ pub mod responses { } } - /// The features understood by the destination node + /// ['The features understood by the destination node.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum GetrouteRouteStyle { #[serde(rename = "tlv")] @@ -5538,7 +5546,7 @@ pub mod responses { } } - /// still ongoing, completed, failed locally, or failed after forwarding + /// ['Still ongoing, completed, failed locally, or failed after forwarding.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListforwardsForwardsStatus { #[serde(rename = "offered")] @@ -5575,7 +5583,7 @@ pub mod responses { } } - /// Either a legacy onion format or a modern tlv format + /// ['Either a legacy onion format or a modern tlv format.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListforwardsForwardsStyle { #[serde(rename = "legacy")] @@ -5672,7 +5680,7 @@ pub mod responses { } } - /// status of the payment + /// ['Status of the payment.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListpaysPaysStatus { #[serde(rename = "pending")] @@ -5751,7 +5759,7 @@ pub mod responses { } } - /// out if we offered this to the peer, in if they offered it + /// ['Out if we offered this to the peer, in if they offered it.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListhtlcsHtlcsDirection { #[serde(rename = "out")] @@ -5867,7 +5875,7 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SetchannelChannels { pub peer_id: PublicKey, - pub channel_id: String, + pub channel_id: Sha256, #[serde(skip_serializing_if = "Option::is_none")] pub short_channel_id: Option, pub fee_base_msat: Amount, diff --git a/contrib/msggen/msggen/gen/grpc.py b/contrib/msggen/msggen/gen/grpc.py index d8b860e27..6f7857db3 100644 --- a/contrib/msggen/msggen/gen/grpc.py +++ b/contrib/msggen/msggen/gen/grpc.py @@ -13,6 +13,7 @@ typemap = { 'msat': 'Amount', 'msat_or_all': 'AmountOrAll', 'msat_or_any': 'AmountOrAny', + 'currency': 'string', 'number': 'double', 'pubkey': 'bytes', 'short_channel_id': 'string', @@ -33,6 +34,7 @@ typemap = { "feerate": "Feerate", "outputdesc": "OutputDesc", "secret": "bytes", + "bip340sig": "bytes", "hash": "bytes", } diff --git a/contrib/msggen/msggen/gen/grpc2py.py b/contrib/msggen/msggen/gen/grpc2py.py index 1a0c159ed..b90494154 100644 --- a/contrib/msggen/msggen/gen/grpc2py.py +++ b/contrib/msggen/msggen/gen/grpc2py.py @@ -35,6 +35,7 @@ class Grpc2PyGenerator(IGenerator): 'signature': "hexlify(m.{name})", 'txid': "hexlify(m.{name})", 'hash': "hexlify(m.{name})", + 'bip340sig': "hexlify(m.{name})", 'string': "m.{name}", 'u8': "m.{name}", 'u16': "m.{name}", @@ -48,6 +49,7 @@ class Grpc2PyGenerator(IGenerator): 'boolean': "m.{name}", 'short_channel_id': "m.{name}", 'msat': "amount2msat(m.{name})", + 'currency': "m.{name}", 'number': "m.{name}", } diff --git a/contrib/msggen/msggen/gen/rust.py b/contrib/msggen/msggen/gen/rust.py index 3847566bc..668ca5a05 100644 --- a/contrib/msggen/msggen/gen/rust.py +++ b/contrib/msggen/msggen/gen/rust.py @@ -22,6 +22,7 @@ typemap = { 'msat': 'Amount', 'msat_or_all': 'AmountOrAll', 'msat_or_any': 'AmountOrAny', + 'currency': 'String', 'number': 'f64', 'pubkey': 'PublicKey', 'short_channel_id': 'ShortChannelId', @@ -35,6 +36,7 @@ typemap = { 'outputdesc': 'OutputDesc', 'hash': 'Sha256', 'secret': 'Secret', + 'bip340sig': 'Secret', 'integer': 'i64', } diff --git a/contrib/msggen/msggen/model.py b/contrib/msggen/msggen/model.py index c706e7144..7a6ea0343 100644 --- a/contrib/msggen/msggen/model.py +++ b/contrib/msggen/msggen/model.py @@ -234,12 +234,6 @@ class CompositeField(Field): logger.warning(f"Unmanaged {fpath}, it doesn't have a type") continue - elif ftype["type"] == ["string", "null"]: - # TODO Remove the `['string', 'null']` match once - # `listpeers.peers[].channels[].closer` no longer has this - # type - ftype["type"] = "string" - # Peek into the type so we know how to decode it elif ftype["type"] in ["string", ["string", "null"]] and "enum" in ftype: field = EnumField.from_js(ftype, fpath) @@ -360,6 +354,7 @@ class PrimitiveField(Field): "msat", "msat_or_any", "msat_or_all", + "currency", "hex", "short_channel_id", "short_channel_id_dir", @@ -372,6 +367,7 @@ class PrimitiveField(Field): "utxo", # A string representing the tuple (txid, outnum) "outputdesc", # A dict that maps an address to an amount (bitcoind style) "secret", + "bip340sig", "hash", ] @@ -435,8 +431,10 @@ class Command: return f"Command[name={self.name}, fields=[{fieldnames}]]" +OfferStringField = PrimitiveField("string", None, None, added=None, deprecated=None) InvoiceLabelField = PrimitiveField("string", None, None, added=None, deprecated=None) DatastoreKeyField = ArrayField(itemtype=PrimitiveField("string", None, None, added=None, deprecated=None), dims=1, path=None, description=None, added=None, deprecated=None) +DatastoreUsageKeyField = ArrayField(itemtype=PrimitiveField("string", None, None, added="v23.11", deprecated=None), dims=1, path=None, description=None, added="v23.11", deprecated=None) InvoiceExposeprivatechannelsField = PrimitiveField("boolean", None, None, added=None, deprecated=None) PayExclude = ArrayField(itemtype=PrimitiveField("string", None, None, added=None, deprecated=None), dims=1, path=None, description=None, added=None, deprecated=None) RoutehintListField = PrimitiveField( @@ -470,6 +468,11 @@ overrides = { 'Pay.exclude': PayExclude, 'KeySend.routehints': RoutehintListField, 'KeySend.extratlvs': TlvStreamField, + 'CreateInvoice.label': InvoiceLabelField, + 'DatastoreUsage.key': DatastoreUsageKeyField, + 'WaitInvoice.label': InvoiceLabelField, + 'Offer.recurrence_base': OfferStringField, + 'Offer.amount': OfferStringField } diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index 88b791595..01b014dda 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -36245,7 +36245,7 @@ "tables": [ "Note that the first column of every table is a unique integer called `rowid`: this is used for related tables to refer to specific rows in their parent. sqlite3 usually has this as an implicit column, but we make it explicit as the implicit version is not allowed to be used as a foreign key.", "", - "The following tables are currently supported:\n- `bkpr_accountevents` (see lightning-bkpr-listaccountevents(7))\n - `account` (type `string`, sqltype `TEXT`)\n - `type` (type `string`, sqltype `TEXT`)\n - `tag` (type `string`, sqltype `TEXT`)\n - `credit_msat` (type `msat`, sqltype `INTEGER`)\n - `debit_msat` (type `msat`, sqltype `INTEGER`)\n - `currency` (type `string`, sqltype `TEXT`)\n - `timestamp` (type `u32`, sqltype `INTEGER`)\n - `outpoint` (type `string`, sqltype `TEXT`)\n - `blockheight` (type `u32`, sqltype `INTEGER`)\n - `origin` (type `string`, sqltype `TEXT`)\n - `payment_id` (type `hex`, sqltype `BLOB`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `description` (type `string`, sqltype `TEXT`)\n - `fees_msat` (type `msat`, sqltype `INTEGER`)\n - `is_rebalance` (type `boolean`, sqltype `INTEGER`)\n - `part_id` (type `u32`, sqltype `INTEGER`)\n\n- `bkpr_income` (see lightning-bkpr-listincome(7))\n - `account` (type `string`, sqltype `TEXT`)\n - `tag` (type `string`, sqltype `TEXT`)\n - `credit_msat` (type `msat`, sqltype `INTEGER`)\n - `debit_msat` (type `msat`, sqltype `INTEGER`)\n - `currency` (type `string`, sqltype `TEXT`)\n - `timestamp` (type `u32`, sqltype `INTEGER`)\n - `description` (type `string`, sqltype `TEXT`)\n - `outpoint` (type `string`, sqltype `TEXT`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `payment_id` (type `hex`, sqltype `BLOB`)\n\n- `channels` indexed by `short_channel_id` (see lightning-listchannels(7))\n - `source` (type `pubkey`, sqltype `BLOB`)\n - `destination` (type `pubkey`, sqltype `BLOB`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `direction` (type `u32`, sqltype `INTEGER`)\n - `public` (type `boolean`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `message_flags` (type `u8`, sqltype `INTEGER`)\n - `channel_flags` (type `u8`, sqltype `INTEGER`)\n - `active` (type `boolean`, sqltype `INTEGER`)\n - `last_update` (type `u32`, sqltype `INTEGER`)\n - `base_fee_millisatoshi` (type `u32`, sqltype `INTEGER`)\n - `fee_per_millionth` (type `u32`, sqltype `INTEGER`)\n - `delay` (type `u32`, sqltype `INTEGER`)\n - `htlc_minimum_msat` (type `msat`, sqltype `INTEGER`)\n - `htlc_maximum_msat` (type `msat`, sqltype `INTEGER`)\n - `features` (type `hex`, sqltype `BLOB`)\n\n- `closedchannels` (see lightning-listclosedchannels(7))\n - `peer_id` (type `pubkey`, sqltype `BLOB`)\n - `channel_id` (type `hash`, sqltype `BLOB`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `alias_local` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `alias_remote` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `opener` (type `string`, sqltype `TEXT`)\n - `closer` (type `string`, sqltype `TEXT`)\n - `private` (type `boolean`, sqltype `INTEGER`)\n - related table `closedchannels_channel_type_bits`, from JSON object `channel_type`\n - `row` (reference to `closedchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `bits` (type `u32`, sqltype `INTEGER`)\n - related table `closedchannels_channel_type_names`, from JSON object `channel_type`\n - `row` (reference to `closedchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `names` (type `string`, sqltype `TEXT`)\n - `total_local_commitments` (type `u64`, sqltype `INTEGER`)\n - `total_remote_commitments` (type `u64`, sqltype `INTEGER`)\n - `total_htlcs_sent` (type `u64`, sqltype `INTEGER`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `leased` (type `boolean`, sqltype `INTEGER`)\n - `funding_fee_paid_msat` (type `msat`, sqltype `INTEGER`)\n - `funding_fee_rcvd_msat` (type `msat`, sqltype `INTEGER`)\n - `funding_pushed_msat` (type `msat`, sqltype `INTEGER`)\n - `total_msat` (type `msat`, sqltype `INTEGER`)\n - `final_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `min_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `max_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `last_commitment_txid` (type `hash`, sqltype `BLOB`)\n - `last_commitment_fee_msat` (type `msat`, sqltype `INTEGER`)\n - `close_cause` (type `string`, sqltype `TEXT`)\n - `last_stable_connection` (type `u64`, sqltype `INTEGER`)\n\n- `forwards` indexed by `in_channel and in_htlc_id` (see lightning-listforwards(7))\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `in_channel` (type `short_channel_id`, sqltype `TEXT`)\n - `in_htlc_id` (type `u64`, sqltype `INTEGER`)\n - `in_msat` (type `msat`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `received_time` (type `number`, sqltype `REAL`)\n - `out_channel` (type `short_channel_id`, sqltype `TEXT`)\n - `out_htlc_id` (type `u64`, sqltype `INTEGER`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `style` (type `string`, sqltype `TEXT`)\n - `fee_msat` (type `msat`, sqltype `INTEGER`)\n - `out_msat` (type `msat`, sqltype `INTEGER`)\n - `resolved_time` (type `number`, sqltype `REAL`)\n - `failcode` (type `u32`, sqltype `INTEGER`)\n - `failreason` (type `string`, sqltype `TEXT`)\n\n- `htlcs` indexed by `short_channel_id and id` (see lightning-listhtlcs(7))\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `expiry` (type `u32`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `direction` (type `string`, sqltype `TEXT`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `state` (type `string`, sqltype `TEXT`)\n\n- `invoices` indexed by `payment_hash` (see lightning-listinvoices(7))\n - `label` (type `string`, sqltype `TEXT`)\n - `description` (type `string`, sqltype `TEXT`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `status` (type `string`, sqltype `TEXT`)\n - `expires_at` (type `u64`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `bolt11` (type `string`, sqltype `TEXT`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `local_offer_id` (type `hash`, sqltype `BLOB`)\n - `invreq_payer_note` (type `string`, sqltype `TEXT`)\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `pay_index` (type `u64`, sqltype `INTEGER`)\n - `amount_received_msat` (type `msat`, sqltype `INTEGER`)\n - `paid_at` (type `u64`, sqltype `INTEGER`)\n - `paid_outpoint_txid` (type `txid`, sqltype `BLOB`, from JSON object `paid_outpoint`)\n - `paid_outpoint_outnum` (type `u32`, sqltype `INTEGER`, from JSON object `paid_outpoint`)\n - `payment_preimage` (type `secret`, sqltype `BLOB`)\n\n- `nodes` indexed by `nodeid` (see lightning-listnodes(7))\n - `nodeid` (type `pubkey`, sqltype `BLOB`)\n - `last_timestamp` (type `u32`, sqltype `INTEGER`)\n - `alias` (type `string`, sqltype `TEXT`)\n - `color` (type `hex`, sqltype `BLOB`)\n - `features` (type `hex`, sqltype `BLOB`)\n - related table `nodes_addresses`\n - `row` (reference to `nodes.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `type` (type `string`, sqltype `TEXT`)\n - `port` (type `u16`, sqltype `INTEGER`)\n - `address` (type `string`, sqltype `TEXT`)\n - `option_will_fund_lease_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_lease_fee_basis` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_funding_weight` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_channel_fee_max_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_channel_fee_max_proportional_thousandths` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_compact_lease` (type `hex`, sqltype `BLOB`, from JSON object `option_will_fund`)\n\n- `offers` indexed by `offer_id` (see lightning-listoffers(7))\n - `offer_id` (type `hash`, sqltype `BLOB`)\n - `active` (type `boolean`, sqltype `INTEGER`)\n - `single_use` (type `boolean`, sqltype `INTEGER`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `used` (type `boolean`, sqltype `INTEGER`)\n - `label` (type `string`, sqltype `TEXT`)\n\n- `peerchannels` indexed by `peer_id` (see lightning-listpeerchannels(7))\n - `peer_id` (type `pubkey`, sqltype `BLOB`)\n - `peer_connected` (type `boolean`, sqltype `INTEGER`)\n - `reestablished` (type `boolean`, sqltype `INTEGER`)\n - `state` (type `string`, sqltype `TEXT`)\n - `scratch_txid` (type `txid`, sqltype `BLOB`)\n - related table `peerchannels_channel_type_bits`, from JSON object `channel_type`\n - `row` (reference to `peerchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `bits` (type `u32`, sqltype `INTEGER`)\n - related table `peerchannels_channel_type_names`, from JSON object `channel_type`\n - `row` (reference to `peerchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `names` (type `string`, sqltype `TEXT`)\n - `local_htlc_minimum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_htlc_maximum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_cltv_expiry_delta` (type `u32`, sqltype `INTEGER`, from JSON object `local`)\n - `local_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_fee_proportional_millionths` (type `u32`, sqltype `INTEGER`, from JSON object `local`)\n - `remote_htlc_minimum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_htlc_maximum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_cltv_expiry_delta` (type `u32`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_fee_proportional_millionths` (type `u32`, sqltype `INTEGER`, from JSON object `remote`)\n - `ignore_fee_limits` (type `boolean`, sqltype `INTEGER`)\n - `lost_state` (type `boolean`, sqltype `INTEGER`)\n - `feerate_perkw` (type `u32`, sqltype `INTEGER`, from JSON object `feerate`)\n - `feerate_perkb` (type `u32`, sqltype `INTEGER`, from JSON object `feerate`)\n - `owner` (type `string`, sqltype `TEXT`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `channel_id` (type `hash`, sqltype `BLOB`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `initial_feerate` (type `string`, sqltype `TEXT`)\n - `last_feerate` (type `string`, sqltype `TEXT`)\n - `next_feerate` (type `string`, sqltype `TEXT`)\n - `next_fee_step` (type `u32`, sqltype `INTEGER`)\n - related table `peerchannels_inflight`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `feerate` (type `string`, sqltype `TEXT`)\n - `total_funding_msat` (type `msat`, sqltype `INTEGER`)\n - `splice_amount` (type `integer`, sqltype `INTEGER`)\n - `our_funding_msat` (type `msat`, sqltype `INTEGER`)\n - `scratch_txid` (type `txid`, sqltype `BLOB`)\n - `close_to` (type `hex`, sqltype `BLOB`)\n - `private` (type `boolean`, sqltype `INTEGER`)\n - `opener` (type `string`, sqltype `TEXT`)\n - `closer` (type `string`, sqltype `TEXT`)\n - related table `peerchannels_features`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `features` (type `string`, sqltype `TEXT`)\n - `funding_pushed_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_local_funds_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_remote_funds_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_fee_paid_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_fee_rcvd_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `min_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `max_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `total_msat` (type `msat`, sqltype `INTEGER`)\n - `fee_base_msat` (type `msat`, sqltype `INTEGER`)\n - `fee_proportional_millionths` (type `u32`, sqltype `INTEGER`)\n - `dust_limit_msat` (type `msat`, sqltype `INTEGER`)\n - `max_total_htlc_in_msat` (type `msat`, sqltype `INTEGER`)\n - `their_reserve_msat` (type `msat`, sqltype `INTEGER`)\n - `our_reserve_msat` (type `msat`, sqltype `INTEGER`)\n - `spendable_msat` (type `msat`, sqltype `INTEGER`)\n - `receivable_msat` (type `msat`, sqltype `INTEGER`)\n - `minimum_htlc_in_msat` (type `msat`, sqltype `INTEGER`)\n - `minimum_htlc_out_msat` (type `msat`, sqltype `INTEGER`)\n - `maximum_htlc_out_msat` (type `msat`, sqltype `INTEGER`)\n - `their_to_self_delay` (type `u32`, sqltype `INTEGER`)\n - `our_to_self_delay` (type `u32`, sqltype `INTEGER`)\n - `max_accepted_htlcs` (type `u32`, sqltype `INTEGER`)\n - `alias_local` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `alias_remote` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - related table `peerchannels_state_changes`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `timestamp` (type `string`, sqltype `TEXT`)\n - `old_state` (type `string`, sqltype `TEXT`)\n - `new_state` (type `string`, sqltype `TEXT`)\n - `cause` (type `string`, sqltype `TEXT`)\n - `message` (type `string`, sqltype `TEXT`)\n - related table `peerchannels_status`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `in_payments_offered` (type `u64`, sqltype `INTEGER`)\n - `in_offered_msat` (type `msat`, sqltype `INTEGER`)\n - `in_payments_fulfilled` (type `u64`, sqltype `INTEGER`)\n - `in_fulfilled_msat` (type `msat`, sqltype `INTEGER`)\n - `out_payments_offered` (type `u64`, sqltype `INTEGER`)\n - `out_offered_msat` (type `msat`, sqltype `INTEGER`)\n - `out_payments_fulfilled` (type `u64`, sqltype `INTEGER`)\n - `out_fulfilled_msat` (type `msat`, sqltype `INTEGER`)\n - `last_stable_connection` (type `u64`, sqltype `INTEGER`)\n - related table `peerchannels_htlcs`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `direction` (type `string`, sqltype `TEXT`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `expiry` (type `u32`, sqltype `INTEGER`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `local_trimmed` (type `boolean`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `state` (type `string`, sqltype `TEXT`)\n - `close_to_addr` (type `string`, sqltype `TEXT`)\n - `last_tx_fee_msat` (type `msat`, sqltype `INTEGER`)\n - `direction` (type `u32`, sqltype `INTEGER`)\n\n- `peers` indexed by `id` (see lightning-listpeers(7))\n - `id` (type `pubkey`, sqltype `BLOB`)\n - `connected` (type `boolean`, sqltype `INTEGER`)\n - `num_channels` (type `u32`, sqltype `INTEGER`)\n - related table `peers_netaddr`\n - `row` (reference to `peers.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `netaddr` (type `string`, sqltype `TEXT`)\n - `remote_addr` (type `string`, sqltype `TEXT`)\n - `features` (type `hex`, sqltype `BLOB`)\n\n- `sendpays` indexed by `payment_hash` (see lightning-listsendpays(7))\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `groupid` (type `u64`, sqltype `INTEGER`)\n - `partid` (type `u64`, sqltype `INTEGER`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `destination` (type `pubkey`, sqltype `BLOB`)\n - `created_at` (type `u64`, sqltype `INTEGER`)\n - `amount_sent_msat` (type `msat`, sqltype `INTEGER`)\n - `label` (type `string`, sqltype `TEXT`)\n - `bolt11` (type `string`, sqltype `TEXT`)\n - `description` (type `string`, sqltype `TEXT`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `payment_preimage` (type `secret`, sqltype `BLOB`)\n - `erroronion` (type `hex`, sqltype `BLOB`)\n\n- `transactions` indexed by `hash` (see lightning-listtransactions(7))\n - `hash` (type `txid`, sqltype `BLOB`)\n - `rawtx` (type `hex`, sqltype `BLOB`)\n - `blockheight` (type `u32`, sqltype `INTEGER`)\n - `txindex` (type `u32`, sqltype `INTEGER`)\n - `locktime` (type `u32`, sqltype `INTEGER`)\n - `version` (type `u32`, sqltype `INTEGER`)\n - related table `transactions_inputs`\n - `row` (reference to `transactions.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `idx` (type `u32`, sqltype `INTEGER`, from JSON field `index`)\n - `sequence` (type `u32`, sqltype `INTEGER`)\n - related table `transactions_outputs`\n - `row` (reference to `transactions.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `idx` (type `u32`, sqltype `INTEGER`, from JSON field `index`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `scriptPubKey` (type `hex`, sqltype `BLOB`)" + "The following tables are currently supported:\n- `bkpr_accountevents` (see lightning-bkpr-listaccountevents(7))\n - `account` (type `string`, sqltype `TEXT`)\n - `type` (type `string`, sqltype `TEXT`)\n - `tag` (type `string`, sqltype `TEXT`)\n - `credit_msat` (type `msat`, sqltype `INTEGER`)\n - `debit_msat` (type `msat`, sqltype `INTEGER`)\n - `currency` (type `string`, sqltype `TEXT`)\n - `timestamp` (type `u32`, sqltype `INTEGER`)\n - `outpoint` (type `string`, sqltype `TEXT`)\n - `blockheight` (type `u32`, sqltype `INTEGER`)\n - `origin` (type `string`, sqltype `TEXT`)\n - `payment_id` (type `hex`, sqltype `BLOB`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `description` (type `string`, sqltype `TEXT`)\n - `fees_msat` (type `msat`, sqltype `INTEGER`)\n - `is_rebalance` (type `boolean`, sqltype `INTEGER`)\n - `part_id` (type `u32`, sqltype `INTEGER`)\n\n- `bkpr_income` (see lightning-bkpr-listincome(7))\n - `account` (type `string`, sqltype `TEXT`)\n - `tag` (type `string`, sqltype `TEXT`)\n - `credit_msat` (type `msat`, sqltype `INTEGER`)\n - `debit_msat` (type `msat`, sqltype `INTEGER`)\n - `currency` (type `string`, sqltype `TEXT`)\n - `timestamp` (type `u32`, sqltype `INTEGER`)\n - `description` (type `string`, sqltype `TEXT`)\n - `outpoint` (type `string`, sqltype `TEXT`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `payment_id` (type `hex`, sqltype `BLOB`)\n\n- `channels` indexed by `short_channel_id` (see lightning-listchannels(7))\n - `source` (type `pubkey`, sqltype `BLOB`)\n - `destination` (type `pubkey`, sqltype `BLOB`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `direction` (type `u32`, sqltype `INTEGER`)\n - `public` (type `boolean`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `message_flags` (type `u8`, sqltype `INTEGER`)\n - `channel_flags` (type `u8`, sqltype `INTEGER`)\n - `active` (type `boolean`, sqltype `INTEGER`)\n - `last_update` (type `u32`, sqltype `INTEGER`)\n - `base_fee_millisatoshi` (type `u32`, sqltype `INTEGER`)\n - `fee_per_millionth` (type `u32`, sqltype `INTEGER`)\n - `delay` (type `u32`, sqltype `INTEGER`)\n - `htlc_minimum_msat` (type `msat`, sqltype `INTEGER`)\n - `htlc_maximum_msat` (type `msat`, sqltype `INTEGER`)\n - `features` (type `hex`, sqltype `BLOB`)\n\n- `closedchannels` (see lightning-listclosedchannels(7))\n - `peer_id` (type `pubkey`, sqltype `BLOB`)\n - `channel_id` (type `hash`, sqltype `BLOB`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `alias_local` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `alias_remote` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `opener` (type `string`, sqltype `TEXT`)\n - `closer` (type `string`, sqltype `TEXT`)\n - `private` (type `boolean`, sqltype `INTEGER`)\n - related table `closedchannels_channel_type_bits`, from JSON object `channel_type`\n - `row` (reference to `closedchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `bits` (type `u32`, sqltype `INTEGER`)\n - related table `closedchannels_channel_type_names`, from JSON object `channel_type`\n - `row` (reference to `closedchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `names` (type `string`, sqltype `TEXT`)\n - `total_local_commitments` (type `u64`, sqltype `INTEGER`)\n - `total_remote_commitments` (type `u64`, sqltype `INTEGER`)\n - `total_htlcs_sent` (type `u64`, sqltype `INTEGER`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `leased` (type `boolean`, sqltype `INTEGER`)\n - `funding_fee_paid_msat` (type `msat`, sqltype `INTEGER`)\n - `funding_fee_rcvd_msat` (type `msat`, sqltype `INTEGER`)\n - `funding_pushed_msat` (type `msat`, sqltype `INTEGER`)\n - `total_msat` (type `msat`, sqltype `INTEGER`)\n - `final_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `min_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `max_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `last_commitment_txid` (type `hash`, sqltype `BLOB`)\n - `last_commitment_fee_msat` (type `msat`, sqltype `INTEGER`)\n - `close_cause` (type `string`, sqltype `TEXT`)\n - `last_stable_connection` (type `u64`, sqltype `INTEGER`)\n\n- `forwards` indexed by `in_channel and in_htlc_id` (see lightning-listforwards(7))\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `in_channel` (type `short_channel_id`, sqltype `TEXT`)\n - `in_htlc_id` (type `u64`, sqltype `INTEGER`)\n - `in_msat` (type `msat`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `received_time` (type `number`, sqltype `REAL`)\n - `out_channel` (type `short_channel_id`, sqltype `TEXT`)\n - `out_htlc_id` (type `u64`, sqltype `INTEGER`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `style` (type `string`, sqltype `TEXT`)\n - `fee_msat` (type `msat`, sqltype `INTEGER`)\n - `out_msat` (type `msat`, sqltype `INTEGER`)\n - `resolved_time` (type `number`, sqltype `REAL`)\n - `failcode` (type `u32`, sqltype `INTEGER`)\n - `failreason` (type `string`, sqltype `TEXT`)\n\n- `htlcs` indexed by `short_channel_id and id` (see lightning-listhtlcs(7))\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `expiry` (type `u32`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `direction` (type `string`, sqltype `TEXT`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `state` (type `string`, sqltype `TEXT`)\n\n- `invoices` indexed by `payment_hash` (see lightning-listinvoices(7))\n - `label` (type `string`, sqltype `TEXT`)\n - `description` (type `string`, sqltype `TEXT`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `status` (type `string`, sqltype `TEXT`)\n - `expires_at` (type `u64`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `bolt11` (type `string`, sqltype `TEXT`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `local_offer_id` (type `hash`, sqltype `BLOB`)\n - `invreq_payer_note` (type `string`, sqltype `TEXT`)\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `pay_index` (type `u64`, sqltype `INTEGER`)\n - `amount_received_msat` (type `msat`, sqltype `INTEGER`)\n - `paid_at` (type `u64`, sqltype `INTEGER`)\n - `paid_outpoint_txid` (type `txid`, sqltype `BLOB`, from JSON object `paid_outpoint`)\n - `paid_outpoint_outnum` (type `u32`, sqltype `INTEGER`, from JSON object `paid_outpoint`)\n - `payment_preimage` (type `secret`, sqltype `BLOB`)\n\n- `nodes` indexed by `nodeid` (see lightning-listnodes(7))\n - `nodeid` (type `pubkey`, sqltype `BLOB`)\n - `last_timestamp` (type `u32`, sqltype `INTEGER`)\n - `alias` (type `string`, sqltype `TEXT`)\n - `color` (type `hex`, sqltype `BLOB`)\n - `features` (type `hex`, sqltype `BLOB`)\n - related table `nodes_addresses`\n - `row` (reference to `nodes.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `type` (type `string`, sqltype `TEXT`)\n - `port` (type `u16`, sqltype `INTEGER`)\n - `address` (type `string`, sqltype `TEXT`)\n - `option_will_fund_lease_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_lease_fee_basis` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_funding_weight` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_channel_fee_max_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_channel_fee_max_proportional_thousandths` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_compact_lease` (type `hex`, sqltype `BLOB`, from JSON object `option_will_fund`)\n\n- `offers` indexed by `offer_id` (see lightning-listoffers(7))\n - `offer_id` (type `hash`, sqltype `BLOB`)\n - `active` (type `boolean`, sqltype `INTEGER`)\n - `single_use` (type `boolean`, sqltype `INTEGER`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `used` (type `boolean`, sqltype `INTEGER`)\n - `label` (type `string`, sqltype `TEXT`)\n\n- `peerchannels` indexed by `peer_id` (see lightning-listpeerchannels(7))\n - `peer_id` (type `pubkey`, sqltype `BLOB`)\n - `peer_connected` (type `boolean`, sqltype `INTEGER`)\n - `reestablished` (type `boolean`, sqltype `INTEGER`)\n - `state` (type `string`, sqltype `TEXT`)\n - `scratch_txid` (type `txid`, sqltype `BLOB`)\n - related table `peerchannels_channel_type_bits`, from JSON object `channel_type`\n - `row` (reference to `peerchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `bits` (type `u32`, sqltype `INTEGER`)\n - related table `peerchannels_channel_type_names`, from JSON object `channel_type`\n - `row` (reference to `peerchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `names` (type `string`, sqltype `TEXT`)\n - `local_htlc_minimum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_htlc_maximum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_cltv_expiry_delta` (type `u32`, sqltype `INTEGER`, from JSON object `local`)\n - `local_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_fee_proportional_millionths` (type `u32`, sqltype `INTEGER`, from JSON object `local`)\n - `remote_htlc_minimum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_htlc_maximum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_cltv_expiry_delta` (type `u32`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_fee_proportional_millionths` (type `u32`, sqltype `INTEGER`, from JSON object `remote`)\n - `ignore_fee_limits` (type `boolean`, sqltype `INTEGER`)\n - `lost_state` (type `boolean`, sqltype `INTEGER`)\n - `feerate_perkw` (type `u32`, sqltype `INTEGER`, from JSON object `feerate`)\n - `feerate_perkb` (type `u32`, sqltype `INTEGER`, from JSON object `feerate`)\n - `owner` (type `string`, sqltype `TEXT`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `channel_id` (type `hash`, sqltype `BLOB`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `initial_feerate` (type `string`, sqltype `TEXT`)\n - `last_feerate` (type `string`, sqltype `TEXT`)\n - `next_feerate` (type `string`, sqltype `TEXT`)\n - `next_fee_step` (type `u32`, sqltype `INTEGER`)\n - related table `peerchannels_inflight`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `feerate` (type `string`, sqltype `TEXT`)\n - `total_funding_msat` (type `msat`, sqltype `INTEGER`)\n - `splice_amount` (type `integer`, sqltype `INTEGER`)\n - `our_funding_msat` (type `msat`, sqltype `INTEGER`)\n - `scratch_txid` (type `txid`, sqltype `BLOB`)\n - `close_to` (type `hex`, sqltype `BLOB`)\n - `private` (type `boolean`, sqltype `INTEGER`)\n - `opener` (type `string`, sqltype `TEXT`)\n - `closer` (type `string`, sqltype `TEXT`)\n - related table `peerchannels_features`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `features` (type `string`, sqltype `TEXT`)\n - `funding_pushed_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_local_funds_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_remote_funds_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_fee_paid_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_fee_rcvd_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `min_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `max_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `total_msat` (type `msat`, sqltype `INTEGER`)\n - `fee_base_msat` (type `msat`, sqltype `INTEGER`)\n - `fee_proportional_millionths` (type `u32`, sqltype `INTEGER`)\n - `dust_limit_msat` (type `msat`, sqltype `INTEGER`)\n - `max_total_htlc_in_msat` (type `msat`, sqltype `INTEGER`)\n - `their_reserve_msat` (type `msat`, sqltype `INTEGER`)\n - `our_reserve_msat` (type `msat`, sqltype `INTEGER`)\n - `spendable_msat` (type `msat`, sqltype `INTEGER`)\n - `receivable_msat` (type `msat`, sqltype `INTEGER`)\n - `minimum_htlc_in_msat` (type `msat`, sqltype `INTEGER`)\n - `minimum_htlc_out_msat` (type `msat`, sqltype `INTEGER`)\n - `maximum_htlc_out_msat` (type `msat`, sqltype `INTEGER`)\n - `their_to_self_delay` (type `u32`, sqltype `INTEGER`)\n - `our_to_self_delay` (type `u32`, sqltype `INTEGER`)\n - `max_accepted_htlcs` (type `u32`, sqltype `INTEGER`)\n - `alias_local` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `alias_remote` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - related table `peerchannels_state_changes`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `timestamp` (type `string`, sqltype `TEXT`)\n - `old_state` (type `string`, sqltype `TEXT`)\n - `new_state` (type `string`, sqltype `TEXT`)\n - `cause` (type `string`, sqltype `TEXT`)\n - `message` (type `string`, sqltype `TEXT`)\n - related table `peerchannels_status`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `in_payments_offered` (type `u64`, sqltype `INTEGER`)\n - `in_offered_msat` (type `msat`, sqltype `INTEGER`)\n - `in_payments_fulfilled` (type `u64`, sqltype `INTEGER`)\n - `in_fulfilled_msat` (type `msat`, sqltype `INTEGER`)\n - `out_payments_offered` (type `u64`, sqltype `INTEGER`)\n - `out_offered_msat` (type `msat`, sqltype `INTEGER`)\n - `out_payments_fulfilled` (type `u64`, sqltype `INTEGER`)\n - `out_fulfilled_msat` (type `msat`, sqltype `INTEGER`)\n - `last_stable_connection` (type `u64`, sqltype `INTEGER`)\n - related table `peerchannels_htlcs`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `direction` (type `string`, sqltype `TEXT`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `expiry` (type `u32`, sqltype `INTEGER`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `local_trimmed` (type `boolean`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `state` (type `string`, sqltype `TEXT`)\n - `close_to_addr` (type `string`, sqltype `TEXT`)\n - `last_tx_fee_msat` (type `msat`, sqltype `INTEGER`)\n - `direction` (type `u32`, sqltype `INTEGER`)\n\n- `peers` indexed by `id` (see lightning-listpeers(7))\n - `id` (type `pubkey`, sqltype `BLOB`)\n - `connected` (type `boolean`, sqltype `INTEGER`)\n - `num_channels` (type `u32`, sqltype `INTEGER`)\n - related table `peers_netaddr`\n - `row` (reference to `peers.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `netaddr` (type `string`, sqltype `TEXT`)\n - `remote_addr` (type `string`, sqltype `TEXT`)\n - `features` (type `hex`, sqltype `BLOB`)\n\n- `sendpays` indexed by `payment_hash` (see lightning-listsendpays(7))\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `groupid` (type `u64`, sqltype `INTEGER`)\n - `partid` (type `u64`, sqltype `INTEGER`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `destination` (type `pubkey`, sqltype `BLOB`)\n - `created_at` (type `u64`, sqltype `INTEGER`)\n - `amount_sent_msat` (type `msat`, sqltype `INTEGER`)\n - `label` (type `string`, sqltype `TEXT`)\n - `bolt11` (type `string`, sqltype `TEXT`)\n - `description` (type `string`, sqltype `TEXT`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `completed_at` (type `u64`, sqltype `INTEGER`)\n - `payment_preimage` (type `secret`, sqltype `BLOB`)\n - `erroronion` (type `hex`, sqltype `BLOB`)\n\n- `transactions` indexed by `hash` (see lightning-listtransactions(7))\n - `hash` (type `txid`, sqltype `BLOB`)\n - `rawtx` (type `hex`, sqltype `BLOB`)\n - `blockheight` (type `u32`, sqltype `INTEGER`)\n - `txindex` (type `u32`, sqltype `INTEGER`)\n - `locktime` (type `u32`, sqltype `INTEGER`)\n - `version` (type `u32`, sqltype `INTEGER`)\n - related table `transactions_inputs`\n - `row` (reference to `transactions.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `idx` (type `u32`, sqltype `INTEGER`, from JSON field `index`)\n - `sequence` (type `u32`, sqltype `INTEGER`)\n - related table `transactions_outputs`\n - `row` (reference to `transactions.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `idx` (type `u32`, sqltype `INTEGER`, from JSON field `index`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `scriptPubKey` (type `hex`, sqltype `BLOB`)" ], "errors": [ "On failure, an error is returned." diff --git a/contrib/msggen/msggen/utils/utils.py b/contrib/msggen/msggen/utils/utils.py index f02bd4f90..484e51c7f 100644 --- a/contrib/msggen/msggen/utils/utils.py +++ b/contrib/msggen/msggen/utils/utils.py @@ -39,10 +39,9 @@ def load_jsonrpc_method(name): """Load a method based on the file naming conventions for the JSON-RPC. """ schema = get_schema_bundle() - req_file = f"{name.lower()}.request.json" - resp_file = f"{name.lower()}.schema.json" - request = CompositeField.from_js(schema[req_file], path=name) - response = CompositeField.from_js(schema[resp_file], path=name) + rpc_name = f"lightning-{name.lower()}.json" + request = CompositeField.from_js(schema[rpc_name]['request'], path=name) + response = CompositeField.from_js(schema[rpc_name]['response'], path=name) # Normalize the method request and response typename so they no # longer conflict. diff --git a/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py b/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py index 4d34f4264..56fef2ed5 100644 --- a/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py +++ b/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py @@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default() from pyln.grpc import primitives_pb2 as primitives__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nnode.proto\x12\x03\x63ln\x1a\x10primitives.proto\"\x10\n\x0eGetinfoRequest\"\xc1\x04\n\x0fGetinfoResponse\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x12\n\x05\x61lias\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x63olor\x18\x03 \x01(\x0c\x12\x11\n\tnum_peers\x18\x04 \x01(\r\x12\x1c\n\x14num_pending_channels\x18\x05 \x01(\r\x12\x1b\n\x13num_active_channels\x18\x06 \x01(\r\x12\x1d\n\x15num_inactive_channels\x18\x07 \x01(\r\x12\x0f\n\x07version\x18\x08 \x01(\t\x12\x15\n\rlightning_dir\x18\t \x01(\t\x12\x33\n\x0cour_features\x18\n \x01(\x0b\x32\x18.cln.GetinfoOur_featuresH\x01\x88\x01\x01\x12\x13\n\x0b\x62lockheight\x18\x0b \x01(\r\x12\x0f\n\x07network\x18\x0c \x01(\t\x12(\n\x13\x66\x65\x65s_collected_msat\x18\r \x01(\x0b\x32\x0b.cln.Amount\x12$\n\x07\x61\x64\x64ress\x18\x0e \x03(\x0b\x32\x13.cln.GetinfoAddress\x12$\n\x07\x62inding\x18\x0f \x03(\x0b\x32\x13.cln.GetinfoBinding\x12\"\n\x15warning_bitcoind_sync\x18\x10 \x01(\tH\x02\x88\x01\x01\x12$\n\x17warning_lightningd_sync\x18\x11 \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_aliasB\x0f\n\r_our_featuresB\x18\n\x16_warning_bitcoind_syncB\x1a\n\x18_warning_lightningd_sync\"S\n\x13GetinfoOur_features\x12\x0c\n\x04init\x18\x01 \x01(\x0c\x12\x0c\n\x04node\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\x0c\x12\x0f\n\x07invoice\x18\x04 \x01(\x0c\"\xc4\x01\n\x0eGetinfoAddress\x12\x39\n\titem_type\x18\x01 \x01(\x0e\x32&.cln.GetinfoAddress.GetinfoAddressType\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x00\x88\x01\x01\"G\n\x12GetinfoAddressType\x12\x07\n\x03\x44NS\x10\x00\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\n\n\x08_address\"\x8a\x02\n\x0eGetinfoBinding\x12\x39\n\titem_type\x18\x01 \x01(\x0e\x32&.cln.GetinfoBinding.GetinfoBindingType\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04port\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06socket\x18\x04 \x01(\tH\x02\x88\x01\x01\"_\n\x12GetinfoBindingType\x12\x10\n\x0cLOCAL_SOCKET\x10\x00\x12\r\n\tWEBSOCKET\x10\x05\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\n\n\x08_addressB\x07\n\x05_portB\t\n\x07_socket\"\xaa\x01\n\x10ListpeersRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x38\n\x05level\x18\x02 \x01(\x0e\x32$.cln.ListpeersRequest.ListpeersLevelH\x01\x88\x01\x01\":\n\x0eListpeersLevel\x12\x06\n\x02IO\x10\x00\x12\t\n\x05\x44\x45\x42UG\x10\x01\x12\x08\n\x04INFO\x10\x02\x12\x0b\n\x07UNUSUAL\x10\x03\x42\x05\n\x03_idB\x08\n\x06_level\"7\n\x11ListpeersResponse\x12\"\n\x05peers\x18\x01 \x03(\x0b\x32\x13.cln.ListpeersPeers\"\x8e\x02\n\x0eListpeersPeers\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x11\n\tconnected\x18\x02 \x01(\x08\x12\x19\n\x0cnum_channels\x18\x08 \x01(\rH\x00\x88\x01\x01\x12#\n\x03log\x18\x03 \x03(\x0b\x32\x16.cln.ListpeersPeersLog\x12-\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x1b.cln.ListpeersPeersChannels\x12\x0f\n\x07netaddr\x18\x05 \x03(\t\x12\x18\n\x0bremote_addr\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18\x06 \x01(\x0cH\x02\x88\x01\x01\x42\x0f\n\r_num_channelsB\x0e\n\x0c_remote_addrB\x0b\n\t_features\"\xfd\x02\n\x11ListpeersPeersLog\x12?\n\titem_type\x18\x01 \x01(\x0e\x32,.cln.ListpeersPeersLog.ListpeersPeersLogType\x12\x18\n\x0bnum_skipped\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04time\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06source\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x03log\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07node_id\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x11\n\x04\x64\x61ta\x18\x07 \x01(\x0cH\x05\x88\x01\x01\"i\n\x15ListpeersPeersLogType\x12\x0b\n\x07SKIPPED\x10\x00\x12\n\n\x06\x42ROKEN\x10\x01\x12\x0b\n\x07UNUSUAL\x10\x02\x12\x08\n\x04INFO\x10\x03\x12\t\n\x05\x44\x45\x42UG\x10\x04\x12\t\n\x05IO_IN\x10\x05\x12\n\n\x06IO_OUT\x10\x06\x42\x0e\n\x0c_num_skippedB\x07\n\x05_timeB\t\n\x07_sourceB\x06\n\x04_logB\n\n\x08_node_idB\x07\n\x05_data\"\x95\x18\n\x16ListpeersPeersChannels\x12\x46\n\x05state\x18\x01 \x01(\x0e\x32\x37.cln.ListpeersPeersChannels.ListpeersPeersChannelsState\x12\x19\n\x0cscratch_txid\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x38\n\x07\x66\x65\x65rate\x18\x03 \x01(\x0b\x32\".cln.ListpeersPeersChannelsFeerateH\x01\x88\x01\x01\x12\x12\n\x05owner\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x10short_channel_id\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x17\n\nchannel_id\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x19\n\x0c\x66unding_txid\x18\x07 \x01(\x0cH\x05\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x08 \x01(\rH\x06\x88\x01\x01\x12\x1c\n\x0finitial_feerate\x18\t \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0clast_feerate\x18\n \x01(\tH\x08\x88\x01\x01\x12\x19\n\x0cnext_feerate\x18\x0b \x01(\tH\t\x88\x01\x01\x12\x1a\n\rnext_fee_step\x18\x0c \x01(\rH\n\x88\x01\x01\x12\x35\n\x08inflight\x18\r \x03(\x0b\x32#.cln.ListpeersPeersChannelsInflight\x12\x15\n\x08\x63lose_to\x18\x0e \x01(\x0cH\x0b\x88\x01\x01\x12\x14\n\x07private\x18\x0f \x01(\x08H\x0c\x88\x01\x01\x12 \n\x06opener\x18\x10 \x01(\x0e\x32\x10.cln.ChannelSide\x12%\n\x06\x63loser\x18\x11 \x01(\x0e\x32\x10.cln.ChannelSideH\r\x88\x01\x01\x12\x10\n\x08\x66\x65\x61tures\x18\x12 \x03(\t\x12\x38\n\x07\x66unding\x18\x13 \x01(\x0b\x32\".cln.ListpeersPeersChannelsFundingH\x0e\x88\x01\x01\x12$\n\nto_us_msat\x18\x14 \x01(\x0b\x32\x0b.cln.AmountH\x0f\x88\x01\x01\x12(\n\x0emin_to_us_msat\x18\x15 \x01(\x0b\x32\x0b.cln.AmountH\x10\x88\x01\x01\x12(\n\x0emax_to_us_msat\x18\x16 \x01(\x0b\x32\x0b.cln.AmountH\x11\x88\x01\x01\x12$\n\ntotal_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x12\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x18 \x01(\x0b\x32\x0b.cln.AmountH\x13\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x19 \x01(\rH\x14\x88\x01\x01\x12)\n\x0f\x64ust_limit_msat\x18\x1a \x01(\x0b\x32\x0b.cln.AmountH\x15\x88\x01\x01\x12\x30\n\x16max_total_htlc_in_msat\x18\x1b \x01(\x0b\x32\x0b.cln.AmountH\x16\x88\x01\x01\x12,\n\x12their_reserve_msat\x18\x1c \x01(\x0b\x32\x0b.cln.AmountH\x17\x88\x01\x01\x12*\n\x10our_reserve_msat\x18\x1d \x01(\x0b\x32\x0b.cln.AmountH\x18\x88\x01\x01\x12(\n\x0espendable_msat\x18\x1e \x01(\x0b\x32\x0b.cln.AmountH\x19\x88\x01\x01\x12)\n\x0freceivable_msat\x18\x1f \x01(\x0b\x32\x0b.cln.AmountH\x1a\x88\x01\x01\x12.\n\x14minimum_htlc_in_msat\x18 \x01(\x0b\x32\x0b.cln.AmountH\x1b\x88\x01\x01\x12/\n\x15minimum_htlc_out_msat\x18\x30 \x01(\x0b\x32\x0b.cln.AmountH\x1c\x88\x01\x01\x12/\n\x15maximum_htlc_out_msat\x18\x31 \x01(\x0b\x32\x0b.cln.AmountH\x1d\x88\x01\x01\x12 \n\x13their_to_self_delay\x18! \x01(\rH\x1e\x88\x01\x01\x12\x1e\n\x11our_to_self_delay\x18\" \x01(\rH\x1f\x88\x01\x01\x12\x1f\n\x12max_accepted_htlcs\x18# \x01(\rH \x88\x01\x01\x12\x34\n\x05\x61lias\x18\x32 \x01(\x0b\x32 .cln.ListpeersPeersChannelsAliasH!\x88\x01\x01\x12\x0e\n\x06status\x18% \x03(\t\x12 \n\x13in_payments_offered\x18& \x01(\x04H\"\x88\x01\x01\x12)\n\x0fin_offered_msat\x18\' \x01(\x0b\x32\x0b.cln.AmountH#\x88\x01\x01\x12\"\n\x15in_payments_fulfilled\x18( \x01(\x04H$\x88\x01\x01\x12+\n\x11in_fulfilled_msat\x18) \x01(\x0b\x32\x0b.cln.AmountH%\x88\x01\x01\x12!\n\x14out_payments_offered\x18* \x01(\x04H&\x88\x01\x01\x12*\n\x10out_offered_msat\x18+ \x01(\x0b\x32\x0b.cln.AmountH\'\x88\x01\x01\x12#\n\x16out_payments_fulfilled\x18, \x01(\x04H(\x88\x01\x01\x12,\n\x12out_fulfilled_msat\x18- \x01(\x0b\x32\x0b.cln.AmountH)\x88\x01\x01\x12/\n\x05htlcs\x18. \x03(\x0b\x32 .cln.ListpeersPeersChannelsHtlcs\x12\x1a\n\rclose_to_addr\x18/ \x01(\tH*\x88\x01\x01\"\xe0\x02\n\x1bListpeersPeersChannelsState\x12\x0c\n\x08OPENINGD\x10\x00\x12\x1c\n\x18\x43HANNELD_AWAITING_LOCKIN\x10\x01\x12\x13\n\x0f\x43HANNELD_NORMAL\x10\x02\x12\x1a\n\x16\x43HANNELD_SHUTTING_DOWN\x10\x03\x12\x18\n\x14\x43LOSINGD_SIGEXCHANGE\x10\x04\x12\x15\n\x11\x43LOSINGD_COMPLETE\x10\x05\x12\x17\n\x13\x41WAITING_UNILATERAL\x10\x06\x12\x16\n\x12\x46UNDING_SPEND_SEEN\x10\x07\x12\x0b\n\x07ONCHAIN\x10\x08\x12\x17\n\x13\x44UALOPEND_OPEN_INIT\x10\t\x12\x1d\n\x19\x44UALOPEND_AWAITING_LOCKIN\x10\n\x12\x1c\n\x18\x44UALOPEND_OPEN_COMMITTED\x10\x0b\x12\x1f\n\x1b\x44UALOPEND_OPEN_COMMIT_READY\x10\x0c\x42\x0f\n\r_scratch_txidB\n\n\x08_feerateB\x08\n\x06_ownerB\x13\n\x11_short_channel_idB\r\n\x0b_channel_idB\x0f\n\r_funding_txidB\x11\n\x0f_funding_outnumB\x12\n\x10_initial_feerateB\x0f\n\r_last_feerateB\x0f\n\r_next_feerateB\x10\n\x0e_next_fee_stepB\x0b\n\t_close_toB\n\n\x08_privateB\t\n\x07_closerB\n\n\x08_fundingB\r\n\x0b_to_us_msatB\x11\n\x0f_min_to_us_msatB\x11\n\x0f_max_to_us_msatB\r\n\x0b_total_msatB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionthsB\x12\n\x10_dust_limit_msatB\x19\n\x17_max_total_htlc_in_msatB\x15\n\x13_their_reserve_msatB\x13\n\x11_our_reserve_msatB\x11\n\x0f_spendable_msatB\x12\n\x10_receivable_msatB\x17\n\x15_minimum_htlc_in_msatB\x18\n\x16_minimum_htlc_out_msatB\x18\n\x16_maximum_htlc_out_msatB\x16\n\x14_their_to_self_delayB\x14\n\x12_our_to_self_delayB\x15\n\x13_max_accepted_htlcsB\x08\n\x06_aliasB\x16\n\x14_in_payments_offeredB\x12\n\x10_in_offered_msatB\x18\n\x16_in_payments_fulfilledB\x14\n\x12_in_fulfilled_msatB\x17\n\x15_out_payments_offeredB\x13\n\x11_out_offered_msatB\x19\n\x17_out_payments_fulfilledB\x15\n\x13_out_fulfilled_msatB\x10\n\x0e_close_to_addr\"=\n\x1dListpeersPeersChannelsFeerate\x12\r\n\x05perkw\x18\x01 \x01(\r\x12\r\n\x05perkb\x18\x02 \x01(\r\"\xf3\x01\n\x1eListpeersPeersChannelsInflight\x12\x14\n\x0c\x66unding_txid\x18\x01 \x01(\x0c\x12\x16\n\x0e\x66unding_outnum\x18\x02 \x01(\r\x12\x0f\n\x07\x66\x65\x65rate\x18\x03 \x01(\t\x12\'\n\x12total_funding_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10our_funding_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x1a\n\rsplice_amount\x18\x07 \x01(\x12H\x00\x88\x01\x01\x12\x14\n\x0cscratch_txid\x18\x06 \x01(\x0c\x42\x10\n\x0e_splice_amount\"\x9b\x02\n\x1dListpeersPeersChannelsFunding\x12%\n\x0bpushed_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12%\n\x10local_funds_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12&\n\x11remote_funds_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12\'\n\rfee_paid_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\'\n\rfee_rcvd_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x42\x0e\n\x0c_pushed_msatB\x10\n\x0e_fee_paid_msatB\x10\n\x0e_fee_rcvd_msat\"[\n\x1bListpeersPeersChannelsAlias\x12\x12\n\x05local\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06remote\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"\xf1\x02\n\x1bListpeersPeersChannelsHtlcs\x12X\n\tdirection\x18\x01 \x01(\x0e\x32\x45.cln.ListpeersPeersChannelsHtlcs.ListpeersPeersChannelsHtlcsDirection\x12\n\n\x02id\x18\x02 \x01(\x04\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x0e\n\x06\x65xpiry\x18\x04 \x01(\r\x12\x14\n\x0cpayment_hash\x18\x05 \x01(\x0c\x12\x1a\n\rlocal_trimmed\x18\x06 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06status\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x05state\x18\x08 \x01(\x0e\x32\x0e.cln.HtlcState\"7\n$ListpeersPeersChannelsHtlcsDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\x42\x10\n\x0e_local_trimmedB\t\n\x07_status\"0\n\x10ListfundsRequest\x12\x12\n\x05spent\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x08\n\x06_spent\"e\n\x11ListfundsResponse\x12&\n\x07outputs\x18\x01 \x03(\x0b\x32\x15.cln.ListfundsOutputs\x12(\n\x08\x63hannels\x18\x02 \x03(\x0b\x32\x16.cln.ListfundsChannels\"\x83\x03\n\x10ListfundsOutputs\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06output\x18\x02 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0cscriptpubkey\x18\x04 \x01(\x0c\x12\x14\n\x07\x61\x64\x64ress\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0credeemscript\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12<\n\x06status\x18\x07 \x01(\x0e\x32,.cln.ListfundsOutputs.ListfundsOutputsStatus\x12\x10\n\x08reserved\x18\t \x01(\x08\x12\x18\n\x0b\x62lockheight\x18\x08 \x01(\rH\x02\x88\x01\x01\"Q\n\x16ListfundsOutputsStatus\x12\x0f\n\x0bUNCONFIRMED\x10\x00\x12\r\n\tCONFIRMED\x10\x01\x12\t\n\x05SPENT\x10\x02\x12\x0c\n\x08IMMATURE\x10\x03\x42\n\n\x08_addressB\x0f\n\r_redeemscriptB\x0e\n\x0c_blockheight\"\xab\x02\n\x11ListfundsChannels\x12\x0f\n\x07peer_id\x18\x01 \x01(\x0c\x12$\n\x0four_amount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0c\x66unding_txid\x18\x04 \x01(\x0c\x12\x16\n\x0e\x66unding_output\x18\x05 \x01(\r\x12\x11\n\tconnected\x18\x06 \x01(\x08\x12 \n\x05state\x18\x07 \x01(\x0e\x32\x11.cln.ChannelState\x12\x17\n\nchannel_id\x18\t \x01(\x0cH\x00\x88\x01\x01\x12\x1d\n\x10short_channel_id\x18\x08 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_channel_idB\x13\n\x11_short_channel_id\"\xbb\x03\n\x0eSendpayRequest\x12 \n\x05route\x18\x01 \x03(\x0b\x32\x11.cln.SendpayRoute\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\x12\n\x05label\x18\x03 \x01(\tH\x00\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0epayment_secret\x18\x06 \x01(\x0cH\x03\x88\x01\x01\x12\x13\n\x06partid\x18\x07 \x01(\x04H\x04\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\x0b \x01(\x0cH\x05\x88\x01\x01\x12\x14\n\x07groupid\x18\t \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10payment_metadata\x18\x0c \x01(\x0cH\x07\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\r \x01(\tH\x08\x88\x01\x01\x42\x08\n\x06_labelB\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\x11\n\x0f_payment_secretB\t\n\x07_partidB\x10\n\x0e_localinvreqidB\n\n\x08_groupidB\x13\n\x11_payment_metadataB\x0e\n\x0c_description\"\xad\x05\n\x0fSendpayResponse\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x00\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x01\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x07groupid\x18\x02 \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x32\n\x06status\x18\x04 \x01(\x0e\x32\".cln.SendpayResponse.SendpayStatus\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x12\n\ncreated_at\x18\x07 \x01(\x04\x12\x19\n\x0c\x63ompleted_at\x18\x0f \x01(\x04H\x05\x88\x01\x01\x12%\n\x10\x61mount_sent_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\t \x01(\tH\x06\x88\x01\x01\x12\x13\n\x06partid\x18\n \x01(\x04H\x07\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0b \x01(\tH\x08\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0c \x01(\tH\t\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\n\x88\x01\x01\x12\x14\n\x07message\x18\x0e \x01(\tH\x0b\x88\x01\x01\"*\n\rSendpayStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x42\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x0f\n\r_completed_atB\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\n\n\x08_message\"\\\n\x0cSendpayRoute\x12\n\n\x02id\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63hannel\x18\x04 \x01(\t\x12\r\n\x05\x64\x65lay\x18\x03 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\"\x93\x01\n\x13ListchannelsRequest\x12\x1d\n\x10short_channel_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06source\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x42\x13\n\x11_short_channel_idB\t\n\x07_sourceB\x0e\n\x0c_destination\"C\n\x14ListchannelsResponse\x12+\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x19.cln.ListchannelsChannels\"\xb3\x03\n\x14ListchannelsChannels\x12\x0e\n\x06source\x18\x01 \x01(\x0c\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\x0c\x12\x18\n\x10short_channel_id\x18\x03 \x01(\t\x12\x11\n\tdirection\x18\x10 \x01(\r\x12\x0e\n\x06public\x18\x04 \x01(\x08\x12 \n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x15\n\rmessage_flags\x18\x06 \x01(\r\x12\x15\n\rchannel_flags\x18\x07 \x01(\r\x12\x0e\n\x06\x61\x63tive\x18\x08 \x01(\x08\x12\x13\n\x0blast_update\x18\t \x01(\r\x12\x1d\n\x15\x62\x61se_fee_millisatoshi\x18\n \x01(\r\x12\x19\n\x11\x66\x65\x65_per_millionth\x18\x0b \x01(\r\x12\r\n\x05\x64\x65lay\x18\x0c \x01(\r\x12&\n\x11htlc_minimum_msat\x18\r \x01(\x0b\x32\x0b.cln.Amount\x12+\n\x11htlc_maximum_msat\x18\x0e \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x10\n\x08\x66\x65\x61tures\x18\x0f \x01(\x0c\x42\x14\n\x12_htlc_maximum_msat\"#\n\x10\x41\x64\x64gossipRequest\x12\x0f\n\x07message\x18\x01 \x01(\x0c\"\x13\n\x11\x41\x64\x64gossipResponse\"o\n\x17\x41utocleaninvoiceRequest\x12\x17\n\nexpired_by\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x1a\n\rcycle_seconds\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\r\n\x0b_expired_byB\x10\n\x0e_cycle_seconds\"\x81\x01\n\x18\x41utocleaninvoiceResponse\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x17\n\nexpired_by\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x1a\n\rcycle_seconds\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\r\n\x0b_expired_byB\x10\n\x0e_cycle_seconds\"U\n\x13\x43heckmessageRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\r\n\x05zbase\x18\x02 \x01(\t\x12\x13\n\x06pubkey\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x42\t\n\x07_pubkey\"8\n\x14\x43heckmessageResponse\x12\x10\n\x08verified\x18\x01 \x01(\x08\x12\x0e\n\x06pubkey\x18\x02 \x01(\x0c\"\xcb\x02\n\x0c\x43loseRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1e\n\x11unilateraltimeout\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x03 \x01(\tH\x01\x88\x01\x01\x12!\n\x14\x66\x65\x65_negotiation_step\x18\x04 \x01(\tH\x02\x88\x01\x01\x12)\n\rwrong_funding\x18\x05 \x01(\x0b\x32\r.cln.OutpointH\x03\x88\x01\x01\x12\x1f\n\x12\x66orce_lease_closed\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1e\n\x08\x66\x65\x65range\x18\x07 \x03(\x0b\x32\x0c.cln.FeerateB\x14\n\x12_unilateraltimeoutB\x0e\n\x0c_destinationB\x17\n\x15_fee_negotiation_stepB\x10\n\x0e_wrong_fundingB\x15\n\x13_force_lease_closed\"\xab\x01\n\rCloseResponse\x12/\n\titem_type\x18\x01 \x01(\x0e\x32\x1c.cln.CloseResponse.CloseType\x12\x0f\n\x02tx\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x11\n\x04txid\x18\x03 \x01(\x0cH\x01\x88\x01\x01\"5\n\tCloseType\x12\n\n\x06MUTUAL\x10\x00\x12\x0e\n\nUNILATERAL\x10\x01\x12\x0c\n\x08UNOPENED\x10\x02\x42\x05\n\x03_txB\x07\n\x05_txid\"T\n\x0e\x43onnectRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x04host\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04port\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_hostB\x07\n\x05_port\"\xb4\x01\n\x0f\x43onnectResponse\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x10\n\x08\x66\x65\x61tures\x18\x02 \x01(\x0c\x12\x38\n\tdirection\x18\x03 \x01(\x0e\x32%.cln.ConnectResponse.ConnectDirection\x12$\n\x07\x61\x64\x64ress\x18\x04 \x01(\x0b\x32\x13.cln.ConnectAddress\"#\n\x10\x43onnectDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\"\xfb\x01\n\x0e\x43onnectAddress\x12\x39\n\titem_type\x18\x01 \x01(\x0e\x32&.cln.ConnectAddress.ConnectAddressType\x12\x13\n\x06socket\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04port\x18\x04 \x01(\rH\x02\x88\x01\x01\"P\n\x12\x43onnectAddressType\x12\x10\n\x0cLOCAL_SOCKET\x10\x00\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\t\n\x07_socketB\n\n\x08_addressB\x07\n\x05_port\";\n\x14\x43reateinvoiceRequest\x12\x11\n\tinvstring\x18\x01 \x01(\t\x12\x10\n\x08preimage\x18\x03 \x01(\x0c\"\xfe\x05\n\x15\x43reateinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x06\x62olt11\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12>\n\x06status\x18\x06 \x01(\x0e\x32..cln.CreateinvoiceResponse.CreateinvoiceStatus\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x12\n\nexpires_at\x18\x08 \x01(\x04\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tpay_index\x18\t \x01(\x04H\x04\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0b \x01(\x04H\x06\x88\x01\x01\x12;\n\rpaid_outpoint\x18\x11 \x01(\x0b\x32\x1f.cln.CreateinvoicePaid_outpointH\x07\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\x08\x88\x01\x01\x12\x1b\n\x0elocal_offer_id\x18\r \x01(\x0cH\t\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0f \x01(\tH\n\x88\x01\x01\"8\n\x13\x43reateinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x12\n\n\x06UNPAID\x10\x02\x42\t\n\x07_bolt11B\t\n\x07_bolt12B\x0e\n\x0c_amount_msatB\x10\n\x0e_created_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimageB\x11\n\x0f_local_offer_idB\x14\n\x12_invreq_payer_note\"X\n\x1a\x43reateinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\xb4\x02\n\x10\x44\x61tastoreRequest\x12\x0b\n\x03key\x18\x05 \x03(\t\x12\x13\n\x06string\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x36\n\x04mode\x18\x03 \x01(\x0e\x32#.cln.DatastoreRequest.DatastoreModeH\x02\x88\x01\x01\x12\x17\n\ngeneration\x18\x04 \x01(\x04H\x03\x88\x01\x01\"p\n\rDatastoreMode\x12\x0f\n\x0bMUST_CREATE\x10\x00\x12\x10\n\x0cMUST_REPLACE\x10\x01\x12\x15\n\x11\x43REATE_OR_REPLACE\x10\x02\x12\x0f\n\x0bMUST_APPEND\x10\x03\x12\x14\n\x10\x43REATE_OR_APPEND\x10\x04\x42\t\n\x07_stringB\x06\n\x04_hexB\x07\n\x05_modeB\r\n\x0b_generation\"\x82\x01\n\x11\x44\x61tastoreResponse\x12\x0b\n\x03key\x18\x05 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x13\n\x06string\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"\x17\n\x15\x44\x61tastoreusageRequest\"k\n\x16\x44\x61tastoreusageResponse\x12>\n\x0e\x64\x61tastoreusage\x18\x01 \x01(\x0b\x32!.cln.DatastoreusageDatastoreusageH\x00\x88\x01\x01\x42\x11\n\x0f_datastoreusage\"b\n\x1c\x44\x61tastoreusageDatastoreusage\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0btotal_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x06\n\x04_keyB\x0e\n\x0c_total_bytes\"\x9d\x01\n\x12\x43reateonionRequest\x12\"\n\x04hops\x18\x01 \x03(\x0b\x32\x14.cln.CreateonionHops\x12\x11\n\tassocdata\x18\x02 \x01(\x0c\x12\x18\n\x0bsession_key\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x17\n\nonion_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x42\x0e\n\x0c_session_keyB\r\n\x0b_onion_size\"<\n\x13\x43reateonionResponse\x12\r\n\x05onion\x18\x01 \x01(\x0c\x12\x16\n\x0eshared_secrets\x18\x02 \x03(\x0c\"2\n\x0f\x43reateonionHops\x12\x0e\n\x06pubkey\x18\x01 \x01(\x0c\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\"J\n\x13\x44\x65ldatastoreRequest\x12\x0b\n\x03key\x18\x03 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\r\n\x0b_generation\"\x85\x01\n\x14\x44\x65ldatastoreResponse\x12\x0b\n\x03key\x18\x05 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x13\n\x06string\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"H\n\x18\x44\x65lexpiredinvoiceRequest\x12\x1a\n\rmaxexpirytime\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\x10\n\x0e_maxexpirytime\"\x1b\n\x19\x44\x65lexpiredinvoiceResponse\"\xb6\x01\n\x11\x44\x65linvoiceRequest\x12\r\n\x05label\x18\x01 \x01(\t\x12\x37\n\x06status\x18\x02 \x01(\x0e\x32\'.cln.DelinvoiceRequest.DelinvoiceStatus\x12\x15\n\x08\x64\x65sconly\x18\x03 \x01(\x08H\x00\x88\x01\x01\"5\n\x10\x44\x65linvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x12\n\n\x06UNPAID\x10\x02\x42\x0b\n\t_desconly\"\xa1\x04\n\x12\x44\x65linvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x06\x62olt11\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x03 \x01(\tH\x01\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x06 \x01(\x0c\x12\x1a\n\rcreated_index\x18\x0c \x01(\x04H\x04\x88\x01\x01\x12\x1a\n\rupdated_index\x18\r \x01(\x04H\x05\x88\x01\x01\x12\x38\n\x06status\x18\x07 \x01(\x0e\x32(.cln.DelinvoiceResponse.DelinvoiceStatus\x12\x12\n\nexpires_at\x18\x08 \x01(\x04\x12\x1b\n\x0elocal_offer_id\x18\t \x01(\x0cH\x06\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0b \x01(\tH\x07\x88\x01\x01\"5\n\x10\x44\x65linvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x12\n\n\x06UNPAID\x10\x02\x42\t\n\x07_bolt11B\t\n\x07_bolt12B\x0e\n\x0c_amount_msatB\x0e\n\x0c_descriptionB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x11\n\x0f_local_offer_idB\x14\n\x12_invreq_payer_note\"\xfa\x01\n\x0eInvoiceRequest\x12%\n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x10.cln.AmountOrAny\x12\r\n\x05label\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x13\n\x06\x65xpiry\x18\x07 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\tfallbacks\x18\x04 \x03(\t\x12\x15\n\x08preimage\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x11\n\x04\x63ltv\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0c\x64\x65schashonly\x18\t \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_expiryB\x0b\n\t_preimageB\x07\n\x05_cltvB\x0f\n\r_deschashonly\"\x95\x03\n\x0fInvoiceResponse\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\x16\n\x0epayment_secret\x18\x03 \x01(\x0c\x12\x12\n\nexpires_at\x18\x04 \x01(\x04\x12\x1a\n\rcreated_index\x18\n \x01(\x04H\x00\x88\x01\x01\x12\x1d\n\x10warning_capacity\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fwarning_offline\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x10warning_deadends\x18\x07 \x01(\tH\x03\x88\x01\x01\x12#\n\x16warning_private_unused\x18\x08 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0bwarning_mpp\x18\t \x01(\tH\x05\x88\x01\x01\x42\x10\n\x0e_created_indexB\x13\n\x11_warning_capacityB\x12\n\x10_warning_offlineB\x13\n\x11_warning_deadendsB\x19\n\x17_warning_private_unusedB\x0e\n\x0c_warning_mpp\"#\n\x14ListdatastoreRequest\x12\x0b\n\x03key\x18\x02 \x03(\t\"G\n\x15ListdatastoreResponse\x12.\n\tdatastore\x18\x01 \x03(\x0b\x32\x1b.cln.ListdatastoreDatastore\"\x87\x01\n\x16ListdatastoreDatastore\x12\x0b\n\x03key\x18\x01 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x13\n\x06string\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"\xde\x02\n\x13ListinvoicesRequest\x12\x12\n\x05label\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tinvstring\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x12\x15\n\x08offer_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12>\n\x05index\x18\x05 \x01(\x0e\x32*.cln.ListinvoicesRequest.ListinvoicesIndexH\x04\x88\x01\x01\x12\x12\n\x05start\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x12\n\x05limit\x18\x07 \x01(\rH\x06\x88\x01\x01\"-\n\x11ListinvoicesIndex\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x42\x08\n\x06_labelB\x0c\n\n_invstringB\x0f\n\r_payment_hashB\x0b\n\t_offer_idB\x08\n\x06_indexB\x08\n\x06_startB\x08\n\x06_limit\"C\n\x14ListinvoicesResponse\x12+\n\x08invoices\x18\x01 \x03(\x0b\x32\x19.cln.ListinvoicesInvoices\"\xd4\x06\n\x14ListinvoicesInvoices\x12\r\n\x05label\x18\x01 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x44\n\x06status\x18\x04 \x01(\x0e\x32\x34.cln.ListinvoicesInvoices.ListinvoicesInvoicesStatus\x12\x12\n\nexpires_at\x18\x05 \x01(\x04\x12%\n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0elocal_offer_id\x18\t \x01(\x0cH\x04\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0f \x01(\tH\x05\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x07\x88\x01\x01\x12\x16\n\tpay_index\x18\x0b \x01(\x04H\x08\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\t\x88\x01\x01\x12\x14\n\x07paid_at\x18\r \x01(\x04H\n\x88\x01\x01\x12\x42\n\rpaid_outpoint\x18\x12 \x01(\x0b\x32&.cln.ListinvoicesInvoicesPaid_outpointH\x0b\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0e \x01(\x0cH\x0c\x88\x01\x01\"?\n\x1aListinvoicesInvoicesStatus\x12\n\n\x06UNPAID\x10\x00\x12\x08\n\x04PAID\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x11\n\x0f_local_offer_idB\x14\n\x12_invreq_payer_noteB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimage\"_\n!ListinvoicesInvoicesPaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\xb4\x03\n\x10SendonionRequest\x12\r\n\x05onion\x18\x01 \x01(\x0c\x12*\n\tfirst_hop\x18\x02 \x01(\x0b\x32\x17.cln.SendonionFirst_hop\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x12\n\x05label\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0eshared_secrets\x18\x05 \x03(\x0c\x12\x13\n\x06partid\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x02\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\t \x01(\x0cH\x04\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\r \x01(\x0cH\x05\x88\x01\x01\x12\x14\n\x07groupid\x18\x0b \x01(\x04H\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0e \x01(\tH\x07\x88\x01\x01\x42\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x10\n\x0e_localinvreqidB\n\n\x08_groupidB\x0e\n\x0c_description\"\xe7\x04\n\x11SendonionResponse\x12\x1a\n\rcreated_index\x18\x0e \x01(\x04H\x00\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\x36\n\x06status\x18\x03 \x01(\x0e\x32&.cln.SendonionResponse.SendonionStatus\x12%\n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x05 \x01(\x0cH\x02\x88\x01\x01\x12\x12\n\ncreated_at\x18\x06 \x01(\x04\x12%\n\x10\x61mount_sent_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\t \x01(\tH\x04\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\n \x01(\tH\x05\x88\x01\x01\x12\x13\n\x06partid\x18\r \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0f \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0b \x01(\x0cH\x08\x88\x01\x01\x12\x14\n\x07message\x18\x0c \x01(\tH\t\x88\x01\x01\",\n\x0fSendonionStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x42\x10\n\x0e_created_indexB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_bolt11B\t\n\x07_bolt12B\t\n\x07_partidB\x10\n\x0e_updated_indexB\x13\n\x11_payment_preimageB\n\n\x08_message\"Q\n\x12SendonionFirst_hop\x12\n\n\x02id\x18\x01 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\r\n\x05\x64\x65lay\x18\x03 \x01(\r\"\xa0\x03\n\x13ListsendpaysRequest\x12\x13\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12@\n\x06status\x18\x03 \x01(\x0e\x32+.cln.ListsendpaysRequest.ListsendpaysStatusH\x02\x88\x01\x01\x12>\n\x05index\x18\x04 \x01(\x0e\x32*.cln.ListsendpaysRequest.ListsendpaysIndexH\x03\x88\x01\x01\x12\x12\n\x05start\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x06 \x01(\rH\x05\x88\x01\x01\";\n\x12ListsendpaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"-\n\x11ListsendpaysIndex\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x42\t\n\x07_bolt11B\x0f\n\r_payment_hashB\t\n\x07_statusB\x08\n\x06_indexB\x08\n\x06_startB\x08\n\x06_limit\"C\n\x14ListsendpaysResponse\x12+\n\x08payments\x18\x01 \x03(\x0b\x32\x19.cln.ListsendpaysPayments\"\xd0\x05\n\x14ListsendpaysPayments\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x00\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0f\n\x07groupid\x18\x02 \x01(\x04\x12\x13\n\x06partid\x18\x0f \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x02\x88\x01\x01\x12\x44\n\x06status\x18\x04 \x01(\x0e\x32\x34.cln.ListsendpaysPayments.ListsendpaysPaymentsStatus\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x12\n\ncreated_at\x18\x07 \x01(\x04\x12%\n\x10\x61mount_sent_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\t \x01(\tH\x05\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\n \x01(\tH\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0e \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0b \x01(\tH\x08\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\t\x88\x01\x01\x12\x17\n\nerroronion\x18\r \x01(\x0cH\n\x88\x01\x01\"C\n\x1aListsendpaysPaymentsStatus\x12\x0b\n\x07PENDING\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x12\x0c\n\x08\x43OMPLETE\x10\x02\x42\x10\n\x0e_created_indexB\t\n\x07_partidB\x10\n\x0e_updated_indexB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_bolt11B\x0e\n\x0c_descriptionB\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\r\n\x0b_erroronion\"\x19\n\x17ListtransactionsRequest\"S\n\x18ListtransactionsResponse\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.cln.ListtransactionsTransactions\"\xf8\x01\n\x1cListtransactionsTransactions\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\r\n\x05rawtx\x18\x02 \x01(\x0c\x12\x13\n\x0b\x62lockheight\x18\x03 \x01(\r\x12\x0f\n\x07txindex\x18\x04 \x01(\r\x12\x10\n\x08locktime\x18\x07 \x01(\r\x12\x0f\n\x07version\x18\x08 \x01(\r\x12\x37\n\x06inputs\x18\t \x03(\x0b\x32\'.cln.ListtransactionsTransactionsInputs\x12\x39\n\x07outputs\x18\n \x03(\x0b\x32(.cln.ListtransactionsTransactionsOutputs\"S\n\"ListtransactionsTransactionsInputs\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\r\n\x05index\x18\x02 \x01(\r\x12\x10\n\x08sequence\x18\x03 \x01(\r\"l\n#ListtransactionsTransactionsOutputs\x12\r\n\x05index\x18\x01 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0cscriptPubKey\x18\x03 \x01(\x0c\"\xda\x03\n\nPayRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12%\n\x0b\x61mount_msat\x18\r \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x17\n\nriskfactor\x18\x08 \x01(\x01H\x02\x88\x01\x01\x12\x1a\n\rmaxfeepercent\x18\x04 \x01(\x01H\x03\x88\x01\x01\x12\x16\n\tretry_for\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x15\n\x08maxdelay\x18\x06 \x01(\rH\x05\x88\x01\x01\x12#\n\texemptfee\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\x0e \x01(\x0cH\x07\x88\x01\x01\x12\x0f\n\x07\x65xclude\x18\n \x03(\t\x12 \n\x06maxfee\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0c \x01(\tH\t\x88\x01\x01\x42\x0e\n\x0c_amount_msatB\x08\n\x06_labelB\r\n\x0b_riskfactorB\x10\n\x0e_maxfeepercentB\x0c\n\n_retry_forB\x0b\n\t_maxdelayB\x0c\n\n_exemptfeeB\x10\n\x0e_localinvreqidB\t\n\x07_maxfeeB\x0e\n\x0c_description\"\xfb\x02\n\x0bPayResponse\x12\x18\n\x10payment_preimage\x18\x01 \x01(\x0c\x12\x18\n\x0b\x64\x65stination\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x12\n\ncreated_at\x18\x04 \x01(\x01\x12\r\n\x05parts\x18\x05 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x61mount_sent_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12\'\n\x1awarning_partial_completion\x18\x08 \x01(\tH\x01\x88\x01\x01\x12*\n\x06status\x18\t \x01(\x0e\x32\x1a.cln.PayResponse.PayStatus\"2\n\tPayStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x42\x0e\n\x0c_destinationB\x1d\n\x1b_warning_partial_completion\"*\n\x10ListnodesRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x05\n\x03_id\"7\n\x11ListnodesResponse\x12\"\n\x05nodes\x18\x01 \x03(\x0b\x32\x13.cln.ListnodesNodes\"\xe1\x01\n\x0eListnodesNodes\x12\x0e\n\x06nodeid\x18\x01 \x01(\x0c\x12\x1b\n\x0elast_timestamp\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x61lias\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x04 \x01(\x0cH\x02\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18\x05 \x01(\x0cH\x03\x88\x01\x01\x12/\n\taddresses\x18\x06 \x03(\x0b\x32\x1c.cln.ListnodesNodesAddressesB\x11\n\x0f_last_timestampB\x08\n\x06_aliasB\x08\n\x06_colorB\x0b\n\t_features\"\xe8\x01\n\x17ListnodesNodesAddresses\x12K\n\titem_type\x18\x01 \x01(\x0e\x32\x38.cln.ListnodesNodesAddresses.ListnodesNodesAddressesType\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x00\x88\x01\x01\"P\n\x1bListnodesNodesAddressesType\x12\x07\n\x03\x44NS\x10\x00\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\n\n\x08_address\"g\n\x15WaitanyinvoiceRequest\x12\x1a\n\rlastpay_index\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x10\n\x0e_lastpay_indexB\n\n\x08_timeout\"\xbf\x05\n\x16WaitanyinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12@\n\x06status\x18\x04 \x01(\x0e\x32\x30.cln.WaitanyinvoiceResponse.WaitanyinvoiceStatus\x12\x12\n\nexpires_at\x18\x05 \x01(\x04\x12%\n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rcreated_index\x18\r \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tpay_index\x18\t \x01(\x04H\x05\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0b \x01(\x04H\x07\x88\x01\x01\x12<\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32 .cln.WaitanyinvoicePaid_outpointH\x08\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\t\x88\x01\x01\"-\n\x14WaitanyinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimage\"Y\n\x1bWaitanyinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\x14\n\x12WaitinvoiceRequest\"\xb0\x05\n\x13WaitinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12:\n\x06status\x18\x04 \x01(\x0e\x32*.cln.WaitinvoiceResponse.WaitinvoiceStatus\x12\x12\n\nexpires_at\x18\x05 \x01(\x04\x12%\n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rcreated_index\x18\r \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tpay_index\x18\t \x01(\x04H\x05\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0b \x01(\x04H\x07\x88\x01\x01\x12\x39\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32\x1d.cln.WaitinvoicePaid_outpointH\x08\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\t\x88\x01\x01\"*\n\x11WaitinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimage\"V\n\x18WaitinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\x8e\x01\n\x12WaitsendpayRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x14\n\x07timeout\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06partid\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07groupid\x18\x04 \x01(\x04H\x02\x88\x01\x01\x42\n\n\x08_timeoutB\t\n\x07_partidB\n\n\x08_groupid\"\x8e\x05\n\x13WaitsendpayResponse\x12\x1a\n\rcreated_index\x18\x0f \x01(\x04H\x00\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x07groupid\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12:\n\x06status\x18\x04 \x01(\x0e\x32*.cln.WaitsendpayResponse.WaitsendpayStatus\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x03\x88\x01\x01\x12\x12\n\ncreated_at\x18\x07 \x01(\x04\x12\x1a\n\rupdated_index\x18\x10 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x0e \x01(\x01H\x05\x88\x01\x01\x12%\n\x10\x61mount_sent_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\t \x01(\tH\x06\x88\x01\x01\x12\x13\n\x06partid\x18\n \x01(\x04H\x07\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0b \x01(\tH\x08\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0c \x01(\tH\t\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\n\x88\x01\x01\"!\n\x11WaitsendpayStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x42\x10\n\x0e_created_indexB\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x10\n\x0e_updated_indexB\x0f\n\r_completed_atB\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimage\"\x97\x01\n\x0eNewaddrRequest\x12@\n\x0b\x61\x64\x64resstype\x18\x01 \x01(\x0e\x32&.cln.NewaddrRequest.NewaddrAddresstypeH\x00\x88\x01\x01\"3\n\x12NewaddrAddresstype\x12\n\n\x06\x42\x45\x43H32\x10\x00\x12\x08\n\x04P2TR\x10\x03\x12\x07\n\x03\x41LL\x10\x02\x42\x0e\n\x0c_addresstype\"M\n\x0fNewaddrResponse\x12\x11\n\x04p2tr\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62\x65\x63h32\x18\x01 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_p2trB\t\n\x07_bech32\"\xb9\x01\n\x0fWithdrawRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12!\n\x07satoshi\x18\x02 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\"\n\x07\x66\x65\x65rate\x18\x05 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x14\n\x07minconf\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.OutpointB\n\n\x08_feerateB\n\n\x08_minconf\":\n\x10WithdrawResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\x12\x0c\n\x04psbt\x18\x03 \x01(\t\"\x82\x03\n\x0eKeysendRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rmaxfeepercent\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12\x16\n\tretry_for\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x15\n\x08maxdelay\x18\x06 \x01(\rH\x03\x88\x01\x01\x12#\n\texemptfee\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12+\n\nroutehints\x18\x08 \x01(\x0b\x32\x12.cln.RoutehintListH\x05\x88\x01\x01\x12&\n\textratlvs\x18\t \x01(\x0b\x32\x0e.cln.TlvStreamH\x06\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_maxfeepercentB\x0c\n\n_retry_forB\x0b\n\t_maxdelayB\x0c\n\n_exemptfeeB\r\n\x0b_routehintsB\x0c\n\n_extratlvs\"\xf2\x02\n\x0fKeysendResponse\x12\x18\n\x10payment_preimage\x18\x01 \x01(\x0c\x12\x18\n\x0b\x64\x65stination\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x12\n\ncreated_at\x18\x04 \x01(\x01\x12\r\n\x05parts\x18\x05 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x61mount_sent_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12\'\n\x1awarning_partial_completion\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x32\n\x06status\x18\t \x01(\x0e\x32\".cln.KeysendResponse.KeysendStatus\"\x1d\n\rKeysendStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x42\x0e\n\x0c_destinationB\x1d\n\x1b_warning_partial_completion\"\xa4\x03\n\x0f\x46undpsbtRequest\x12!\n\x07satoshi\x18\x01 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\x1d\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.Feerate\x12\x13\n\x0bstartweight\x18\x03 \x01(\r\x12\x14\n\x07minconf\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07reserve\x18\x05 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08locktime\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12min_witness_weight\x18\x07 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10\x65xcess_as_change\x18\x08 \x01(\x08H\x04\x88\x01\x01\x12\x17\n\nnonwrapped\x18\t \x01(\x08H\x05\x88\x01\x01\x12#\n\x16opening_anchor_channel\x18\n \x01(\x08H\x06\x88\x01\x01\x42\n\n\x08_minconfB\n\n\x08_reserveB\x0b\n\t_locktimeB\x15\n\x13_min_witness_weightB\x13\n\x11_excess_as_changeB\r\n\x0b_nonwrappedB\x19\n\x17_opening_anchor_channel\"\xd9\x01\n\x10\x46undpsbtResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x16\n\x0e\x66\x65\x65rate_per_kw\x18\x02 \x01(\r\x12\x1e\n\x16\x65stimated_final_weight\x18\x03 \x01(\r\x12 \n\x0b\x65xcess_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x1a\n\rchange_outnum\x18\x05 \x01(\rH\x00\x88\x01\x01\x12/\n\x0creservations\x18\x06 \x03(\x0b\x32\x19.cln.FundpsbtReservationsB\x10\n\x0e_change_outnum\"u\n\x14\x46undpsbtReservations\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0c\n\x04vout\x18\x02 \x01(\r\x12\x14\n\x0cwas_reserved\x18\x03 \x01(\x08\x12\x10\n\x08reserved\x18\x04 \x01(\x08\x12\x19\n\x11reserved_to_block\x18\x05 \x01(\r\"A\n\x0fSendpsbtRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x14\n\x07reserve\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_reserve\",\n\x10SendpsbtResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\"1\n\x0fSignpsbtRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x10\n\x08signonly\x18\x02 \x03(\r\"\'\n\x10SignpsbtResponse\x12\x13\n\x0bsigned_psbt\x18\x01 \x01(\t\"\xa0\x03\n\x0fUtxopsbtRequest\x12!\n\x07satoshi\x18\x01 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\x1d\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.Feerate\x12\x13\n\x0bstartweight\x18\x03 \x01(\r\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.Outpoint\x12\x14\n\x07reserve\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nreservedok\x18\x08 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08locktime\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12min_witness_weight\x18\x07 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10\x65xcess_as_change\x18\t \x01(\x08H\x04\x88\x01\x01\x12#\n\x16opening_anchor_channel\x18\n \x01(\x08H\x05\x88\x01\x01\x42\n\n\x08_reserveB\r\n\x0b_reservedokB\x0b\n\t_locktimeB\x15\n\x13_min_witness_weightB\x13\n\x11_excess_as_changeB\x19\n\x17_opening_anchor_channel\"\xd9\x01\n\x10UtxopsbtResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x16\n\x0e\x66\x65\x65rate_per_kw\x18\x02 \x01(\r\x12\x1e\n\x16\x65stimated_final_weight\x18\x03 \x01(\r\x12 \n\x0b\x65xcess_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x1a\n\rchange_outnum\x18\x05 \x01(\rH\x00\x88\x01\x01\x12/\n\x0creservations\x18\x06 \x03(\x0b\x32\x19.cln.UtxopsbtReservationsB\x10\n\x0e_change_outnum\"u\n\x14UtxopsbtReservations\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0c\n\x04vout\x18\x02 \x01(\r\x12\x14\n\x0cwas_reserved\x18\x03 \x01(\x08\x12\x10\n\x08reserved\x18\x04 \x01(\x08\x12\x19\n\x11reserved_to_block\x18\x05 \x01(\r\" \n\x10TxdiscardRequest\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\"6\n\x11TxdiscardResponse\x12\x13\n\x0bunsigned_tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\"\xa4\x01\n\x10TxprepareRequest\x12 \n\x07outputs\x18\x05 \x03(\x0b\x32\x0f.cln.OutputDesc\x12\"\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x14\n\x07minconf\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.OutpointB\n\n\x08_feerateB\n\n\x08_minconf\"D\n\x11TxprepareResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x13\n\x0bunsigned_tx\x18\x02 \x01(\x0c\x12\x0c\n\x04txid\x18\x03 \x01(\x0c\"\x1d\n\rTxsendRequest\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\"8\n\x0eTxsendResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\n\n\x02tx\x18\x02 \x01(\x0c\x12\x0c\n\x04txid\x18\x03 \x01(\x0c\"1\n\x17ListpeerchannelsRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x05\n\x03_id\"K\n\x18ListpeerchannelsResponse\x12/\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1d.cln.ListpeerchannelsChannels\"\x8a\x1b\n\x18ListpeerchannelsChannels\x12\x14\n\x07peer_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x1b\n\x0epeer_connected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12O\n\x05state\x18\x03 \x01(\x0e\x32;.cln.ListpeerchannelsChannels.ListpeerchannelsChannelsStateH\x02\x88\x01\x01\x12\x19\n\x0cscratch_txid\x18\x04 \x01(\x0cH\x03\x88\x01\x01\x12:\n\x07updates\x18\x37 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsUpdatesH\x04\x88\x01\x01\x12\x1e\n\x11ignore_fee_limits\x18\x36 \x01(\x08H\x05\x88\x01\x01\x12\x17\n\nlost_state\x18\x39 \x01(\x08H\x06\x88\x01\x01\x12:\n\x07\x66\x65\x65rate\x18\x06 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFeerateH\x07\x88\x01\x01\x12\x12\n\x05owner\x18\x07 \x01(\tH\x08\x88\x01\x01\x12\x1d\n\x10short_channel_id\x18\x08 \x01(\tH\t\x88\x01\x01\x12\x17\n\nchannel_id\x18\t \x01(\x0cH\n\x88\x01\x01\x12\x19\n\x0c\x66unding_txid\x18\n \x01(\x0cH\x0b\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x0b \x01(\rH\x0c\x88\x01\x01\x12\x1c\n\x0finitial_feerate\x18\x0c \x01(\tH\r\x88\x01\x01\x12\x19\n\x0clast_feerate\x18\r \x01(\tH\x0e\x88\x01\x01\x12\x19\n\x0cnext_feerate\x18\x0e \x01(\tH\x0f\x88\x01\x01\x12\x1a\n\rnext_fee_step\x18\x0f \x01(\rH\x10\x88\x01\x01\x12\x37\n\x08inflight\x18\x10 \x03(\x0b\x32%.cln.ListpeerchannelsChannelsInflight\x12\x15\n\x08\x63lose_to\x18\x11 \x01(\x0cH\x11\x88\x01\x01\x12\x14\n\x07private\x18\x12 \x01(\x08H\x12\x88\x01\x01\x12%\n\x06opener\x18\x13 \x01(\x0e\x32\x10.cln.ChannelSideH\x13\x88\x01\x01\x12%\n\x06\x63loser\x18\x14 \x01(\x0e\x32\x10.cln.ChannelSideH\x14\x88\x01\x01\x12:\n\x07\x66unding\x18\x16 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFundingH\x15\x88\x01\x01\x12$\n\nto_us_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x16\x88\x01\x01\x12(\n\x0emin_to_us_msat\x18\x18 \x01(\x0b\x32\x0b.cln.AmountH\x17\x88\x01\x01\x12(\n\x0emax_to_us_msat\x18\x19 \x01(\x0b\x32\x0b.cln.AmountH\x18\x88\x01\x01\x12$\n\ntotal_msat\x18\x1a \x01(\x0b\x32\x0b.cln.AmountH\x19\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x1b \x01(\x0b\x32\x0b.cln.AmountH\x1a\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x1c \x01(\rH\x1b\x88\x01\x01\x12)\n\x0f\x64ust_limit_msat\x18\x1d \x01(\x0b\x32\x0b.cln.AmountH\x1c\x88\x01\x01\x12\x30\n\x16max_total_htlc_in_msat\x18\x1e \x01(\x0b\x32\x0b.cln.AmountH\x1d\x88\x01\x01\x12,\n\x12their_reserve_msat\x18\x1f \x01(\x0b\x32\x0b.cln.AmountH\x1e\x88\x01\x01\x12*\n\x10our_reserve_msat\x18 \x01(\x0b\x32\x0b.cln.AmountH\x1f\x88\x01\x01\x12(\n\x0espendable_msat\x18! \x01(\x0b\x32\x0b.cln.AmountH \x88\x01\x01\x12)\n\x0freceivable_msat\x18\" \x01(\x0b\x32\x0b.cln.AmountH!\x88\x01\x01\x12.\n\x14minimum_htlc_in_msat\x18# \x01(\x0b\x32\x0b.cln.AmountH\"\x88\x01\x01\x12/\n\x15minimum_htlc_out_msat\x18$ \x01(\x0b\x32\x0b.cln.AmountH#\x88\x01\x01\x12/\n\x15maximum_htlc_out_msat\x18% \x01(\x0b\x32\x0b.cln.AmountH$\x88\x01\x01\x12 \n\x13their_to_self_delay\x18& \x01(\rH%\x88\x01\x01\x12\x1e\n\x11our_to_self_delay\x18\' \x01(\rH&\x88\x01\x01\x12\x1f\n\x12max_accepted_htlcs\x18( \x01(\rH\'\x88\x01\x01\x12\x36\n\x05\x61lias\x18) \x01(\x0b\x32\".cln.ListpeerchannelsChannelsAliasH(\x88\x01\x01\x12\x0e\n\x06status\x18+ \x03(\t\x12 \n\x13in_payments_offered\x18, \x01(\x04H)\x88\x01\x01\x12)\n\x0fin_offered_msat\x18- \x01(\x0b\x32\x0b.cln.AmountH*\x88\x01\x01\x12\"\n\x15in_payments_fulfilled\x18. \x01(\x04H+\x88\x01\x01\x12+\n\x11in_fulfilled_msat\x18/ \x01(\x0b\x32\x0b.cln.AmountH,\x88\x01\x01\x12!\n\x14out_payments_offered\x18\x30 \x01(\x04H-\x88\x01\x01\x12*\n\x10out_offered_msat\x18\x31 \x01(\x0b\x32\x0b.cln.AmountH.\x88\x01\x01\x12#\n\x16out_payments_fulfilled\x18\x32 \x01(\x04H/\x88\x01\x01\x12,\n\x12out_fulfilled_msat\x18\x33 \x01(\x0b\x32\x0b.cln.AmountH0\x88\x01\x01\x12#\n\x16last_stable_connection\x18\x38 \x01(\x04H1\x88\x01\x01\x12\x31\n\x05htlcs\x18\x34 \x03(\x0b\x32\".cln.ListpeerchannelsChannelsHtlcs\x12\x1a\n\rclose_to_addr\x18\x35 \x01(\tH2\x88\x01\x01\"\x80\x03\n\x1dListpeerchannelsChannelsState\x12\x0c\n\x08OPENINGD\x10\x00\x12\x1c\n\x18\x43HANNELD_AWAITING_LOCKIN\x10\x01\x12\x13\n\x0f\x43HANNELD_NORMAL\x10\x02\x12\x1a\n\x16\x43HANNELD_SHUTTING_DOWN\x10\x03\x12\x18\n\x14\x43LOSINGD_SIGEXCHANGE\x10\x04\x12\x15\n\x11\x43LOSINGD_COMPLETE\x10\x05\x12\x17\n\x13\x41WAITING_UNILATERAL\x10\x06\x12\x16\n\x12\x46UNDING_SPEND_SEEN\x10\x07\x12\x0b\n\x07ONCHAIN\x10\x08\x12\x17\n\x13\x44UALOPEND_OPEN_INIT\x10\t\x12\x1d\n\x19\x44UALOPEND_AWAITING_LOCKIN\x10\n\x12\x1c\n\x18\x43HANNELD_AWAITING_SPLICE\x10\x0b\x12\x1c\n\x18\x44UALOPEND_OPEN_COMMITTED\x10\x0c\x12\x1f\n\x1b\x44UALOPEND_OPEN_COMMIT_READY\x10\rB\n\n\x08_peer_idB\x11\n\x0f_peer_connectedB\x08\n\x06_stateB\x0f\n\r_scratch_txidB\n\n\x08_updatesB\x14\n\x12_ignore_fee_limitsB\r\n\x0b_lost_stateB\n\n\x08_feerateB\x08\n\x06_ownerB\x13\n\x11_short_channel_idB\r\n\x0b_channel_idB\x0f\n\r_funding_txidB\x11\n\x0f_funding_outnumB\x12\n\x10_initial_feerateB\x0f\n\r_last_feerateB\x0f\n\r_next_feerateB\x10\n\x0e_next_fee_stepB\x0b\n\t_close_toB\n\n\x08_privateB\t\n\x07_openerB\t\n\x07_closerB\n\n\x08_fundingB\r\n\x0b_to_us_msatB\x11\n\x0f_min_to_us_msatB\x11\n\x0f_max_to_us_msatB\r\n\x0b_total_msatB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionthsB\x12\n\x10_dust_limit_msatB\x19\n\x17_max_total_htlc_in_msatB\x15\n\x13_their_reserve_msatB\x13\n\x11_our_reserve_msatB\x11\n\x0f_spendable_msatB\x12\n\x10_receivable_msatB\x17\n\x15_minimum_htlc_in_msatB\x18\n\x16_minimum_htlc_out_msatB\x18\n\x16_maximum_htlc_out_msatB\x16\n\x14_their_to_self_delayB\x14\n\x12_our_to_self_delayB\x15\n\x13_max_accepted_htlcsB\x08\n\x06_aliasB\x16\n\x14_in_payments_offeredB\x12\n\x10_in_offered_msatB\x18\n\x16_in_payments_fulfilledB\x14\n\x12_in_fulfilled_msatB\x17\n\x15_out_payments_offeredB\x13\n\x11_out_offered_msatB\x19\n\x17_out_payments_fulfilledB\x15\n\x13_out_fulfilled_msatB\x19\n\x17_last_stable_connectionB\x10\n\x0e_close_to_addr\"\xb6\x01\n\x1fListpeerchannelsChannelsUpdates\x12=\n\x05local\x18\x01 \x01(\x0b\x32).cln.ListpeerchannelsChannelsUpdatesLocalH\x00\x88\x01\x01\x12?\n\x06remote\x18\x02 \x01(\x0b\x32*.cln.ListpeerchannelsChannelsUpdatesRemoteH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"\xe7\x02\n$ListpeerchannelsChannelsUpdatesLocal\x12+\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x1e\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x14\n\x12_cltv_expiry_deltaB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionths\"\xe8\x02\n%ListpeerchannelsChannelsUpdatesRemote\x12+\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x1e\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x14\n\x12_cltv_expiry_deltaB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionths\"]\n\x1fListpeerchannelsChannelsFeerate\x12\x12\n\x05perkw\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05perkb\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_perkwB\x08\n\x06_perkb\"\x80\x03\n ListpeerchannelsChannelsInflight\x12\x19\n\x0c\x66unding_txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x03 \x01(\tH\x02\x88\x01\x01\x12,\n\x12total_funding_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x1a\n\rsplice_amount\x18\x07 \x01(\x12H\x04\x88\x01\x01\x12*\n\x10our_funding_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x19\n\x0cscratch_txid\x18\x06 \x01(\x0cH\x06\x88\x01\x01\x42\x0f\n\r_funding_txidB\x11\n\x0f_funding_outnumB\n\n\x08_feerateB\x15\n\x13_total_funding_msatB\x10\n\x0e_splice_amountB\x13\n\x11_our_funding_msatB\x0f\n\r_scratch_txid\"\xd2\x02\n\x1fListpeerchannelsChannelsFunding\x12%\n\x0bpushed_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12*\n\x10local_funds_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12+\n\x11remote_funds_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\'\n\rfee_paid_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\'\n\rfee_rcvd_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x42\x0e\n\x0c_pushed_msatB\x13\n\x11_local_funds_msatB\x14\n\x12_remote_funds_msatB\x10\n\x0e_fee_paid_msatB\x10\n\x0e_fee_rcvd_msat\"]\n\x1dListpeerchannelsChannelsAlias\x12\x12\n\x05local\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06remote\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"\xe2\x03\n\x1dListpeerchannelsChannelsHtlcs\x12\x61\n\tdirection\x18\x01 \x01(\x0e\x32I.cln.ListpeerchannelsChannelsHtlcs.ListpeerchannelsChannelsHtlcsDirectionH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x13\n\x06\x65xpiry\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x05 \x01(\x0cH\x04\x88\x01\x01\x12\x1a\n\rlocal_trimmed\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06status\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\"\n\x05state\x18\x08 \x01(\x0e\x32\x0e.cln.HtlcStateH\x07\x88\x01\x01\"9\n&ListpeerchannelsChannelsHtlcsDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\x42\x0c\n\n_directionB\x05\n\x03_idB\x0e\n\x0c_amount_msatB\t\n\x07_expiryB\x0f\n\r_payment_hashB\x10\n\x0e_local_trimmedB\t\n\x07_statusB\x08\n\x06_state\"3\n\x19ListclosedchannelsRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x05\n\x03_id\"[\n\x1aListclosedchannelsResponse\x12=\n\x0e\x63losedchannels\x18\x01 \x03(\x0b\x32%.cln.ListclosedchannelsClosedchannels\"\xf2\t\n ListclosedchannelsClosedchannels\x12\x14\n\x07peer_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\nchannel_id\x18\x02 \x01(\x0c\x12\x1d\n\x10short_channel_id\x18\x03 \x01(\tH\x01\x88\x01\x01\x12>\n\x05\x61lias\x18\x04 \x01(\x0b\x32*.cln.ListclosedchannelsClosedchannelsAliasH\x02\x88\x01\x01\x12 \n\x06opener\x18\x05 \x01(\x0e\x32\x10.cln.ChannelSide\x12%\n\x06\x63loser\x18\x06 \x01(\x0e\x32\x10.cln.ChannelSideH\x03\x88\x01\x01\x12\x0f\n\x07private\x18\x07 \x01(\x08\x12\x1f\n\x17total_local_commitments\x18\t \x01(\x04\x12 \n\x18total_remote_commitments\x18\n \x01(\x04\x12\x18\n\x10total_htlcs_sent\x18\x0b \x01(\x04\x12\x14\n\x0c\x66unding_txid\x18\x0c \x01(\x0c\x12\x16\n\x0e\x66unding_outnum\x18\r \x01(\r\x12\x0e\n\x06leased\x18\x0e \x01(\x08\x12/\n\x15\x66unding_fee_paid_msat\x18\x0f \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12/\n\x15\x66unding_fee_rcvd_msat\x18\x10 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12-\n\x13\x66unding_pushed_msat\x18\x11 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x1f\n\ntotal_msat\x18\x12 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x66inal_to_us_msat\x18\x13 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0emin_to_us_msat\x18\x14 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0emax_to_us_msat\x18\x15 \x01(\x0b\x32\x0b.cln.Amount\x12!\n\x14last_commitment_txid\x18\x16 \x01(\x0cH\x07\x88\x01\x01\x12\x32\n\x18last_commitment_fee_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x66\n\x0b\x63lose_cause\x18\x18 \x01(\x0e\x32Q.cln.ListclosedchannelsClosedchannels.ListclosedchannelsClosedchannelsClose_cause\x12#\n\x16last_stable_connection\x18\x19 \x01(\x04H\t\x88\x01\x01\"v\n+ListclosedchannelsClosedchannelsClose_cause\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05LOCAL\x10\x01\x12\x08\n\x04USER\x10\x02\x12\n\n\x06REMOTE\x10\x03\x12\x0c\n\x08PROTOCOL\x10\x04\x12\x0b\n\x07ONCHAIN\x10\x05\x42\n\n\x08_peer_idB\x13\n\x11_short_channel_idB\x08\n\x06_aliasB\t\n\x07_closerB\x18\n\x16_funding_fee_paid_msatB\x18\n\x16_funding_fee_rcvd_msatB\x16\n\x14_funding_pushed_msatB\x17\n\x15_last_commitment_txidB\x1b\n\x19_last_commitment_fee_msatB\x19\n\x17_last_stable_connection\"e\n%ListclosedchannelsClosedchannelsAlias\x12\x12\n\x05local\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06remote\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"L\n\x10\x44\x65\x63odepayRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\x8d\x04\n\x11\x44\x65\x63odepayResponse\x12\x10\n\x08\x63urrency\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x04\x12\x0e\n\x06\x65xpiry\x18\x03 \x01(\x04\x12\r\n\x05payee\x18\x04 \x01(\x0c\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x06 \x01(\x0c\x12\x11\n\tsignature\x18\x07 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10\x64\x65scription_hash\x18\t \x01(\x0cH\x02\x88\x01\x01\x12\x1d\n\x15min_final_cltv_expiry\x18\n \x01(\r\x12\x1b\n\x0epayment_secret\x18\x0b \x01(\x0cH\x03\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18\x0c \x01(\x0cH\x04\x88\x01\x01\x12\x1d\n\x10payment_metadata\x18\r \x01(\x0cH\x05\x88\x01\x01\x12*\n\tfallbacks\x18\x0e \x03(\x0b\x32\x17.cln.DecodepayFallbacks\x12\"\n\x05\x65xtra\x18\x10 \x03(\x0b\x32\x13.cln.DecodepayExtraB\x0e\n\x0c_amount_msatB\x0e\n\x0c_descriptionB\x13\n\x11_description_hashB\x11\n\x0f_payment_secretB\x0b\n\t_featuresB\x13\n\x11_payment_metadata\"\xd0\x01\n\x12\x44\x65\x63odepayFallbacks\x12\x41\n\titem_type\x18\x01 \x01(\x0e\x32..cln.DecodepayFallbacks.DecodepayFallbacksType\x12\x11\n\x04\x61\x64\x64r\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0b\n\x03hex\x18\x03 \x01(\x0c\"N\n\x16\x44\x65\x63odepayFallbacksType\x12\t\n\x05P2PKH\x10\x00\x12\x08\n\x04P2SH\x10\x01\x12\n\n\x06P2WPKH\x10\x02\x12\t\n\x05P2WSH\x10\x03\x12\x08\n\x04P2TR\x10\x04\x42\x07\n\x05_addr\"+\n\x0e\x44\x65\x63odepayExtra\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"\x1f\n\rDecodeRequest\x12\x0e\n\x06string\x18\x01 \x01(\t\"\xe8!\n\x0e\x44\x65\x63odeResponse\x12\x31\n\titem_type\x18\x01 \x01(\x0e\x32\x1e.cln.DecodeResponse.DecodeType\x12\r\n\x05valid\x18\x02 \x01(\x08\x12\x15\n\x08offer_id\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x0coffer_chains\x18\x04 \x03(\x0c\x12\x1b\n\x0eoffer_metadata\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x1b\n\x0eoffer_currency\x18\x06 \x01(\tH\x02\x88\x01\x01\x12+\n\x1ewarning_unknown_offer_currency\x18\x07 \x01(\tH\x03\x88\x01\x01\x12 \n\x13\x63urrency_minor_unit\x18\x08 \x01(\rH\x04\x88\x01\x01\x12\x19\n\x0coffer_amount\x18\t \x01(\x04H\x05\x88\x01\x01\x12+\n\x11offer_amount_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x1e\n\x11offer_description\x18\x0b \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0coffer_issuer\x18\x0c \x01(\tH\x08\x88\x01\x01\x12\x1b\n\x0eoffer_features\x18\r \x01(\x0cH\t\x88\x01\x01\x12\"\n\x15offer_absolute_expiry\x18\x0e \x01(\x04H\n\x88\x01\x01\x12\x1f\n\x12offer_quantity_max\x18\x0f \x01(\x04H\x0b\x88\x01\x01\x12+\n\x0boffer_paths\x18\x10 \x03(\x0b\x32\x16.cln.DecodeOffer_paths\x12\x1a\n\roffer_node_id\x18\x11 \x01(\x0cH\x0c\x88\x01\x01\x12*\n\x1dwarning_missing_offer_node_id\x18\x14 \x01(\tH\r\x88\x01\x01\x12.\n!warning_invalid_offer_description\x18\x15 \x01(\tH\x0e\x88\x01\x01\x12.\n!warning_missing_offer_description\x18\x16 \x01(\tH\x0f\x88\x01\x01\x12+\n\x1ewarning_invalid_offer_currency\x18\x17 \x01(\tH\x10\x88\x01\x01\x12)\n\x1cwarning_invalid_offer_issuer\x18\x18 \x01(\tH\x11\x88\x01\x01\x12\x1c\n\x0finvreq_metadata\x18\x19 \x01(\x0cH\x12\x88\x01\x01\x12\x1c\n\x0finvreq_payer_id\x18\x1a \x01(\x0cH\x13\x88\x01\x01\x12\x19\n\x0cinvreq_chain\x18\x1b \x01(\x0cH\x14\x88\x01\x01\x12,\n\x12invreq_amount_msat\x18\x1c \x01(\x0b\x32\x0b.cln.AmountH\x15\x88\x01\x01\x12\x1c\n\x0finvreq_features\x18\x1d \x01(\x0cH\x16\x88\x01\x01\x12\x1c\n\x0finvreq_quantity\x18\x1e \x01(\x04H\x17\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x1f \x01(\tH\x18\x88\x01\x01\x12&\n\x19invreq_recurrence_counter\x18 \x01(\rH\x19\x88\x01\x01\x12$\n\x17invreq_recurrence_start\x18! \x01(\rH\x1a\x88\x01\x01\x12,\n\x1fwarning_missing_invreq_metadata\x18# \x01(\tH\x1b\x88\x01\x01\x12,\n\x1fwarning_missing_invreq_payer_id\x18$ \x01(\tH\x1c\x88\x01\x01\x12.\n!warning_invalid_invreq_payer_note\x18% \x01(\tH\x1d\x88\x01\x01\x12\x36\n)warning_missing_invoice_request_signature\x18& \x01(\tH\x1e\x88\x01\x01\x12\x36\n)warning_invalid_invoice_request_signature\x18\' \x01(\tH\x1f\x88\x01\x01\x12\x1f\n\x12invoice_created_at\x18) \x01(\x04H \x88\x01\x01\x12$\n\x17invoice_relative_expiry\x18* \x01(\rH!\x88\x01\x01\x12!\n\x14invoice_payment_hash\x18+ \x01(\x0cH\"\x88\x01\x01\x12-\n\x13invoice_amount_msat\x18, \x01(\x0b\x32\x0b.cln.AmountH#\x88\x01\x01\x12\x37\n\x11invoice_fallbacks\x18- \x03(\x0b\x32\x1c.cln.DecodeInvoice_fallbacks\x12\x1d\n\x10invoice_features\x18. \x01(\x0cH$\x88\x01\x01\x12\x1c\n\x0finvoice_node_id\x18/ \x01(\x0cH%\x88\x01\x01\x12(\n\x1binvoice_recurrence_basetime\x18\x30 \x01(\x04H&\x88\x01\x01\x12*\n\x1dwarning_missing_invoice_paths\x18\x32 \x01(\tH\'\x88\x01\x01\x12/\n\"warning_missing_invoice_blindedpay\x18\x33 \x01(\tH(\x88\x01\x01\x12/\n\"warning_missing_invoice_created_at\x18\x34 \x01(\tH)\x88\x01\x01\x12\x31\n$warning_missing_invoice_payment_hash\x18\x35 \x01(\tH*\x88\x01\x01\x12+\n\x1ewarning_missing_invoice_amount\x18\x36 \x01(\tH+\x88\x01\x01\x12\x38\n+warning_missing_invoice_recurrence_basetime\x18\x37 \x01(\tH,\x88\x01\x01\x12,\n\x1fwarning_missing_invoice_node_id\x18\x38 \x01(\tH-\x88\x01\x01\x12.\n!warning_missing_invoice_signature\x18\x39 \x01(\tH.\x88\x01\x01\x12.\n!warning_invalid_invoice_signature\x18: \x01(\tH/\x88\x01\x01\x12\'\n\tfallbacks\x18; \x03(\x0b\x32\x14.cln.DecodeFallbacks\x12\x17\n\ncreated_at\x18< \x01(\x04H0\x88\x01\x01\x12\x13\n\x06\x65xpiry\x18= \x01(\x04H1\x88\x01\x01\x12\x12\n\x05payee\x18> \x01(\x0cH2\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18? \x01(\x0cH3\x88\x01\x01\x12\x1d\n\x10\x64\x65scription_hash\x18@ \x01(\x0cH4\x88\x01\x01\x12\"\n\x15min_final_cltv_expiry\x18\x41 \x01(\rH5\x88\x01\x01\x12\x1b\n\x0epayment_secret\x18\x42 \x01(\x0cH6\x88\x01\x01\x12\x1d\n\x10payment_metadata\x18\x43 \x01(\x0cH7\x88\x01\x01\x12\x1f\n\x05\x65xtra\x18\x45 \x03(\x0b\x32\x10.cln.DecodeExtra\x12\x16\n\tunique_id\x18\x46 \x01(\tH8\x88\x01\x01\x12\x14\n\x07version\x18G \x01(\tH9\x88\x01\x01\x12\x13\n\x06string\x18H \x01(\tH:\x88\x01\x01\x12-\n\x0crestrictions\x18I \x03(\x0b\x32\x17.cln.DecodeRestrictions\x12&\n\x19warning_rune_invalid_utf8\x18J \x01(\tH;\x88\x01\x01\x12\x10\n\x03hex\x18K \x01(\x0cH<\x88\x01\x01\x12\x16\n\tdecrypted\x18L \x01(\x0cH=\x88\x01\x01\"\x83\x01\n\nDecodeType\x12\x10\n\x0c\x42OLT12_OFFER\x10\x00\x12\x12\n\x0e\x42OLT12_INVOICE\x10\x01\x12\x1a\n\x16\x42OLT12_INVOICE_REQUEST\x10\x02\x12\x12\n\x0e\x42OLT11_INVOICE\x10\x03\x12\x08\n\x04RUNE\x10\x04\x12\x15\n\x11\x45MERGENCY_RECOVER\x10\x05\x42\x0b\n\t_offer_idB\x11\n\x0f_offer_metadataB\x11\n\x0f_offer_currencyB!\n\x1f_warning_unknown_offer_currencyB\x16\n\x14_currency_minor_unitB\x0f\n\r_offer_amountB\x14\n\x12_offer_amount_msatB\x14\n\x12_offer_descriptionB\x0f\n\r_offer_issuerB\x11\n\x0f_offer_featuresB\x18\n\x16_offer_absolute_expiryB\x15\n\x13_offer_quantity_maxB\x10\n\x0e_offer_node_idB \n\x1e_warning_missing_offer_node_idB$\n\"_warning_invalid_offer_descriptionB$\n\"_warning_missing_offer_descriptionB!\n\x1f_warning_invalid_offer_currencyB\x1f\n\x1d_warning_invalid_offer_issuerB\x12\n\x10_invreq_metadataB\x12\n\x10_invreq_payer_idB\x0f\n\r_invreq_chainB\x15\n\x13_invreq_amount_msatB\x12\n\x10_invreq_featuresB\x12\n\x10_invreq_quantityB\x14\n\x12_invreq_payer_noteB\x1c\n\x1a_invreq_recurrence_counterB\x1a\n\x18_invreq_recurrence_startB\"\n _warning_missing_invreq_metadataB\"\n _warning_missing_invreq_payer_idB$\n\"_warning_invalid_invreq_payer_noteB,\n*_warning_missing_invoice_request_signatureB,\n*_warning_invalid_invoice_request_signatureB\x15\n\x13_invoice_created_atB\x1a\n\x18_invoice_relative_expiryB\x17\n\x15_invoice_payment_hashB\x16\n\x14_invoice_amount_msatB\x13\n\x11_invoice_featuresB\x12\n\x10_invoice_node_idB\x1e\n\x1c_invoice_recurrence_basetimeB \n\x1e_warning_missing_invoice_pathsB%\n#_warning_missing_invoice_blindedpayB%\n#_warning_missing_invoice_created_atB\'\n%_warning_missing_invoice_payment_hashB!\n\x1f_warning_missing_invoice_amountB.\n,_warning_missing_invoice_recurrence_basetimeB\"\n _warning_missing_invoice_node_idB$\n\"_warning_missing_invoice_signatureB$\n\"_warning_invalid_invoice_signatureB\r\n\x0b_created_atB\t\n\x07_expiryB\x08\n\x06_payeeB\x0f\n\r_payment_hashB\x13\n\x11_description_hashB\x18\n\x16_min_final_cltv_expiryB\x11\n\x0f_payment_secretB\x13\n\x11_payment_metadataB\x0c\n\n_unique_idB\n\n\x08_versionB\t\n\x07_stringB\x1c\n\x1a_warning_rune_invalid_utf8B\x06\n\x04_hexB\x0c\n\n_decrypted\"<\n\x11\x44\x65\x63odeOffer_paths\x12\x15\n\rfirst_node_id\x18\x01 \x01(\x0c\x12\x10\n\x08\x62linding\x18\x02 \x01(\x0c\"\x8a\x01\n\x1f\x44\x65\x63odeOffer_recurrencePaywindow\x12\x16\n\x0eseconds_before\x18\x01 \x01(\r\x12\x15\n\rseconds_after\x18\x02 \x01(\r\x12 \n\x13proportional_amount\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_proportional_amount\"T\n\x17\x44\x65\x63odeInvoice_pathsPath\x12\x17\n\x0f\x62linded_node_id\x18\x01 \x01(\x0c\x12 \n\x18\x65ncrypted_recipient_data\x18\x02 \x01(\x0c\"Y\n\x17\x44\x65\x63odeInvoice_fallbacks\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x0b\n\x03hex\x18\x02 \x01(\x0c\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"w\n\x0f\x44\x65\x63odeFallbacks\x12\x36\n)warning_invoice_fallbacks_version_invalid\x18\x01 \x01(\tH\x00\x88\x01\x01\x42,\n*_warning_invoice_fallbacks_version_invalid\"(\n\x0b\x44\x65\x63odeExtra\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\";\n\x12\x44\x65\x63odeRestrictions\x12\x14\n\x0c\x61lternatives\x18\x01 \x03(\t\x12\x0f\n\x07summary\x18\x02 \x01(\t\"=\n\x11\x44isconnectRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x08\n\x06_force\"\x14\n\x12\x44isconnectResponse\"k\n\x0f\x46\x65\x65ratesRequest\x12\x31\n\x05style\x18\x01 \x01(\x0e\x32\".cln.FeeratesRequest.FeeratesStyle\"%\n\rFeeratesStyle\x12\t\n\x05PERKB\x10\x00\x12\t\n\x05PERKW\x10\x01\"\x9c\x02\n\x10\x46\x65\x65ratesResponse\x12%\n\x18warning_missing_feerates\x18\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x05perkb\x18\x02 \x01(\x0b\x32\x12.cln.FeeratesPerkbH\x01\x88\x01\x01\x12&\n\x05perkw\x18\x03 \x01(\x0b\x32\x12.cln.FeeratesPerkwH\x02\x88\x01\x01\x12\x46\n\x15onchain_fee_estimates\x18\x04 \x01(\x0b\x32\".cln.FeeratesOnchain_fee_estimatesH\x03\x88\x01\x01\x42\x1b\n\x19_warning_missing_feeratesB\x08\n\x06_perkbB\x08\n\x06_perkwB\x18\n\x16_onchain_fee_estimates\"\xd3\x03\n\rFeeratesPerkb\x12\x16\n\x0emin_acceptable\x18\x01 \x01(\r\x12\x16\n\x0emax_acceptable\x18\x02 \x01(\r\x12\x12\n\x05\x66loor\x18\n \x01(\rH\x00\x88\x01\x01\x12.\n\testimates\x18\t \x03(\x0b\x32\x1b.cln.FeeratesPerkbEstimates\x12\x14\n\x07opening\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmutual_close\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10unilateral_close\x18\x05 \x01(\rH\x03\x88\x01\x01\x12$\n\x17unilateral_anchor_close\x18\x0b \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rdelayed_to_us\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1c\n\x0fhtlc_resolution\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x14\n\x07penalty\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x08\n\x06_floorB\n\n\x08_openingB\x0f\n\r_mutual_closeB\x13\n\x11_unilateral_closeB\x1a\n\x18_unilateral_anchor_closeB\x10\n\x0e_delayed_to_usB\x12\n\x10_htlc_resolutionB\n\n\x08_penalty\"\x96\x01\n\x16\x46\x65\x65ratesPerkbEstimates\x12\x17\n\nblockcount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10smoothed_feerate\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\r\n\x0b_blockcountB\n\n\x08_feerateB\x13\n\x11_smoothed_feerate\"\xd3\x03\n\rFeeratesPerkw\x12\x16\n\x0emin_acceptable\x18\x01 \x01(\r\x12\x16\n\x0emax_acceptable\x18\x02 \x01(\r\x12\x12\n\x05\x66loor\x18\n \x01(\rH\x00\x88\x01\x01\x12.\n\testimates\x18\t \x03(\x0b\x32\x1b.cln.FeeratesPerkwEstimates\x12\x14\n\x07opening\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmutual_close\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10unilateral_close\x18\x05 \x01(\rH\x03\x88\x01\x01\x12$\n\x17unilateral_anchor_close\x18\x0b \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rdelayed_to_us\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1c\n\x0fhtlc_resolution\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x14\n\x07penalty\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x08\n\x06_floorB\n\n\x08_openingB\x0f\n\r_mutual_closeB\x13\n\x11_unilateral_closeB\x1a\n\x18_unilateral_anchor_closeB\x10\n\x0e_delayed_to_usB\x12\n\x10_htlc_resolutionB\n\n\x08_penalty\"\x96\x01\n\x16\x46\x65\x65ratesPerkwEstimates\x12\x17\n\nblockcount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10smoothed_feerate\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\r\n\x0b_blockcountB\n\n\x08_feerateB\x13\n\x11_smoothed_feerate\"\x9b\x02\n\x1d\x46\x65\x65ratesOnchain_fee_estimates\x12 \n\x18opening_channel_satoshis\x18\x01 \x01(\x04\x12\x1d\n\x15mutual_close_satoshis\x18\x02 \x01(\x04\x12!\n\x19unilateral_close_satoshis\x18\x03 \x01(\x04\x12\x30\n#unilateral_close_nonanchor_satoshis\x18\x06 \x01(\x04H\x00\x88\x01\x01\x12\x1d\n\x15htlc_timeout_satoshis\x18\x04 \x01(\x04\x12\x1d\n\x15htlc_success_satoshis\x18\x05 \x01(\x04\x42&\n$_unilateral_close_nonanchor_satoshis\"\xe9\x02\n\x13\x46\x65tchinvoiceRequest\x12\r\n\x05offer\x18\x01 \x01(\t\x12%\n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x15\n\x08quantity\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x1f\n\x12recurrence_counter\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x1d\n\x10recurrence_start\x18\x05 \x01(\x01H\x03\x88\x01\x01\x12\x1d\n\x10recurrence_label\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\x07 \x01(\x01H\x05\x88\x01\x01\x12\x17\n\npayer_note\x18\x08 \x01(\tH\x06\x88\x01\x01\x42\x0e\n\x0c_amount_msatB\x0b\n\t_quantityB\x15\n\x13_recurrence_counterB\x13\n\x11_recurrence_startB\x13\n\x11_recurrence_labelB\n\n\x08_timeoutB\r\n\x0b_payer_note\"\x9a\x01\n\x14\x46\x65tchinvoiceResponse\x12\x0f\n\x07invoice\x18\x01 \x01(\t\x12)\n\x07\x63hanges\x18\x02 \x01(\x0b\x32\x18.cln.FetchinvoiceChanges\x12\x36\n\x0bnext_period\x18\x03 \x01(\x0b\x32\x1c.cln.FetchinvoiceNext_periodH\x00\x88\x01\x01\x42\x0e\n\x0c_next_period\"\x82\x02\n\x13\x46\x65tchinvoiceChanges\x12!\n\x14\x64\x65scription_appended\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0evendor_removed\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06vendor\x18\x04 \x01(\tH\x03\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x42\x17\n\x15_description_appendedB\x0e\n\x0c_descriptionB\x11\n\x0f_vendor_removedB\t\n\x07_vendorB\x0e\n\x0c_amount_msat\"~\n\x17\x46\x65tchinvoiceNext_period\x12\x0f\n\x07\x63ounter\x18\x01 \x01(\x04\x12\x11\n\tstarttime\x18\x02 \x01(\x04\x12\x0f\n\x07\x65ndtime\x18\x03 \x01(\x04\x12\x17\n\x0fpaywindow_start\x18\x04 \x01(\x04\x12\x15\n\rpaywindow_end\x18\x05 \x01(\x04\"\xfb\x03\n\x12\x46undchannelRequest\x12\n\n\x02id\x18\t \x01(\x0c\x12 \n\x06\x61mount\x18\x01 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\"\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x15\n\x08\x61nnounce\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x14\n\x07minconf\x18\n \x01(\rH\x02\x88\x01\x01\x12#\n\tpush_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x06 \x01(\tH\x04\x88\x01\x01\x12%\n\x0brequest_amt\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x05utxos\x18\x0b \x03(\x0b\x32\r.cln.Outpoint\x12\x15\n\x08mindepth\x18\x0c \x01(\rH\x07\x88\x01\x01\x12!\n\x07reserve\x18\r \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x14\n\x0c\x63hannel_type\x18\x0e \x03(\rB\n\n\x08_feerateB\x0b\n\t_announceB\n\n\x08_minconfB\x0c\n\n_push_msatB\x0b\n\t_close_toB\x0e\n\x0c_request_amtB\x10\n\x0e_compact_leaseB\x0b\n\t_mindepthB\n\n\x08_reserve\"\xe5\x01\n\x13\x46undchannelResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\x12\x0e\n\x06outnum\x18\x03 \x01(\r\x12\x12\n\nchannel_id\x18\x04 \x01(\x0c\x12\x37\n\x0c\x63hannel_type\x18\x07 \x01(\x0b\x32\x1c.cln.FundchannelChannel_typeH\x00\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x15\n\x08mindepth\x18\x06 \x01(\rH\x02\x88\x01\x01\x42\x0f\n\r_channel_typeB\x0b\n\t_close_toB\x0b\n\t_mindepth\"L\n\x17\x46undchannelChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"\xec\x01\n\x0fGetrouteRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\t \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\nriskfactor\x18\x03 \x01(\x04\x12\x11\n\x04\x63ltv\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06\x66romid\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x18\n\x0b\x66uzzpercent\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x0f\n\x07\x65xclude\x18\x07 \x03(\t\x12\x14\n\x07maxhops\x18\x08 \x01(\rH\x03\x88\x01\x01\x42\x07\n\x05_cltvB\t\n\x07_fromidB\x0e\n\x0c_fuzzpercentB\n\n\x08_maxhops\"5\n\x10GetrouteResponse\x12!\n\x05route\x18\x01 \x03(\x0b\x32\x12.cln.GetrouteRoute\"\xc5\x01\n\rGetrouteRoute\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\t\x12\x11\n\tdirection\x18\x03 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\r\n\x05\x64\x65lay\x18\x05 \x01(\r\x12\x34\n\x05style\x18\x06 \x01(\x0e\x32%.cln.GetrouteRoute.GetrouteRouteStyle\"\x1d\n\x12GetrouteRouteStyle\x12\x07\n\x03TLV\x10\x00\"\xb7\x03\n\x13ListforwardsRequest\x12@\n\x06status\x18\x01 \x01(\x0e\x32+.cln.ListforwardsRequest.ListforwardsStatusH\x00\x88\x01\x01\x12\x17\n\nin_channel\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0bout_channel\x18\x03 \x01(\tH\x02\x88\x01\x01\x12>\n\x05index\x18\x04 \x01(\x0e\x32*.cln.ListforwardsRequest.ListforwardsIndexH\x03\x88\x01\x01\x12\x12\n\x05start\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x06 \x01(\rH\x05\x88\x01\x01\"L\n\x12ListforwardsStatus\x12\x0b\n\x07OFFERED\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x10\n\x0cLOCAL_FAILED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\"-\n\x11ListforwardsIndex\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x42\t\n\x07_statusB\r\n\x0b_in_channelB\x0e\n\x0c_out_channelB\x08\n\x06_indexB\x08\n\x06_startB\x08\n\x06_limit\"C\n\x14ListforwardsResponse\x12+\n\x08\x66orwards\x18\x01 \x03(\x0b\x32\x19.cln.ListforwardsForwards\"\xba\x05\n\x14ListforwardsForwards\x12\x1a\n\rcreated_index\x18\x0c \x01(\x04H\x00\x88\x01\x01\x12\x12\n\nin_channel\x18\x01 \x01(\t\x12\x17\n\nin_htlc_id\x18\n \x01(\x04H\x01\x88\x01\x01\x12\x1c\n\x07in_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\x44\n\x06status\x18\x03 \x01(\x0e\x32\x34.cln.ListforwardsForwards.ListforwardsForwardsStatus\x12\x15\n\rreceived_time\x18\x04 \x01(\x01\x12\x18\n\x0bout_channel\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0bout_htlc_id\x18\x0b \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\rupdated_index\x18\r \x01(\x04H\x04\x88\x01\x01\x12G\n\x05style\x18\t \x01(\x0e\x32\x33.cln.ListforwardsForwards.ListforwardsForwardsStyleH\x05\x88\x01\x01\x12\"\n\x08\x66\x65\x65_msat\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\"\n\x08out_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x07\x88\x01\x01\"T\n\x1aListforwardsForwardsStatus\x12\x0b\n\x07OFFERED\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x10\n\x0cLOCAL_FAILED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\"0\n\x19ListforwardsForwardsStyle\x12\n\n\x06LEGACY\x10\x00\x12\x07\n\x03TLV\x10\x01\x42\x10\n\x0e_created_indexB\r\n\x0b_in_htlc_idB\x0e\n\x0c_out_channelB\x0e\n\x0c_out_htlc_idB\x10\n\x0e_updated_indexB\x08\n\x06_styleB\x0b\n\t_fee_msatB\x0b\n\t_out_msat\"a\n\x11ListoffersRequest\x12\x15\n\x08offer_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x18\n\x0b\x61\x63tive_only\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0b\n\t_offer_idB\x0e\n\x0c_active_only\";\n\x12ListoffersResponse\x12%\n\x06offers\x18\x01 \x03(\x0b\x32\x15.cln.ListoffersOffers\"\x84\x01\n\x10ListoffersOffers\x12\x10\n\x08offer_id\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61\x63tive\x18\x02 \x01(\x08\x12\x12\n\nsingle_use\x18\x03 \x01(\x08\x12\x0e\n\x06\x62olt12\x18\x04 \x01(\t\x12\x0c\n\x04used\x18\x05 \x01(\x08\x12\x12\n\x05label\x18\x06 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_label\"\xdb\x01\n\x0fListpaysRequest\x12\x13\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x38\n\x06status\x18\x03 \x01(\x0e\x32#.cln.ListpaysRequest.ListpaysStatusH\x02\x88\x01\x01\"7\n\x0eListpaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x42\t\n\x07_bolt11B\x0f\n\r_payment_hashB\t\n\x07_status\"3\n\x10ListpaysResponse\x12\x1f\n\x04pays\x18\x01 \x03(\x0b\x32\x11.cln.ListpaysPays\"\xff\x04\n\x0cListpaysPays\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x34\n\x06status\x18\x02 \x01(\x0e\x32$.cln.ListpaysPays.ListpaysPaysStatus\x12\x18\n\x0b\x64\x65stination\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\ncreated_at\x18\x04 \x01(\x04\x12\x19\n\x0c\x63ompleted_at\x18\x0c \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05label\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0b \x01(\tH\x04\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x07 \x01(\tH\x05\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12*\n\x10\x61mount_sent_msat\x18\t \x01(\x0b\x32\x0b.cln.AmountH\x07\x88\x01\x01\x12\x15\n\x08preimage\x18\r \x01(\x0cH\x08\x88\x01\x01\x12\x1c\n\x0fnumber_of_parts\x18\x0e \x01(\x04H\t\x88\x01\x01\x12\x17\n\nerroronion\x18\n \x01(\x0cH\n\x88\x01\x01\";\n\x12ListpaysPaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x12\x0c\n\x08\x43OMPLETE\x10\x02\x42\x0e\n\x0c_destinationB\x0f\n\r_completed_atB\x08\n\x06_labelB\t\n\x07_bolt11B\x0e\n\x0c_descriptionB\t\n\x07_bolt12B\x0e\n\x0c_amount_msatB\x13\n\x11_amount_sent_msatB\x0b\n\t_preimageB\x12\n\x10_number_of_partsB\r\n\x0b_erroronion\"*\n\x10ListhtlcsRequest\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x05\n\x03_id\"7\n\x11ListhtlcsResponse\x12\"\n\x05htlcs\x18\x01 \x03(\x0b\x32\x13.cln.ListhtlcsHtlcs\"\x89\x02\n\x0eListhtlcsHtlcs\x12\x18\n\x10short_channel_id\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x04\x12\x0e\n\x06\x65xpiry\x18\x03 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12>\n\tdirection\x18\x05 \x01(\x0e\x32+.cln.ListhtlcsHtlcs.ListhtlcsHtlcsDirection\x12\x14\n\x0cpayment_hash\x18\x06 \x01(\x0c\x12\x1d\n\x05state\x18\x07 \x01(\x0e\x32\x0e.cln.HtlcState\"*\n\x17ListhtlcsHtlcsDirection\x12\x07\n\x03OUT\x10\x00\x12\x06\n\x02IN\x10\x01\"\xc1\x03\n\x0cOfferRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x13\n\x06issuer\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cquantity_max\x18\x05 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x61\x62solute_expiry\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12\x17\n\nrecurrence\x18\x07 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0frecurrence_base\x18\x08 \x01(\tH\x05\x88\x01\x01\x12!\n\x14recurrence_paywindow\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x10recurrence_limit\x18\n \x01(\x04H\x07\x88\x01\x01\x12\x17\n\nsingle_use\x18\x0b \x01(\x08H\x08\x88\x01\x01\x42\t\n\x07_issuerB\x08\n\x06_labelB\x0f\n\r_quantity_maxB\x12\n\x10_absolute_expiryB\r\n\x0b_recurrenceB\x12\n\x10_recurrence_baseB\x17\n\x15_recurrence_paywindowB\x13\n\x11_recurrence_limitB\r\n\x0b_single_use\"\x92\x01\n\rOfferResponse\x12\x10\n\x08offer_id\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61\x63tive\x18\x02 \x01(\x08\x12\x12\n\nsingle_use\x18\x03 \x01(\x08\x12\x0e\n\x06\x62olt12\x18\x04 \x01(\t\x12\x0c\n\x04used\x18\x05 \x01(\x08\x12\x0f\n\x07\x63reated\x18\x06 \x01(\x08\x12\x12\n\x05label\x18\x07 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_label\"Y\n\x0bPingRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x10\n\x03len\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tpongbytes\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_lenB\x0c\n\n_pongbytes\"\x1e\n\x0cPingResponse\x12\x0e\n\x06totlen\x18\x01 \x01(\r\"4\n\x14SendcustommsgRequest\x12\x0f\n\x07node_id\x18\x01 \x01(\x0c\x12\x0b\n\x03msg\x18\x02 \x01(\x0c\"\'\n\x15SendcustommsgResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"\xaa\x02\n\x11SetchannelRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x07\x66\x65\x65\x62\x61se\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x66\x65\x65ppm\x18\x03 \x01(\rH\x01\x88\x01\x01\x12!\n\x07htlcmin\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12!\n\x07htlcmax\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x19\n\x0c\x65nforcedelay\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1c\n\x0fignorefeelimits\x18\x07 \x01(\x08H\x05\x88\x01\x01\x42\n\n\x08_feebaseB\t\n\x07_feeppmB\n\n\x08_htlcminB\n\n\x08_htlcmaxB\x0f\n\r_enforcedelayB\x12\n\x10_ignorefeelimits\"?\n\x12SetchannelResponse\x12)\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x17.cln.SetchannelChannels\"\xca\x03\n\x12SetchannelChannels\x12\x0f\n\x07peer_id\x18\x01 \x01(\x0c\x12\x12\n\nchannel_id\x18\x02 \x01(\x0c\x12\x1d\n\x10short_channel_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\"\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\r\x12\x1e\n\x11ignore_fee_limits\x18\n \x01(\x08H\x01\x88\x01\x01\x12*\n\x15minimum_htlc_out_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12$\n\x17warning_htlcmin_too_low\x18\x07 \x01(\tH\x02\x88\x01\x01\x12*\n\x15maximum_htlc_out_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x18warning_htlcmax_too_high\x18\t \x01(\tH\x03\x88\x01\x01\x42\x13\n\x11_short_channel_idB\x14\n\x12_ignore_fee_limitsB\x1a\n\x18_warning_htlcmin_too_lowB\x1b\n\x19_warning_htlcmax_too_high\"\'\n\x12SigninvoiceRequest\x12\x11\n\tinvstring\x18\x01 \x01(\t\"%\n\x13SigninvoiceResponse\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\"%\n\x12SignmessageRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\"F\n\x13SignmessageResponse\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\r\n\x05recid\x18\x02 \x01(\x0c\x12\r\n\x05zbase\x18\x03 \x01(\t\"O\n\x16WaitblockheightRequest\x12\x13\n\x0b\x62lockheight\x18\x01 \x01(\r\x12\x14\n\x07timeout\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_timeout\".\n\x17WaitblockheightResponse\x12\x13\n\x0b\x62lockheight\x18\x01 \x01(\r\"\xf9\x01\n\x0bWaitRequest\x12\x31\n\tsubsystem\x18\x01 \x01(\x0e\x32\x1e.cln.WaitRequest.WaitSubsystem\x12\x31\n\tindexname\x18\x02 \x01(\x0e\x32\x1e.cln.WaitRequest.WaitIndexname\x12\x11\n\tnextvalue\x18\x03 \x01(\x04\"9\n\rWaitSubsystem\x12\x0c\n\x08INVOICES\x10\x00\x12\x0c\n\x08\x46ORWARDS\x10\x01\x12\x0c\n\x08SENDPAYS\x10\x02\"6\n\rWaitIndexname\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\"\xe3\x01\n\x0cWaitResponse\x12\x32\n\tsubsystem\x18\x01 \x01(\x0e\x32\x1f.cln.WaitResponse.WaitSubsystem\x12\x14\n\x07\x63reated\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07updated\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07\x64\x65leted\x18\x04 \x01(\x04H\x02\x88\x01\x01\"9\n\rWaitSubsystem\x12\x0c\n\x08INVOICES\x10\x00\x12\x0c\n\x08\x46ORWARDS\x10\x01\x12\x0c\n\x08SENDPAYS\x10\x02\x42\n\n\x08_createdB\n\n\x08_updatedB\n\n\x08_deleted\"\r\n\x0bStopRequest\"q\n\x0cStopResponse\x12\x31\n\x06result\x18\x01 \x01(\x0e\x32\x1c.cln.StopResponse.StopResultH\x00\x88\x01\x01\"#\n\nStopResult\x12\x15\n\x11SHUTDOWN_COMPLETE\x10\x00\x42\t\n\x07_result\"\xa7\x01\n\x18PreapprovekeysendRequest\x12\x18\n\x0b\x64\x65stination\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x42\x0e\n\x0c_destinationB\x0f\n\r_payment_hashB\x0e\n\x0c_amount_msat\"\x1b\n\x19PreapprovekeysendResponse\":\n\x18PreapproveinvoiceRequest\x12\x13\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_bolt11\"\x1b\n\x19PreapproveinvoiceResponse\"\x15\n\x13StaticbackupRequest\"#\n\x14StaticbackupResponse\x12\x0b\n\x03scb\x18\x01 \x03(\x0c\"\x97\x01\n\x15\x42kprlistincomeRequest\x12\x1d\n\x10\x63onsolidate_fees\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x17\n\nstart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x13\n\x11_consolidate_feesB\r\n\x0b_start_timeB\x0b\n\t_end_time\"Q\n\x16\x42kprlistincomeResponse\x12\x37\n\rincome_events\x18\x01 \x03(\x0b\x32 .cln.BkprlistincomeIncome_events\"\xb5\x02\n\x1b\x42kprlistincomeIncome_events\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12 \n\x0b\x63redit_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x1f\n\ndebit_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x10\n\x08\x63urrency\x18\x05 \x01(\t\x12\x11\n\ttimestamp\x18\x06 \x01(\r\x12\x18\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08outpoint\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04txid\x18\t \x01(\x0cH\x02\x88\x01\x01\x12\x17\n\npayment_id\x18\n \x01(\x0cH\x03\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_outpointB\x07\n\x05_txidB\r\n\x0b_payment_id2\xe2 \n\x04Node\x12\x36\n\x07Getinfo\x12\x13.cln.GetinfoRequest\x1a\x14.cln.GetinfoResponse\"\x00\x12<\n\tListPeers\x12\x15.cln.ListpeersRequest\x1a\x16.cln.ListpeersResponse\"\x00\x12<\n\tListFunds\x12\x15.cln.ListfundsRequest\x1a\x16.cln.ListfundsResponse\"\x00\x12\x36\n\x07SendPay\x12\x13.cln.SendpayRequest\x1a\x14.cln.SendpayResponse\"\x00\x12\x45\n\x0cListChannels\x12\x18.cln.ListchannelsRequest\x1a\x19.cln.ListchannelsResponse\"\x00\x12<\n\tAddGossip\x12\x15.cln.AddgossipRequest\x1a\x16.cln.AddgossipResponse\"\x00\x12Q\n\x10\x41utoCleanInvoice\x12\x1c.cln.AutocleaninvoiceRequest\x1a\x1d.cln.AutocleaninvoiceResponse\"\x00\x12\x45\n\x0c\x43heckMessage\x12\x18.cln.CheckmessageRequest\x1a\x19.cln.CheckmessageResponse\"\x00\x12\x30\n\x05\x43lose\x12\x11.cln.CloseRequest\x1a\x12.cln.CloseResponse\"\x00\x12:\n\x0b\x43onnectPeer\x12\x13.cln.ConnectRequest\x1a\x14.cln.ConnectResponse\"\x00\x12H\n\rCreateInvoice\x12\x19.cln.CreateinvoiceRequest\x1a\x1a.cln.CreateinvoiceResponse\"\x00\x12<\n\tDatastore\x12\x15.cln.DatastoreRequest\x1a\x16.cln.DatastoreResponse\"\x00\x12K\n\x0e\x44\x61tastoreUsage\x12\x1a.cln.DatastoreusageRequest\x1a\x1b.cln.DatastoreusageResponse\"\x00\x12\x42\n\x0b\x43reateOnion\x12\x17.cln.CreateonionRequest\x1a\x18.cln.CreateonionResponse\"\x00\x12\x45\n\x0c\x44\x65lDatastore\x12\x18.cln.DeldatastoreRequest\x1a\x19.cln.DeldatastoreResponse\"\x00\x12T\n\x11\x44\x65lExpiredInvoice\x12\x1d.cln.DelexpiredinvoiceRequest\x1a\x1e.cln.DelexpiredinvoiceResponse\"\x00\x12?\n\nDelInvoice\x12\x16.cln.DelinvoiceRequest\x1a\x17.cln.DelinvoiceResponse\"\x00\x12\x36\n\x07Invoice\x12\x13.cln.InvoiceRequest\x1a\x14.cln.InvoiceResponse\"\x00\x12H\n\rListDatastore\x12\x19.cln.ListdatastoreRequest\x1a\x1a.cln.ListdatastoreResponse\"\x00\x12\x45\n\x0cListInvoices\x12\x18.cln.ListinvoicesRequest\x1a\x19.cln.ListinvoicesResponse\"\x00\x12<\n\tSendOnion\x12\x15.cln.SendonionRequest\x1a\x16.cln.SendonionResponse\"\x00\x12\x45\n\x0cListSendPays\x12\x18.cln.ListsendpaysRequest\x1a\x19.cln.ListsendpaysResponse\"\x00\x12Q\n\x10ListTransactions\x12\x1c.cln.ListtransactionsRequest\x1a\x1d.cln.ListtransactionsResponse\"\x00\x12*\n\x03Pay\x12\x0f.cln.PayRequest\x1a\x10.cln.PayResponse\"\x00\x12<\n\tListNodes\x12\x15.cln.ListnodesRequest\x1a\x16.cln.ListnodesResponse\"\x00\x12K\n\x0eWaitAnyInvoice\x12\x1a.cln.WaitanyinvoiceRequest\x1a\x1b.cln.WaitanyinvoiceResponse\"\x00\x12\x42\n\x0bWaitInvoice\x12\x17.cln.WaitinvoiceRequest\x1a\x18.cln.WaitinvoiceResponse\"\x00\x12\x42\n\x0bWaitSendPay\x12\x17.cln.WaitsendpayRequest\x1a\x18.cln.WaitsendpayResponse\"\x00\x12\x36\n\x07NewAddr\x12\x13.cln.NewaddrRequest\x1a\x14.cln.NewaddrResponse\"\x00\x12\x39\n\x08Withdraw\x12\x14.cln.WithdrawRequest\x1a\x15.cln.WithdrawResponse\"\x00\x12\x36\n\x07KeySend\x12\x13.cln.KeysendRequest\x1a\x14.cln.KeysendResponse\"\x00\x12\x39\n\x08\x46undPsbt\x12\x14.cln.FundpsbtRequest\x1a\x15.cln.FundpsbtResponse\"\x00\x12\x39\n\x08SendPsbt\x12\x14.cln.SendpsbtRequest\x1a\x15.cln.SendpsbtResponse\"\x00\x12\x39\n\x08SignPsbt\x12\x14.cln.SignpsbtRequest\x1a\x15.cln.SignpsbtResponse\"\x00\x12\x39\n\x08UtxoPsbt\x12\x14.cln.UtxopsbtRequest\x1a\x15.cln.UtxopsbtResponse\"\x00\x12<\n\tTxDiscard\x12\x15.cln.TxdiscardRequest\x1a\x16.cln.TxdiscardResponse\"\x00\x12<\n\tTxPrepare\x12\x15.cln.TxprepareRequest\x1a\x16.cln.TxprepareResponse\"\x00\x12\x33\n\x06TxSend\x12\x12.cln.TxsendRequest\x1a\x13.cln.TxsendResponse\"\x00\x12Q\n\x10ListPeerChannels\x12\x1c.cln.ListpeerchannelsRequest\x1a\x1d.cln.ListpeerchannelsResponse\"\x00\x12W\n\x12ListClosedChannels\x12\x1e.cln.ListclosedchannelsRequest\x1a\x1f.cln.ListclosedchannelsResponse\"\x00\x12<\n\tDecodePay\x12\x15.cln.DecodepayRequest\x1a\x16.cln.DecodepayResponse\"\x00\x12\x33\n\x06\x44\x65\x63ode\x12\x12.cln.DecodeRequest\x1a\x13.cln.DecodeResponse\"\x00\x12?\n\nDisconnect\x12\x16.cln.DisconnectRequest\x1a\x17.cln.DisconnectResponse\"\x00\x12\x39\n\x08\x46\x65\x65rates\x12\x14.cln.FeeratesRequest\x1a\x15.cln.FeeratesResponse\"\x00\x12\x45\n\x0c\x46\x65tchInvoice\x12\x18.cln.FetchinvoiceRequest\x1a\x19.cln.FetchinvoiceResponse\"\x00\x12\x42\n\x0b\x46undChannel\x12\x17.cln.FundchannelRequest\x1a\x18.cln.FundchannelResponse\"\x00\x12\x39\n\x08GetRoute\x12\x14.cln.GetrouteRequest\x1a\x15.cln.GetrouteResponse\"\x00\x12\x45\n\x0cListForwards\x12\x18.cln.ListforwardsRequest\x1a\x19.cln.ListforwardsResponse\"\x00\x12?\n\nListOffers\x12\x16.cln.ListoffersRequest\x1a\x17.cln.ListoffersResponse\"\x00\x12\x39\n\x08ListPays\x12\x14.cln.ListpaysRequest\x1a\x15.cln.ListpaysResponse\"\x00\x12<\n\tListHtlcs\x12\x15.cln.ListhtlcsRequest\x1a\x16.cln.ListhtlcsResponse\"\x00\x12\x30\n\x05Offer\x12\x11.cln.OfferRequest\x1a\x12.cln.OfferResponse\"\x00\x12-\n\x04Ping\x12\x10.cln.PingRequest\x1a\x11.cln.PingResponse\"\x00\x12H\n\rSendCustomMsg\x12\x19.cln.SendcustommsgRequest\x1a\x1a.cln.SendcustommsgResponse\"\x00\x12?\n\nSetChannel\x12\x16.cln.SetchannelRequest\x1a\x17.cln.SetchannelResponse\"\x00\x12\x42\n\x0bSignInvoice\x12\x17.cln.SigninvoiceRequest\x1a\x18.cln.SigninvoiceResponse\"\x00\x12\x42\n\x0bSignMessage\x12\x17.cln.SignmessageRequest\x1a\x18.cln.SignmessageResponse\"\x00\x12N\n\x0fWaitBlockHeight\x12\x1b.cln.WaitblockheightRequest\x1a\x1c.cln.WaitblockheightResponse\"\x00\x12-\n\x04Wait\x12\x10.cln.WaitRequest\x1a\x11.cln.WaitResponse\"\x00\x12-\n\x04Stop\x12\x10.cln.StopRequest\x1a\x11.cln.StopResponse\"\x00\x12T\n\x11PreApproveKeysend\x12\x1d.cln.PreapprovekeysendRequest\x1a\x1e.cln.PreapprovekeysendResponse\"\x00\x12T\n\x11PreApproveInvoice\x12\x1d.cln.PreapproveinvoiceRequest\x1a\x1e.cln.PreapproveinvoiceResponse\"\x00\x12\x45\n\x0cStaticBackup\x12\x18.cln.StaticbackupRequest\x1a\x19.cln.StaticbackupResponse\"\x00\x12K\n\x0e\x42kprListIncome\x12\x1a.cln.BkprlistincomeRequest\x1a\x1b.cln.BkprlistincomeResponse\"\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nnode.proto\x12\x03\x63ln\x1a\x10primitives.proto\"\x10\n\x0eGetinfoRequest\"\xc1\x04\n\x0fGetinfoResponse\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x12\n\x05\x61lias\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x63olor\x18\x03 \x01(\x0c\x12\x11\n\tnum_peers\x18\x04 \x01(\r\x12\x1c\n\x14num_pending_channels\x18\x05 \x01(\r\x12\x1b\n\x13num_active_channels\x18\x06 \x01(\r\x12\x1d\n\x15num_inactive_channels\x18\x07 \x01(\r\x12\x0f\n\x07version\x18\x08 \x01(\t\x12\x15\n\rlightning_dir\x18\t \x01(\t\x12\x33\n\x0cour_features\x18\n \x01(\x0b\x32\x18.cln.GetinfoOur_featuresH\x01\x88\x01\x01\x12\x13\n\x0b\x62lockheight\x18\x0b \x01(\r\x12\x0f\n\x07network\x18\x0c \x01(\t\x12(\n\x13\x66\x65\x65s_collected_msat\x18\r \x01(\x0b\x32\x0b.cln.Amount\x12$\n\x07\x61\x64\x64ress\x18\x0e \x03(\x0b\x32\x13.cln.GetinfoAddress\x12$\n\x07\x62inding\x18\x0f \x03(\x0b\x32\x13.cln.GetinfoBinding\x12\"\n\x15warning_bitcoind_sync\x18\x10 \x01(\tH\x02\x88\x01\x01\x12$\n\x17warning_lightningd_sync\x18\x11 \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_aliasB\x0f\n\r_our_featuresB\x18\n\x16_warning_bitcoind_syncB\x1a\n\x18_warning_lightningd_sync\"S\n\x13GetinfoOur_features\x12\x0c\n\x04init\x18\x01 \x01(\x0c\x12\x0c\n\x04node\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\x0c\x12\x0f\n\x07invoice\x18\x04 \x01(\x0c\"\xc4\x01\n\x0eGetinfoAddress\x12\x39\n\titem_type\x18\x01 \x01(\x0e\x32&.cln.GetinfoAddress.GetinfoAddressType\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x00\x88\x01\x01\"G\n\x12GetinfoAddressType\x12\x07\n\x03\x44NS\x10\x00\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\n\n\x08_address\"\x8a\x02\n\x0eGetinfoBinding\x12\x39\n\titem_type\x18\x01 \x01(\x0e\x32&.cln.GetinfoBinding.GetinfoBindingType\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04port\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06socket\x18\x04 \x01(\tH\x02\x88\x01\x01\"_\n\x12GetinfoBindingType\x12\x10\n\x0cLOCAL_SOCKET\x10\x00\x12\r\n\tWEBSOCKET\x10\x05\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\n\n\x08_addressB\x07\n\x05_portB\t\n\x07_socket\"\xaa\x01\n\x10ListpeersRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x38\n\x05level\x18\x02 \x01(\x0e\x32$.cln.ListpeersRequest.ListpeersLevelH\x01\x88\x01\x01\":\n\x0eListpeersLevel\x12\x06\n\x02IO\x10\x00\x12\t\n\x05\x44\x45\x42UG\x10\x01\x12\x08\n\x04INFO\x10\x02\x12\x0b\n\x07UNUSUAL\x10\x03\x42\x05\n\x03_idB\x08\n\x06_level\"7\n\x11ListpeersResponse\x12\"\n\x05peers\x18\x01 \x03(\x0b\x32\x13.cln.ListpeersPeers\"\x8e\x02\n\x0eListpeersPeers\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x11\n\tconnected\x18\x02 \x01(\x08\x12\x19\n\x0cnum_channels\x18\x08 \x01(\rH\x00\x88\x01\x01\x12#\n\x03log\x18\x03 \x03(\x0b\x32\x16.cln.ListpeersPeersLog\x12-\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x1b.cln.ListpeersPeersChannels\x12\x0f\n\x07netaddr\x18\x05 \x03(\t\x12\x18\n\x0bremote_addr\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18\x06 \x01(\x0cH\x02\x88\x01\x01\x42\x0f\n\r_num_channelsB\x0e\n\x0c_remote_addrB\x0b\n\t_features\"\xfd\x02\n\x11ListpeersPeersLog\x12?\n\titem_type\x18\x01 \x01(\x0e\x32,.cln.ListpeersPeersLog.ListpeersPeersLogType\x12\x18\n\x0bnum_skipped\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04time\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06source\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x03log\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07node_id\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x11\n\x04\x64\x61ta\x18\x07 \x01(\x0cH\x05\x88\x01\x01\"i\n\x15ListpeersPeersLogType\x12\x0b\n\x07SKIPPED\x10\x00\x12\n\n\x06\x42ROKEN\x10\x01\x12\x0b\n\x07UNUSUAL\x10\x02\x12\x08\n\x04INFO\x10\x03\x12\t\n\x05\x44\x45\x42UG\x10\x04\x12\t\n\x05IO_IN\x10\x05\x12\n\n\x06IO_OUT\x10\x06\x42\x0e\n\x0c_num_skippedB\x07\n\x05_timeB\t\n\x07_sourceB\x06\n\x04_logB\n\n\x08_node_idB\x07\n\x05_data\"\x95\x18\n\x16ListpeersPeersChannels\x12\x46\n\x05state\x18\x01 \x01(\x0e\x32\x37.cln.ListpeersPeersChannels.ListpeersPeersChannelsState\x12\x19\n\x0cscratch_txid\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x38\n\x07\x66\x65\x65rate\x18\x03 \x01(\x0b\x32\".cln.ListpeersPeersChannelsFeerateH\x01\x88\x01\x01\x12\x12\n\x05owner\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x10short_channel_id\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x17\n\nchannel_id\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x19\n\x0c\x66unding_txid\x18\x07 \x01(\x0cH\x05\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x08 \x01(\rH\x06\x88\x01\x01\x12\x1c\n\x0finitial_feerate\x18\t \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0clast_feerate\x18\n \x01(\tH\x08\x88\x01\x01\x12\x19\n\x0cnext_feerate\x18\x0b \x01(\tH\t\x88\x01\x01\x12\x1a\n\rnext_fee_step\x18\x0c \x01(\rH\n\x88\x01\x01\x12\x35\n\x08inflight\x18\r \x03(\x0b\x32#.cln.ListpeersPeersChannelsInflight\x12\x15\n\x08\x63lose_to\x18\x0e \x01(\x0cH\x0b\x88\x01\x01\x12\x14\n\x07private\x18\x0f \x01(\x08H\x0c\x88\x01\x01\x12 \n\x06opener\x18\x10 \x01(\x0e\x32\x10.cln.ChannelSide\x12%\n\x06\x63loser\x18\x11 \x01(\x0e\x32\x10.cln.ChannelSideH\r\x88\x01\x01\x12\x10\n\x08\x66\x65\x61tures\x18\x12 \x03(\t\x12\x38\n\x07\x66unding\x18\x13 \x01(\x0b\x32\".cln.ListpeersPeersChannelsFundingH\x0e\x88\x01\x01\x12$\n\nto_us_msat\x18\x14 \x01(\x0b\x32\x0b.cln.AmountH\x0f\x88\x01\x01\x12(\n\x0emin_to_us_msat\x18\x15 \x01(\x0b\x32\x0b.cln.AmountH\x10\x88\x01\x01\x12(\n\x0emax_to_us_msat\x18\x16 \x01(\x0b\x32\x0b.cln.AmountH\x11\x88\x01\x01\x12$\n\ntotal_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x12\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x18 \x01(\x0b\x32\x0b.cln.AmountH\x13\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x19 \x01(\rH\x14\x88\x01\x01\x12)\n\x0f\x64ust_limit_msat\x18\x1a \x01(\x0b\x32\x0b.cln.AmountH\x15\x88\x01\x01\x12\x30\n\x16max_total_htlc_in_msat\x18\x1b \x01(\x0b\x32\x0b.cln.AmountH\x16\x88\x01\x01\x12,\n\x12their_reserve_msat\x18\x1c \x01(\x0b\x32\x0b.cln.AmountH\x17\x88\x01\x01\x12*\n\x10our_reserve_msat\x18\x1d \x01(\x0b\x32\x0b.cln.AmountH\x18\x88\x01\x01\x12(\n\x0espendable_msat\x18\x1e \x01(\x0b\x32\x0b.cln.AmountH\x19\x88\x01\x01\x12)\n\x0freceivable_msat\x18\x1f \x01(\x0b\x32\x0b.cln.AmountH\x1a\x88\x01\x01\x12.\n\x14minimum_htlc_in_msat\x18 \x01(\x0b\x32\x0b.cln.AmountH\x1b\x88\x01\x01\x12/\n\x15minimum_htlc_out_msat\x18\x30 \x01(\x0b\x32\x0b.cln.AmountH\x1c\x88\x01\x01\x12/\n\x15maximum_htlc_out_msat\x18\x31 \x01(\x0b\x32\x0b.cln.AmountH\x1d\x88\x01\x01\x12 \n\x13their_to_self_delay\x18! \x01(\rH\x1e\x88\x01\x01\x12\x1e\n\x11our_to_self_delay\x18\" \x01(\rH\x1f\x88\x01\x01\x12\x1f\n\x12max_accepted_htlcs\x18# \x01(\rH \x88\x01\x01\x12\x34\n\x05\x61lias\x18\x32 \x01(\x0b\x32 .cln.ListpeersPeersChannelsAliasH!\x88\x01\x01\x12\x0e\n\x06status\x18% \x03(\t\x12 \n\x13in_payments_offered\x18& \x01(\x04H\"\x88\x01\x01\x12)\n\x0fin_offered_msat\x18\' \x01(\x0b\x32\x0b.cln.AmountH#\x88\x01\x01\x12\"\n\x15in_payments_fulfilled\x18( \x01(\x04H$\x88\x01\x01\x12+\n\x11in_fulfilled_msat\x18) \x01(\x0b\x32\x0b.cln.AmountH%\x88\x01\x01\x12!\n\x14out_payments_offered\x18* \x01(\x04H&\x88\x01\x01\x12*\n\x10out_offered_msat\x18+ \x01(\x0b\x32\x0b.cln.AmountH\'\x88\x01\x01\x12#\n\x16out_payments_fulfilled\x18, \x01(\x04H(\x88\x01\x01\x12,\n\x12out_fulfilled_msat\x18- \x01(\x0b\x32\x0b.cln.AmountH)\x88\x01\x01\x12/\n\x05htlcs\x18. \x03(\x0b\x32 .cln.ListpeersPeersChannelsHtlcs\x12\x1a\n\rclose_to_addr\x18/ \x01(\tH*\x88\x01\x01\"\xe0\x02\n\x1bListpeersPeersChannelsState\x12\x0c\n\x08OPENINGD\x10\x00\x12\x1c\n\x18\x43HANNELD_AWAITING_LOCKIN\x10\x01\x12\x13\n\x0f\x43HANNELD_NORMAL\x10\x02\x12\x1a\n\x16\x43HANNELD_SHUTTING_DOWN\x10\x03\x12\x18\n\x14\x43LOSINGD_SIGEXCHANGE\x10\x04\x12\x15\n\x11\x43LOSINGD_COMPLETE\x10\x05\x12\x17\n\x13\x41WAITING_UNILATERAL\x10\x06\x12\x16\n\x12\x46UNDING_SPEND_SEEN\x10\x07\x12\x0b\n\x07ONCHAIN\x10\x08\x12\x17\n\x13\x44UALOPEND_OPEN_INIT\x10\t\x12\x1d\n\x19\x44UALOPEND_AWAITING_LOCKIN\x10\n\x12\x1c\n\x18\x44UALOPEND_OPEN_COMMITTED\x10\x0b\x12\x1f\n\x1b\x44UALOPEND_OPEN_COMMIT_READY\x10\x0c\x42\x0f\n\r_scratch_txidB\n\n\x08_feerateB\x08\n\x06_ownerB\x13\n\x11_short_channel_idB\r\n\x0b_channel_idB\x0f\n\r_funding_txidB\x11\n\x0f_funding_outnumB\x12\n\x10_initial_feerateB\x0f\n\r_last_feerateB\x0f\n\r_next_feerateB\x10\n\x0e_next_fee_stepB\x0b\n\t_close_toB\n\n\x08_privateB\t\n\x07_closerB\n\n\x08_fundingB\r\n\x0b_to_us_msatB\x11\n\x0f_min_to_us_msatB\x11\n\x0f_max_to_us_msatB\r\n\x0b_total_msatB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionthsB\x12\n\x10_dust_limit_msatB\x19\n\x17_max_total_htlc_in_msatB\x15\n\x13_their_reserve_msatB\x13\n\x11_our_reserve_msatB\x11\n\x0f_spendable_msatB\x12\n\x10_receivable_msatB\x17\n\x15_minimum_htlc_in_msatB\x18\n\x16_minimum_htlc_out_msatB\x18\n\x16_maximum_htlc_out_msatB\x16\n\x14_their_to_self_delayB\x14\n\x12_our_to_self_delayB\x15\n\x13_max_accepted_htlcsB\x08\n\x06_aliasB\x16\n\x14_in_payments_offeredB\x12\n\x10_in_offered_msatB\x18\n\x16_in_payments_fulfilledB\x14\n\x12_in_fulfilled_msatB\x17\n\x15_out_payments_offeredB\x13\n\x11_out_offered_msatB\x19\n\x17_out_payments_fulfilledB\x15\n\x13_out_fulfilled_msatB\x10\n\x0e_close_to_addr\"=\n\x1dListpeersPeersChannelsFeerate\x12\r\n\x05perkw\x18\x01 \x01(\r\x12\r\n\x05perkb\x18\x02 \x01(\r\"\xf3\x01\n\x1eListpeersPeersChannelsInflight\x12\x14\n\x0c\x66unding_txid\x18\x01 \x01(\x0c\x12\x16\n\x0e\x66unding_outnum\x18\x02 \x01(\r\x12\x0f\n\x07\x66\x65\x65rate\x18\x03 \x01(\t\x12\'\n\x12total_funding_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10our_funding_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x1a\n\rsplice_amount\x18\x07 \x01(\x12H\x00\x88\x01\x01\x12\x14\n\x0cscratch_txid\x18\x06 \x01(\x0c\x42\x10\n\x0e_splice_amount\"\x9b\x02\n\x1dListpeersPeersChannelsFunding\x12%\n\x0bpushed_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12%\n\x10local_funds_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12&\n\x11remote_funds_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12\'\n\rfee_paid_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\'\n\rfee_rcvd_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x42\x0e\n\x0c_pushed_msatB\x10\n\x0e_fee_paid_msatB\x10\n\x0e_fee_rcvd_msat\"[\n\x1bListpeersPeersChannelsAlias\x12\x12\n\x05local\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06remote\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"\xf1\x02\n\x1bListpeersPeersChannelsHtlcs\x12X\n\tdirection\x18\x01 \x01(\x0e\x32\x45.cln.ListpeersPeersChannelsHtlcs.ListpeersPeersChannelsHtlcsDirection\x12\n\n\x02id\x18\x02 \x01(\x04\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x0e\n\x06\x65xpiry\x18\x04 \x01(\r\x12\x14\n\x0cpayment_hash\x18\x05 \x01(\x0c\x12\x1a\n\rlocal_trimmed\x18\x06 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06status\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x05state\x18\x08 \x01(\x0e\x32\x0e.cln.HtlcState\"7\n$ListpeersPeersChannelsHtlcsDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\x42\x10\n\x0e_local_trimmedB\t\n\x07_status\"0\n\x10ListfundsRequest\x12\x12\n\x05spent\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x08\n\x06_spent\"e\n\x11ListfundsResponse\x12&\n\x07outputs\x18\x01 \x03(\x0b\x32\x15.cln.ListfundsOutputs\x12(\n\x08\x63hannels\x18\x02 \x03(\x0b\x32\x16.cln.ListfundsChannels\"\x83\x03\n\x10ListfundsOutputs\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06output\x18\x02 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0cscriptpubkey\x18\x04 \x01(\x0c\x12\x14\n\x07\x61\x64\x64ress\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0credeemscript\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12<\n\x06status\x18\x07 \x01(\x0e\x32,.cln.ListfundsOutputs.ListfundsOutputsStatus\x12\x10\n\x08reserved\x18\t \x01(\x08\x12\x18\n\x0b\x62lockheight\x18\x08 \x01(\rH\x02\x88\x01\x01\"Q\n\x16ListfundsOutputsStatus\x12\x0f\n\x0bUNCONFIRMED\x10\x00\x12\r\n\tCONFIRMED\x10\x01\x12\t\n\x05SPENT\x10\x02\x12\x0c\n\x08IMMATURE\x10\x03\x42\n\n\x08_addressB\x0f\n\r_redeemscriptB\x0e\n\x0c_blockheight\"\xab\x02\n\x11ListfundsChannels\x12\x0f\n\x07peer_id\x18\x01 \x01(\x0c\x12$\n\x0four_amount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0c\x66unding_txid\x18\x04 \x01(\x0c\x12\x16\n\x0e\x66unding_output\x18\x05 \x01(\r\x12\x11\n\tconnected\x18\x06 \x01(\x08\x12 \n\x05state\x18\x07 \x01(\x0e\x32\x11.cln.ChannelState\x12\x17\n\nchannel_id\x18\t \x01(\x0cH\x00\x88\x01\x01\x12\x1d\n\x10short_channel_id\x18\x08 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_channel_idB\x13\n\x11_short_channel_id\"\xbb\x03\n\x0eSendpayRequest\x12 \n\x05route\x18\x01 \x03(\x0b\x32\x11.cln.SendpayRoute\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\x12\n\x05label\x18\x03 \x01(\tH\x00\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0epayment_secret\x18\x06 \x01(\x0cH\x03\x88\x01\x01\x12\x13\n\x06partid\x18\x07 \x01(\x04H\x04\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\x0b \x01(\x0cH\x05\x88\x01\x01\x12\x14\n\x07groupid\x18\t \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10payment_metadata\x18\x0c \x01(\x0cH\x07\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\r \x01(\tH\x08\x88\x01\x01\x42\x08\n\x06_labelB\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\x11\n\x0f_payment_secretB\t\n\x07_partidB\x10\n\x0e_localinvreqidB\n\n\x08_groupidB\x13\n\x11_payment_metadataB\x0e\n\x0c_description\"\xad\x05\n\x0fSendpayResponse\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x00\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x01\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x07groupid\x18\x02 \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x32\n\x06status\x18\x04 \x01(\x0e\x32\".cln.SendpayResponse.SendpayStatus\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x12\n\ncreated_at\x18\x07 \x01(\x04\x12\x19\n\x0c\x63ompleted_at\x18\x0f \x01(\x04H\x05\x88\x01\x01\x12%\n\x10\x61mount_sent_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\t \x01(\tH\x06\x88\x01\x01\x12\x13\n\x06partid\x18\n \x01(\x04H\x07\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0b \x01(\tH\x08\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0c \x01(\tH\t\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\n\x88\x01\x01\x12\x14\n\x07message\x18\x0e \x01(\tH\x0b\x88\x01\x01\"*\n\rSendpayStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x42\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x0f\n\r_completed_atB\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\n\n\x08_message\"\\\n\x0cSendpayRoute\x12\n\n\x02id\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63hannel\x18\x04 \x01(\t\x12\r\n\x05\x64\x65lay\x18\x03 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\"\x93\x01\n\x13ListchannelsRequest\x12\x1d\n\x10short_channel_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06source\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x42\x13\n\x11_short_channel_idB\t\n\x07_sourceB\x0e\n\x0c_destination\"C\n\x14ListchannelsResponse\x12+\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x19.cln.ListchannelsChannels\"\xb3\x03\n\x14ListchannelsChannels\x12\x0e\n\x06source\x18\x01 \x01(\x0c\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\x0c\x12\x18\n\x10short_channel_id\x18\x03 \x01(\t\x12\x11\n\tdirection\x18\x10 \x01(\r\x12\x0e\n\x06public\x18\x04 \x01(\x08\x12 \n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x15\n\rmessage_flags\x18\x06 \x01(\r\x12\x15\n\rchannel_flags\x18\x07 \x01(\r\x12\x0e\n\x06\x61\x63tive\x18\x08 \x01(\x08\x12\x13\n\x0blast_update\x18\t \x01(\r\x12\x1d\n\x15\x62\x61se_fee_millisatoshi\x18\n \x01(\r\x12\x19\n\x11\x66\x65\x65_per_millionth\x18\x0b \x01(\r\x12\r\n\x05\x64\x65lay\x18\x0c \x01(\r\x12&\n\x11htlc_minimum_msat\x18\r \x01(\x0b\x32\x0b.cln.Amount\x12+\n\x11htlc_maximum_msat\x18\x0e \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x10\n\x08\x66\x65\x61tures\x18\x0f \x01(\x0c\x42\x14\n\x12_htlc_maximum_msat\"#\n\x10\x41\x64\x64gossipRequest\x12\x0f\n\x07message\x18\x01 \x01(\x0c\"\x13\n\x11\x41\x64\x64gossipResponse\"o\n\x17\x41utocleaninvoiceRequest\x12\x17\n\nexpired_by\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x1a\n\rcycle_seconds\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\r\n\x0b_expired_byB\x10\n\x0e_cycle_seconds\"\x81\x01\n\x18\x41utocleaninvoiceResponse\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x17\n\nexpired_by\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x1a\n\rcycle_seconds\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\r\n\x0b_expired_byB\x10\n\x0e_cycle_seconds\"U\n\x13\x43heckmessageRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\r\n\x05zbase\x18\x02 \x01(\t\x12\x13\n\x06pubkey\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x42\t\n\x07_pubkey\"8\n\x14\x43heckmessageResponse\x12\x10\n\x08verified\x18\x01 \x01(\x08\x12\x0e\n\x06pubkey\x18\x02 \x01(\x0c\"\xcb\x02\n\x0c\x43loseRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1e\n\x11unilateraltimeout\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x03 \x01(\tH\x01\x88\x01\x01\x12!\n\x14\x66\x65\x65_negotiation_step\x18\x04 \x01(\tH\x02\x88\x01\x01\x12)\n\rwrong_funding\x18\x05 \x01(\x0b\x32\r.cln.OutpointH\x03\x88\x01\x01\x12\x1f\n\x12\x66orce_lease_closed\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1e\n\x08\x66\x65\x65range\x18\x07 \x03(\x0b\x32\x0c.cln.FeerateB\x14\n\x12_unilateraltimeoutB\x0e\n\x0c_destinationB\x17\n\x15_fee_negotiation_stepB\x10\n\x0e_wrong_fundingB\x15\n\x13_force_lease_closed\"\xab\x01\n\rCloseResponse\x12/\n\titem_type\x18\x01 \x01(\x0e\x32\x1c.cln.CloseResponse.CloseType\x12\x0f\n\x02tx\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x11\n\x04txid\x18\x03 \x01(\x0cH\x01\x88\x01\x01\"5\n\tCloseType\x12\n\n\x06MUTUAL\x10\x00\x12\x0e\n\nUNILATERAL\x10\x01\x12\x0c\n\x08UNOPENED\x10\x02\x42\x05\n\x03_txB\x07\n\x05_txid\"T\n\x0e\x43onnectRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x04host\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04port\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_hostB\x07\n\x05_port\"\xb4\x01\n\x0f\x43onnectResponse\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x10\n\x08\x66\x65\x61tures\x18\x02 \x01(\x0c\x12\x38\n\tdirection\x18\x03 \x01(\x0e\x32%.cln.ConnectResponse.ConnectDirection\x12$\n\x07\x61\x64\x64ress\x18\x04 \x01(\x0b\x32\x13.cln.ConnectAddress\"#\n\x10\x43onnectDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\"\xfb\x01\n\x0e\x43onnectAddress\x12\x39\n\titem_type\x18\x01 \x01(\x0e\x32&.cln.ConnectAddress.ConnectAddressType\x12\x13\n\x06socket\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04port\x18\x04 \x01(\rH\x02\x88\x01\x01\"P\n\x12\x43onnectAddressType\x12\x10\n\x0cLOCAL_SOCKET\x10\x00\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\t\n\x07_socketB\n\n\x08_addressB\x07\n\x05_port\"J\n\x14\x43reateinvoiceRequest\x12\x11\n\tinvstring\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x10\n\x08preimage\x18\x03 \x01(\x0c\"\xfe\x05\n\x15\x43reateinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x06\x62olt11\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12>\n\x06status\x18\x06 \x01(\x0e\x32..cln.CreateinvoiceResponse.CreateinvoiceStatus\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x12\n\nexpires_at\x18\x08 \x01(\x04\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tpay_index\x18\t \x01(\x04H\x04\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0b \x01(\x04H\x06\x88\x01\x01\x12;\n\rpaid_outpoint\x18\x11 \x01(\x0b\x32\x1f.cln.CreateinvoicePaid_outpointH\x07\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\x08\x88\x01\x01\x12\x1b\n\x0elocal_offer_id\x18\r \x01(\x0cH\t\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0f \x01(\tH\n\x88\x01\x01\"8\n\x13\x43reateinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x12\n\n\x06UNPAID\x10\x02\x42\t\n\x07_bolt11B\t\n\x07_bolt12B\x0e\n\x0c_amount_msatB\x10\n\x0e_created_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimageB\x11\n\x0f_local_offer_idB\x14\n\x12_invreq_payer_note\"X\n\x1a\x43reateinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\xb4\x02\n\x10\x44\x61tastoreRequest\x12\x0b\n\x03key\x18\x05 \x03(\t\x12\x13\n\x06string\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x36\n\x04mode\x18\x03 \x01(\x0e\x32#.cln.DatastoreRequest.DatastoreModeH\x02\x88\x01\x01\x12\x17\n\ngeneration\x18\x04 \x01(\x04H\x03\x88\x01\x01\"p\n\rDatastoreMode\x12\x0f\n\x0bMUST_CREATE\x10\x00\x12\x10\n\x0cMUST_REPLACE\x10\x01\x12\x15\n\x11\x43REATE_OR_REPLACE\x10\x02\x12\x0f\n\x0bMUST_APPEND\x10\x03\x12\x14\n\x10\x43REATE_OR_APPEND\x10\x04\x42\t\n\x07_stringB\x06\n\x04_hexB\x07\n\x05_modeB\r\n\x0b_generation\"\x82\x01\n\x11\x44\x61tastoreResponse\x12\x0b\n\x03key\x18\x05 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x13\n\x06string\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"$\n\x15\x44\x61tastoreusageRequest\x12\x0b\n\x03key\x18\x01 \x03(\t\"k\n\x16\x44\x61tastoreusageResponse\x12>\n\x0e\x64\x61tastoreusage\x18\x01 \x01(\x0b\x32!.cln.DatastoreusageDatastoreusageH\x00\x88\x01\x01\x42\x11\n\x0f_datastoreusage\"b\n\x1c\x44\x61tastoreusageDatastoreusage\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0btotal_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x06\n\x04_keyB\x0e\n\x0c_total_bytes\"\x9d\x01\n\x12\x43reateonionRequest\x12\"\n\x04hops\x18\x01 \x03(\x0b\x32\x14.cln.CreateonionHops\x12\x11\n\tassocdata\x18\x02 \x01(\x0c\x12\x18\n\x0bsession_key\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x17\n\nonion_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x42\x0e\n\x0c_session_keyB\r\n\x0b_onion_size\"<\n\x13\x43reateonionResponse\x12\r\n\x05onion\x18\x01 \x01(\x0c\x12\x16\n\x0eshared_secrets\x18\x02 \x03(\x0c\"2\n\x0f\x43reateonionHops\x12\x0e\n\x06pubkey\x18\x01 \x01(\x0c\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\"J\n\x13\x44\x65ldatastoreRequest\x12\x0b\n\x03key\x18\x03 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\r\n\x0b_generation\"\x85\x01\n\x14\x44\x65ldatastoreResponse\x12\x0b\n\x03key\x18\x05 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x13\n\x06string\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"H\n\x18\x44\x65lexpiredinvoiceRequest\x12\x1a\n\rmaxexpirytime\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\x10\n\x0e_maxexpirytime\"\x1b\n\x19\x44\x65lexpiredinvoiceResponse\"\xb6\x01\n\x11\x44\x65linvoiceRequest\x12\r\n\x05label\x18\x01 \x01(\t\x12\x37\n\x06status\x18\x02 \x01(\x0e\x32\'.cln.DelinvoiceRequest.DelinvoiceStatus\x12\x15\n\x08\x64\x65sconly\x18\x03 \x01(\x08H\x00\x88\x01\x01\"5\n\x10\x44\x65linvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x12\n\n\x06UNPAID\x10\x02\x42\x0b\n\t_desconly\"\xa1\x04\n\x12\x44\x65linvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x06\x62olt11\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x03 \x01(\tH\x01\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x06 \x01(\x0c\x12\x1a\n\rcreated_index\x18\x0c \x01(\x04H\x04\x88\x01\x01\x12\x1a\n\rupdated_index\x18\r \x01(\x04H\x05\x88\x01\x01\x12\x38\n\x06status\x18\x07 \x01(\x0e\x32(.cln.DelinvoiceResponse.DelinvoiceStatus\x12\x12\n\nexpires_at\x18\x08 \x01(\x04\x12\x1b\n\x0elocal_offer_id\x18\t \x01(\x0cH\x06\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0b \x01(\tH\x07\x88\x01\x01\"5\n\x10\x44\x65linvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x12\n\n\x06UNPAID\x10\x02\x42\t\n\x07_bolt11B\t\n\x07_bolt12B\x0e\n\x0c_amount_msatB\x0e\n\x0c_descriptionB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x11\n\x0f_local_offer_idB\x14\n\x12_invreq_payer_note\"\xfa\x01\n\x0eInvoiceRequest\x12%\n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x10.cln.AmountOrAny\x12\r\n\x05label\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x13\n\x06\x65xpiry\x18\x07 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\tfallbacks\x18\x04 \x03(\t\x12\x15\n\x08preimage\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x11\n\x04\x63ltv\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0c\x64\x65schashonly\x18\t \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_expiryB\x0b\n\t_preimageB\x07\n\x05_cltvB\x0f\n\r_deschashonly\"\x95\x03\n\x0fInvoiceResponse\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\x16\n\x0epayment_secret\x18\x03 \x01(\x0c\x12\x12\n\nexpires_at\x18\x04 \x01(\x04\x12\x1a\n\rcreated_index\x18\n \x01(\x04H\x00\x88\x01\x01\x12\x1d\n\x10warning_capacity\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fwarning_offline\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x10warning_deadends\x18\x07 \x01(\tH\x03\x88\x01\x01\x12#\n\x16warning_private_unused\x18\x08 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0bwarning_mpp\x18\t \x01(\tH\x05\x88\x01\x01\x42\x10\n\x0e_created_indexB\x13\n\x11_warning_capacityB\x12\n\x10_warning_offlineB\x13\n\x11_warning_deadendsB\x19\n\x17_warning_private_unusedB\x0e\n\x0c_warning_mpp\"#\n\x14ListdatastoreRequest\x12\x0b\n\x03key\x18\x02 \x03(\t\"G\n\x15ListdatastoreResponse\x12.\n\tdatastore\x18\x01 \x03(\x0b\x32\x1b.cln.ListdatastoreDatastore\"\x87\x01\n\x16ListdatastoreDatastore\x12\x0b\n\x03key\x18\x01 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x13\n\x06string\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"\xde\x02\n\x13ListinvoicesRequest\x12\x12\n\x05label\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tinvstring\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x12\x15\n\x08offer_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12>\n\x05index\x18\x05 \x01(\x0e\x32*.cln.ListinvoicesRequest.ListinvoicesIndexH\x04\x88\x01\x01\x12\x12\n\x05start\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x12\n\x05limit\x18\x07 \x01(\rH\x06\x88\x01\x01\"-\n\x11ListinvoicesIndex\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x42\x08\n\x06_labelB\x0c\n\n_invstringB\x0f\n\r_payment_hashB\x0b\n\t_offer_idB\x08\n\x06_indexB\x08\n\x06_startB\x08\n\x06_limit\"C\n\x14ListinvoicesResponse\x12+\n\x08invoices\x18\x01 \x03(\x0b\x32\x19.cln.ListinvoicesInvoices\"\xd4\x06\n\x14ListinvoicesInvoices\x12\r\n\x05label\x18\x01 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x44\n\x06status\x18\x04 \x01(\x0e\x32\x34.cln.ListinvoicesInvoices.ListinvoicesInvoicesStatus\x12\x12\n\nexpires_at\x18\x05 \x01(\x04\x12%\n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0elocal_offer_id\x18\t \x01(\x0cH\x04\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0f \x01(\tH\x05\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x07\x88\x01\x01\x12\x16\n\tpay_index\x18\x0b \x01(\x04H\x08\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\t\x88\x01\x01\x12\x14\n\x07paid_at\x18\r \x01(\x04H\n\x88\x01\x01\x12\x42\n\rpaid_outpoint\x18\x12 \x01(\x0b\x32&.cln.ListinvoicesInvoicesPaid_outpointH\x0b\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0e \x01(\x0cH\x0c\x88\x01\x01\"?\n\x1aListinvoicesInvoicesStatus\x12\n\n\x06UNPAID\x10\x00\x12\x08\n\x04PAID\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x11\n\x0f_local_offer_idB\x14\n\x12_invreq_payer_noteB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimage\"_\n!ListinvoicesInvoicesPaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\xb4\x03\n\x10SendonionRequest\x12\r\n\x05onion\x18\x01 \x01(\x0c\x12*\n\tfirst_hop\x18\x02 \x01(\x0b\x32\x17.cln.SendonionFirst_hop\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x12\n\x05label\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0eshared_secrets\x18\x05 \x03(\x0c\x12\x13\n\x06partid\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x02\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\t \x01(\x0cH\x04\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\r \x01(\x0cH\x05\x88\x01\x01\x12\x14\n\x07groupid\x18\x0b \x01(\x04H\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0e \x01(\tH\x07\x88\x01\x01\x42\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x10\n\x0e_localinvreqidB\n\n\x08_groupidB\x0e\n\x0c_description\"\xe7\x04\n\x11SendonionResponse\x12\x1a\n\rcreated_index\x18\x0e \x01(\x04H\x00\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\x36\n\x06status\x18\x03 \x01(\x0e\x32&.cln.SendonionResponse.SendonionStatus\x12%\n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x05 \x01(\x0cH\x02\x88\x01\x01\x12\x12\n\ncreated_at\x18\x06 \x01(\x04\x12%\n\x10\x61mount_sent_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\t \x01(\tH\x04\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\n \x01(\tH\x05\x88\x01\x01\x12\x13\n\x06partid\x18\r \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0f \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0b \x01(\x0cH\x08\x88\x01\x01\x12\x14\n\x07message\x18\x0c \x01(\tH\t\x88\x01\x01\",\n\x0fSendonionStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x42\x10\n\x0e_created_indexB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_bolt11B\t\n\x07_bolt12B\t\n\x07_partidB\x10\n\x0e_updated_indexB\x13\n\x11_payment_preimageB\n\n\x08_message\"Q\n\x12SendonionFirst_hop\x12\n\n\x02id\x18\x01 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\r\n\x05\x64\x65lay\x18\x03 \x01(\r\"\xa0\x03\n\x13ListsendpaysRequest\x12\x13\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12@\n\x06status\x18\x03 \x01(\x0e\x32+.cln.ListsendpaysRequest.ListsendpaysStatusH\x02\x88\x01\x01\x12>\n\x05index\x18\x04 \x01(\x0e\x32*.cln.ListsendpaysRequest.ListsendpaysIndexH\x03\x88\x01\x01\x12\x12\n\x05start\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x06 \x01(\rH\x05\x88\x01\x01\";\n\x12ListsendpaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"-\n\x11ListsendpaysIndex\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x42\t\n\x07_bolt11B\x0f\n\r_payment_hashB\t\n\x07_statusB\x08\n\x06_indexB\x08\n\x06_startB\x08\n\x06_limit\"C\n\x14ListsendpaysResponse\x12+\n\x08payments\x18\x01 \x03(\x0b\x32\x19.cln.ListsendpaysPayments\"\xfc\x05\n\x14ListsendpaysPayments\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x00\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0f\n\x07groupid\x18\x02 \x01(\x04\x12\x13\n\x06partid\x18\x0f \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x02\x88\x01\x01\x12\x44\n\x06status\x18\x04 \x01(\x0e\x32\x34.cln.ListsendpaysPayments.ListsendpaysPaymentsStatus\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x12\n\ncreated_at\x18\x07 \x01(\x04\x12%\n\x10\x61mount_sent_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\t \x01(\tH\x05\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\n \x01(\tH\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0e \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0b \x01(\tH\x08\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x12 \x01(\x04H\t\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\n\x88\x01\x01\x12\x17\n\nerroronion\x18\r \x01(\x0cH\x0b\x88\x01\x01\"C\n\x1aListsendpaysPaymentsStatus\x12\x0b\n\x07PENDING\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x12\x0c\n\x08\x43OMPLETE\x10\x02\x42\x10\n\x0e_created_indexB\t\n\x07_partidB\x10\n\x0e_updated_indexB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_bolt11B\x0e\n\x0c_descriptionB\t\n\x07_bolt12B\x0f\n\r_completed_atB\x13\n\x11_payment_preimageB\r\n\x0b_erroronion\"\x19\n\x17ListtransactionsRequest\"S\n\x18ListtransactionsResponse\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.cln.ListtransactionsTransactions\"\xf8\x01\n\x1cListtransactionsTransactions\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\r\n\x05rawtx\x18\x02 \x01(\x0c\x12\x13\n\x0b\x62lockheight\x18\x03 \x01(\r\x12\x0f\n\x07txindex\x18\x04 \x01(\r\x12\x10\n\x08locktime\x18\x07 \x01(\r\x12\x0f\n\x07version\x18\x08 \x01(\r\x12\x37\n\x06inputs\x18\t \x03(\x0b\x32\'.cln.ListtransactionsTransactionsInputs\x12\x39\n\x07outputs\x18\n \x03(\x0b\x32(.cln.ListtransactionsTransactionsOutputs\"S\n\"ListtransactionsTransactionsInputs\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\r\n\x05index\x18\x02 \x01(\r\x12\x10\n\x08sequence\x18\x03 \x01(\r\"l\n#ListtransactionsTransactionsOutputs\x12\r\n\x05index\x18\x01 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0cscriptPubKey\x18\x03 \x01(\x0c\"\xda\x03\n\nPayRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12%\n\x0b\x61mount_msat\x18\r \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x17\n\nriskfactor\x18\x08 \x01(\x01H\x02\x88\x01\x01\x12\x1a\n\rmaxfeepercent\x18\x04 \x01(\x01H\x03\x88\x01\x01\x12\x16\n\tretry_for\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x15\n\x08maxdelay\x18\x06 \x01(\rH\x05\x88\x01\x01\x12#\n\texemptfee\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\x0e \x01(\x0cH\x07\x88\x01\x01\x12\x0f\n\x07\x65xclude\x18\n \x03(\t\x12 \n\x06maxfee\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0c \x01(\tH\t\x88\x01\x01\x42\x0e\n\x0c_amount_msatB\x08\n\x06_labelB\r\n\x0b_riskfactorB\x10\n\x0e_maxfeepercentB\x0c\n\n_retry_forB\x0b\n\t_maxdelayB\x0c\n\n_exemptfeeB\x10\n\x0e_localinvreqidB\t\n\x07_maxfeeB\x0e\n\x0c_description\"\xfb\x02\n\x0bPayResponse\x12\x18\n\x10payment_preimage\x18\x01 \x01(\x0c\x12\x18\n\x0b\x64\x65stination\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x12\n\ncreated_at\x18\x04 \x01(\x01\x12\r\n\x05parts\x18\x05 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x61mount_sent_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12\'\n\x1awarning_partial_completion\x18\x08 \x01(\tH\x01\x88\x01\x01\x12*\n\x06status\x18\t \x01(\x0e\x32\x1a.cln.PayResponse.PayStatus\"2\n\tPayStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x42\x0e\n\x0c_destinationB\x1d\n\x1b_warning_partial_completion\"*\n\x10ListnodesRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x05\n\x03_id\"7\n\x11ListnodesResponse\x12\"\n\x05nodes\x18\x01 \x03(\x0b\x32\x13.cln.ListnodesNodes\"\xe1\x01\n\x0eListnodesNodes\x12\x0e\n\x06nodeid\x18\x01 \x01(\x0c\x12\x1b\n\x0elast_timestamp\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x61lias\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x04 \x01(\x0cH\x02\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18\x05 \x01(\x0cH\x03\x88\x01\x01\x12/\n\taddresses\x18\x06 \x03(\x0b\x32\x1c.cln.ListnodesNodesAddressesB\x11\n\x0f_last_timestampB\x08\n\x06_aliasB\x08\n\x06_colorB\x0b\n\t_features\"\xe8\x01\n\x17ListnodesNodesAddresses\x12K\n\titem_type\x18\x01 \x01(\x0e\x32\x38.cln.ListnodesNodesAddresses.ListnodesNodesAddressesType\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x00\x88\x01\x01\"P\n\x1bListnodesNodesAddressesType\x12\x07\n\x03\x44NS\x10\x00\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\n\n\x08_address\"g\n\x15WaitanyinvoiceRequest\x12\x1a\n\rlastpay_index\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x10\n\x0e_lastpay_indexB\n\n\x08_timeout\"\xbf\x05\n\x16WaitanyinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12@\n\x06status\x18\x04 \x01(\x0e\x32\x30.cln.WaitanyinvoiceResponse.WaitanyinvoiceStatus\x12\x12\n\nexpires_at\x18\x05 \x01(\x04\x12%\n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rcreated_index\x18\r \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tpay_index\x18\t \x01(\x04H\x05\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0b \x01(\x04H\x07\x88\x01\x01\x12<\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32 .cln.WaitanyinvoicePaid_outpointH\x08\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\t\x88\x01\x01\"-\n\x14WaitanyinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimage\"Y\n\x1bWaitanyinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"#\n\x12WaitinvoiceRequest\x12\r\n\x05label\x18\x01 \x01(\t\"\xb0\x05\n\x13WaitinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12:\n\x06status\x18\x04 \x01(\x0e\x32*.cln.WaitinvoiceResponse.WaitinvoiceStatus\x12\x12\n\nexpires_at\x18\x05 \x01(\x04\x12%\n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rcreated_index\x18\r \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tpay_index\x18\t \x01(\x04H\x05\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0b \x01(\x04H\x07\x88\x01\x01\x12\x39\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32\x1d.cln.WaitinvoicePaid_outpointH\x08\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\t\x88\x01\x01\"*\n\x11WaitinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimage\"V\n\x18WaitinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\x8e\x01\n\x12WaitsendpayRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x14\n\x07timeout\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06partid\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07groupid\x18\x04 \x01(\x04H\x02\x88\x01\x01\x42\n\n\x08_timeoutB\t\n\x07_partidB\n\n\x08_groupid\"\x8e\x05\n\x13WaitsendpayResponse\x12\x1a\n\rcreated_index\x18\x0f \x01(\x04H\x00\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x07groupid\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12:\n\x06status\x18\x04 \x01(\x0e\x32*.cln.WaitsendpayResponse.WaitsendpayStatus\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x03\x88\x01\x01\x12\x12\n\ncreated_at\x18\x07 \x01(\x04\x12\x1a\n\rupdated_index\x18\x10 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x0e \x01(\x01H\x05\x88\x01\x01\x12%\n\x10\x61mount_sent_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\t \x01(\tH\x06\x88\x01\x01\x12\x13\n\x06partid\x18\n \x01(\x04H\x07\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0b \x01(\tH\x08\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0c \x01(\tH\t\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\n\x88\x01\x01\"!\n\x11WaitsendpayStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x42\x10\n\x0e_created_indexB\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x10\n\x0e_updated_indexB\x0f\n\r_completed_atB\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimage\"\x97\x01\n\x0eNewaddrRequest\x12@\n\x0b\x61\x64\x64resstype\x18\x01 \x01(\x0e\x32&.cln.NewaddrRequest.NewaddrAddresstypeH\x00\x88\x01\x01\"3\n\x12NewaddrAddresstype\x12\n\n\x06\x42\x45\x43H32\x10\x00\x12\x08\n\x04P2TR\x10\x03\x12\x07\n\x03\x41LL\x10\x02\x42\x0e\n\x0c_addresstype\"M\n\x0fNewaddrResponse\x12\x11\n\x04p2tr\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62\x65\x63h32\x18\x01 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_p2trB\t\n\x07_bech32\"\xb9\x01\n\x0fWithdrawRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12!\n\x07satoshi\x18\x02 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\"\n\x07\x66\x65\x65rate\x18\x05 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x14\n\x07minconf\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.OutpointB\n\n\x08_feerateB\n\n\x08_minconf\":\n\x10WithdrawResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\x12\x0c\n\x04psbt\x18\x03 \x01(\t\"\x82\x03\n\x0eKeysendRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rmaxfeepercent\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12\x16\n\tretry_for\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x15\n\x08maxdelay\x18\x06 \x01(\rH\x03\x88\x01\x01\x12#\n\texemptfee\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12+\n\nroutehints\x18\x08 \x01(\x0b\x32\x12.cln.RoutehintListH\x05\x88\x01\x01\x12&\n\textratlvs\x18\t \x01(\x0b\x32\x0e.cln.TlvStreamH\x06\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_maxfeepercentB\x0c\n\n_retry_forB\x0b\n\t_maxdelayB\x0c\n\n_exemptfeeB\r\n\x0b_routehintsB\x0c\n\n_extratlvs\"\xf2\x02\n\x0fKeysendResponse\x12\x18\n\x10payment_preimage\x18\x01 \x01(\x0c\x12\x18\n\x0b\x64\x65stination\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x12\n\ncreated_at\x18\x04 \x01(\x01\x12\r\n\x05parts\x18\x05 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x61mount_sent_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12\'\n\x1awarning_partial_completion\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x32\n\x06status\x18\t \x01(\x0e\x32\".cln.KeysendResponse.KeysendStatus\"\x1d\n\rKeysendStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x42\x0e\n\x0c_destinationB\x1d\n\x1b_warning_partial_completion\"\xa4\x03\n\x0f\x46undpsbtRequest\x12!\n\x07satoshi\x18\x01 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\x1d\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.Feerate\x12\x13\n\x0bstartweight\x18\x03 \x01(\r\x12\x14\n\x07minconf\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07reserve\x18\x05 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08locktime\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12min_witness_weight\x18\x07 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10\x65xcess_as_change\x18\x08 \x01(\x08H\x04\x88\x01\x01\x12\x17\n\nnonwrapped\x18\t \x01(\x08H\x05\x88\x01\x01\x12#\n\x16opening_anchor_channel\x18\n \x01(\x08H\x06\x88\x01\x01\x42\n\n\x08_minconfB\n\n\x08_reserveB\x0b\n\t_locktimeB\x15\n\x13_min_witness_weightB\x13\n\x11_excess_as_changeB\r\n\x0b_nonwrappedB\x19\n\x17_opening_anchor_channel\"\xd9\x01\n\x10\x46undpsbtResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x16\n\x0e\x66\x65\x65rate_per_kw\x18\x02 \x01(\r\x12\x1e\n\x16\x65stimated_final_weight\x18\x03 \x01(\r\x12 \n\x0b\x65xcess_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x1a\n\rchange_outnum\x18\x05 \x01(\rH\x00\x88\x01\x01\x12/\n\x0creservations\x18\x06 \x03(\x0b\x32\x19.cln.FundpsbtReservationsB\x10\n\x0e_change_outnum\"u\n\x14\x46undpsbtReservations\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0c\n\x04vout\x18\x02 \x01(\r\x12\x14\n\x0cwas_reserved\x18\x03 \x01(\x08\x12\x10\n\x08reserved\x18\x04 \x01(\x08\x12\x19\n\x11reserved_to_block\x18\x05 \x01(\r\"A\n\x0fSendpsbtRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x14\n\x07reserve\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_reserve\",\n\x10SendpsbtResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\"1\n\x0fSignpsbtRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x10\n\x08signonly\x18\x02 \x03(\r\"\'\n\x10SignpsbtResponse\x12\x13\n\x0bsigned_psbt\x18\x01 \x01(\t\"\xa0\x03\n\x0fUtxopsbtRequest\x12!\n\x07satoshi\x18\x01 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\x1d\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.Feerate\x12\x13\n\x0bstartweight\x18\x03 \x01(\r\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.Outpoint\x12\x14\n\x07reserve\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nreservedok\x18\x08 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08locktime\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12min_witness_weight\x18\x07 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10\x65xcess_as_change\x18\t \x01(\x08H\x04\x88\x01\x01\x12#\n\x16opening_anchor_channel\x18\n \x01(\x08H\x05\x88\x01\x01\x42\n\n\x08_reserveB\r\n\x0b_reservedokB\x0b\n\t_locktimeB\x15\n\x13_min_witness_weightB\x13\n\x11_excess_as_changeB\x19\n\x17_opening_anchor_channel\"\xd9\x01\n\x10UtxopsbtResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x16\n\x0e\x66\x65\x65rate_per_kw\x18\x02 \x01(\r\x12\x1e\n\x16\x65stimated_final_weight\x18\x03 \x01(\r\x12 \n\x0b\x65xcess_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x1a\n\rchange_outnum\x18\x05 \x01(\rH\x00\x88\x01\x01\x12/\n\x0creservations\x18\x06 \x03(\x0b\x32\x19.cln.UtxopsbtReservationsB\x10\n\x0e_change_outnum\"u\n\x14UtxopsbtReservations\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0c\n\x04vout\x18\x02 \x01(\r\x12\x14\n\x0cwas_reserved\x18\x03 \x01(\x08\x12\x10\n\x08reserved\x18\x04 \x01(\x08\x12\x19\n\x11reserved_to_block\x18\x05 \x01(\r\" \n\x10TxdiscardRequest\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\"6\n\x11TxdiscardResponse\x12\x13\n\x0bunsigned_tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\"\xa4\x01\n\x10TxprepareRequest\x12 \n\x07outputs\x18\x05 \x03(\x0b\x32\x0f.cln.OutputDesc\x12\"\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x14\n\x07minconf\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.OutpointB\n\n\x08_feerateB\n\n\x08_minconf\"D\n\x11TxprepareResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x13\n\x0bunsigned_tx\x18\x02 \x01(\x0c\x12\x0c\n\x04txid\x18\x03 \x01(\x0c\"\x1d\n\rTxsendRequest\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\"8\n\x0eTxsendResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\n\n\x02tx\x18\x02 \x01(\x0c\x12\x0c\n\x04txid\x18\x03 \x01(\x0c\"1\n\x17ListpeerchannelsRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x05\n\x03_id\"K\n\x18ListpeerchannelsResponse\x12/\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1d.cln.ListpeerchannelsChannels\"\xb8\x1b\n\x18ListpeerchannelsChannels\x12\x14\n\x07peer_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x1b\n\x0epeer_connected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1a\n\rreestablished\x18: \x01(\x08H\x02\x88\x01\x01\x12O\n\x05state\x18\x03 \x01(\x0e\x32;.cln.ListpeerchannelsChannels.ListpeerchannelsChannelsStateH\x03\x88\x01\x01\x12\x19\n\x0cscratch_txid\x18\x04 \x01(\x0cH\x04\x88\x01\x01\x12:\n\x07updates\x18\x37 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsUpdatesH\x05\x88\x01\x01\x12\x1e\n\x11ignore_fee_limits\x18\x36 \x01(\x08H\x06\x88\x01\x01\x12\x17\n\nlost_state\x18\x39 \x01(\x08H\x07\x88\x01\x01\x12:\n\x07\x66\x65\x65rate\x18\x06 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFeerateH\x08\x88\x01\x01\x12\x12\n\x05owner\x18\x07 \x01(\tH\t\x88\x01\x01\x12\x1d\n\x10short_channel_id\x18\x08 \x01(\tH\n\x88\x01\x01\x12\x17\n\nchannel_id\x18\t \x01(\x0cH\x0b\x88\x01\x01\x12\x19\n\x0c\x66unding_txid\x18\n \x01(\x0cH\x0c\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x0b \x01(\rH\r\x88\x01\x01\x12\x1c\n\x0finitial_feerate\x18\x0c \x01(\tH\x0e\x88\x01\x01\x12\x19\n\x0clast_feerate\x18\r \x01(\tH\x0f\x88\x01\x01\x12\x19\n\x0cnext_feerate\x18\x0e \x01(\tH\x10\x88\x01\x01\x12\x1a\n\rnext_fee_step\x18\x0f \x01(\rH\x11\x88\x01\x01\x12\x37\n\x08inflight\x18\x10 \x03(\x0b\x32%.cln.ListpeerchannelsChannelsInflight\x12\x15\n\x08\x63lose_to\x18\x11 \x01(\x0cH\x12\x88\x01\x01\x12\x14\n\x07private\x18\x12 \x01(\x08H\x13\x88\x01\x01\x12%\n\x06opener\x18\x13 \x01(\x0e\x32\x10.cln.ChannelSideH\x14\x88\x01\x01\x12%\n\x06\x63loser\x18\x14 \x01(\x0e\x32\x10.cln.ChannelSideH\x15\x88\x01\x01\x12:\n\x07\x66unding\x18\x16 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFundingH\x16\x88\x01\x01\x12$\n\nto_us_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x17\x88\x01\x01\x12(\n\x0emin_to_us_msat\x18\x18 \x01(\x0b\x32\x0b.cln.AmountH\x18\x88\x01\x01\x12(\n\x0emax_to_us_msat\x18\x19 \x01(\x0b\x32\x0b.cln.AmountH\x19\x88\x01\x01\x12$\n\ntotal_msat\x18\x1a \x01(\x0b\x32\x0b.cln.AmountH\x1a\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x1b \x01(\x0b\x32\x0b.cln.AmountH\x1b\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x1c \x01(\rH\x1c\x88\x01\x01\x12)\n\x0f\x64ust_limit_msat\x18\x1d \x01(\x0b\x32\x0b.cln.AmountH\x1d\x88\x01\x01\x12\x30\n\x16max_total_htlc_in_msat\x18\x1e \x01(\x0b\x32\x0b.cln.AmountH\x1e\x88\x01\x01\x12,\n\x12their_reserve_msat\x18\x1f \x01(\x0b\x32\x0b.cln.AmountH\x1f\x88\x01\x01\x12*\n\x10our_reserve_msat\x18 \x01(\x0b\x32\x0b.cln.AmountH \x88\x01\x01\x12(\n\x0espendable_msat\x18! \x01(\x0b\x32\x0b.cln.AmountH!\x88\x01\x01\x12)\n\x0freceivable_msat\x18\" \x01(\x0b\x32\x0b.cln.AmountH\"\x88\x01\x01\x12.\n\x14minimum_htlc_in_msat\x18# \x01(\x0b\x32\x0b.cln.AmountH#\x88\x01\x01\x12/\n\x15minimum_htlc_out_msat\x18$ \x01(\x0b\x32\x0b.cln.AmountH$\x88\x01\x01\x12/\n\x15maximum_htlc_out_msat\x18% \x01(\x0b\x32\x0b.cln.AmountH%\x88\x01\x01\x12 \n\x13their_to_self_delay\x18& \x01(\rH&\x88\x01\x01\x12\x1e\n\x11our_to_self_delay\x18\' \x01(\rH\'\x88\x01\x01\x12\x1f\n\x12max_accepted_htlcs\x18( \x01(\rH(\x88\x01\x01\x12\x36\n\x05\x61lias\x18) \x01(\x0b\x32\".cln.ListpeerchannelsChannelsAliasH)\x88\x01\x01\x12\x0e\n\x06status\x18+ \x03(\t\x12 \n\x13in_payments_offered\x18, \x01(\x04H*\x88\x01\x01\x12)\n\x0fin_offered_msat\x18- \x01(\x0b\x32\x0b.cln.AmountH+\x88\x01\x01\x12\"\n\x15in_payments_fulfilled\x18. \x01(\x04H,\x88\x01\x01\x12+\n\x11in_fulfilled_msat\x18/ \x01(\x0b\x32\x0b.cln.AmountH-\x88\x01\x01\x12!\n\x14out_payments_offered\x18\x30 \x01(\x04H.\x88\x01\x01\x12*\n\x10out_offered_msat\x18\x31 \x01(\x0b\x32\x0b.cln.AmountH/\x88\x01\x01\x12#\n\x16out_payments_fulfilled\x18\x32 \x01(\x04H0\x88\x01\x01\x12,\n\x12out_fulfilled_msat\x18\x33 \x01(\x0b\x32\x0b.cln.AmountH1\x88\x01\x01\x12#\n\x16last_stable_connection\x18\x38 \x01(\x04H2\x88\x01\x01\x12\x31\n\x05htlcs\x18\x34 \x03(\x0b\x32\".cln.ListpeerchannelsChannelsHtlcs\x12\x1a\n\rclose_to_addr\x18\x35 \x01(\tH3\x88\x01\x01\"\x80\x03\n\x1dListpeerchannelsChannelsState\x12\x0c\n\x08OPENINGD\x10\x00\x12\x1c\n\x18\x43HANNELD_AWAITING_LOCKIN\x10\x01\x12\x13\n\x0f\x43HANNELD_NORMAL\x10\x02\x12\x1a\n\x16\x43HANNELD_SHUTTING_DOWN\x10\x03\x12\x18\n\x14\x43LOSINGD_SIGEXCHANGE\x10\x04\x12\x15\n\x11\x43LOSINGD_COMPLETE\x10\x05\x12\x17\n\x13\x41WAITING_UNILATERAL\x10\x06\x12\x16\n\x12\x46UNDING_SPEND_SEEN\x10\x07\x12\x0b\n\x07ONCHAIN\x10\x08\x12\x17\n\x13\x44UALOPEND_OPEN_INIT\x10\t\x12\x1d\n\x19\x44UALOPEND_AWAITING_LOCKIN\x10\n\x12\x1c\n\x18\x43HANNELD_AWAITING_SPLICE\x10\x0b\x12\x1c\n\x18\x44UALOPEND_OPEN_COMMITTED\x10\x0c\x12\x1f\n\x1b\x44UALOPEND_OPEN_COMMIT_READY\x10\rB\n\n\x08_peer_idB\x11\n\x0f_peer_connectedB\x10\n\x0e_reestablishedB\x08\n\x06_stateB\x0f\n\r_scratch_txidB\n\n\x08_updatesB\x14\n\x12_ignore_fee_limitsB\r\n\x0b_lost_stateB\n\n\x08_feerateB\x08\n\x06_ownerB\x13\n\x11_short_channel_idB\r\n\x0b_channel_idB\x0f\n\r_funding_txidB\x11\n\x0f_funding_outnumB\x12\n\x10_initial_feerateB\x0f\n\r_last_feerateB\x0f\n\r_next_feerateB\x10\n\x0e_next_fee_stepB\x0b\n\t_close_toB\n\n\x08_privateB\t\n\x07_openerB\t\n\x07_closerB\n\n\x08_fundingB\r\n\x0b_to_us_msatB\x11\n\x0f_min_to_us_msatB\x11\n\x0f_max_to_us_msatB\r\n\x0b_total_msatB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionthsB\x12\n\x10_dust_limit_msatB\x19\n\x17_max_total_htlc_in_msatB\x15\n\x13_their_reserve_msatB\x13\n\x11_our_reserve_msatB\x11\n\x0f_spendable_msatB\x12\n\x10_receivable_msatB\x17\n\x15_minimum_htlc_in_msatB\x18\n\x16_minimum_htlc_out_msatB\x18\n\x16_maximum_htlc_out_msatB\x16\n\x14_their_to_self_delayB\x14\n\x12_our_to_self_delayB\x15\n\x13_max_accepted_htlcsB\x08\n\x06_aliasB\x16\n\x14_in_payments_offeredB\x12\n\x10_in_offered_msatB\x18\n\x16_in_payments_fulfilledB\x14\n\x12_in_fulfilled_msatB\x17\n\x15_out_payments_offeredB\x13\n\x11_out_offered_msatB\x19\n\x17_out_payments_fulfilledB\x15\n\x13_out_fulfilled_msatB\x19\n\x17_last_stable_connectionB\x10\n\x0e_close_to_addr\"\xb6\x01\n\x1fListpeerchannelsChannelsUpdates\x12=\n\x05local\x18\x01 \x01(\x0b\x32).cln.ListpeerchannelsChannelsUpdatesLocalH\x00\x88\x01\x01\x12?\n\x06remote\x18\x02 \x01(\x0b\x32*.cln.ListpeerchannelsChannelsUpdatesRemoteH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"\xe7\x02\n$ListpeerchannelsChannelsUpdatesLocal\x12+\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x1e\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x14\n\x12_cltv_expiry_deltaB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionths\"\xe8\x02\n%ListpeerchannelsChannelsUpdatesRemote\x12+\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x1e\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x14\n\x12_cltv_expiry_deltaB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionths\"]\n\x1fListpeerchannelsChannelsFeerate\x12\x12\n\x05perkw\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05perkb\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_perkwB\x08\n\x06_perkb\"\x80\x03\n ListpeerchannelsChannelsInflight\x12\x19\n\x0c\x66unding_txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x03 \x01(\tH\x02\x88\x01\x01\x12,\n\x12total_funding_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x1a\n\rsplice_amount\x18\x07 \x01(\x12H\x04\x88\x01\x01\x12*\n\x10our_funding_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x19\n\x0cscratch_txid\x18\x06 \x01(\x0cH\x06\x88\x01\x01\x42\x0f\n\r_funding_txidB\x11\n\x0f_funding_outnumB\n\n\x08_feerateB\x15\n\x13_total_funding_msatB\x10\n\x0e_splice_amountB\x13\n\x11_our_funding_msatB\x0f\n\r_scratch_txid\"\xd2\x02\n\x1fListpeerchannelsChannelsFunding\x12%\n\x0bpushed_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12*\n\x10local_funds_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12+\n\x11remote_funds_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\'\n\rfee_paid_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\'\n\rfee_rcvd_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x42\x0e\n\x0c_pushed_msatB\x13\n\x11_local_funds_msatB\x14\n\x12_remote_funds_msatB\x10\n\x0e_fee_paid_msatB\x10\n\x0e_fee_rcvd_msat\"]\n\x1dListpeerchannelsChannelsAlias\x12\x12\n\x05local\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06remote\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"\xe2\x03\n\x1dListpeerchannelsChannelsHtlcs\x12\x61\n\tdirection\x18\x01 \x01(\x0e\x32I.cln.ListpeerchannelsChannelsHtlcs.ListpeerchannelsChannelsHtlcsDirectionH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x13\n\x06\x65xpiry\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x05 \x01(\x0cH\x04\x88\x01\x01\x12\x1a\n\rlocal_trimmed\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06status\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\"\n\x05state\x18\x08 \x01(\x0e\x32\x0e.cln.HtlcStateH\x07\x88\x01\x01\"9\n&ListpeerchannelsChannelsHtlcsDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\x42\x0c\n\n_directionB\x05\n\x03_idB\x0e\n\x0c_amount_msatB\t\n\x07_expiryB\x0f\n\r_payment_hashB\x10\n\x0e_local_trimmedB\t\n\x07_statusB\x08\n\x06_state\"3\n\x19ListclosedchannelsRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x05\n\x03_id\"[\n\x1aListclosedchannelsResponse\x12=\n\x0e\x63losedchannels\x18\x01 \x03(\x0b\x32%.cln.ListclosedchannelsClosedchannels\"\xf2\t\n ListclosedchannelsClosedchannels\x12\x14\n\x07peer_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\nchannel_id\x18\x02 \x01(\x0c\x12\x1d\n\x10short_channel_id\x18\x03 \x01(\tH\x01\x88\x01\x01\x12>\n\x05\x61lias\x18\x04 \x01(\x0b\x32*.cln.ListclosedchannelsClosedchannelsAliasH\x02\x88\x01\x01\x12 \n\x06opener\x18\x05 \x01(\x0e\x32\x10.cln.ChannelSide\x12%\n\x06\x63loser\x18\x06 \x01(\x0e\x32\x10.cln.ChannelSideH\x03\x88\x01\x01\x12\x0f\n\x07private\x18\x07 \x01(\x08\x12\x1f\n\x17total_local_commitments\x18\t \x01(\x04\x12 \n\x18total_remote_commitments\x18\n \x01(\x04\x12\x18\n\x10total_htlcs_sent\x18\x0b \x01(\x04\x12\x14\n\x0c\x66unding_txid\x18\x0c \x01(\x0c\x12\x16\n\x0e\x66unding_outnum\x18\r \x01(\r\x12\x0e\n\x06leased\x18\x0e \x01(\x08\x12/\n\x15\x66unding_fee_paid_msat\x18\x0f \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12/\n\x15\x66unding_fee_rcvd_msat\x18\x10 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12-\n\x13\x66unding_pushed_msat\x18\x11 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x1f\n\ntotal_msat\x18\x12 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x66inal_to_us_msat\x18\x13 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0emin_to_us_msat\x18\x14 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0emax_to_us_msat\x18\x15 \x01(\x0b\x32\x0b.cln.Amount\x12!\n\x14last_commitment_txid\x18\x16 \x01(\x0cH\x07\x88\x01\x01\x12\x32\n\x18last_commitment_fee_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x66\n\x0b\x63lose_cause\x18\x18 \x01(\x0e\x32Q.cln.ListclosedchannelsClosedchannels.ListclosedchannelsClosedchannelsClose_cause\x12#\n\x16last_stable_connection\x18\x19 \x01(\x04H\t\x88\x01\x01\"v\n+ListclosedchannelsClosedchannelsClose_cause\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05LOCAL\x10\x01\x12\x08\n\x04USER\x10\x02\x12\n\n\x06REMOTE\x10\x03\x12\x0c\n\x08PROTOCOL\x10\x04\x12\x0b\n\x07ONCHAIN\x10\x05\x42\n\n\x08_peer_idB\x13\n\x11_short_channel_idB\x08\n\x06_aliasB\t\n\x07_closerB\x18\n\x16_funding_fee_paid_msatB\x18\n\x16_funding_fee_rcvd_msatB\x16\n\x14_funding_pushed_msatB\x17\n\x15_last_commitment_txidB\x1b\n\x19_last_commitment_fee_msatB\x19\n\x17_last_stable_connection\"e\n%ListclosedchannelsClosedchannelsAlias\x12\x12\n\x05local\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06remote\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"L\n\x10\x44\x65\x63odepayRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\x8d\x04\n\x11\x44\x65\x63odepayResponse\x12\x10\n\x08\x63urrency\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x04\x12\x0e\n\x06\x65xpiry\x18\x03 \x01(\x04\x12\r\n\x05payee\x18\x04 \x01(\x0c\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x06 \x01(\x0c\x12\x11\n\tsignature\x18\x07 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10\x64\x65scription_hash\x18\t \x01(\x0cH\x02\x88\x01\x01\x12\x1d\n\x15min_final_cltv_expiry\x18\n \x01(\r\x12\x1b\n\x0epayment_secret\x18\x0b \x01(\x0cH\x03\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18\x0c \x01(\x0cH\x04\x88\x01\x01\x12\x1d\n\x10payment_metadata\x18\r \x01(\x0cH\x05\x88\x01\x01\x12*\n\tfallbacks\x18\x0e \x03(\x0b\x32\x17.cln.DecodepayFallbacks\x12\"\n\x05\x65xtra\x18\x10 \x03(\x0b\x32\x13.cln.DecodepayExtraB\x0e\n\x0c_amount_msatB\x0e\n\x0c_descriptionB\x13\n\x11_description_hashB\x11\n\x0f_payment_secretB\x0b\n\t_featuresB\x13\n\x11_payment_metadata\"\xd0\x01\n\x12\x44\x65\x63odepayFallbacks\x12\x41\n\titem_type\x18\x01 \x01(\x0e\x32..cln.DecodepayFallbacks.DecodepayFallbacksType\x12\x11\n\x04\x61\x64\x64r\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0b\n\x03hex\x18\x03 \x01(\x0c\"N\n\x16\x44\x65\x63odepayFallbacksType\x12\t\n\x05P2PKH\x10\x00\x12\x08\n\x04P2SH\x10\x01\x12\n\n\x06P2WPKH\x10\x02\x12\t\n\x05P2WSH\x10\x03\x12\x08\n\x04P2TR\x10\x04\x42\x07\n\x05_addr\"+\n\x0e\x44\x65\x63odepayExtra\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"\x1f\n\rDecodeRequest\x12\x0e\n\x06string\x18\x01 \x01(\t\"\xe8!\n\x0e\x44\x65\x63odeResponse\x12\x31\n\titem_type\x18\x01 \x01(\x0e\x32\x1e.cln.DecodeResponse.DecodeType\x12\r\n\x05valid\x18\x02 \x01(\x08\x12\x15\n\x08offer_id\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x0coffer_chains\x18\x04 \x03(\x0c\x12\x1b\n\x0eoffer_metadata\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x1b\n\x0eoffer_currency\x18\x06 \x01(\tH\x02\x88\x01\x01\x12+\n\x1ewarning_unknown_offer_currency\x18\x07 \x01(\tH\x03\x88\x01\x01\x12 \n\x13\x63urrency_minor_unit\x18\x08 \x01(\rH\x04\x88\x01\x01\x12\x19\n\x0coffer_amount\x18\t \x01(\x04H\x05\x88\x01\x01\x12+\n\x11offer_amount_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x1e\n\x11offer_description\x18\x0b \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0coffer_issuer\x18\x0c \x01(\tH\x08\x88\x01\x01\x12\x1b\n\x0eoffer_features\x18\r \x01(\x0cH\t\x88\x01\x01\x12\"\n\x15offer_absolute_expiry\x18\x0e \x01(\x04H\n\x88\x01\x01\x12\x1f\n\x12offer_quantity_max\x18\x0f \x01(\x04H\x0b\x88\x01\x01\x12+\n\x0boffer_paths\x18\x10 \x03(\x0b\x32\x16.cln.DecodeOffer_paths\x12\x1a\n\roffer_node_id\x18\x11 \x01(\x0cH\x0c\x88\x01\x01\x12*\n\x1dwarning_missing_offer_node_id\x18\x14 \x01(\tH\r\x88\x01\x01\x12.\n!warning_invalid_offer_description\x18\x15 \x01(\tH\x0e\x88\x01\x01\x12.\n!warning_missing_offer_description\x18\x16 \x01(\tH\x0f\x88\x01\x01\x12+\n\x1ewarning_invalid_offer_currency\x18\x17 \x01(\tH\x10\x88\x01\x01\x12)\n\x1cwarning_invalid_offer_issuer\x18\x18 \x01(\tH\x11\x88\x01\x01\x12\x1c\n\x0finvreq_metadata\x18\x19 \x01(\x0cH\x12\x88\x01\x01\x12\x1c\n\x0finvreq_payer_id\x18\x1a \x01(\x0cH\x13\x88\x01\x01\x12\x19\n\x0cinvreq_chain\x18\x1b \x01(\x0cH\x14\x88\x01\x01\x12,\n\x12invreq_amount_msat\x18\x1c \x01(\x0b\x32\x0b.cln.AmountH\x15\x88\x01\x01\x12\x1c\n\x0finvreq_features\x18\x1d \x01(\x0cH\x16\x88\x01\x01\x12\x1c\n\x0finvreq_quantity\x18\x1e \x01(\x04H\x17\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x1f \x01(\tH\x18\x88\x01\x01\x12&\n\x19invreq_recurrence_counter\x18 \x01(\rH\x19\x88\x01\x01\x12$\n\x17invreq_recurrence_start\x18! \x01(\rH\x1a\x88\x01\x01\x12,\n\x1fwarning_missing_invreq_metadata\x18# \x01(\tH\x1b\x88\x01\x01\x12,\n\x1fwarning_missing_invreq_payer_id\x18$ \x01(\tH\x1c\x88\x01\x01\x12.\n!warning_invalid_invreq_payer_note\x18% \x01(\tH\x1d\x88\x01\x01\x12\x36\n)warning_missing_invoice_request_signature\x18& \x01(\tH\x1e\x88\x01\x01\x12\x36\n)warning_invalid_invoice_request_signature\x18\' \x01(\tH\x1f\x88\x01\x01\x12\x1f\n\x12invoice_created_at\x18) \x01(\x04H \x88\x01\x01\x12$\n\x17invoice_relative_expiry\x18* \x01(\rH!\x88\x01\x01\x12!\n\x14invoice_payment_hash\x18+ \x01(\x0cH\"\x88\x01\x01\x12-\n\x13invoice_amount_msat\x18, \x01(\x0b\x32\x0b.cln.AmountH#\x88\x01\x01\x12\x37\n\x11invoice_fallbacks\x18- \x03(\x0b\x32\x1c.cln.DecodeInvoice_fallbacks\x12\x1d\n\x10invoice_features\x18. \x01(\x0cH$\x88\x01\x01\x12\x1c\n\x0finvoice_node_id\x18/ \x01(\x0cH%\x88\x01\x01\x12(\n\x1binvoice_recurrence_basetime\x18\x30 \x01(\x04H&\x88\x01\x01\x12*\n\x1dwarning_missing_invoice_paths\x18\x32 \x01(\tH\'\x88\x01\x01\x12/\n\"warning_missing_invoice_blindedpay\x18\x33 \x01(\tH(\x88\x01\x01\x12/\n\"warning_missing_invoice_created_at\x18\x34 \x01(\tH)\x88\x01\x01\x12\x31\n$warning_missing_invoice_payment_hash\x18\x35 \x01(\tH*\x88\x01\x01\x12+\n\x1ewarning_missing_invoice_amount\x18\x36 \x01(\tH+\x88\x01\x01\x12\x38\n+warning_missing_invoice_recurrence_basetime\x18\x37 \x01(\tH,\x88\x01\x01\x12,\n\x1fwarning_missing_invoice_node_id\x18\x38 \x01(\tH-\x88\x01\x01\x12.\n!warning_missing_invoice_signature\x18\x39 \x01(\tH.\x88\x01\x01\x12.\n!warning_invalid_invoice_signature\x18: \x01(\tH/\x88\x01\x01\x12\'\n\tfallbacks\x18; \x03(\x0b\x32\x14.cln.DecodeFallbacks\x12\x17\n\ncreated_at\x18< \x01(\x04H0\x88\x01\x01\x12\x13\n\x06\x65xpiry\x18= \x01(\x04H1\x88\x01\x01\x12\x12\n\x05payee\x18> \x01(\x0cH2\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18? \x01(\x0cH3\x88\x01\x01\x12\x1d\n\x10\x64\x65scription_hash\x18@ \x01(\x0cH4\x88\x01\x01\x12\"\n\x15min_final_cltv_expiry\x18\x41 \x01(\rH5\x88\x01\x01\x12\x1b\n\x0epayment_secret\x18\x42 \x01(\x0cH6\x88\x01\x01\x12\x1d\n\x10payment_metadata\x18\x43 \x01(\x0cH7\x88\x01\x01\x12\x1f\n\x05\x65xtra\x18\x45 \x03(\x0b\x32\x10.cln.DecodeExtra\x12\x16\n\tunique_id\x18\x46 \x01(\tH8\x88\x01\x01\x12\x14\n\x07version\x18G \x01(\tH9\x88\x01\x01\x12\x13\n\x06string\x18H \x01(\tH:\x88\x01\x01\x12-\n\x0crestrictions\x18I \x03(\x0b\x32\x17.cln.DecodeRestrictions\x12&\n\x19warning_rune_invalid_utf8\x18J \x01(\tH;\x88\x01\x01\x12\x10\n\x03hex\x18K \x01(\x0cH<\x88\x01\x01\x12\x16\n\tdecrypted\x18L \x01(\x0cH=\x88\x01\x01\"\x83\x01\n\nDecodeType\x12\x10\n\x0c\x42OLT12_OFFER\x10\x00\x12\x12\n\x0e\x42OLT12_INVOICE\x10\x01\x12\x1a\n\x16\x42OLT12_INVOICE_REQUEST\x10\x02\x12\x12\n\x0e\x42OLT11_INVOICE\x10\x03\x12\x08\n\x04RUNE\x10\x04\x12\x15\n\x11\x45MERGENCY_RECOVER\x10\x05\x42\x0b\n\t_offer_idB\x11\n\x0f_offer_metadataB\x11\n\x0f_offer_currencyB!\n\x1f_warning_unknown_offer_currencyB\x16\n\x14_currency_minor_unitB\x0f\n\r_offer_amountB\x14\n\x12_offer_amount_msatB\x14\n\x12_offer_descriptionB\x0f\n\r_offer_issuerB\x11\n\x0f_offer_featuresB\x18\n\x16_offer_absolute_expiryB\x15\n\x13_offer_quantity_maxB\x10\n\x0e_offer_node_idB \n\x1e_warning_missing_offer_node_idB$\n\"_warning_invalid_offer_descriptionB$\n\"_warning_missing_offer_descriptionB!\n\x1f_warning_invalid_offer_currencyB\x1f\n\x1d_warning_invalid_offer_issuerB\x12\n\x10_invreq_metadataB\x12\n\x10_invreq_payer_idB\x0f\n\r_invreq_chainB\x15\n\x13_invreq_amount_msatB\x12\n\x10_invreq_featuresB\x12\n\x10_invreq_quantityB\x14\n\x12_invreq_payer_noteB\x1c\n\x1a_invreq_recurrence_counterB\x1a\n\x18_invreq_recurrence_startB\"\n _warning_missing_invreq_metadataB\"\n _warning_missing_invreq_payer_idB$\n\"_warning_invalid_invreq_payer_noteB,\n*_warning_missing_invoice_request_signatureB,\n*_warning_invalid_invoice_request_signatureB\x15\n\x13_invoice_created_atB\x1a\n\x18_invoice_relative_expiryB\x17\n\x15_invoice_payment_hashB\x16\n\x14_invoice_amount_msatB\x13\n\x11_invoice_featuresB\x12\n\x10_invoice_node_idB\x1e\n\x1c_invoice_recurrence_basetimeB \n\x1e_warning_missing_invoice_pathsB%\n#_warning_missing_invoice_blindedpayB%\n#_warning_missing_invoice_created_atB\'\n%_warning_missing_invoice_payment_hashB!\n\x1f_warning_missing_invoice_amountB.\n,_warning_missing_invoice_recurrence_basetimeB\"\n _warning_missing_invoice_node_idB$\n\"_warning_missing_invoice_signatureB$\n\"_warning_invalid_invoice_signatureB\r\n\x0b_created_atB\t\n\x07_expiryB\x08\n\x06_payeeB\x0f\n\r_payment_hashB\x13\n\x11_description_hashB\x18\n\x16_min_final_cltv_expiryB\x11\n\x0f_payment_secretB\x13\n\x11_payment_metadataB\x0c\n\n_unique_idB\n\n\x08_versionB\t\n\x07_stringB\x1c\n\x1a_warning_rune_invalid_utf8B\x06\n\x04_hexB\x0c\n\n_decrypted\"<\n\x11\x44\x65\x63odeOffer_paths\x12\x15\n\rfirst_node_id\x18\x01 \x01(\x0c\x12\x10\n\x08\x62linding\x18\x02 \x01(\x0c\"\x8a\x01\n\x1f\x44\x65\x63odeOffer_recurrencePaywindow\x12\x16\n\x0eseconds_before\x18\x01 \x01(\r\x12\x15\n\rseconds_after\x18\x02 \x01(\r\x12 \n\x13proportional_amount\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_proportional_amount\"T\n\x17\x44\x65\x63odeInvoice_pathsPath\x12\x17\n\x0f\x62linded_node_id\x18\x01 \x01(\x0c\x12 \n\x18\x65ncrypted_recipient_data\x18\x02 \x01(\x0c\"Y\n\x17\x44\x65\x63odeInvoice_fallbacks\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x0b\n\x03hex\x18\x02 \x01(\x0c\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"w\n\x0f\x44\x65\x63odeFallbacks\x12\x36\n)warning_invoice_fallbacks_version_invalid\x18\x01 \x01(\tH\x00\x88\x01\x01\x42,\n*_warning_invoice_fallbacks_version_invalid\"(\n\x0b\x44\x65\x63odeExtra\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\";\n\x12\x44\x65\x63odeRestrictions\x12\x14\n\x0c\x61lternatives\x18\x01 \x03(\t\x12\x0f\n\x07summary\x18\x02 \x01(\t\"=\n\x11\x44isconnectRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x08\n\x06_force\"\x14\n\x12\x44isconnectResponse\"k\n\x0f\x46\x65\x65ratesRequest\x12\x31\n\x05style\x18\x01 \x01(\x0e\x32\".cln.FeeratesRequest.FeeratesStyle\"%\n\rFeeratesStyle\x12\t\n\x05PERKB\x10\x00\x12\t\n\x05PERKW\x10\x01\"\x9c\x02\n\x10\x46\x65\x65ratesResponse\x12%\n\x18warning_missing_feerates\x18\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x05perkb\x18\x02 \x01(\x0b\x32\x12.cln.FeeratesPerkbH\x01\x88\x01\x01\x12&\n\x05perkw\x18\x03 \x01(\x0b\x32\x12.cln.FeeratesPerkwH\x02\x88\x01\x01\x12\x46\n\x15onchain_fee_estimates\x18\x04 \x01(\x0b\x32\".cln.FeeratesOnchain_fee_estimatesH\x03\x88\x01\x01\x42\x1b\n\x19_warning_missing_feeratesB\x08\n\x06_perkbB\x08\n\x06_perkwB\x18\n\x16_onchain_fee_estimates\"\xd3\x03\n\rFeeratesPerkb\x12\x16\n\x0emin_acceptable\x18\x01 \x01(\r\x12\x16\n\x0emax_acceptable\x18\x02 \x01(\r\x12\x12\n\x05\x66loor\x18\n \x01(\rH\x00\x88\x01\x01\x12.\n\testimates\x18\t \x03(\x0b\x32\x1b.cln.FeeratesPerkbEstimates\x12\x14\n\x07opening\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmutual_close\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10unilateral_close\x18\x05 \x01(\rH\x03\x88\x01\x01\x12$\n\x17unilateral_anchor_close\x18\x0b \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rdelayed_to_us\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1c\n\x0fhtlc_resolution\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x14\n\x07penalty\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x08\n\x06_floorB\n\n\x08_openingB\x0f\n\r_mutual_closeB\x13\n\x11_unilateral_closeB\x1a\n\x18_unilateral_anchor_closeB\x10\n\x0e_delayed_to_usB\x12\n\x10_htlc_resolutionB\n\n\x08_penalty\"\x96\x01\n\x16\x46\x65\x65ratesPerkbEstimates\x12\x17\n\nblockcount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10smoothed_feerate\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\r\n\x0b_blockcountB\n\n\x08_feerateB\x13\n\x11_smoothed_feerate\"\xd3\x03\n\rFeeratesPerkw\x12\x16\n\x0emin_acceptable\x18\x01 \x01(\r\x12\x16\n\x0emax_acceptable\x18\x02 \x01(\r\x12\x12\n\x05\x66loor\x18\n \x01(\rH\x00\x88\x01\x01\x12.\n\testimates\x18\t \x03(\x0b\x32\x1b.cln.FeeratesPerkwEstimates\x12\x14\n\x07opening\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmutual_close\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10unilateral_close\x18\x05 \x01(\rH\x03\x88\x01\x01\x12$\n\x17unilateral_anchor_close\x18\x0b \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rdelayed_to_us\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1c\n\x0fhtlc_resolution\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x14\n\x07penalty\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x08\n\x06_floorB\n\n\x08_openingB\x0f\n\r_mutual_closeB\x13\n\x11_unilateral_closeB\x1a\n\x18_unilateral_anchor_closeB\x10\n\x0e_delayed_to_usB\x12\n\x10_htlc_resolutionB\n\n\x08_penalty\"\x96\x01\n\x16\x46\x65\x65ratesPerkwEstimates\x12\x17\n\nblockcount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10smoothed_feerate\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\r\n\x0b_blockcountB\n\n\x08_feerateB\x13\n\x11_smoothed_feerate\"\x9b\x02\n\x1d\x46\x65\x65ratesOnchain_fee_estimates\x12 \n\x18opening_channel_satoshis\x18\x01 \x01(\x04\x12\x1d\n\x15mutual_close_satoshis\x18\x02 \x01(\x04\x12!\n\x19unilateral_close_satoshis\x18\x03 \x01(\x04\x12\x30\n#unilateral_close_nonanchor_satoshis\x18\x06 \x01(\x04H\x00\x88\x01\x01\x12\x1d\n\x15htlc_timeout_satoshis\x18\x04 \x01(\x04\x12\x1d\n\x15htlc_success_satoshis\x18\x05 \x01(\x04\x42&\n$_unilateral_close_nonanchor_satoshis\"\xe9\x02\n\x13\x46\x65tchinvoiceRequest\x12\r\n\x05offer\x18\x01 \x01(\t\x12%\n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x15\n\x08quantity\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x1f\n\x12recurrence_counter\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x1d\n\x10recurrence_start\x18\x05 \x01(\x01H\x03\x88\x01\x01\x12\x1d\n\x10recurrence_label\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\x07 \x01(\x01H\x05\x88\x01\x01\x12\x17\n\npayer_note\x18\x08 \x01(\tH\x06\x88\x01\x01\x42\x0e\n\x0c_amount_msatB\x0b\n\t_quantityB\x15\n\x13_recurrence_counterB\x13\n\x11_recurrence_startB\x13\n\x11_recurrence_labelB\n\n\x08_timeoutB\r\n\x0b_payer_note\"\x9a\x01\n\x14\x46\x65tchinvoiceResponse\x12\x0f\n\x07invoice\x18\x01 \x01(\t\x12)\n\x07\x63hanges\x18\x02 \x01(\x0b\x32\x18.cln.FetchinvoiceChanges\x12\x36\n\x0bnext_period\x18\x03 \x01(\x0b\x32\x1c.cln.FetchinvoiceNext_periodH\x00\x88\x01\x01\x42\x0e\n\x0c_next_period\"\x82\x02\n\x13\x46\x65tchinvoiceChanges\x12!\n\x14\x64\x65scription_appended\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0evendor_removed\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06vendor\x18\x04 \x01(\tH\x03\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x42\x17\n\x15_description_appendedB\x0e\n\x0c_descriptionB\x11\n\x0f_vendor_removedB\t\n\x07_vendorB\x0e\n\x0c_amount_msat\"~\n\x17\x46\x65tchinvoiceNext_period\x12\x0f\n\x07\x63ounter\x18\x01 \x01(\x04\x12\x11\n\tstarttime\x18\x02 \x01(\x04\x12\x0f\n\x07\x65ndtime\x18\x03 \x01(\x04\x12\x17\n\x0fpaywindow_start\x18\x04 \x01(\x04\x12\x15\n\rpaywindow_end\x18\x05 \x01(\x04\"\xfb\x03\n\x12\x46undchannelRequest\x12\n\n\x02id\x18\t \x01(\x0c\x12 \n\x06\x61mount\x18\x01 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\"\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x15\n\x08\x61nnounce\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x14\n\x07minconf\x18\n \x01(\rH\x02\x88\x01\x01\x12#\n\tpush_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x06 \x01(\tH\x04\x88\x01\x01\x12%\n\x0brequest_amt\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x05utxos\x18\x0b \x03(\x0b\x32\r.cln.Outpoint\x12\x15\n\x08mindepth\x18\x0c \x01(\rH\x07\x88\x01\x01\x12!\n\x07reserve\x18\r \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x14\n\x0c\x63hannel_type\x18\x0e \x03(\rB\n\n\x08_feerateB\x0b\n\t_announceB\n\n\x08_minconfB\x0c\n\n_push_msatB\x0b\n\t_close_toB\x0e\n\x0c_request_amtB\x10\n\x0e_compact_leaseB\x0b\n\t_mindepthB\n\n\x08_reserve\"\xe5\x01\n\x13\x46undchannelResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\x12\x0e\n\x06outnum\x18\x03 \x01(\r\x12\x12\n\nchannel_id\x18\x04 \x01(\x0c\x12\x37\n\x0c\x63hannel_type\x18\x07 \x01(\x0b\x32\x1c.cln.FundchannelChannel_typeH\x00\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x15\n\x08mindepth\x18\x06 \x01(\rH\x02\x88\x01\x01\x42\x0f\n\r_channel_typeB\x0b\n\t_close_toB\x0b\n\t_mindepth\"L\n\x17\x46undchannelChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"\xec\x01\n\x0fGetrouteRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\t \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\nriskfactor\x18\x03 \x01(\x04\x12\x11\n\x04\x63ltv\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06\x66romid\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x18\n\x0b\x66uzzpercent\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x0f\n\x07\x65xclude\x18\x07 \x03(\t\x12\x14\n\x07maxhops\x18\x08 \x01(\rH\x03\x88\x01\x01\x42\x07\n\x05_cltvB\t\n\x07_fromidB\x0e\n\x0c_fuzzpercentB\n\n\x08_maxhops\"5\n\x10GetrouteResponse\x12!\n\x05route\x18\x01 \x03(\x0b\x32\x12.cln.GetrouteRoute\"\xc5\x01\n\rGetrouteRoute\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\t\x12\x11\n\tdirection\x18\x03 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\r\n\x05\x64\x65lay\x18\x05 \x01(\r\x12\x34\n\x05style\x18\x06 \x01(\x0e\x32%.cln.GetrouteRoute.GetrouteRouteStyle\"\x1d\n\x12GetrouteRouteStyle\x12\x07\n\x03TLV\x10\x00\"\xb7\x03\n\x13ListforwardsRequest\x12@\n\x06status\x18\x01 \x01(\x0e\x32+.cln.ListforwardsRequest.ListforwardsStatusH\x00\x88\x01\x01\x12\x17\n\nin_channel\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0bout_channel\x18\x03 \x01(\tH\x02\x88\x01\x01\x12>\n\x05index\x18\x04 \x01(\x0e\x32*.cln.ListforwardsRequest.ListforwardsIndexH\x03\x88\x01\x01\x12\x12\n\x05start\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x06 \x01(\rH\x05\x88\x01\x01\"L\n\x12ListforwardsStatus\x12\x0b\n\x07OFFERED\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x10\n\x0cLOCAL_FAILED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\"-\n\x11ListforwardsIndex\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x42\t\n\x07_statusB\r\n\x0b_in_channelB\x0e\n\x0c_out_channelB\x08\n\x06_indexB\x08\n\x06_startB\x08\n\x06_limit\"C\n\x14ListforwardsResponse\x12+\n\x08\x66orwards\x18\x01 \x03(\x0b\x32\x19.cln.ListforwardsForwards\"\xba\x05\n\x14ListforwardsForwards\x12\x1a\n\rcreated_index\x18\x0c \x01(\x04H\x00\x88\x01\x01\x12\x12\n\nin_channel\x18\x01 \x01(\t\x12\x17\n\nin_htlc_id\x18\n \x01(\x04H\x01\x88\x01\x01\x12\x1c\n\x07in_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\x44\n\x06status\x18\x03 \x01(\x0e\x32\x34.cln.ListforwardsForwards.ListforwardsForwardsStatus\x12\x15\n\rreceived_time\x18\x04 \x01(\x01\x12\x18\n\x0bout_channel\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0bout_htlc_id\x18\x0b \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\rupdated_index\x18\r \x01(\x04H\x04\x88\x01\x01\x12G\n\x05style\x18\t \x01(\x0e\x32\x33.cln.ListforwardsForwards.ListforwardsForwardsStyleH\x05\x88\x01\x01\x12\"\n\x08\x66\x65\x65_msat\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\"\n\x08out_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x07\x88\x01\x01\"T\n\x1aListforwardsForwardsStatus\x12\x0b\n\x07OFFERED\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x10\n\x0cLOCAL_FAILED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\"0\n\x19ListforwardsForwardsStyle\x12\n\n\x06LEGACY\x10\x00\x12\x07\n\x03TLV\x10\x01\x42\x10\n\x0e_created_indexB\r\n\x0b_in_htlc_idB\x0e\n\x0c_out_channelB\x0e\n\x0c_out_htlc_idB\x10\n\x0e_updated_indexB\x08\n\x06_styleB\x0b\n\t_fee_msatB\x0b\n\t_out_msat\"a\n\x11ListoffersRequest\x12\x15\n\x08offer_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x18\n\x0b\x61\x63tive_only\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0b\n\t_offer_idB\x0e\n\x0c_active_only\";\n\x12ListoffersResponse\x12%\n\x06offers\x18\x01 \x03(\x0b\x32\x15.cln.ListoffersOffers\"\x84\x01\n\x10ListoffersOffers\x12\x10\n\x08offer_id\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61\x63tive\x18\x02 \x01(\x08\x12\x12\n\nsingle_use\x18\x03 \x01(\x08\x12\x0e\n\x06\x62olt12\x18\x04 \x01(\t\x12\x0c\n\x04used\x18\x05 \x01(\x08\x12\x12\n\x05label\x18\x06 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_label\"\xdb\x01\n\x0fListpaysRequest\x12\x13\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x38\n\x06status\x18\x03 \x01(\x0e\x32#.cln.ListpaysRequest.ListpaysStatusH\x02\x88\x01\x01\"7\n\x0eListpaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x42\t\n\x07_bolt11B\x0f\n\r_payment_hashB\t\n\x07_status\"3\n\x10ListpaysResponse\x12\x1f\n\x04pays\x18\x01 \x03(\x0b\x32\x11.cln.ListpaysPays\"\xff\x04\n\x0cListpaysPays\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x34\n\x06status\x18\x02 \x01(\x0e\x32$.cln.ListpaysPays.ListpaysPaysStatus\x12\x18\n\x0b\x64\x65stination\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\ncreated_at\x18\x04 \x01(\x04\x12\x19\n\x0c\x63ompleted_at\x18\x0c \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05label\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0b \x01(\tH\x04\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x07 \x01(\tH\x05\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12*\n\x10\x61mount_sent_msat\x18\t \x01(\x0b\x32\x0b.cln.AmountH\x07\x88\x01\x01\x12\x15\n\x08preimage\x18\r \x01(\x0cH\x08\x88\x01\x01\x12\x1c\n\x0fnumber_of_parts\x18\x0e \x01(\x04H\t\x88\x01\x01\x12\x17\n\nerroronion\x18\n \x01(\x0cH\n\x88\x01\x01\";\n\x12ListpaysPaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x12\x0c\n\x08\x43OMPLETE\x10\x02\x42\x0e\n\x0c_destinationB\x0f\n\r_completed_atB\x08\n\x06_labelB\t\n\x07_bolt11B\x0e\n\x0c_descriptionB\t\n\x07_bolt12B\x0e\n\x0c_amount_msatB\x13\n\x11_amount_sent_msatB\x0b\n\t_preimageB\x12\n\x10_number_of_partsB\r\n\x0b_erroronion\"*\n\x10ListhtlcsRequest\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x05\n\x03_id\"7\n\x11ListhtlcsResponse\x12\"\n\x05htlcs\x18\x01 \x03(\x0b\x32\x13.cln.ListhtlcsHtlcs\"\x89\x02\n\x0eListhtlcsHtlcs\x12\x18\n\x10short_channel_id\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x04\x12\x0e\n\x06\x65xpiry\x18\x03 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12>\n\tdirection\x18\x05 \x01(\x0e\x32+.cln.ListhtlcsHtlcs.ListhtlcsHtlcsDirection\x12\x14\n\x0cpayment_hash\x18\x06 \x01(\x0c\x12\x1d\n\x05state\x18\x07 \x01(\x0e\x32\x0e.cln.HtlcState\"*\n\x17ListhtlcsHtlcsDirection\x12\x07\n\x03OUT\x10\x00\x12\x06\n\x02IN\x10\x01\"\xc1\x03\n\x0cOfferRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x13\n\x06issuer\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cquantity_max\x18\x05 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x61\x62solute_expiry\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12\x17\n\nrecurrence\x18\x07 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0frecurrence_base\x18\x08 \x01(\tH\x05\x88\x01\x01\x12!\n\x14recurrence_paywindow\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x10recurrence_limit\x18\n \x01(\rH\x07\x88\x01\x01\x12\x17\n\nsingle_use\x18\x0b \x01(\x08H\x08\x88\x01\x01\x42\t\n\x07_issuerB\x08\n\x06_labelB\x0f\n\r_quantity_maxB\x12\n\x10_absolute_expiryB\r\n\x0b_recurrenceB\x12\n\x10_recurrence_baseB\x17\n\x15_recurrence_paywindowB\x13\n\x11_recurrence_limitB\r\n\x0b_single_use\"\x92\x01\n\rOfferResponse\x12\x10\n\x08offer_id\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61\x63tive\x18\x02 \x01(\x08\x12\x12\n\nsingle_use\x18\x03 \x01(\x08\x12\x0e\n\x06\x62olt12\x18\x04 \x01(\t\x12\x0c\n\x04used\x18\x05 \x01(\x08\x12\x0f\n\x07\x63reated\x18\x06 \x01(\x08\x12\x12\n\x05label\x18\x07 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_label\"Y\n\x0bPingRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x10\n\x03len\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tpongbytes\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_lenB\x0c\n\n_pongbytes\"\x1e\n\x0cPingResponse\x12\x0e\n\x06totlen\x18\x01 \x01(\r\"4\n\x14SendcustommsgRequest\x12\x0f\n\x07node_id\x18\x01 \x01(\x0c\x12\x0b\n\x03msg\x18\x02 \x01(\x0c\"\'\n\x15SendcustommsgResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"\xaa\x02\n\x11SetchannelRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x07\x66\x65\x65\x62\x61se\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x66\x65\x65ppm\x18\x03 \x01(\rH\x01\x88\x01\x01\x12!\n\x07htlcmin\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12!\n\x07htlcmax\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x19\n\x0c\x65nforcedelay\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1c\n\x0fignorefeelimits\x18\x07 \x01(\x08H\x05\x88\x01\x01\x42\n\n\x08_feebaseB\t\n\x07_feeppmB\n\n\x08_htlcminB\n\n\x08_htlcmaxB\x0f\n\r_enforcedelayB\x12\n\x10_ignorefeelimits\"?\n\x12SetchannelResponse\x12)\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x17.cln.SetchannelChannels\"\xca\x03\n\x12SetchannelChannels\x12\x0f\n\x07peer_id\x18\x01 \x01(\x0c\x12\x12\n\nchannel_id\x18\x02 \x01(\x0c\x12\x1d\n\x10short_channel_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\"\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\r\x12\x1e\n\x11ignore_fee_limits\x18\n \x01(\x08H\x01\x88\x01\x01\x12*\n\x15minimum_htlc_out_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12$\n\x17warning_htlcmin_too_low\x18\x07 \x01(\tH\x02\x88\x01\x01\x12*\n\x15maximum_htlc_out_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x18warning_htlcmax_too_high\x18\t \x01(\tH\x03\x88\x01\x01\x42\x13\n\x11_short_channel_idB\x14\n\x12_ignore_fee_limitsB\x1a\n\x18_warning_htlcmin_too_lowB\x1b\n\x19_warning_htlcmax_too_high\"\'\n\x12SigninvoiceRequest\x12\x11\n\tinvstring\x18\x01 \x01(\t\"%\n\x13SigninvoiceResponse\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\"%\n\x12SignmessageRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\"F\n\x13SignmessageResponse\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\r\n\x05recid\x18\x02 \x01(\x0c\x12\r\n\x05zbase\x18\x03 \x01(\t\"O\n\x16WaitblockheightRequest\x12\x13\n\x0b\x62lockheight\x18\x01 \x01(\r\x12\x14\n\x07timeout\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_timeout\".\n\x17WaitblockheightResponse\x12\x13\n\x0b\x62lockheight\x18\x01 \x01(\r\"\xf9\x01\n\x0bWaitRequest\x12\x31\n\tsubsystem\x18\x01 \x01(\x0e\x32\x1e.cln.WaitRequest.WaitSubsystem\x12\x31\n\tindexname\x18\x02 \x01(\x0e\x32\x1e.cln.WaitRequest.WaitIndexname\x12\x11\n\tnextvalue\x18\x03 \x01(\x04\"9\n\rWaitSubsystem\x12\x0c\n\x08INVOICES\x10\x00\x12\x0c\n\x08\x46ORWARDS\x10\x01\x12\x0c\n\x08SENDPAYS\x10\x02\"6\n\rWaitIndexname\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\"\xe3\x01\n\x0cWaitResponse\x12\x32\n\tsubsystem\x18\x01 \x01(\x0e\x32\x1f.cln.WaitResponse.WaitSubsystem\x12\x14\n\x07\x63reated\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07updated\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07\x64\x65leted\x18\x04 \x01(\x04H\x02\x88\x01\x01\"9\n\rWaitSubsystem\x12\x0c\n\x08INVOICES\x10\x00\x12\x0c\n\x08\x46ORWARDS\x10\x01\x12\x0c\n\x08SENDPAYS\x10\x02\x42\n\n\x08_createdB\n\n\x08_updatedB\n\n\x08_deleted\"\r\n\x0bStopRequest\"q\n\x0cStopResponse\x12\x31\n\x06result\x18\x01 \x01(\x0e\x32\x1c.cln.StopResponse.StopResultH\x00\x88\x01\x01\"#\n\nStopResult\x12\x15\n\x11SHUTDOWN_COMPLETE\x10\x00\x42\t\n\x07_result\"\xa7\x01\n\x18PreapprovekeysendRequest\x12\x18\n\x0b\x64\x65stination\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x42\x0e\n\x0c_destinationB\x0f\n\r_payment_hashB\x0e\n\x0c_amount_msat\"\x1b\n\x19PreapprovekeysendResponse\":\n\x18PreapproveinvoiceRequest\x12\x13\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_bolt11\"\x1b\n\x19PreapproveinvoiceResponse\"\x15\n\x13StaticbackupRequest\"#\n\x14StaticbackupResponse\x12\x0b\n\x03scb\x18\x01 \x03(\x0c\"\x97\x01\n\x15\x42kprlistincomeRequest\x12\x1d\n\x10\x63onsolidate_fees\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x17\n\nstart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x13\n\x11_consolidate_feesB\r\n\x0b_start_timeB\x0b\n\t_end_time\"Q\n\x16\x42kprlistincomeResponse\x12\x37\n\rincome_events\x18\x01 \x03(\x0b\x32 .cln.BkprlistincomeIncome_events\"\xb5\x02\n\x1b\x42kprlistincomeIncome_events\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12 \n\x0b\x63redit_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x1f\n\ndebit_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x10\n\x08\x63urrency\x18\x05 \x01(\t\x12\x11\n\ttimestamp\x18\x06 \x01(\r\x12\x18\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08outpoint\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04txid\x18\t \x01(\x0cH\x02\x88\x01\x01\x12\x17\n\npayment_id\x18\n \x01(\x0cH\x03\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_outpointB\x07\n\x05_txidB\r\n\x0b_payment_id2\xe2 \n\x04Node\x12\x36\n\x07Getinfo\x12\x13.cln.GetinfoRequest\x1a\x14.cln.GetinfoResponse\"\x00\x12<\n\tListPeers\x12\x15.cln.ListpeersRequest\x1a\x16.cln.ListpeersResponse\"\x00\x12<\n\tListFunds\x12\x15.cln.ListfundsRequest\x1a\x16.cln.ListfundsResponse\"\x00\x12\x36\n\x07SendPay\x12\x13.cln.SendpayRequest\x1a\x14.cln.SendpayResponse\"\x00\x12\x45\n\x0cListChannels\x12\x18.cln.ListchannelsRequest\x1a\x19.cln.ListchannelsResponse\"\x00\x12<\n\tAddGossip\x12\x15.cln.AddgossipRequest\x1a\x16.cln.AddgossipResponse\"\x00\x12Q\n\x10\x41utoCleanInvoice\x12\x1c.cln.AutocleaninvoiceRequest\x1a\x1d.cln.AutocleaninvoiceResponse\"\x00\x12\x45\n\x0c\x43heckMessage\x12\x18.cln.CheckmessageRequest\x1a\x19.cln.CheckmessageResponse\"\x00\x12\x30\n\x05\x43lose\x12\x11.cln.CloseRequest\x1a\x12.cln.CloseResponse\"\x00\x12:\n\x0b\x43onnectPeer\x12\x13.cln.ConnectRequest\x1a\x14.cln.ConnectResponse\"\x00\x12H\n\rCreateInvoice\x12\x19.cln.CreateinvoiceRequest\x1a\x1a.cln.CreateinvoiceResponse\"\x00\x12<\n\tDatastore\x12\x15.cln.DatastoreRequest\x1a\x16.cln.DatastoreResponse\"\x00\x12K\n\x0e\x44\x61tastoreUsage\x12\x1a.cln.DatastoreusageRequest\x1a\x1b.cln.DatastoreusageResponse\"\x00\x12\x42\n\x0b\x43reateOnion\x12\x17.cln.CreateonionRequest\x1a\x18.cln.CreateonionResponse\"\x00\x12\x45\n\x0c\x44\x65lDatastore\x12\x18.cln.DeldatastoreRequest\x1a\x19.cln.DeldatastoreResponse\"\x00\x12T\n\x11\x44\x65lExpiredInvoice\x12\x1d.cln.DelexpiredinvoiceRequest\x1a\x1e.cln.DelexpiredinvoiceResponse\"\x00\x12?\n\nDelInvoice\x12\x16.cln.DelinvoiceRequest\x1a\x17.cln.DelinvoiceResponse\"\x00\x12\x36\n\x07Invoice\x12\x13.cln.InvoiceRequest\x1a\x14.cln.InvoiceResponse\"\x00\x12H\n\rListDatastore\x12\x19.cln.ListdatastoreRequest\x1a\x1a.cln.ListdatastoreResponse\"\x00\x12\x45\n\x0cListInvoices\x12\x18.cln.ListinvoicesRequest\x1a\x19.cln.ListinvoicesResponse\"\x00\x12<\n\tSendOnion\x12\x15.cln.SendonionRequest\x1a\x16.cln.SendonionResponse\"\x00\x12\x45\n\x0cListSendPays\x12\x18.cln.ListsendpaysRequest\x1a\x19.cln.ListsendpaysResponse\"\x00\x12Q\n\x10ListTransactions\x12\x1c.cln.ListtransactionsRequest\x1a\x1d.cln.ListtransactionsResponse\"\x00\x12*\n\x03Pay\x12\x0f.cln.PayRequest\x1a\x10.cln.PayResponse\"\x00\x12<\n\tListNodes\x12\x15.cln.ListnodesRequest\x1a\x16.cln.ListnodesResponse\"\x00\x12K\n\x0eWaitAnyInvoice\x12\x1a.cln.WaitanyinvoiceRequest\x1a\x1b.cln.WaitanyinvoiceResponse\"\x00\x12\x42\n\x0bWaitInvoice\x12\x17.cln.WaitinvoiceRequest\x1a\x18.cln.WaitinvoiceResponse\"\x00\x12\x42\n\x0bWaitSendPay\x12\x17.cln.WaitsendpayRequest\x1a\x18.cln.WaitsendpayResponse\"\x00\x12\x36\n\x07NewAddr\x12\x13.cln.NewaddrRequest\x1a\x14.cln.NewaddrResponse\"\x00\x12\x39\n\x08Withdraw\x12\x14.cln.WithdrawRequest\x1a\x15.cln.WithdrawResponse\"\x00\x12\x36\n\x07KeySend\x12\x13.cln.KeysendRequest\x1a\x14.cln.KeysendResponse\"\x00\x12\x39\n\x08\x46undPsbt\x12\x14.cln.FundpsbtRequest\x1a\x15.cln.FundpsbtResponse\"\x00\x12\x39\n\x08SendPsbt\x12\x14.cln.SendpsbtRequest\x1a\x15.cln.SendpsbtResponse\"\x00\x12\x39\n\x08SignPsbt\x12\x14.cln.SignpsbtRequest\x1a\x15.cln.SignpsbtResponse\"\x00\x12\x39\n\x08UtxoPsbt\x12\x14.cln.UtxopsbtRequest\x1a\x15.cln.UtxopsbtResponse\"\x00\x12<\n\tTxDiscard\x12\x15.cln.TxdiscardRequest\x1a\x16.cln.TxdiscardResponse\"\x00\x12<\n\tTxPrepare\x12\x15.cln.TxprepareRequest\x1a\x16.cln.TxprepareResponse\"\x00\x12\x33\n\x06TxSend\x12\x12.cln.TxsendRequest\x1a\x13.cln.TxsendResponse\"\x00\x12Q\n\x10ListPeerChannels\x12\x1c.cln.ListpeerchannelsRequest\x1a\x1d.cln.ListpeerchannelsResponse\"\x00\x12W\n\x12ListClosedChannels\x12\x1e.cln.ListclosedchannelsRequest\x1a\x1f.cln.ListclosedchannelsResponse\"\x00\x12<\n\tDecodePay\x12\x15.cln.DecodepayRequest\x1a\x16.cln.DecodepayResponse\"\x00\x12\x33\n\x06\x44\x65\x63ode\x12\x12.cln.DecodeRequest\x1a\x13.cln.DecodeResponse\"\x00\x12?\n\nDisconnect\x12\x16.cln.DisconnectRequest\x1a\x17.cln.DisconnectResponse\"\x00\x12\x39\n\x08\x46\x65\x65rates\x12\x14.cln.FeeratesRequest\x1a\x15.cln.FeeratesResponse\"\x00\x12\x45\n\x0c\x46\x65tchInvoice\x12\x18.cln.FetchinvoiceRequest\x1a\x19.cln.FetchinvoiceResponse\"\x00\x12\x42\n\x0b\x46undChannel\x12\x17.cln.FundchannelRequest\x1a\x18.cln.FundchannelResponse\"\x00\x12\x39\n\x08GetRoute\x12\x14.cln.GetrouteRequest\x1a\x15.cln.GetrouteResponse\"\x00\x12\x45\n\x0cListForwards\x12\x18.cln.ListforwardsRequest\x1a\x19.cln.ListforwardsResponse\"\x00\x12?\n\nListOffers\x12\x16.cln.ListoffersRequest\x1a\x17.cln.ListoffersResponse\"\x00\x12\x39\n\x08ListPays\x12\x14.cln.ListpaysRequest\x1a\x15.cln.ListpaysResponse\"\x00\x12<\n\tListHtlcs\x12\x15.cln.ListhtlcsRequest\x1a\x16.cln.ListhtlcsResponse\"\x00\x12\x30\n\x05Offer\x12\x11.cln.OfferRequest\x1a\x12.cln.OfferResponse\"\x00\x12-\n\x04Ping\x12\x10.cln.PingRequest\x1a\x11.cln.PingResponse\"\x00\x12H\n\rSendCustomMsg\x12\x19.cln.SendcustommsgRequest\x1a\x1a.cln.SendcustommsgResponse\"\x00\x12?\n\nSetChannel\x12\x16.cln.SetchannelRequest\x1a\x17.cln.SetchannelResponse\"\x00\x12\x42\n\x0bSignInvoice\x12\x17.cln.SigninvoiceRequest\x1a\x18.cln.SigninvoiceResponse\"\x00\x12\x42\n\x0bSignMessage\x12\x17.cln.SignmessageRequest\x1a\x18.cln.SignmessageResponse\"\x00\x12N\n\x0fWaitBlockHeight\x12\x1b.cln.WaitblockheightRequest\x1a\x1c.cln.WaitblockheightResponse\"\x00\x12-\n\x04Wait\x12\x10.cln.WaitRequest\x1a\x11.cln.WaitResponse\"\x00\x12-\n\x04Stop\x12\x10.cln.StopRequest\x1a\x11.cln.StopResponse\"\x00\x12T\n\x11PreApproveKeysend\x12\x1d.cln.PreapprovekeysendRequest\x1a\x1e.cln.PreapprovekeysendResponse\"\x00\x12T\n\x11PreApproveInvoice\x12\x1d.cln.PreapproveinvoiceRequest\x1a\x1e.cln.PreapproveinvoiceResponse\"\x00\x12\x45\n\x0cStaticBackup\x12\x18.cln.StaticbackupRequest\x1a\x19.cln.StaticbackupResponse\"\x00\x12K\n\x0e\x42kprListIncome\x12\x1a.cln.BkprlistincomeRequest\x1a\x1b.cln.BkprlistincomeResponse\"\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -117,395 +117,395 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['_CONNECTADDRESS_CONNECTADDRESSTYPE']._serialized_start=10326 _globals['_CONNECTADDRESS_CONNECTADDRESSTYPE']._serialized_end=10406 _globals['_CREATEINVOICEREQUEST']._serialized_start=10440 - _globals['_CREATEINVOICEREQUEST']._serialized_end=10499 - _globals['_CREATEINVOICERESPONSE']._serialized_start=10502 - _globals['_CREATEINVOICERESPONSE']._serialized_end=11268 - _globals['_CREATEINVOICERESPONSE_CREATEINVOICESTATUS']._serialized_start=11025 - _globals['_CREATEINVOICERESPONSE_CREATEINVOICESTATUS']._serialized_end=11081 - _globals['_CREATEINVOICEPAID_OUTPOINT']._serialized_start=11270 - _globals['_CREATEINVOICEPAID_OUTPOINT']._serialized_end=11358 - _globals['_DATASTOREREQUEST']._serialized_start=11361 - _globals['_DATASTOREREQUEST']._serialized_end=11669 - _globals['_DATASTOREREQUEST_DATASTOREMODE']._serialized_start=11514 - _globals['_DATASTOREREQUEST_DATASTOREMODE']._serialized_end=11626 - _globals['_DATASTORERESPONSE']._serialized_start=11672 - _globals['_DATASTORERESPONSE']._serialized_end=11802 - _globals['_DATASTOREUSAGEREQUEST']._serialized_start=11804 - _globals['_DATASTOREUSAGEREQUEST']._serialized_end=11827 - _globals['_DATASTOREUSAGERESPONSE']._serialized_start=11829 - _globals['_DATASTOREUSAGERESPONSE']._serialized_end=11936 - _globals['_DATASTOREUSAGEDATASTOREUSAGE']._serialized_start=11938 - _globals['_DATASTOREUSAGEDATASTOREUSAGE']._serialized_end=12036 - _globals['_CREATEONIONREQUEST']._serialized_start=12039 - _globals['_CREATEONIONREQUEST']._serialized_end=12196 - _globals['_CREATEONIONRESPONSE']._serialized_start=12198 - _globals['_CREATEONIONRESPONSE']._serialized_end=12258 - _globals['_CREATEONIONHOPS']._serialized_start=12260 - _globals['_CREATEONIONHOPS']._serialized_end=12310 - _globals['_DELDATASTOREREQUEST']._serialized_start=12312 - _globals['_DELDATASTOREREQUEST']._serialized_end=12386 - _globals['_DELDATASTORERESPONSE']._serialized_start=12389 - _globals['_DELDATASTORERESPONSE']._serialized_end=12522 - _globals['_DELEXPIREDINVOICEREQUEST']._serialized_start=12524 - _globals['_DELEXPIREDINVOICEREQUEST']._serialized_end=12596 - _globals['_DELEXPIREDINVOICERESPONSE']._serialized_start=12598 - _globals['_DELEXPIREDINVOICERESPONSE']._serialized_end=12625 - _globals['_DELINVOICEREQUEST']._serialized_start=12628 - _globals['_DELINVOICEREQUEST']._serialized_end=12810 - _globals['_DELINVOICEREQUEST_DELINVOICESTATUS']._serialized_start=12744 - _globals['_DELINVOICEREQUEST_DELINVOICESTATUS']._serialized_end=12797 - _globals['_DELINVOICERESPONSE']._serialized_start=12813 - _globals['_DELINVOICERESPONSE']._serialized_end=13358 - _globals['_DELINVOICERESPONSE_DELINVOICESTATUS']._serialized_start=12744 - _globals['_DELINVOICERESPONSE_DELINVOICESTATUS']._serialized_end=12797 - _globals['_INVOICEREQUEST']._serialized_start=13361 - _globals['_INVOICEREQUEST']._serialized_end=13611 - _globals['_INVOICERESPONSE']._serialized_start=13614 - _globals['_INVOICERESPONSE']._serialized_end=14019 - _globals['_LISTDATASTOREREQUEST']._serialized_start=14021 - _globals['_LISTDATASTOREREQUEST']._serialized_end=14056 - _globals['_LISTDATASTORERESPONSE']._serialized_start=14058 - _globals['_LISTDATASTORERESPONSE']._serialized_end=14129 - _globals['_LISTDATASTOREDATASTORE']._serialized_start=14132 - _globals['_LISTDATASTOREDATASTORE']._serialized_end=14267 - _globals['_LISTINVOICESREQUEST']._serialized_start=14270 - _globals['_LISTINVOICESREQUEST']._serialized_end=14620 - _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_start=14491 - _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_end=14536 - _globals['_LISTINVOICESRESPONSE']._serialized_start=14622 - _globals['_LISTINVOICESRESPONSE']._serialized_end=14689 - _globals['_LISTINVOICESINVOICES']._serialized_start=14692 - _globals['_LISTINVOICESINVOICES']._serialized_end=15544 - _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_start=15260 - _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_end=15323 - _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_start=15546 - _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_end=15641 - _globals['_SENDONIONREQUEST']._serialized_start=15644 - _globals['_SENDONIONREQUEST']._serialized_end=16080 - _globals['_SENDONIONRESPONSE']._serialized_start=16083 - _globals['_SENDONIONRESPONSE']._serialized_end=16698 - _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_start=16510 - _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_end=16554 - _globals['_SENDONIONFIRST_HOP']._serialized_start=16700 - _globals['_SENDONIONFIRST_HOP']._serialized_end=16781 - _globals['_LISTSENDPAYSREQUEST']._serialized_start=16784 - _globals['_LISTSENDPAYSREQUEST']._serialized_end=17200 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_start=17025 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_end=17084 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_start=17086 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_end=17131 - _globals['_LISTSENDPAYSRESPONSE']._serialized_start=17202 - _globals['_LISTSENDPAYSRESPONSE']._serialized_end=17269 - _globals['_LISTSENDPAYSPAYMENTS']._serialized_start=17272 - _globals['_LISTSENDPAYSPAYMENTS']._serialized_end=17992 - _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_start=17762 - _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_end=17829 - _globals['_LISTTRANSACTIONSREQUEST']._serialized_start=17994 - _globals['_LISTTRANSACTIONSREQUEST']._serialized_end=18019 - _globals['_LISTTRANSACTIONSRESPONSE']._serialized_start=18021 - _globals['_LISTTRANSACTIONSRESPONSE']._serialized_end=18104 - _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_start=18107 - _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_end=18355 - _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_start=18357 - _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_end=18440 - _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_start=18442 - _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_end=18550 - _globals['_PAYREQUEST']._serialized_start=18553 - _globals['_PAYREQUEST']._serialized_end=19027 - _globals['_PAYRESPONSE']._serialized_start=19030 - _globals['_PAYRESPONSE']._serialized_end=19409 - _globals['_PAYRESPONSE_PAYSTATUS']._serialized_start=19312 - _globals['_PAYRESPONSE_PAYSTATUS']._serialized_end=19362 - _globals['_LISTNODESREQUEST']._serialized_start=19411 - _globals['_LISTNODESREQUEST']._serialized_end=19453 - _globals['_LISTNODESRESPONSE']._serialized_start=19455 - _globals['_LISTNODESRESPONSE']._serialized_end=19510 - _globals['_LISTNODESNODES']._serialized_start=19513 - _globals['_LISTNODESNODES']._serialized_end=19738 - _globals['_LISTNODESNODESADDRESSES']._serialized_start=19741 - _globals['_LISTNODESNODESADDRESSES']._serialized_end=19973 - _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_start=19881 - _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_end=19961 - _globals['_WAITANYINVOICEREQUEST']._serialized_start=19975 - _globals['_WAITANYINVOICEREQUEST']._serialized_end=20078 - _globals['_WAITANYINVOICERESPONSE']._serialized_start=20081 - _globals['_WAITANYINVOICERESPONSE']._serialized_end=20784 - _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_start=20575 - _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_end=20620 - _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_start=20786 - _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_end=20875 - _globals['_WAITINVOICEREQUEST']._serialized_start=20877 - _globals['_WAITINVOICEREQUEST']._serialized_end=20897 - _globals['_WAITINVOICERESPONSE']._serialized_start=20900 - _globals['_WAITINVOICERESPONSE']._serialized_end=21588 - _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_start=21382 - _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_end=21424 - _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_start=21590 - _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_end=21676 - _globals['_WAITSENDPAYREQUEST']._serialized_start=21679 - _globals['_WAITSENDPAYREQUEST']._serialized_end=21821 - _globals['_WAITSENDPAYRESPONSE']._serialized_start=21824 - _globals['_WAITSENDPAYRESPONSE']._serialized_end=22478 - _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_start=22284 - _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_end=22317 - _globals['_NEWADDRREQUEST']._serialized_start=22481 - _globals['_NEWADDRREQUEST']._serialized_end=22632 - _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_start=22565 - _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_end=22616 - _globals['_NEWADDRRESPONSE']._serialized_start=22634 - _globals['_NEWADDRRESPONSE']._serialized_end=22711 - _globals['_WITHDRAWREQUEST']._serialized_start=22714 - _globals['_WITHDRAWREQUEST']._serialized_end=22899 - _globals['_WITHDRAWRESPONSE']._serialized_start=22901 - _globals['_WITHDRAWRESPONSE']._serialized_end=22959 - _globals['_KEYSENDREQUEST']._serialized_start=22962 - _globals['_KEYSENDREQUEST']._serialized_end=23348 - _globals['_KEYSENDRESPONSE']._serialized_start=23351 - _globals['_KEYSENDRESPONSE']._serialized_end=23721 - _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_start=23645 - _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_end=23674 - _globals['_FUNDPSBTREQUEST']._serialized_start=23724 - _globals['_FUNDPSBTREQUEST']._serialized_end=24144 - _globals['_FUNDPSBTRESPONSE']._serialized_start=24147 - _globals['_FUNDPSBTRESPONSE']._serialized_end=24364 - _globals['_FUNDPSBTRESERVATIONS']._serialized_start=24366 - _globals['_FUNDPSBTRESERVATIONS']._serialized_end=24483 - _globals['_SENDPSBTREQUEST']._serialized_start=24485 - _globals['_SENDPSBTREQUEST']._serialized_end=24550 - _globals['_SENDPSBTRESPONSE']._serialized_start=24552 - _globals['_SENDPSBTRESPONSE']._serialized_end=24596 - _globals['_SIGNPSBTREQUEST']._serialized_start=24598 - _globals['_SIGNPSBTREQUEST']._serialized_end=24647 - _globals['_SIGNPSBTRESPONSE']._serialized_start=24649 - _globals['_SIGNPSBTRESPONSE']._serialized_end=24688 - _globals['_UTXOPSBTREQUEST']._serialized_start=24691 - _globals['_UTXOPSBTREQUEST']._serialized_end=25107 - _globals['_UTXOPSBTRESPONSE']._serialized_start=25110 - _globals['_UTXOPSBTRESPONSE']._serialized_end=25327 - _globals['_UTXOPSBTRESERVATIONS']._serialized_start=25329 - _globals['_UTXOPSBTRESERVATIONS']._serialized_end=25446 - _globals['_TXDISCARDREQUEST']._serialized_start=25448 - _globals['_TXDISCARDREQUEST']._serialized_end=25480 - _globals['_TXDISCARDRESPONSE']._serialized_start=25482 - _globals['_TXDISCARDRESPONSE']._serialized_end=25536 - _globals['_TXPREPAREREQUEST']._serialized_start=25539 - _globals['_TXPREPAREREQUEST']._serialized_end=25703 - _globals['_TXPREPARERESPONSE']._serialized_start=25705 - _globals['_TXPREPARERESPONSE']._serialized_end=25773 - _globals['_TXSENDREQUEST']._serialized_start=25775 - _globals['_TXSENDREQUEST']._serialized_end=25804 - _globals['_TXSENDRESPONSE']._serialized_start=25806 - _globals['_TXSENDRESPONSE']._serialized_end=25862 - _globals['_LISTPEERCHANNELSREQUEST']._serialized_start=25864 - _globals['_LISTPEERCHANNELSREQUEST']._serialized_end=25913 - _globals['_LISTPEERCHANNELSRESPONSE']._serialized_start=25915 - _globals['_LISTPEERCHANNELSRESPONSE']._serialized_end=25990 - _globals['_LISTPEERCHANNELSCHANNELS']._serialized_start=25993 - _globals['_LISTPEERCHANNELSCHANNELS']._serialized_end=29459 - _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_start=28106 - _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_end=28490 - _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_start=29462 - _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_end=29644 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_start=29647 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_end=30006 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_start=30009 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_end=30369 - _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_start=30371 - _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_end=30464 - _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_start=30467 - _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_end=30851 - _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_start=30854 - _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_end=31192 - _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_start=31194 - _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_end=31287 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_start=31290 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_end=31772 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_start=31611 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_end=31668 - _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_start=31774 - _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_end=31825 - _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_start=31827 - _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_end=31918 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_start=31921 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_end=33187 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_start=32858 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_end=32976 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_start=33189 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_end=33290 - _globals['_DECODEPAYREQUEST']._serialized_start=33292 - _globals['_DECODEPAYREQUEST']._serialized_end=33368 - _globals['_DECODEPAYRESPONSE']._serialized_start=33371 - _globals['_DECODEPAYRESPONSE']._serialized_end=33896 - _globals['_DECODEPAYFALLBACKS']._serialized_start=33899 - _globals['_DECODEPAYFALLBACKS']._serialized_end=34107 - _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_start=34020 - _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_end=34098 - _globals['_DECODEPAYEXTRA']._serialized_start=34109 - _globals['_DECODEPAYEXTRA']._serialized_end=34152 - _globals['_DECODEREQUEST']._serialized_start=34154 - _globals['_DECODEREQUEST']._serialized_end=34185 - _globals['_DECODERESPONSE']._serialized_start=34188 - _globals['_DECODERESPONSE']._serialized_end=38516 - _globals['_DECODERESPONSE_DECODETYPE']._serialized_start=36781 - _globals['_DECODERESPONSE_DECODETYPE']._serialized_end=36912 - _globals['_DECODEOFFER_PATHS']._serialized_start=38518 - _globals['_DECODEOFFER_PATHS']._serialized_end=38578 - _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_start=38581 - _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_end=38719 - _globals['_DECODEINVOICE_PATHSPATH']._serialized_start=38721 - _globals['_DECODEINVOICE_PATHSPATH']._serialized_end=38805 - _globals['_DECODEINVOICE_FALLBACKS']._serialized_start=38807 - _globals['_DECODEINVOICE_FALLBACKS']._serialized_end=38896 - _globals['_DECODEFALLBACKS']._serialized_start=38898 - _globals['_DECODEFALLBACKS']._serialized_end=39017 - _globals['_DECODEEXTRA']._serialized_start=39019 - _globals['_DECODEEXTRA']._serialized_end=39059 - _globals['_DECODERESTRICTIONS']._serialized_start=39061 - _globals['_DECODERESTRICTIONS']._serialized_end=39120 - _globals['_DISCONNECTREQUEST']._serialized_start=39122 - _globals['_DISCONNECTREQUEST']._serialized_end=39183 - _globals['_DISCONNECTRESPONSE']._serialized_start=39185 - _globals['_DISCONNECTRESPONSE']._serialized_end=39205 - _globals['_FEERATESREQUEST']._serialized_start=39207 - _globals['_FEERATESREQUEST']._serialized_end=39314 - _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_start=39277 - _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_end=39314 - _globals['_FEERATESRESPONSE']._serialized_start=39317 - _globals['_FEERATESRESPONSE']._serialized_end=39601 - _globals['_FEERATESPERKB']._serialized_start=39604 - _globals['_FEERATESPERKB']._serialized_end=40071 - _globals['_FEERATESPERKBESTIMATES']._serialized_start=40074 - _globals['_FEERATESPERKBESTIMATES']._serialized_end=40224 - _globals['_FEERATESPERKW']._serialized_start=40227 - _globals['_FEERATESPERKW']._serialized_end=40694 - _globals['_FEERATESPERKWESTIMATES']._serialized_start=40697 - _globals['_FEERATESPERKWESTIMATES']._serialized_end=40847 - _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_start=40850 - _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_end=41133 - _globals['_FETCHINVOICEREQUEST']._serialized_start=41136 - _globals['_FETCHINVOICEREQUEST']._serialized_end=41497 - _globals['_FETCHINVOICERESPONSE']._serialized_start=41500 - _globals['_FETCHINVOICERESPONSE']._serialized_end=41654 - _globals['_FETCHINVOICECHANGES']._serialized_start=41657 - _globals['_FETCHINVOICECHANGES']._serialized_end=41915 - _globals['_FETCHINVOICENEXT_PERIOD']._serialized_start=41917 - _globals['_FETCHINVOICENEXT_PERIOD']._serialized_end=42043 - _globals['_FUNDCHANNELREQUEST']._serialized_start=42046 - _globals['_FUNDCHANNELREQUEST']._serialized_end=42553 - _globals['_FUNDCHANNELRESPONSE']._serialized_start=42556 - _globals['_FUNDCHANNELRESPONSE']._serialized_end=42785 - _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_start=42787 - _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_end=42863 - _globals['_GETROUTEREQUEST']._serialized_start=42866 - _globals['_GETROUTEREQUEST']._serialized_end=43102 - _globals['_GETROUTERESPONSE']._serialized_start=43104 - _globals['_GETROUTERESPONSE']._serialized_end=43157 - _globals['_GETROUTEROUTE']._serialized_start=43160 - _globals['_GETROUTEROUTE']._serialized_end=43357 - _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_start=43328 - _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_end=43357 - _globals['_LISTFORWARDSREQUEST']._serialized_start=43360 - _globals['_LISTFORWARDSREQUEST']._serialized_end=43799 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_start=43604 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_end=43680 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_start=43682 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_end=43727 - _globals['_LISTFORWARDSRESPONSE']._serialized_start=43801 - _globals['_LISTFORWARDSRESPONSE']._serialized_end=43868 - _globals['_LISTFORWARDSFORWARDS']._serialized_start=43871 - _globals['_LISTFORWARDSFORWARDS']._serialized_end=44569 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_start=44316 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_end=44400 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_start=44402 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_end=44450 - _globals['_LISTOFFERSREQUEST']._serialized_start=44571 - _globals['_LISTOFFERSREQUEST']._serialized_end=44668 - _globals['_LISTOFFERSRESPONSE']._serialized_start=44670 - _globals['_LISTOFFERSRESPONSE']._serialized_end=44729 - _globals['_LISTOFFERSOFFERS']._serialized_start=44732 - _globals['_LISTOFFERSOFFERS']._serialized_end=44864 - _globals['_LISTPAYSREQUEST']._serialized_start=44867 - _globals['_LISTPAYSREQUEST']._serialized_end=45086 - _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_start=44992 - _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_end=45047 - _globals['_LISTPAYSRESPONSE']._serialized_start=45088 - _globals['_LISTPAYSRESPONSE']._serialized_end=45139 - _globals['_LISTPAYSPAYS']._serialized_start=45142 - _globals['_LISTPAYSPAYS']._serialized_end=45781 - _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_start=45556 - _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_end=45615 - _globals['_LISTHTLCSREQUEST']._serialized_start=45783 - _globals['_LISTHTLCSREQUEST']._serialized_end=45825 - _globals['_LISTHTLCSRESPONSE']._serialized_start=45827 - _globals['_LISTHTLCSRESPONSE']._serialized_end=45882 - _globals['_LISTHTLCSHTLCS']._serialized_start=45885 - _globals['_LISTHTLCSHTLCS']._serialized_end=46150 - _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_start=46108 - _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_end=46150 - _globals['_OFFERREQUEST']._serialized_start=46153 - _globals['_OFFERREQUEST']._serialized_end=46602 - _globals['_OFFERRESPONSE']._serialized_start=46605 - _globals['_OFFERRESPONSE']._serialized_end=46751 - _globals['_PINGREQUEST']._serialized_start=46753 - _globals['_PINGREQUEST']._serialized_end=46842 - _globals['_PINGRESPONSE']._serialized_start=46844 - _globals['_PINGRESPONSE']._serialized_end=46874 - _globals['_SENDCUSTOMMSGREQUEST']._serialized_start=46876 - _globals['_SENDCUSTOMMSGREQUEST']._serialized_end=46928 - _globals['_SENDCUSTOMMSGRESPONSE']._serialized_start=46930 - _globals['_SENDCUSTOMMSGRESPONSE']._serialized_end=46969 - _globals['_SETCHANNELREQUEST']._serialized_start=46972 - _globals['_SETCHANNELREQUEST']._serialized_end=47270 - _globals['_SETCHANNELRESPONSE']._serialized_start=47272 - _globals['_SETCHANNELRESPONSE']._serialized_end=47335 - _globals['_SETCHANNELCHANNELS']._serialized_start=47338 - _globals['_SETCHANNELCHANNELS']._serialized_end=47796 - _globals['_SIGNINVOICEREQUEST']._serialized_start=47798 - _globals['_SIGNINVOICEREQUEST']._serialized_end=47837 - _globals['_SIGNINVOICERESPONSE']._serialized_start=47839 - _globals['_SIGNINVOICERESPONSE']._serialized_end=47876 - _globals['_SIGNMESSAGEREQUEST']._serialized_start=47878 - _globals['_SIGNMESSAGEREQUEST']._serialized_end=47915 - _globals['_SIGNMESSAGERESPONSE']._serialized_start=47917 - _globals['_SIGNMESSAGERESPONSE']._serialized_end=47987 - _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_start=47989 - _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_end=48068 - _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_start=48070 - _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_end=48116 - _globals['_WAITREQUEST']._serialized_start=48119 - _globals['_WAITREQUEST']._serialized_end=48368 - _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_start=48255 - _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_end=48312 - _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_start=48314 - _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_end=48368 - _globals['_WAITRESPONSE']._serialized_start=48371 - _globals['_WAITRESPONSE']._serialized_end=48598 - _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_start=48255 - _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_end=48312 - _globals['_STOPREQUEST']._serialized_start=48600 - _globals['_STOPREQUEST']._serialized_end=48613 - _globals['_STOPRESPONSE']._serialized_start=48615 - _globals['_STOPRESPONSE']._serialized_end=48728 - _globals['_STOPRESPONSE_STOPRESULT']._serialized_start=48682 - _globals['_STOPRESPONSE_STOPRESULT']._serialized_end=48717 - _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_start=48731 - _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_end=48898 - _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_start=48900 - _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_end=48927 - _globals['_PREAPPROVEINVOICEREQUEST']._serialized_start=48929 - _globals['_PREAPPROVEINVOICEREQUEST']._serialized_end=48987 - _globals['_PREAPPROVEINVOICERESPONSE']._serialized_start=48989 - _globals['_PREAPPROVEINVOICERESPONSE']._serialized_end=49016 - _globals['_STATICBACKUPREQUEST']._serialized_start=49018 - _globals['_STATICBACKUPREQUEST']._serialized_end=49039 - _globals['_STATICBACKUPRESPONSE']._serialized_start=49041 - _globals['_STATICBACKUPRESPONSE']._serialized_end=49076 - _globals['_BKPRLISTINCOMEREQUEST']._serialized_start=49079 - _globals['_BKPRLISTINCOMEREQUEST']._serialized_end=49230 - _globals['_BKPRLISTINCOMERESPONSE']._serialized_start=49232 - _globals['_BKPRLISTINCOMERESPONSE']._serialized_end=49313 - _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_start=49316 - _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_end=49625 - _globals['_NODE']._serialized_start=49628 - _globals['_NODE']._serialized_end=53822 + _globals['_CREATEINVOICEREQUEST']._serialized_end=10514 + _globals['_CREATEINVOICERESPONSE']._serialized_start=10517 + _globals['_CREATEINVOICERESPONSE']._serialized_end=11283 + _globals['_CREATEINVOICERESPONSE_CREATEINVOICESTATUS']._serialized_start=11040 + _globals['_CREATEINVOICERESPONSE_CREATEINVOICESTATUS']._serialized_end=11096 + _globals['_CREATEINVOICEPAID_OUTPOINT']._serialized_start=11285 + _globals['_CREATEINVOICEPAID_OUTPOINT']._serialized_end=11373 + _globals['_DATASTOREREQUEST']._serialized_start=11376 + _globals['_DATASTOREREQUEST']._serialized_end=11684 + _globals['_DATASTOREREQUEST_DATASTOREMODE']._serialized_start=11529 + _globals['_DATASTOREREQUEST_DATASTOREMODE']._serialized_end=11641 + _globals['_DATASTORERESPONSE']._serialized_start=11687 + _globals['_DATASTORERESPONSE']._serialized_end=11817 + _globals['_DATASTOREUSAGEREQUEST']._serialized_start=11819 + _globals['_DATASTOREUSAGEREQUEST']._serialized_end=11855 + _globals['_DATASTOREUSAGERESPONSE']._serialized_start=11857 + _globals['_DATASTOREUSAGERESPONSE']._serialized_end=11964 + _globals['_DATASTOREUSAGEDATASTOREUSAGE']._serialized_start=11966 + _globals['_DATASTOREUSAGEDATASTOREUSAGE']._serialized_end=12064 + _globals['_CREATEONIONREQUEST']._serialized_start=12067 + _globals['_CREATEONIONREQUEST']._serialized_end=12224 + _globals['_CREATEONIONRESPONSE']._serialized_start=12226 + _globals['_CREATEONIONRESPONSE']._serialized_end=12286 + _globals['_CREATEONIONHOPS']._serialized_start=12288 + _globals['_CREATEONIONHOPS']._serialized_end=12338 + _globals['_DELDATASTOREREQUEST']._serialized_start=12340 + _globals['_DELDATASTOREREQUEST']._serialized_end=12414 + _globals['_DELDATASTORERESPONSE']._serialized_start=12417 + _globals['_DELDATASTORERESPONSE']._serialized_end=12550 + _globals['_DELEXPIREDINVOICEREQUEST']._serialized_start=12552 + _globals['_DELEXPIREDINVOICEREQUEST']._serialized_end=12624 + _globals['_DELEXPIREDINVOICERESPONSE']._serialized_start=12626 + _globals['_DELEXPIREDINVOICERESPONSE']._serialized_end=12653 + _globals['_DELINVOICEREQUEST']._serialized_start=12656 + _globals['_DELINVOICEREQUEST']._serialized_end=12838 + _globals['_DELINVOICEREQUEST_DELINVOICESTATUS']._serialized_start=12772 + _globals['_DELINVOICEREQUEST_DELINVOICESTATUS']._serialized_end=12825 + _globals['_DELINVOICERESPONSE']._serialized_start=12841 + _globals['_DELINVOICERESPONSE']._serialized_end=13386 + _globals['_DELINVOICERESPONSE_DELINVOICESTATUS']._serialized_start=12772 + _globals['_DELINVOICERESPONSE_DELINVOICESTATUS']._serialized_end=12825 + _globals['_INVOICEREQUEST']._serialized_start=13389 + _globals['_INVOICEREQUEST']._serialized_end=13639 + _globals['_INVOICERESPONSE']._serialized_start=13642 + _globals['_INVOICERESPONSE']._serialized_end=14047 + _globals['_LISTDATASTOREREQUEST']._serialized_start=14049 + _globals['_LISTDATASTOREREQUEST']._serialized_end=14084 + _globals['_LISTDATASTORERESPONSE']._serialized_start=14086 + _globals['_LISTDATASTORERESPONSE']._serialized_end=14157 + _globals['_LISTDATASTOREDATASTORE']._serialized_start=14160 + _globals['_LISTDATASTOREDATASTORE']._serialized_end=14295 + _globals['_LISTINVOICESREQUEST']._serialized_start=14298 + _globals['_LISTINVOICESREQUEST']._serialized_end=14648 + _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_start=14519 + _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_end=14564 + _globals['_LISTINVOICESRESPONSE']._serialized_start=14650 + _globals['_LISTINVOICESRESPONSE']._serialized_end=14717 + _globals['_LISTINVOICESINVOICES']._serialized_start=14720 + _globals['_LISTINVOICESINVOICES']._serialized_end=15572 + _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_start=15288 + _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_end=15351 + _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_start=15574 + _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_end=15669 + _globals['_SENDONIONREQUEST']._serialized_start=15672 + _globals['_SENDONIONREQUEST']._serialized_end=16108 + _globals['_SENDONIONRESPONSE']._serialized_start=16111 + _globals['_SENDONIONRESPONSE']._serialized_end=16726 + _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_start=16538 + _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_end=16582 + _globals['_SENDONIONFIRST_HOP']._serialized_start=16728 + _globals['_SENDONIONFIRST_HOP']._serialized_end=16809 + _globals['_LISTSENDPAYSREQUEST']._serialized_start=16812 + _globals['_LISTSENDPAYSREQUEST']._serialized_end=17228 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_start=17053 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_end=17112 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_start=17114 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_end=17159 + _globals['_LISTSENDPAYSRESPONSE']._serialized_start=17230 + _globals['_LISTSENDPAYSRESPONSE']._serialized_end=17297 + _globals['_LISTSENDPAYSPAYMENTS']._serialized_start=17300 + _globals['_LISTSENDPAYSPAYMENTS']._serialized_end=18064 + _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_start=17817 + _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_end=17884 + _globals['_LISTTRANSACTIONSREQUEST']._serialized_start=18066 + _globals['_LISTTRANSACTIONSREQUEST']._serialized_end=18091 + _globals['_LISTTRANSACTIONSRESPONSE']._serialized_start=18093 + _globals['_LISTTRANSACTIONSRESPONSE']._serialized_end=18176 + _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_start=18179 + _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_end=18427 + _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_start=18429 + _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_end=18512 + _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_start=18514 + _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_end=18622 + _globals['_PAYREQUEST']._serialized_start=18625 + _globals['_PAYREQUEST']._serialized_end=19099 + _globals['_PAYRESPONSE']._serialized_start=19102 + _globals['_PAYRESPONSE']._serialized_end=19481 + _globals['_PAYRESPONSE_PAYSTATUS']._serialized_start=19384 + _globals['_PAYRESPONSE_PAYSTATUS']._serialized_end=19434 + _globals['_LISTNODESREQUEST']._serialized_start=19483 + _globals['_LISTNODESREQUEST']._serialized_end=19525 + _globals['_LISTNODESRESPONSE']._serialized_start=19527 + _globals['_LISTNODESRESPONSE']._serialized_end=19582 + _globals['_LISTNODESNODES']._serialized_start=19585 + _globals['_LISTNODESNODES']._serialized_end=19810 + _globals['_LISTNODESNODESADDRESSES']._serialized_start=19813 + _globals['_LISTNODESNODESADDRESSES']._serialized_end=20045 + _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_start=19953 + _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_end=20033 + _globals['_WAITANYINVOICEREQUEST']._serialized_start=20047 + _globals['_WAITANYINVOICEREQUEST']._serialized_end=20150 + _globals['_WAITANYINVOICERESPONSE']._serialized_start=20153 + _globals['_WAITANYINVOICERESPONSE']._serialized_end=20856 + _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_start=20647 + _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_end=20692 + _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_start=20858 + _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_end=20947 + _globals['_WAITINVOICEREQUEST']._serialized_start=20949 + _globals['_WAITINVOICEREQUEST']._serialized_end=20984 + _globals['_WAITINVOICERESPONSE']._serialized_start=20987 + _globals['_WAITINVOICERESPONSE']._serialized_end=21675 + _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_start=21469 + _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_end=21511 + _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_start=21677 + _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_end=21763 + _globals['_WAITSENDPAYREQUEST']._serialized_start=21766 + _globals['_WAITSENDPAYREQUEST']._serialized_end=21908 + _globals['_WAITSENDPAYRESPONSE']._serialized_start=21911 + _globals['_WAITSENDPAYRESPONSE']._serialized_end=22565 + _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_start=22371 + _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_end=22404 + _globals['_NEWADDRREQUEST']._serialized_start=22568 + _globals['_NEWADDRREQUEST']._serialized_end=22719 + _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_start=22652 + _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_end=22703 + _globals['_NEWADDRRESPONSE']._serialized_start=22721 + _globals['_NEWADDRRESPONSE']._serialized_end=22798 + _globals['_WITHDRAWREQUEST']._serialized_start=22801 + _globals['_WITHDRAWREQUEST']._serialized_end=22986 + _globals['_WITHDRAWRESPONSE']._serialized_start=22988 + _globals['_WITHDRAWRESPONSE']._serialized_end=23046 + _globals['_KEYSENDREQUEST']._serialized_start=23049 + _globals['_KEYSENDREQUEST']._serialized_end=23435 + _globals['_KEYSENDRESPONSE']._serialized_start=23438 + _globals['_KEYSENDRESPONSE']._serialized_end=23808 + _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_start=23732 + _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_end=23761 + _globals['_FUNDPSBTREQUEST']._serialized_start=23811 + _globals['_FUNDPSBTREQUEST']._serialized_end=24231 + _globals['_FUNDPSBTRESPONSE']._serialized_start=24234 + _globals['_FUNDPSBTRESPONSE']._serialized_end=24451 + _globals['_FUNDPSBTRESERVATIONS']._serialized_start=24453 + _globals['_FUNDPSBTRESERVATIONS']._serialized_end=24570 + _globals['_SENDPSBTREQUEST']._serialized_start=24572 + _globals['_SENDPSBTREQUEST']._serialized_end=24637 + _globals['_SENDPSBTRESPONSE']._serialized_start=24639 + _globals['_SENDPSBTRESPONSE']._serialized_end=24683 + _globals['_SIGNPSBTREQUEST']._serialized_start=24685 + _globals['_SIGNPSBTREQUEST']._serialized_end=24734 + _globals['_SIGNPSBTRESPONSE']._serialized_start=24736 + _globals['_SIGNPSBTRESPONSE']._serialized_end=24775 + _globals['_UTXOPSBTREQUEST']._serialized_start=24778 + _globals['_UTXOPSBTREQUEST']._serialized_end=25194 + _globals['_UTXOPSBTRESPONSE']._serialized_start=25197 + _globals['_UTXOPSBTRESPONSE']._serialized_end=25414 + _globals['_UTXOPSBTRESERVATIONS']._serialized_start=25416 + _globals['_UTXOPSBTRESERVATIONS']._serialized_end=25533 + _globals['_TXDISCARDREQUEST']._serialized_start=25535 + _globals['_TXDISCARDREQUEST']._serialized_end=25567 + _globals['_TXDISCARDRESPONSE']._serialized_start=25569 + _globals['_TXDISCARDRESPONSE']._serialized_end=25623 + _globals['_TXPREPAREREQUEST']._serialized_start=25626 + _globals['_TXPREPAREREQUEST']._serialized_end=25790 + _globals['_TXPREPARERESPONSE']._serialized_start=25792 + _globals['_TXPREPARERESPONSE']._serialized_end=25860 + _globals['_TXSENDREQUEST']._serialized_start=25862 + _globals['_TXSENDREQUEST']._serialized_end=25891 + _globals['_TXSENDRESPONSE']._serialized_start=25893 + _globals['_TXSENDRESPONSE']._serialized_end=25949 + _globals['_LISTPEERCHANNELSREQUEST']._serialized_start=25951 + _globals['_LISTPEERCHANNELSREQUEST']._serialized_end=26000 + _globals['_LISTPEERCHANNELSRESPONSE']._serialized_start=26002 + _globals['_LISTPEERCHANNELSRESPONSE']._serialized_end=26077 + _globals['_LISTPEERCHANNELSCHANNELS']._serialized_start=26080 + _globals['_LISTPEERCHANNELSCHANNELS']._serialized_end=29592 + _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_start=28221 + _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_end=28605 + _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_start=29595 + _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_end=29777 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_start=29780 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_end=30139 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_start=30142 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_end=30502 + _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_start=30504 + _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_end=30597 + _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_start=30600 + _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_end=30984 + _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_start=30987 + _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_end=31325 + _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_start=31327 + _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_end=31420 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_start=31423 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_end=31905 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_start=31744 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_end=31801 + _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_start=31907 + _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_end=31958 + _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_start=31960 + _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_end=32051 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_start=32054 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_end=33320 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_start=32991 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_end=33109 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_start=33322 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_end=33423 + _globals['_DECODEPAYREQUEST']._serialized_start=33425 + _globals['_DECODEPAYREQUEST']._serialized_end=33501 + _globals['_DECODEPAYRESPONSE']._serialized_start=33504 + _globals['_DECODEPAYRESPONSE']._serialized_end=34029 + _globals['_DECODEPAYFALLBACKS']._serialized_start=34032 + _globals['_DECODEPAYFALLBACKS']._serialized_end=34240 + _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_start=34153 + _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_end=34231 + _globals['_DECODEPAYEXTRA']._serialized_start=34242 + _globals['_DECODEPAYEXTRA']._serialized_end=34285 + _globals['_DECODEREQUEST']._serialized_start=34287 + _globals['_DECODEREQUEST']._serialized_end=34318 + _globals['_DECODERESPONSE']._serialized_start=34321 + _globals['_DECODERESPONSE']._serialized_end=38649 + _globals['_DECODERESPONSE_DECODETYPE']._serialized_start=36914 + _globals['_DECODERESPONSE_DECODETYPE']._serialized_end=37045 + _globals['_DECODEOFFER_PATHS']._serialized_start=38651 + _globals['_DECODEOFFER_PATHS']._serialized_end=38711 + _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_start=38714 + _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_end=38852 + _globals['_DECODEINVOICE_PATHSPATH']._serialized_start=38854 + _globals['_DECODEINVOICE_PATHSPATH']._serialized_end=38938 + _globals['_DECODEINVOICE_FALLBACKS']._serialized_start=38940 + _globals['_DECODEINVOICE_FALLBACKS']._serialized_end=39029 + _globals['_DECODEFALLBACKS']._serialized_start=39031 + _globals['_DECODEFALLBACKS']._serialized_end=39150 + _globals['_DECODEEXTRA']._serialized_start=39152 + _globals['_DECODEEXTRA']._serialized_end=39192 + _globals['_DECODERESTRICTIONS']._serialized_start=39194 + _globals['_DECODERESTRICTIONS']._serialized_end=39253 + _globals['_DISCONNECTREQUEST']._serialized_start=39255 + _globals['_DISCONNECTREQUEST']._serialized_end=39316 + _globals['_DISCONNECTRESPONSE']._serialized_start=39318 + _globals['_DISCONNECTRESPONSE']._serialized_end=39338 + _globals['_FEERATESREQUEST']._serialized_start=39340 + _globals['_FEERATESREQUEST']._serialized_end=39447 + _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_start=39410 + _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_end=39447 + _globals['_FEERATESRESPONSE']._serialized_start=39450 + _globals['_FEERATESRESPONSE']._serialized_end=39734 + _globals['_FEERATESPERKB']._serialized_start=39737 + _globals['_FEERATESPERKB']._serialized_end=40204 + _globals['_FEERATESPERKBESTIMATES']._serialized_start=40207 + _globals['_FEERATESPERKBESTIMATES']._serialized_end=40357 + _globals['_FEERATESPERKW']._serialized_start=40360 + _globals['_FEERATESPERKW']._serialized_end=40827 + _globals['_FEERATESPERKWESTIMATES']._serialized_start=40830 + _globals['_FEERATESPERKWESTIMATES']._serialized_end=40980 + _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_start=40983 + _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_end=41266 + _globals['_FETCHINVOICEREQUEST']._serialized_start=41269 + _globals['_FETCHINVOICEREQUEST']._serialized_end=41630 + _globals['_FETCHINVOICERESPONSE']._serialized_start=41633 + _globals['_FETCHINVOICERESPONSE']._serialized_end=41787 + _globals['_FETCHINVOICECHANGES']._serialized_start=41790 + _globals['_FETCHINVOICECHANGES']._serialized_end=42048 + _globals['_FETCHINVOICENEXT_PERIOD']._serialized_start=42050 + _globals['_FETCHINVOICENEXT_PERIOD']._serialized_end=42176 + _globals['_FUNDCHANNELREQUEST']._serialized_start=42179 + _globals['_FUNDCHANNELREQUEST']._serialized_end=42686 + _globals['_FUNDCHANNELRESPONSE']._serialized_start=42689 + _globals['_FUNDCHANNELRESPONSE']._serialized_end=42918 + _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_start=42920 + _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_end=42996 + _globals['_GETROUTEREQUEST']._serialized_start=42999 + _globals['_GETROUTEREQUEST']._serialized_end=43235 + _globals['_GETROUTERESPONSE']._serialized_start=43237 + _globals['_GETROUTERESPONSE']._serialized_end=43290 + _globals['_GETROUTEROUTE']._serialized_start=43293 + _globals['_GETROUTEROUTE']._serialized_end=43490 + _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_start=43461 + _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_end=43490 + _globals['_LISTFORWARDSREQUEST']._serialized_start=43493 + _globals['_LISTFORWARDSREQUEST']._serialized_end=43932 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_start=43737 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_end=43813 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_start=43815 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_end=43860 + _globals['_LISTFORWARDSRESPONSE']._serialized_start=43934 + _globals['_LISTFORWARDSRESPONSE']._serialized_end=44001 + _globals['_LISTFORWARDSFORWARDS']._serialized_start=44004 + _globals['_LISTFORWARDSFORWARDS']._serialized_end=44702 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_start=44449 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_end=44533 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_start=44535 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_end=44583 + _globals['_LISTOFFERSREQUEST']._serialized_start=44704 + _globals['_LISTOFFERSREQUEST']._serialized_end=44801 + _globals['_LISTOFFERSRESPONSE']._serialized_start=44803 + _globals['_LISTOFFERSRESPONSE']._serialized_end=44862 + _globals['_LISTOFFERSOFFERS']._serialized_start=44865 + _globals['_LISTOFFERSOFFERS']._serialized_end=44997 + _globals['_LISTPAYSREQUEST']._serialized_start=45000 + _globals['_LISTPAYSREQUEST']._serialized_end=45219 + _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_start=45125 + _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_end=45180 + _globals['_LISTPAYSRESPONSE']._serialized_start=45221 + _globals['_LISTPAYSRESPONSE']._serialized_end=45272 + _globals['_LISTPAYSPAYS']._serialized_start=45275 + _globals['_LISTPAYSPAYS']._serialized_end=45914 + _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_start=45689 + _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_end=45748 + _globals['_LISTHTLCSREQUEST']._serialized_start=45916 + _globals['_LISTHTLCSREQUEST']._serialized_end=45958 + _globals['_LISTHTLCSRESPONSE']._serialized_start=45960 + _globals['_LISTHTLCSRESPONSE']._serialized_end=46015 + _globals['_LISTHTLCSHTLCS']._serialized_start=46018 + _globals['_LISTHTLCSHTLCS']._serialized_end=46283 + _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_start=46241 + _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_end=46283 + _globals['_OFFERREQUEST']._serialized_start=46286 + _globals['_OFFERREQUEST']._serialized_end=46735 + _globals['_OFFERRESPONSE']._serialized_start=46738 + _globals['_OFFERRESPONSE']._serialized_end=46884 + _globals['_PINGREQUEST']._serialized_start=46886 + _globals['_PINGREQUEST']._serialized_end=46975 + _globals['_PINGRESPONSE']._serialized_start=46977 + _globals['_PINGRESPONSE']._serialized_end=47007 + _globals['_SENDCUSTOMMSGREQUEST']._serialized_start=47009 + _globals['_SENDCUSTOMMSGREQUEST']._serialized_end=47061 + _globals['_SENDCUSTOMMSGRESPONSE']._serialized_start=47063 + _globals['_SENDCUSTOMMSGRESPONSE']._serialized_end=47102 + _globals['_SETCHANNELREQUEST']._serialized_start=47105 + _globals['_SETCHANNELREQUEST']._serialized_end=47403 + _globals['_SETCHANNELRESPONSE']._serialized_start=47405 + _globals['_SETCHANNELRESPONSE']._serialized_end=47468 + _globals['_SETCHANNELCHANNELS']._serialized_start=47471 + _globals['_SETCHANNELCHANNELS']._serialized_end=47929 + _globals['_SIGNINVOICEREQUEST']._serialized_start=47931 + _globals['_SIGNINVOICEREQUEST']._serialized_end=47970 + _globals['_SIGNINVOICERESPONSE']._serialized_start=47972 + _globals['_SIGNINVOICERESPONSE']._serialized_end=48009 + _globals['_SIGNMESSAGEREQUEST']._serialized_start=48011 + _globals['_SIGNMESSAGEREQUEST']._serialized_end=48048 + _globals['_SIGNMESSAGERESPONSE']._serialized_start=48050 + _globals['_SIGNMESSAGERESPONSE']._serialized_end=48120 + _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_start=48122 + _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_end=48201 + _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_start=48203 + _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_end=48249 + _globals['_WAITREQUEST']._serialized_start=48252 + _globals['_WAITREQUEST']._serialized_end=48501 + _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_start=48388 + _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_end=48445 + _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_start=48447 + _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_end=48501 + _globals['_WAITRESPONSE']._serialized_start=48504 + _globals['_WAITRESPONSE']._serialized_end=48731 + _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_start=48388 + _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_end=48445 + _globals['_STOPREQUEST']._serialized_start=48733 + _globals['_STOPREQUEST']._serialized_end=48746 + _globals['_STOPRESPONSE']._serialized_start=48748 + _globals['_STOPRESPONSE']._serialized_end=48861 + _globals['_STOPRESPONSE_STOPRESULT']._serialized_start=48815 + _globals['_STOPRESPONSE_STOPRESULT']._serialized_end=48850 + _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_start=48864 + _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_end=49031 + _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_start=49033 + _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_end=49060 + _globals['_PREAPPROVEINVOICEREQUEST']._serialized_start=49062 + _globals['_PREAPPROVEINVOICEREQUEST']._serialized_end=49120 + _globals['_PREAPPROVEINVOICERESPONSE']._serialized_start=49122 + _globals['_PREAPPROVEINVOICERESPONSE']._serialized_end=49149 + _globals['_STATICBACKUPREQUEST']._serialized_start=49151 + _globals['_STATICBACKUPREQUEST']._serialized_end=49172 + _globals['_STATICBACKUPRESPONSE']._serialized_start=49174 + _globals['_STATICBACKUPRESPONSE']._serialized_end=49209 + _globals['_BKPRLISTINCOMEREQUEST']._serialized_start=49212 + _globals['_BKPRLISTINCOMEREQUEST']._serialized_end=49363 + _globals['_BKPRLISTINCOMERESPONSE']._serialized_start=49365 + _globals['_BKPRLISTINCOMERESPONSE']._serialized_end=49446 + _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_start=49449 + _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_end=49758 + _globals['_NODE']._serialized_start=49761 + _globals['_NODE']._serialized_end=53955 # @@protoc_insertion_point(module_scope) diff --git a/contrib/pyln-testing/pyln/testing/fixtures.py b/contrib/pyln-testing/pyln/testing/fixtures.py index aa770388b..5a71c33f8 100644 --- a/contrib/pyln-testing/pyln/testing/fixtures.py +++ b/contrib/pyln-testing/pyln/testing/fixtures.py @@ -432,15 +432,16 @@ def _extra_validator(is_request: bool): type_checker=type_checker) -def _load_schema(filename, is_request): +def _load_schema(filename): """Load the schema from @filename and create a validator for it""" with open(filename, 'r') as f: - return _extra_validator(is_request)(json.load(f)) + data = json.load(f) + return [_extra_validator(True)(data.get('request', {})), _extra_validator(False)(data.get('response', {}))] @pytest.fixture(autouse=True) def jsonschemas(): - """Load schema files if they exist: returns request/response schemas by pairs""" + """Load schema file if it exist: returns request/response schemas by pairs""" try: schemafiles = os.listdir('doc/schemas') except FileNotFoundError: @@ -448,20 +449,10 @@ def jsonschemas(): schemas = {} for fname in schemafiles: - if fname.endswith('.schema.json'): - base = fname.rpartition('.schema')[0] - is_request = False - index = 1 - elif fname.endswith('.request.json'): - base = fname.rpartition('.request')[0] - is_request = True - index = 0 - else: - continue - if base not in schemas: - schemas[base] = [None, None] - schemas[base][index] = _load_schema(os.path.join('doc/schemas', fname), - is_request) + if fname.startswith('lightning-') and fname.endswith('.json'): + base = fname.replace('lightning-', '').replace('.json', '') + # Request is 0 and Response is 1 + schemas[base] = _load_schema(os.path.join('doc/schemas', fname)) return schemas diff --git a/contrib/pyln-testing/pyln/testing/grpc2py.py b/contrib/pyln-testing/pyln/testing/grpc2py.py index 5ba5bc5d3..51921f5d1 100644 --- a/contrib/pyln-testing/pyln/testing/grpc2py.py +++ b/contrib/pyln-testing/pyln/testing/grpc2py.py @@ -512,6 +512,7 @@ def listsendpays_payments2py(m): "bolt11": m.bolt11, # PrimitiveField in generate_composite "description": m.description, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite + "completed_at": m.completed_at, # PrimitiveField in generate_composite "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite "erroronion": hexlify(m.erroronion), # PrimitiveField in generate_composite }) @@ -872,6 +873,7 @@ def listpeerchannels_channels2py(m): return remove_default({ "peer_id": hexlify(m.peer_id), # PrimitiveField in generate_composite "peer_connected": m.peer_connected, # PrimitiveField in generate_composite + "reestablished": m.reestablished, # PrimitiveField in generate_composite "state": str(m.state), # EnumField in generate_composite "scratch_txid": hexlify(m.scratch_txid), # PrimitiveField in generate_composite "ignore_fee_limits": m.ignore_fee_limits, # PrimitiveField in generate_composite diff --git a/doc/Makefile b/doc/Makefile index 647efff13..29a89d8ae 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -4,11 +4,8 @@ doc-wrongdir: $(MAKE) -C .. doc-all -MANPAGES := doc/lightning-cli.1 \ - doc/lightningd.8 \ - doc/lightningd-config.5 \ - doc/lightningd-rpc.7 \ - doc/lightning-addgossip.7 \ +GENERATE_MARKDOWN := doc/lightning-addgossip.7 \ + doc/lightning-addpsbtoutput.7 \ doc/lightning-autoclean-once.7 \ doc/lightning-autoclean-status.7 \ doc/lightning-batching.7 \ @@ -23,20 +20,20 @@ MANPAGES := doc/lightning-cli.1 \ doc/lightning-checkmessage.7 \ doc/lightning-checkrune.7 \ doc/lightning-close.7 \ - doc/lightning-connect.7 \ - doc/lightning-commando.7 \ doc/lightning-commando-blacklist.7 \ + doc/lightning-commando.7 \ doc/lightning-commando-listrunes.7 \ doc/lightning-commando-rune.7 \ - doc/lightning-createonion.7 \ + doc/lightning-connect.7 \ doc/lightning-createinvoice.7 \ + doc/lightning-createonion.7 \ doc/lightning-createrune.7 \ doc/lightning-datastore.7 \ doc/lightning-datastoreusage.7 \ - doc/lightning-decodepay.7 \ doc/lightning-decode.7 \ + doc/lightning-decodepay.7 \ doc/lightning-deldatastore.7 \ - doc/lightning-delexpiredinvoice.7 \ + doc/lightning-delexpiredinvoice.7 \ doc/lightning-delforward.7 \ doc/lightning-delinvoice.7 \ doc/lightning-delpay.7 \ @@ -47,32 +44,35 @@ MANPAGES := doc/lightning-cli.1 \ doc/lightning-emergencyrecover.7 \ doc/lightning-feerates.7 \ doc/lightning-fetchinvoice.7 \ + doc/lightning-fundchannel_cancel.7 \ + doc/lightning-fundchannel_complete.7 \ doc/lightning-fundchannel.7 \ doc/lightning-fundchannel_start.7 \ - doc/lightning-fundchannel_complete.7 \ - doc/lightning-fundchannel_cancel.7 \ doc/lightning-funderupdate.7 \ - doc/lightning-addpsbtoutput.7 \ doc/lightning-fundpsbt.7 \ + doc/lightning-getinfo.7 \ + doc/lightning-getlog.7 \ doc/lightning-getroute.7 \ - doc/lightning-hsmtool.8 \ + doc/lightning-help.7 \ doc/lightning-invoice.7 \ doc/lightning-invoicerequest.7 \ doc/lightning-keysend.7 \ doc/lightning-listchannels.7 \ doc/lightning-listclosedchannels.7 \ + doc/lightning-listconfigs.7 \ doc/lightning-listdatastore.7 \ doc/lightning-listforwards.7 \ doc/lightning-listfunds.7 \ doc/lightning-listhtlcs.7 \ - doc/lightning-listinvoices.7 \ doc/lightning-listinvoicerequests.7 \ + doc/lightning-listinvoices.7 \ + doc/lightning-listnodes.7 \ doc/lightning-listoffers.7 \ doc/lightning-listpays.7 \ - doc/lightning-listpeers.7 \ doc/lightning-listpeerchannels.7 \ - doc/lightning-showrunes.7 \ + doc/lightning-listpeers.7 \ doc/lightning-listsendpays.7 \ + doc/lightning-listtransactions.7 \ doc/lightning-makesecret.7 \ doc/lightning-multifundchannel.7 \ doc/lightning-multiwithdraw.7 \ @@ -84,61 +84,79 @@ MANPAGES := doc/lightning-cli.1 \ doc/lightning-openchannel_init.7 \ doc/lightning-openchannel_signed.7 \ doc/lightning-openchannel_update.7 \ - doc/lightning-pay.7 \ doc/lightning-parsefeerate.7 \ + doc/lightning-pay.7 \ + doc/lightning-ping.7 \ doc/lightning-plugin.7 \ doc/lightning-preapproveinvoice.7 \ doc/lightning-preapprovekeysend.7 \ - doc/lightning-recover.7 \ doc/lightning-recoverchannel.7 \ + doc/lightning-recover.7 \ doc/lightning-renepay.7 \ doc/lightning-renepaystatus.7 \ doc/lightning-reserveinputs.7 \ + doc/lightning-sendcustommsg.7 \ doc/lightning-sendinvoice.7 \ doc/lightning-sendonion.7 \ doc/lightning-sendonionmessage.7 \ doc/lightning-sendpay.7 \ + doc/lightning-sendpsbt.7 \ doc/lightning-setchannel.7 \ doc/lightning-setconfig.7 \ doc/lightning-setpsbtversion.7 \ - doc/lightning-sendcustommsg.7 \ + doc/lightning-showrunes.7 \ doc/lightning-signinvoice.7 \ doc/lightning-signmessage.7 \ + doc/lightning-signpsbt.7 \ doc/lightning-splice_init.7 \ - doc/lightning-splice_update.7 \ doc/lightning-splice_signed.7 \ - doc/lightning-staticbackup.7 \ - doc/lightning-txprepare.7 \ + doc/lightning-splice_update.7 \ + doc/lightning-staticbackup.7 \ + doc/lightning-stop.7 \ doc/lightning-txdiscard.7 \ + doc/lightning-txprepare.7 \ doc/lightning-txsend.7 \ doc/lightning-unreserveinputs.7 \ + doc/lightning-upgradewallet.7 \ doc/lightning-utxopsbt.7 \ - doc/lightning-wait.7 \ - doc/lightning-waitinvoice.7 \ doc/lightning-waitanyinvoice.7 \ doc/lightning-waitblockheight.7 \ + doc/lightning-waitinvoice.7 \ + doc/lightning-wait.7 \ doc/lightning-waitsendpay.7 \ - doc/lightning-withdraw.7 \ - doc/lightning-ping.7 \ - doc/lightning-stop.7 \ - doc/lightning-signpsbt.7 \ - doc/lightning-sendpsbt.7 \ - doc/lightning-getinfo.7 \ - doc/lightning-listtransactions.7 \ - doc/lightning-listnodes.7 \ - doc/lightning-listconfigs.7 \ - doc/lightning-help.7 \ - doc/lightning-getlog.7 \ - doc/reckless.7 + doc/lightning-withdraw.7 ifeq ($(HAVE_SQLITE3),1) -MANPAGES += doc/lightning-listsqlschemas.7 \ - doc/lightning-sql.7 +GENERATE_MARKDOWN += doc/lightning-listsqlschemas.7 \ + doc/lightning-sql.7 endif +MANPAGES := $(GENERATE_MARKDOWN) \ + doc/lightning-cli.1 \ + doc/lightningd.8 \ + doc/lightningd-config.5 \ + doc/lightningd-rpc.7 \ + doc/lightning-hsmtool.8 \ + doc/reckless.7 + +MARKDOWN_WITH_SCHEMA := $(GENERATE_MARKDOWN:=.md) + +doc/schemas/lightning-sql.json: plugins/sql +# Delete the old tables schema and generate the new ones. + @if [ "$$(jq '[.tables[] | startswith("The following tables are currently supported:")]' doc/schemas/lightning-sql.json | jq 'any')" = "true" ]; then \ + jq 'del(.tables[] | select(startswith("The following tables are currently supported:")))' "$@" > "$@.tmp" && mv "$@.tmp" "$@"; \ + fi + @plugins/sql --print-docs | jq --arg sqldata "$$(awk '{printf "%s\n", $$0}')" '.tables += [$$sqldata]' "$@" > "$@.tmp" && mv "$@.tmp" "$@"; + doc-all: $(MANPAGES) doc/index.rst -SCHEMAS := $(wildcard doc/schemas/*.json) +SCHEMAS := $(wildcard doc/schemas/lightning-*.json) + +# Don't try to build lightning-sql.json tables with plugins/sql if we don't have sqlite3 +ifeq ($(HAVE_SQLITE3),0) +SCHEMAS := $(filter-out doc/schemas/lightning-sql.json, $(SCHEMAS)) +endif + check-fmt-schemas: $(SCHEMAS:%=check-fmt-schema/%) fmt-schemas: $(SCHEMAS:%=fmt-schema/%) @@ -150,15 +168,12 @@ fmt-schema/%: % check-doc: check-config-docs check-manpages check-fmt-schemas -# Some manpages use a schema, so need that added. -MARKDOWN_WITH_SCHEMA := $(shell grep -l GENERATE-FROM-SCHEMA $(MANPAGES:=.md)) - # These are hard to use in $(call) functions. LBRACKET=( RBRACKET=) -$(MARKDOWN_WITH_SCHEMA): doc/lightning-%.7.md: doc/schemas/%.schema.json tools/fromschema.py - @if $(call SHA256STAMP_CHANGED); then $(call VERBOSE, "fromschema $@", tools/fromschema.py --markdownfile=$@ doc/schemas/$*.schema.json > $@.tmp && grep -v SHA256STAMP: $@.tmp > $@ && rm -f $@.tmp && $(call SHA256STAMP,[comment]: # $(LBRACKET),$(RBRACKET))); else touch $@; fi +$(MARKDOWN_WITH_SCHEMA): doc/lightning-%.7.md: doc/schemas/lightning-%.json tools/fromschema.py + @tools/fromschema.py --markdownfile=$@ $< > $@.tmp && mv $@.tmp $@ # If we need to build lowdown, make tools/md2man.sh depend on it. # That way it's not used in SHA256STAMP (which only uses direct @@ -172,19 +187,11 @@ LOWDOWN := lowdown endif $(MANPAGES): doc/%: doc/%.md tools/md2man.sh version_gen.h - @if $(call SHA256STAMP_CHANGED); then $(call VERBOSE, "md2man $<", VERSION=$(VERSION) tools/md2man.sh $(LOWDOWN) $< > $@ && $(call SHA256STAMP,\\\",)); else touch $@; fi + @VERSION=$(VERSION) tools/md2man.sh $(LOWDOWN) $< > $@ $(MANPAGES): $(FORCE) $(MARKDOWN_WITH_SCHEMA): $(FORCE) -# Use awk for preamble, then again for post, with the new docs in the middle. -# We can't put plugins/sql in deps directly, since they all get sha256! -doc/.sqlgen: plugins/sql - @plugins/sql --print-docs > $@ - -doc/lightning-sql.7.md: doc/.sqlgen $(FORCE) - @if $(call SHA256STAMP_CHANGED); then $(call VERBOSE, "sql-print-docs $@", awk "/GENERATE-DOC-START/ { print \$$0; exit } { print \$$0 }" < $@ > $@.tmp && cat doc/.sqlgen >> $@.tmp && (awk "/GENERATE-DOC-END/ { PRINT=1 } { if (PRINT) { print \$$0 } }" | grep -v SHA256STAMP) < $@ >> $@.tmp && mv $@.tmp $@ && $(call SHA256STAMP,[comment]: # $(LBRACKET),$(RBRACKET))); else touch $@; fi - doc/protocol-%.svg: test/test_protocol test/test_protocol --svg < test/commits/$*.script > $@ @@ -225,8 +232,8 @@ check-manpages: all-programs check-config-docs default-targets # Makes sure that fields mentioned in schema are in man page, and vice versa. check-config-docs: - @for c in `sed -n 's/^ "\(.*\)": {/\1/p' doc/schemas/listconfigs.schema.json | grep -v '^# version$$' | grep -v '^plugins$$' | grep -v '^important-plugins$$'`; do if ! grep -q "^ \*\*$$c\*\*" doc/lightningd-config.5.md; then echo "$$c undocumented!"; exit 1; fi; done - @for c in `grep -v '\[plugin ' doc/lightningd-config.5.md | sed -n 's/^ \*\*\([^*]*\)\*\*.*/\1/p' | grep -v '^\(help\|version\|mainnet\|testnet\|signet\|plugin\|important-plugin\|plugin-dir\|clear-plugins\)$$'`; do if ! grep -q '"'"$$c"'"' doc/schemas/listconfigs.schema.json; then echo "$$c documented but not in schema!"; exit 1; fi; done + @for c in `sed -n 's/^ "\(.*\)": {/\1/p' doc/schemas/lightning-listconfigs.json | grep -v '^# version$$' | grep -v '^plugins$$' | grep -v '^important-plugins$$'`; do if ! grep -q "^ \*\*$$c\*\*" doc/lightningd-config.5.md; then echo "$$c undocumented!"; exit 1; fi; done + @for c in `grep -v '\[plugin ' doc/lightningd-config.5.md | sed -n 's/^ \*\*\([^*]*\)\*\*.*/\1/p' | grep -v '^\(help\|version\|mainnet\|testnet\|signet\|plugin\|important-plugin\|plugin-dir\|clear-plugins\)$$'`; do if ! grep -q '"'"$$c"'"' doc/schemas/lightning-listconfigs.json; then echo "$$c documented but not in schema!"; exit 1; fi; done doc-maintainer-clean: $(RM) $(MANPAGES) diff --git a/doc/schemas/lightning-sql.json b/doc/schemas/lightning-sql.json index 455310941..63088cbbc 100644 --- a/doc/schemas/lightning-sql.json +++ b/doc/schemas/lightning-sql.json @@ -102,7 +102,7 @@ "tables": [ "Note that the first column of every table is a unique integer called `rowid`: this is used for related tables to refer to specific rows in their parent. sqlite3 usually has this as an implicit column, but we make it explicit as the implicit version is not allowed to be used as a foreign key.", "", - "The following tables are currently supported:\n- `bkpr_accountevents` (see lightning-bkpr-listaccountevents(7))\n - `account` (type `string`, sqltype `TEXT`)\n - `type` (type `string`, sqltype `TEXT`)\n - `tag` (type `string`, sqltype `TEXT`)\n - `credit_msat` (type `msat`, sqltype `INTEGER`)\n - `debit_msat` (type `msat`, sqltype `INTEGER`)\n - `currency` (type `string`, sqltype `TEXT`)\n - `timestamp` (type `u32`, sqltype `INTEGER`)\n - `outpoint` (type `string`, sqltype `TEXT`)\n - `blockheight` (type `u32`, sqltype `INTEGER`)\n - `origin` (type `string`, sqltype `TEXT`)\n - `payment_id` (type `hex`, sqltype `BLOB`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `description` (type `string`, sqltype `TEXT`)\n - `fees_msat` (type `msat`, sqltype `INTEGER`)\n - `is_rebalance` (type `boolean`, sqltype `INTEGER`)\n - `part_id` (type `u32`, sqltype `INTEGER`)\n\n- `bkpr_income` (see lightning-bkpr-listincome(7))\n - `account` (type `string`, sqltype `TEXT`)\n - `tag` (type `string`, sqltype `TEXT`)\n - `credit_msat` (type `msat`, sqltype `INTEGER`)\n - `debit_msat` (type `msat`, sqltype `INTEGER`)\n - `currency` (type `string`, sqltype `TEXT`)\n - `timestamp` (type `u32`, sqltype `INTEGER`)\n - `description` (type `string`, sqltype `TEXT`)\n - `outpoint` (type `string`, sqltype `TEXT`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `payment_id` (type `hex`, sqltype `BLOB`)\n\n- `channels` indexed by `short_channel_id` (see lightning-listchannels(7))\n - `source` (type `pubkey`, sqltype `BLOB`)\n - `destination` (type `pubkey`, sqltype `BLOB`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `direction` (type `u32`, sqltype `INTEGER`)\n - `public` (type `boolean`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `message_flags` (type `u8`, sqltype `INTEGER`)\n - `channel_flags` (type `u8`, sqltype `INTEGER`)\n - `active` (type `boolean`, sqltype `INTEGER`)\n - `last_update` (type `u32`, sqltype `INTEGER`)\n - `base_fee_millisatoshi` (type `u32`, sqltype `INTEGER`)\n - `fee_per_millionth` (type `u32`, sqltype `INTEGER`)\n - `delay` (type `u32`, sqltype `INTEGER`)\n - `htlc_minimum_msat` (type `msat`, sqltype `INTEGER`)\n - `htlc_maximum_msat` (type `msat`, sqltype `INTEGER`)\n - `features` (type `hex`, sqltype `BLOB`)\n\n- `closedchannels` (see lightning-listclosedchannels(7))\n - `peer_id` (type `pubkey`, sqltype `BLOB`)\n - `channel_id` (type `hash`, sqltype `BLOB`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `alias_local` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `alias_remote` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `opener` (type `string`, sqltype `TEXT`)\n - `closer` (type `string`, sqltype `TEXT`)\n - `private` (type `boolean`, sqltype `INTEGER`)\n - related table `closedchannels_channel_type_bits`, from JSON object `channel_type`\n - `row` (reference to `closedchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `bits` (type `u32`, sqltype `INTEGER`)\n - related table `closedchannels_channel_type_names`, from JSON object `channel_type`\n - `row` (reference to `closedchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `names` (type `string`, sqltype `TEXT`)\n - `total_local_commitments` (type `u64`, sqltype `INTEGER`)\n - `total_remote_commitments` (type `u64`, sqltype `INTEGER`)\n - `total_htlcs_sent` (type `u64`, sqltype `INTEGER`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `leased` (type `boolean`, sqltype `INTEGER`)\n - `funding_fee_paid_msat` (type `msat`, sqltype `INTEGER`)\n - `funding_fee_rcvd_msat` (type `msat`, sqltype `INTEGER`)\n - `funding_pushed_msat` (type `msat`, sqltype `INTEGER`)\n - `total_msat` (type `msat`, sqltype `INTEGER`)\n - `final_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `min_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `max_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `last_commitment_txid` (type `hash`, sqltype `BLOB`)\n - `last_commitment_fee_msat` (type `msat`, sqltype `INTEGER`)\n - `close_cause` (type `string`, sqltype `TEXT`)\n - `last_stable_connection` (type `u64`, sqltype `INTEGER`)\n\n- `forwards` indexed by `in_channel and in_htlc_id` (see lightning-listforwards(7))\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `in_channel` (type `short_channel_id`, sqltype `TEXT`)\n - `in_htlc_id` (type `u64`, sqltype `INTEGER`)\n - `in_msat` (type `msat`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `received_time` (type `number`, sqltype `REAL`)\n - `out_channel` (type `short_channel_id`, sqltype `TEXT`)\n - `out_htlc_id` (type `u64`, sqltype `INTEGER`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `style` (type `string`, sqltype `TEXT`)\n - `fee_msat` (type `msat`, sqltype `INTEGER`)\n - `out_msat` (type `msat`, sqltype `INTEGER`)\n - `resolved_time` (type `number`, sqltype `REAL`)\n - `failcode` (type `u32`, sqltype `INTEGER`)\n - `failreason` (type `string`, sqltype `TEXT`)\n\n- `htlcs` indexed by `short_channel_id and id` (see lightning-listhtlcs(7))\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `expiry` (type `u32`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `direction` (type `string`, sqltype `TEXT`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `state` (type `string`, sqltype `TEXT`)\n\n- `invoices` indexed by `payment_hash` (see lightning-listinvoices(7))\n - `label` (type `string`, sqltype `TEXT`)\n - `description` (type `string`, sqltype `TEXT`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `status` (type `string`, sqltype `TEXT`)\n - `expires_at` (type `u64`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `bolt11` (type `string`, sqltype `TEXT`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `local_offer_id` (type `hash`, sqltype `BLOB`)\n - `invreq_payer_note` (type `string`, sqltype `TEXT`)\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `pay_index` (type `u64`, sqltype `INTEGER`)\n - `amount_received_msat` (type `msat`, sqltype `INTEGER`)\n - `paid_at` (type `u64`, sqltype `INTEGER`)\n - `paid_outpoint_txid` (type `txid`, sqltype `BLOB`, from JSON object `paid_outpoint`)\n - `paid_outpoint_outnum` (type `u32`, sqltype `INTEGER`, from JSON object `paid_outpoint`)\n - `payment_preimage` (type `secret`, sqltype `BLOB`)\n\n- `nodes` indexed by `nodeid` (see lightning-listnodes(7))\n - `nodeid` (type `pubkey`, sqltype `BLOB`)\n - `last_timestamp` (type `u32`, sqltype `INTEGER`)\n - `alias` (type `string`, sqltype `TEXT`)\n - `color` (type `hex`, sqltype `BLOB`)\n - `features` (type `hex`, sqltype `BLOB`)\n - related table `nodes_addresses`\n - `row` (reference to `nodes.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `type` (type `string`, sqltype `TEXT`)\n - `port` (type `u16`, sqltype `INTEGER`)\n - `address` (type `string`, sqltype `TEXT`)\n - `option_will_fund_lease_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_lease_fee_basis` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_funding_weight` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_channel_fee_max_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_channel_fee_max_proportional_thousandths` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_compact_lease` (type `hex`, sqltype `BLOB`, from JSON object `option_will_fund`)\n\n- `offers` indexed by `offer_id` (see lightning-listoffers(7))\n - `offer_id` (type `hash`, sqltype `BLOB`)\n - `active` (type `boolean`, sqltype `INTEGER`)\n - `single_use` (type `boolean`, sqltype `INTEGER`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `used` (type `boolean`, sqltype `INTEGER`)\n - `label` (type `string`, sqltype `TEXT`)\n\n- `peerchannels` indexed by `peer_id` (see lightning-listpeerchannels(7))\n - `peer_id` (type `pubkey`, sqltype `BLOB`)\n - `peer_connected` (type `boolean`, sqltype `INTEGER`)\n - `reestablished` (type `boolean`, sqltype `INTEGER`)\n - `state` (type `string`, sqltype `TEXT`)\n - `scratch_txid` (type `txid`, sqltype `BLOB`)\n - related table `peerchannels_channel_type_bits`, from JSON object `channel_type`\n - `row` (reference to `peerchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `bits` (type `u32`, sqltype `INTEGER`)\n - related table `peerchannels_channel_type_names`, from JSON object `channel_type`\n - `row` (reference to `peerchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `names` (type `string`, sqltype `TEXT`)\n - `local_htlc_minimum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_htlc_maximum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_cltv_expiry_delta` (type `u32`, sqltype `INTEGER`, from JSON object `local`)\n - `local_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_fee_proportional_millionths` (type `u32`, sqltype `INTEGER`, from JSON object `local`)\n - `remote_htlc_minimum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_htlc_maximum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_cltv_expiry_delta` (type `u32`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_fee_proportional_millionths` (type `u32`, sqltype `INTEGER`, from JSON object `remote`)\n - `ignore_fee_limits` (type `boolean`, sqltype `INTEGER`)\n - `lost_state` (type `boolean`, sqltype `INTEGER`)\n - `feerate_perkw` (type `u32`, sqltype `INTEGER`, from JSON object `feerate`)\n - `feerate_perkb` (type `u32`, sqltype `INTEGER`, from JSON object `feerate`)\n - `owner` (type `string`, sqltype `TEXT`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `channel_id` (type `hash`, sqltype `BLOB`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `initial_feerate` (type `string`, sqltype `TEXT`)\n - `last_feerate` (type `string`, sqltype `TEXT`)\n - `next_feerate` (type `string`, sqltype `TEXT`)\n - `next_fee_step` (type `u32`, sqltype `INTEGER`)\n - related table `peerchannels_inflight`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `feerate` (type `string`, sqltype `TEXT`)\n - `total_funding_msat` (type `msat`, sqltype `INTEGER`)\n - `splice_amount` (type `integer`, sqltype `INTEGER`)\n - `our_funding_msat` (type `msat`, sqltype `INTEGER`)\n - `scratch_txid` (type `txid`, sqltype `BLOB`)\n - `close_to` (type `hex`, sqltype `BLOB`)\n - `private` (type `boolean`, sqltype `INTEGER`)\n - `opener` (type `string`, sqltype `TEXT`)\n - `closer` (type `string`, sqltype `TEXT`)\n - related table `peerchannels_features`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `features` (type `string`, sqltype `TEXT`)\n - `funding_pushed_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_local_funds_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_remote_funds_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_fee_paid_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_fee_rcvd_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `min_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `max_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `total_msat` (type `msat`, sqltype `INTEGER`)\n - `fee_base_msat` (type `msat`, sqltype `INTEGER`)\n - `fee_proportional_millionths` (type `u32`, sqltype `INTEGER`)\n - `dust_limit_msat` (type `msat`, sqltype `INTEGER`)\n - `max_total_htlc_in_msat` (type `msat`, sqltype `INTEGER`)\n - `their_reserve_msat` (type `msat`, sqltype `INTEGER`)\n - `our_reserve_msat` (type `msat`, sqltype `INTEGER`)\n - `spendable_msat` (type `msat`, sqltype `INTEGER`)\n - `receivable_msat` (type `msat`, sqltype `INTEGER`)\n - `minimum_htlc_in_msat` (type `msat`, sqltype `INTEGER`)\n - `minimum_htlc_out_msat` (type `msat`, sqltype `INTEGER`)\n - `maximum_htlc_out_msat` (type `msat`, sqltype `INTEGER`)\n - `their_to_self_delay` (type `u32`, sqltype `INTEGER`)\n - `our_to_self_delay` (type `u32`, sqltype `INTEGER`)\n - `max_accepted_htlcs` (type `u32`, sqltype `INTEGER`)\n - `alias_local` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `alias_remote` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - related table `peerchannels_state_changes`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `timestamp` (type `string`, sqltype `TEXT`)\n - `old_state` (type `string`, sqltype `TEXT`)\n - `new_state` (type `string`, sqltype `TEXT`)\n - `cause` (type `string`, sqltype `TEXT`)\n - `message` (type `string`, sqltype `TEXT`)\n - related table `peerchannels_status`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `in_payments_offered` (type `u64`, sqltype `INTEGER`)\n - `in_offered_msat` (type `msat`, sqltype `INTEGER`)\n - `in_payments_fulfilled` (type `u64`, sqltype `INTEGER`)\n - `in_fulfilled_msat` (type `msat`, sqltype `INTEGER`)\n - `out_payments_offered` (type `u64`, sqltype `INTEGER`)\n - `out_offered_msat` (type `msat`, sqltype `INTEGER`)\n - `out_payments_fulfilled` (type `u64`, sqltype `INTEGER`)\n - `out_fulfilled_msat` (type `msat`, sqltype `INTEGER`)\n - `last_stable_connection` (type `u64`, sqltype `INTEGER`)\n - related table `peerchannels_htlcs`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `direction` (type `string`, sqltype `TEXT`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `expiry` (type `u32`, sqltype `INTEGER`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `local_trimmed` (type `boolean`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `state` (type `string`, sqltype `TEXT`)\n - `close_to_addr` (type `string`, sqltype `TEXT`)\n - `last_tx_fee_msat` (type `msat`, sqltype `INTEGER`)\n - `direction` (type `u32`, sqltype `INTEGER`)\n\n- `peers` indexed by `id` (see lightning-listpeers(7))\n - `id` (type `pubkey`, sqltype `BLOB`)\n - `connected` (type `boolean`, sqltype `INTEGER`)\n - `num_channels` (type `u32`, sqltype `INTEGER`)\n - related table `peers_netaddr`\n - `row` (reference to `peers.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `netaddr` (type `string`, sqltype `TEXT`)\n - `remote_addr` (type `string`, sqltype `TEXT`)\n - `features` (type `hex`, sqltype `BLOB`)\n\n- `sendpays` indexed by `payment_hash` (see lightning-listsendpays(7))\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `groupid` (type `u64`, sqltype `INTEGER`)\n - `partid` (type `u64`, sqltype `INTEGER`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `destination` (type `pubkey`, sqltype `BLOB`)\n - `created_at` (type `u64`, sqltype `INTEGER`)\n - `amount_sent_msat` (type `msat`, sqltype `INTEGER`)\n - `label` (type `string`, sqltype `TEXT`)\n - `bolt11` (type `string`, sqltype `TEXT`)\n - `description` (type `string`, sqltype `TEXT`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `payment_preimage` (type `secret`, sqltype `BLOB`)\n - `erroronion` (type `hex`, sqltype `BLOB`)\n\n- `transactions` indexed by `hash` (see lightning-listtransactions(7))\n - `hash` (type `txid`, sqltype `BLOB`)\n - `rawtx` (type `hex`, sqltype `BLOB`)\n - `blockheight` (type `u32`, sqltype `INTEGER`)\n - `txindex` (type `u32`, sqltype `INTEGER`)\n - `locktime` (type `u32`, sqltype `INTEGER`)\n - `version` (type `u32`, sqltype `INTEGER`)\n - related table `transactions_inputs`\n - `row` (reference to `transactions.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `idx` (type `u32`, sqltype `INTEGER`, from JSON field `index`)\n - `sequence` (type `u32`, sqltype `INTEGER`)\n - related table `transactions_outputs`\n - `row` (reference to `transactions.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `idx` (type `u32`, sqltype `INTEGER`, from JSON field `index`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `scriptPubKey` (type `hex`, sqltype `BLOB`)" + "The following tables are currently supported:\n- `bkpr_accountevents` (see lightning-bkpr-listaccountevents(7))\n - `account` (type `string`, sqltype `TEXT`)\n - `type` (type `string`, sqltype `TEXT`)\n - `tag` (type `string`, sqltype `TEXT`)\n - `credit_msat` (type `msat`, sqltype `INTEGER`)\n - `debit_msat` (type `msat`, sqltype `INTEGER`)\n - `currency` (type `string`, sqltype `TEXT`)\n - `timestamp` (type `u32`, sqltype `INTEGER`)\n - `outpoint` (type `string`, sqltype `TEXT`)\n - `blockheight` (type `u32`, sqltype `INTEGER`)\n - `origin` (type `string`, sqltype `TEXT`)\n - `payment_id` (type `hex`, sqltype `BLOB`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `description` (type `string`, sqltype `TEXT`)\n - `fees_msat` (type `msat`, sqltype `INTEGER`)\n - `is_rebalance` (type `boolean`, sqltype `INTEGER`)\n - `part_id` (type `u32`, sqltype `INTEGER`)\n\n- `bkpr_income` (see lightning-bkpr-listincome(7))\n - `account` (type `string`, sqltype `TEXT`)\n - `tag` (type `string`, sqltype `TEXT`)\n - `credit_msat` (type `msat`, sqltype `INTEGER`)\n - `debit_msat` (type `msat`, sqltype `INTEGER`)\n - `currency` (type `string`, sqltype `TEXT`)\n - `timestamp` (type `u32`, sqltype `INTEGER`)\n - `description` (type `string`, sqltype `TEXT`)\n - `outpoint` (type `string`, sqltype `TEXT`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `payment_id` (type `hex`, sqltype `BLOB`)\n\n- `channels` indexed by `short_channel_id` (see lightning-listchannels(7))\n - `source` (type `pubkey`, sqltype `BLOB`)\n - `destination` (type `pubkey`, sqltype `BLOB`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `direction` (type `u32`, sqltype `INTEGER`)\n - `public` (type `boolean`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `message_flags` (type `u8`, sqltype `INTEGER`)\n - `channel_flags` (type `u8`, sqltype `INTEGER`)\n - `active` (type `boolean`, sqltype `INTEGER`)\n - `last_update` (type `u32`, sqltype `INTEGER`)\n - `base_fee_millisatoshi` (type `u32`, sqltype `INTEGER`)\n - `fee_per_millionth` (type `u32`, sqltype `INTEGER`)\n - `delay` (type `u32`, sqltype `INTEGER`)\n - `htlc_minimum_msat` (type `msat`, sqltype `INTEGER`)\n - `htlc_maximum_msat` (type `msat`, sqltype `INTEGER`)\n - `features` (type `hex`, sqltype `BLOB`)\n\n- `closedchannels` (see lightning-listclosedchannels(7))\n - `peer_id` (type `pubkey`, sqltype `BLOB`)\n - `channel_id` (type `hash`, sqltype `BLOB`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `alias_local` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `alias_remote` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `opener` (type `string`, sqltype `TEXT`)\n - `closer` (type `string`, sqltype `TEXT`)\n - `private` (type `boolean`, sqltype `INTEGER`)\n - related table `closedchannels_channel_type_bits`, from JSON object `channel_type`\n - `row` (reference to `closedchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `bits` (type `u32`, sqltype `INTEGER`)\n - related table `closedchannels_channel_type_names`, from JSON object `channel_type`\n - `row` (reference to `closedchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `names` (type `string`, sqltype `TEXT`)\n - `total_local_commitments` (type `u64`, sqltype `INTEGER`)\n - `total_remote_commitments` (type `u64`, sqltype `INTEGER`)\n - `total_htlcs_sent` (type `u64`, sqltype `INTEGER`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `leased` (type `boolean`, sqltype `INTEGER`)\n - `funding_fee_paid_msat` (type `msat`, sqltype `INTEGER`)\n - `funding_fee_rcvd_msat` (type `msat`, sqltype `INTEGER`)\n - `funding_pushed_msat` (type `msat`, sqltype `INTEGER`)\n - `total_msat` (type `msat`, sqltype `INTEGER`)\n - `final_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `min_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `max_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `last_commitment_txid` (type `hash`, sqltype `BLOB`)\n - `last_commitment_fee_msat` (type `msat`, sqltype `INTEGER`)\n - `close_cause` (type `string`, sqltype `TEXT`)\n - `last_stable_connection` (type `u64`, sqltype `INTEGER`)\n\n- `forwards` indexed by `in_channel and in_htlc_id` (see lightning-listforwards(7))\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `in_channel` (type `short_channel_id`, sqltype `TEXT`)\n - `in_htlc_id` (type `u64`, sqltype `INTEGER`)\n - `in_msat` (type `msat`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `received_time` (type `number`, sqltype `REAL`)\n - `out_channel` (type `short_channel_id`, sqltype `TEXT`)\n - `out_htlc_id` (type `u64`, sqltype `INTEGER`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `style` (type `string`, sqltype `TEXT`)\n - `fee_msat` (type `msat`, sqltype `INTEGER`)\n - `out_msat` (type `msat`, sqltype `INTEGER`)\n - `resolved_time` (type `number`, sqltype `REAL`)\n - `failcode` (type `u32`, sqltype `INTEGER`)\n - `failreason` (type `string`, sqltype `TEXT`)\n\n- `htlcs` indexed by `short_channel_id and id` (see lightning-listhtlcs(7))\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `expiry` (type `u32`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `direction` (type `string`, sqltype `TEXT`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `state` (type `string`, sqltype `TEXT`)\n\n- `invoices` indexed by `payment_hash` (see lightning-listinvoices(7))\n - `label` (type `string`, sqltype `TEXT`)\n - `description` (type `string`, sqltype `TEXT`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `status` (type `string`, sqltype `TEXT`)\n - `expires_at` (type `u64`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `bolt11` (type `string`, sqltype `TEXT`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `local_offer_id` (type `hash`, sqltype `BLOB`)\n - `invreq_payer_note` (type `string`, sqltype `TEXT`)\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `pay_index` (type `u64`, sqltype `INTEGER`)\n - `amount_received_msat` (type `msat`, sqltype `INTEGER`)\n - `paid_at` (type `u64`, sqltype `INTEGER`)\n - `paid_outpoint_txid` (type `txid`, sqltype `BLOB`, from JSON object `paid_outpoint`)\n - `paid_outpoint_outnum` (type `u32`, sqltype `INTEGER`, from JSON object `paid_outpoint`)\n - `payment_preimage` (type `secret`, sqltype `BLOB`)\n\n- `nodes` indexed by `nodeid` (see lightning-listnodes(7))\n - `nodeid` (type `pubkey`, sqltype `BLOB`)\n - `last_timestamp` (type `u32`, sqltype `INTEGER`)\n - `alias` (type `string`, sqltype `TEXT`)\n - `color` (type `hex`, sqltype `BLOB`)\n - `features` (type `hex`, sqltype `BLOB`)\n - related table `nodes_addresses`\n - `row` (reference to `nodes.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `type` (type `string`, sqltype `TEXT`)\n - `port` (type `u16`, sqltype `INTEGER`)\n - `address` (type `string`, sqltype `TEXT`)\n - `option_will_fund_lease_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_lease_fee_basis` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_funding_weight` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_channel_fee_max_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_channel_fee_max_proportional_thousandths` (type `u32`, sqltype `INTEGER`, from JSON object `option_will_fund`)\n - `option_will_fund_compact_lease` (type `hex`, sqltype `BLOB`, from JSON object `option_will_fund`)\n\n- `offers` indexed by `offer_id` (see lightning-listoffers(7))\n - `offer_id` (type `hash`, sqltype `BLOB`)\n - `active` (type `boolean`, sqltype `INTEGER`)\n - `single_use` (type `boolean`, sqltype `INTEGER`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `used` (type `boolean`, sqltype `INTEGER`)\n - `label` (type `string`, sqltype `TEXT`)\n\n- `peerchannels` indexed by `peer_id` (see lightning-listpeerchannels(7))\n - `peer_id` (type `pubkey`, sqltype `BLOB`)\n - `peer_connected` (type `boolean`, sqltype `INTEGER`)\n - `reestablished` (type `boolean`, sqltype `INTEGER`)\n - `state` (type `string`, sqltype `TEXT`)\n - `scratch_txid` (type `txid`, sqltype `BLOB`)\n - related table `peerchannels_channel_type_bits`, from JSON object `channel_type`\n - `row` (reference to `peerchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `bits` (type `u32`, sqltype `INTEGER`)\n - related table `peerchannels_channel_type_names`, from JSON object `channel_type`\n - `row` (reference to `peerchannels_channel_type.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `names` (type `string`, sqltype `TEXT`)\n - `local_htlc_minimum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_htlc_maximum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_cltv_expiry_delta` (type `u32`, sqltype `INTEGER`, from JSON object `local`)\n - `local_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `local`)\n - `local_fee_proportional_millionths` (type `u32`, sqltype `INTEGER`, from JSON object `local`)\n - `remote_htlc_minimum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_htlc_maximum_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_cltv_expiry_delta` (type `u32`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_fee_base_msat` (type `msat`, sqltype `INTEGER`, from JSON object `remote`)\n - `remote_fee_proportional_millionths` (type `u32`, sqltype `INTEGER`, from JSON object `remote`)\n - `ignore_fee_limits` (type `boolean`, sqltype `INTEGER`)\n - `lost_state` (type `boolean`, sqltype `INTEGER`)\n - `feerate_perkw` (type `u32`, sqltype `INTEGER`, from JSON object `feerate`)\n - `feerate_perkb` (type `u32`, sqltype `INTEGER`, from JSON object `feerate`)\n - `owner` (type `string`, sqltype `TEXT`)\n - `short_channel_id` (type `short_channel_id`, sqltype `TEXT`)\n - `channel_id` (type `hash`, sqltype `BLOB`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `initial_feerate` (type `string`, sqltype `TEXT`)\n - `last_feerate` (type `string`, sqltype `TEXT`)\n - `next_feerate` (type `string`, sqltype `TEXT`)\n - `next_fee_step` (type `u32`, sqltype `INTEGER`)\n - related table `peerchannels_inflight`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `funding_txid` (type `txid`, sqltype `BLOB`)\n - `funding_outnum` (type `u32`, sqltype `INTEGER`)\n - `feerate` (type `string`, sqltype `TEXT`)\n - `total_funding_msat` (type `msat`, sqltype `INTEGER`)\n - `splice_amount` (type `integer`, sqltype `INTEGER`)\n - `our_funding_msat` (type `msat`, sqltype `INTEGER`)\n - `scratch_txid` (type `txid`, sqltype `BLOB`)\n - `close_to` (type `hex`, sqltype `BLOB`)\n - `private` (type `boolean`, sqltype `INTEGER`)\n - `opener` (type `string`, sqltype `TEXT`)\n - `closer` (type `string`, sqltype `TEXT`)\n - related table `peerchannels_features`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `features` (type `string`, sqltype `TEXT`)\n - `funding_pushed_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_local_funds_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_remote_funds_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_fee_paid_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `funding_fee_rcvd_msat` (type `msat`, sqltype `INTEGER`, from JSON object `funding`)\n - `to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `min_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `max_to_us_msat` (type `msat`, sqltype `INTEGER`)\n - `total_msat` (type `msat`, sqltype `INTEGER`)\n - `fee_base_msat` (type `msat`, sqltype `INTEGER`)\n - `fee_proportional_millionths` (type `u32`, sqltype `INTEGER`)\n - `dust_limit_msat` (type `msat`, sqltype `INTEGER`)\n - `max_total_htlc_in_msat` (type `msat`, sqltype `INTEGER`)\n - `their_reserve_msat` (type `msat`, sqltype `INTEGER`)\n - `our_reserve_msat` (type `msat`, sqltype `INTEGER`)\n - `spendable_msat` (type `msat`, sqltype `INTEGER`)\n - `receivable_msat` (type `msat`, sqltype `INTEGER`)\n - `minimum_htlc_in_msat` (type `msat`, sqltype `INTEGER`)\n - `minimum_htlc_out_msat` (type `msat`, sqltype `INTEGER`)\n - `maximum_htlc_out_msat` (type `msat`, sqltype `INTEGER`)\n - `their_to_self_delay` (type `u32`, sqltype `INTEGER`)\n - `our_to_self_delay` (type `u32`, sqltype `INTEGER`)\n - `max_accepted_htlcs` (type `u32`, sqltype `INTEGER`)\n - `alias_local` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - `alias_remote` (type `short_channel_id`, sqltype `TEXT`, from JSON object `alias`)\n - related table `peerchannels_state_changes`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `timestamp` (type `string`, sqltype `TEXT`)\n - `old_state` (type `string`, sqltype `TEXT`)\n - `new_state` (type `string`, sqltype `TEXT`)\n - `cause` (type `string`, sqltype `TEXT`)\n - `message` (type `string`, sqltype `TEXT`)\n - related table `peerchannels_status`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `in_payments_offered` (type `u64`, sqltype `INTEGER`)\n - `in_offered_msat` (type `msat`, sqltype `INTEGER`)\n - `in_payments_fulfilled` (type `u64`, sqltype `INTEGER`)\n - `in_fulfilled_msat` (type `msat`, sqltype `INTEGER`)\n - `out_payments_offered` (type `u64`, sqltype `INTEGER`)\n - `out_offered_msat` (type `msat`, sqltype `INTEGER`)\n - `out_payments_fulfilled` (type `u64`, sqltype `INTEGER`)\n - `out_fulfilled_msat` (type `msat`, sqltype `INTEGER`)\n - `last_stable_connection` (type `u64`, sqltype `INTEGER`)\n - related table `peerchannels_htlcs`\n - `row` (reference to `peerchannels.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `direction` (type `string`, sqltype `TEXT`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `expiry` (type `u32`, sqltype `INTEGER`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `local_trimmed` (type `boolean`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `state` (type `string`, sqltype `TEXT`)\n - `close_to_addr` (type `string`, sqltype `TEXT`)\n - `last_tx_fee_msat` (type `msat`, sqltype `INTEGER`)\n - `direction` (type `u32`, sqltype `INTEGER`)\n\n- `peers` indexed by `id` (see lightning-listpeers(7))\n - `id` (type `pubkey`, sqltype `BLOB`)\n - `connected` (type `boolean`, sqltype `INTEGER`)\n - `num_channels` (type `u32`, sqltype `INTEGER`)\n - related table `peers_netaddr`\n - `row` (reference to `peers.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `netaddr` (type `string`, sqltype `TEXT`)\n - `remote_addr` (type `string`, sqltype `TEXT`)\n - `features` (type `hex`, sqltype `BLOB`)\n\n- `sendpays` indexed by `payment_hash` (see lightning-listsendpays(7))\n - `created_index` (type `u64`, sqltype `INTEGER`)\n - `id` (type `u64`, sqltype `INTEGER`)\n - `groupid` (type `u64`, sqltype `INTEGER`)\n - `partid` (type `u64`, sqltype `INTEGER`)\n - `payment_hash` (type `hash`, sqltype `BLOB`)\n - `updated_index` (type `u64`, sqltype `INTEGER`)\n - `status` (type `string`, sqltype `TEXT`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `destination` (type `pubkey`, sqltype `BLOB`)\n - `created_at` (type `u64`, sqltype `INTEGER`)\n - `amount_sent_msat` (type `msat`, sqltype `INTEGER`)\n - `label` (type `string`, sqltype `TEXT`)\n - `bolt11` (type `string`, sqltype `TEXT`)\n - `description` (type `string`, sqltype `TEXT`)\n - `bolt12` (type `string`, sqltype `TEXT`)\n - `completed_at` (type `u64`, sqltype `INTEGER`)\n - `payment_preimage` (type `secret`, sqltype `BLOB`)\n - `erroronion` (type `hex`, sqltype `BLOB`)\n\n- `transactions` indexed by `hash` (see lightning-listtransactions(7))\n - `hash` (type `txid`, sqltype `BLOB`)\n - `rawtx` (type `hex`, sqltype `BLOB`)\n - `blockheight` (type `u32`, sqltype `INTEGER`)\n - `txindex` (type `u32`, sqltype `INTEGER`)\n - `locktime` (type `u32`, sqltype `INTEGER`)\n - `version` (type `u32`, sqltype `INTEGER`)\n - related table `transactions_inputs`\n - `row` (reference to `transactions.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `txid` (type `txid`, sqltype `BLOB`)\n - `idx` (type `u32`, sqltype `INTEGER`, from JSON field `index`)\n - `sequence` (type `u32`, sqltype `INTEGER`)\n - related table `transactions_outputs`\n - `row` (reference to `transactions.rowid`, sqltype `INTEGER`)\n - `arrindex` (index within array, sqltype `INTEGER`)\n - `idx` (type `u32`, sqltype `INTEGER`, from JSON field `index`)\n - `amount_msat` (type `msat`, sqltype `INTEGER`)\n - `scriptPubKey` (type `hex`, sqltype `BLOB`)" ], "errors": [ "On failure, an error is returned." diff --git a/tools/fromschema.py b/tools/fromschema.py index a7eb31019..90c5c3505 100755 --- a/tools/fromschema.py +++ b/tools/fromschema.py @@ -6,6 +6,18 @@ from argparse import ArgumentParser import json import re +# To maintain the sequence of the before return value (body) and after return value (footer) sections in the markdown file +BODY_KEY_SEQUENCE = ['reliability', 'usage', 'restriction_format', 'example_usage', 'example_json_request', 'notes', 'notifications', 'sharing_runes', 'riskfactor_effect_on_routing', 'recommended_riskfactor_values', 'optimality', 'randomization'] +FOOTER_KEY_SEQUENCE = ['example_json_response', 'errors', 'example_json_notifications', 'trivia', 'author', 'see_also', 'resources'] + + +def output_title(title, underline='-', num_leading_newlines=1, num_trailing_newlines=2): + """Add a title to the output""" + print('\n' * num_leading_newlines + title, end='\n') + print(underline * len(title) + '\n' * num_trailing_newlines, end='') + global current_line_width + current_line_width = 0 + def esc_underscores(s): """Backslash-escape underscores outside of backtick-enclosed spans""" @@ -25,9 +37,9 @@ def json_value(obj): assert False -def outputs(lines): +def outputs(lines, separator=''): """Add these lines to the final output""" - print(''.join(lines), end='') + print(esc_underscores(separator.join(lines)), end='') def output(line): @@ -35,30 +47,68 @@ def output(line): print(line, end='') +def search_key_in_conditional_array(request, param): + """search param in all conditional subarrays/objects and return the condition and found array/obj""" + one_of_many_array = request.get('oneOfMany', []) + paired_with_array = request.get('pairedWith', []) + + # Check if the same parameter is in both 'pairedWith' and 'oneOfMany' and throw an error if found + common_key = next((element_one for subarray_one in one_of_many_array for element_one in subarray_one for subarray_paired in paired_with_array if element_one in subarray_paired), '') + assert common_key == '', f'The same parameter "{common_key}" cannot be in both "pairedWith" and "oneOfMany"' + + # Search for the parameter in 'oneOfMany' array + for sub_array_one in one_of_many_array: + if param in sub_array_one: + return 'oneOfMany', sub_array_one + + # Search for the parameter in 'pairedWith' array + for sub_array_paired in paired_with_array: + if param in sub_array_paired: + return 'pairedWith', sub_array_paired + + # If param doesn't exist in any of the conditional arrays, return empty condition and None + return '', None + + +def output_conditional_params(conditional_sub_array, condition): + """Output request parameters with appropriate separator based on the separator""" + # If the request has 'oneOfMany', then print them in one param section with OR (|) sign. + # 'oneOfMany' example `plugin`: [*plugin|directory*] + # If the request has 'pairedWith', then print them in one param section separated with space. + # 'pairedWith' example `delpay`: [*partid* *groupid*] + # If the request has 'dependentUpon', then print them in one param section separated with space. + # 'dependentUpon' example `listforwards`: [*index* [*start*] [*limit*]] + separator = {'oneOfMany': '|', 'pairedWith': '* *', 'dependentUpon': '*] [*'}.get(condition, '') + # Join all keys with the separator + keysfoundstr = format(esc_underscores(separator.join(conditional_sub_array))) + # Print the merged keys + output('{}{}'.format(fmt_paramname(keysfoundstr, True, False), '' if condition == 'dependentUpon' else ' ')) + + def output_type(properties, is_optional): - typename = esc_underscores(properties['type']) + """Add types for request and reponse parameters""" + typename = 'one of' if 'oneOf' in properties else esc_underscores(properties['type']) if typename == 'array': - typename += ' of {}s'.format(esc_underscores(properties['items']['type'])) + if 'items' in properties and 'type' in properties['items']: + typename += ' of {}s'.format(esc_underscores(properties['items']['type'])) if is_optional: - typename += ", optional" - output(" ({})".format(typename)) + typename += ', optional' + output(' ({})'.format(esc_underscores(typename))) def output_range(properties): if 'maximum' and 'minimum' in properties: - output(" ({} to {} inclusive)".format(properties['minimum'], - properties['maximum'])) + output(' ({} to {} inclusive)'.format(properties['minimum'], properties['maximum'])) elif 'maximum' in properties: - output(" (max {})".format(properties['maximum'])) + output(' (max {})'.format(properties['maximum'])) elif 'minimum' in properties: - output(" (min {})".format(properties['minimum'])) + output(' (min {})'.format(properties['minimum'])) if 'maxLength' and 'minLength' in properties: if properties['minLength'] == properties['maxLength']: output(' (always {} characters)'.format(properties['minLength'])) else: - output(' ({} to {} characters)'.format(properties['minLength'], - properties['maxLength'])) + output(' ({} to {} characters)'.format(properties['minLength'], properties['maxLength'])) elif 'maxLength' in properties: output(' (up to {} characters)'.format(properties['maxLength'])) elif 'minLength' in properties: @@ -76,11 +126,34 @@ def fmt_propname(propname): return '**{}**'.format(esc_underscores(propname)) +def fmt_paramname(paramname, is_optional=True, trailing_space=True): + """Pretty-print format a parameter name""" + return '[*{}*]{}'.format(esc_underscores(paramname), ' ' if trailing_space else '') if is_optional else '*{}*{}'.format(esc_underscores(paramname), ' ' if trailing_space else '') + + +def deprecated_to_deleted(vername): + """We promise a 6 month minumum deprecation period, and versions are every 3 months""" + assert vername.startswith('v') + base = [int(s) for s in vername[1:].split('.')[0:2]] + if base == [0, 12]: + base = [22, 8] + base[1] += 9 + if base[1] > 12: + base[0] += 1 + base[1] -= 12 + # Christian points out versions should sort well lexographically, + # so we zero-pad single-digits. + return 'v{}.{:0>2}'.format(base[0], base[1]) + + def output_member(propname, properties, is_optional, indent, print_type=True, prefix=None): """Generate description line(s) for this member""" + # Skip hidden properties + if 'hidden' in properties and properties['hidden']: + return if prefix is None: - prefix = '- ' + fmt_propname(propname) + prefix = '- ' + fmt_propname(propname) if propname is not None else '-' output(indent + prefix) # We make them explicitly note if they don't want a type! @@ -89,19 +162,25 @@ def output_member(propname, properties, is_optional, indent, print_type=True, pr if not is_untyped and print_type: output_type(properties, is_optional) - if 'description' in properties: - output(": {}".format(esc_underscores(properties['description']))) - output_range(properties) - if 'deprecated' in properties: - assert isinstance(properties['deprecated'], list) - assert len(properties['deprecated']) == 2 - output(" **deprecated in {}, removed after {}**".format(properties['deprecated'][0], properties['deprecated'][1])) - if 'added' in properties: - output(" *(added {})*".format(properties['added'])) + if 'description' in properties: + for i in range(0, len(properties['description'])): + output('{} {}{}'.format(':' if i == 0 else '', esc_underscores(properties['description'][i]), '' if i + 1 == len(properties['description']) else '\n')) - if not is_untyped and properties['type'] == 'object': + if 'default' in properties: + output(' The default is {}.'.format(esc_underscores(properties['default']) if isinstance(properties['default'], str) else properties['default'])) + + if 'deprecated' in properties: + output(' **deprecated in {}, removed after {}**'.format(properties['deprecated'][0], properties['deprecated'][1] if len(properties['deprecated']) > 1 else deprecated_to_deleted(properties['deprecated'][0]))) + + if 'added' in properties: + output(' *(added {})*'.format(properties['added'])) + + if 'oneOf' in properties and isinstance(properties['oneOf'], list): + output(':\n') + output_members(properties, indent + ' ') + elif not is_untyped and properties['type'] == 'object': output(':\n') output_members(properties, indent + ' ') elif not is_untyped and properties['type'] == 'array': @@ -113,15 +192,19 @@ def output_member(propname, properties, is_optional, indent, print_type=True, pr def output_array(items, indent): """We've already said it's an array of {type}""" - if items['type'] == 'object': + if 'oneOf' in items and isinstance(items['oneOf'], list): + output_members(items, indent + ' ') + elif items['type'] == 'object': output_members(items, indent) elif items['type'] == 'array': - output(indent + '- {}:\n'.format(esc_underscores(items['description']))) - output_array(items['items'], indent + ' ') + output(indent + '-') + output_type(items, False) + output(': {}\n'.format(esc_underscores('\n'.join(items['description']))) if 'description' in items and len(items['description']) > 0 else '\n') + if 'items' in items: + output_array(items['items'], indent + ' ') else: - output(indent + '- {}'.format(esc_underscores(items['description']))) - output_range(items) - output('\n') + if 'type' in items: + output_member(None, items, True, indent) def has_members(sub): @@ -138,46 +221,37 @@ def has_members(sub): def output_members(sub, indent=''): """Generate lines for these properties""" warnings = [] + if 'properties' in sub: + for p in list(sub['properties'].keys()): + if len(sub['properties'][p]) == 0 or sub['properties'][p].get('deprecated') is True: + del sub['properties'][p] + elif p.startswith('warning'): + warnings.append(p) - # Remove deprecated: True and stub properties, collect warnings - # (Stubs required to keep additionalProperties: false happy) + # First list always-present properties + for p in sub['properties']: + if p.startswith('warning'): + continue + if 'required' in sub and p in sub['required']: + output_member(p, sub['properties'][p], False, indent) - # FIXME: It fails for schemas which have only an array type with - # no properties, ex: - # "abcd": { - # "type": "array", - # "items": { - # "type": "whatever", - # "description": "efgh" - # } - # } - # Checkout the schema of `staticbackup`. - for p in list(sub['properties'].keys()): - if len(sub['properties'][p]) == 0 or sub['properties'][p].get('deprecated') is True: - del sub['properties'][p] - elif p.startswith('warning'): - warnings.append(p) - - # First list always-present properties - for p in sub['properties']: - if p.startswith('warning'): - continue - if 'required' in sub and p in sub['required']: - output_member(p, sub['properties'][p], False, indent) - - for p in sub['properties']: - if p.startswith('warning'): - continue - if 'required' not in sub or p not in sub['required']: - output_member(p, sub['properties'][p], True, indent) + for p in sub['properties']: + if p.startswith('warning'): + continue + if 'required' not in sub or p not in sub['required']: + output_member(p, sub['properties'][p], True, indent) if warnings != []: - output(indent + "- the following warnings are possible:\n") + output(indent + '- the following warnings are possible:\n') for w in warnings: output_member(w, sub['properties'][w], False, indent + ' ', print_type=False) - # Not handled. - assert 'oneOf' not in sub + if 'oneOf' in sub: + for oneOfItem in sub['oneOf']: + if 'type' in oneOfItem and oneOfItem['type'] == 'array': + output_array(oneOfItem, indent) + else: + output_member(None, oneOfItem, False, indent, False if 'enum' in oneOfItem else True) # If we have multiple ifs, we have to wrap them in allOf. if 'allOf' in sub: @@ -191,43 +265,110 @@ def output_members(sub, indent=''): for ifclause in ifclauses: conditions = [] - # "required" are fields that simply must be present + # 'required' are fields that simply must be present for r in ifclause['if'].get('required', []): conditions.append(fmt_propname(r) + ' is present') - # "properties" are enums of field values + # 'properties' are enums of field values for tag, vals in ifclause['if'].get('properties', {}).items(): # Don't have a description field here, it's not used. assert 'description' not in vals whichvalues = vals['enum'] - cond = fmt_propname(tag) + " is" + cond = fmt_propname(tag) + ' is' if len(whichvalues) == 1: - cond += " {}".format(json_value(whichvalues[0])) + cond += ' {}'.format(json_value(whichvalues[0])) else: - cond += " {} or {}".format(", ".join([json_value(v) for v in whichvalues[:-1]]), + cond += ' {} or {}'.format(', '.join([json_value(v) for v in whichvalues[:-1]]), json_value(whichvalues[-1])) conditions.append(cond) - sentence = indent + "If " + ", and ".join(conditions) + ":\n\n" + sentence = indent + 'If ' + ', and '.join(conditions) + ':\n' if has_members(ifclause['then']): # Prefix with blank line. outputs(['\n', sentence]) - output_members(ifclause['then'], indent + ' ') -def generate_from_schema(schema): +def generate_header(schema): + """Generate lines for rpc title and synopsis with request parameters""" + output_title(esc_underscores(''.join(['lightning-', schema['rpc'], ' -- ', schema['title']])), '=', 0, 1) + output_title('SYNOPSIS') + # Add command level warning if exists + if 'warning' in schema: + output('**(WARNING: {})**\n\n'.format(esc_underscores(schema['warning']))) + # generate the rpc command details with request parameters + request = schema['request'] + properties = request['properties'] + toplevels = list(request['properties'].keys()) + output('{} '.format(fmt_propname(schema['rpc']))) + i = 0 + while i < len(toplevels): + # Skip hidden properties + if 'hidden' in properties[toplevels[i]] and properties[toplevels[i]]['hidden']: + i += 1 + continue + # Search for the parameter in 'dependentUpon' array + dependent_upon_obj = request['dependentUpon'] if 'dependentUpon' in request else [] + if toplevels[i] in dependent_upon_obj: + # Output parameters with appropriate separator + output('{}*{}* '.format('' if 'required' in request and toplevels[i] in request['required'] else '[', esc_underscores(toplevels[i]))) + output_conditional_params(dependent_upon_obj[toplevels[i]], 'dependentUpon') + toplevels = [key for key in toplevels if key not in dependent_upon_obj[toplevels[i]]] + output('{}'.format('' if 'required' in request and toplevels[i] in request['required'] else ']')) + else: + # Search for the parameter in any conditional sub-arrays (oneOfMany, pairedWith) + condition, foundinsubarray = search_key_in_conditional_array(request, toplevels[i]) + # If param found in the conditional sub-array + if condition != '' and foundinsubarray is not None: + # Output parameters with appropriate separator + output_conditional_params(foundinsubarray, condition) + # Remove found keys from toplevels array + toplevels = [key for key in toplevels if key not in foundinsubarray] + # Reset the cursor to the previous index + i = i - 1 + else: + # Print the key as it is if it doesn't exist in conditional array + output('{}'.format(fmt_paramname(toplevels[i], False if 'required' in request and toplevels[i] in request['required'] else True))) + i += 1 + # lightning-plugin.json is an exception where all parameters cannot be printed deu to their dependency on different subcommands + # So, add ... at the end for lightning-plugin schema + if schema['rpc'] == 'plugin': + output('...') + output('\n') + + +def generate_description(schema): + """Generate rpc description with request parameter descriptions""" + request = schema['request'] + output_title('DESCRIPTION') + # Add deprecated and removal information for the command + if 'deprecated' in schema: + output('Command **deprecated in {}, removed after {}**.\n\n'.format(schema['deprecated'][0], schema['deprecated'][1] if len(schema['deprecated']) > 1 else deprecated_to_deleted(schema['deprecated'][0]))) + # Version when the command was added + if 'added' in schema: + output('Command *added* in {}.\n\n'.format(schema['added'])) + # Command's detailed description + outputs(schema['description'], '\n') + # Request parameter's detailed description + output('{}'.format('\n\n' if len(request['properties']) > 0 else '\n')) + output_members(request) + + +def generate_return_value(schema): """This is not general, but works for us""" - if schema['type'] != 'object': - # 'stop' returns a single string! - output_member(None, schema, False, '', prefix='On success, returns a single element') - return + output_title('RETURN VALUE') + + response = schema['response'] + + if 'pre_return_value_notes' in response: + outputs(response['pre_return_value_notes'], '\n') + output('\n') toplevels = [] warnings = [] - props = schema['properties'] + props = response['properties'] # We handle warnings on top-level objects with a separate section, # so collect them now and remove them @@ -240,66 +381,113 @@ def generate_from_schema(schema): # No properties -> empty object. if toplevels == []: - output('On success, an empty object is returned.\n') + # Use pre/post_return_value_notes with empty properties when dynamic generation of the return value section is not required. + # But to add a custom return value section instead. Example: `commando` commands. + if "pre_return_value_notes" not in response and "post_return_value_notes" not in response: + output('On success, an empty object is returned.\n') sub = schema elif len(toplevels) == 1 and props[toplevels[0]]['type'] == 'object': - output('On success, an object containing {} is returned. It is an object containing:\n\n'.format(fmt_propname(toplevels[0]))) + output('On success, an object containing {} is returned. It is an object containing:\n\n'.format(fmt_propname(toplevels[0]))) # Don't have a description field here, it's not used. assert 'description' not in toplevels[0] sub = props[toplevels[0]] elif len(toplevels) == 1 and props[toplevels[0]]['type'] == 'array' and props[toplevels[0]]['items']['type'] == 'object': - output('On success, an object containing {} is returned. It is an array of objects, where each object contains:\n\n'.format(fmt_propname(toplevels[0]))) + output('On success, an object containing {} is returned. It is an array of objects, where each object contains:\n\n'.format(fmt_propname(toplevels[0]))) # Don't have a description field here, it's not used. assert 'description' not in toplevels[0] sub = props[toplevels[0]]['items'] else: output('On success, an object is returned, containing:\n\n') - sub = schema + sub = response output_members(sub) if warnings: - outputs(['\n', 'The following warnings may also be returned:\n\n']) + output('\nThe following warnings may also be returned:\n\n') for w, desc in warnings: - output("- {}: {}\n".format(fmt_propname(w), desc)) + output('- {}: {}\n'.format(fmt_propname(w), ''.join(desc))) - # GH markdown rendering gets upset if there isn't a blank line - # between a list and the end comment. + if 'post_return_value_notes' in response: + if len(props.keys()) > 0: + output('\n') + outputs(response['post_return_value_notes'], '\n') + output('\n') + + +def generate_body(schema): + """Output sections which should be printed after description and before return value""" + # Insert extra line between description and next section with this flag + first_matching_key = True + # Only add a newline if at least there is one body key found + body_key_found = False + for key in BODY_KEY_SEQUENCE: + if key not in schema: + continue + body_key_found = True + output_title(key.replace('_', ' ').upper(), '-', 1 if first_matching_key else 2) + first_matching_key = False + if key == 'example_json_request' and len(schema[key]) > 0: + output('```json\n') + for example in schema.get(key, []): + output(json.dumps(example, indent=2).strip() + '\n') + output('```') + else: + outputs(schema[key], '\n') + if body_key_found: + output('\n') + + +def generate_footer(schema): + """Output sections which should be printed after return value""" + first_matching_key = True + for key in FOOTER_KEY_SEQUENCE: + if key not in schema: + continue + output_title(key.replace('_', ' ').upper(), '-', 1 if first_matching_key else 2) + first_matching_key = False + if key == 'see_also': + # Wrap see_also list with comma separated values + output(esc_underscores(', '.join(schema[key]))) + elif key.startswith('example_json_') and len(schema[key]) > 0: + # For printing example_json_response and example_json_notifications into code block + for i, example in enumerate(schema.get(key, [])): + # For printing string elements from example json response; example: `createonion` + if isinstance(example, str): + output(example) + if i + 1 < len(schema[key]): + output('\n') + else: + if i == 0: + output('```json\n') + output(json.dumps(example, indent=2).strip() + '\n') + if i + 1 == len(schema[key]): + output('```') + else: + outputs(schema[key], '\n') output('\n') def main(schemafile, markdownfile): - start_marker = '[comment]: # (GENERATE-FROM-SCHEMA-START)\n' - end_marker = '[comment]: # (GENERATE-FROM-SCHEMA-END)\n' + with open(schemafile, 'r') as f: + schema = json.load(f) + # Outputs rpc title and synopsis with request parameters + generate_header(schema) + # Outputs command description with request parameter descriptions + generate_description(schema) + # Outputs other remaining sections before return value section + generate_body(schema) + # Outputs command response with response parameter descriptions + generate_return_value(schema) + # Outputs other remaining sections after return value section + generate_footer(schema) if markdownfile is None: - with open(schemafile, "r") as f: - schema = json.load(f) - generate_from_schema(schema) return - with open(markdownfile, "r") as f: - md = f.readlines() - suppress_output = False - for line in md: - if line == end_marker: - suppress_output = False - - if not suppress_output: - print(line, end='') - - if line == start_marker: - with open(schemafile, "r") as f: - schema = json.load(f) - generate_from_schema(schema) - suppress_output = True - - -if __name__ == "__main__": +if __name__ == '__main__': parser = ArgumentParser() parser.add_argument('schemafile', help='The schema file to use') parser.add_argument('--markdownfile', help='The markdown file to read') parsed_args = parser.parse_args() - main(parsed_args.schemafile, parsed_args.markdownfile)