From 2ba05ef2b8229d6c850f19e0cf9ed642894c614a Mon Sep 17 00:00:00 2001 From: daywalker90 <8257956+daywalker90@users.noreply.github.com> Date: Sat, 9 Nov 2024 16:47:17 +0100 Subject: [PATCH] msggen: add missing rpc commands new to 24.11 Changelog-None --- .msggen.json | 1739 +++- cln-grpc/proto/node.proto | 441 + cln-grpc/src/convert.rs | 1402 ++- cln-grpc/src/server.rs | 704 ++ cln-rpc/src/model.rs | 9183 ++++++++++------- contrib/msggen/msggen/utils/utils.py | 22 + contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py | 1752 ++-- .../pyln/grpc/node_pb2_grpc.py | 726 ++ contrib/pyln-testing/pyln/testing/grpc2py.py | 340 + 9 files changed, 11214 insertions(+), 5095 deletions(-) diff --git a/.msggen.json b/.msggen.json index 17da595ea01c..5f46dc5d1645 100644 --- a/.msggen.json +++ b/.msggen.json @@ -1,11 +1,24 @@ { "grpc-enum-map": { + "Askrene-inform-channelInform": { + "constrained": 0, + "succeeded": 2, + "unconstrained": 1 + }, "Bkpr-dumpincomecsvCsv_format": { "cointracker": 0, "harmony": 2, "koinly": 1, "quickbooks": 3 }, + "Bkpr-editdescriptionbyoutpointUpdatedType": { + "chain": 0, + "channel": 1 + }, + "Bkpr-editdescriptionbypaymentidUpdatedType": { + "chain": 0, + "channel": 1 + }, "Bkpr-listaccounteventsEventsType": { "chain": 1, "channel": 2, @@ -511,6 +524,203 @@ "AddPsbtOutput.outnum": 3, "AddPsbtOutput.psbt": 1 }, + "Askrene-ageRequest": { + "AskRene-Age.cutoff": 2, + "AskRene-Age.layer": 1 + }, + "Askrene-ageResponse": { + "AskRene-Age.layer": 1, + "AskRene-Age.num_removed": 2 + }, + "Askrene-bias-channelBiases": { + "AskRene-Bias-Channel.biases[].bias": 3, + "AskRene-Bias-Channel.biases[].description": 4, + "AskRene-Bias-Channel.biases[].layer": 1, + "AskRene-Bias-Channel.biases[].short_channel_id_dir": 2 + }, + "Askrene-bias-channelRequest": { + "AskRene-Bias-Channel.bias": 3, + "AskRene-Bias-Channel.description": 4, + "AskRene-Bias-Channel.layer": 1, + "AskRene-Bias-Channel.short_channel_id_dir": 2 + }, + "Askrene-bias-channelResponse": { + "AskRene-Bias-Channel.biases[]": 1 + }, + "Askrene-create-channelRequest": { + "AskRene-Create-Channel.base_fee": 8, + "AskRene-Create-Channel.capacity_msat": 5, + "AskRene-Create-Channel.delay": 10, + "AskRene-Create-Channel.destination": 3, + "AskRene-Create-Channel.htlc_max": 7, + "AskRene-Create-Channel.htlc_min": 6, + "AskRene-Create-Channel.layer": 1, + "AskRene-Create-Channel.proportional_fee": 9, + "AskRene-Create-Channel.short_channel_id": 4, + "AskRene-Create-Channel.source": 2 + }, + "Askrene-create-layerLayers": { + "AskRene-Create-Layer.layers[].biases[]": 8, + "AskRene-Create-Layer.layers[].channel_updates[]": 6, + "AskRene-Create-Layer.layers[].constraints[]": 7, + "AskRene-Create-Layer.layers[].created_channels[]": 5, + "AskRene-Create-Layer.layers[].disabled_channels[]": 4, + "AskRene-Create-Layer.layers[].disabled_nodes[]": 3, + "AskRene-Create-Layer.layers[].layer": 1, + "AskRene-Create-Layer.layers[].persistent": 2 + }, + "Askrene-create-layerLayersBiases": { + "AskRene-Create-Layer.layers[].biases[].bias": 2, + "AskRene-Create-Layer.layers[].biases[].description": 3, + "AskRene-Create-Layer.layers[].biases[].short_channel_id_dir": 1 + }, + "Askrene-create-layerLayersChannel_updates": { + "AskRene-Create-Layer.layers[].channel_updates[].delay": 5, + "AskRene-Create-Layer.layers[].channel_updates[].fee_base_msat": 3, + "AskRene-Create-Layer.layers[].channel_updates[].fee_proportional_millionths": 4, + "AskRene-Create-Layer.layers[].channel_updates[].htlc_maximum_msat": 2, + "AskRene-Create-Layer.layers[].channel_updates[].htlc_minimum_msat": 1 + }, + "Askrene-create-layerLayersConstraints": { + "AskRene-Create-Layer.layers[].constraints[].direction": 2, + "AskRene-Create-Layer.layers[].constraints[].maximum_msat": 3, + "AskRene-Create-Layer.layers[].constraints[].minimum_msat": 4, + "AskRene-Create-Layer.layers[].constraints[].short_channel_id": 1 + }, + "Askrene-create-layerLayersCreated_channels": { + "AskRene-Create-Layer.layers[].created_channels[].capacity_msat": 4, + "AskRene-Create-Layer.layers[].created_channels[].destination": 2, + "AskRene-Create-Layer.layers[].created_channels[].short_channel_id": 3, + "AskRene-Create-Layer.layers[].created_channels[].source": 1 + }, + "Askrene-create-layerRequest": { + "AskRene-Create-Layer.layer": 1, + "AskRene-Create-Layer.persistent": 2 + }, + "Askrene-create-layerResponse": { + "AskRene-Create-Layer.layers[]": 1 + }, + "Askrene-disable-nodeRequest": { + "AskRene-Disable-Node.layer": 1, + "AskRene-Disable-Node.node": 2 + }, + "Askrene-inform-channelConstraint": { + "AskRene-Inform-Channel.constraint.direction": 2, + "AskRene-Inform-Channel.constraint.maximum_msat": 4, + "AskRene-Inform-Channel.constraint.minimum_msat": 5, + "AskRene-Inform-Channel.constraint.short_channel_id": 1, + "AskRene-Inform-Channel.constraint.timestamp": 3 + }, + "Askrene-inform-channelConstraints": { + "AskRene-Inform-Channel.constraints[].layer": 2, + "AskRene-Inform-Channel.constraints[].maximum_msat": 4, + "AskRene-Inform-Channel.constraints[].minimum_msat": 5, + "AskRene-Inform-Channel.constraints[].short_channel_id_dir": 1, + "AskRene-Inform-Channel.constraints[].timestamp": 3 + }, + "Askrene-inform-channelRequest": { + "AskRene-Inform-Channel.amount_msat": 7, + "AskRene-Inform-Channel.direction": 3, + "AskRene-Inform-Channel.inform": 8, + "AskRene-Inform-Channel.layer": 1, + "AskRene-Inform-Channel.maximum_msat": 4, + "AskRene-Inform-Channel.minimum_msat": 5, + "AskRene-Inform-Channel.short_channel_id": 2, + "AskRene-Inform-Channel.short_channel_id_dir": 6 + }, + "Askrene-inform-channelResponse": { + "AskRene-Inform-Channel.constraint": 1, + "AskRene-Inform-Channel.constraints[]": 2 + }, + "Askrene-listlayersLayers": { + "AskRene-ListLayers.layers[].biases[]": 8, + "AskRene-ListLayers.layers[].channel_updates[]": 7, + "AskRene-ListLayers.layers[].constraints[]": 4, + "AskRene-ListLayers.layers[].created_channels[]": 3, + "AskRene-ListLayers.layers[].disabled_channels[]": 6, + "AskRene-ListLayers.layers[].disabled_nodes[]": 2, + "AskRene-ListLayers.layers[].layer": 1, + "AskRene-ListLayers.layers[].persistent": 5 + }, + "Askrene-listlayersLayersBiases": { + "AskRene-ListLayers.layers[].biases[].bias": 2, + "AskRene-ListLayers.layers[].biases[].description": 3, + "AskRene-ListLayers.layers[].biases[].short_channel_id_dir": 1 + }, + "Askrene-listlayersLayersChannel_updates": { + "AskRene-ListLayers.layers[].channel_updates[].cltv_expiry_delta": 7, + "AskRene-ListLayers.layers[].channel_updates[].enabled": 2, + "AskRene-ListLayers.layers[].channel_updates[].fee_base_msat": 5, + "AskRene-ListLayers.layers[].channel_updates[].fee_proportional_millionths": 6, + "AskRene-ListLayers.layers[].channel_updates[].htlc_maximum_msat": 4, + "AskRene-ListLayers.layers[].channel_updates[].htlc_minimum_msat": 3, + "AskRene-ListLayers.layers[].channel_updates[].short_channel_id_dir": 1 + }, + "Askrene-listlayersLayersConstraints": { + "AskRene-ListLayers.layers[].constraints[].direction": 2, + "AskRene-ListLayers.layers[].constraints[].maximum_msat": 3, + "AskRene-ListLayers.layers[].constraints[].minimum_msat": 4, + "AskRene-ListLayers.layers[].constraints[].short_channel_id": 1, + "AskRene-ListLayers.layers[].constraints[].short_channel_id_dir": 5, + "AskRene-ListLayers.layers[].constraints[].timestamp": 6 + }, + "Askrene-listlayersLayersCreated_channels": { + "AskRene-ListLayers.layers[].created_channels[].capacity_msat": 4, + "AskRene-ListLayers.layers[].created_channels[].delay": 9, + "AskRene-ListLayers.layers[].created_channels[].destination": 2, + "AskRene-ListLayers.layers[].created_channels[].fee_base_msat": 7, + "AskRene-ListLayers.layers[].created_channels[].fee_proportional_millionths": 8, + "AskRene-ListLayers.layers[].created_channels[].htlc_maximum_msat": 6, + "AskRene-ListLayers.layers[].created_channels[].htlc_minimum_msat": 5, + "AskRene-ListLayers.layers[].created_channels[].short_channel_id": 3, + "AskRene-ListLayers.layers[].created_channels[].source": 1 + }, + "Askrene-listlayersRequest": { + "AskRene-ListLayers.layer": 1 + }, + "Askrene-listlayersResponse": { + "AskRene-ListLayers.layers[]": 1 + }, + "Askrene-listreservationsReservations": { + "AskRene-ListReservations.reservations[].age_in_seconds": 3, + "AskRene-ListReservations.reservations[].amount_msat": 2, + "AskRene-ListReservations.reservations[].command_id": 4, + "AskRene-ListReservations.reservations[].short_channel_id_dir": 1 + }, + "Askrene-listreservationsResponse": { + "AskRene-ListReservations.reservations[]": 1 + }, + "Askrene-remove-layerRequest": { + "AskRene-Remove-Layer.layer": 1 + }, + "Askrene-reservePath": { + "AskRene-Reserve.path[].amount_msat": 3, + "AskRene-Reserve.path[].direction": 2, + "AskRene-Reserve.path[].short_channel_id": 1, + "AskRene-Reserve.path[].short_channel_id_dir": 4 + }, + "Askrene-reserveRequest": { + "AskRene-Reserve.path[]": 1 + }, + "Askrene-unreservePath": { + "AskRene-Unreserve.path[].amount_msat": 3, + "AskRene-Unreserve.path[].direction": 2, + "AskRene-Unreserve.path[].short_channel_id": 1, + "AskRene-Unreserve.path[].short_channel_id_dir": 4 + }, + "Askrene-unreserveRequest": { + "AskRene-Unreserve.path[]": 1 + }, + "Askrene-update-channelRequest": { + "AskRene-Update-Channel.cltv_expiry_delta": 8, + "AskRene-Update-Channel.enabled": 3, + "AskRene-Update-Channel.fee_base_msat": 6, + "AskRene-Update-Channel.fee_proportional_millionths": 7, + "AskRene-Update-Channel.htlc_maximum_msat": 5, + "AskRene-Update-Channel.htlc_minimum_msat": 4, + "AskRene-Update-Channel.layer": 1, + "AskRene-Update-Channel.short_channel_id_dir": 2 + }, "Autoclean-onceAutoclean": { "AutoClean-Once.autoclean.expiredinvoices": 6, "AutoClean-Once.autoclean.failedforwards": 2, @@ -645,6 +855,56 @@ "Bkpr-DumpIncomeCsv.csv_file": 1, "Bkpr-DumpIncomeCsv.csv_format": 2 }, + "Bkpr-editdescriptionbyoutpointRequest": { + "Bkpr-EditDescriptionByOutpoint.description": 2, + "Bkpr-EditDescriptionByOutpoint.outpoint": 1 + }, + "Bkpr-editdescriptionbyoutpointResponse": { + "Bkpr-EditDescriptionByOutpoint.updated[]": 1 + }, + "Bkpr-editdescriptionbyoutpointUpdated": { + "Bkpr-EditDescriptionByOutpoint.updated[].account": 1, + "Bkpr-EditDescriptionByOutpoint.updated[].blockheight": 10, + "Bkpr-EditDescriptionByOutpoint.updated[].credit_msat": 4, + "Bkpr-EditDescriptionByOutpoint.updated[].currency": 6, + "Bkpr-EditDescriptionByOutpoint.updated[].debit_msat": 5, + "Bkpr-EditDescriptionByOutpoint.updated[].description": 8, + "Bkpr-EditDescriptionByOutpoint.updated[].fees_msat": 14, + "Bkpr-EditDescriptionByOutpoint.updated[].is_rebalance": 15, + "Bkpr-EditDescriptionByOutpoint.updated[].origin": 11, + "Bkpr-EditDescriptionByOutpoint.updated[].outpoint": 9, + "Bkpr-EditDescriptionByOutpoint.updated[].part_id": 16, + "Bkpr-EditDescriptionByOutpoint.updated[].payment_id": 12, + "Bkpr-EditDescriptionByOutpoint.updated[].tag": 3, + "Bkpr-EditDescriptionByOutpoint.updated[].timestamp": 7, + "Bkpr-EditDescriptionByOutpoint.updated[].txid": 13, + "Bkpr-EditDescriptionByOutpoint.updated[].type": 2 + }, + "Bkpr-editdescriptionbypaymentidRequest": { + "Bkpr-EditDescriptionByPaymentId.description": 2, + "Bkpr-EditDescriptionByPaymentId.payment_id": 1 + }, + "Bkpr-editdescriptionbypaymentidResponse": { + "Bkpr-EditDescriptionByPaymentId.updated[]": 1 + }, + "Bkpr-editdescriptionbypaymentidUpdated": { + "Bkpr-EditDescriptionByPaymentId.updated[].account": 1, + "Bkpr-EditDescriptionByPaymentId.updated[].blockheight": 10, + "Bkpr-EditDescriptionByPaymentId.updated[].credit_msat": 4, + "Bkpr-EditDescriptionByPaymentId.updated[].currency": 6, + "Bkpr-EditDescriptionByPaymentId.updated[].debit_msat": 5, + "Bkpr-EditDescriptionByPaymentId.updated[].description": 8, + "Bkpr-EditDescriptionByPaymentId.updated[].fees_msat": 14, + "Bkpr-EditDescriptionByPaymentId.updated[].is_rebalance": 15, + "Bkpr-EditDescriptionByPaymentId.updated[].origin": 11, + "Bkpr-EditDescriptionByPaymentId.updated[].outpoint": 9, + "Bkpr-EditDescriptionByPaymentId.updated[].part_id": 16, + "Bkpr-EditDescriptionByPaymentId.updated[].payment_id": 12, + "Bkpr-EditDescriptionByPaymentId.updated[].tag": 3, + "Bkpr-EditDescriptionByPaymentId.updated[].timestamp": 7, + "Bkpr-EditDescriptionByPaymentId.updated[].txid": 13, + "Bkpr-EditDescriptionByPaymentId.updated[].type": 2 + }, "Bkpr-inspectRequest": { "Bkpr-Inspect.account": 1 }, @@ -1149,6 +1409,20 @@ "Dev-Forget-Channel.funding_txid": 3, "Dev-Forget-Channel.funding_unspent": 2 }, + "Dev-spliceRequest": { + "Dev-Splice.debug_log": 4, + "Dev-Splice.dev-wetrun": 5, + "Dev-Splice.dryrun": 2, + "Dev-Splice.force_feerate": 3, + "Dev-Splice.script_or_json": 1 + }, + "Dev-spliceResponse": { + "Dev-Splice.dryrun[]": 1, + "Dev-Splice.log[]": 5, + "Dev-Splice.psbt": 2, + "Dev-Splice.tx": 3, + "Dev-Splice.txid": 4 + }, "DisableinvoicerequestRequest": { "DisableInvoiceRequest.invreq_id": 1 }, @@ -1178,6 +1452,25 @@ "EmergencyrecoverResponse": { "EmergencyRecover.stubs[]": 1 }, + "EnableofferRequest": { + "EnableOffer.offer_id": 1 + }, + "EnableofferResponse": { + "EnableOffer.active": 2, + "EnableOffer.bolt12": 4, + "EnableOffer.label": 6, + "EnableOffer.offer_id": 1, + "EnableOffer.single_use": 3, + "EnableOffer.used": 5 + }, + "ExposesecretRequest": { + "ExposeSecret.identifier": 2, + "ExposeSecret.passphrase": 1 + }, + "ExposesecretResponse": { + "ExposeSecret.codex32": 2, + "ExposeSecret.identifier": 1 + }, "FeeratesOnchain_fee_estimates": { "Feerates.onchain_fee_estimates.htlc_success_satoshis": 5, "Feerates.onchain_fee_estimates.htlc_timeout_satoshis": 4, @@ -1391,6 +1684,9 @@ "FundPsbt.psbt": 1, "FundPsbt.reservations[]": 6 }, + "GetemergencyrecoverdataResponse": { + "GetEmergencyRecoverData.filedata": 1 + }, "GetinfoAddress": { "Getinfo.address[].address": 3, "Getinfo.address[].port": 2, @@ -1470,6 +1766,33 @@ "GetRoute.route[].msatoshi": 7, "GetRoute.route[].style": 6 }, + "GetroutesRequest": { + "GetRoutes.amount_msat": 3, + "GetRoutes.destination": 2, + "GetRoutes.final_cltv": 7, + "GetRoutes.finalcltv": 6, + "GetRoutes.layers[]": 4, + "GetRoutes.maxfee_msat": 5, + "GetRoutes.source": 1 + }, + "GetroutesResponse": { + "GetRoutes.probability_ppm": 1, + "GetRoutes.routes[]": 2 + }, + "GetroutesRoutes": { + "GetRoutes.routes[].amount_msat": 2, + "GetRoutes.routes[].final_cltv": 4, + "GetRoutes.routes[].path[]": 3, + "GetRoutes.routes[].probability_ppm": 1 + }, + "GetroutesRoutesPath": { + "GetRoutes.routes[].path[].amount_msat": 3, + "GetRoutes.routes[].path[].delay": 5, + "GetRoutes.routes[].path[].direction": 2, + "GetRoutes.routes[].path[].next_node_id": 4, + "GetRoutes.routes[].path[].short_channel_id": 1, + "GetRoutes.routes[].path[].short_channel_id_dir": 6 + }, "HelpHelp": { "Help.help[].category": 2, "Help.help[].command": 1, @@ -1483,6 +1806,22 @@ "Help.format-hint": 2, "Help.help[]": 1 }, + "InjectpaymentonionRequest": { + "InjectPaymentOnion.amount_msat": 3, + "InjectPaymentOnion.cltv_expiry": 4, + "InjectPaymentOnion.groupid": 6, + "InjectPaymentOnion.invstring": 8, + "InjectPaymentOnion.label": 7, + "InjectPaymentOnion.localinvreqid": 9, + "InjectPaymentOnion.onion": 1, + "InjectPaymentOnion.partid": 5, + "InjectPaymentOnion.payment_hash": 2 + }, + "InjectpaymentonionResponse": { + "InjectPaymentOnion.completed_at": 2, + "InjectPaymentOnion.created_at": 1, + "InjectPaymentOnion.created_index": 3 + }, "InvoiceRequest": { "Invoice.amount_msat": 10, "Invoice.cltv": 6, @@ -1547,6 +1886,19 @@ "KeySend.status": 9, "KeySend.warning_partial_completion": 8 }, + "ListaddressesAddresses": { + "ListAddresses.addresses[].bech32": 2, + "ListAddresses.addresses[].keyidx": 1, + "ListAddresses.addresses[].p2tr": 3 + }, + "ListaddressesRequest": { + "ListAddresses.address": 1, + "ListAddresses.limit": 3, + "ListAddresses.start": 2 + }, + "ListaddressesResponse": { + "ListAddresses.addresses[]": 1 + }, "ListchannelsChannels": { "ListChannels.channels[].active": 8, "ListChannels.channels[].amount_msat": 5, @@ -3369,6 +3721,21 @@ "Withdraw.psbt": 3, "Withdraw.tx": 1, "Withdraw.txid": 2 + }, + "XpayRequest": { + "Xpay.amount_msat": 2, + "Xpay.invstring": 1, + "Xpay.layers[]": 4, + "Xpay.maxfee": 3, + "Xpay.partial_msat": 6, + "Xpay.retry_for": 5 + }, + "XpayResponse": { + "Xpay.amount_msat": 4, + "Xpay.amount_sent_msat": 5, + "Xpay.failed_parts": 2, + "Xpay.payment_preimage": 1, + "Xpay.successful_parts": 3 } }, "model-field-versions": { @@ -3412,344 +3779,1072 @@ "added": "pre-v0.10.1", "deprecated": null }, - "AutoClean-Once": { - "added": "pre-v0.10.1", + "AskRene-Age": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Once.age": { - "added": "pre-v0.10.1", + "AskRene-Age.cutoff": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Once.autoclean": { - "added": "pre-v0.10.1", + "AskRene-Age.layer": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Once.autoclean.expiredinvoices": { - "added": "pre-v0.10.1", + "AskRene-Age.num_removed": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Once.autoclean.expiredinvoices.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Bias-Channel": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Once.autoclean.expiredinvoices.uncleaned": { - "added": "pre-v0.10.1", + "AskRene-Bias-Channel.bias": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Once.autoclean.failedforwards": { - "added": "pre-v0.10.1", + "AskRene-Bias-Channel.biases[]": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Once.autoclean.failedforwards.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Bias-Channel.biases[].bias": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Once.autoclean.failedforwards.uncleaned": { - "added": "pre-v0.10.1", + "AskRene-Bias-Channel.biases[].description": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Once.autoclean.failedpays": { - "added": "pre-v0.10.1", + "AskRene-Bias-Channel.biases[].layer": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Once.autoclean.failedpays.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Bias-Channel.biases[].short_channel_id_dir": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Once.autoclean.failedpays.uncleaned": { - "added": "pre-v0.10.1", + "AskRene-Bias-Channel.description": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Once.autoclean.paidinvoices": { - "added": "pre-v0.10.1", + "AskRene-Bias-Channel.layer": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Once.autoclean.paidinvoices.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Bias-Channel.short_channel_id_dir": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Once.autoclean.paidinvoices.uncleaned": { - "added": "pre-v0.10.1", + "AskRene-Create-Channel": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Once.autoclean.succeededforwards": { - "added": "pre-v0.10.1", + "AskRene-Create-Channel.base_fee": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Once.autoclean.succeededforwards.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Create-Channel.capacity_msat": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Once.autoclean.succeededforwards.uncleaned": { - "added": "pre-v0.10.1", + "AskRene-Create-Channel.delay": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Once.autoclean.succeededpays": { - "added": "pre-v0.10.1", + "AskRene-Create-Channel.destination": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Once.autoclean.succeededpays.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Create-Channel.htlc_max": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Once.autoclean.succeededpays.uncleaned": { - "added": "pre-v0.10.1", + "AskRene-Create-Channel.htlc_min": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Once.subsystem": { - "added": "pre-v0.10.1", + "AskRene-Create-Channel.layer": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Status": { - "added": "pre-v0.10.1", + "AskRene-Create-Channel.proportional_fee": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Status.autoclean": { - "added": "pre-v0.10.1", + "AskRene-Create-Channel.short_channel_id": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Status.autoclean.expiredinvoices": { - "added": "pre-v0.10.1", + "AskRene-Create-Channel.source": { + "added": "v24.08", "deprecated": null }, - "AutoClean-Status.autoclean.expiredinvoices.age": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.expiredinvoices.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layer": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.expiredinvoices.enabled": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[]": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.failedforwards": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].biases[]": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.failedforwards.age": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].biases[].bias": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.failedforwards.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].biases[].description": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.failedforwards.enabled": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].biases[].short_channel_id_dir": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.failedpays": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].channel_updates[]": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.failedpays.age": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].channel_updates[].delay": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.failedpays.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].channel_updates[].fee_base_msat": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.failedpays.enabled": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].channel_updates[].fee_proportional_millionths": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.paidinvoices": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].channel_updates[].htlc_maximum_msat": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.paidinvoices.age": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].channel_updates[].htlc_minimum_msat": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.paidinvoices.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].constraints[]": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.paidinvoices.enabled": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].constraints[].direction": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.succeededforwards": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].constraints[].maximum_msat": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.succeededforwards.age": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].constraints[].minimum_msat": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.succeededforwards.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].constraints[].short_channel_id": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.succeededforwards.enabled": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].created_channels[]": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.succeededpays": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].created_channels[].capacity_msat": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.succeededpays.age": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].created_channels[].destination": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.succeededpays.cleaned": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].created_channels[].short_channel_id": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.autoclean.succeededpays.enabled": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].created_channels[].source": { + "added": "v24.11", "deprecated": null }, - "AutoClean-Status.subsystem": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].disabled_channels[]": { + "added": "v24.11", "deprecated": null }, - "AutoCleanInvoice": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].disabled_nodes[]": { + "added": "v24.11", "deprecated": null }, - "AutoCleanInvoice.cycle_seconds": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].layer": { + "added": "v24.11", "deprecated": null }, - "AutoCleanInvoice.enabled": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.layers[].persistent": { + "added": "v24.11", "deprecated": null }, - "AutoCleanInvoice.expired_by": { - "added": "pre-v0.10.1", + "AskRene-Create-Layer.persistent": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy": { - "added": "pre-v0.10.1", + "AskRene-Disable-Node": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[]": { - "added": "pre-v0.10.1", + "AskRene-Disable-Node.layer": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].account": { - "added": "pre-v0.10.1", + "AskRene-Disable-Node.node": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].apy_in": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].apy_in_initial": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.amount_msat": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].apy_lease": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraint": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].apy_out": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraint.direction": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].apy_out_initial": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraint.maximum_msat": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].apy_total": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraint.minimum_msat": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].apy_total_initial": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraint.short_channel_id": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].channel_start_balance_msat": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraint.timestamp": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].fees_in_msat": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraints[]": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].fees_out_msat": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraints[].layer": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].lease_fee_earned_msat": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraints[].maximum_msat": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].lease_fee_paid_msat": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraints[].minimum_msat": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].our_start_balance_msat": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraints[].short_channel_id_dir": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].pushed_in_msat": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.constraints[].timestamp": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].pushed_out_msat": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.direction": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].routed_in_msat": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.inform": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].routed_out_msat": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.layer": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].utilization_in": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.maximum_msat": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].utilization_in_initial": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.minimum_msat": { + "added": "v24.08", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].utilization_out": { - "added": "pre-v0.10.1", + "AskRene-Inform-Channel.short_channel_id": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-Inform-Channel.short_channel_id_dir": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layer": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[]": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].biases[]": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].biases[].bias": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].biases[].description": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].biases[].short_channel_id_dir": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].channel_updates[]": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].channel_updates[].cltv_expiry_delta": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].channel_updates[].enabled": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].channel_updates[].fee_base_msat": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].channel_updates[].fee_proportional_millionths": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].channel_updates[].htlc_maximum_msat": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].channel_updates[].htlc_minimum_msat": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].channel_updates[].short_channel_id_dir": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].constraints[]": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].constraints[].direction": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].constraints[].maximum_msat": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].constraints[].minimum_msat": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].constraints[].short_channel_id": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].constraints[].short_channel_id_dir": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].constraints[].timestamp": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].created_channels[]": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].created_channels[].capacity_msat": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].created_channels[].delay": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].created_channels[].destination": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].created_channels[].fee_base_msat": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].created_channels[].fee_proportional_millionths": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].created_channels[].htlc_maximum_msat": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].created_channels[].htlc_minimum_msat": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].created_channels[].short_channel_id": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].created_channels[].source": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].disabled_channels[]": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListLayers.layers[].disabled_nodes[]": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].layer": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-ListLayers.layers[].persistent": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListReservations": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListReservations.reservations[]": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListReservations.reservations[].age_in_seconds": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListReservations.reservations[].amount_msat": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListReservations.reservations[].command_id": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-ListReservations.reservations[].short_channel_id_dir": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Remove-Layer": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Remove-Layer.layer": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Reserve": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-Reserve.path[]": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-Reserve.path[].amount_msat": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-Reserve.path[].direction": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-Reserve.path[].short_channel_id": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-Reserve.path[].short_channel_id_dir": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Unreserve": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-Unreserve.path[]": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-Unreserve.path[].amount_msat": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-Unreserve.path[].direction": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-Unreserve.path[].short_channel_id": { + "added": "v24.08", + "deprecated": null + }, + "AskRene-Unreserve.path[].short_channel_id_dir": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Update-Channel": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Update-Channel.cltv_expiry_delta": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Update-Channel.enabled": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Update-Channel.fee_base_msat": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Update-Channel.fee_proportional_millionths": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Update-Channel.htlc_maximum_msat": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Update-Channel.htlc_minimum_msat": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Update-Channel.layer": { + "added": "v24.11", + "deprecated": null + }, + "AskRene-Update-Channel.short_channel_id_dir": { + "added": "v24.11", + "deprecated": null + }, + "AutoClean-Once": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.age": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.expiredinvoices": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.expiredinvoices.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.expiredinvoices.uncleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.failedforwards": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.failedforwards.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.failedforwards.uncleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.failedpays": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.failedpays.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.failedpays.uncleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.paidinvoices": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.paidinvoices.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.paidinvoices.uncleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.succeededforwards": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.succeededforwards.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.succeededforwards.uncleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.succeededpays": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.succeededpays.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.autoclean.succeededpays.uncleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Once.subsystem": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.expiredinvoices": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.expiredinvoices.age": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.expiredinvoices.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.expiredinvoices.enabled": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.failedforwards": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.failedforwards.age": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.failedforwards.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.failedforwards.enabled": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.failedpays": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.failedpays.age": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.failedpays.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.failedpays.enabled": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.paidinvoices": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.paidinvoices.age": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.paidinvoices.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.paidinvoices.enabled": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.succeededforwards": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.succeededforwards.age": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.succeededforwards.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.succeededforwards.enabled": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.succeededpays": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.succeededpays.age": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.succeededpays.cleaned": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.autoclean.succeededpays.enabled": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoClean-Status.subsystem": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoCleanInvoice": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoCleanInvoice.cycle_seconds": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoCleanInvoice.enabled": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "AutoCleanInvoice.expired_by": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[]": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].account": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].apy_in": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].apy_in_initial": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].apy_lease": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].apy_out": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].apy_out_initial": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].apy_total": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].apy_total_initial": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].channel_start_balance_msat": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].fees_in_msat": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].fees_out_msat": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].lease_fee_earned_msat": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].lease_fee_paid_msat": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].our_start_balance_msat": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].pushed_in_msat": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].pushed_out_msat": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].routed_in_msat": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].routed_out_msat": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].utilization_in": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].utilization_in_initial": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].utilization_out": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.channels_apy[].utilization_out_initial": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.end_time": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-ChannelsApy.start_time": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-DumpIncomeCsv": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-DumpIncomeCsv.consolidate_fees": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-DumpIncomeCsv.csv_file": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-DumpIncomeCsv.csv_format": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-DumpIncomeCsv.end_time": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-DumpIncomeCsv.start_time": { + "added": "pre-v0.10.1", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.description": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.outpoint": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[]": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].account": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].blockheight": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].credit_msat": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].currency": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].debit_msat": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].description": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].fees_msat": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].is_rebalance": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].origin": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].outpoint": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].part_id": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].payment_id": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].tag": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].timestamp": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].txid": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByOutpoint.updated[].type": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByPaymentId": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByPaymentId.description": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByPaymentId.payment_id": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByPaymentId.updated[]": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByPaymentId.updated[].account": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByPaymentId.updated[].blockheight": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByPaymentId.updated[].credit_msat": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByPaymentId.updated[].currency": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByPaymentId.updated[].debit_msat": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByPaymentId.updated[].description": { + "added": "v24.11", + "deprecated": null + }, + "Bkpr-EditDescriptionByPaymentId.updated[].fees_msat": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy.channels_apy[].utilization_out_initial": { - "added": "pre-v0.10.1", + "Bkpr-EditDescriptionByPaymentId.updated[].is_rebalance": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy.end_time": { - "added": "pre-v0.10.1", + "Bkpr-EditDescriptionByPaymentId.updated[].origin": { + "added": "v24.11", "deprecated": null }, - "Bkpr-ChannelsApy.start_time": { - "added": "pre-v0.10.1", + "Bkpr-EditDescriptionByPaymentId.updated[].outpoint": { + "added": "v24.11", "deprecated": null }, - "Bkpr-DumpIncomeCsv": { - "added": "pre-v0.10.1", + "Bkpr-EditDescriptionByPaymentId.updated[].part_id": { + "added": "v24.11", "deprecated": null }, - "Bkpr-DumpIncomeCsv.consolidate_fees": { - "added": "pre-v0.10.1", + "Bkpr-EditDescriptionByPaymentId.updated[].payment_id": { + "added": "v24.11", "deprecated": null }, - "Bkpr-DumpIncomeCsv.csv_file": { - "added": "pre-v0.10.1", + "Bkpr-EditDescriptionByPaymentId.updated[].tag": { + "added": "v24.11", "deprecated": null }, - "Bkpr-DumpIncomeCsv.csv_format": { - "added": "pre-v0.10.1", + "Bkpr-EditDescriptionByPaymentId.updated[].timestamp": { + "added": "v24.11", "deprecated": null }, - "Bkpr-DumpIncomeCsv.end_time": { - "added": "pre-v0.10.1", + "Bkpr-EditDescriptionByPaymentId.updated[].txid": { + "added": "v24.11", "deprecated": null }, - "Bkpr-DumpIncomeCsv.start_time": { - "added": "pre-v0.10.1", + "Bkpr-EditDescriptionByPaymentId.updated[].type": { + "added": "v24.11", "deprecated": null }, "Bkpr-Inspect": { @@ -5316,6 +6411,50 @@ "added": "pre-v0.10.1", "deprecated": null }, + "Dev-Splice": { + "added": "v24.11", + "deprecated": null + }, + "Dev-Splice.debug_log": { + "added": "v24.11", + "deprecated": null + }, + "Dev-Splice.dev-wetrun": { + "added": "v24.11", + "deprecated": null + }, + "Dev-Splice.dryrun": { + "added": "v24.11", + "deprecated": null + }, + "Dev-Splice.dryrun[]": { + "added": "v24.11", + "deprecated": null + }, + "Dev-Splice.force_feerate": { + "added": "v24.11", + "deprecated": null + }, + "Dev-Splice.log[]": { + "added": "v24.11", + "deprecated": null + }, + "Dev-Splice.psbt": { + "added": "v24.11", + "deprecated": null + }, + "Dev-Splice.script_or_json": { + "added": "v24.11", + "deprecated": null + }, + "Dev-Splice.tx": { + "added": "v24.11", + "deprecated": null + }, + "Dev-Splice.txid": { + "added": "v24.11", + "deprecated": null + }, "DisableInvoiceRequest": { "added": "pre-v0.10.1", "deprecated": null @@ -5392,6 +6531,50 @@ "added": "pre-v0.10.1", "deprecated": null }, + "EnableOffer": { + "added": "v24.11", + "deprecated": null + }, + "EnableOffer.active": { + "added": "v24.11", + "deprecated": null + }, + "EnableOffer.bolt12": { + "added": "v24.11", + "deprecated": null + }, + "EnableOffer.label": { + "added": "v24.11", + "deprecated": null + }, + "EnableOffer.offer_id": { + "added": "v24.11", + "deprecated": null + }, + "EnableOffer.single_use": { + "added": "v24.11", + "deprecated": null + }, + "EnableOffer.used": { + "added": "v24.11", + "deprecated": null + }, + "ExposeSecret": { + "added": "v24.11", + "deprecated": null + }, + "ExposeSecret.codex32": { + "added": "v24.11", + "deprecated": null + }, + "ExposeSecret.identifier": { + "added": "v24.11", + "deprecated": null + }, + "ExposeSecret.passphrase": { + "added": "v24.11", + "deprecated": null + }, "Feerates": { "added": "pre-v0.10.1", "deprecated": null @@ -5984,6 +7167,14 @@ "added": "pre-v0.10.1", "deprecated": null }, + "GetEmergencyRecoverData": { + "added": "v24.11", + "deprecated": null + }, + "GetEmergencyRecoverData.filedata": { + "added": "v24.11", + "deprecated": null + }, "GetLog": { "added": "pre-v0.10.1", "deprecated": null @@ -6100,6 +7291,86 @@ "added": "pre-v0.10.1", "deprecated": null }, + "GetRoutes": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.amount_msat": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.destination": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.final_cltv": { + "added": "v24.11", + "deprecated": null + }, + "GetRoutes.finalcltv": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.layers[]": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.maxfee_msat": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.probability_ppm": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.routes[]": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.routes[].amount_msat": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.routes[].final_cltv": { + "added": "v24.11", + "deprecated": null + }, + "GetRoutes.routes[].path[]": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.routes[].path[].amount_msat": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.routes[].path[].delay": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.routes[].path[].direction": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.routes[].path[].next_node_id": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.routes[].path[].short_channel_id": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.routes[].path[].short_channel_id_dir": { + "added": "v24.11", + "deprecated": null + }, + "GetRoutes.routes[].probability_ppm": { + "added": "v24.08", + "deprecated": null + }, + "GetRoutes.source": { + "added": "v24.08", + "deprecated": null + }, "Getinfo": { "added": "pre-v0.10.1", "deprecated": null @@ -6252,6 +7523,58 @@ "added": "pre-v0.10.1", "deprecated": null }, + "InjectPaymentOnion": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.amount_msat": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.cltv_expiry": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.completed_at": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.created_at": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.created_index": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.groupid": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.invstring": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.label": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.localinvreqid": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.onion": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.partid": { + "added": "v24.11", + "deprecated": null + }, + "InjectPaymentOnion.payment_hash": { + "added": "v24.11", + "deprecated": null + }, "Invoice": { "added": "pre-v0.10.1", "deprecated": null @@ -6448,6 +7771,38 @@ "added": "pre-v0.10.1", "deprecated": null }, + "ListAddresses": { + "added": "v24.11", + "deprecated": null + }, + "ListAddresses.address": { + "added": "v24.11", + "deprecated": null + }, + "ListAddresses.addresses[]": { + "added": "v24.11", + "deprecated": null + }, + "ListAddresses.addresses[].bech32": { + "added": "v24.11", + "deprecated": null + }, + "ListAddresses.addresses[].keyidx": { + "added": "v24.11", + "deprecated": null + }, + "ListAddresses.addresses[].p2tr": { + "added": "v24.11", + "deprecated": null + }, + "ListAddresses.limit": { + "added": "v24.11", + "deprecated": null + }, + "ListAddresses.start": { + "added": "v24.11", + "deprecated": null + }, "ListChannels": { "added": "pre-v0.10.1", "deprecated": null @@ -11580,6 +12935,50 @@ "added": "pre-v0.10.1", "deprecated": null }, + "Xpay": { + "added": "v24.11", + "deprecated": null + }, + "Xpay.amount_msat": { + "added": "v24.11", + "deprecated": null + }, + "Xpay.amount_sent_msat": { + "added": "v24.11", + "deprecated": null + }, + "Xpay.failed_parts": { + "added": "v24.11", + "deprecated": null + }, + "Xpay.invstring": { + "added": "v24.11", + "deprecated": null + }, + "Xpay.layers[]": { + "added": "v24.11", + "deprecated": null + }, + "Xpay.maxfee": { + "added": "v24.11", + "deprecated": null + }, + "Xpay.partial_msat": { + "added": "v24.11", + "deprecated": null + }, + "Xpay.payment_preimage": { + "added": "v24.11", + "deprecated": null + }, + "Xpay.retry_for": { + "added": "v24.11", + "deprecated": null + }, + "Xpay.successful_parts": { + "added": "v24.11", + "deprecated": null + }, "block_added": { "added": "v22.11", "deprecated": null diff --git a/cln-grpc/proto/node.proto b/cln-grpc/proto/node.proto index 5ec0e0617c32..abc06452c4b3 100644 --- a/cln-grpc/proto/node.proto +++ b/cln-grpc/proto/node.proto @@ -28,6 +28,8 @@ service Node { rpc DelInvoice(DelinvoiceRequest) returns (DelinvoiceResponse) {} rpc DevForgetChannel(DevforgetchannelRequest) returns (DevforgetchannelResponse) {} rpc EmergencyRecover(EmergencyrecoverRequest) returns (EmergencyrecoverResponse) {} + rpc GetEmergencyRecoverData(GetemergencyrecoverdataRequest) returns (GetemergencyrecoverdataResponse) {} + rpc ExposeSecret(ExposesecretRequest) returns (ExposesecretResponse) {} rpc Recover(RecoverRequest) returns (RecoverResponse) {} rpc RecoverChannel(RecoverchannelRequest) returns (RecoverchannelResponse) {} rpc Invoice(InvoiceRequest) returns (InvoiceResponse) {} @@ -62,6 +64,7 @@ service Node { rpc DelPay(DelpayRequest) returns (DelpayResponse) {} rpc DelForward(DelforwardRequest) returns (DelforwardResponse) {} rpc DisableOffer(DisableofferRequest) returns (DisableofferResponse) {} + rpc EnableOffer(EnableofferRequest) returns (EnableofferResponse) {} rpc Disconnect(DisconnectRequest) returns (DisconnectResponse) {} rpc Feerates(FeeratesRequest) returns (FeeratesResponse) {} rpc FetchInvoice(FetchinvoiceRequest) returns (FetchinvoiceResponse) {} @@ -72,6 +75,7 @@ service Node { rpc GetLog(GetlogRequest) returns (GetlogResponse) {} rpc FunderUpdate(FunderupdateRequest) returns (FunderupdateResponse) {} rpc GetRoute(GetrouteRequest) returns (GetrouteResponse) {} + rpc ListAddresses(ListaddressesRequest) returns (ListaddressesResponse) {} rpc ListForwards(ListforwardsRequest) returns (ListforwardsResponse) {} rpc ListOffers(ListoffersRequest) returns (ListoffersResponse) {} rpc ListPays(ListpaysRequest) returns (ListpaysResponse) {} @@ -99,6 +103,7 @@ service Node { rpc Splice_Init(Splice_initRequest) returns (Splice_initResponse) {} rpc Splice_Signed(Splice_signedRequest) returns (Splice_signedResponse) {} rpc Splice_Update(Splice_updateRequest) returns (Splice_updateResponse) {} + rpc DevSplice(DevspliceRequest) returns (DevspliceResponse) {} rpc UnreserveInputs(UnreserveinputsRequest) returns (UnreserveinputsResponse) {} rpc UpgradeWallet(UpgradewalletRequest) returns (UpgradewalletResponse) {} rpc WaitBlockHeight(WaitblockheightRequest) returns (WaitblockheightResponse) {} @@ -115,10 +120,27 @@ service Node { rpc BkprListAccountEvents(BkprlistaccounteventsRequest) returns (BkprlistaccounteventsResponse) {} rpc BkprListBalances(BkprlistbalancesRequest) returns (BkprlistbalancesResponse) {} rpc BkprListIncome(BkprlistincomeRequest) returns (BkprlistincomeResponse) {} + rpc BkprEditDescriptionByPaymentId(BkpreditdescriptionbypaymentidRequest) returns (BkpreditdescriptionbypaymentidResponse) {} + rpc BkprEditDescriptionByOutpoint(BkpreditdescriptionbyoutpointRequest) returns (BkpreditdescriptionbyoutpointResponse) {} rpc BlacklistRune(BlacklistruneRequest) returns (BlacklistruneResponse) {} rpc CheckRune(CheckruneRequest) returns (CheckruneResponse) {} rpc CreateRune(CreateruneRequest) returns (CreateruneResponse) {} rpc ShowRunes(ShowrunesRequest) returns (ShowrunesResponse) {} + rpc AskReneUnreserve(AskreneunreserveRequest) returns (AskreneunreserveResponse) {} + rpc AskReneListLayers(AskrenelistlayersRequest) returns (AskrenelistlayersResponse) {} + rpc AskReneCreateLayer(AskrenecreatelayerRequest) returns (AskrenecreatelayerResponse) {} + rpc AskReneRemoveLayer(AskreneremovelayerRequest) returns (AskreneremovelayerResponse) {} + rpc AskReneReserve(AskrenereserveRequest) returns (AskrenereserveResponse) {} + rpc AskReneAge(AskreneageRequest) returns (AskreneageResponse) {} + rpc GetRoutes(GetroutesRequest) returns (GetroutesResponse) {} + rpc AskReneDisableNode(AskrenedisablenodeRequest) returns (AskrenedisablenodeResponse) {} + rpc AskReneInformChannel(AskreneinformchannelRequest) returns (AskreneinformchannelResponse) {} + rpc AskReneCreateChannel(AskrenecreatechannelRequest) returns (AskrenecreatechannelResponse) {} + rpc AskReneUpdateChannel(AskreneupdatechannelRequest) returns (AskreneupdatechannelResponse) {} + rpc AskReneBiasChannel(AskrenebiaschannelRequest) returns (AskrenebiaschannelResponse) {} + rpc AskReneListReservations(AskrenelistreservationsRequest) returns (AskrenelistreservationsResponse) {} + rpc InjectPaymentOnion(InjectpaymentonionRequest) returns (InjectpaymentonionResponse) {} + rpc Xpay(XpayRequest) returns (XpayResponse) {} rpc SubscribeBlockAdded(StreamBlockAddedRequest) returns (stream BlockAddedNotification) {} rpc SubscribeChannelOpenFailed(StreamChannelOpenFailedRequest) returns (stream ChannelOpenFailedNotification) {} @@ -699,6 +721,23 @@ message EmergencyrecoverResponse { repeated bytes stubs = 1; } +message GetemergencyrecoverdataRequest { +} + +message GetemergencyrecoverdataResponse { + bytes filedata = 1; +} + +message ExposesecretRequest { + string passphrase = 1; + optional string identifier = 2; +} + +message ExposesecretResponse { + string identifier = 1; + string codex32 = 2; +} + message RecoverRequest { string hsmsecret = 1; } @@ -1803,6 +1842,19 @@ message DisableofferResponse { optional string label = 6; } +message EnableofferRequest { + bytes offer_id = 1; +} + +message EnableofferResponse { + bytes offer_id = 1; + bool active = 2; + bool single_use = 3; + string bolt12 = 4; + bool used = 5; + optional string label = 6; +} + message DisconnectRequest { bytes id = 1; optional bool force = 2; @@ -2105,6 +2157,22 @@ message GetrouteRoute { GetrouteRouteStyle style = 6; } +message ListaddressesRequest { + optional string address = 1; + optional uint64 start = 2; + optional uint32 limit = 3; +} + +message ListaddressesResponse { + repeated ListaddressesAddresses addresses = 1; +} + +message ListaddressesAddresses { + uint64 keyidx = 1; + optional string bech32 = 2; + optional string p2tr = 3; +} + message ListforwardsRequest { // ListForwards.status enum ListforwardsStatus { @@ -2692,6 +2760,22 @@ message Splice_updateResponse { optional bool signatures_secured = 3; } +message DevspliceRequest { + string script_or_json = 1; + optional bool dryrun = 2; + optional bool force_feerate = 3; + optional bool debug_log = 4; + optional bool dev_wetrun = 5; +} + +message DevspliceResponse { + repeated string dryrun = 1; + optional string psbt = 2; + optional string tx = 3; + optional string txid = 4; + repeated string log = 5; +} + message UnreserveinputsRequest { string psbt = 1; optional uint32 reserve = 2; @@ -3540,6 +3624,72 @@ message BkprlistincomeIncome_events { optional bytes payment_id = 10; } +message BkpreditdescriptionbypaymentidRequest { + string payment_id = 1; + string description = 2; +} + +message BkpreditdescriptionbypaymentidResponse { + repeated BkpreditdescriptionbypaymentidUpdated updated = 1; +} + +message BkpreditdescriptionbypaymentidUpdated { + // Bkpr-EditDescriptionByPaymentId.updated[].type + enum BkpreditdescriptionbypaymentidUpdatedType { + CHAIN = 0; + CHANNEL = 1; + } + string account = 1; + BkpreditdescriptionbypaymentidUpdatedType item_type = 2; + string tag = 3; + Amount credit_msat = 4; + Amount debit_msat = 5; + string currency = 6; + uint32 timestamp = 7; + string description = 8; + optional string outpoint = 9; + optional uint32 blockheight = 10; + optional string origin = 11; + optional bytes payment_id = 12; + optional bytes txid = 13; + optional Amount fees_msat = 14; + optional bool is_rebalance = 15; + optional uint32 part_id = 16; +} + +message BkpreditdescriptionbyoutpointRequest { + string outpoint = 1; + string description = 2; +} + +message BkpreditdescriptionbyoutpointResponse { + repeated BkpreditdescriptionbyoutpointUpdated updated = 1; +} + +message BkpreditdescriptionbyoutpointUpdated { + // Bkpr-EditDescriptionByOutpoint.updated[].type + enum BkpreditdescriptionbyoutpointUpdatedType { + CHAIN = 0; + CHANNEL = 1; + } + string account = 1; + BkpreditdescriptionbyoutpointUpdatedType item_type = 2; + string tag = 3; + Amount credit_msat = 4; + Amount debit_msat = 5; + string currency = 6; + uint32 timestamp = 7; + string description = 8; + optional string outpoint = 9; + optional uint32 blockheight = 10; + optional string origin = 11; + optional bytes payment_id = 12; + optional bytes txid = 13; + optional Amount fees_msat = 14; + optional bool is_rebalance = 15; + optional uint32 part_id = 16; +} + message BlacklistruneRequest { optional uint64 start = 1; optional uint64 end = 2; @@ -3607,6 +3757,297 @@ message ShowrunesRunesRestrictionsAlternatives { string english = 4; } +message AskreneunreserveRequest { + repeated AskreneunreservePath path = 1; +} + +message AskreneunreserveResponse { +} + +message AskreneunreservePath { + Amount amount_msat = 3; + optional string short_channel_id_dir = 4; +} + +message AskrenelistlayersRequest { + optional string layer = 1; +} + +message AskrenelistlayersResponse { + repeated AskrenelistlayersLayers layers = 1; +} + +message AskrenelistlayersLayers { + string layer = 1; + repeated bytes disabled_nodes = 2; + repeated AskrenelistlayersLayersCreated_channels created_channels = 3; + repeated AskrenelistlayersLayersConstraints constraints = 4; + optional bool persistent = 5; + repeated string disabled_channels = 6; + repeated AskrenelistlayersLayersChannel_updates channel_updates = 7; + repeated AskrenelistlayersLayersBiases biases = 8; +} + +message AskrenelistlayersLayersCreated_channels { + bytes source = 1; + bytes destination = 2; + string short_channel_id = 3; + Amount capacity_msat = 4; +} + +message AskrenelistlayersLayersChannel_updates { + string short_channel_id_dir = 1; + optional bool enabled = 2; + optional Amount htlc_minimum_msat = 3; + optional Amount htlc_maximum_msat = 4; + optional Amount fee_base_msat = 5; + optional uint32 fee_proportional_millionths = 6; + optional uint32 cltv_expiry_delta = 7; +} + +message AskrenelistlayersLayersConstraints { + optional Amount maximum_msat = 3; + optional Amount minimum_msat = 4; + optional string short_channel_id_dir = 5; + optional uint64 timestamp = 6; +} + +message AskrenelistlayersLayersBiases { + string short_channel_id_dir = 1; + sint64 bias = 2; + optional string description = 3; +} + +message AskrenecreatelayerRequest { + string layer = 1; + optional bool persistent = 2; +} + +message AskrenecreatelayerResponse { + repeated AskrenecreatelayerLayers layers = 1; +} + +message AskrenecreatelayerLayers { + string layer = 1; + bool persistent = 2; + repeated bytes disabled_nodes = 3; + repeated string disabled_channels = 4; + repeated AskrenecreatelayerLayersCreated_channels created_channels = 5; + repeated AskrenecreatelayerLayersChannel_updates channel_updates = 6; + repeated AskrenecreatelayerLayersConstraints constraints = 7; + repeated AskrenecreatelayerLayersBiases biases = 8; +} + +message AskrenecreatelayerLayersCreated_channels { + bytes source = 1; + bytes destination = 2; + string short_channel_id = 3; + Amount capacity_msat = 4; +} + +message AskrenecreatelayerLayersChannel_updates { + optional Amount htlc_minimum_msat = 1; + optional Amount htlc_maximum_msat = 2; + optional Amount fee_base_msat = 3; + optional uint32 fee_proportional_millionths = 4; + optional uint32 delay = 5; +} + +message AskrenecreatelayerLayersConstraints { + string short_channel_id = 1; + uint32 direction = 2; + optional Amount maximum_msat = 3; + optional Amount minimum_msat = 4; +} + +message AskrenecreatelayerLayersBiases { + string short_channel_id_dir = 1; + sint64 bias = 2; + optional string description = 3; +} + +message AskreneremovelayerRequest { + string layer = 1; +} + +message AskreneremovelayerResponse { +} + +message AskrenereserveRequest { + repeated AskrenereservePath path = 1; +} + +message AskrenereserveResponse { +} + +message AskrenereservePath { + Amount amount_msat = 3; + optional string short_channel_id_dir = 4; +} + +message AskreneageRequest { + string layer = 1; + uint64 cutoff = 2; +} + +message AskreneageResponse { + string layer = 1; + uint64 num_removed = 2; +} + +message GetroutesRequest { + bytes source = 1; + bytes destination = 2; + Amount amount_msat = 3; + repeated string layers = 4; + Amount maxfee_msat = 5; + optional uint32 final_cltv = 7; +} + +message GetroutesResponse { + uint64 probability_ppm = 1; + repeated GetroutesRoutes routes = 2; +} + +message GetroutesRoutes { + uint64 probability_ppm = 1; + Amount amount_msat = 2; + repeated GetroutesRoutesPath path = 3; + optional uint32 final_cltv = 4; +} + +message GetroutesRoutesPath { + Amount amount_msat = 3; + bytes next_node_id = 4; + uint32 delay = 5; + optional string short_channel_id_dir = 6; +} + +message AskrenedisablenodeRequest { + string layer = 1; + bytes node = 2; +} + +message AskrenedisablenodeResponse { +} + +message AskreneinformchannelRequest { + // AskRene-Inform-Channel.inform + enum AskreneinformchannelInform { + CONSTRAINED = 0; + UNCONSTRAINED = 1; + SUCCEEDED = 2; + } + string layer = 1; + optional string short_channel_id_dir = 6; + optional Amount amount_msat = 7; + optional AskreneinformchannelInform inform = 8; +} + +message AskreneinformchannelResponse { + repeated AskreneinformchannelConstraints constraints = 2; +} + +message AskreneinformchannelConstraints { + string short_channel_id_dir = 1; + string layer = 2; + uint64 timestamp = 3; + optional Amount maximum_msat = 4; + optional Amount minimum_msat = 5; +} + +message AskrenecreatechannelRequest { + string layer = 1; + bytes source = 2; + bytes destination = 3; + string short_channel_id = 4; + Amount capacity_msat = 5; +} + +message AskrenecreatechannelResponse { +} + +message AskreneupdatechannelRequest { + string layer = 1; + string short_channel_id_dir = 2; + optional bool enabled = 3; + optional Amount htlc_minimum_msat = 4; + optional Amount htlc_maximum_msat = 5; + optional Amount fee_base_msat = 6; + optional uint32 fee_proportional_millionths = 7; + optional uint32 cltv_expiry_delta = 8; +} + +message AskreneupdatechannelResponse { +} + +message AskrenebiaschannelRequest { + string layer = 1; + string short_channel_id_dir = 2; + sint64 bias = 3; + optional string description = 4; +} + +message AskrenebiaschannelResponse { + repeated AskrenebiaschannelBiases biases = 1; +} + +message AskrenebiaschannelBiases { + string layer = 1; + string short_channel_id_dir = 2; + sint64 bias = 3; + optional string description = 4; +} + +message AskrenelistreservationsRequest { +} + +message AskrenelistreservationsResponse { + repeated AskrenelistreservationsReservations reservations = 1; +} + +message AskrenelistreservationsReservations { + string short_channel_id_dir = 1; + Amount amount_msat = 2; + uint64 age_in_seconds = 3; + string command_id = 4; +} + +message InjectpaymentonionRequest { + bytes onion = 1; + bytes payment_hash = 2; + Amount amount_msat = 3; + uint32 cltv_expiry = 4; + uint64 partid = 5; + uint64 groupid = 6; + optional string label = 7; + optional string invstring = 8; + optional bytes localinvreqid = 9; +} + +message InjectpaymentonionResponse { + uint64 created_at = 1; + uint64 completed_at = 2; + uint64 created_index = 3; +} + +message XpayRequest { + string invstring = 1; + optional Amount amount_msat = 2; + optional Amount maxfee = 3; + repeated string layers = 4; + optional uint32 retry_for = 5; + optional Amount partial_msat = 6; +} + +message XpayResponse { + bytes payment_preimage = 1; + uint64 failed_parts = 2; + uint64 successful_parts = 3; + Amount amount_msat = 4; + Amount amount_sent_msat = 5; +} + message StreamBlockAddedRequest { } diff --git a/cln-grpc/src/convert.rs b/cln-grpc/src/convert.rs index 84625f97e36a..b20ed17aaee2 100644 --- a/cln-grpc/src/convert.rs +++ b/cln-grpc/src/convert.rs @@ -601,6 +601,25 @@ impl From for pb::EmergencyrecoverResponse } } +#[allow(unused_variables)] +impl From for pb::GetemergencyrecoverdataResponse { + fn from(c: responses::GetemergencyrecoverdataResponse) -> Self { + Self { + filedata: hex::decode(&c.filedata).unwrap(), // Rule #2 for type hex + } + } +} + +#[allow(unused_variables)] +impl From for pb::ExposesecretResponse { + fn from(c: responses::ExposesecretResponse) -> Self { + Self { + codex32: c.codex32, // Rule #2 for type string + identifier: c.identifier, // Rule #2 for type string + } + } +} + #[allow(unused_variables)] impl From for pb::RecoverResponse { fn from(c: responses::RecoverResponse) -> Self { @@ -1694,6 +1713,20 @@ impl From for pb::DisableofferResponse { } } +#[allow(unused_variables)] +impl From for pb::EnableofferResponse { + fn from(c: responses::EnableofferResponse) -> Self { + Self { + active: c.active, // Rule #2 for type boolean + bolt12: c.bolt12, // Rule #2 for type string + label: c.label, // Rule #2 for type string? + offer_id: >::as_ref(&c.offer_id).to_vec(), // Rule #2 for type hash + single_use: c.single_use, // Rule #2 for type boolean + used: c.used, // Rule #2 for type boolean + } + } +} + #[allow(unused_variables)] impl From for pb::DisconnectResponse { fn from(c: responses::DisconnectResponse) -> Self { @@ -1980,6 +2013,27 @@ impl From for pb::GetrouteResponse { } } +#[allow(unused_variables)] +impl From for pb::ListaddressesAddresses { + fn from(c: responses::ListaddressesAddresses) -> Self { + Self { + bech32: c.bech32, // Rule #2 for type string? + keyidx: c.keyidx, // Rule #2 for type u64 + p2tr: c.p2tr, // Rule #2 for type string? + } + } +} + +#[allow(unused_variables)] +impl From for pb::ListaddressesResponse { + fn from(c: responses::ListaddressesResponse) -> Self { + Self { + // Field: ListAddresses.addresses[] + addresses: c.addresses.into_iter().map(|i| i.into()).collect(), // Rule #3 for type ListaddressesAddresses + } + } +} + #[allow(unused_variables)] impl From for pb::ListforwardsForwards { fn from(c: responses::ListforwardsForwards) -> Self { @@ -2531,6 +2585,21 @@ impl From for pb::SpliceUpdateResponse { } } +#[allow(unused_variables)] +impl From for pb::DevspliceResponse { + fn from(c: responses::DevspliceResponse) -> Self { + Self { + // Field: Dev-Splice.dryrun[] + dryrun: c.dryrun.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + // Field: Dev-Splice.log[] + log: c.log.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + psbt: c.psbt, // Rule #2 for type string? + tx: c.tx, // Rule #2 for type string? + txid: c.txid, // Rule #2 for type string? + } + } +} + #[allow(unused_variables)] impl From for pb::UnreserveinputsReservations { fn from(c: responses::UnreserveinputsReservations) -> Self { @@ -3845,6 +3914,74 @@ impl From for pb::BkprlistincomeResponse { } } +#[allow(unused_variables)] +impl From for pb::BkpreditdescriptionbypaymentidUpdated { + fn from(c: responses::BkpreditdescriptionbypaymentidUpdated) -> Self { + Self { + account: c.account, // Rule #2 for type string + blockheight: c.blockheight, // Rule #2 for type u32? + credit_msat: Some(c.credit_msat.into()), // Rule #2 for type msat + currency: c.currency, // Rule #2 for type string + debit_msat: Some(c.debit_msat.into()), // Rule #2 for type msat + description: c.description, // Rule #2 for type string + fees_msat: c.fees_msat.map(|f| f.into()), // Rule #2 for type msat? + is_rebalance: c.is_rebalance, // Rule #2 for type boolean? + origin: c.origin, // Rule #2 for type string? + outpoint: c.outpoint, // Rule #2 for type string? + part_id: c.part_id, // Rule #2 for type u32? + payment_id: c.payment_id.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + tag: c.tag, // Rule #2 for type string + timestamp: c.timestamp, // Rule #2 for type u32 + txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? + item_type: c.item_type as i32, + } + } +} + +#[allow(unused_variables)] +impl From for pb::BkpreditdescriptionbypaymentidResponse { + fn from(c: responses::BkpreditdescriptionbypaymentidResponse) -> Self { + Self { + // Field: Bkpr-EditDescriptionByPaymentId.updated[] + updated: c.updated.into_iter().map(|i| i.into()).collect(), // Rule #3 for type BkpreditdescriptionbypaymentidUpdated + } + } +} + +#[allow(unused_variables)] +impl From for pb::BkpreditdescriptionbyoutpointUpdated { + fn from(c: responses::BkpreditdescriptionbyoutpointUpdated) -> Self { + Self { + account: c.account, // Rule #2 for type string + blockheight: c.blockheight, // Rule #2 for type u32? + credit_msat: Some(c.credit_msat.into()), // Rule #2 for type msat + currency: c.currency, // Rule #2 for type string + debit_msat: Some(c.debit_msat.into()), // Rule #2 for type msat + description: c.description, // Rule #2 for type string + fees_msat: c.fees_msat.map(|f| f.into()), // Rule #2 for type msat? + is_rebalance: c.is_rebalance, // Rule #2 for type boolean? + origin: c.origin, // Rule #2 for type string? + outpoint: c.outpoint, // Rule #2 for type string? + part_id: c.part_id, // Rule #2 for type u32? + payment_id: c.payment_id.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + tag: c.tag, // Rule #2 for type string + timestamp: c.timestamp, // Rule #2 for type u32 + txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? + item_type: c.item_type as i32, + } + } +} + +#[allow(unused_variables)] +impl From for pb::BkpreditdescriptionbyoutpointResponse { + fn from(c: responses::BkpreditdescriptionbyoutpointResponse) -> Self { + Self { + // Field: Bkpr-EditDescriptionByOutpoint.updated[] + updated: c.updated.into_iter().map(|i| i.into()).collect(), // Rule #3 for type BkpreditdescriptionbyoutpointUpdated + } + } +} + #[allow(unused_variables)] impl From for pb::BlacklistruneBlacklist { fn from(c: responses::BlacklistruneBlacklist) -> Self { @@ -3936,288 +4073,635 @@ impl From for pb::ShowrunesResponse { } #[allow(unused_variables)] -impl From for pb::BlockAddedNotification { - fn from(c: notifications::BlockAddedNotification) -> Self { +impl From for pb::AskreneunreserveResponse { + fn from(c: responses::AskreneunreserveResponse) -> Self { Self { - hash: >::as_ref(&c.hash).to_vec(), // Rule #2 for type hash - height: c.height, // Rule #2 for type u32 } } } #[allow(unused_variables)] -impl From for pb::ChannelOpenFailedNotification { - fn from(c: notifications::ChannelOpenFailedNotification) -> Self { +impl From for pb::AskrenelistlayersLayersBiases { + fn from(c: responses::AskrenelistlayersLayersBiases) -> Self { Self { - channel_id: >::as_ref(&c.channel_id).to_vec(), // Rule #2 for type hash + bias: c.bias, // Rule #2 for type integer + description: c.description, // Rule #2 for type string? + short_channel_id_dir: c.short_channel_id_dir.to_string(), // Rule #2 for type short_channel_id_dir } } } #[allow(unused_variables)] -impl From for pb::ChannelOpenedNotification { - fn from(c: notifications::ChannelOpenedNotification) -> Self { +impl From for pb::AskrenelistlayersLayersChannelUpdates { + fn from(c: responses::AskrenelistlayersLayersChannel_updates) -> Self { Self { - channel_ready: c.channel_ready, // Rule #2 for type boolean - funding_msat: Some(c.funding_msat.into()), // Rule #2 for type msat - funding_txid: hex::decode(&c.funding_txid).unwrap(), // Rule #2 for type txid - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey + cltv_expiry_delta: c.cltv_expiry_delta.map(|v| v.into()), // Rule #2 for type u16? + enabled: c.enabled, // Rule #2 for type boolean? + fee_base_msat: c.fee_base_msat.map(|f| f.into()), // Rule #2 for type msat? + fee_proportional_millionths: c.fee_proportional_millionths, // Rule #2 for type u32? + htlc_maximum_msat: c.htlc_maximum_msat.map(|f| f.into()), // Rule #2 for type msat? + htlc_minimum_msat: c.htlc_minimum_msat.map(|f| f.into()), // Rule #2 for type msat? + short_channel_id_dir: c.short_channel_id_dir.to_string(), // Rule #2 for type short_channel_id_dir } } } #[allow(unused_variables)] -impl From for pb::PeerConnectAddress { - fn from(c: notifications::ConnectAddress) -> Self { +impl From for pb::AskrenelistlayersLayersConstraints { + fn from(c: responses::AskrenelistlayersLayersConstraints) -> Self { Self { - address: c.address, // Rule #2 for type string? - port: c.port.map(|v| v.into()), // Rule #2 for type u16? - socket: c.socket, // Rule #2 for type string? - item_type: c.item_type as i32, + maximum_msat: c.maximum_msat.map(|f| f.into()), // Rule #2 for type msat? + minimum_msat: c.minimum_msat.map(|f| f.into()), // Rule #2 for type msat? + short_channel_id_dir: c.short_channel_id_dir.map(|v| v.to_string()), // Rule #2 for type short_channel_id_dir? + timestamp: c.timestamp, // Rule #2 for type u64? } } } #[allow(unused_variables)] -impl From for pb::PeerConnectNotification { - fn from(c: notifications::ConnectNotification) -> Self { +impl From for pb::AskrenelistlayersLayersCreatedChannels { + fn from(c: responses::AskrenelistlayersLayersCreated_channels) -> Self { Self { - address: Some(c.address.into()), - direction: c.direction as i32, - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey + capacity_msat: Some(c.capacity_msat.into()), // Rule #2 for type msat + destination: c.destination.serialize().to_vec(), // Rule #2 for type pubkey + short_channel_id: c.short_channel_id.to_string(), // Rule #2 for type short_channel_id + source: c.source.serialize().to_vec(), // Rule #2 for type pubkey } } } #[allow(unused_variables)] -impl From for pb::CustomMsgNotification { - fn from(c: notifications::CustomMsgNotification) -> Self { +impl From for pb::AskrenelistlayersLayers { + fn from(c: responses::AskrenelistlayersLayers) -> Self { Self { - payload: hex::decode(&c.payload).unwrap(), // Rule #2 for type hex - peer_id: c.peer_id.serialize().to_vec(), // Rule #2 for type pubkey + // Field: AskRene-ListLayers.layers[].biases[] + biases: c.biases.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + // Field: AskRene-ListLayers.layers[].channel_updates[] + channel_updates: c.channel_updates.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + // Field: AskRene-ListLayers.layers[].constraints[] + constraints: c.constraints.into_iter().map(|i| i.into()).collect(), // Rule #3 for type AskrenelistlayersLayersConstraints + // Field: AskRene-ListLayers.layers[].created_channels[] + created_channels: c.created_channels.into_iter().map(|i| i.into()).collect(), // Rule #3 for type AskrenelistlayersLayersCreated_channels + // Field: AskRene-ListLayers.layers[].disabled_channels[] + disabled_channels: c.disabled_channels.map(|arr| arr.into_iter().map(|i| i.to_string()).collect()).unwrap_or(vec![]), // Rule #3 + // Field: AskRene-ListLayers.layers[].disabled_nodes[] + disabled_nodes: c.disabled_nodes.into_iter().map(|i| i.serialize().to_vec()).collect(), // Rule #3 for type pubkey + layer: c.layer, // Rule #2 for type string + persistent: c.persistent, // Rule #2 for type boolean? } } } #[allow(unused_variables)] -impl From for pb::GetinfoRequest { - fn from(c: requests::GetinfoRequest) -> Self { +impl From for pb::AskrenelistlayersResponse { + fn from(c: responses::AskrenelistlayersResponse) -> Self { Self { + // Field: AskRene-ListLayers.layers[] + layers: c.layers.into_iter().map(|i| i.into()).collect(), // Rule #3 for type AskrenelistlayersLayers } } } #[allow(unused_variables)] -impl From for pb::ListpeersRequest { - fn from(c: requests::ListpeersRequest) -> Self { +impl From for pb::AskrenecreatelayerLayersBiases { + fn from(c: responses::AskrenecreatelayerLayersBiases) -> Self { Self { - id: c.id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - level: c.level.map(|v| v as i32), + bias: c.bias, // Rule #2 for type integer + description: c.description, // Rule #2 for type string? + short_channel_id_dir: c.short_channel_id_dir.to_string(), // Rule #2 for type short_channel_id_dir } } } #[allow(unused_variables)] -impl From for pb::ListfundsRequest { - fn from(c: requests::ListfundsRequest) -> Self { +impl From for pb::AskrenecreatelayerLayersChannelUpdates { + fn from(c: responses::AskrenecreatelayerLayersChannel_updates) -> Self { Self { - spent: c.spent, // Rule #2 for type boolean? + delay: c.delay.map(|v| v.into()), // Rule #2 for type u16? + fee_base_msat: c.fee_base_msat.map(|f| f.into()), // Rule #2 for type msat? + fee_proportional_millionths: c.fee_proportional_millionths, // Rule #2 for type u32? + htlc_maximum_msat: c.htlc_maximum_msat.map(|f| f.into()), // Rule #2 for type msat? + htlc_minimum_msat: c.htlc_minimum_msat.map(|f| f.into()), // Rule #2 for type msat? } } } #[allow(unused_variables)] -impl From for pb::SendpayRoute { - fn from(c: requests::SendpayRoute) -> Self { +impl From for pb::AskrenecreatelayerLayersConstraints { + fn from(c: responses::AskrenecreatelayerLayersConstraints) -> Self { Self { - amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat - channel: c.channel.to_string(), // Rule #2 for type short_channel_id - delay: c.delay, // Rule #2 for type u32 - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey + direction: c.direction, // Rule #2 for type u32 + maximum_msat: c.maximum_msat.map(|f| f.into()), // Rule #2 for type msat? + minimum_msat: c.minimum_msat.map(|f| f.into()), // Rule #2 for type msat? + short_channel_id: c.short_channel_id.to_string(), // Rule #2 for type short_channel_id } } } #[allow(unused_variables)] -impl From for pb::SendpayRequest { - fn from(c: requests::SendpayRequest) -> Self { +impl From for pb::AskrenecreatelayerLayersCreatedChannels { + fn from(c: responses::AskrenecreatelayerLayersCreated_channels) -> Self { Self { - amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? - bolt11: c.bolt11, // Rule #2 for type string? - description: c.description, // Rule #2 for type string? - groupid: c.groupid, // Rule #2 for type u64? - label: c.label, // Rule #2 for type string? - localinvreqid: c.localinvreqid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - partid: c.partid, // Rule #2 for type u64? - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - payment_metadata: c.payment_metadata.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - payment_secret: c.payment_secret.map(|v| v.to_vec()), // Rule #2 for type secret? - // Field: SendPay.route[] - route: c.route.into_iter().map(|i| i.into()).collect(), // Rule #3 for type SendpayRoute + capacity_msat: Some(c.capacity_msat.into()), // Rule #2 for type msat + destination: c.destination.serialize().to_vec(), // Rule #2 for type pubkey + short_channel_id: c.short_channel_id.to_string(), // Rule #2 for type short_channel_id + source: c.source.serialize().to_vec(), // Rule #2 for type pubkey } } } #[allow(unused_variables)] -impl From for pb::ListchannelsRequest { - fn from(c: requests::ListchannelsRequest) -> Self { +impl From for pb::AskrenecreatelayerLayers { + fn from(c: responses::AskrenecreatelayerLayers) -> Self { Self { - destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - short_channel_id: c.short_channel_id.map(|v| v.to_string()), // Rule #2 for type short_channel_id? - source: c.source.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + // Field: AskRene-Create-Layer.layers[].biases[] + biases: c.biases.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + // Field: AskRene-Create-Layer.layers[].channel_updates[] + channel_updates: c.channel_updates.into_iter().map(|i| i.into()).collect(), // Rule #3 for type AskrenecreatelayerLayersChannel_updates + // Field: AskRene-Create-Layer.layers[].constraints[] + constraints: c.constraints.into_iter().map(|i| i.into()).collect(), // Rule #3 for type AskrenecreatelayerLayersConstraints + // Field: AskRene-Create-Layer.layers[].created_channels[] + created_channels: c.created_channels.into_iter().map(|i| i.into()).collect(), // Rule #3 for type AskrenecreatelayerLayersCreated_channels + // Field: AskRene-Create-Layer.layers[].disabled_channels[] + disabled_channels: c.disabled_channels.map(|arr| arr.into_iter().map(|i| i.to_string()).collect()).unwrap_or(vec![]), // Rule #3 + // Field: AskRene-Create-Layer.layers[].disabled_nodes[] + disabled_nodes: c.disabled_nodes.into_iter().map(|i| i.serialize().to_vec()).collect(), // Rule #3 for type pubkey + layer: c.layer, // Rule #2 for type string + persistent: c.persistent, // Rule #2 for type boolean } } } #[allow(unused_variables)] -impl From for pb::AddgossipRequest { - fn from(c: requests::AddgossipRequest) -> Self { +impl From for pb::AskrenecreatelayerResponse { + fn from(c: responses::AskrenecreatelayerResponse) -> Self { Self { - message: hex::decode(&c.message).unwrap(), // Rule #2 for type hex + // Field: AskRene-Create-Layer.layers[] + layers: c.layers.into_iter().map(|i| i.into()).collect(), // Rule #3 for type AskrenecreatelayerLayers } } } #[allow(unused_variables)] -impl From for pb::AddpsbtoutputRequest { - fn from(c: requests::AddpsbtoutputRequest) -> Self { +impl From for pb::AskreneremovelayerResponse { + fn from(c: responses::AskreneremovelayerResponse) -> Self { Self { - destination: c.destination, // Rule #2 for type string? - initialpsbt: c.initialpsbt, // Rule #2 for type string? - locktime: c.locktime, // Rule #2 for type u32? - satoshi: Some(c.satoshi.into()), // Rule #2 for type sat } } } #[allow(unused_variables)] -impl From for pb::AutocleanonceRequest { - fn from(c: requests::AutocleanonceRequest) -> Self { +impl From for pb::AskrenereserveResponse { + fn from(c: responses::AskrenereserveResponse) -> Self { Self { - age: c.age, // Rule #2 for type u64 - subsystem: c.subsystem as i32, } } } #[allow(unused_variables)] -impl From for pb::AutocleanstatusRequest { - fn from(c: requests::AutocleanstatusRequest) -> Self { +impl From for pb::AskreneageResponse { + fn from(c: responses::AskreneageResponse) -> Self { Self { - subsystem: c.subsystem.map(|v| v as i32), + layer: c.layer, // Rule #2 for type string + num_removed: c.num_removed, // Rule #2 for type u64 } } } #[allow(unused_variables)] -impl From for pb::CheckmessageRequest { - fn from(c: requests::CheckmessageRequest) -> Self { +impl From for pb::GetroutesRoutesPath { + fn from(c: responses::GetroutesRoutesPath) -> Self { Self { - message: c.message, // Rule #2 for type string - pubkey: c.pubkey.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - zbase: c.zbase, // Rule #2 for type string + amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + delay: c.delay, // Rule #2 for type u32 + next_node_id: c.next_node_id.serialize().to_vec(), // Rule #2 for type pubkey + short_channel_id_dir: c.short_channel_id_dir.map(|v| v.to_string()), // Rule #2 for type short_channel_id_dir? } } } #[allow(unused_variables)] -impl From for pb::CloseRequest { - fn from(c: requests::CloseRequest) -> Self { +impl From for pb::GetroutesRoutes { + fn from(c: responses::GetroutesRoutes) -> Self { Self { - destination: c.destination, // Rule #2 for type string? - fee_negotiation_step: c.fee_negotiation_step, // Rule #2 for type string? - // Field: Close.feerange[] - feerange: c.feerange.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - force_lease_closed: c.force_lease_closed, // Rule #2 for type boolean? - id: c.id, // Rule #2 for type string - unilateraltimeout: c.unilateraltimeout, // Rule #2 for type u32? - wrong_funding: c.wrong_funding.map(|o|o.into()), // Rule #2 for type outpoint? + amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + final_cltv: c.final_cltv, // Rule #2 for type u32? + // Field: GetRoutes.routes[].path[] + path: c.path.into_iter().map(|i| i.into()).collect(), // Rule #3 for type GetroutesRoutesPath + probability_ppm: c.probability_ppm, // Rule #2 for type u64 } } } #[allow(unused_variables)] -impl From for pb::ConnectRequest { - fn from(c: requests::ConnectRequest) -> Self { +impl From for pb::GetroutesResponse { + fn from(c: responses::GetroutesResponse) -> Self { Self { - host: c.host, // Rule #2 for type string? - id: c.id, // Rule #2 for type string - port: c.port.map(|v| v.into()), // Rule #2 for type u16? + probability_ppm: c.probability_ppm, // Rule #2 for type u64 + // Field: GetRoutes.routes[] + routes: c.routes.into_iter().map(|i| i.into()).collect(), // Rule #3 for type GetroutesRoutes } } } #[allow(unused_variables)] -impl From for pb::CreateinvoiceRequest { - fn from(c: requests::CreateinvoiceRequest) -> Self { +impl From for pb::AskrenedisablenodeResponse { + fn from(c: responses::AskrenedisablenodeResponse) -> 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 } } } #[allow(unused_variables)] -impl From for pb::DatastoreRequest { - fn from(c: requests::DatastoreRequest) -> Self { +impl From for pb::AskreneinformchannelConstraints { + fn from(c: responses::AskreneinformchannelConstraints) -> Self { Self { - generation: c.generation, // Rule #2 for type u64? - hex: c.hex.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - // Field: Datastore.key - key: c.key.into_iter().map(|i| i.into()).collect(), // Rule #3 for type string - mode: c.mode.map(|v| v as i32), - string: c.string, // Rule #2 for type string? + layer: c.layer, // Rule #2 for type string + maximum_msat: c.maximum_msat.map(|f| f.into()), // Rule #2 for type msat? + minimum_msat: c.minimum_msat.map(|f| f.into()), // Rule #2 for type msat? + short_channel_id_dir: c.short_channel_id_dir.to_string(), // Rule #2 for type short_channel_id_dir + timestamp: c.timestamp, // Rule #2 for type u64 } } } #[allow(unused_variables)] -impl From for pb::DatastoreusageRequest { - fn from(c: requests::DatastoreusageRequest) -> Self { +impl From for pb::AskreneinformchannelResponse { + fn from(c: responses::AskreneinformchannelResponse) -> Self { Self { - // Field: DatastoreUsage.key - key: c.key.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + // Field: AskRene-Inform-Channel.constraints[] + constraints: c.constraints.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 } } } #[allow(unused_variables)] -impl From for pb::CreateonionHops { - fn from(c: requests::CreateonionHops) -> Self { +impl From for pb::AskrenecreatechannelResponse { + fn from(c: responses::AskrenecreatechannelResponse) -> Self { Self { - payload: hex::decode(&c.payload).unwrap(), // Rule #2 for type hex - pubkey: c.pubkey.serialize().to_vec(), // Rule #2 for type pubkey } } } #[allow(unused_variables)] -impl From for pb::CreateonionRequest { - fn from(c: requests::CreateonionRequest) -> Self { +impl From for pb::AskreneupdatechannelResponse { + fn from(c: responses::AskreneupdatechannelResponse) -> Self { Self { - assocdata: hex::decode(&c.assocdata).unwrap(), // Rule #2 for type hex - // Field: CreateOnion.hops[] - hops: c.hops.into_iter().map(|i| i.into()).collect(), // Rule #3 for type CreateonionHops - onion_size: c.onion_size.map(|v| v.into()), // Rule #2 for type u16? - session_key: c.session_key.map(|v| v.to_vec()), // Rule #2 for type secret? } } } #[allow(unused_variables)] -impl From for pb::DeldatastoreRequest { - fn from(c: requests::DeldatastoreRequest) -> Self { +impl From for pb::AskrenebiaschannelBiases { + fn from(c: responses::AskrenebiaschannelBiases) -> Self { Self { - generation: c.generation, // Rule #2 for type u64? - // Field: DelDatastore.key - key: c.key.into_iter().map(|i| i.into()).collect(), // Rule #3 for type string + bias: c.bias, // Rule #2 for type integer + description: c.description, // Rule #2 for type string? + layer: c.layer, // Rule #2 for type string + short_channel_id_dir: c.short_channel_id_dir.to_string(), // Rule #2 for type short_channel_id_dir } } } #[allow(unused_variables)] -impl From for pb::DelinvoiceRequest { +impl From for pb::AskrenebiaschannelResponse { + fn from(c: responses::AskrenebiaschannelResponse) -> Self { + Self { + // Field: AskRene-Bias-Channel.biases[] + biases: c.biases.into_iter().map(|i| i.into()).collect(), // Rule #3 for type AskrenebiaschannelBiases + } + } +} + +#[allow(unused_variables)] +impl From for pb::AskrenelistreservationsReservations { + fn from(c: responses::AskrenelistreservationsReservations) -> Self { + Self { + age_in_seconds: c.age_in_seconds, // Rule #2 for type u64 + amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + command_id: c.command_id, // Rule #2 for type string + short_channel_id_dir: c.short_channel_id_dir.to_string(), // Rule #2 for type short_channel_id_dir + } + } +} + +#[allow(unused_variables)] +impl From for pb::AskrenelistreservationsResponse { + fn from(c: responses::AskrenelistreservationsResponse) -> Self { + Self { + // Field: AskRene-ListReservations.reservations[] + reservations: c.reservations.into_iter().map(|i| i.into()).collect(), // Rule #3 for type AskrenelistreservationsReservations + } + } +} + +#[allow(unused_variables)] +impl From for pb::InjectpaymentonionResponse { + fn from(c: responses::InjectpaymentonionResponse) -> Self { + Self { + completed_at: c.completed_at, // Rule #2 for type u64 + created_at: c.created_at, // Rule #2 for type u64 + created_index: c.created_index, // Rule #2 for type u64 + } + } +} + +#[allow(unused_variables)] +impl From for pb::XpayResponse { + fn from(c: responses::XpayResponse) -> Self { + Self { + amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + amount_sent_msat: Some(c.amount_sent_msat.into()), // Rule #2 for type msat + failed_parts: c.failed_parts, // Rule #2 for type u64 + payment_preimage: c.payment_preimage.to_vec(), // Rule #2 for type secret + successful_parts: c.successful_parts, // Rule #2 for type u64 + } + } +} + +#[allow(unused_variables)] +impl From for pb::BlockAddedNotification { + fn from(c: notifications::BlockAddedNotification) -> Self { + Self { + hash: >::as_ref(&c.hash).to_vec(), // Rule #2 for type hash + height: c.height, // Rule #2 for type u32 + } + } +} + +#[allow(unused_variables)] +impl From for pb::ChannelOpenFailedNotification { + fn from(c: notifications::ChannelOpenFailedNotification) -> Self { + Self { + channel_id: >::as_ref(&c.channel_id).to_vec(), // Rule #2 for type hash + } + } +} + +#[allow(unused_variables)] +impl From for pb::ChannelOpenedNotification { + fn from(c: notifications::ChannelOpenedNotification) -> Self { + Self { + channel_ready: c.channel_ready, // Rule #2 for type boolean + funding_msat: Some(c.funding_msat.into()), // Rule #2 for type msat + funding_txid: hex::decode(&c.funding_txid).unwrap(), // Rule #2 for type txid + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey + } + } +} + +#[allow(unused_variables)] +impl From for pb::PeerConnectAddress { + fn from(c: notifications::ConnectAddress) -> Self { + Self { + address: c.address, // Rule #2 for type string? + port: c.port.map(|v| v.into()), // Rule #2 for type u16? + socket: c.socket, // Rule #2 for type string? + item_type: c.item_type as i32, + } + } +} + +#[allow(unused_variables)] +impl From for pb::PeerConnectNotification { + fn from(c: notifications::ConnectNotification) -> Self { + Self { + address: Some(c.address.into()), + direction: c.direction as i32, + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey + } + } +} + +#[allow(unused_variables)] +impl From for pb::CustomMsgNotification { + fn from(c: notifications::CustomMsgNotification) -> Self { + Self { + payload: hex::decode(&c.payload).unwrap(), // Rule #2 for type hex + peer_id: c.peer_id.serialize().to_vec(), // Rule #2 for type pubkey + } + } +} + +#[allow(unused_variables)] +impl From for pb::GetinfoRequest { + fn from(c: requests::GetinfoRequest) -> Self { + Self { + } + } +} + +#[allow(unused_variables)] +impl From for pb::ListpeersRequest { + fn from(c: requests::ListpeersRequest) -> Self { + Self { + id: c.id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + level: c.level.map(|v| v as i32), + } + } +} + +#[allow(unused_variables)] +impl From for pb::ListfundsRequest { + fn from(c: requests::ListfundsRequest) -> Self { + Self { + spent: c.spent, // Rule #2 for type boolean? + } + } +} + +#[allow(unused_variables)] +impl From for pb::SendpayRoute { + fn from(c: requests::SendpayRoute) -> Self { + Self { + amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + channel: c.channel.to_string(), // Rule #2 for type short_channel_id + delay: c.delay, // Rule #2 for type u32 + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey + } + } +} + +#[allow(unused_variables)] +impl From for pb::SendpayRequest { + fn from(c: requests::SendpayRequest) -> Self { + Self { + amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + bolt11: c.bolt11, // Rule #2 for type string? + description: c.description, // Rule #2 for type string? + groupid: c.groupid, // Rule #2 for type u64? + label: c.label, // Rule #2 for type string? + localinvreqid: c.localinvreqid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + partid: c.partid, // Rule #2 for type u64? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash + payment_metadata: c.payment_metadata.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + payment_secret: c.payment_secret.map(|v| v.to_vec()), // Rule #2 for type secret? + // Field: SendPay.route[] + route: c.route.into_iter().map(|i| i.into()).collect(), // Rule #3 for type SendpayRoute + } + } +} + +#[allow(unused_variables)] +impl From for pb::ListchannelsRequest { + fn from(c: requests::ListchannelsRequest) -> Self { + Self { + destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + short_channel_id: c.short_channel_id.map(|v| v.to_string()), // Rule #2 for type short_channel_id? + source: c.source.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + } + } +} + +#[allow(unused_variables)] +impl From for pb::AddgossipRequest { + fn from(c: requests::AddgossipRequest) -> Self { + Self { + message: hex::decode(&c.message).unwrap(), // Rule #2 for type hex + } + } +} + +#[allow(unused_variables)] +impl From for pb::AddpsbtoutputRequest { + fn from(c: requests::AddpsbtoutputRequest) -> Self { + Self { + destination: c.destination, // Rule #2 for type string? + initialpsbt: c.initialpsbt, // Rule #2 for type string? + locktime: c.locktime, // Rule #2 for type u32? + satoshi: Some(c.satoshi.into()), // Rule #2 for type sat + } + } +} + +#[allow(unused_variables)] +impl From for pb::AutocleanonceRequest { + fn from(c: requests::AutocleanonceRequest) -> Self { + Self { + age: c.age, // Rule #2 for type u64 + subsystem: c.subsystem as i32, + } + } +} + +#[allow(unused_variables)] +impl From for pb::AutocleanstatusRequest { + fn from(c: requests::AutocleanstatusRequest) -> Self { + Self { + subsystem: c.subsystem.map(|v| v as i32), + } + } +} + +#[allow(unused_variables)] +impl From for pb::CheckmessageRequest { + fn from(c: requests::CheckmessageRequest) -> Self { + Self { + message: c.message, // Rule #2 for type string + pubkey: c.pubkey.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + zbase: c.zbase, // Rule #2 for type string + } + } +} + +#[allow(unused_variables)] +impl From for pb::CloseRequest { + fn from(c: requests::CloseRequest) -> Self { + Self { + destination: c.destination, // Rule #2 for type string? + fee_negotiation_step: c.fee_negotiation_step, // Rule #2 for type string? + // Field: Close.feerange[] + feerange: c.feerange.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + force_lease_closed: c.force_lease_closed, // Rule #2 for type boolean? + id: c.id, // Rule #2 for type string + unilateraltimeout: c.unilateraltimeout, // Rule #2 for type u32? + wrong_funding: c.wrong_funding.map(|o|o.into()), // Rule #2 for type outpoint? + } + } +} + +#[allow(unused_variables)] +impl From for pb::ConnectRequest { + fn from(c: requests::ConnectRequest) -> Self { + Self { + host: c.host, // Rule #2 for type string? + id: c.id, // Rule #2 for type string + port: c.port.map(|v| v.into()), // Rule #2 for type u16? + } + } +} + +#[allow(unused_variables)] +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 + } + } +} + +#[allow(unused_variables)] +impl From for pb::DatastoreRequest { + fn from(c: requests::DatastoreRequest) -> Self { + Self { + generation: c.generation, // Rule #2 for type u64? + hex: c.hex.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + // Field: Datastore.key + key: c.key.into_iter().map(|i| i.into()).collect(), // Rule #3 for type string + mode: c.mode.map(|v| v as i32), + string: c.string, // Rule #2 for type string? + } + } +} + +#[allow(unused_variables)] +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 + } + } +} + +#[allow(unused_variables)] +impl From for pb::CreateonionHops { + fn from(c: requests::CreateonionHops) -> Self { + Self { + payload: hex::decode(&c.payload).unwrap(), // Rule #2 for type hex + pubkey: c.pubkey.serialize().to_vec(), // Rule #2 for type pubkey + } + } +} + +#[allow(unused_variables)] +impl From for pb::CreateonionRequest { + fn from(c: requests::CreateonionRequest) -> Self { + Self { + assocdata: hex::decode(&c.assocdata).unwrap(), // Rule #2 for type hex + // Field: CreateOnion.hops[] + hops: c.hops.into_iter().map(|i| i.into()).collect(), // Rule #3 for type CreateonionHops + onion_size: c.onion_size.map(|v| v.into()), // Rule #2 for type u16? + session_key: c.session_key.map(|v| v.to_vec()), // Rule #2 for type secret? + } + } +} + +#[allow(unused_variables)] +impl From for pb::DeldatastoreRequest { + fn from(c: requests::DeldatastoreRequest) -> Self { + Self { + generation: c.generation, // Rule #2 for type u64? + // Field: DelDatastore.key + key: c.key.into_iter().map(|i| i.into()).collect(), // Rule #3 for type string + } + } +} + +#[allow(unused_variables)] +impl From for pb::DelinvoiceRequest { fn from(c: requests::DelinvoiceRequest) -> Self { Self { desconly: c.desconly, // Rule #2 for type boolean? @@ -4247,6 +4731,24 @@ impl From for pb::EmergencyrecoverRequest { } } +#[allow(unused_variables)] +impl From for pb::GetemergencyrecoverdataRequest { + fn from(c: requests::GetemergencyrecoverdataRequest) -> Self { + Self { + } + } +} + +#[allow(unused_variables)] +impl From for pb::ExposesecretRequest { + fn from(c: requests::ExposesecretRequest) -> Self { + Self { + identifier: c.identifier, // Rule #2 for type string? + passphrase: c.passphrase, // Rule #2 for type string + } + } +} + #[allow(unused_variables)] impl From for pb::RecoverRequest { fn from(c: requests::RecoverRequest) -> Self { @@ -4669,6 +5171,15 @@ impl From for pb::DisableofferRequest { } } +#[allow(unused_variables)] +impl From for pb::EnableofferRequest { + fn from(c: requests::EnableofferRequest) -> Self { + Self { + offer_id: >::as_ref(&c.offer_id).to_vec(), // Rule #2 for type hash + } + } +} + #[allow(unused_variables)] impl From for pb::DisconnectRequest { fn from(c: requests::DisconnectRequest) -> Self { @@ -4815,6 +5326,17 @@ impl From for pb::GetrouteRequest { } } +#[allow(unused_variables)] +impl From for pb::ListaddressesRequest { + fn from(c: requests::ListaddressesRequest) -> Self { + Self { + address: c.address, // Rule #2 for type string? + limit: c.limit, // Rule #2 for type u32? + start: c.start, // Rule #2 for type u64? + } + } +} + #[allow(unused_variables)] impl From for pb::ListforwardsRequest { fn from(c: requests::ListforwardsRequest) -> Self { @@ -5161,6 +5683,19 @@ impl From for pb::SpliceUpdateRequest { } } +#[allow(unused_variables)] +impl From for pb::DevspliceRequest { + fn from(c: requests::DevspliceRequest) -> Self { + Self { + debug_log: c.debug_log, // Rule #2 for type boolean? + dev_wetrun: c.dev_wetrun, // Rule #2 for type boolean? + dryrun: c.dryrun, // Rule #2 for type boolean? + force_feerate: c.force_feerate, // Rule #2 for type boolean? + script_or_json: c.script_or_json, // Rule #2 for type string + } + } +} + #[allow(unused_variables)] impl From for pb::UnreserveinputsRequest { fn from(c: requests::UnreserveinputsRequest) -> Self { @@ -5203,159 +5738,375 @@ impl From for pb::WaitRequest { } #[allow(unused_variables)] -impl From for pb::ListconfigsRequest { - fn from(c: requests::ListconfigsRequest) -> Self { +impl From for pb::ListconfigsRequest { + fn from(c: requests::ListconfigsRequest) -> Self { + Self { + config: c.config, // Rule #2 for type string? + } + } +} + +#[allow(unused_variables)] +impl From for pb::StopRequest { + fn from(c: requests::StopRequest) -> Self { + Self { + } + } +} + +#[allow(unused_variables)] +impl From for pb::HelpRequest { + fn from(c: requests::HelpRequest) -> Self { + Self { + command: c.command, // Rule #2 for type string? + } + } +} + +#[allow(unused_variables)] +impl From for pb::PreapprovekeysendRequest { + fn from(c: requests::PreapprovekeysendRequest) -> Self { + Self { + amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + destination: c.destination.serialize().to_vec(), // Rule #2 for type pubkey + payment_hash: hex::decode(&c.payment_hash).unwrap(), // Rule #2 for type hex + } + } +} + +#[allow(unused_variables)] +impl From for pb::PreapproveinvoiceRequest { + fn from(c: requests::PreapproveinvoiceRequest) -> Self { + Self { + bolt11: c.bolt11, // Rule #2 for type string + } + } +} + +#[allow(unused_variables)] +impl From for pb::StaticbackupRequest { + fn from(c: requests::StaticbackupRequest) -> Self { + Self { + } + } +} + +#[allow(unused_variables)] +impl From for pb::BkprchannelsapyRequest { + fn from(c: requests::BkprchannelsapyRequest) -> Self { + Self { + end_time: c.end_time, // Rule #2 for type u64? + start_time: c.start_time, // Rule #2 for type u64? + } + } +} + +#[allow(unused_variables)] +impl From for pb::BkprdumpincomecsvRequest { + fn from(c: requests::BkprdumpincomecsvRequest) -> Self { + Self { + consolidate_fees: c.consolidate_fees, // Rule #2 for type boolean? + csv_file: c.csv_file, // Rule #2 for type string? + csv_format: c.csv_format, // Rule #2 for type string + end_time: c.end_time, // Rule #2 for type u64? + start_time: c.start_time, // Rule #2 for type u64? + } + } +} + +#[allow(unused_variables)] +impl From for pb::BkprinspectRequest { + fn from(c: requests::BkprinspectRequest) -> Self { + Self { + account: c.account, // Rule #2 for type string + } + } +} + +#[allow(unused_variables)] +impl From for pb::BkprlistaccounteventsRequest { + fn from(c: requests::BkprlistaccounteventsRequest) -> Self { + Self { + account: c.account, // Rule #2 for type string? + payment_id: c.payment_id, // Rule #2 for type string? + } + } +} + +#[allow(unused_variables)] +impl From for pb::BkprlistbalancesRequest { + fn from(c: requests::BkprlistbalancesRequest) -> Self { + Self { + } + } +} + +#[allow(unused_variables)] +impl From for pb::BkprlistincomeRequest { + fn from(c: requests::BkprlistincomeRequest) -> Self { + Self { + consolidate_fees: c.consolidate_fees, // Rule #2 for type boolean? + end_time: c.end_time, // Rule #2 for type u32? + start_time: c.start_time, // Rule #2 for type u32? + } + } +} + +#[allow(unused_variables)] +impl From for pb::BkpreditdescriptionbypaymentidRequest { + fn from(c: requests::BkpreditdescriptionbypaymentidRequest) -> Self { + Self { + description: c.description, // Rule #2 for type string + payment_id: c.payment_id, // Rule #2 for type string + } + } +} + +#[allow(unused_variables)] +impl From for pb::BkpreditdescriptionbyoutpointRequest { + fn from(c: requests::BkpreditdescriptionbyoutpointRequest) -> Self { + Self { + description: c.description, // Rule #2 for type string + outpoint: c.outpoint, // Rule #2 for type string + } + } +} + +#[allow(unused_variables)] +impl From for pb::BlacklistruneRequest { + fn from(c: requests::BlacklistruneRequest) -> Self { + Self { + end: c.end, // Rule #2 for type u64? + start: c.start, // Rule #2 for type u64? + } + } +} + +#[allow(unused_variables)] +impl From for pb::CheckruneRequest { + fn from(c: requests::CheckruneRequest) -> Self { + Self { + method: c.method, // Rule #2 for type string? + nodeid: c.nodeid, // Rule #2 for type string? + // Field: CheckRune.params + params: c.params.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + rune: c.rune, // Rule #2 for type string + } + } +} + +#[allow(unused_variables)] +impl From for pb::CreateruneRequest { + fn from(c: requests::CreateruneRequest) -> Self { + Self { + // Field: CreateRune.restrictions + restrictions: c.restrictions.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + rune: c.rune, // Rule #2 for type string? + } + } +} + +#[allow(unused_variables)] +impl From for pb::ShowrunesRequest { + fn from(c: requests::ShowrunesRequest) -> Self { + Self { + rune: c.rune, // Rule #2 for type string? + } + } +} + +#[allow(unused_variables)] +impl From for pb::AskreneunreservePath { + fn from(c: requests::AskreneunreservePath) -> Self { + Self { + amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + short_channel_id_dir: c.short_channel_id_dir.map(|v| v.to_string()), // Rule #2 for type short_channel_id_dir? + } + } +} + +#[allow(unused_variables)] +impl From for pb::AskreneunreserveRequest { + fn from(c: requests::AskreneunreserveRequest) -> Self { Self { - config: c.config, // Rule #2 for type string? + // Field: AskRene-Unreserve.path[] + path: c.path.into_iter().map(|i| i.into()).collect(), // Rule #3 for type AskreneunreservePath } } } #[allow(unused_variables)] -impl From for pb::StopRequest { - fn from(c: requests::StopRequest) -> Self { +impl From for pb::AskrenelistlayersRequest { + fn from(c: requests::AskrenelistlayersRequest) -> Self { Self { + layer: c.layer, // Rule #2 for type string? } } } #[allow(unused_variables)] -impl From for pb::HelpRequest { - fn from(c: requests::HelpRequest) -> Self { +impl From for pb::AskrenecreatelayerRequest { + fn from(c: requests::AskrenecreatelayerRequest) -> Self { Self { - command: c.command, // Rule #2 for type string? + layer: c.layer, // Rule #2 for type string + persistent: c.persistent, // Rule #2 for type boolean? } } } #[allow(unused_variables)] -impl From for pb::PreapprovekeysendRequest { - fn from(c: requests::PreapprovekeysendRequest) -> Self { +impl From for pb::AskreneremovelayerRequest { + fn from(c: requests::AskreneremovelayerRequest) -> Self { Self { - amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat - destination: c.destination.serialize().to_vec(), // Rule #2 for type pubkey - payment_hash: hex::decode(&c.payment_hash).unwrap(), // Rule #2 for type hex + layer: c.layer, // Rule #2 for type string } } } #[allow(unused_variables)] -impl From for pb::PreapproveinvoiceRequest { - fn from(c: requests::PreapproveinvoiceRequest) -> Self { +impl From for pb::AskrenereservePath { + fn from(c: requests::AskrenereservePath) -> Self { Self { - bolt11: c.bolt11, // Rule #2 for type string + amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + short_channel_id_dir: c.short_channel_id_dir.map(|v| v.to_string()), // Rule #2 for type short_channel_id_dir? } } } #[allow(unused_variables)] -impl From for pb::StaticbackupRequest { - fn from(c: requests::StaticbackupRequest) -> Self { +impl From for pb::AskrenereserveRequest { + fn from(c: requests::AskrenereserveRequest) -> Self { Self { + // Field: AskRene-Reserve.path[] + path: c.path.into_iter().map(|i| i.into()).collect(), // Rule #3 for type AskrenereservePath } } } #[allow(unused_variables)] -impl From for pb::BkprchannelsapyRequest { - fn from(c: requests::BkprchannelsapyRequest) -> Self { +impl From for pb::AskreneageRequest { + fn from(c: requests::AskreneageRequest) -> Self { Self { - end_time: c.end_time, // Rule #2 for type u64? - start_time: c.start_time, // Rule #2 for type u64? + cutoff: c.cutoff, // Rule #2 for type u64 + layer: c.layer, // Rule #2 for type string } } } #[allow(unused_variables)] -impl From for pb::BkprdumpincomecsvRequest { - fn from(c: requests::BkprdumpincomecsvRequest) -> Self { +impl From for pb::GetroutesRequest { + fn from(c: requests::GetroutesRequest) -> Self { Self { - consolidate_fees: c.consolidate_fees, // Rule #2 for type boolean? - csv_file: c.csv_file, // Rule #2 for type string? - csv_format: c.csv_format, // Rule #2 for type string - end_time: c.end_time, // Rule #2 for type u64? - start_time: c.start_time, // Rule #2 for type u64? + amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + destination: c.destination.serialize().to_vec(), // Rule #2 for type pubkey + final_cltv: c.final_cltv, // Rule #2 for type u32? + // Field: GetRoutes.layers[] + layers: c.layers.into_iter().map(|i| i.into()).collect(), // Rule #3 for type string + maxfee_msat: Some(c.maxfee_msat.into()), // Rule #2 for type msat + source: c.source.serialize().to_vec(), // Rule #2 for type pubkey } } } #[allow(unused_variables)] -impl From for pb::BkprinspectRequest { - fn from(c: requests::BkprinspectRequest) -> Self { +impl From for pb::AskrenedisablenodeRequest { + fn from(c: requests::AskrenedisablenodeRequest) -> Self { Self { - account: c.account, // Rule #2 for type string + layer: c.layer, // Rule #2 for type string + node: c.node.serialize().to_vec(), // Rule #2 for type pubkey } } } #[allow(unused_variables)] -impl From for pb::BkprlistaccounteventsRequest { - fn from(c: requests::BkprlistaccounteventsRequest) -> Self { +impl From for pb::AskreneinformchannelRequest { + fn from(c: requests::AskreneinformchannelRequest) -> Self { Self { - account: c.account, // Rule #2 for type string? - payment_id: c.payment_id, // Rule #2 for type string? + amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + inform: c.inform.map(|v| v as i32), + layer: c.layer, // Rule #2 for type string + short_channel_id_dir: c.short_channel_id_dir.map(|v| v.to_string()), // Rule #2 for type short_channel_id_dir? } } } #[allow(unused_variables)] -impl From for pb::BkprlistbalancesRequest { - fn from(c: requests::BkprlistbalancesRequest) -> Self { +impl From for pb::AskrenecreatechannelRequest { + fn from(c: requests::AskrenecreatechannelRequest) -> Self { Self { + capacity_msat: Some(c.capacity_msat.into()), // Rule #2 for type msat + destination: c.destination.serialize().to_vec(), // Rule #2 for type pubkey + layer: c.layer, // Rule #2 for type string + short_channel_id: c.short_channel_id.to_string(), // Rule #2 for type short_channel_id + source: c.source.serialize().to_vec(), // Rule #2 for type pubkey } } } #[allow(unused_variables)] -impl From for pb::BkprlistincomeRequest { - fn from(c: requests::BkprlistincomeRequest) -> Self { +impl From for pb::AskreneupdatechannelRequest { + fn from(c: requests::AskreneupdatechannelRequest) -> Self { Self { - consolidate_fees: c.consolidate_fees, // Rule #2 for type boolean? - end_time: c.end_time, // Rule #2 for type u32? - start_time: c.start_time, // Rule #2 for type u32? + cltv_expiry_delta: c.cltv_expiry_delta.map(|v| v.into()), // Rule #2 for type u16? + enabled: c.enabled, // Rule #2 for type boolean? + fee_base_msat: c.fee_base_msat.map(|f| f.into()), // Rule #2 for type msat? + fee_proportional_millionths: c.fee_proportional_millionths, // Rule #2 for type u32? + htlc_maximum_msat: c.htlc_maximum_msat.map(|f| f.into()), // Rule #2 for type msat? + htlc_minimum_msat: c.htlc_minimum_msat.map(|f| f.into()), // Rule #2 for type msat? + layer: c.layer, // Rule #2 for type string + short_channel_id_dir: c.short_channel_id_dir.to_string(), // Rule #2 for type short_channel_id_dir } } } #[allow(unused_variables)] -impl From for pb::BlacklistruneRequest { - fn from(c: requests::BlacklistruneRequest) -> Self { +impl From for pb::AskrenebiaschannelRequest { + fn from(c: requests::AskrenebiaschannelRequest) -> Self { Self { - end: c.end, // Rule #2 for type u64? - start: c.start, // Rule #2 for type u64? + bias: c.bias, // Rule #2 for type integer + description: c.description, // Rule #2 for type string? + layer: c.layer, // Rule #2 for type string + short_channel_id_dir: c.short_channel_id_dir.to_string(), // Rule #2 for type short_channel_id_dir } } } #[allow(unused_variables)] -impl From for pb::CheckruneRequest { - fn from(c: requests::CheckruneRequest) -> Self { +impl From for pb::AskrenelistreservationsRequest { + fn from(c: requests::AskrenelistreservationsRequest) -> Self { Self { - method: c.method, // Rule #2 for type string? - nodeid: c.nodeid, // Rule #2 for type string? - // Field: CheckRune.params - params: c.params.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - rune: c.rune, // Rule #2 for type string } } } #[allow(unused_variables)] -impl From for pb::CreateruneRequest { - fn from(c: requests::CreateruneRequest) -> Self { +impl From for pb::InjectpaymentonionRequest { + fn from(c: requests::InjectpaymentonionRequest) -> Self { Self { - // Field: CreateRune.restrictions - restrictions: c.restrictions.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - rune: c.rune, // Rule #2 for type string? + amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + cltv_expiry: c.cltv_expiry.into(), // Rule #2 for type u16 + groupid: c.groupid, // Rule #2 for type u64 + invstring: c.invstring, // Rule #2 for type string? + label: c.label, // Rule #2 for type string? + localinvreqid: c.localinvreqid.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? + onion: hex::decode(&c.onion).unwrap(), // Rule #2 for type hex + partid: c.partid, // Rule #2 for type u64 + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash } } } #[allow(unused_variables)] -impl From for pb::ShowrunesRequest { - fn from(c: requests::ShowrunesRequest) -> Self { +impl From for pb::XpayRequest { + fn from(c: requests::XpayRequest) -> Self { Self { - rune: c.rune, // Rule #2 for type string? + amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + invstring: c.invstring, // Rule #2 for type string + // Field: Xpay.layers[] + layers: c.layers.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + maxfee: c.maxfee.map(|f| f.into()), // Rule #2 for type msat? + partial_msat: c.partial_msat.map(|f| f.into()), // Rule #2 for type msat? + retry_for: c.retry_for, // Rule #2 for type u32? } } } @@ -5643,6 +6394,24 @@ impl From for requests::EmergencyrecoverRequest { } } +#[allow(unused_variables)] +impl From for requests::GetemergencyrecoverdataRequest { + fn from(c: pb::GetemergencyrecoverdataRequest) -> Self { + Self { + } + } +} + +#[allow(unused_variables)] +impl From for requests::ExposesecretRequest { + fn from(c: pb::ExposesecretRequest) -> Self { + Self { + identifier: c.identifier, // Rule #1 for type string? + passphrase: c.passphrase, // Rule #1 for type string + } + } +} + #[allow(unused_variables)] impl From for requests::RecoverRequest { fn from(c: pb::RecoverRequest) -> Self { @@ -6054,6 +6823,15 @@ impl From for requests::DisableofferRequest { } } +#[allow(unused_variables)] +impl From for requests::EnableofferRequest { + fn from(c: pb::EnableofferRequest) -> Self { + Self { + offer_id: Sha256::from_slice(&c.offer_id).unwrap(), // Rule #1 for type hash + } + } +} + #[allow(unused_variables)] impl From for requests::DisconnectRequest { fn from(c: pb::DisconnectRequest) -> Self { @@ -6196,6 +6974,17 @@ impl From for requests::GetrouteRequest { } } +#[allow(unused_variables)] +impl From for requests::ListaddressesRequest { + fn from(c: pb::ListaddressesRequest) -> Self { + Self { + address: c.address, // Rule #1 for type string? + limit: c.limit, // Rule #1 for type u32? + start: c.start, // Rule #1 for type u64? + } + } +} + #[allow(unused_variables)] impl From for requests::ListforwardsRequest { fn from(c: pb::ListforwardsRequest) -> Self { @@ -6535,6 +7324,19 @@ impl From for requests::Splice_updateRequest { } } +#[allow(unused_variables)] +impl From for requests::DevspliceRequest { + fn from(c: pb::DevspliceRequest) -> Self { + Self { + debug_log: c.debug_log, // Rule #1 for type boolean? + dev_wetrun: c.dev_wetrun, // Rule #1 for type boolean? + dryrun: c.dryrun, // Rule #1 for type boolean? + force_feerate: c.force_feerate, // Rule #1 for type boolean? + script_or_json: c.script_or_json, // Rule #1 for type string + } + } +} + #[allow(unused_variables)] impl From for requests::UnreserveinputsRequest { fn from(c: pb::UnreserveinputsRequest) -> Self { @@ -6691,6 +7493,26 @@ impl From for requests::BkprlistincomeRequest { } } +#[allow(unused_variables)] +impl From for requests::BkpreditdescriptionbypaymentidRequest { + fn from(c: pb::BkpreditdescriptionbypaymentidRequest) -> Self { + Self { + description: c.description, // Rule #1 for type string + payment_id: c.payment_id, // Rule #1 for type string + } + } +} + +#[allow(unused_variables)] +impl From for requests::BkpreditdescriptionbyoutpointRequest { + fn from(c: pb::BkpreditdescriptionbyoutpointRequest) -> Self { + Self { + description: c.description, // Rule #1 for type string + outpoint: c.outpoint, // Rule #1 for type string + } + } +} + #[allow(unused_variables)] impl From for requests::BlacklistruneRequest { fn from(c: pb::BlacklistruneRequest) -> Self { @@ -6732,6 +7554,198 @@ impl From for requests::ShowrunesRequest { } } +#[allow(unused_variables)] +impl From for requests::AskreneunreservePath { + fn from(c: pb::AskreneunreservePath) -> Self { + Self { + amount_msat: c.amount_msat.unwrap().into(), // Rule #1 for type msat + short_channel_id_dir: c.short_channel_id_dir.map(|v| cln_rpc::primitives::ShortChannelIdDir::from_str(&v).unwrap()), // Rule #1 for type short_channel_id_dir? + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskreneunreserveRequest { + fn from(c: pb::AskreneunreserveRequest) -> Self { + Self { + path: c.path.into_iter().map(|s| s.into()).collect(), // Rule #4 + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskrenelistlayersRequest { + fn from(c: pb::AskrenelistlayersRequest) -> Self { + Self { + layer: c.layer, // Rule #1 for type string? + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskrenecreatelayerRequest { + fn from(c: pb::AskrenecreatelayerRequest) -> Self { + Self { + layer: c.layer, // Rule #1 for type string + persistent: c.persistent, // Rule #1 for type boolean? + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskreneremovelayerRequest { + fn from(c: pb::AskreneremovelayerRequest) -> Self { + Self { + layer: c.layer, // Rule #1 for type string + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskrenereservePath { + fn from(c: pb::AskrenereservePath) -> Self { + Self { + amount_msat: c.amount_msat.unwrap().into(), // Rule #1 for type msat + short_channel_id_dir: c.short_channel_id_dir.map(|v| cln_rpc::primitives::ShortChannelIdDir::from_str(&v).unwrap()), // Rule #1 for type short_channel_id_dir? + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskrenereserveRequest { + fn from(c: pb::AskrenereserveRequest) -> Self { + Self { + path: c.path.into_iter().map(|s| s.into()).collect(), // Rule #4 + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskreneageRequest { + fn from(c: pb::AskreneageRequest) -> Self { + Self { + cutoff: c.cutoff, // Rule #1 for type u64 + layer: c.layer, // Rule #1 for type string + } + } +} + +#[allow(unused_variables)] +impl From for requests::GetroutesRequest { + fn from(c: pb::GetroutesRequest) -> Self { + Self { + amount_msat: c.amount_msat.unwrap().into(), // Rule #1 for type msat + destination: PublicKey::from_slice(&c.destination).unwrap(), // Rule #1 for type pubkey + final_cltv: c.final_cltv, // Rule #1 for type u32? + layers: c.layers.into_iter().map(|s| s.into()).collect(), // Rule #4 + maxfee_msat: c.maxfee_msat.unwrap().into(), // Rule #1 for type msat + source: PublicKey::from_slice(&c.source).unwrap(), // Rule #1 for type pubkey + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskrenedisablenodeRequest { + fn from(c: pb::AskrenedisablenodeRequest) -> Self { + Self { + layer: c.layer, // Rule #1 for type string + node: PublicKey::from_slice(&c.node).unwrap(), // Rule #1 for type pubkey + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskreneinformchannelRequest { + fn from(c: pb::AskreneinformchannelRequest) -> Self { + Self { + amount_msat: c.amount_msat.map(|a| a.into()), // Rule #1 for type msat? + inform: c.inform.map(|v| v.try_into().unwrap()), + layer: c.layer, // Rule #1 for type string + short_channel_id_dir: c.short_channel_id_dir.map(|v| cln_rpc::primitives::ShortChannelIdDir::from_str(&v).unwrap()), // Rule #1 for type short_channel_id_dir? + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskrenecreatechannelRequest { + fn from(c: pb::AskrenecreatechannelRequest) -> Self { + Self { + capacity_msat: c.capacity_msat.unwrap().into(), // Rule #1 for type msat + destination: PublicKey::from_slice(&c.destination).unwrap(), // Rule #1 for type pubkey + layer: c.layer, // Rule #1 for type string + short_channel_id: cln_rpc::primitives::ShortChannelId::from_str(&c.short_channel_id).unwrap(), // Rule #1 for type short_channel_id + source: PublicKey::from_slice(&c.source).unwrap(), // Rule #1 for type pubkey + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskreneupdatechannelRequest { + fn from(c: pb::AskreneupdatechannelRequest) -> Self { + Self { + cltv_expiry_delta: c.cltv_expiry_delta.map(|v| v as u16), // Rule #1 for type u16? + enabled: c.enabled, // Rule #1 for type boolean? + fee_base_msat: c.fee_base_msat.map(|a| a.into()), // Rule #1 for type msat? + fee_proportional_millionths: c.fee_proportional_millionths, // Rule #1 for type u32? + htlc_maximum_msat: c.htlc_maximum_msat.map(|a| a.into()), // Rule #1 for type msat? + htlc_minimum_msat: c.htlc_minimum_msat.map(|a| a.into()), // Rule #1 for type msat? + layer: c.layer, // Rule #1 for type string + short_channel_id_dir: cln_rpc::primitives::ShortChannelIdDir::from_str(&c.short_channel_id_dir).unwrap(), // Rule #1 for type short_channel_id_dir + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskrenebiaschannelRequest { + fn from(c: pb::AskrenebiaschannelRequest) -> Self { + Self { + bias: c.bias, // Rule #1 for type integer + description: c.description, // Rule #1 for type string? + layer: c.layer, // Rule #1 for type string + short_channel_id_dir: cln_rpc::primitives::ShortChannelIdDir::from_str(&c.short_channel_id_dir).unwrap(), // Rule #1 for type short_channel_id_dir + } + } +} + +#[allow(unused_variables)] +impl From for requests::AskrenelistreservationsRequest { + fn from(c: pb::AskrenelistreservationsRequest) -> Self { + Self { + } + } +} + +#[allow(unused_variables)] +impl From for requests::InjectpaymentonionRequest { + fn from(c: pb::InjectpaymentonionRequest) -> Self { + Self { + amount_msat: c.amount_msat.unwrap().into(), // Rule #1 for type msat + cltv_expiry: c.cltv_expiry as u16, // Rule #1 for type u16 + groupid: c.groupid, // Rule #1 for type u64 + invstring: c.invstring, // Rule #1 for type string? + label: c.label, // Rule #1 for type string? + localinvreqid: c.localinvreqid.map(|v| Sha256::from_slice(&v).unwrap()), // Rule #1 for type hash? + onion: hex::encode(&c.onion), // Rule #1 for type hex + partid: c.partid, // Rule #1 for type u64 + payment_hash: Sha256::from_slice(&c.payment_hash).unwrap(), // Rule #1 for type hash + } + } +} + +#[allow(unused_variables)] +impl From for requests::XpayRequest { + fn from(c: pb::XpayRequest) -> Self { + Self { + amount_msat: c.amount_msat.map(|a| a.into()), // Rule #1 for type msat? + invstring: c.invstring, // Rule #1 for type string + layers: Some(c.layers.into_iter().map(|s| s.into()).collect()), // Rule #4 + maxfee: c.maxfee.map(|a| a.into()), // Rule #1 for type msat? + partial_msat: c.partial_msat.map(|a| a.into()), // Rule #1 for type msat? + retry_for: c.retry_for, // Rule #1 for type u32? + } + } +} + #[allow(unused_variables)] impl From for notifications::requests::StreamBlockAddedRequest { fn from(c: pb::StreamBlockAddedRequest) -> Self { diff --git a/cln-grpc/src/server.rs b/cln-grpc/src/server.rs index 613130de9bec..3446c0338644 100644 --- a/cln-grpc/src/server.rs +++ b/cln-grpc/src/server.rs @@ -722,6 +722,70 @@ impl Node for Server } + async fn get_emergency_recover_data( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::GetemergencyrecoverdataRequest = req.into(); + debug!("Client asked for get_emergency_recover_data"); + trace!("get_emergency_recover_data request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::GetEmergencyRecoverData(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method GetEmergencyRecoverData: {:?}", e)))?; + match result { + Response::GetEmergencyRecoverData(r) => { + trace!("get_emergency_recover_data response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call GetEmergencyRecoverData", + r + ) + )), + } + + } + + async fn expose_secret( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::ExposesecretRequest = req.into(); + debug!("Client asked for expose_secret"); + trace!("expose_secret request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::ExposeSecret(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method ExposeSecret: {:?}", e)))?; + match result { + Response::ExposeSecret(r) => { + trace!("expose_secret response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call ExposeSecret", + r + ) + )), + } + + } + async fn recover( &self, request: tonic::Request, @@ -1810,6 +1874,38 @@ impl Node for Server } + async fn enable_offer( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::EnableofferRequest = req.into(); + debug!("Client asked for enable_offer"); + trace!("enable_offer request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::EnableOffer(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method EnableOffer: {:?}", e)))?; + match result { + Response::EnableOffer(r) => { + trace!("enable_offer response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call EnableOffer", + r + ) + )), + } + + } + async fn disconnect( &self, request: tonic::Request, @@ -2130,6 +2226,38 @@ impl Node for Server } + async fn list_addresses( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::ListaddressesRequest = req.into(); + debug!("Client asked for list_addresses"); + trace!("list_addresses request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::ListAddresses(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method ListAddresses: {:?}", e)))?; + match result { + Response::ListAddresses(r) => { + trace!("list_addresses response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call ListAddresses", + r + ) + )), + } + + } + async fn list_forwards( &self, request: tonic::Request, @@ -2994,6 +3122,38 @@ impl Node for Server } + async fn dev_splice( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::DevspliceRequest = req.into(); + debug!("Client asked for dev_splice"); + trace!("dev_splice request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::DevSplice(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method DevSplice: {:?}", e)))?; + match result { + Response::DevSplice(r) => { + trace!("dev_splice response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call DevSplice", + r + ) + )), + } + + } + async fn unreserve_inputs( &self, request: tonic::Request, @@ -3506,6 +3666,70 @@ impl Node for Server } + async fn bkpr_edit_description_by_payment_id( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::BkpreditdescriptionbypaymentidRequest = req.into(); + debug!("Client asked for bkpr_edit_description_by_payment_id"); + trace!("bkpr_edit_description_by_payment_id request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::BkprEditDescriptionByPaymentId(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method BkprEditDescriptionByPaymentId: {:?}", e)))?; + match result { + Response::BkprEditDescriptionByPaymentId(r) => { + trace!("bkpr_edit_description_by_payment_id response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call BkprEditDescriptionByPaymentId", + r + ) + )), + } + + } + + async fn bkpr_edit_description_by_outpoint( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::BkpreditdescriptionbyoutpointRequest = req.into(); + debug!("Client asked for bkpr_edit_description_by_outpoint"); + trace!("bkpr_edit_description_by_outpoint request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::BkprEditDescriptionByOutpoint(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method BkprEditDescriptionByOutpoint: {:?}", e)))?; + match result { + Response::BkprEditDescriptionByOutpoint(r) => { + trace!("bkpr_edit_description_by_outpoint response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call BkprEditDescriptionByOutpoint", + r + ) + )), + } + + } + async fn blacklist_rune( &self, request: tonic::Request, @@ -3634,6 +3858,486 @@ impl Node for Server } + async fn ask_rene_unreserve( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskreneunreserveRequest = req.into(); + debug!("Client asked for ask_rene_unreserve"); + trace!("ask_rene_unreserve request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneUnreserve(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneUnreserve: {:?}", e)))?; + match result { + Response::AskReneUnreserve(r) => { + trace!("ask_rene_unreserve response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneUnreserve", + r + ) + )), + } + + } + + async fn ask_rene_list_layers( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskrenelistlayersRequest = req.into(); + debug!("Client asked for ask_rene_list_layers"); + trace!("ask_rene_list_layers request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneListLayers(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneListLayers: {:?}", e)))?; + match result { + Response::AskReneListLayers(r) => { + trace!("ask_rene_list_layers response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneListLayers", + r + ) + )), + } + + } + + async fn ask_rene_create_layer( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskrenecreatelayerRequest = req.into(); + debug!("Client asked for ask_rene_create_layer"); + trace!("ask_rene_create_layer request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneCreateLayer(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneCreateLayer: {:?}", e)))?; + match result { + Response::AskReneCreateLayer(r) => { + trace!("ask_rene_create_layer response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneCreateLayer", + r + ) + )), + } + + } + + async fn ask_rene_remove_layer( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskreneremovelayerRequest = req.into(); + debug!("Client asked for ask_rene_remove_layer"); + trace!("ask_rene_remove_layer request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneRemoveLayer(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneRemoveLayer: {:?}", e)))?; + match result { + Response::AskReneRemoveLayer(r) => { + trace!("ask_rene_remove_layer response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneRemoveLayer", + r + ) + )), + } + + } + + async fn ask_rene_reserve( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskrenereserveRequest = req.into(); + debug!("Client asked for ask_rene_reserve"); + trace!("ask_rene_reserve request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneReserve(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneReserve: {:?}", e)))?; + match result { + Response::AskReneReserve(r) => { + trace!("ask_rene_reserve response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneReserve", + r + ) + )), + } + + } + + async fn ask_rene_age( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskreneageRequest = req.into(); + debug!("Client asked for ask_rene_age"); + trace!("ask_rene_age request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneAge(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneAge: {:?}", e)))?; + match result { + Response::AskReneAge(r) => { + trace!("ask_rene_age response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneAge", + r + ) + )), + } + + } + + async fn get_routes( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::GetroutesRequest = req.into(); + debug!("Client asked for get_routes"); + trace!("get_routes request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::GetRoutes(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method GetRoutes: {:?}", e)))?; + match result { + Response::GetRoutes(r) => { + trace!("get_routes response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call GetRoutes", + r + ) + )), + } + + } + + async fn ask_rene_disable_node( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskrenedisablenodeRequest = req.into(); + debug!("Client asked for ask_rene_disable_node"); + trace!("ask_rene_disable_node request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneDisableNode(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneDisableNode: {:?}", e)))?; + match result { + Response::AskReneDisableNode(r) => { + trace!("ask_rene_disable_node response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneDisableNode", + r + ) + )), + } + + } + + async fn ask_rene_inform_channel( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskreneinformchannelRequest = req.into(); + debug!("Client asked for ask_rene_inform_channel"); + trace!("ask_rene_inform_channel request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneInformChannel(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneInformChannel: {:?}", e)))?; + match result { + Response::AskReneInformChannel(r) => { + trace!("ask_rene_inform_channel response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneInformChannel", + r + ) + )), + } + + } + + async fn ask_rene_create_channel( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskrenecreatechannelRequest = req.into(); + debug!("Client asked for ask_rene_create_channel"); + trace!("ask_rene_create_channel request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneCreateChannel(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneCreateChannel: {:?}", e)))?; + match result { + Response::AskReneCreateChannel(r) => { + trace!("ask_rene_create_channel response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneCreateChannel", + r + ) + )), + } + + } + + async fn ask_rene_update_channel( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskreneupdatechannelRequest = req.into(); + debug!("Client asked for ask_rene_update_channel"); + trace!("ask_rene_update_channel request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneUpdateChannel(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneUpdateChannel: {:?}", e)))?; + match result { + Response::AskReneUpdateChannel(r) => { + trace!("ask_rene_update_channel response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneUpdateChannel", + r + ) + )), + } + + } + + async fn ask_rene_bias_channel( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskrenebiaschannelRequest = req.into(); + debug!("Client asked for ask_rene_bias_channel"); + trace!("ask_rene_bias_channel request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneBiasChannel(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneBiasChannel: {:?}", e)))?; + match result { + Response::AskReneBiasChannel(r) => { + trace!("ask_rene_bias_channel response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneBiasChannel", + r + ) + )), + } + + } + + async fn ask_rene_list_reservations( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::AskrenelistreservationsRequest = req.into(); + debug!("Client asked for ask_rene_list_reservations"); + trace!("ask_rene_list_reservations request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::AskReneListReservations(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method AskReneListReservations: {:?}", e)))?; + match result { + Response::AskReneListReservations(r) => { + trace!("ask_rene_list_reservations response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call AskReneListReservations", + r + ) + )), + } + + } + + async fn inject_payment_onion( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::InjectpaymentonionRequest = req.into(); + debug!("Client asked for inject_payment_onion"); + trace!("inject_payment_onion request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::InjectPaymentOnion(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method InjectPaymentOnion: {:?}", e)))?; + match result { + Response::InjectPaymentOnion(r) => { + trace!("inject_payment_onion response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call InjectPaymentOnion", + r + ) + )), + } + + } + + async fn xpay( + &self, + request: tonic::Request, + ) -> Result, tonic::Status> { + let req = request.into_inner(); + let req: requests::XpayRequest = req.into(); + debug!("Client asked for xpay"); + trace!("xpay request: {:?}", req); + let mut rpc = ClnRpc::new(&self.rpc_path) + .await + .map_err(|e| Status::new(Code::Internal, e.to_string()))?; + let result = rpc.call(Request::Xpay(req)) + .await + .map_err(|e| Status::new( + Code::Unknown, + format!("Error calling method Xpay: {:?}", e)))?; + match result { + Response::Xpay(r) => { + trace!("xpay response: {:?}", r); + Ok(tonic::Response::new(r.into())) + }, + r => Err(Status::new( + Code::Internal, + format!( + "Unexpected result {:?} to method call Xpay", + r + ) + )), + } + + } + type SubscribeBlockAddedStream = NotificationStream; diff --git a/cln-rpc/src/model.rs b/cln-rpc/src/model.rs index 0ec9f070615b..f19879cabc56 100644 --- a/cln-rpc/src/model.rs +++ b/cln-rpc/src/model.rs @@ -40,6 +40,8 @@ pub enum Request { #[serde(rename = "dev-forget-channel")] DevForgetChannel(requests::DevforgetchannelRequest), EmergencyRecover(requests::EmergencyrecoverRequest), + GetEmergencyRecoverData(requests::GetemergencyrecoverdataRequest), + ExposeSecret(requests::ExposesecretRequest), Recover(requests::RecoverRequest), RecoverChannel(requests::RecoverchannelRequest), Invoice(requests::InvoiceRequest), @@ -74,6 +76,7 @@ pub enum Request { DelPay(requests::DelpayRequest), DelForward(requests::DelforwardRequest), DisableOffer(requests::DisableofferRequest), + EnableOffer(requests::EnableofferRequest), Disconnect(requests::DisconnectRequest), Feerates(requests::FeeratesRequest), FetchInvoice(requests::FetchinvoiceRequest), @@ -84,6 +87,7 @@ pub enum Request { GetLog(requests::GetlogRequest), FunderUpdate(requests::FunderupdateRequest), GetRoute(requests::GetrouteRequest), + ListAddresses(requests::ListaddressesRequest), ListForwards(requests::ListforwardsRequest), ListOffers(requests::ListoffersRequest), ListPays(requests::ListpaysRequest), @@ -111,6 +115,8 @@ pub enum Request { Splice_Init(requests::Splice_initRequest), Splice_Signed(requests::Splice_signedRequest), Splice_Update(requests::Splice_updateRequest), + #[serde(rename = "dev-splice")] + DevSplice(requests::DevspliceRequest), UnreserveInputs(requests::UnreserveinputsRequest), UpgradeWallet(requests::UpgradewalletRequest), WaitBlockHeight(requests::WaitblockheightRequest), @@ -133,10 +139,41 @@ pub enum Request { BkprListBalances(requests::BkprlistbalancesRequest), #[serde(rename = "bkpr-listincome")] BkprListIncome(requests::BkprlistincomeRequest), + #[serde(rename = "bkpr-editdescriptionbypaymentid")] + BkprEditDescriptionByPaymentId(requests::BkpreditdescriptionbypaymentidRequest), + #[serde(rename = "bkpr-editdescriptionbyoutpoint")] + BkprEditDescriptionByOutpoint(requests::BkpreditdescriptionbyoutpointRequest), BlacklistRune(requests::BlacklistruneRequest), CheckRune(requests::CheckruneRequest), CreateRune(requests::CreateruneRequest), ShowRunes(requests::ShowrunesRequest), + #[serde(rename = "askrene-unreserve")] + AskReneUnreserve(requests::AskreneunreserveRequest), + #[serde(rename = "askrene-listlayers")] + AskReneListLayers(requests::AskrenelistlayersRequest), + #[serde(rename = "askrene-create-layer")] + AskReneCreateLayer(requests::AskrenecreatelayerRequest), + #[serde(rename = "askrene-remove-layer")] + AskReneRemoveLayer(requests::AskreneremovelayerRequest), + #[serde(rename = "askrene-reserve")] + AskReneReserve(requests::AskrenereserveRequest), + #[serde(rename = "askrene-age")] + AskReneAge(requests::AskreneageRequest), + GetRoutes(requests::GetroutesRequest), + #[serde(rename = "askrene-disable-node")] + AskReneDisableNode(requests::AskrenedisablenodeRequest), + #[serde(rename = "askrene-inform-channel")] + AskReneInformChannel(requests::AskreneinformchannelRequest), + #[serde(rename = "askrene-create-channel")] + AskReneCreateChannel(requests::AskrenecreatechannelRequest), + #[serde(rename = "askrene-update-channel")] + AskReneUpdateChannel(requests::AskreneupdatechannelRequest), + #[serde(rename = "askrene-bias-channel")] + AskReneBiasChannel(requests::AskrenebiaschannelRequest), + #[serde(rename = "askrene-listreservations")] + AskReneListReservations(requests::AskrenelistreservationsRequest), + InjectPaymentOnion(requests::InjectpaymentonionRequest), + Xpay(requests::XpayRequest), } #[derive(Clone, Debug, Serialize, Deserialize)] @@ -166,6 +203,8 @@ pub enum Response { #[serde(rename = "dev-forget-channel")] DevForgetChannel(responses::DevforgetchannelResponse), EmergencyRecover(responses::EmergencyrecoverResponse), + GetEmergencyRecoverData(responses::GetemergencyrecoverdataResponse), + ExposeSecret(responses::ExposesecretResponse), Recover(responses::RecoverResponse), RecoverChannel(responses::RecoverchannelResponse), Invoice(responses::InvoiceResponse), @@ -200,6 +239,7 @@ pub enum Response { DelPay(responses::DelpayResponse), DelForward(responses::DelforwardResponse), DisableOffer(responses::DisableofferResponse), + EnableOffer(responses::EnableofferResponse), Disconnect(responses::DisconnectResponse), Feerates(responses::FeeratesResponse), FetchInvoice(responses::FetchinvoiceResponse), @@ -210,6 +250,7 @@ pub enum Response { GetLog(responses::GetlogResponse), FunderUpdate(responses::FunderupdateResponse), GetRoute(responses::GetrouteResponse), + ListAddresses(responses::ListaddressesResponse), ListForwards(responses::ListforwardsResponse), ListOffers(responses::ListoffersResponse), ListPays(responses::ListpaysResponse), @@ -237,6 +278,8 @@ pub enum Response { Splice_Init(responses::Splice_initResponse), Splice_Signed(responses::Splice_signedResponse), Splice_Update(responses::Splice_updateResponse), + #[serde(rename = "dev-splice")] + DevSplice(responses::DevspliceResponse), UnreserveInputs(responses::UnreserveinputsResponse), UpgradeWallet(responses::UpgradewalletResponse), WaitBlockHeight(responses::WaitblockheightResponse), @@ -259,10 +302,41 @@ pub enum Response { BkprListBalances(responses::BkprlistbalancesResponse), #[serde(rename = "bkpr-listincome")] BkprListIncome(responses::BkprlistincomeResponse), + #[serde(rename = "bkpr-editdescriptionbypaymentid")] + BkprEditDescriptionByPaymentId(responses::BkpreditdescriptionbypaymentidResponse), + #[serde(rename = "bkpr-editdescriptionbyoutpoint")] + BkprEditDescriptionByOutpoint(responses::BkpreditdescriptionbyoutpointResponse), BlacklistRune(responses::BlacklistruneResponse), CheckRune(responses::CheckruneResponse), CreateRune(responses::CreateruneResponse), ShowRunes(responses::ShowrunesResponse), + #[serde(rename = "askrene-unreserve")] + AskReneUnreserve(responses::AskreneunreserveResponse), + #[serde(rename = "askrene-listlayers")] + AskReneListLayers(responses::AskrenelistlayersResponse), + #[serde(rename = "askrene-create-layer")] + AskReneCreateLayer(responses::AskrenecreatelayerResponse), + #[serde(rename = "askrene-remove-layer")] + AskReneRemoveLayer(responses::AskreneremovelayerResponse), + #[serde(rename = "askrene-reserve")] + AskReneReserve(responses::AskrenereserveResponse), + #[serde(rename = "askrene-age")] + AskReneAge(responses::AskreneageResponse), + GetRoutes(responses::GetroutesResponse), + #[serde(rename = "askrene-disable-node")] + AskReneDisableNode(responses::AskrenedisablenodeResponse), + #[serde(rename = "askrene-inform-channel")] + AskReneInformChannel(responses::AskreneinformchannelResponse), + #[serde(rename = "askrene-create-channel")] + AskReneCreateChannel(responses::AskrenecreatechannelResponse), + #[serde(rename = "askrene-update-channel")] + AskReneUpdateChannel(responses::AskreneupdatechannelResponse), + #[serde(rename = "askrene-bias-channel")] + AskReneBiasChannel(responses::AskrenebiaschannelResponse), + #[serde(rename = "askrene-listreservations")] + AskReneListReservations(responses::AskrenelistreservationsResponse), + InjectPaymentOnion(responses::InjectpaymentonionResponse), + Xpay(responses::XpayResponse), } @@ -938,6 +1012,51 @@ pub mod requests { } } #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct GetemergencyrecoverdataRequest { + } + + impl From for Request { + fn from(r: GetemergencyrecoverdataRequest) -> Self { + Request::GetEmergencyRecoverData(r) + } + } + + impl IntoRequest for GetemergencyrecoverdataRequest { + type Response = super::responses::GetemergencyrecoverdataResponse; + } + + impl TypedRequest for GetemergencyrecoverdataRequest { + type Response = super::responses::GetemergencyrecoverdataResponse; + + fn method(&self) -> &str { + "getemergencyrecoverdata" + } + } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ExposesecretRequest { + #[serde(skip_serializing_if = "Option::is_none")] + pub identifier: Option, + pub passphrase: String, + } + + impl From for Request { + fn from(r: ExposesecretRequest) -> Self { + Request::ExposeSecret(r) + } + } + + impl IntoRequest for ExposesecretRequest { + type Response = super::responses::ExposesecretResponse; + } + + impl TypedRequest for ExposesecretRequest { + type Response = super::responses::ExposesecretResponse; + + fn method(&self) -> &str { + "exposesecret" + } + } + #[derive(Clone, Debug, Deserialize, Serialize)] pub struct RecoverRequest { pub hsmsecret: String, } @@ -2065,6 +2184,28 @@ pub mod requests { } } #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct EnableofferRequest { + pub offer_id: Sha256, + } + + impl From for Request { + fn from(r: EnableofferRequest) -> Self { + Request::EnableOffer(r) + } + } + + impl IntoRequest for EnableofferRequest { + type Response = super::responses::EnableofferResponse; + } + + impl TypedRequest for EnableofferRequest { + type Response = super::responses::EnableofferResponse; + + fn method(&self) -> &str { + "enableoffer" + } + } + #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DisconnectRequest { #[serde(skip_serializing_if = "Option::is_none")] pub force: Option, @@ -2493,6 +2634,33 @@ pub mod requests { "getroute" } } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListaddressesRequest { + #[serde(skip_serializing_if = "Option::is_none")] + pub address: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub limit: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub start: Option, + } + + impl From for Request { + fn from(r: ListaddressesRequest) -> Self { + Request::ListAddresses(r) + } + } + + impl IntoRequest for ListaddressesRequest { + type Response = super::responses::ListaddressesResponse; + } + + impl TypedRequest for ListaddressesRequest { + type Response = super::responses::ListaddressesResponse; + + fn method(&self) -> &str { + "listaddresses" + } + } /// ['If neither *in_channel* nor *out_channel* is specified, it controls ordering.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListforwardsIndex { @@ -3388,6 +3556,37 @@ pub mod requests { } } #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DevspliceRequest { + #[serde(rename = "dev-wetrun")] + #[serde(skip_serializing_if = "Option::is_none")] + pub dev_wetrun: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub debug_log: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub dryrun: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub force_feerate: Option, + pub script_or_json: String, + } + + impl From for Request { + fn from(r: DevspliceRequest) -> Self { + Request::DevSplice(r) + } + } + + impl IntoRequest for DevspliceRequest { + type Response = super::responses::DevspliceResponse; + } + + impl TypedRequest for DevspliceRequest { + type Response = super::responses::DevspliceResponse; + + fn method(&self) -> &str { + "dev-splice" + } + } + #[derive(Clone, Debug, Deserialize, Serialize)] pub struct UnreserveinputsRequest { #[serde(skip_serializing_if = "Option::is_none")] pub reserve: Option, @@ -3837,6 +4036,52 @@ pub mod requests { } } #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkpreditdescriptionbypaymentidRequest { + pub description: String, + pub payment_id: String, + } + + impl From for Request { + fn from(r: BkpreditdescriptionbypaymentidRequest) -> Self { + Request::BkprEditDescriptionByPaymentId(r) + } + } + + impl IntoRequest for BkpreditdescriptionbypaymentidRequest { + type Response = super::responses::BkpreditdescriptionbypaymentidResponse; + } + + impl TypedRequest for BkpreditdescriptionbypaymentidRequest { + type Response = super::responses::BkpreditdescriptionbypaymentidResponse; + + fn method(&self) -> &str { + "bkpr-editdescriptionbypaymentid" + } + } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkpreditdescriptionbyoutpointRequest { + pub description: String, + pub outpoint: String, + } + + impl From for Request { + fn from(r: BkpreditdescriptionbyoutpointRequest) -> Self { + Request::BkprEditDescriptionByOutpoint(r) + } + } + + impl IntoRequest for BkpreditdescriptionbyoutpointRequest { + type Response = super::responses::BkpreditdescriptionbyoutpointResponse; + } + + impl TypedRequest for BkpreditdescriptionbyoutpointRequest { + type Response = super::responses::BkpreditdescriptionbyoutpointResponse; + + fn method(&self) -> &str { + "bkpr-editdescriptionbyoutpoint" + } + } + #[derive(Clone, Debug, Deserialize, Serialize)] pub struct BlacklistruneRequest { #[serde(skip_serializing_if = "Option::is_none")] pub end: Option, @@ -3937,767 +4182,513 @@ pub mod requests { "showrunes" } } -} - - -pub mod responses { - #[allow(unused_imports)] - use crate::primitives::*; - #[allow(unused_imports)] - use serde::{{Deserialize, Serialize}}; - use super::{TryFromResponseError, Response}; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct GetinfoOur_features { - pub channel: String, - pub init: String, - pub invoice: String, - pub node: String, + pub struct AskreneunreservePath { + #[serde(skip_serializing_if = "Option::is_none")] + pub short_channel_id_dir: Option, + pub amount_msat: Amount, } - /// ['Type of connection (until 23.08, `websocket` was also allowed).'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum GetinfoAddressType { - #[serde(rename = "dns")] - DNS = 0, - #[serde(rename = "ipv4")] - IPV4 = 1, - #[serde(rename = "ipv6")] - IPV6 = 2, - #[serde(rename = "torv2")] - TORV2 = 3, - #[serde(rename = "torv3")] - TORV3 = 4, + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskreneunreserveRequest { + pub path: Vec, } - impl TryFrom for GetinfoAddressType { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(GetinfoAddressType::DNS), - 1 => Ok(GetinfoAddressType::IPV4), - 2 => Ok(GetinfoAddressType::IPV6), - 3 => Ok(GetinfoAddressType::TORV2), - 4 => Ok(GetinfoAddressType::TORV3), - o => Err(anyhow::anyhow!("Unknown variant {} for enum GetinfoAddressType", o)), - } + impl From for Request { + fn from(r: AskreneunreserveRequest) -> Self { + Request::AskReneUnreserve(r) } } - impl ToString for GetinfoAddressType { - fn to_string(&self) -> String { - match self { - GetinfoAddressType::DNS => "DNS", - GetinfoAddressType::IPV4 => "IPV4", - GetinfoAddressType::IPV6 => "IPV6", - GetinfoAddressType::TORV2 => "TORV2", - GetinfoAddressType::TORV3 => "TORV3", - }.to_string() - } + impl IntoRequest for AskreneunreserveRequest { + type Response = super::responses::AskreneunreserveResponse; } + impl TypedRequest for AskreneunreserveRequest { + type Response = super::responses::AskreneunreserveResponse; + + fn method(&self) -> &str { + "askrene-unreserve" + } + } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct GetinfoAddress { + pub struct AskrenelistlayersRequest { #[serde(skip_serializing_if = "Option::is_none")] - pub address: Option, - // Path `Getinfo.address[].type` - #[serde(rename = "type")] - pub item_type: GetinfoAddressType, - pub port: u16, + pub layer: Option, } - /// ['Type of connection.'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum GetinfoBindingType { - #[serde(rename = "local socket")] - LOCAL_SOCKET = 0, - #[serde(rename = "ipv4")] - IPV4 = 1, - #[serde(rename = "ipv6")] - IPV6 = 2, - #[serde(rename = "torv2")] - TORV2 = 3, - #[serde(rename = "torv3")] - TORV3 = 4, - #[serde(rename = "websocket")] - WEBSOCKET = 5, + impl From for Request { + fn from(r: AskrenelistlayersRequest) -> Self { + Request::AskReneListLayers(r) + } } - impl TryFrom for GetinfoBindingType { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(GetinfoBindingType::LOCAL_SOCKET), - 1 => Ok(GetinfoBindingType::IPV4), - 2 => Ok(GetinfoBindingType::IPV6), - 3 => Ok(GetinfoBindingType::TORV2), - 4 => Ok(GetinfoBindingType::TORV3), - 5 => Ok(GetinfoBindingType::WEBSOCKET), - o => Err(anyhow::anyhow!("Unknown variant {} for enum GetinfoBindingType", o)), - } - } + impl IntoRequest for AskrenelistlayersRequest { + type Response = super::responses::AskrenelistlayersResponse; } - impl ToString for GetinfoBindingType { - fn to_string(&self) -> String { - match self { - GetinfoBindingType::LOCAL_SOCKET => "LOCAL_SOCKET", - GetinfoBindingType::WEBSOCKET => "WEBSOCKET", - GetinfoBindingType::IPV4 => "IPV4", - GetinfoBindingType::IPV6 => "IPV6", - GetinfoBindingType::TORV2 => "TORV2", - GetinfoBindingType::TORV3 => "TORV3", - }.to_string() + impl TypedRequest for AskrenelistlayersRequest { + type Response = super::responses::AskrenelistlayersResponse; + + fn method(&self) -> &str { + "askrene-listlayers" } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct GetinfoBinding { - #[serde(skip_serializing_if = "Option::is_none")] - pub address: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub port: Option, + pub struct AskrenecreatelayerRequest { #[serde(skip_serializing_if = "Option::is_none")] - pub socket: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub subtype: Option, - // Path `Getinfo.binding[].type` - #[serde(rename = "type")] - pub item_type: GetinfoBindingType, + pub persistent: Option, + pub layer: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct GetinfoResponse { - #[serde(rename = "lightning-dir")] - pub lightning_dir: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub alias: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub our_features: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_bitcoind_sync: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_lightningd_sync: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub address: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub binding: Option>, - pub blockheight: u32, - pub color: String, - pub fees_collected_msat: Amount, - pub id: PublicKey, - pub network: String, - pub num_active_channels: u32, - pub num_inactive_channels: u32, - pub num_peers: u32, - pub num_pending_channels: u32, - pub version: String, + impl From for Request { + fn from(r: AskrenecreatelayerRequest) -> Self { + Request::AskReneCreateLayer(r) + } } - impl TryFrom for GetinfoResponse { - type Error = super::TryFromResponseError; + impl IntoRequest for AskrenecreatelayerRequest { + type Response = super::responses::AskrenecreatelayerResponse; + } - fn try_from(response: Response) -> Result { - match response { - Response::Getinfo(response) => Ok(response), - _ => Err(TryFromResponseError) - } + impl TypedRequest for AskrenecreatelayerRequest { + type Response = super::responses::AskrenecreatelayerResponse; + + fn method(&self) -> &str { + "askrene-create-layer" } } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskreneremovelayerRequest { + pub layer: String, + } - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListpeersPeersLogType { - #[serde(rename = "SKIPPED")] - SKIPPED = 0, - #[serde(rename = "BROKEN")] - BROKEN = 1, - #[serde(rename = "UNUSUAL")] - UNUSUAL = 2, - #[serde(rename = "INFO")] - INFO = 3, - #[serde(rename = "DEBUG")] - DEBUG = 4, - #[serde(rename = "IO_IN")] - IO_IN = 5, - #[serde(rename = "IO_OUT")] - IO_OUT = 6, - #[serde(rename = "TRACE")] - TRACE = 7, + impl From for Request { + fn from(r: AskreneremovelayerRequest) -> Self { + Request::AskReneRemoveLayer(r) + } } - impl TryFrom for ListpeersPeersLogType { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(ListpeersPeersLogType::SKIPPED), - 1 => Ok(ListpeersPeersLogType::BROKEN), - 2 => Ok(ListpeersPeersLogType::UNUSUAL), - 3 => Ok(ListpeersPeersLogType::INFO), - 4 => Ok(ListpeersPeersLogType::DEBUG), - 5 => Ok(ListpeersPeersLogType::IO_IN), - 6 => Ok(ListpeersPeersLogType::IO_OUT), - 7 => Ok(ListpeersPeersLogType::TRACE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeersPeersLogType", o)), - } - } + impl IntoRequest for AskreneremovelayerRequest { + type Response = super::responses::AskreneremovelayerResponse; } - impl ToString for ListpeersPeersLogType { - fn to_string(&self) -> String { - match self { - ListpeersPeersLogType::SKIPPED => "SKIPPED", - ListpeersPeersLogType::BROKEN => "BROKEN", - ListpeersPeersLogType::UNUSUAL => "UNUSUAL", - ListpeersPeersLogType::INFO => "INFO", - ListpeersPeersLogType::DEBUG => "DEBUG", - ListpeersPeersLogType::TRACE => "TRACE", - ListpeersPeersLogType::IO_IN => "IO_IN", - ListpeersPeersLogType::IO_OUT => "IO_OUT", - }.to_string() + impl TypedRequest for AskreneremovelayerRequest { + type Response = super::responses::AskreneremovelayerResponse; + + fn method(&self) -> &str { + "askrene-remove-layer" } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeersPeersLog { - #[serde(skip_serializing_if = "Option::is_none")] - pub data: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub log: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub node_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub num_skipped: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub source: Option, + pub struct AskrenereservePath { #[serde(skip_serializing_if = "Option::is_none")] - pub time: Option, - // Path `ListPeers.peers[].log[].type` - #[serde(rename = "type")] - pub item_type: ListpeersPeersLogType, + pub short_channel_id_dir: Option, + pub amount_msat: Amount, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeersPeers { - #[serde(skip_serializing_if = "Option::is_none")] - pub features: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub num_channels: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub remote_addr: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub log: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub netaddr: Option>, - pub connected: bool, - pub id: PublicKey, + pub struct AskrenereserveRequest { + pub path: Vec, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeersResponse { - pub peers: Vec, + impl From for Request { + fn from(r: AskrenereserveRequest) -> Self { + Request::AskReneReserve(r) + } } - impl TryFrom for ListpeersResponse { - type Error = super::TryFromResponseError; + impl IntoRequest for AskrenereserveRequest { + type Response = super::responses::AskrenereserveResponse; + } - fn try_from(response: Response) -> Result { - match response { - Response::ListPeers(response) => Ok(response), - _ => Err(TryFromResponseError) - } + impl TypedRequest for AskrenereserveRequest { + type Response = super::responses::AskrenereserveResponse; + + fn method(&self) -> &str { + "askrene-reserve" } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListfundsChannels { - #[serde(skip_serializing_if = "Option::is_none")] - pub channel_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub short_channel_id: Option, - // Path `ListFunds.channels[].state` - pub state: ChannelState, - pub amount_msat: Amount, - pub connected: bool, - pub funding_output: u32, - pub funding_txid: String, - pub our_amount_msat: Amount, - pub peer_id: PublicKey, + pub struct AskreneageRequest { + pub cutoff: u64, + pub layer: String, } - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListfundsOutputsStatus { - #[serde(rename = "unconfirmed")] - UNCONFIRMED = 0, - #[serde(rename = "confirmed")] - CONFIRMED = 1, - #[serde(rename = "spent")] - SPENT = 2, - #[serde(rename = "immature")] - IMMATURE = 3, + impl From for Request { + fn from(r: AskreneageRequest) -> Self { + Request::AskReneAge(r) + } } - impl TryFrom for ListfundsOutputsStatus { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(ListfundsOutputsStatus::UNCONFIRMED), - 1 => Ok(ListfundsOutputsStatus::CONFIRMED), - 2 => Ok(ListfundsOutputsStatus::SPENT), - 3 => Ok(ListfundsOutputsStatus::IMMATURE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListfundsOutputsStatus", o)), - } - } + impl IntoRequest for AskreneageRequest { + type Response = super::responses::AskreneageResponse; } - impl ToString for ListfundsOutputsStatus { - fn to_string(&self) -> String { - match self { - ListfundsOutputsStatus::UNCONFIRMED => "UNCONFIRMED", - ListfundsOutputsStatus::CONFIRMED => "CONFIRMED", - ListfundsOutputsStatus::SPENT => "SPENT", - ListfundsOutputsStatus::IMMATURE => "IMMATURE", - }.to_string() + impl TypedRequest for AskreneageRequest { + type Response = super::responses::AskreneageResponse; + + fn method(&self) -> &str { + "askrene-age" } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListfundsOutputs { - #[serde(skip_serializing_if = "Option::is_none")] - pub address: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub blockheight: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub redeemscript: Option, + pub struct GetroutesRequest { #[serde(skip_serializing_if = "Option::is_none")] - pub reserved_to_block: Option, - // Path `ListFunds.outputs[].status` - pub status: ListfundsOutputsStatus, + pub final_cltv: Option, pub amount_msat: Amount, - pub output: u32, - pub reserved: bool, - pub scriptpubkey: String, - pub txid: String, + pub destination: PublicKey, + pub layers: Vec, + pub maxfee_msat: Amount, + pub source: PublicKey, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListfundsResponse { - pub channels: Vec, - pub outputs: Vec, + impl From for Request { + fn from(r: GetroutesRequest) -> Self { + Request::GetRoutes(r) + } } - impl TryFrom for ListfundsResponse { - type Error = super::TryFromResponseError; + impl IntoRequest for GetroutesRequest { + type Response = super::responses::GetroutesResponse; + } - fn try_from(response: Response) -> Result { - match response { - Response::ListFunds(response) => Ok(response), - _ => Err(TryFromResponseError) - } + impl TypedRequest for GetroutesRequest { + type Response = super::responses::GetroutesResponse; + + fn method(&self) -> &str { + "getroutes" + } + } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskrenedisablenodeRequest { + pub layer: String, + pub node: PublicKey, + } + + impl From for Request { + fn from(r: AskrenedisablenodeRequest) -> Self { + Request::AskReneDisableNode(r) } } - /// ['Status of the payment (could be complete if already sent previously).'] + impl IntoRequest for AskrenedisablenodeRequest { + type Response = super::responses::AskrenedisablenodeResponse; + } + + impl TypedRequest for AskrenedisablenodeRequest { + type Response = super::responses::AskrenedisablenodeResponse; + + fn method(&self) -> &str { + "askrene-disable-node" + } + } + /// ['Whether this payment passed (implying capacity of at least that amount), failed (implying maximum capacity of one msat less), or succeeded (implying capacity has been reduced in this direction)'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum SendpayStatus { - #[serde(rename = "pending")] - PENDING = 0, - #[serde(rename = "complete")] - COMPLETE = 1, + pub enum AskreneinformchannelInform { + #[serde(rename = "constrained")] + CONSTRAINED = 0, + #[serde(rename = "unconstrained")] + UNCONSTRAINED = 1, + #[serde(rename = "succeeded")] + SUCCEEDED = 2, } - impl TryFrom for SendpayStatus { + impl TryFrom for AskreneinformchannelInform { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(SendpayStatus::PENDING), - 1 => Ok(SendpayStatus::COMPLETE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum SendpayStatus", o)), + 0 => Ok(AskreneinformchannelInform::CONSTRAINED), + 1 => Ok(AskreneinformchannelInform::UNCONSTRAINED), + 2 => Ok(AskreneinformchannelInform::SUCCEEDED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum AskreneinformchannelInform", o)), } } } - impl ToString for SendpayStatus { + impl ToString for AskreneinformchannelInform { fn to_string(&self) -> String { match self { - SendpayStatus::PENDING => "PENDING", - SendpayStatus::COMPLETE => "COMPLETE", + AskreneinformchannelInform::CONSTRAINED => "CONSTRAINED", + AskreneinformchannelInform::UNCONSTRAINED => "UNCONSTRAINED", + AskreneinformchannelInform::SUCCEEDED => "SUCCEEDED", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SendpayResponse { + pub struct AskreneinformchannelRequest { #[serde(skip_serializing_if = "Option::is_none")] pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, - #[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 created_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub groupid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub message: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub partid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub payment_preimage: Option, + pub inform: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - // Path `SendPay.status` - pub status: SendpayStatus, - pub amount_sent_msat: Amount, - pub created_at: u64, - pub id: u64, - pub payment_hash: Sha256, + pub short_channel_id_dir: Option, + pub layer: String, } - impl TryFrom for SendpayResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::SendPay(response) => Ok(response), - _ => Err(TryFromResponseError) - } + impl From for Request { + fn from(r: AskreneinformchannelRequest) -> Self { + Request::AskReneInformChannel(r) } } + impl IntoRequest for AskreneinformchannelRequest { + type Response = super::responses::AskreneinformchannelResponse; + } + + impl TypedRequest for AskreneinformchannelRequest { + type Response = super::responses::AskreneinformchannelResponse; + + fn method(&self) -> &str { + "askrene-inform-channel" + } + } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListchannelsChannels { - #[serde(skip_serializing_if = "Option::is_none")] - pub htlc_maximum_msat: Option, - pub active: bool, - pub amount_msat: Amount, - pub base_fee_millisatoshi: u32, - pub channel_flags: u8, - pub delay: u32, + pub struct AskrenecreatechannelRequest { + pub capacity_msat: Amount, pub destination: PublicKey, - pub direction: u32, - pub features: String, - pub fee_per_millionth: u32, - pub htlc_minimum_msat: Amount, - pub last_update: u32, - pub message_flags: u8, - pub public: bool, + pub layer: String, pub short_channel_id: ShortChannelId, pub source: PublicKey, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListchannelsResponse { - pub channels: Vec, + impl From for Request { + fn from(r: AskrenecreatechannelRequest) -> Self { + Request::AskReneCreateChannel(r) + } } - impl TryFrom for ListchannelsResponse { - type Error = super::TryFromResponseError; + impl IntoRequest for AskrenecreatechannelRequest { + type Response = super::responses::AskrenecreatechannelResponse; + } - fn try_from(response: Response) -> Result { - match response { - Response::ListChannels(response) => Ok(response), - _ => Err(TryFromResponseError) - } + impl TypedRequest for AskrenecreatechannelRequest { + type Response = super::responses::AskrenecreatechannelResponse; + + fn method(&self) -> &str { + "askrene-create-channel" } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AddgossipResponse { + pub struct AskreneupdatechannelRequest { + #[serde(skip_serializing_if = "Option::is_none")] + pub cltv_expiry_delta: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub enabled: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub fee_base_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub fee_proportional_millionths: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub htlc_maximum_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub htlc_minimum_msat: Option, + pub layer: String, + pub short_channel_id_dir: ShortChannelIdDir, } - impl TryFrom for AddgossipResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::AddGossip(response) => Ok(response), - _ => Err(TryFromResponseError) - } + impl From for Request { + fn from(r: AskreneupdatechannelRequest) -> Self { + Request::AskReneUpdateChannel(r) } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AddpsbtoutputResponse { - pub estimated_added_weight: u32, - pub outnum: u32, - pub psbt: String, + impl IntoRequest for AskreneupdatechannelRequest { + type Response = super::responses::AskreneupdatechannelResponse; } - impl TryFrom for AddpsbtoutputResponse { - type Error = super::TryFromResponseError; + impl TypedRequest for AskreneupdatechannelRequest { + type Response = super::responses::AskreneupdatechannelResponse; - fn try_from(response: Response) -> Result { - match response { - Response::AddPsbtOutput(response) => Ok(response), - _ => Err(TryFromResponseError) - } + fn method(&self) -> &str { + "askrene-update-channel" } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanonceAutocleanExpiredinvoices { - pub cleaned: u64, - pub uncleaned: u64, + pub struct AskrenebiaschannelRequest { + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + pub bias: i64, + pub layer: String, + pub short_channel_id_dir: ShortChannelIdDir, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanonceAutocleanFailedforwards { - pub cleaned: u64, - pub uncleaned: u64, + impl From for Request { + fn from(r: AskrenebiaschannelRequest) -> Self { + Request::AskReneBiasChannel(r) + } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanonceAutocleanFailedpays { - pub cleaned: u64, - pub uncleaned: u64, + impl IntoRequest for AskrenebiaschannelRequest { + type Response = super::responses::AskrenebiaschannelResponse; } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanonceAutocleanPaidinvoices { - pub cleaned: u64, - pub uncleaned: u64, - } + impl TypedRequest for AskrenebiaschannelRequest { + type Response = super::responses::AskrenebiaschannelResponse; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanonceAutocleanSucceededforwards { - pub cleaned: u64, - pub uncleaned: u64, + fn method(&self) -> &str { + "askrene-bias-channel" + } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanonceAutocleanSucceededpays { - pub cleaned: u64, - pub uncleaned: u64, + pub struct AskrenelistreservationsRequest { } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanonceAutoclean { - #[serde(skip_serializing_if = "Option::is_none")] - pub expiredinvoices: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub failedforwards: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub failedpays: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub paidinvoices: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub succeededforwards: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub succeededpays: Option, + impl From for Request { + fn from(r: AskrenelistreservationsRequest) -> Self { + Request::AskReneListReservations(r) + } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanonceResponse { - pub autoclean: AutocleanonceAutoclean, + impl IntoRequest for AskrenelistreservationsRequest { + type Response = super::responses::AskrenelistreservationsResponse; } - impl TryFrom for AutocleanonceResponse { - type Error = super::TryFromResponseError; + impl TypedRequest for AskrenelistreservationsRequest { + type Response = super::responses::AskrenelistreservationsResponse; - fn try_from(response: Response) -> Result { - match response { - Response::AutoCleanOnce(response) => Ok(response), - _ => Err(TryFromResponseError) - } + fn method(&self) -> &str { + "askrene-listreservations" } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanstatusAutocleanExpiredinvoices { + pub struct InjectpaymentonionRequest { #[serde(skip_serializing_if = "Option::is_none")] - pub age: Option, - pub cleaned: u64, - pub enabled: bool, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanstatusAutocleanFailedforwards { + pub invstring: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub age: Option, - pub cleaned: u64, - pub enabled: bool, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanstatusAutocleanFailedpays { + pub label: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub age: Option, - pub cleaned: u64, - pub enabled: bool, + pub localinvreqid: Option, + pub amount_msat: Amount, + pub cltv_expiry: u16, + pub groupid: u64, + pub onion: String, + pub partid: u64, + pub payment_hash: Sha256, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanstatusAutocleanPaidinvoices { - #[serde(skip_serializing_if = "Option::is_none")] - pub age: Option, - pub cleaned: u64, - pub enabled: bool, + impl From for Request { + fn from(r: InjectpaymentonionRequest) -> Self { + Request::InjectPaymentOnion(r) + } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanstatusAutocleanSucceededforwards { - #[serde(skip_serializing_if = "Option::is_none")] - pub age: Option, - pub cleaned: u64, - pub enabled: bool, + impl IntoRequest for InjectpaymentonionRequest { + type Response = super::responses::InjectpaymentonionResponse; } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanstatusAutocleanSucceededpays { - #[serde(skip_serializing_if = "Option::is_none")] - pub age: Option, - pub cleaned: u64, - pub enabled: bool, - } + impl TypedRequest for InjectpaymentonionRequest { + type Response = super::responses::InjectpaymentonionResponse; + fn method(&self) -> &str { + "injectpaymentonion" + } + } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanstatusAutoclean { - #[serde(skip_serializing_if = "Option::is_none")] - pub expiredinvoices: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub failedforwards: Option, + pub struct XpayRequest { #[serde(skip_serializing_if = "Option::is_none")] - pub failedpays: Option, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub paidinvoices: Option, + pub maxfee: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub succeededforwards: Option, + pub partial_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub succeededpays: Option, + pub retry_for: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub layers: Option>, + pub invstring: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct AutocleanstatusResponse { - pub autoclean: AutocleanstatusAutoclean, + impl From for Request { + fn from(r: XpayRequest) -> Self { + Request::Xpay(r) + } } - impl TryFrom for AutocleanstatusResponse { - type Error = super::TryFromResponseError; + impl IntoRequest for XpayRequest { + type Response = super::responses::XpayResponse; + } - fn try_from(response: Response) -> Result { - match response { - Response::AutoCleanStatus(response) => Ok(response), - _ => Err(TryFromResponseError) - } + impl TypedRequest for XpayRequest { + type Response = super::responses::XpayResponse; + + fn method(&self) -> &str { + "xpay" } } +} - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct CheckmessageResponse { - pub pubkey: PublicKey, - pub verified: bool, - } - impl TryFrom for CheckmessageResponse { - type Error = super::TryFromResponseError; +pub mod responses { + #[allow(unused_imports)] + use crate::primitives::*; + #[allow(unused_imports)] + use serde::{{Deserialize, Serialize}}; + use super::{TryFromResponseError, Response}; - fn try_from(response: Response) -> Result { - match response { - Response::CheckMessage(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct GetinfoOur_features { + pub channel: String, + pub init: String, + pub invoice: String, + pub node: String, } - /// ['Whether we successfully negotiated a mutual close, closed without them, or discarded not-yet-opened channel.'] + /// ['Type of connection (until 23.08, `websocket` was also allowed).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum CloseType { - #[serde(rename = "mutual")] - MUTUAL = 0, - #[serde(rename = "unilateral")] - UNILATERAL = 1, - #[serde(rename = "unopened")] - UNOPENED = 2, + pub enum GetinfoAddressType { + #[serde(rename = "dns")] + DNS = 0, + #[serde(rename = "ipv4")] + IPV4 = 1, + #[serde(rename = "ipv6")] + IPV6 = 2, + #[serde(rename = "torv2")] + TORV2 = 3, + #[serde(rename = "torv3")] + TORV3 = 4, } - impl TryFrom for CloseType { + impl TryFrom for GetinfoAddressType { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(CloseType::MUTUAL), - 1 => Ok(CloseType::UNILATERAL), - 2 => Ok(CloseType::UNOPENED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum CloseType", o)), + 0 => Ok(GetinfoAddressType::DNS), + 1 => Ok(GetinfoAddressType::IPV4), + 2 => Ok(GetinfoAddressType::IPV6), + 3 => Ok(GetinfoAddressType::TORV2), + 4 => Ok(GetinfoAddressType::TORV3), + o => Err(anyhow::anyhow!("Unknown variant {} for enum GetinfoAddressType", o)), } } } - impl ToString for CloseType { + impl ToString for GetinfoAddressType { fn to_string(&self) -> String { match self { - CloseType::MUTUAL => "MUTUAL", - CloseType::UNILATERAL => "UNILATERAL", - CloseType::UNOPENED => "UNOPENED", + GetinfoAddressType::DNS => "DNS", + GetinfoAddressType::IPV4 => "IPV4", + GetinfoAddressType::IPV6 => "IPV6", + GetinfoAddressType::TORV2 => "TORV2", + GetinfoAddressType::TORV3 => "TORV3", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct CloseResponse { - #[deprecated] - #[serde(skip_serializing_if = "Option::is_none")] - pub tx: Option, - #[deprecated] + pub struct GetinfoAddress { #[serde(skip_serializing_if = "Option::is_none")] - pub txid: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub txids: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub txs: Option>, - // Path `Close.type` - #[serde(rename = "type")] - pub item_type: CloseType, - } - - impl TryFrom for CloseResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::Close(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } - } - - /// ['Whether they initiated connection or we did.'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ConnectDirection { - #[serde(rename = "in")] - IN = 0, - #[serde(rename = "out")] - OUT = 1, - } - - impl TryFrom for ConnectDirection { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(ConnectDirection::IN), - 1 => Ok(ConnectDirection::OUT), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ConnectDirection", o)), - } - } - } - - impl ToString for ConnectDirection { - fn to_string(&self) -> String { - match self { - ConnectDirection::IN => "IN", - ConnectDirection::OUT => "OUT", - }.to_string() - } + pub address: Option, + // Path `Getinfo.address[].type` + #[serde(rename = "type")] + pub item_type: GetinfoAddressType, + pub port: u16, } - /// ['Type of connection (*torv2*/*torv3* only if **direction** is *out*).'] + /// ['Type of connection.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ConnectAddressType { + pub enum GetinfoBindingType { #[serde(rename = "local socket")] LOCAL_SOCKET = 0, #[serde(rename = "ipv4")] @@ -4708,1023 +4699,956 @@ pub mod responses { TORV2 = 3, #[serde(rename = "torv3")] TORV3 = 4, + #[serde(rename = "websocket")] + WEBSOCKET = 5, } - impl TryFrom for ConnectAddressType { + impl TryFrom for GetinfoBindingType { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(ConnectAddressType::LOCAL_SOCKET), - 1 => Ok(ConnectAddressType::IPV4), - 2 => Ok(ConnectAddressType::IPV6), - 3 => Ok(ConnectAddressType::TORV2), - 4 => Ok(ConnectAddressType::TORV3), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ConnectAddressType", o)), + 0 => Ok(GetinfoBindingType::LOCAL_SOCKET), + 1 => Ok(GetinfoBindingType::IPV4), + 2 => Ok(GetinfoBindingType::IPV6), + 3 => Ok(GetinfoBindingType::TORV2), + 4 => Ok(GetinfoBindingType::TORV3), + 5 => Ok(GetinfoBindingType::WEBSOCKET), + o => Err(anyhow::anyhow!("Unknown variant {} for enum GetinfoBindingType", o)), } } } - impl ToString for ConnectAddressType { + impl ToString for GetinfoBindingType { fn to_string(&self) -> String { match self { - ConnectAddressType::LOCAL_SOCKET => "LOCAL_SOCKET", - ConnectAddressType::IPV4 => "IPV4", - ConnectAddressType::IPV6 => "IPV6", - ConnectAddressType::TORV2 => "TORV2", - ConnectAddressType::TORV3 => "TORV3", + GetinfoBindingType::LOCAL_SOCKET => "LOCAL_SOCKET", + GetinfoBindingType::WEBSOCKET => "WEBSOCKET", + GetinfoBindingType::IPV4 => "IPV4", + GetinfoBindingType::IPV6 => "IPV6", + GetinfoBindingType::TORV2 => "TORV2", + GetinfoBindingType::TORV3 => "TORV3", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ConnectAddress { + pub struct GetinfoBinding { #[serde(skip_serializing_if = "Option::is_none")] pub address: Option, #[serde(skip_serializing_if = "Option::is_none")] pub port: Option, #[serde(skip_serializing_if = "Option::is_none")] pub socket: Option, - // Path `Connect.address.type` + #[serde(skip_serializing_if = "Option::is_none")] + pub subtype: Option, + // Path `Getinfo.binding[].type` #[serde(rename = "type")] - pub item_type: ConnectAddressType, + pub item_type: GetinfoBindingType, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ConnectResponse { - // Path `Connect.direction` - pub direction: ConnectDirection, - pub address: ConnectAddress, - pub features: String, + pub struct GetinfoResponse { + #[serde(rename = "lightning-dir")] + pub lightning_dir: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub alias: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub our_features: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_bitcoind_sync: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_lightningd_sync: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub address: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub binding: Option>, + pub blockheight: u32, + pub color: String, + pub fees_collected_msat: Amount, pub id: PublicKey, + pub network: String, + pub num_active_channels: u32, + pub num_inactive_channels: u32, + pub num_peers: u32, + pub num_pending_channels: u32, + pub version: String, } - impl TryFrom for ConnectResponse { + impl TryFrom for GetinfoResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Connect(response) => Ok(response), + Response::Getinfo(response) => Ok(response), _ => Err(TryFromResponseError) } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct CreateinvoicePaid_outpoint { - pub outnum: u32, - pub txid: String, - } - - /// ['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")] - PAID = 0, - #[serde(rename = "expired")] - EXPIRED = 1, - #[serde(rename = "unpaid")] - UNPAID = 2, + pub enum ListpeersPeersLogType { + #[serde(rename = "SKIPPED")] + SKIPPED = 0, + #[serde(rename = "BROKEN")] + BROKEN = 1, + #[serde(rename = "UNUSUAL")] + UNUSUAL = 2, + #[serde(rename = "INFO")] + INFO = 3, + #[serde(rename = "DEBUG")] + DEBUG = 4, + #[serde(rename = "IO_IN")] + IO_IN = 5, + #[serde(rename = "IO_OUT")] + IO_OUT = 6, + #[serde(rename = "TRACE")] + TRACE = 7, } - impl TryFrom for CreateinvoiceStatus { + impl TryFrom for ListpeersPeersLogType { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(CreateinvoiceStatus::PAID), - 1 => Ok(CreateinvoiceStatus::EXPIRED), - 2 => Ok(CreateinvoiceStatus::UNPAID), - o => Err(anyhow::anyhow!("Unknown variant {} for enum CreateinvoiceStatus", o)), + 0 => Ok(ListpeersPeersLogType::SKIPPED), + 1 => Ok(ListpeersPeersLogType::BROKEN), + 2 => Ok(ListpeersPeersLogType::UNUSUAL), + 3 => Ok(ListpeersPeersLogType::INFO), + 4 => Ok(ListpeersPeersLogType::DEBUG), + 5 => Ok(ListpeersPeersLogType::IO_IN), + 6 => Ok(ListpeersPeersLogType::IO_OUT), + 7 => Ok(ListpeersPeersLogType::TRACE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeersPeersLogType", o)), } } } - impl ToString for CreateinvoiceStatus { + impl ToString for ListpeersPeersLogType { fn to_string(&self) -> String { match self { - CreateinvoiceStatus::PAID => "PAID", - CreateinvoiceStatus::EXPIRED => "EXPIRED", - CreateinvoiceStatus::UNPAID => "UNPAID", + ListpeersPeersLogType::SKIPPED => "SKIPPED", + ListpeersPeersLogType::BROKEN => "BROKEN", + ListpeersPeersLogType::UNUSUAL => "UNUSUAL", + ListpeersPeersLogType::INFO => "INFO", + ListpeersPeersLogType::DEBUG => "DEBUG", + ListpeersPeersLogType::TRACE => "TRACE", + ListpeersPeersLogType::IO_IN => "IO_IN", + ListpeersPeersLogType::IO_OUT => "IO_OUT", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct CreateinvoiceResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_received_msat: Option, + pub struct ListpeersPeersLog { #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, + pub data: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub bolt12: Option, + pub log: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, + pub node_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_payer_note: Option, + pub num_skipped: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub local_offer_id: Option, + pub source: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub paid_at: Option, + pub time: Option, + // Path `ListPeers.peers[].log[].type` + #[serde(rename = "type")] + pub item_type: ListpeersPeersLogType, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListpeersPeers { #[serde(skip_serializing_if = "Option::is_none")] - pub paid_outpoint: Option, + pub features: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub pay_index: Option, + pub num_channels: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_preimage: Option, - // Path `CreateInvoice.status` - pub status: CreateinvoiceStatus, - pub description: String, - pub expires_at: u64, - pub label: String, - pub payment_hash: Sha256, + pub remote_addr: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub log: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub netaddr: Option>, + pub connected: bool, + pub id: PublicKey, } - impl TryFrom for CreateinvoiceResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListpeersResponse { + pub peers: Vec, + } + + impl TryFrom for ListpeersResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::CreateInvoice(response) => Ok(response), + Response::ListPeers(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DatastoreResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub generation: Option, + pub struct ListfundsChannels { #[serde(skip_serializing_if = "Option::is_none")] - pub hex: Option, + pub channel_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub string: Option, - pub key: Vec, + pub short_channel_id: Option, + // Path `ListFunds.channels[].state` + pub state: ChannelState, + pub amount_msat: Amount, + pub connected: bool, + pub funding_output: u32, + pub funding_txid: String, + pub our_amount_msat: Amount, + pub peer_id: PublicKey, } - impl TryFrom for DatastoreResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::Datastore(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DatastoreusageDatastoreusage { - pub key: String, - pub total_bytes: u64, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DatastoreusageResponse { - pub datastoreusage: DatastoreusageDatastoreusage, + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum ListfundsOutputsStatus { + #[serde(rename = "unconfirmed")] + UNCONFIRMED = 0, + #[serde(rename = "confirmed")] + CONFIRMED = 1, + #[serde(rename = "spent")] + SPENT = 2, + #[serde(rename = "immature")] + IMMATURE = 3, } - impl TryFrom for DatastoreusageResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::DatastoreUsage(response) => Ok(response), - _ => Err(TryFromResponseError) + impl TryFrom for ListfundsOutputsStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(ListfundsOutputsStatus::UNCONFIRMED), + 1 => Ok(ListfundsOutputsStatus::CONFIRMED), + 2 => Ok(ListfundsOutputsStatus::SPENT), + 3 => Ok(ListfundsOutputsStatus::IMMATURE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListfundsOutputsStatus", o)), } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct CreateonionResponse { - pub onion: String, - pub shared_secrets: Vec, - } - - impl TryFrom for CreateonionResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::CreateOnion(response) => Ok(response), - _ => Err(TryFromResponseError) - } + impl ToString for ListfundsOutputsStatus { + fn to_string(&self) -> String { + match self { + ListfundsOutputsStatus::UNCONFIRMED => "UNCONFIRMED", + ListfundsOutputsStatus::CONFIRMED => "CONFIRMED", + ListfundsOutputsStatus::SPENT => "SPENT", + ListfundsOutputsStatus::IMMATURE => "IMMATURE", + }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DeldatastoreResponse { + pub struct ListfundsOutputs { #[serde(skip_serializing_if = "Option::is_none")] - pub generation: Option, + pub address: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub hex: Option, + pub blockheight: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub string: Option, - pub key: Vec, + pub redeemscript: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub reserved_to_block: Option, + // Path `ListFunds.outputs[].status` + pub status: ListfundsOutputsStatus, + pub amount_msat: Amount, + pub output: u32, + pub reserved: bool, + pub scriptpubkey: String, + pub txid: String, } - impl TryFrom for DeldatastoreResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListfundsResponse { + pub channels: Vec, + pub outputs: Vec, + } + + impl TryFrom for ListfundsResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::DelDatastore(response) => Ok(response), + Response::ListFunds(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['State of invoice.'] + /// ['Status of the payment (could be complete if already sent previously).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum DelinvoiceStatus { - #[serde(rename = "paid")] - PAID = 0, - #[serde(rename = "expired")] - EXPIRED = 1, - #[serde(rename = "unpaid")] - UNPAID = 2, + pub enum SendpayStatus { + #[serde(rename = "pending")] + PENDING = 0, + #[serde(rename = "complete")] + COMPLETE = 1, } - impl TryFrom for DelinvoiceStatus { + impl TryFrom for SendpayStatus { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(DelinvoiceStatus::PAID), - 1 => Ok(DelinvoiceStatus::EXPIRED), - 2 => Ok(DelinvoiceStatus::UNPAID), - o => Err(anyhow::anyhow!("Unknown variant {} for enum DelinvoiceStatus", o)), + 0 => Ok(SendpayStatus::PENDING), + 1 => Ok(SendpayStatus::COMPLETE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum SendpayStatus", o)), } } } - impl ToString for DelinvoiceStatus { + impl ToString for SendpayStatus { fn to_string(&self) -> String { match self { - DelinvoiceStatus::PAID => "PAID", - DelinvoiceStatus::EXPIRED => "EXPIRED", - DelinvoiceStatus::UNPAID => "UNPAID", + SendpayStatus::PENDING => "PENDING", + SendpayStatus::COMPLETE => "COMPLETE", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DelinvoiceResponse { + pub struct SendpayResponse { #[serde(skip_serializing_if = "Option::is_none")] pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub amount_received_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub bolt11: Option, #[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 created_index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, + pub destination: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_payer_note: Option, + pub groupid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub local_offer_id: Option, + pub label: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub paid_at: Option, + pub message: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub pay_index: Option, + pub partid: Option, #[serde(skip_serializing_if = "Option::is_none")] pub payment_preimage: Option, #[serde(skip_serializing_if = "Option::is_none")] pub updated_index: Option, - // Path `DelInvoice.status` - pub status: DelinvoiceStatus, - pub expires_at: u64, - pub label: String, + // Path `SendPay.status` + pub status: SendpayStatus, + pub amount_sent_msat: Amount, + pub created_at: u64, + pub id: u64, pub payment_hash: Sha256, } - impl TryFrom for DelinvoiceResponse { + impl TryFrom for SendpayResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::DelInvoice(response) => Ok(response), + Response::SendPay(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DevforgetchannelResponse { - pub forced: bool, - pub funding_txid: String, - pub funding_unspent: bool, + pub struct ListchannelsChannels { + #[serde(skip_serializing_if = "Option::is_none")] + pub htlc_maximum_msat: Option, + pub active: bool, + pub amount_msat: Amount, + pub base_fee_millisatoshi: u32, + pub channel_flags: u8, + pub delay: u32, + pub destination: PublicKey, + pub direction: u32, + pub features: String, + pub fee_per_millionth: u32, + pub htlc_minimum_msat: Amount, + pub last_update: u32, + pub message_flags: u8, + pub public: bool, + pub short_channel_id: ShortChannelId, + pub source: PublicKey, } - impl TryFrom for DevforgetchannelResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListchannelsResponse { + pub channels: Vec, + } + + impl TryFrom for ListchannelsResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::DevForgetChannel(response) => Ok(response), + Response::ListChannels(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct EmergencyrecoverResponse { - pub stubs: Vec, + pub struct AddgossipResponse { } - impl TryFrom for EmergencyrecoverResponse { + impl TryFrom for AddgossipResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::EmergencyRecover(response) => Ok(response), + Response::AddGossip(response) => Ok(response), _ => Err(TryFromResponseError) } } } - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum RecoverResult { - #[serde(rename = "Recovery restart in progress")] - RECOVERY_RESTART_IN_PROGRESS = 0, - } - - impl TryFrom for RecoverResult { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(RecoverResult::RECOVERY_RESTART_IN_PROGRESS), - o => Err(anyhow::anyhow!("Unknown variant {} for enum RecoverResult", o)), - } - } - } - - impl ToString for RecoverResult { - fn to_string(&self) -> String { - match self { - RecoverResult::RECOVERY_RESTART_IN_PROGRESS => "RECOVERY_RESTART_IN_PROGRESS", - }.to_string() - } - } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct RecoverResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub result: Option, + pub struct AddpsbtoutputResponse { + pub estimated_added_weight: u32, + pub outnum: u32, + pub psbt: String, } - impl TryFrom for RecoverResponse { + impl TryFrom for AddpsbtoutputResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Recover(response) => Ok(response), + Response::AddPsbtOutput(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct RecoverchannelResponse { - pub stubs: Vec, + pub struct AutocleanonceAutocleanExpiredinvoices { + pub cleaned: u64, + pub uncleaned: u64, } - impl TryFrom for RecoverchannelResponse { - type Error = super::TryFromResponseError; + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AutocleanonceAutocleanFailedforwards { + pub cleaned: u64, + pub uncleaned: u64, + } - fn try_from(response: Response) -> Result { - match response { - Response::RecoverChannel(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AutocleanonceAutocleanFailedpays { + pub cleaned: u64, + pub uncleaned: u64, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct InvoiceResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_capacity: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_deadends: Option, + pub struct AutocleanonceAutocleanPaidinvoices { + pub cleaned: u64, + pub uncleaned: u64, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AutocleanonceAutocleanSucceededforwards { + pub cleaned: u64, + pub uncleaned: u64, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AutocleanonceAutocleanSucceededpays { + pub cleaned: u64, + pub uncleaned: u64, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AutocleanonceAutoclean { #[serde(skip_serializing_if = "Option::is_none")] - pub warning_mpp: Option, + pub expiredinvoices: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_offline: Option, + pub failedforwards: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_private_unused: Option, - pub bolt11: String, - pub expires_at: u64, - pub payment_hash: Sha256, - pub payment_secret: Secret, + pub failedpays: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub paidinvoices: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub succeededforwards: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub succeededpays: Option, } - impl TryFrom for InvoiceResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AutocleanonceResponse { + pub autoclean: AutocleanonceAutoclean, + } + + impl TryFrom for AutocleanonceResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Invoice(response) => Ok(response), + Response::AutoCleanOnce(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct InvoicerequestResponse { + pub struct AutocleanstatusAutocleanExpiredinvoices { #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, - pub active: bool, - pub bolt12: String, - pub invreq_id: Sha256, - pub single_use: bool, - pub used: bool, + pub age: Option, + pub cleaned: u64, + pub enabled: bool, } - impl TryFrom for InvoicerequestResponse { - type Error = super::TryFromResponseError; + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AutocleanstatusAutocleanFailedforwards { + #[serde(skip_serializing_if = "Option::is_none")] + pub age: Option, + pub cleaned: u64, + pub enabled: bool, + } - fn try_from(response: Response) -> Result { - match response { - Response::InvoiceRequest(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AutocleanstatusAutocleanFailedpays { + #[serde(skip_serializing_if = "Option::is_none")] + pub age: Option, + pub cleaned: u64, + pub enabled: bool, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DisableinvoicerequestResponse { + pub struct AutocleanstatusAutocleanPaidinvoices { #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, - pub active: bool, - pub bolt12: String, - pub invreq_id: Sha256, - pub single_use: bool, - pub used: bool, + pub age: Option, + pub cleaned: u64, + pub enabled: bool, } - impl TryFrom for DisableinvoicerequestResponse { - type Error = super::TryFromResponseError; + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AutocleanstatusAutocleanSucceededforwards { + #[serde(skip_serializing_if = "Option::is_none")] + pub age: Option, + pub cleaned: u64, + pub enabled: bool, + } - fn try_from(response: Response) -> Result { - match response { - Response::DisableInvoiceRequest(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AutocleanstatusAutocleanSucceededpays { + #[serde(skip_serializing_if = "Option::is_none")] + pub age: Option, + pub cleaned: u64, + pub enabled: bool, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListinvoicerequestsInvoicerequests { + pub struct AutocleanstatusAutoclean { #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, - pub active: bool, - pub bolt12: String, - pub invreq_id: Sha256, - pub single_use: bool, - pub used: bool, + pub expiredinvoices: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub failedforwards: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub failedpays: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub paidinvoices: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub succeededforwards: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub succeededpays: Option, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListinvoicerequestsResponse { - pub invoicerequests: Vec, + pub struct AutocleanstatusResponse { + pub autoclean: AutocleanstatusAutoclean, } - impl TryFrom for ListinvoicerequestsResponse { + impl TryFrom for AutocleanstatusResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ListInvoiceRequests(response) => Ok(response), + Response::AutoCleanStatus(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListdatastoreDatastore { - #[serde(skip_serializing_if = "Option::is_none")] - pub generation: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub hex: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub string: Option, - pub key: Vec, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListdatastoreResponse { - pub datastore: Vec, + pub struct CheckmessageResponse { + pub pubkey: PublicKey, + pub verified: bool, } - impl TryFrom for ListdatastoreResponse { + impl TryFrom for CheckmessageResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ListDatastore(response) => Ok(response), + Response::CheckMessage(response) => Ok(response), _ => Err(TryFromResponseError) } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListinvoicesInvoicesPaid_outpoint { - pub outnum: u32, - pub txid: String, - } - - /// ["Whether it's paid, unpaid or unpayable."] + /// ['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 ListinvoicesInvoicesStatus { - #[serde(rename = "unpaid")] - UNPAID = 0, - #[serde(rename = "paid")] - PAID = 1, - #[serde(rename = "expired")] - EXPIRED = 2, + pub enum CloseType { + #[serde(rename = "mutual")] + MUTUAL = 0, + #[serde(rename = "unilateral")] + UNILATERAL = 1, + #[serde(rename = "unopened")] + UNOPENED = 2, } - impl TryFrom for ListinvoicesInvoicesStatus { + impl TryFrom for CloseType { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListinvoicesInvoicesStatus::UNPAID), - 1 => Ok(ListinvoicesInvoicesStatus::PAID), - 2 => Ok(ListinvoicesInvoicesStatus::EXPIRED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListinvoicesInvoicesStatus", o)), + 0 => Ok(CloseType::MUTUAL), + 1 => Ok(CloseType::UNILATERAL), + 2 => Ok(CloseType::UNOPENED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum CloseType", o)), } } } - impl ToString for ListinvoicesInvoicesStatus { + impl ToString for CloseType { fn to_string(&self) -> String { match self { - ListinvoicesInvoicesStatus::UNPAID => "UNPAID", - ListinvoicesInvoicesStatus::PAID => "PAID", - ListinvoicesInvoicesStatus::EXPIRED => "EXPIRED", + CloseType::MUTUAL => "MUTUAL", + CloseType::UNILATERAL => "UNILATERAL", + CloseType::UNOPENED => "UNOPENED", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListinvoicesInvoices { - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_received_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub bolt12: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_payer_note: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub local_offer_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub paid_at: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub paid_outpoint: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub pay_index: Option, + pub struct CloseResponse { + #[deprecated] #[serde(skip_serializing_if = "Option::is_none")] - pub payment_preimage: Option, + pub tx: Option, + #[deprecated] #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - // Path `ListInvoices.invoices[].status` - pub status: ListinvoicesInvoicesStatus, - pub expires_at: u64, - pub label: String, - pub payment_hash: Sha256, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListinvoicesResponse { - pub invoices: Vec, + pub txid: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub txids: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub txs: Option>, + // Path `Close.type` + #[serde(rename = "type")] + pub item_type: CloseType, } - impl TryFrom for ListinvoicesResponse { + impl TryFrom for CloseResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ListInvoices(response) => Ok(response), + Response::Close(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Status of the payment (could be complete if already sent previously).'] + /// ['Whether they initiated connection or we did.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum SendonionStatus { - #[serde(rename = "pending")] - PENDING = 0, - #[serde(rename = "complete")] - COMPLETE = 1, - } + pub enum ConnectDirection { + #[serde(rename = "in")] + IN = 0, + #[serde(rename = "out")] + OUT = 1, + } - impl TryFrom for SendonionStatus { + impl TryFrom for ConnectDirection { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(SendonionStatus::PENDING), - 1 => Ok(SendonionStatus::COMPLETE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum SendonionStatus", o)), + 0 => Ok(ConnectDirection::IN), + 1 => Ok(ConnectDirection::OUT), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ConnectDirection", o)), } } } - impl ToString for SendonionStatus { + impl ToString for ConnectDirection { fn to_string(&self) -> String { match self { - SendonionStatus::PENDING => "PENDING", - SendonionStatus::COMPLETE => "COMPLETE", + ConnectDirection::IN => "IN", + ConnectDirection::OUT => "OUT", + }.to_string() + } + } + + /// ['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")] + LOCAL_SOCKET = 0, + #[serde(rename = "ipv4")] + IPV4 = 1, + #[serde(rename = "ipv6")] + IPV6 = 2, + #[serde(rename = "torv2")] + TORV2 = 3, + #[serde(rename = "torv3")] + TORV3 = 4, + } + + impl TryFrom for ConnectAddressType { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(ConnectAddressType::LOCAL_SOCKET), + 1 => Ok(ConnectAddressType::IPV4), + 2 => Ok(ConnectAddressType::IPV6), + 3 => Ok(ConnectAddressType::TORV2), + 4 => Ok(ConnectAddressType::TORV3), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ConnectAddressType", o)), + } + } + } + + impl ToString for ConnectAddressType { + fn to_string(&self) -> String { + match self { + ConnectAddressType::LOCAL_SOCKET => "LOCAL_SOCKET", + ConnectAddressType::IPV4 => "IPV4", + ConnectAddressType::IPV6 => "IPV6", + ConnectAddressType::TORV2 => "TORV2", + ConnectAddressType::TORV3 => "TORV3", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SendonionResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub bolt12: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub message: Option, + pub struct ConnectAddress { #[serde(skip_serializing_if = "Option::is_none")] - pub partid: Option, + pub address: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_preimage: Option, + pub port: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - // Path `SendOnion.status` - pub status: SendonionStatus, - pub amount_sent_msat: Amount, - pub created_at: u64, - pub id: u64, - pub payment_hash: Sha256, + pub socket: Option, + // Path `Connect.address.type` + #[serde(rename = "type")] + pub item_type: ConnectAddressType, } - impl TryFrom for SendonionResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ConnectResponse { + // Path `Connect.direction` + pub direction: ConnectDirection, + pub address: ConnectAddress, + pub features: String, + pub id: PublicKey, + } + + impl TryFrom for ConnectResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::SendOnion(response) => Ok(response), + Response::Connect(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Status of the payment.'] + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct CreateinvoicePaid_outpoint { + pub outnum: u32, + pub txid: String, + } + + /// ['Whether it has been paid, or can no longer be paid.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListsendpaysPaymentsStatus { - #[serde(rename = "pending")] - PENDING = 0, - #[serde(rename = "failed")] - FAILED = 1, - #[serde(rename = "complete")] - COMPLETE = 2, + pub enum CreateinvoiceStatus { + #[serde(rename = "paid")] + PAID = 0, + #[serde(rename = "expired")] + EXPIRED = 1, + #[serde(rename = "unpaid")] + UNPAID = 2, } - impl TryFrom for ListsendpaysPaymentsStatus { + impl TryFrom for CreateinvoiceStatus { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListsendpaysPaymentsStatus::PENDING), - 1 => Ok(ListsendpaysPaymentsStatus::FAILED), - 2 => Ok(ListsendpaysPaymentsStatus::COMPLETE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListsendpaysPaymentsStatus", o)), + 0 => Ok(CreateinvoiceStatus::PAID), + 1 => Ok(CreateinvoiceStatus::EXPIRED), + 2 => Ok(CreateinvoiceStatus::UNPAID), + o => Err(anyhow::anyhow!("Unknown variant {} for enum CreateinvoiceStatus", o)), } } } - impl ToString for ListsendpaysPaymentsStatus { + impl ToString for CreateinvoiceStatus { fn to_string(&self) -> String { match self { - ListsendpaysPaymentsStatus::PENDING => "PENDING", - ListsendpaysPaymentsStatus::FAILED => "FAILED", - ListsendpaysPaymentsStatus::COMPLETE => "COMPLETE", + CreateinvoiceStatus::PAID => "PAID", + CreateinvoiceStatus::EXPIRED => "EXPIRED", + CreateinvoiceStatus::UNPAID => "UNPAID", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListsendpaysPayments { + pub struct CreateinvoiceResponse { #[serde(skip_serializing_if = "Option::is_none")] pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub amount_received_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub bolt11: Option, #[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 created_index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, + pub invreq_payer_note: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, + pub local_offer_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub erroronion: Option, + pub paid_at: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, + pub paid_outpoint: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub partid: Option, + pub pay_index: Option, #[serde(skip_serializing_if = "Option::is_none")] pub payment_preimage: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - // Path `ListSendPays.payments[].status` - pub status: ListsendpaysPaymentsStatus, - pub amount_sent_msat: Amount, - pub created_at: u64, - pub groupid: u64, - pub id: u64, + // Path `CreateInvoice.status` + pub status: CreateinvoiceStatus, + pub description: String, + pub expires_at: u64, + pub label: String, pub payment_hash: Sha256, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListsendpaysResponse { - pub payments: Vec, - } - - impl TryFrom for ListsendpaysResponse { + impl TryFrom for CreateinvoiceResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ListSendPays(response) => Ok(response), + Response::CreateInvoice(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListtransactionsTransactionsInputs { - pub index: u32, - pub sequence: u32, - pub txid: String, + pub struct DatastoreResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub generation: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub hex: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub string: Option, + pub key: Vec, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListtransactionsTransactionsOutputs { - #[serde(rename = "scriptPubKey")] - pub script_pub_key: String, - pub amount_msat: Amount, - pub index: u32, + impl TryFrom for DatastoreResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::Datastore(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListtransactionsTransactions { - pub blockheight: u32, - pub hash: String, - pub inputs: Vec, - pub locktime: u32, - pub outputs: Vec, - pub rawtx: String, - pub txindex: u32, - pub version: u32, + pub struct DatastoreusageDatastoreusage { + pub key: String, + pub total_bytes: u64, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListtransactionsResponse { - pub transactions: Vec, + pub struct DatastoreusageResponse { + pub datastoreusage: DatastoreusageDatastoreusage, } - impl TryFrom for ListtransactionsResponse { + impl TryFrom for DatastoreusageResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ListTransactions(response) => Ok(response), + Response::DatastoreUsage(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct MakesecretResponse { - pub secret: Secret, + pub struct CreateonionResponse { + pub onion: String, + pub shared_secrets: Vec, } - impl TryFrom for MakesecretResponse { + impl TryFrom for CreateonionResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::MakeSecret(response) => Ok(response), + Response::CreateOnion(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Status of payment.'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum PayStatus { - #[serde(rename = "complete")] - COMPLETE = 0, - #[serde(rename = "pending")] - PENDING = 1, - #[serde(rename = "failed")] - FAILED = 2, - } - - impl TryFrom for PayStatus { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(PayStatus::COMPLETE), - 1 => Ok(PayStatus::PENDING), - 2 => Ok(PayStatus::FAILED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum PayStatus", o)), - } - } - } - - impl ToString for PayStatus { - fn to_string(&self) -> String { - match self { - PayStatus::COMPLETE => "COMPLETE", - PayStatus::PENDING => "PENDING", - PayStatus::FAILED => "FAILED", - }.to_string() - } - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct PayResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_partial_completion: Option, - // Path `Pay.status` - pub status: PayStatus, - pub amount_msat: Amount, - pub amount_sent_msat: Amount, - pub created_at: f64, - pub parts: u32, - pub payment_hash: Sha256, - pub payment_preimage: Secret, - } - - impl TryFrom for PayResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::Pay(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListnodesNodesOption_will_fund { - pub channel_fee_max_base_msat: Amount, - pub channel_fee_max_proportional_thousandths: u32, - pub compact_lease: String, - pub funding_weight: u32, - pub lease_fee_base_msat: Amount, - pub lease_fee_basis: u32, - } - - /// ['Type of connection (until 23.08, `websocket` was also allowed).'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListnodesNodesAddressesType { - #[serde(rename = "dns")] - DNS = 0, - #[serde(rename = "ipv4")] - IPV4 = 1, - #[serde(rename = "ipv6")] - IPV6 = 2, - #[serde(rename = "torv2")] - TORV2 = 3, - #[serde(rename = "torv3")] - TORV3 = 4, - } - - impl TryFrom for ListnodesNodesAddressesType { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(ListnodesNodesAddressesType::DNS), - 1 => Ok(ListnodesNodesAddressesType::IPV4), - 2 => Ok(ListnodesNodesAddressesType::IPV6), - 3 => Ok(ListnodesNodesAddressesType::TORV2), - 4 => Ok(ListnodesNodesAddressesType::TORV3), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListnodesNodesAddressesType", o)), - } - } - } - - impl ToString for ListnodesNodesAddressesType { - fn to_string(&self) -> String { - match self { - ListnodesNodesAddressesType::DNS => "DNS", - ListnodesNodesAddressesType::IPV4 => "IPV4", - ListnodesNodesAddressesType::IPV6 => "IPV6", - ListnodesNodesAddressesType::TORV2 => "TORV2", - ListnodesNodesAddressesType::TORV3 => "TORV3", - }.to_string() - } - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListnodesNodesAddresses { - #[serde(skip_serializing_if = "Option::is_none")] - pub address: Option, - // Path `ListNodes.nodes[].addresses[].type` - #[serde(rename = "type")] - pub item_type: ListnodesNodesAddressesType, - pub port: u16, - } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListnodesNodes { - #[serde(skip_serializing_if = "Option::is_none")] - pub alias: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub color: Option, + pub struct DeldatastoreResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub features: Option, + pub generation: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub last_timestamp: Option, + pub hex: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub option_will_fund: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub addresses: Option>, - pub nodeid: PublicKey, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListnodesResponse { - pub nodes: Vec, + pub string: Option, + pub key: Vec, } - impl TryFrom for ListnodesResponse { + impl TryFrom for DeldatastoreResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ListNodes(response) => Ok(response), + Response::DelDatastore(response) => Ok(response), _ => Err(TryFromResponseError) } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct WaitanyinvoicePaid_outpoint { - pub outnum: u32, - pub txid: String, - } - - /// ["Whether it's paid or expired."] + /// ['State of invoice.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum WaitanyinvoiceStatus { + pub enum DelinvoiceStatus { #[serde(rename = "paid")] PAID = 0, #[serde(rename = "expired")] EXPIRED = 1, + #[serde(rename = "unpaid")] + UNPAID = 2, } - impl TryFrom for WaitanyinvoiceStatus { + impl TryFrom for DelinvoiceStatus { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(WaitanyinvoiceStatus::PAID), - 1 => Ok(WaitanyinvoiceStatus::EXPIRED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitanyinvoiceStatus", o)), + 0 => Ok(DelinvoiceStatus::PAID), + 1 => Ok(DelinvoiceStatus::EXPIRED), + 2 => Ok(DelinvoiceStatus::UNPAID), + o => Err(anyhow::anyhow!("Unknown variant {} for enum DelinvoiceStatus", o)), } } } - impl ToString for WaitanyinvoiceStatus { + impl ToString for DelinvoiceStatus { fn to_string(&self) -> String { match self { - WaitanyinvoiceStatus::PAID => "PAID", - WaitanyinvoiceStatus::EXPIRED => "EXPIRED", + DelinvoiceStatus::PAID => "PAID", + DelinvoiceStatus::EXPIRED => "EXPIRED", + DelinvoiceStatus::UNPAID => "UNPAID", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct WaitanyinvoiceResponse { + pub struct DelinvoiceResponse { #[serde(skip_serializing_if = "Option::is_none")] pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] @@ -5738,3662 +5662,4523 @@ pub mod responses { #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub paid_at: Option, + pub invreq_payer_note: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub paid_outpoint: Option, + pub local_offer_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub paid_at: Option, #[serde(skip_serializing_if = "Option::is_none")] pub pay_index: Option, #[serde(skip_serializing_if = "Option::is_none")] pub payment_preimage: Option, #[serde(skip_serializing_if = "Option::is_none")] pub updated_index: Option, - // Path `WaitAnyInvoice.status` - pub status: WaitanyinvoiceStatus, + // Path `DelInvoice.status` + pub status: DelinvoiceStatus, pub expires_at: u64, pub label: String, pub payment_hash: Sha256, } - impl TryFrom for WaitanyinvoiceResponse { + impl TryFrom for DelinvoiceResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::WaitAnyInvoice(response) => Ok(response), + Response::DelInvoice(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct WaitinvoicePaid_outpoint { - pub outnum: u32, - pub txid: String, + pub struct DevforgetchannelResponse { + pub forced: bool, + pub funding_txid: String, + pub funding_unspent: bool, } - /// ["Whether it's paid or expired."] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum WaitinvoiceStatus { - #[serde(rename = "paid")] - PAID = 0, - #[serde(rename = "expired")] - EXPIRED = 1, - } + impl TryFrom for DevforgetchannelResponse { + type Error = super::TryFromResponseError; - impl TryFrom for WaitinvoiceStatus { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(WaitinvoiceStatus::PAID), - 1 => Ok(WaitinvoiceStatus::EXPIRED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitinvoiceStatus", o)), + fn try_from(response: Response) -> Result { + match response { + Response::DevForgetChannel(response) => Ok(response), + _ => Err(TryFromResponseError) } } } - impl ToString for WaitinvoiceStatus { - fn to_string(&self) -> String { - match self { - WaitinvoiceStatus::PAID => "PAID", - WaitinvoiceStatus::EXPIRED => "EXPIRED", - }.to_string() + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct EmergencyrecoverResponse { + pub stubs: Vec, + } + + impl TryFrom for EmergencyrecoverResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::EmergencyRecover(response) => Ok(response), + _ => Err(TryFromResponseError) + } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct WaitinvoiceResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_received_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub bolt12: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub paid_at: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub paid_outpoint: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub pay_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub payment_preimage: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - // Path `WaitInvoice.status` - pub status: WaitinvoiceStatus, - pub expires_at: u64, - pub label: String, - pub payment_hash: Sha256, + pub struct GetemergencyrecoverdataResponse { + pub filedata: String, } - impl TryFrom for WaitinvoiceResponse { + impl TryFrom for GetemergencyrecoverdataResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::WaitInvoice(response) => Ok(response), + Response::GetEmergencyRecoverData(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ExposesecretResponse { + pub codex32: String, + pub identifier: String, + } + + impl TryFrom for ExposesecretResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::ExposeSecret(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Status of the payment.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum WaitsendpayStatus { - #[serde(rename = "complete")] - COMPLETE = 0, + pub enum RecoverResult { + #[serde(rename = "Recovery restart in progress")] + RECOVERY_RESTART_IN_PROGRESS = 0, } - impl TryFrom for WaitsendpayStatus { + impl TryFrom for RecoverResult { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(WaitsendpayStatus::COMPLETE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitsendpayStatus", o)), + 0 => Ok(RecoverResult::RECOVERY_RESTART_IN_PROGRESS), + o => Err(anyhow::anyhow!("Unknown variant {} for enum RecoverResult", o)), } } } - impl ToString for WaitsendpayStatus { + impl ToString for RecoverResult { fn to_string(&self) -> String { match self { - WaitsendpayStatus::COMPLETE => "COMPLETE", + RecoverResult::RECOVERY_RESTART_IN_PROGRESS => "RECOVERY_RESTART_IN_PROGRESS", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct WaitsendpayResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, - #[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 created_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub groupid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub partid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub payment_preimage: Option, + pub struct RecoverResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - // Path `WaitSendPay.status` - pub status: WaitsendpayStatus, - pub amount_sent_msat: Amount, - pub created_at: u64, - pub id: u64, - pub payment_hash: Sha256, + pub result: Option, } - impl TryFrom for WaitsendpayResponse { + impl TryFrom for RecoverResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::WaitSendPay(response) => Ok(response), + Response::Recover(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct NewaddrResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub bech32: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub p2tr: Option, + pub struct RecoverchannelResponse { + pub stubs: Vec, } - impl TryFrom for NewaddrResponse { + impl TryFrom for RecoverchannelResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::NewAddr(response) => Ok(response), + Response::RecoverChannel(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct WithdrawResponse { - pub psbt: String, - pub tx: String, - pub txid: String, + pub struct InvoiceResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub created_index: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_capacity: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_deadends: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_mpp: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_offline: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_private_unused: Option, + pub bolt11: String, + pub expires_at: u64, + pub payment_hash: Sha256, + pub payment_secret: Secret, } - impl TryFrom for WithdrawResponse { + impl TryFrom for InvoiceResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Withdraw(response) => Ok(response), + Response::Invoice(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Status of payment.'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum KeysendStatus { - #[serde(rename = "complete")] - COMPLETE = 0, - } - - impl TryFrom for KeysendStatus { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(KeysendStatus::COMPLETE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum KeysendStatus", o)), - } - } - } - - impl ToString for KeysendStatus { - fn to_string(&self) -> String { - match self { - KeysendStatus::COMPLETE => "COMPLETE", - }.to_string() - } - } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct KeysendResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, + pub struct InvoicerequestResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub warning_partial_completion: Option, - // Path `KeySend.status` - pub status: KeysendStatus, - pub amount_msat: Amount, - pub amount_sent_msat: Amount, - pub created_at: f64, - pub parts: u32, - pub payment_hash: Sha256, - pub payment_preimage: Secret, + pub label: Option, + pub active: bool, + pub bolt12: String, + pub invreq_id: Sha256, + pub single_use: bool, + pub used: bool, } - impl TryFrom for KeysendResponse { + impl TryFrom for InvoicerequestResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::KeySend(response) => Ok(response), + Response::InvoiceRequest(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FundpsbtReservations { - pub reserved: bool, - pub reserved_to_block: u32, - pub txid: String, - pub vout: u32, - pub was_reserved: bool, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FundpsbtResponse { + pub struct DisableinvoicerequestResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub change_outnum: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub reservations: Option>, - pub estimated_final_weight: u32, - pub excess_msat: Amount, - pub feerate_per_kw: u32, - pub psbt: String, + pub label: Option, + pub active: bool, + pub bolt12: String, + pub invreq_id: Sha256, + pub single_use: bool, + pub used: bool, } - impl TryFrom for FundpsbtResponse { + impl TryFrom for DisableinvoicerequestResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::FundPsbt(response) => Ok(response), + Response::DisableInvoiceRequest(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SendpsbtResponse { - pub tx: String, - pub txid: String, - } - - impl TryFrom for SendpsbtResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::SendPsbt(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + pub struct ListinvoicerequestsInvoicerequests { + #[serde(skip_serializing_if = "Option::is_none")] + pub label: Option, + pub active: bool, + pub bolt12: String, + pub invreq_id: Sha256, + pub single_use: bool, + pub used: bool, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SignpsbtResponse { - pub signed_psbt: String, + pub struct ListinvoicerequestsResponse { + pub invoicerequests: Vec, } - impl TryFrom for SignpsbtResponse { + impl TryFrom for ListinvoicerequestsResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::SignPsbt(response) => Ok(response), + Response::ListInvoiceRequests(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct UtxopsbtReservations { - pub reserved: bool, - pub reserved_to_block: u32, - pub txid: String, - pub vout: u32, - pub was_reserved: bool, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct UtxopsbtResponse { + pub struct ListdatastoreDatastore { #[serde(skip_serializing_if = "Option::is_none")] - pub change_outnum: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub reservations: Option>, - pub estimated_final_weight: u32, - pub excess_msat: Amount, - pub feerate_per_kw: u32, - pub psbt: String, - } - - impl TryFrom for UtxopsbtResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::UtxoPsbt(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + pub generation: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub hex: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub string: Option, + pub key: Vec, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct TxdiscardResponse { - pub txid: String, - pub unsigned_tx: String, + pub struct ListdatastoreResponse { + pub datastore: Vec, } - impl TryFrom for TxdiscardResponse { + impl TryFrom for ListdatastoreResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::TxDiscard(response) => Ok(response), + Response::ListDatastore(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct TxprepareResponse { - pub psbt: String, + pub struct ListinvoicesInvoicesPaid_outpoint { + pub outnum: u32, pub txid: String, - pub unsigned_tx: String, } - impl TryFrom for TxprepareResponse { - type Error = super::TryFromResponseError; + /// ["Whether it's paid, unpaid or unpayable."] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum ListinvoicesInvoicesStatus { + #[serde(rename = "unpaid")] + UNPAID = 0, + #[serde(rename = "paid")] + PAID = 1, + #[serde(rename = "expired")] + EXPIRED = 2, + } - fn try_from(response: Response) -> Result { - match response { - Response::TxPrepare(response) => Ok(response), - _ => Err(TryFromResponseError) + impl TryFrom for ListinvoicesInvoicesStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(ListinvoicesInvoicesStatus::UNPAID), + 1 => Ok(ListinvoicesInvoicesStatus::PAID), + 2 => Ok(ListinvoicesInvoicesStatus::EXPIRED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListinvoicesInvoicesStatus", o)), } } } + impl ToString for ListinvoicesInvoicesStatus { + fn to_string(&self) -> String { + match self { + ListinvoicesInvoicesStatus::UNPAID => "UNPAID", + ListinvoicesInvoicesStatus::PAID => "PAID", + ListinvoicesInvoicesStatus::EXPIRED => "EXPIRED", + }.to_string() + } + } + #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct TxsendResponse { - pub psbt: String, - pub tx: String, - pub txid: String, + pub struct ListinvoicesInvoices { + #[serde(skip_serializing_if = "Option::is_none")] + pub amount_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub amount_received_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub bolt11: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub bolt12: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub created_index: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invreq_payer_note: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub local_offer_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub paid_at: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub paid_outpoint: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub pay_index: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_preimage: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub updated_index: Option, + // Path `ListInvoices.invoices[].status` + pub status: ListinvoicesInvoicesStatus, + pub expires_at: u64, + pub label: String, + pub payment_hash: Sha256, } - impl TryFrom for TxsendResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListinvoicesResponse { + pub invoices: Vec, + } + + impl TryFrom for ListinvoicesResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::TxSend(response) => Ok(response), + Response::ListInvoices(response) => Ok(response), _ => Err(TryFromResponseError) } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannelsAlias { - #[serde(skip_serializing_if = "Option::is_none")] - pub local: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub remote: Option, + /// ['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")] + PENDING = 0, + #[serde(rename = "complete")] + COMPLETE = 1, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannelsFeerate { - pub perkb: u32, - pub perkw: u32, + impl TryFrom for SendonionStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(SendonionStatus::PENDING), + 1 => Ok(SendonionStatus::COMPLETE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum SendonionStatus", o)), + } + } + } + + impl ToString for SendonionStatus { + fn to_string(&self) -> String { + match self { + SendonionStatus::PENDING => "PENDING", + SendonionStatus::COMPLETE => "COMPLETE", + }.to_string() + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannelsFunding { + pub struct SendonionResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub fee_paid_msat: Option, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub fee_rcvd_msat: Option, + pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub pushed_msat: Option, - pub local_funds_msat: Amount, - pub remote_funds_msat: Amount, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannelsUpdatesRemote { - pub cltv_expiry_delta: u32, - pub fee_base_msat: Amount, - pub fee_proportional_millionths: u32, - pub htlc_maximum_msat: Amount, - pub htlc_minimum_msat: Amount, + pub bolt12: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub created_index: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub destination: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub label: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub message: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub partid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_preimage: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub updated_index: Option, + // Path `SendOnion.status` + pub status: SendonionStatus, + pub amount_sent_msat: Amount, + pub created_at: u64, + pub id: u64, + pub payment_hash: Sha256, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannelsUpdatesLocal { - pub cltv_expiry_delta: u32, - pub fee_base_msat: Amount, - pub fee_proportional_millionths: u32, - pub htlc_maximum_msat: Amount, - pub htlc_minimum_msat: Amount, - } + impl TryFrom for SendonionResponse { + type Error = super::TryFromResponseError; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannelsUpdates { - #[serde(skip_serializing_if = "Option::is_none")] - pub remote: Option, - pub local: ListpeerchannelsChannelsUpdatesLocal, + fn try_from(response: Response) -> Result { + match response { + Response::SendOnion(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } - /// ['Whether it came from peer, or is going to peer.'] + /// ['Status of the payment.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListpeerchannelsChannelsHtlcsDirection { - #[serde(rename = "in")] - IN = 0, - #[serde(rename = "out")] - OUT = 1, + pub enum ListsendpaysPaymentsStatus { + #[serde(rename = "pending")] + PENDING = 0, + #[serde(rename = "failed")] + FAILED = 1, + #[serde(rename = "complete")] + COMPLETE = 2, } - impl TryFrom for ListpeerchannelsChannelsHtlcsDirection { + impl TryFrom for ListsendpaysPaymentsStatus { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListpeerchannelsChannelsHtlcsDirection::IN), - 1 => Ok(ListpeerchannelsChannelsHtlcsDirection::OUT), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeerchannelsChannelsHtlcsDirection", o)), + 0 => Ok(ListsendpaysPaymentsStatus::PENDING), + 1 => Ok(ListsendpaysPaymentsStatus::FAILED), + 2 => Ok(ListsendpaysPaymentsStatus::COMPLETE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListsendpaysPaymentsStatus", o)), } } } - impl ToString for ListpeerchannelsChannelsHtlcsDirection { + impl ToString for ListsendpaysPaymentsStatus { fn to_string(&self) -> String { match self { - ListpeerchannelsChannelsHtlcsDirection::IN => "IN", - ListpeerchannelsChannelsHtlcsDirection::OUT => "OUT", + ListsendpaysPaymentsStatus::PENDING => "PENDING", + ListsendpaysPaymentsStatus::FAILED => "FAILED", + ListsendpaysPaymentsStatus::COMPLETE => "COMPLETE", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannelsHtlcs { + pub struct ListsendpaysPayments { #[serde(skip_serializing_if = "Option::is_none")] - pub local_trimmed: Option, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub status: Option, - // Path `ListPeerChannels.channels[].htlcs[].direction` - pub direction: ListpeerchannelsChannelsHtlcsDirection, - // Path `ListPeerChannels.channels[].htlcs[].state` - pub state: HtlcState, - pub amount_msat: Amount, - pub expiry: u32, + pub bolt11: Option, + #[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 created_index: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub destination: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub erroronion: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub label: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub partid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_preimage: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub updated_index: Option, + // Path `ListSendPays.payments[].status` + pub status: ListsendpaysPaymentsStatus, + pub amount_sent_msat: Amount, + pub created_at: u64, + pub groupid: u64, pub id: u64, pub payment_hash: Sha256, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannelsInflight { - #[serde(skip_serializing_if = "Option::is_none")] - pub scratch_txid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub splice_amount: Option, - pub feerate: String, - pub funding_outnum: u32, - pub funding_txid: String, - pub our_funding_msat: Amount, - pub total_funding_msat: Amount, + pub struct ListsendpaysResponse { + pub payments: Vec, } - /// ['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")] - OPENINGD = 0, - #[serde(rename = "CHANNELD_AWAITING_LOCKIN")] - CHANNELD_AWAITING_LOCKIN = 1, - #[serde(rename = "CHANNELD_NORMAL")] - CHANNELD_NORMAL = 2, - #[serde(rename = "CHANNELD_SHUTTING_DOWN")] - CHANNELD_SHUTTING_DOWN = 3, - #[serde(rename = "CLOSINGD_SIGEXCHANGE")] - CLOSINGD_SIGEXCHANGE = 4, - #[serde(rename = "CLOSINGD_COMPLETE")] - CLOSINGD_COMPLETE = 5, - #[serde(rename = "AWAITING_UNILATERAL")] - AWAITING_UNILATERAL = 6, - #[serde(rename = "FUNDING_SPEND_SEEN")] - FUNDING_SPEND_SEEN = 7, - #[serde(rename = "ONCHAIN")] - ONCHAIN = 8, - #[serde(rename = "DUALOPEND_OPEN_INIT")] - DUALOPEND_OPEN_INIT = 9, - #[serde(rename = "DUALOPEND_AWAITING_LOCKIN")] - DUALOPEND_AWAITING_LOCKIN = 10, - #[serde(rename = "CHANNELD_AWAITING_SPLICE")] - CHANNELD_AWAITING_SPLICE = 11, - #[serde(rename = "DUALOPEND_OPEN_COMMITTED")] - DUALOPEND_OPEN_COMMITTED = 12, - #[serde(rename = "DUALOPEND_OPEN_COMMIT_READY")] - DUALOPEND_OPEN_COMMIT_READY = 13, - } + impl TryFrom for ListsendpaysResponse { + type Error = super::TryFromResponseError; - impl TryFrom for ListpeerchannelsChannelsState { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(ListpeerchannelsChannelsState::OPENINGD), - 1 => Ok(ListpeerchannelsChannelsState::CHANNELD_AWAITING_LOCKIN), - 2 => Ok(ListpeerchannelsChannelsState::CHANNELD_NORMAL), - 3 => Ok(ListpeerchannelsChannelsState::CHANNELD_SHUTTING_DOWN), - 4 => Ok(ListpeerchannelsChannelsState::CLOSINGD_SIGEXCHANGE), - 5 => Ok(ListpeerchannelsChannelsState::CLOSINGD_COMPLETE), - 6 => Ok(ListpeerchannelsChannelsState::AWAITING_UNILATERAL), - 7 => Ok(ListpeerchannelsChannelsState::FUNDING_SPEND_SEEN), - 8 => Ok(ListpeerchannelsChannelsState::ONCHAIN), - 9 => Ok(ListpeerchannelsChannelsState::DUALOPEND_OPEN_INIT), - 10 => Ok(ListpeerchannelsChannelsState::DUALOPEND_AWAITING_LOCKIN), - 11 => Ok(ListpeerchannelsChannelsState::CHANNELD_AWAITING_SPLICE), - 12 => Ok(ListpeerchannelsChannelsState::DUALOPEND_OPEN_COMMITTED), - 13 => Ok(ListpeerchannelsChannelsState::DUALOPEND_OPEN_COMMIT_READY), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeerchannelsChannelsState", o)), + fn try_from(response: Response) -> Result { + match response { + Response::ListSendPays(response) => Ok(response), + _ => Err(TryFromResponseError) } } } - impl ToString for ListpeerchannelsChannelsState { - fn to_string(&self) -> String { - match self { - ListpeerchannelsChannelsState::OPENINGD => "OPENINGD", - ListpeerchannelsChannelsState::CHANNELD_AWAITING_LOCKIN => "CHANNELD_AWAITING_LOCKIN", - ListpeerchannelsChannelsState::CHANNELD_NORMAL => "CHANNELD_NORMAL", - ListpeerchannelsChannelsState::CHANNELD_SHUTTING_DOWN => "CHANNELD_SHUTTING_DOWN", - ListpeerchannelsChannelsState::CLOSINGD_SIGEXCHANGE => "CLOSINGD_SIGEXCHANGE", - ListpeerchannelsChannelsState::CLOSINGD_COMPLETE => "CLOSINGD_COMPLETE", - ListpeerchannelsChannelsState::AWAITING_UNILATERAL => "AWAITING_UNILATERAL", - ListpeerchannelsChannelsState::FUNDING_SPEND_SEEN => "FUNDING_SPEND_SEEN", - ListpeerchannelsChannelsState::ONCHAIN => "ONCHAIN", - ListpeerchannelsChannelsState::DUALOPEND_OPEN_INIT => "DUALOPEND_OPEN_INIT", - ListpeerchannelsChannelsState::DUALOPEND_AWAITING_LOCKIN => "DUALOPEND_AWAITING_LOCKIN", - ListpeerchannelsChannelsState::CHANNELD_AWAITING_SPLICE => "CHANNELD_AWAITING_SPLICE", - ListpeerchannelsChannelsState::DUALOPEND_OPEN_COMMITTED => "DUALOPEND_OPEN_COMMITTED", - ListpeerchannelsChannelsState::DUALOPEND_OPEN_COMMIT_READY => "DUALOPEND_OPEN_COMMIT_READY", - }.to_string() - } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListtransactionsTransactionsInputs { + pub index: u32, + pub sequence: u32, + pub txid: String, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannels { - #[serde(skip_serializing_if = "Option::is_none")] - pub alias: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub channel_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub close_to: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub close_to_addr: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub closer: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub direction: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub dust_limit_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub fee_base_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub fee_proportional_millionths: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub feerate: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub funding: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub funding_outnum: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub funding_txid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub ignore_fee_limits: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub in_fulfilled_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub in_offered_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub in_payments_fulfilled: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub in_payments_offered: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub initial_feerate: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub last_feerate: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub last_stable_connection: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub last_tx_fee_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub lost_state: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub max_accepted_htlcs: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub max_to_us_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub max_total_htlc_in_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub maximum_htlc_out_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub min_to_us_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub minimum_htlc_in_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub minimum_htlc_out_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub next_fee_step: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub next_feerate: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub our_reserve_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub our_to_self_delay: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub out_fulfilled_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub out_offered_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub out_payments_fulfilled: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub out_payments_offered: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub owner: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub private: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub receivable_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub reestablished: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub scratch_txid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub short_channel_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub spendable_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub their_reserve_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub their_to_self_delay: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub to_us_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub total_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub updates: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub htlcs: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub inflight: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub status: Option>, - // Path `ListPeerChannels.channels[].opener` - pub opener: ChannelSide, - // Path `ListPeerChannels.channels[].state` - pub state: ListpeerchannelsChannelsState, - pub peer_connected: bool, - pub peer_id: PublicKey, + pub struct ListtransactionsTransactionsOutputs { + #[serde(rename = "scriptPubKey")] + pub script_pub_key: String, + pub amount_msat: Amount, + pub index: u32, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsResponse { - pub channels: Vec, + pub struct ListtransactionsTransactions { + pub blockheight: u32, + pub hash: String, + pub inputs: Vec, + pub locktime: u32, + pub outputs: Vec, + pub rawtx: String, + pub txindex: u32, + pub version: u32, } - impl TryFrom for ListpeerchannelsResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListtransactionsResponse { + pub transactions: Vec, + } + + impl TryFrom for ListtransactionsResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ListPeerChannels(response) => Ok(response), + Response::ListTransactions(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListclosedchannelsClosedchannelsAlias { - #[serde(skip_serializing_if = "Option::is_none")] - pub local: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub remote: Option, + pub struct MakesecretResponse { + pub secret: Secret, } - /// ['What caused the channel to close.'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListclosedchannelsClosedchannelsClose_cause { - #[serde(rename = "unknown")] - UNKNOWN = 0, - #[serde(rename = "local")] - LOCAL = 1, - #[serde(rename = "user")] - USER = 2, - #[serde(rename = "remote")] - REMOTE = 3, - #[serde(rename = "protocol")] - PROTOCOL = 4, - #[serde(rename = "onchain")] - ONCHAIN = 5, + impl TryFrom for MakesecretResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::MakeSecret(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } - impl TryFrom for ListclosedchannelsClosedchannelsClose_cause { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(ListclosedchannelsClosedchannelsClose_cause::UNKNOWN), - 1 => Ok(ListclosedchannelsClosedchannelsClose_cause::LOCAL), - 2 => Ok(ListclosedchannelsClosedchannelsClose_cause::USER), - 3 => Ok(ListclosedchannelsClosedchannelsClose_cause::REMOTE), - 4 => Ok(ListclosedchannelsClosedchannelsClose_cause::PROTOCOL), - 5 => Ok(ListclosedchannelsClosedchannelsClose_cause::ONCHAIN), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListclosedchannelsClosedchannelsClose_cause", o)), + /// ['Status of payment.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum PayStatus { + #[serde(rename = "complete")] + COMPLETE = 0, + #[serde(rename = "pending")] + PENDING = 1, + #[serde(rename = "failed")] + FAILED = 2, + } + + impl TryFrom for PayStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(PayStatus::COMPLETE), + 1 => Ok(PayStatus::PENDING), + 2 => Ok(PayStatus::FAILED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum PayStatus", o)), } } } - impl ToString for ListclosedchannelsClosedchannelsClose_cause { + impl ToString for PayStatus { fn to_string(&self) -> String { match self { - ListclosedchannelsClosedchannelsClose_cause::UNKNOWN => "UNKNOWN", - ListclosedchannelsClosedchannelsClose_cause::LOCAL => "LOCAL", - ListclosedchannelsClosedchannelsClose_cause::USER => "USER", - ListclosedchannelsClosedchannelsClose_cause::REMOTE => "REMOTE", - ListclosedchannelsClosedchannelsClose_cause::PROTOCOL => "PROTOCOL", - ListclosedchannelsClosedchannelsClose_cause::ONCHAIN => "ONCHAIN", + PayStatus::COMPLETE => "COMPLETE", + PayStatus::PENDING => "PENDING", + PayStatus::FAILED => "FAILED", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListclosedchannelsClosedchannels { - #[serde(skip_serializing_if = "Option::is_none")] - pub alias: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub closer: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub funding_fee_paid_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub funding_fee_rcvd_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub funding_pushed_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub last_commitment_fee_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub last_commitment_txid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub last_stable_connection: Option, + pub struct PayResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub peer_id: Option, + pub destination: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub short_channel_id: Option, - // Path `ListClosedChannels.closedchannels[].close_cause` - pub close_cause: ListclosedchannelsClosedchannelsClose_cause, - // Path `ListClosedChannels.closedchannels[].opener` - pub opener: ChannelSide, - pub channel_id: Sha256, - pub final_to_us_msat: Amount, - pub funding_outnum: u32, - pub funding_txid: String, - pub leased: bool, - pub max_to_us_msat: Amount, - pub min_to_us_msat: Amount, - pub private: bool, - pub total_htlcs_sent: u64, - pub total_local_commitments: u64, - pub total_msat: Amount, - pub total_remote_commitments: u64, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListclosedchannelsResponse { - pub closedchannels: Vec, + pub warning_partial_completion: Option, + // Path `Pay.status` + pub status: PayStatus, + pub amount_msat: Amount, + pub amount_sent_msat: Amount, + pub created_at: f64, + pub parts: u32, + pub payment_hash: Sha256, + pub payment_preimage: Secret, } - impl TryFrom for ListclosedchannelsResponse { + impl TryFrom for PayResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ListClosedChannels(response) => Ok(response), + Response::Pay(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodepayExtra { - pub data: String, - pub tag: String, + pub struct ListnodesNodesOption_will_fund { + pub channel_fee_max_base_msat: Amount, + pub channel_fee_max_proportional_thousandths: u32, + pub compact_lease: String, + pub funding_weight: u32, + pub lease_fee_base_msat: Amount, + pub lease_fee_basis: u32, } - /// ['The address type (if known).'] + /// ['Type of connection (until 23.08, `websocket` was also allowed).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum DecodepayFallbacksType { - #[serde(rename = "P2PKH")] - P2PKH = 0, - #[serde(rename = "P2SH")] - P2SH = 1, - #[serde(rename = "P2WPKH")] - P2WPKH = 2, - #[serde(rename = "P2WSH")] - P2WSH = 3, - #[serde(rename = "P2TR")] - P2TR = 4, + pub enum ListnodesNodesAddressesType { + #[serde(rename = "dns")] + DNS = 0, + #[serde(rename = "ipv4")] + IPV4 = 1, + #[serde(rename = "ipv6")] + IPV6 = 2, + #[serde(rename = "torv2")] + TORV2 = 3, + #[serde(rename = "torv3")] + TORV3 = 4, } - impl TryFrom for DecodepayFallbacksType { + impl TryFrom for ListnodesNodesAddressesType { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(DecodepayFallbacksType::P2PKH), - 1 => Ok(DecodepayFallbacksType::P2SH), - 2 => Ok(DecodepayFallbacksType::P2WPKH), - 3 => Ok(DecodepayFallbacksType::P2WSH), - 4 => Ok(DecodepayFallbacksType::P2TR), - o => Err(anyhow::anyhow!("Unknown variant {} for enum DecodepayFallbacksType", o)), + 0 => Ok(ListnodesNodesAddressesType::DNS), + 1 => Ok(ListnodesNodesAddressesType::IPV4), + 2 => Ok(ListnodesNodesAddressesType::IPV6), + 3 => Ok(ListnodesNodesAddressesType::TORV2), + 4 => Ok(ListnodesNodesAddressesType::TORV3), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListnodesNodesAddressesType", o)), } } } - impl ToString for DecodepayFallbacksType { + impl ToString for ListnodesNodesAddressesType { fn to_string(&self) -> String { match self { - DecodepayFallbacksType::P2PKH => "P2PKH", - DecodepayFallbacksType::P2SH => "P2SH", - DecodepayFallbacksType::P2WPKH => "P2WPKH", - DecodepayFallbacksType::P2WSH => "P2WSH", - DecodepayFallbacksType::P2TR => "P2TR", + ListnodesNodesAddressesType::DNS => "DNS", + ListnodesNodesAddressesType::IPV4 => "IPV4", + ListnodesNodesAddressesType::IPV6 => "IPV6", + ListnodesNodesAddressesType::TORV2 => "TORV2", + ListnodesNodesAddressesType::TORV3 => "TORV3", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodepayFallbacks { + pub struct ListnodesNodesAddresses { #[serde(skip_serializing_if = "Option::is_none")] - pub addr: Option, - // Path `DecodePay.fallbacks[].type` + pub address: Option, + // Path `ListNodes.nodes[].addresses[].type` #[serde(rename = "type")] - pub item_type: DecodepayFallbacksType, - pub hex: String, + pub item_type: ListnodesNodesAddressesType, + pub port: u16, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodepayResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, + pub struct ListnodesNodes { #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, + pub alias: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description_hash: Option, + pub color: Option, #[serde(skip_serializing_if = "Option::is_none")] pub features: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_metadata: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub payment_secret: Option, + pub last_timestamp: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub routes: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub extra: Option>, + pub option_will_fund: Option, #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub fallbacks: Option>, - pub created_at: u64, - pub currency: String, - pub expiry: u64, - pub min_final_cltv_expiry: u32, - pub payee: PublicKey, - pub payment_hash: Sha256, - pub signature: String, + pub addresses: Option>, + pub nodeid: PublicKey, } - impl TryFrom for DecodepayResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListnodesResponse { + pub nodes: Vec, + } + + impl TryFrom for ListnodesResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::DecodePay(response) => Ok(response), + Response::ListNodes(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeExtra { - pub data: String, - pub tag: String, + pub struct WaitanyinvoicePaid_outpoint { + pub outnum: u32, + pub txid: String, } - /// ['The address type (if known).'] + /// ["Whether it's paid or expired."] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum DecodeFallbacksType { - #[serde(rename = "P2PKH")] - P2PKH = 0, - #[serde(rename = "P2SH")] - P2SH = 1, - #[serde(rename = "P2WPKH")] - P2WPKH = 2, - #[serde(rename = "P2WSH")] - P2WSH = 3, - #[serde(rename = "P2TR")] - P2TR = 4, + pub enum WaitanyinvoiceStatus { + #[serde(rename = "paid")] + PAID = 0, + #[serde(rename = "expired")] + EXPIRED = 1, } - impl TryFrom for DecodeFallbacksType { + impl TryFrom for WaitanyinvoiceStatus { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(DecodeFallbacksType::P2PKH), - 1 => Ok(DecodeFallbacksType::P2SH), - 2 => Ok(DecodeFallbacksType::P2WPKH), - 3 => Ok(DecodeFallbacksType::P2WSH), - 4 => Ok(DecodeFallbacksType::P2TR), - o => Err(anyhow::anyhow!("Unknown variant {} for enum DecodeFallbacksType", o)), + 0 => Ok(WaitanyinvoiceStatus::PAID), + 1 => Ok(WaitanyinvoiceStatus::EXPIRED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitanyinvoiceStatus", o)), } } } - impl ToString for DecodeFallbacksType { + impl ToString for WaitanyinvoiceStatus { fn to_string(&self) -> String { match self { - DecodeFallbacksType::P2PKH => "P2PKH", - DecodeFallbacksType::P2SH => "P2SH", - DecodeFallbacksType::P2WPKH => "P2WPKH", - DecodeFallbacksType::P2WSH => "P2WSH", - DecodeFallbacksType::P2TR => "P2TR", + WaitanyinvoiceStatus::PAID => "PAID", + WaitanyinvoiceStatus::EXPIRED => "EXPIRED", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeFallbacks { + pub struct WaitanyinvoiceResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub addr: Option, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invoice_fallbacks_version_invalid: Option, - // Path `Decode.fallbacks[].type` - #[serde(rename = "type")] - pub item_type: DecodeFallbacksType, - pub hex: String, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeInvoice_fallbacks { + pub amount_received_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub address: Option, - pub hex: String, - pub version: u8, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeInvreq_pathsPath { - pub blinded_node_id: PublicKey, - pub encrypted_recipient_data: String, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeInvreq_paths { - #[deprecated] - #[serde(skip_serializing_if = "Option::is_none")] - pub blinding: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub first_node_id: Option, + pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub first_path_key: Option, + pub bolt12: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub first_scid: Option, + pub created_index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub first_scid_dir: Option, - pub path: Vec, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeOffer_paths { - #[deprecated] + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub blinding: Option, + pub paid_at: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub first_node_id: Option, + pub paid_outpoint: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub first_path_key: Option, + pub pay_index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub first_scid: Option, + pub payment_preimage: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub first_scid_dir: Option, + pub updated_index: Option, + // Path `WaitAnyInvoice.status` + pub status: WaitanyinvoiceStatus, + pub expires_at: u64, + pub label: String, + pub payment_hash: Sha256, + } + + impl TryFrom for WaitanyinvoiceResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::WaitAnyInvoice(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeRestrictions { - pub alternatives: Vec, - pub summary: String, + pub struct WaitinvoicePaid_outpoint { + pub outnum: u32, + pub txid: String, } - /// ['What kind of object it decoded to.'] + /// ["Whether it's paid or expired."] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum DecodeType { - #[serde(rename = "bolt12 offer")] - BOLT12_OFFER = 0, - #[serde(rename = "bolt12 invoice")] - BOLT12_INVOICE = 1, - #[serde(rename = "bolt12 invoice_request")] - BOLT12_INVOICE_REQUEST = 2, - #[serde(rename = "bolt11 invoice")] - BOLT11_INVOICE = 3, - #[serde(rename = "rune")] - RUNE = 4, - #[serde(rename = "emergency recover")] - EMERGENCY_RECOVER = 5, + pub enum WaitinvoiceStatus { + #[serde(rename = "paid")] + PAID = 0, + #[serde(rename = "expired")] + EXPIRED = 1, } - impl TryFrom for DecodeType { + impl TryFrom for WaitinvoiceStatus { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(DecodeType::BOLT12_OFFER), - 1 => Ok(DecodeType::BOLT12_INVOICE), - 2 => Ok(DecodeType::BOLT12_INVOICE_REQUEST), - 3 => Ok(DecodeType::BOLT11_INVOICE), - 4 => Ok(DecodeType::RUNE), - 5 => Ok(DecodeType::EMERGENCY_RECOVER), - o => Err(anyhow::anyhow!("Unknown variant {} for enum DecodeType", o)), + 0 => Ok(WaitinvoiceStatus::PAID), + 1 => Ok(WaitinvoiceStatus::EXPIRED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitinvoiceStatus", o)), } } } - impl ToString for DecodeType { + impl ToString for WaitinvoiceStatus { fn to_string(&self) -> String { match self { - DecodeType::BOLT12_OFFER => "BOLT12_OFFER", - DecodeType::BOLT12_INVOICE => "BOLT12_INVOICE", - DecodeType::BOLT12_INVOICE_REQUEST => "BOLT12_INVOICE_REQUEST", - DecodeType::BOLT11_INVOICE => "BOLT11_INVOICE", - DecodeType::RUNE => "RUNE", - DecodeType::EMERGENCY_RECOVER => "EMERGENCY_RECOVER", + WaitinvoiceStatus::PAID => "PAID", + WaitinvoiceStatus::EXPIRED => "EXPIRED", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeResponse { - #[deprecated] - #[serde(skip_serializing_if = "Option::is_none")] - pub offer_node_id: Option, - #[deprecated] - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_offer_node_id: Option, + pub struct WaitinvoiceResponse { #[serde(skip_serializing_if = "Option::is_none")] pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub created_at: Option, + pub amount_received_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub currency: Option, + pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub currency_minor_unit: Option, + pub bolt12: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub decrypted: Option, + pub created_index: Option, #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description_hash: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub expiry: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub features: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub hex: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_amount_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_created_at: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_features: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_node_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_payment_hash: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_recurrence_basetime: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_relative_expiry: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_amount_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_chain: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_features: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_metadata: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_payer_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_payer_note: Option, + pub paid_at: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_quantity: Option, + pub paid_outpoint: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_recurrence_counter: Option, + pub pay_index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_recurrence_start: Option, + pub payment_preimage: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub min_final_cltv_expiry: Option, + pub updated_index: Option, + // Path `WaitInvoice.status` + pub status: WaitinvoiceStatus, + pub expires_at: u64, + pub label: String, + pub payment_hash: Sha256, + } + + impl TryFrom for WaitinvoiceResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::WaitInvoice(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + /// ['Status of the payment.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum WaitsendpayStatus { + #[serde(rename = "complete")] + COMPLETE = 0, + } + + impl TryFrom for WaitsendpayStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(WaitsendpayStatus::COMPLETE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitsendpayStatus", o)), + } + } + } + + impl ToString for WaitsendpayStatus { + fn to_string(&self) -> String { + match self { + WaitsendpayStatus::COMPLETE => "COMPLETE", + }.to_string() + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct WaitsendpayResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub offer_absolute_expiry: Option, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_amount: Option, + pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_amount_msat: Option, + pub bolt12: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_currency: Option, + pub completed_at: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_description: Option, + pub created_index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_features: Option, + pub destination: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_id: Option, + pub groupid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_issuer: Option, + pub label: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_issuer_id: Option, + pub partid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_metadata: Option, + pub payment_preimage: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_quantity_max: Option, + pub updated_index: Option, + // Path `WaitSendPay.status` + pub status: WaitsendpayStatus, + pub amount_sent_msat: Amount, + pub created_at: u64, + pub id: u64, + pub payment_hash: Sha256, + } + + impl TryFrom for WaitsendpayResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::WaitSendPay(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct NewaddrResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub payee: Option, + pub bech32: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_hash: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub payment_metadata: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub payment_secret: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub routes: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub signature: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub string: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub unique_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub version: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_empty_blinded_path: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invalid_invoice_request_signature: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invalid_invoice_signature: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invalid_invreq_payer_note: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invalid_offer_currency: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invalid_offer_description: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invalid_offer_issuer: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_amount: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_blindedpay: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_created_at: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_node_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_paths: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_payment_hash: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_recurrence_basetime: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_request_signature: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_signature: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invreq_metadata: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invreq_payer_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_offer_description: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_offer_issuer_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_rune_invalid_utf8: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_unknown_offer_currency: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub extra: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub fallbacks: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub invoice_fallbacks: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub invreq_paths: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub offer_chains: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub offer_paths: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub restrictions: Option>, - // Path `Decode.type` - #[serde(rename = "type")] - pub item_type: DecodeType, - pub valid: bool, + pub p2tr: Option, } - impl TryFrom for DecodeResponse { + impl TryFrom for NewaddrResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Decode(response) => Ok(response), + Response::NewAddr(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Status of the payment.'] + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct WithdrawResponse { + pub psbt: String, + pub tx: String, + pub txid: String, + } + + impl TryFrom for WithdrawResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::Withdraw(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + /// ['Status of payment.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum DelpayPaymentsStatus { - #[serde(rename = "pending")] - PENDING = 0, - #[serde(rename = "failed")] - FAILED = 1, + pub enum KeysendStatus { #[serde(rename = "complete")] - COMPLETE = 2, + COMPLETE = 0, } - impl TryFrom for DelpayPaymentsStatus { + impl TryFrom for KeysendStatus { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(DelpayPaymentsStatus::PENDING), - 1 => Ok(DelpayPaymentsStatus::FAILED), - 2 => Ok(DelpayPaymentsStatus::COMPLETE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum DelpayPaymentsStatus", o)), + 0 => Ok(KeysendStatus::COMPLETE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum KeysendStatus", o)), } } } - impl ToString for DelpayPaymentsStatus { + impl ToString for KeysendStatus { fn to_string(&self) -> String { match self { - DelpayPaymentsStatus::PENDING => "PENDING", - DelpayPaymentsStatus::FAILED => "FAILED", - DelpayPaymentsStatus::COMPLETE => "COMPLETE", + KeysendStatus::COMPLETE => "COMPLETE", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DelpayPayments { - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, - #[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 created_index: Option, + pub struct KeysendResponse { #[serde(skip_serializing_if = "Option::is_none")] pub destination: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub erroronion: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub groupid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub partid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub payment_preimage: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - // Path `DelPay.payments[].status` - pub status: DelpayPaymentsStatus, + pub warning_partial_completion: Option, + // Path `KeySend.status` + pub status: KeysendStatus, + pub amount_msat: Amount, pub amount_sent_msat: Amount, - pub created_at: u64, - pub id: u64, + pub created_at: f64, + pub parts: u32, pub payment_hash: Sha256, + pub payment_preimage: Secret, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DelpayResponse { - pub payments: Vec, - } - - impl TryFrom for DelpayResponse { + impl TryFrom for KeysendResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::DelPay(response) => Ok(response), + Response::KeySend(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DelforwardResponse { + pub struct FundpsbtReservations { + pub reserved: bool, + pub reserved_to_block: u32, + pub txid: String, + pub vout: u32, + pub was_reserved: bool, } - impl TryFrom for DelforwardResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct FundpsbtResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub change_outnum: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub reservations: Option>, + pub estimated_final_weight: u32, + pub excess_msat: Amount, + pub feerate_per_kw: u32, + pub psbt: String, + } + + impl TryFrom for FundpsbtResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::DelForward(response) => Ok(response), + Response::FundPsbt(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DisableofferResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, - pub active: bool, - pub bolt12: String, - pub offer_id: Sha256, - pub single_use: bool, - pub used: bool, + pub struct SendpsbtResponse { + pub tx: String, + pub txid: String, } - impl TryFrom for DisableofferResponse { + impl TryFrom for SendpsbtResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::DisableOffer(response) => Ok(response), + Response::SendPsbt(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DisconnectResponse { + pub struct SignpsbtResponse { + pub signed_psbt: String, } - impl TryFrom for DisconnectResponse { + impl TryFrom for SignpsbtResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Disconnect(response) => Ok(response), + Response::SignPsbt(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FeeratesOnchain_fee_estimates { - #[serde(skip_serializing_if = "Option::is_none")] - pub unilateral_close_nonanchor_satoshis: Option, - pub htlc_success_satoshis: u64, - pub htlc_timeout_satoshis: u64, - pub mutual_close_satoshis: u64, - pub opening_channel_satoshis: u64, - pub unilateral_close_satoshis: u64, + pub struct UtxopsbtReservations { + pub reserved: bool, + pub reserved_to_block: u32, + pub txid: String, + pub vout: u32, + pub was_reserved: bool, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FeeratesPerkbEstimates { - pub blockcount: u32, - pub feerate: u32, - pub smoothed_feerate: u32, + pub struct UtxopsbtResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub change_outnum: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub reservations: Option>, + pub estimated_final_weight: u32, + pub excess_msat: Amount, + pub feerate_per_kw: u32, + pub psbt: String, + } + + impl TryFrom for UtxopsbtResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::UtxoPsbt(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FeeratesPerkb { - #[deprecated] - #[serde(skip_serializing_if = "Option::is_none")] - pub delayed_to_us: Option, - #[deprecated] - #[serde(skip_serializing_if = "Option::is_none")] - pub htlc_resolution: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub floor: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub mutual_close: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub opening: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub penalty: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub unilateral_anchor_close: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub unilateral_close: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub estimates: Option>, - pub max_acceptable: u32, - pub min_acceptable: u32, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FeeratesPerkwEstimates { - pub blockcount: u32, - pub feerate: u32, - pub smoothed_feerate: u32, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FeeratesPerkw { - #[deprecated] - #[serde(skip_serializing_if = "Option::is_none")] - pub delayed_to_us: Option, - #[deprecated] - #[serde(skip_serializing_if = "Option::is_none")] - pub htlc_resolution: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub floor: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub mutual_close: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub opening: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub penalty: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub unilateral_anchor_close: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub unilateral_close: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub estimates: Option>, - pub max_acceptable: u32, - pub min_acceptable: u32, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FeeratesResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub onchain_fee_estimates: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub perkb: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub perkw: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_feerates: Option, + pub struct TxdiscardResponse { + pub txid: String, + pub unsigned_tx: String, } - impl TryFrom for FeeratesResponse { + impl TryFrom for TxdiscardResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Feerates(response) => Ok(response), + Response::TxDiscard(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FetchinvoiceNext_period { - pub counter: u64, - pub endtime: u64, - pub paywindow_end: u64, - pub paywindow_start: u64, - pub starttime: u64, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FetchinvoiceChanges { - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub description_appended: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub vendor: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub vendor_removed: Option, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FetchinvoiceResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub next_period: Option, - pub changes: FetchinvoiceChanges, - pub invoice: String, + pub struct TxprepareResponse { + pub psbt: String, + pub txid: String, + pub unsigned_tx: String, } - impl TryFrom for FetchinvoiceResponse { + impl TryFrom for TxprepareResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::FetchInvoice(response) => Ok(response), + Response::TxPrepare(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Fundchannel_cancelResponse { - pub cancelled: String, + pub struct TxsendResponse { + pub psbt: String, + pub tx: String, + pub txid: String, } - impl TryFrom for Fundchannel_cancelResponse { + impl TryFrom for TxsendResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::FundChannel_Cancel(response) => Ok(response), + Response::TxSend(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Fundchannel_completeResponse { - pub channel_id: Sha256, - pub commitments_secured: bool, - } - - impl TryFrom for Fundchannel_completeResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::FundChannel_Complete(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + pub struct ListpeerchannelsChannelsAlias { + #[serde(skip_serializing_if = "Option::is_none")] + pub local: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub remote: Option, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FundchannelChannel_type { - pub bits: Vec, - pub names: Vec, + pub struct ListpeerchannelsChannelsFeerate { + pub perkb: u32, + pub perkw: u32, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FundchannelResponse { + pub struct ListpeerchannelsChannelsFunding { #[serde(skip_serializing_if = "Option::is_none")] - pub channel_type: Option, + pub fee_paid_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub close_to: Option, + pub fee_rcvd_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub mindepth: Option, - pub channel_id: Sha256, - pub outnum: u32, - pub tx: String, - pub txid: String, + pub pushed_msat: Option, + pub local_funds_msat: Amount, + pub remote_funds_msat: Amount, } - impl TryFrom for FundchannelResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::FundChannel(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListpeerchannelsChannelsUpdatesRemote { + pub cltv_expiry_delta: u32, + pub fee_base_msat: Amount, + pub fee_proportional_millionths: u32, + pub htlc_maximum_msat: Amount, + pub htlc_minimum_msat: Amount, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Fundchannel_startChannel_type { - pub bits: Vec, - pub names: Vec, + pub struct ListpeerchannelsChannelsUpdatesLocal { + pub cltv_expiry_delta: u32, + pub fee_base_msat: Amount, + pub fee_proportional_millionths: u32, + pub htlc_maximum_msat: Amount, + pub htlc_minimum_msat: Amount, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Fundchannel_startResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub channel_type: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub close_to: Option, + pub struct ListpeerchannelsChannelsUpdates { #[serde(skip_serializing_if = "Option::is_none")] - pub mindepth: Option, - pub funding_address: String, - pub scriptpubkey: String, - pub warning_usage: String, - } - - impl TryFrom for Fundchannel_startResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::FundChannel_Start(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + pub remote: Option, + pub local: ListpeerchannelsChannelsUpdatesLocal, } + /// ['Whether it came from peer, or is going to peer.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum GetlogLogType { - #[serde(rename = "SKIPPED")] - SKIPPED = 0, - #[serde(rename = "BROKEN")] - BROKEN = 1, - #[serde(rename = "UNUSUAL")] - UNUSUAL = 2, - #[serde(rename = "INFO")] - INFO = 3, - #[serde(rename = "DEBUG")] - DEBUG = 4, - #[serde(rename = "IO_IN")] - IO_IN = 5, - #[serde(rename = "IO_OUT")] - IO_OUT = 6, - #[serde(rename = "TRACE")] - TRACE = 7, + pub enum ListpeerchannelsChannelsHtlcsDirection { + #[serde(rename = "in")] + IN = 0, + #[serde(rename = "out")] + OUT = 1, } - impl TryFrom for GetlogLogType { + impl TryFrom for ListpeerchannelsChannelsHtlcsDirection { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(GetlogLogType::SKIPPED), - 1 => Ok(GetlogLogType::BROKEN), - 2 => Ok(GetlogLogType::UNUSUAL), - 3 => Ok(GetlogLogType::INFO), - 4 => Ok(GetlogLogType::DEBUG), - 5 => Ok(GetlogLogType::IO_IN), - 6 => Ok(GetlogLogType::IO_OUT), - 7 => Ok(GetlogLogType::TRACE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum GetlogLogType", o)), + 0 => Ok(ListpeerchannelsChannelsHtlcsDirection::IN), + 1 => Ok(ListpeerchannelsChannelsHtlcsDirection::OUT), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeerchannelsChannelsHtlcsDirection", o)), } } } - impl ToString for GetlogLogType { + impl ToString for ListpeerchannelsChannelsHtlcsDirection { fn to_string(&self) -> String { match self { - GetlogLogType::SKIPPED => "SKIPPED", - GetlogLogType::BROKEN => "BROKEN", - GetlogLogType::UNUSUAL => "UNUSUAL", - GetlogLogType::INFO => "INFO", - GetlogLogType::DEBUG => "DEBUG", - GetlogLogType::TRACE => "TRACE", - GetlogLogType::IO_IN => "IO_IN", - GetlogLogType::IO_OUT => "IO_OUT", + ListpeerchannelsChannelsHtlcsDirection::IN => "IN", + ListpeerchannelsChannelsHtlcsDirection::OUT => "OUT", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct GetlogLog { + pub struct ListpeerchannelsChannelsHtlcs { #[serde(skip_serializing_if = "Option::is_none")] - pub data: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub log: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub node_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub num_skipped: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub source: Option, + pub local_trimmed: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub time: Option, - // Path `GetLog.log[].type` - #[serde(rename = "type")] - pub item_type: GetlogLogType, + pub status: Option, + // Path `ListPeerChannels.channels[].htlcs[].direction` + pub direction: ListpeerchannelsChannelsHtlcsDirection, + // Path `ListPeerChannels.channels[].htlcs[].state` + pub state: HtlcState, + pub amount_msat: Amount, + pub expiry: u32, + pub id: u64, + pub payment_hash: Sha256, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct GetlogResponse { - pub bytes_max: u32, - pub bytes_used: u32, - pub created_at: String, - pub log: Vec, - } - - impl TryFrom for GetlogResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::GetLog(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + pub struct ListpeerchannelsChannelsInflight { + #[serde(skip_serializing_if = "Option::is_none")] + pub scratch_txid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub splice_amount: Option, + pub feerate: String, + pub funding_outnum: u32, + pub funding_txid: String, + pub our_funding_msat: Amount, + pub total_funding_msat: Amount, } - /// ['Policy funder plugin will use to decide how much capital to commit to a v2 open channel request.'] + /// ['The channel state, in particular `CHANNELD_NORMAL` means the channel can be used normally.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum FunderupdatePolicy { - #[serde(rename = "match")] - MATCH = 0, - #[serde(rename = "available")] - AVAILABLE = 1, - #[serde(rename = "fixed")] - FIXED = 2, + pub enum ListpeerchannelsChannelsState { + #[serde(rename = "OPENINGD")] + OPENINGD = 0, + #[serde(rename = "CHANNELD_AWAITING_LOCKIN")] + CHANNELD_AWAITING_LOCKIN = 1, + #[serde(rename = "CHANNELD_NORMAL")] + CHANNELD_NORMAL = 2, + #[serde(rename = "CHANNELD_SHUTTING_DOWN")] + CHANNELD_SHUTTING_DOWN = 3, + #[serde(rename = "CLOSINGD_SIGEXCHANGE")] + CLOSINGD_SIGEXCHANGE = 4, + #[serde(rename = "CLOSINGD_COMPLETE")] + CLOSINGD_COMPLETE = 5, + #[serde(rename = "AWAITING_UNILATERAL")] + AWAITING_UNILATERAL = 6, + #[serde(rename = "FUNDING_SPEND_SEEN")] + FUNDING_SPEND_SEEN = 7, + #[serde(rename = "ONCHAIN")] + ONCHAIN = 8, + #[serde(rename = "DUALOPEND_OPEN_INIT")] + DUALOPEND_OPEN_INIT = 9, + #[serde(rename = "DUALOPEND_AWAITING_LOCKIN")] + DUALOPEND_AWAITING_LOCKIN = 10, + #[serde(rename = "CHANNELD_AWAITING_SPLICE")] + CHANNELD_AWAITING_SPLICE = 11, + #[serde(rename = "DUALOPEND_OPEN_COMMITTED")] + DUALOPEND_OPEN_COMMITTED = 12, + #[serde(rename = "DUALOPEND_OPEN_COMMIT_READY")] + DUALOPEND_OPEN_COMMIT_READY = 13, } - impl TryFrom for FunderupdatePolicy { + impl TryFrom for ListpeerchannelsChannelsState { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(FunderupdatePolicy::MATCH), - 1 => Ok(FunderupdatePolicy::AVAILABLE), - 2 => Ok(FunderupdatePolicy::FIXED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum FunderupdatePolicy", o)), + 0 => Ok(ListpeerchannelsChannelsState::OPENINGD), + 1 => Ok(ListpeerchannelsChannelsState::CHANNELD_AWAITING_LOCKIN), + 2 => Ok(ListpeerchannelsChannelsState::CHANNELD_NORMAL), + 3 => Ok(ListpeerchannelsChannelsState::CHANNELD_SHUTTING_DOWN), + 4 => Ok(ListpeerchannelsChannelsState::CLOSINGD_SIGEXCHANGE), + 5 => Ok(ListpeerchannelsChannelsState::CLOSINGD_COMPLETE), + 6 => Ok(ListpeerchannelsChannelsState::AWAITING_UNILATERAL), + 7 => Ok(ListpeerchannelsChannelsState::FUNDING_SPEND_SEEN), + 8 => Ok(ListpeerchannelsChannelsState::ONCHAIN), + 9 => Ok(ListpeerchannelsChannelsState::DUALOPEND_OPEN_INIT), + 10 => Ok(ListpeerchannelsChannelsState::DUALOPEND_AWAITING_LOCKIN), + 11 => Ok(ListpeerchannelsChannelsState::CHANNELD_AWAITING_SPLICE), + 12 => Ok(ListpeerchannelsChannelsState::DUALOPEND_OPEN_COMMITTED), + 13 => Ok(ListpeerchannelsChannelsState::DUALOPEND_OPEN_COMMIT_READY), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeerchannelsChannelsState", o)), } } } - impl ToString for FunderupdatePolicy { + impl ToString for ListpeerchannelsChannelsState { fn to_string(&self) -> String { match self { - FunderupdatePolicy::MATCH => "MATCH", - FunderupdatePolicy::AVAILABLE => "AVAILABLE", - FunderupdatePolicy::FIXED => "FIXED", + ListpeerchannelsChannelsState::OPENINGD => "OPENINGD", + ListpeerchannelsChannelsState::CHANNELD_AWAITING_LOCKIN => "CHANNELD_AWAITING_LOCKIN", + ListpeerchannelsChannelsState::CHANNELD_NORMAL => "CHANNELD_NORMAL", + ListpeerchannelsChannelsState::CHANNELD_SHUTTING_DOWN => "CHANNELD_SHUTTING_DOWN", + ListpeerchannelsChannelsState::CLOSINGD_SIGEXCHANGE => "CLOSINGD_SIGEXCHANGE", + ListpeerchannelsChannelsState::CLOSINGD_COMPLETE => "CLOSINGD_COMPLETE", + ListpeerchannelsChannelsState::AWAITING_UNILATERAL => "AWAITING_UNILATERAL", + ListpeerchannelsChannelsState::FUNDING_SPEND_SEEN => "FUNDING_SPEND_SEEN", + ListpeerchannelsChannelsState::ONCHAIN => "ONCHAIN", + ListpeerchannelsChannelsState::DUALOPEND_OPEN_INIT => "DUALOPEND_OPEN_INIT", + ListpeerchannelsChannelsState::DUALOPEND_AWAITING_LOCKIN => "DUALOPEND_AWAITING_LOCKIN", + ListpeerchannelsChannelsState::CHANNELD_AWAITING_SPLICE => "CHANNELD_AWAITING_SPLICE", + ListpeerchannelsChannelsState::DUALOPEND_OPEN_COMMITTED => "DUALOPEND_OPEN_COMMITTED", + ListpeerchannelsChannelsState::DUALOPEND_OPEN_COMMIT_READY => "DUALOPEND_OPEN_COMMIT_READY", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FunderupdateResponse { + pub struct ListpeerchannelsChannels { #[serde(skip_serializing_if = "Option::is_none")] - pub channel_fee_max_base_msat: Option, + pub alias: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub channel_fee_max_proportional_thousandths: Option, + pub channel_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub compact_lease: Option, + pub close_to: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub funding_weight: Option, + pub close_to_addr: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub lease_fee_base_msat: Option, + pub closer: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub lease_fee_basis: Option, - // Path `FunderUpdate.policy` - pub policy: FunderupdatePolicy, - pub fund_probability: u32, - pub fuzz_percent: u32, - pub leases_only: bool, - pub max_their_funding_msat: Amount, - pub min_their_funding_msat: Amount, - pub per_channel_max_msat: Amount, - pub per_channel_min_msat: Amount, - pub policy_mod: u32, - pub reserve_tank_msat: Amount, - pub summary: String, + pub direction: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub dust_limit_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub fee_base_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub fee_proportional_millionths: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub feerate: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub funding: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub funding_outnum: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub funding_txid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub ignore_fee_limits: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub in_fulfilled_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub in_offered_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub in_payments_fulfilled: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub in_payments_offered: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub initial_feerate: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub last_feerate: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub last_stable_connection: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub last_tx_fee_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub lost_state: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub max_accepted_htlcs: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub max_to_us_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub max_total_htlc_in_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub maximum_htlc_out_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub min_to_us_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub minimum_htlc_in_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub minimum_htlc_out_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub next_fee_step: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub next_feerate: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub our_reserve_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub our_to_self_delay: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub out_fulfilled_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub out_offered_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub out_payments_fulfilled: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub out_payments_offered: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub owner: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub private: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub receivable_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub reestablished: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub scratch_txid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub short_channel_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub spendable_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub their_reserve_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub their_to_self_delay: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub to_us_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub total_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub updates: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub htlcs: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub inflight: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub status: Option>, + // Path `ListPeerChannels.channels[].opener` + pub opener: ChannelSide, + // Path `ListPeerChannels.channels[].state` + pub state: ListpeerchannelsChannelsState, + pub peer_connected: bool, + pub peer_id: PublicKey, } - impl TryFrom for FunderupdateResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListpeerchannelsResponse { + pub channels: Vec, + } + + impl TryFrom for ListpeerchannelsResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::FunderUpdate(response) => Ok(response), + Response::ListPeerChannels(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['The features understood by the destination node.'] + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListclosedchannelsClosedchannelsAlias { + #[serde(skip_serializing_if = "Option::is_none")] + pub local: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub remote: Option, + } + + /// ['What caused the channel to close.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum GetrouteRouteStyle { - #[serde(rename = "tlv")] - TLV = 0, + pub enum ListclosedchannelsClosedchannelsClose_cause { + #[serde(rename = "unknown")] + UNKNOWN = 0, + #[serde(rename = "local")] + LOCAL = 1, + #[serde(rename = "user")] + USER = 2, + #[serde(rename = "remote")] + REMOTE = 3, + #[serde(rename = "protocol")] + PROTOCOL = 4, + #[serde(rename = "onchain")] + ONCHAIN = 5, } - impl TryFrom for GetrouteRouteStyle { + impl TryFrom for ListclosedchannelsClosedchannelsClose_cause { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(GetrouteRouteStyle::TLV), - o => Err(anyhow::anyhow!("Unknown variant {} for enum GetrouteRouteStyle", o)), + 0 => Ok(ListclosedchannelsClosedchannelsClose_cause::UNKNOWN), + 1 => Ok(ListclosedchannelsClosedchannelsClose_cause::LOCAL), + 2 => Ok(ListclosedchannelsClosedchannelsClose_cause::USER), + 3 => Ok(ListclosedchannelsClosedchannelsClose_cause::REMOTE), + 4 => Ok(ListclosedchannelsClosedchannelsClose_cause::PROTOCOL), + 5 => Ok(ListclosedchannelsClosedchannelsClose_cause::ONCHAIN), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListclosedchannelsClosedchannelsClose_cause", o)), } } } - impl ToString for GetrouteRouteStyle { + impl ToString for ListclosedchannelsClosedchannelsClose_cause { fn to_string(&self) -> String { match self { - GetrouteRouteStyle::TLV => "TLV", + ListclosedchannelsClosedchannelsClose_cause::UNKNOWN => "UNKNOWN", + ListclosedchannelsClosedchannelsClose_cause::LOCAL => "LOCAL", + ListclosedchannelsClosedchannelsClose_cause::USER => "USER", + ListclosedchannelsClosedchannelsClose_cause::REMOTE => "REMOTE", + ListclosedchannelsClosedchannelsClose_cause::PROTOCOL => "PROTOCOL", + ListclosedchannelsClosedchannelsClose_cause::ONCHAIN => "ONCHAIN", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct GetrouteRoute { - // Path `GetRoute.route[].style` - pub style: GetrouteRouteStyle, - pub amount_msat: Amount, - pub channel: ShortChannelId, - pub delay: u32, - pub direction: u32, - pub id: PublicKey, + pub struct ListclosedchannelsClosedchannels { + #[serde(skip_serializing_if = "Option::is_none")] + pub alias: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub closer: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub funding_fee_paid_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub funding_fee_rcvd_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub funding_pushed_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub last_commitment_fee_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub last_commitment_txid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub last_stable_connection: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub peer_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub short_channel_id: Option, + // Path `ListClosedChannels.closedchannels[].close_cause` + pub close_cause: ListclosedchannelsClosedchannelsClose_cause, + // Path `ListClosedChannels.closedchannels[].opener` + pub opener: ChannelSide, + pub channel_id: Sha256, + pub final_to_us_msat: Amount, + pub funding_outnum: u32, + pub funding_txid: String, + pub leased: bool, + pub max_to_us_msat: Amount, + pub min_to_us_msat: Amount, + pub private: bool, + pub total_htlcs_sent: u64, + pub total_local_commitments: u64, + pub total_msat: Amount, + pub total_remote_commitments: u64, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct GetrouteResponse { - pub route: Vec, + pub struct ListclosedchannelsResponse { + pub closedchannels: Vec, } - impl TryFrom for GetrouteResponse { + impl TryFrom for ListclosedchannelsResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::GetRoute(response) => Ok(response), + Response::ListClosedChannels(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Either a legacy onion format or a modern tlv format.'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListforwardsForwardsStyle { - #[serde(rename = "legacy")] - LEGACY = 0, - #[serde(rename = "tlv")] - TLV = 1, - } - - impl TryFrom for ListforwardsForwardsStyle { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(ListforwardsForwardsStyle::LEGACY), - 1 => Ok(ListforwardsForwardsStyle::TLV), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsForwardsStyle", o)), - } - } - } - - impl ToString for ListforwardsForwardsStyle { - fn to_string(&self) -> String { - match self { - ListforwardsForwardsStyle::LEGACY => "LEGACY", - ListforwardsForwardsStyle::TLV => "TLV", - }.to_string() - } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DecodepayExtra { + pub data: String, + pub tag: String, } - /// ['Still ongoing, completed, failed locally, or failed after forwarding.'] + /// ['The address type (if known).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListforwardsForwardsStatus { - #[serde(rename = "offered")] - OFFERED = 0, - #[serde(rename = "settled")] - SETTLED = 1, - #[serde(rename = "local_failed")] - LOCAL_FAILED = 2, - #[serde(rename = "failed")] - FAILED = 3, + pub enum DecodepayFallbacksType { + #[serde(rename = "P2PKH")] + P2PKH = 0, + #[serde(rename = "P2SH")] + P2SH = 1, + #[serde(rename = "P2WPKH")] + P2WPKH = 2, + #[serde(rename = "P2WSH")] + P2WSH = 3, + #[serde(rename = "P2TR")] + P2TR = 4, } - impl TryFrom for ListforwardsForwardsStatus { + impl TryFrom for DecodepayFallbacksType { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListforwardsForwardsStatus::OFFERED), - 1 => Ok(ListforwardsForwardsStatus::SETTLED), - 2 => Ok(ListforwardsForwardsStatus::LOCAL_FAILED), - 3 => Ok(ListforwardsForwardsStatus::FAILED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsForwardsStatus", o)), + 0 => Ok(DecodepayFallbacksType::P2PKH), + 1 => Ok(DecodepayFallbacksType::P2SH), + 2 => Ok(DecodepayFallbacksType::P2WPKH), + 3 => Ok(DecodepayFallbacksType::P2WSH), + 4 => Ok(DecodepayFallbacksType::P2TR), + o => Err(anyhow::anyhow!("Unknown variant {} for enum DecodepayFallbacksType", o)), } } } - impl ToString for ListforwardsForwardsStatus { + impl ToString for DecodepayFallbacksType { fn to_string(&self) -> String { match self { - ListforwardsForwardsStatus::OFFERED => "OFFERED", - ListforwardsForwardsStatus::SETTLED => "SETTLED", - ListforwardsForwardsStatus::LOCAL_FAILED => "LOCAL_FAILED", - ListforwardsForwardsStatus::FAILED => "FAILED", + DecodepayFallbacksType::P2PKH => "P2PKH", + DecodepayFallbacksType::P2SH => "P2SH", + DecodepayFallbacksType::P2WPKH => "P2WPKH", + DecodepayFallbacksType::P2WSH => "P2WSH", + DecodepayFallbacksType::P2TR => "P2TR", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListforwardsForwards { - #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub failcode: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub failreason: Option, + pub struct DecodepayFallbacks { #[serde(skip_serializing_if = "Option::is_none")] - pub fee_msat: Option, + pub addr: Option, + // Path `DecodePay.fallbacks[].type` + #[serde(rename = "type")] + pub item_type: DecodepayFallbacksType, + pub hex: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DecodepayResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub in_htlc_id: Option, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub out_channel: Option, + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub out_htlc_id: Option, + pub description_hash: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub out_msat: Option, + pub features: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub resolved_time: Option, + pub payment_metadata: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub style: Option, + pub payment_secret: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - // Path `ListForwards.forwards[].status` - pub status: ListforwardsForwardsStatus, - pub in_channel: ShortChannelId, - pub in_msat: Amount, - pub received_time: f64, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListforwardsResponse { - pub forwards: Vec, + pub routes: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub extra: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub fallbacks: Option>, + pub created_at: u64, + pub currency: String, + pub expiry: u64, + pub min_final_cltv_expiry: u32, + pub payee: PublicKey, + pub payment_hash: Sha256, + pub signature: String, } - impl TryFrom for ListforwardsResponse { + impl TryFrom for DecodepayResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ListForwards(response) => Ok(response), + Response::DecodePay(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListoffersOffers { - #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, - pub active: bool, - pub bolt12: String, - pub offer_id: Sha256, - pub single_use: bool, - pub used: bool, + pub struct DecodeExtra { + pub data: String, + pub tag: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListoffersResponse { - pub offers: Vec, - } - - impl TryFrom for ListoffersResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::ListOffers(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } - } - - /// ['Status of the payment.'] + /// ['The address type (if known).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListpaysPaysStatus { - #[serde(rename = "pending")] - PENDING = 0, - #[serde(rename = "failed")] - FAILED = 1, - #[serde(rename = "complete")] - COMPLETE = 2, + pub enum DecodeFallbacksType { + #[serde(rename = "P2PKH")] + P2PKH = 0, + #[serde(rename = "P2SH")] + P2SH = 1, + #[serde(rename = "P2WPKH")] + P2WPKH = 2, + #[serde(rename = "P2WSH")] + P2WSH = 3, + #[serde(rename = "P2TR")] + P2TR = 4, } - impl TryFrom for ListpaysPaysStatus { + impl TryFrom for DecodeFallbacksType { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListpaysPaysStatus::PENDING), - 1 => Ok(ListpaysPaysStatus::FAILED), - 2 => Ok(ListpaysPaysStatus::COMPLETE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpaysPaysStatus", o)), + 0 => Ok(DecodeFallbacksType::P2PKH), + 1 => Ok(DecodeFallbacksType::P2SH), + 2 => Ok(DecodeFallbacksType::P2WPKH), + 3 => Ok(DecodeFallbacksType::P2WSH), + 4 => Ok(DecodeFallbacksType::P2TR), + o => Err(anyhow::anyhow!("Unknown variant {} for enum DecodeFallbacksType", o)), } } } - impl ToString for ListpaysPaysStatus { + impl ToString for DecodeFallbacksType { fn to_string(&self) -> String { match self { - ListpaysPaysStatus::PENDING => "PENDING", - ListpaysPaysStatus::FAILED => "FAILED", - ListpaysPaysStatus::COMPLETE => "COMPLETE", + DecodeFallbacksType::P2PKH => "P2PKH", + DecodeFallbacksType::P2SH => "P2SH", + DecodeFallbacksType::P2WPKH => "P2WPKH", + DecodeFallbacksType::P2WSH => "P2WSH", + DecodeFallbacksType::P2TR => "P2TR", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpaysPays { + pub struct DecodeFallbacks { #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, + pub addr: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub amount_sent_msat: Option, + pub warning_invoice_fallbacks_version_invalid: Option, + // Path `Decode.fallbacks[].type` + #[serde(rename = "type")] + pub item_type: DecodeFallbacksType, + pub hex: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DecodeInvoice_fallbacks { #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, + pub address: Option, + pub hex: String, + pub version: u8, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DecodeInvreq_pathsPath { + pub blinded_node_id: PublicKey, + pub encrypted_recipient_data: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DecodeInvreq_paths { + #[deprecated] #[serde(skip_serializing_if = "Option::is_none")] - pub bolt12: Option, + pub blinding: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub completed_at: Option, + pub first_node_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, + pub first_path_key: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, + pub first_scid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, + pub first_scid_dir: Option, + pub path: Vec, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DecodeOffer_paths { + #[deprecated] #[serde(skip_serializing_if = "Option::is_none")] - pub erroronion: Option, + pub blinding: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, + pub first_node_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub number_of_parts: Option, + pub first_path_key: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub preimage: Option, + pub first_scid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - // Path `ListPays.pays[].status` - pub status: ListpaysPaysStatus, - pub created_at: u64, - pub payment_hash: Sha256, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpaysResponse { - pub pays: Vec, - } - - impl TryFrom for ListpaysResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::ListPays(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } - } - - /// ['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")] - OUT = 0, - #[serde(rename = "in")] - IN = 1, - } - - impl TryFrom for ListhtlcsHtlcsDirection { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(ListhtlcsHtlcsDirection::OUT), - 1 => Ok(ListhtlcsHtlcsDirection::IN), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListhtlcsHtlcsDirection", o)), - } - } - } - - impl ToString for ListhtlcsHtlcsDirection { - fn to_string(&self) -> String { - match self { - ListhtlcsHtlcsDirection::OUT => "OUT", - ListhtlcsHtlcsDirection::IN => "IN", - }.to_string() - } - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListhtlcsHtlcs { - // Path `ListHtlcs.htlcs[].direction` - pub direction: ListhtlcsHtlcsDirection, - // Path `ListHtlcs.htlcs[].state` - pub state: HtlcState, - pub amount_msat: Amount, - pub expiry: u32, - pub id: u64, - pub payment_hash: Sha256, - pub short_channel_id: ShortChannelId, + pub first_scid_dir: Option, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListhtlcsResponse { - pub htlcs: Vec, - } - - impl TryFrom for ListhtlcsResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::ListHtlcs(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + pub struct DecodeRestrictions { + pub alternatives: Vec, + pub summary: String, } - /// ['What stage we failed at.'] + /// ['What kind of object it decoded to.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum MultifundchannelFailedMethod { - #[serde(rename = "connect")] - CONNECT = 0, - #[serde(rename = "openchannel_init")] - OPENCHANNEL_INIT = 1, - #[serde(rename = "fundchannel_start")] - FUNDCHANNEL_START = 2, - #[serde(rename = "fundchannel_complete")] - FUNDCHANNEL_COMPLETE = 3, + pub enum DecodeType { + #[serde(rename = "bolt12 offer")] + BOLT12_OFFER = 0, + #[serde(rename = "bolt12 invoice")] + BOLT12_INVOICE = 1, + #[serde(rename = "bolt12 invoice_request")] + BOLT12_INVOICE_REQUEST = 2, + #[serde(rename = "bolt11 invoice")] + BOLT11_INVOICE = 3, + #[serde(rename = "rune")] + RUNE = 4, + #[serde(rename = "emergency recover")] + EMERGENCY_RECOVER = 5, } - impl TryFrom for MultifundchannelFailedMethod { + impl TryFrom for DecodeType { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(MultifundchannelFailedMethod::CONNECT), - 1 => Ok(MultifundchannelFailedMethod::OPENCHANNEL_INIT), - 2 => Ok(MultifundchannelFailedMethod::FUNDCHANNEL_START), - 3 => Ok(MultifundchannelFailedMethod::FUNDCHANNEL_COMPLETE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum MultifundchannelFailedMethod", o)), + 0 => Ok(DecodeType::BOLT12_OFFER), + 1 => Ok(DecodeType::BOLT12_INVOICE), + 2 => Ok(DecodeType::BOLT12_INVOICE_REQUEST), + 3 => Ok(DecodeType::BOLT11_INVOICE), + 4 => Ok(DecodeType::RUNE), + 5 => Ok(DecodeType::EMERGENCY_RECOVER), + o => Err(anyhow::anyhow!("Unknown variant {} for enum DecodeType", o)), } } } - impl ToString for MultifundchannelFailedMethod { + impl ToString for DecodeType { fn to_string(&self) -> String { match self { - MultifundchannelFailedMethod::CONNECT => "CONNECT", - MultifundchannelFailedMethod::OPENCHANNEL_INIT => "OPENCHANNEL_INIT", - MultifundchannelFailedMethod::FUNDCHANNEL_START => "FUNDCHANNEL_START", - MultifundchannelFailedMethod::FUNDCHANNEL_COMPLETE => "FUNDCHANNEL_COMPLETE", + DecodeType::BOLT12_OFFER => "BOLT12_OFFER", + DecodeType::BOLT12_INVOICE => "BOLT12_INVOICE", + DecodeType::BOLT12_INVOICE_REQUEST => "BOLT12_INVOICE_REQUEST", + DecodeType::BOLT11_INVOICE => "BOLT11_INVOICE", + DecodeType::RUNE => "RUNE", + DecodeType::EMERGENCY_RECOVER => "EMERGENCY_RECOVER", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct MultifundchannelFailedError { - pub code: i64, - pub message: String, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct MultifundchannelFailed { - // Path `MultiFundChannel.failed[].method` - pub method: MultifundchannelFailedMethod, - pub error: MultifundchannelFailedError, - pub id: PublicKey, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct MultifundchannelChannel_idsChannel_type { - pub bits: Vec, - pub names: Vec, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct MultifundchannelChannel_ids { + pub struct DecodeResponse { + #[deprecated] #[serde(skip_serializing_if = "Option::is_none")] - pub channel_type: Option, + pub offer_node_id: Option, + #[deprecated] #[serde(skip_serializing_if = "Option::is_none")] - pub close_to: Option, - pub channel_id: Sha256, - pub id: PublicKey, - pub outnum: u32, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct MultifundchannelResponse { + pub warning_missing_offer_node_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub amount_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub created_at: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub currency: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub currency_minor_unit: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub decrypted: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub description_hash: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub expiry: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub features: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub hex: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invoice_amount_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invoice_created_at: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invoice_features: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invoice_node_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invoice_payment_hash: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invoice_recurrence_basetime: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invoice_relative_expiry: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invreq_amount_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invreq_chain: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invreq_features: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invreq_metadata: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invreq_payer_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invreq_payer_note: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invreq_quantity: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invreq_recurrence_counter: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub invreq_recurrence_start: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub min_final_cltv_expiry: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_absolute_expiry: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_amount: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_amount_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_currency: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_description: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_features: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_issuer: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_issuer_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_metadata: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_quantity_max: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payee: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_hash: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_metadata: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_secret: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub routes: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub signature: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub string: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub unique_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub version: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_empty_blinded_path: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_invalid_invoice_request_signature: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_invalid_invoice_signature: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_invalid_invreq_payer_note: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_invalid_offer_currency: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_invalid_offer_description: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_invalid_offer_issuer: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_invoice_amount: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_invoice_blindedpay: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_invoice_created_at: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_invoice_node_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_invoice_paths: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_invoice_payment_hash: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_invoice_recurrence_basetime: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_invoice_request_signature: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_invoice_signature: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_invreq_metadata: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_invreq_payer_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_offer_description: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_offer_issuer_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_rune_invalid_utf8: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_unknown_offer_currency: Option, #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub failed: Option>, - pub channel_ids: Vec, - pub tx: String, - pub txid: String, + pub extra: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub fallbacks: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub invoice_fallbacks: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub invreq_paths: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub offer_chains: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub offer_paths: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub restrictions: Option>, + // Path `Decode.type` + #[serde(rename = "type")] + pub item_type: DecodeType, + pub valid: bool, } - impl TryFrom for MultifundchannelResponse { + impl TryFrom for DecodeResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::MultiFundChannel(response) => Ok(response), + Response::Decode(response) => Ok(response), _ => Err(TryFromResponseError) } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct MultiwithdrawResponse { - pub tx: String, - pub txid: String, + /// ['Status of the payment.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum DelpayPaymentsStatus { + #[serde(rename = "pending")] + PENDING = 0, + #[serde(rename = "failed")] + FAILED = 1, + #[serde(rename = "complete")] + COMPLETE = 2, } - impl TryFrom for MultiwithdrawResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::MultiWithdraw(response) => Ok(response), - _ => Err(TryFromResponseError) + impl TryFrom for DelpayPaymentsStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(DelpayPaymentsStatus::PENDING), + 1 => Ok(DelpayPaymentsStatus::FAILED), + 2 => Ok(DelpayPaymentsStatus::COMPLETE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum DelpayPaymentsStatus", o)), } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct OfferResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, - pub active: bool, - pub bolt12: String, - pub created: bool, - pub offer_id: Sha256, - pub single_use: bool, - pub used: bool, - } - - impl TryFrom for OfferResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::Offer(response) => Ok(response), - _ => Err(TryFromResponseError) - } + impl ToString for DelpayPaymentsStatus { + fn to_string(&self) -> String { + match self { + DelpayPaymentsStatus::PENDING => "PENDING", + DelpayPaymentsStatus::FAILED => "FAILED", + DelpayPaymentsStatus::COMPLETE => "COMPLETE", + }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Openchannel_abortResponse { - pub channel_canceled: bool, - pub channel_id: Sha256, - pub reason: String, - } - - impl TryFrom for Openchannel_abortResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::OpenChannel_Abort(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Openchannel_bumpChannel_type { - pub bits: Vec, - pub names: Vec, + pub struct DelpayPayments { + #[serde(skip_serializing_if = "Option::is_none")] + pub amount_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub bolt11: Option, + #[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 created_index: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub destination: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub erroronion: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub groupid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub label: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub partid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_preimage: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub updated_index: Option, + // Path `DelPay.payments[].status` + pub status: DelpayPaymentsStatus, + pub amount_sent_msat: Amount, + pub created_at: u64, + pub id: u64, + pub payment_hash: Sha256, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Openchannel_bumpResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub channel_type: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub requires_confirmed_inputs: Option, - pub channel_id: Sha256, - pub commitments_secured: bool, - pub funding_serial: u64, - pub psbt: String, + pub struct DelpayResponse { + pub payments: Vec, } - impl TryFrom for Openchannel_bumpResponse { + impl TryFrom for DelpayResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::OpenChannel_Bump(response) => Ok(response), + Response::DelPay(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Openchannel_initChannel_type { - pub bits: Vec, - pub names: Vec, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Openchannel_initResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub channel_type: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub requires_confirmed_inputs: Option, - pub channel_id: Sha256, - pub commitments_secured: bool, - pub funding_serial: u64, - pub psbt: String, + pub struct DelforwardResponse { } - impl TryFrom for Openchannel_initResponse { + impl TryFrom for DelforwardResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::OpenChannel_Init(response) => Ok(response), + Response::DelForward(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Openchannel_signedResponse { - pub channel_id: Sha256, - pub tx: String, - pub txid: String, + pub struct DisableofferResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub label: Option, + pub active: bool, + pub bolt12: String, + pub offer_id: Sha256, + pub single_use: bool, + pub used: bool, } - impl TryFrom for Openchannel_signedResponse { + impl TryFrom for DisableofferResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::OpenChannel_Signed(response) => Ok(response), + Response::DisableOffer(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Openchannel_updateChannel_type { - pub bits: Vec, - pub names: Vec, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Openchannel_updateResponse { + pub struct EnableofferResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub channel_type: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub close_to: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub requires_confirmed_inputs: Option, - pub channel_id: Sha256, - pub commitments_secured: bool, - pub funding_outnum: u32, - pub psbt: String, + pub label: Option, + pub active: bool, + pub bolt12: String, + pub offer_id: Sha256, + pub single_use: bool, + pub used: bool, } - impl TryFrom for Openchannel_updateResponse { + impl TryFrom for EnableofferResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::OpenChannel_Update(response) => Ok(response), + Response::EnableOffer(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct PingResponse { - pub totlen: u16, + pub struct DisconnectResponse { } - impl TryFrom for PingResponse { + impl TryFrom for DisconnectResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Ping(response) => Ok(response), + Response::Disconnect(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct PluginPlugins { - pub active: bool, - pub dynamic: bool, - pub name: String, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct PluginResponse { + pub struct FeeratesOnchain_fee_estimates { #[serde(skip_serializing_if = "Option::is_none")] - pub result: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub plugins: Option>, - // Path `Plugin.command` - pub command: PluginSubcommand, - } - - impl TryFrom for PluginResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::Plugin(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + pub unilateral_close_nonanchor_satoshis: Option, + pub htlc_success_satoshis: u64, + pub htlc_timeout_satoshis: u64, + pub mutual_close_satoshis: u64, + pub opening_channel_satoshis: u64, + pub unilateral_close_satoshis: u64, } - /// ['Status of payment.'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum RenepaystatusPaystatusStatus { - #[serde(rename = "complete")] - COMPLETE = 0, - #[serde(rename = "pending")] - PENDING = 1, - #[serde(rename = "failed")] - FAILED = 2, + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct FeeratesPerkbEstimates { + pub blockcount: u32, + pub feerate: u32, + pub smoothed_feerate: u32, } - impl TryFrom for RenepaystatusPaystatusStatus { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(RenepaystatusPaystatusStatus::COMPLETE), - 1 => Ok(RenepaystatusPaystatusStatus::PENDING), - 2 => Ok(RenepaystatusPaystatusStatus::FAILED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum RenepaystatusPaystatusStatus", o)), - } - } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct FeeratesPerkb { + #[deprecated] + #[serde(skip_serializing_if = "Option::is_none")] + pub delayed_to_us: Option, + #[deprecated] + #[serde(skip_serializing_if = "Option::is_none")] + pub htlc_resolution: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub floor: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub mutual_close: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub opening: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub penalty: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub unilateral_anchor_close: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub unilateral_close: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub estimates: Option>, + pub max_acceptable: u32, + pub min_acceptable: u32, } - impl ToString for RenepaystatusPaystatusStatus { - fn to_string(&self) -> String { - match self { - RenepaystatusPaystatusStatus::COMPLETE => "COMPLETE", - RenepaystatusPaystatusStatus::PENDING => "PENDING", - RenepaystatusPaystatusStatus::FAILED => "FAILED", - }.to_string() - } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct FeeratesPerkwEstimates { + pub blockcount: u32, + pub feerate: u32, + pub smoothed_feerate: u32, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct RenepaystatusPaystatus { + pub struct FeeratesPerkw { + #[deprecated] #[serde(skip_serializing_if = "Option::is_none")] - pub amount_sent_msat: Option, + pub delayed_to_us: Option, + #[deprecated] #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, + pub htlc_resolution: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub parts: Option, + pub floor: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_preimage: Option, + pub mutual_close: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub opening: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub penalty: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub unilateral_anchor_close: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub unilateral_close: Option, #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub notes: Option>, - // Path `RenePayStatus.paystatus[].status` - pub status: RenepaystatusPaystatusStatus, - pub amount_msat: Amount, - pub bolt11: String, - pub created_at: f64, - pub groupid: u32, - pub payment_hash: Sha256, + pub estimates: Option>, + pub max_acceptable: u32, + pub min_acceptable: u32, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct RenepaystatusResponse { - pub paystatus: Vec, + pub struct FeeratesResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub onchain_fee_estimates: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub perkb: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub perkw: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_missing_feerates: Option, } - impl TryFrom for RenepaystatusResponse { + impl TryFrom for FeeratesResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::RenePayStatus(response) => Ok(response), + Response::Feerates(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Status of payment.'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum RenepayStatus { - #[serde(rename = "complete")] - COMPLETE = 0, - #[serde(rename = "pending")] - PENDING = 1, - #[serde(rename = "failed")] - FAILED = 2, + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct FetchinvoiceNext_period { + pub counter: u64, + pub endtime: u64, + pub paywindow_end: u64, + pub paywindow_start: u64, + pub starttime: u64, } - impl TryFrom for RenepayStatus { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(RenepayStatus::COMPLETE), - 1 => Ok(RenepayStatus::PENDING), - 2 => Ok(RenepayStatus::FAILED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum RenepayStatus", o)), + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct FetchinvoiceChanges { + #[serde(skip_serializing_if = "Option::is_none")] + pub amount_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub description_appended: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub vendor: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub vendor_removed: Option, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct FetchinvoiceResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub next_period: Option, + pub changes: FetchinvoiceChanges, + pub invoice: String, + } + + impl TryFrom for FetchinvoiceResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::FetchInvoice(response) => Ok(response), + _ => Err(TryFromResponseError) } } } - impl ToString for RenepayStatus { - fn to_string(&self) -> String { - match self { - RenepayStatus::COMPLETE => "COMPLETE", - RenepayStatus::PENDING => "PENDING", - RenepayStatus::FAILED => "FAILED", - }.to_string() + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct Fundchannel_cancelResponse { + pub cancelled: String, + } + + impl TryFrom for Fundchannel_cancelResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::FundChannel_Cancel(response) => Ok(response), + _ => Err(TryFromResponseError) + } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct RenepayResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub bolt12: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub groupid: Option, - // Path `RenePay.status` - pub status: RenepayStatus, - pub amount_msat: Amount, - pub amount_sent_msat: Amount, - pub created_at: f64, - pub parts: u32, - pub payment_hash: Sha256, - pub payment_preimage: Secret, + pub struct Fundchannel_completeResponse { + pub channel_id: Sha256, + pub commitments_secured: bool, } - impl TryFrom for RenepayResponse { + impl TryFrom for Fundchannel_completeResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::RenePay(response) => Ok(response), + Response::FundChannel_Complete(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ReserveinputsReservations { - pub reserved: bool, - pub reserved_to_block: u32, - pub txid: String, - pub vout: u32, - pub was_reserved: bool, + pub struct FundchannelChannel_type { + pub bits: Vec, + pub names: Vec, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ReserveinputsResponse { - pub reservations: Vec, + pub struct FundchannelResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub channel_type: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub close_to: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub mindepth: Option, + pub channel_id: Sha256, + pub outnum: u32, + pub tx: String, + pub txid: String, } - impl TryFrom for ReserveinputsResponse { + impl TryFrom for FundchannelResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ReserveInputs(response) => Ok(response), + Response::FundChannel(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SendcustommsgResponse { - pub status: String, + pub struct Fundchannel_startChannel_type { + pub bits: Vec, + pub names: Vec, } - impl TryFrom for SendcustommsgResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct Fundchannel_startResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub channel_type: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub close_to: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub mindepth: Option, + pub funding_address: String, + pub scriptpubkey: String, + pub warning_usage: String, + } + + impl TryFrom for Fundchannel_startResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::SendCustomMsg(response) => Ok(response), + Response::FundChannel_Start(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ["Whether it's paid, unpaid or unpayable."] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum SendinvoiceStatus { - #[serde(rename = "unpaid")] - UNPAID = 0, - #[serde(rename = "paid")] - PAID = 1, - #[serde(rename = "expired")] - EXPIRED = 2, + pub enum GetlogLogType { + #[serde(rename = "SKIPPED")] + SKIPPED = 0, + #[serde(rename = "BROKEN")] + BROKEN = 1, + #[serde(rename = "UNUSUAL")] + UNUSUAL = 2, + #[serde(rename = "INFO")] + INFO = 3, + #[serde(rename = "DEBUG")] + DEBUG = 4, + #[serde(rename = "IO_IN")] + IO_IN = 5, + #[serde(rename = "IO_OUT")] + IO_OUT = 6, + #[serde(rename = "TRACE")] + TRACE = 7, } - impl TryFrom for SendinvoiceStatus { + impl TryFrom for GetlogLogType { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(SendinvoiceStatus::UNPAID), - 1 => Ok(SendinvoiceStatus::PAID), - 2 => Ok(SendinvoiceStatus::EXPIRED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum SendinvoiceStatus", o)), + 0 => Ok(GetlogLogType::SKIPPED), + 1 => Ok(GetlogLogType::BROKEN), + 2 => Ok(GetlogLogType::UNUSUAL), + 3 => Ok(GetlogLogType::INFO), + 4 => Ok(GetlogLogType::DEBUG), + 5 => Ok(GetlogLogType::IO_IN), + 6 => Ok(GetlogLogType::IO_OUT), + 7 => Ok(GetlogLogType::TRACE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum GetlogLogType", o)), } } } - impl ToString for SendinvoiceStatus { + impl ToString for GetlogLogType { fn to_string(&self) -> String { match self { - SendinvoiceStatus::UNPAID => "UNPAID", - SendinvoiceStatus::PAID => "PAID", - SendinvoiceStatus::EXPIRED => "EXPIRED", + GetlogLogType::SKIPPED => "SKIPPED", + GetlogLogType::BROKEN => "BROKEN", + GetlogLogType::UNUSUAL => "UNUSUAL", + GetlogLogType::INFO => "INFO", + GetlogLogType::DEBUG => "DEBUG", + GetlogLogType::TRACE => "TRACE", + GetlogLogType::IO_IN => "IO_IN", + GetlogLogType::IO_OUT => "IO_OUT", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SendinvoiceResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_received_msat: Option, + pub struct GetlogLog { #[serde(skip_serializing_if = "Option::is_none")] - pub bolt12: Option, + pub data: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, + pub log: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub paid_at: Option, + pub node_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub pay_index: Option, + pub num_skipped: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_preimage: Option, + pub source: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - // Path `SendInvoice.status` - pub status: SendinvoiceStatus, - pub description: String, - pub expires_at: u64, - pub label: String, - pub payment_hash: Sha256, + pub time: Option, + // Path `GetLog.log[].type` + #[serde(rename = "type")] + pub item_type: GetlogLogType, } - impl TryFrom for SendinvoiceResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct GetlogResponse { + pub bytes_max: u32, + pub bytes_used: u32, + pub created_at: String, + pub log: Vec, + } + + impl TryFrom for GetlogResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::SendInvoice(response) => Ok(response), + Response::GetLog(response) => Ok(response), _ => Err(TryFromResponseError) } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SetchannelChannels { - #[serde(skip_serializing_if = "Option::is_none")] - pub ignore_fee_limits: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub short_channel_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_htlcmax_too_high: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_htlcmin_too_low: Option, - pub channel_id: Sha256, - pub fee_base_msat: Amount, - pub fee_proportional_millionths: u32, - pub maximum_htlc_out_msat: Amount, - pub minimum_htlc_out_msat: Amount, - pub peer_id: PublicKey, + /// ['Policy funder plugin will use to decide how much capital to commit to a v2 open channel request.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum FunderupdatePolicy { + #[serde(rename = "match")] + MATCH = 0, + #[serde(rename = "available")] + AVAILABLE = 1, + #[serde(rename = "fixed")] + FIXED = 2, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SetchannelResponse { - pub channels: Vec, + impl TryFrom for FunderupdatePolicy { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(FunderupdatePolicy::MATCH), + 1 => Ok(FunderupdatePolicy::AVAILABLE), + 2 => Ok(FunderupdatePolicy::FIXED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum FunderupdatePolicy", o)), + } + } } - impl TryFrom for SetchannelResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::SetChannel(response) => Ok(response), - _ => Err(TryFromResponseError) - } + impl ToString for FunderupdatePolicy { + fn to_string(&self) -> String { + match self { + FunderupdatePolicy::MATCH => "MATCH", + FunderupdatePolicy::AVAILABLE => "AVAILABLE", + FunderupdatePolicy::FIXED => "FIXED", + }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SetconfigConfig { + pub struct FunderupdateResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub plugin: Option, + pub channel_fee_max_base_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub set: Option, + pub channel_fee_max_proportional_thousandths: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub value_bool: Option, + pub compact_lease: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub value_int: Option, + pub funding_weight: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub value_msat: Option, + pub lease_fee_base_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub value_str: Option, - pub config: String, - pub dynamic: bool, - pub source: String, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SetconfigResponse { - pub config: SetconfigConfig, + pub lease_fee_basis: Option, + // Path `FunderUpdate.policy` + pub policy: FunderupdatePolicy, + pub fund_probability: u32, + pub fuzz_percent: u32, + pub leases_only: bool, + pub max_their_funding_msat: Amount, + pub min_their_funding_msat: Amount, + pub per_channel_max_msat: Amount, + pub per_channel_min_msat: Amount, + pub policy_mod: u32, + pub reserve_tank_msat: Amount, + pub summary: String, } - impl TryFrom for SetconfigResponse { + impl TryFrom for FunderupdateResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::SetConfig(response) => Ok(response), + Response::FunderUpdate(response) => Ok(response), _ => Err(TryFromResponseError) } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SetpsbtversionResponse { - pub psbt: String, + /// ['The features understood by the destination node.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum GetrouteRouteStyle { + #[serde(rename = "tlv")] + TLV = 0, } - impl TryFrom for SetpsbtversionResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::SetPsbtVersion(response) => Ok(response), - _ => Err(TryFromResponseError) + impl TryFrom for GetrouteRouteStyle { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(GetrouteRouteStyle::TLV), + o => Err(anyhow::anyhow!("Unknown variant {} for enum GetrouteRouteStyle", o)), } } } + impl ToString for GetrouteRouteStyle { + fn to_string(&self) -> String { + match self { + GetrouteRouteStyle::TLV => "TLV", + }.to_string() + } + } + #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SigninvoiceResponse { - pub bolt11: String, + pub struct GetrouteRoute { + // Path `GetRoute.route[].style` + pub style: GetrouteRouteStyle, + pub amount_msat: Amount, + pub channel: ShortChannelId, + pub delay: u32, + pub direction: u32, + pub id: PublicKey, } - impl TryFrom for SigninvoiceResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct GetrouteResponse { + pub route: Vec, + } + + impl TryFrom for GetrouteResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::SignInvoice(response) => Ok(response), + Response::GetRoute(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct SignmessageResponse { - pub recid: String, - pub signature: String, - pub zbase: String, + pub struct ListaddressesAddresses { + #[serde(skip_serializing_if = "Option::is_none")] + pub bech32: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub p2tr: Option, + pub keyidx: u64, } - impl TryFrom for SignmessageResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListaddressesResponse { + pub addresses: Vec, + } + + impl TryFrom for ListaddressesResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::SignMessage(response) => Ok(response), + Response::ListAddresses(response) => Ok(response), _ => Err(TryFromResponseError) } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Splice_initResponse { - pub psbt: String, + /// ['Either a legacy onion format or a modern tlv format.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum ListforwardsForwardsStyle { + #[serde(rename = "legacy")] + LEGACY = 0, + #[serde(rename = "tlv")] + TLV = 1, } - impl TryFrom for Splice_initResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::Splice_Init(response) => Ok(response), - _ => Err(TryFromResponseError) + impl TryFrom for ListforwardsForwardsStyle { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(ListforwardsForwardsStyle::LEGACY), + 1 => Ok(ListforwardsForwardsStyle::TLV), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsForwardsStyle", o)), } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Splice_signedResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub outnum: Option, - pub psbt: String, - pub tx: String, - pub txid: String, + impl ToString for ListforwardsForwardsStyle { + fn to_string(&self) -> String { + match self { + ListforwardsForwardsStyle::LEGACY => "LEGACY", + ListforwardsForwardsStyle::TLV => "TLV", + }.to_string() + } } - impl TryFrom for Splice_signedResponse { - type Error = super::TryFromResponseError; + /// ['Still ongoing, completed, failed locally, or failed after forwarding.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum ListforwardsForwardsStatus { + #[serde(rename = "offered")] + OFFERED = 0, + #[serde(rename = "settled")] + SETTLED = 1, + #[serde(rename = "local_failed")] + LOCAL_FAILED = 2, + #[serde(rename = "failed")] + FAILED = 3, + } - fn try_from(response: Response) -> Result { - match response { - Response::Splice_Signed(response) => Ok(response), - _ => Err(TryFromResponseError) + impl TryFrom for ListforwardsForwardsStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(ListforwardsForwardsStatus::OFFERED), + 1 => Ok(ListforwardsForwardsStatus::SETTLED), + 2 => Ok(ListforwardsForwardsStatus::LOCAL_FAILED), + 3 => Ok(ListforwardsForwardsStatus::FAILED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsForwardsStatus", o)), } } } + impl ToString for ListforwardsForwardsStatus { + fn to_string(&self) -> String { + match self { + ListforwardsForwardsStatus::OFFERED => "OFFERED", + ListforwardsForwardsStatus::SETTLED => "SETTLED", + ListforwardsForwardsStatus::LOCAL_FAILED => "LOCAL_FAILED", + ListforwardsForwardsStatus::FAILED => "FAILED", + }.to_string() + } + } + #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Splice_updateResponse { + pub struct ListforwardsForwards { #[serde(skip_serializing_if = "Option::is_none")] - pub signatures_secured: Option, - pub commitments_secured: bool, - pub psbt: String, + pub created_index: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub failcode: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub failreason: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub fee_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub in_htlc_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub out_channel: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub out_htlc_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub out_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub resolved_time: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub style: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub updated_index: Option, + // Path `ListForwards.forwards[].status` + pub status: ListforwardsForwardsStatus, + pub in_channel: ShortChannelId, + pub in_msat: Amount, + pub received_time: f64, } - impl TryFrom for Splice_updateResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListforwardsResponse { + pub forwards: Vec, + } + + impl TryFrom for ListforwardsResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Splice_Update(response) => Ok(response), + Response::ListForwards(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct UnreserveinputsReservations { + pub struct ListoffersOffers { #[serde(skip_serializing_if = "Option::is_none")] - pub reserved_to_block: Option, - pub reserved: bool, - pub txid: String, - pub vout: u32, - pub was_reserved: bool, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct UnreserveinputsResponse { - pub reservations: Vec, - } - - impl TryFrom for UnreserveinputsResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::UnreserveInputs(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct UpgradewalletResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub psbt: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub tx: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub txid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub upgraded_outs: Option, - } - - impl TryFrom for UpgradewalletResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::UpgradeWallet(response) => Ok(response), - _ => Err(TryFromResponseError) - } - } + pub label: Option, + pub active: bool, + pub bolt12: String, + pub offer_id: Sha256, + pub single_use: bool, + pub used: bool, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct WaitblockheightResponse { - pub blockheight: u32, + pub struct ListoffersResponse { + pub offers: Vec, } - impl TryFrom for WaitblockheightResponse { + impl TryFrom for ListoffersResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::WaitBlockHeight(response) => Ok(response), + Response::ListOffers(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Status of the payment.', 'Still ongoing, completed, failed locally, or failed after forwarding.', "Whether it's paid, unpaid or unpayable."] + /// ['Status of the payment.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum WaitDetailsStatus { - #[serde(rename = "unpaid")] - UNPAID = 0, - #[serde(rename = "paid")] - PAID = 1, - #[serde(rename = "expired")] - EXPIRED = 2, + pub enum ListpaysPaysStatus { #[serde(rename = "pending")] - PENDING = 3, + PENDING = 0, #[serde(rename = "failed")] - FAILED = 4, + FAILED = 1, #[serde(rename = "complete")] - COMPLETE = 5, - #[serde(rename = "offered")] - OFFERED = 6, - #[serde(rename = "settled")] - SETTLED = 7, - #[serde(rename = "local_failed")] - LOCAL_FAILED = 8, + COMPLETE = 2, } - impl TryFrom for WaitDetailsStatus { + impl TryFrom for ListpaysPaysStatus { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(WaitDetailsStatus::UNPAID), - 1 => Ok(WaitDetailsStatus::PAID), - 2 => Ok(WaitDetailsStatus::EXPIRED), - 3 => Ok(WaitDetailsStatus::PENDING), - 4 => Ok(WaitDetailsStatus::FAILED), - 5 => Ok(WaitDetailsStatus::COMPLETE), - 6 => Ok(WaitDetailsStatus::OFFERED), - 7 => Ok(WaitDetailsStatus::SETTLED), - 8 => Ok(WaitDetailsStatus::LOCAL_FAILED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitDetailsStatus", o)), + 0 => Ok(ListpaysPaysStatus::PENDING), + 1 => Ok(ListpaysPaysStatus::FAILED), + 2 => Ok(ListpaysPaysStatus::COMPLETE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpaysPaysStatus", o)), } } } - impl ToString for WaitDetailsStatus { + impl ToString for ListpaysPaysStatus { fn to_string(&self) -> String { match self { - WaitDetailsStatus::COMPLETE => "COMPLETE", - WaitDetailsStatus::EXPIRED => "EXPIRED", - WaitDetailsStatus::FAILED => "FAILED", - WaitDetailsStatus::LOCAL_FAILED => "LOCAL_FAILED", - WaitDetailsStatus::OFFERED => "OFFERED", - WaitDetailsStatus::PAID => "PAID", - WaitDetailsStatus::PENDING => "PENDING", - WaitDetailsStatus::SETTLED => "SETTLED", - WaitDetailsStatus::UNPAID => "UNPAID", + ListpaysPaysStatus::PENDING => "PENDING", + ListpaysPaysStatus::FAILED => "FAILED", + ListpaysPaysStatus::COMPLETE => "COMPLETE", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct WaitDetails { + pub struct ListpaysPays { + #[serde(skip_serializing_if = "Option::is_none")] + pub amount_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub amount_sent_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] pub bolt12: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, + pub completed_at: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub groupid: Option, + pub created_index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub in_channel: Option, + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub in_htlc_id: Option, + pub destination: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub in_msat: Option, + pub erroronion: Option, #[serde(skip_serializing_if = "Option::is_none")] pub label: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub out_channel: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub partid: Option, + pub number_of_parts: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_hash: Option, + pub preimage: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub status: Option, + pub updated_index: Option, + // Path `ListPays.pays[].status` + pub status: ListpaysPaysStatus, + pub created_at: u64, + pub payment_hash: Sha256, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListpaysResponse { + pub pays: Vec, } + impl TryFrom for ListpaysResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::ListPays(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + /// ['Out if we offered this to the peer, in if they offered it.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum WaitSubsystem { - #[serde(rename = "invoices")] - INVOICES = 0, - #[serde(rename = "forwards")] - FORWARDS = 1, - #[serde(rename = "sendpays")] - SENDPAYS = 2, + pub enum ListhtlcsHtlcsDirection { + #[serde(rename = "out")] + OUT = 0, + #[serde(rename = "in")] + IN = 1, } - impl TryFrom for WaitSubsystem { + impl TryFrom for ListhtlcsHtlcsDirection { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(WaitSubsystem::INVOICES), - 1 => Ok(WaitSubsystem::FORWARDS), - 2 => Ok(WaitSubsystem::SENDPAYS), - o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitSubsystem", o)), + 0 => Ok(ListhtlcsHtlcsDirection::OUT), + 1 => Ok(ListhtlcsHtlcsDirection::IN), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListhtlcsHtlcsDirection", o)), } } } - impl ToString for WaitSubsystem { + impl ToString for ListhtlcsHtlcsDirection { fn to_string(&self) -> String { match self { - WaitSubsystem::INVOICES => "INVOICES", - WaitSubsystem::FORWARDS => "FORWARDS", - WaitSubsystem::SENDPAYS => "SENDPAYS", + ListhtlcsHtlcsDirection::OUT => "OUT", + ListhtlcsHtlcsDirection::IN => "IN", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct WaitResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub created: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub deleted: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub details: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub updated: Option, - // Path `Wait.subsystem` - pub subsystem: WaitSubsystem, + pub struct ListhtlcsHtlcs { + // Path `ListHtlcs.htlcs[].direction` + pub direction: ListhtlcsHtlcsDirection, + // Path `ListHtlcs.htlcs[].state` + pub state: HtlcState, + pub amount_msat: Amount, + pub expiry: u32, + pub id: u64, + pub payment_hash: Sha256, + pub short_channel_id: ShortChannelId, } - impl TryFrom for WaitResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListhtlcsResponse { + pub htlcs: Vec, + } + + impl TryFrom for ListhtlcsResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Wait(response) => Ok(response), + Response::ListHtlcs(response) => Ok(response), _ => Err(TryFromResponseError) } } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsImportantpluginsOptions { - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsImportantplugins { - #[serde(skip_serializing_if = "Option::is_none")] - pub options: Option, - pub name: String, - pub path: String, + /// ['What stage we failed at.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum MultifundchannelFailedMethod { + #[serde(rename = "connect")] + CONNECT = 0, + #[serde(rename = "openchannel_init")] + OPENCHANNEL_INIT = 1, + #[serde(rename = "fundchannel_start")] + FUNDCHANNEL_START = 2, + #[serde(rename = "fundchannel_complete")] + FUNDCHANNEL_COMPLETE = 3, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsPluginsOptions { + impl TryFrom for MultifundchannelFailedMethod { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(MultifundchannelFailedMethod::CONNECT), + 1 => Ok(MultifundchannelFailedMethod::OPENCHANNEL_INIT), + 2 => Ok(MultifundchannelFailedMethod::FUNDCHANNEL_START), + 3 => Ok(MultifundchannelFailedMethod::FUNDCHANNEL_COMPLETE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum MultifundchannelFailedMethod", o)), + } + } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsPlugins { - #[serde(skip_serializing_if = "Option::is_none")] - pub options: Option, - pub name: String, - pub path: String, + impl ToString for MultifundchannelFailedMethod { + fn to_string(&self) -> String { + match self { + MultifundchannelFailedMethod::CONNECT => "CONNECT", + MultifundchannelFailedMethod::OPENCHANNEL_INIT => "OPENCHANNEL_INIT", + MultifundchannelFailedMethod::FUNDCHANNEL_START => "FUNDCHANNEL_START", + MultifundchannelFailedMethod::FUNDCHANNEL_COMPLETE => "FUNDCHANNEL_COMPLETE", + }.to_string() + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsExperimentaloffers { - pub set: bool, - pub source: String, + pub struct MultifundchannelFailedError { + pub code: i64, + pub message: String, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsExperimentalonionmessages { - pub set: bool, - pub source: String, + pub struct MultifundchannelFailed { + // Path `MultiFundChannel.failed[].method` + pub method: MultifundchannelFailedMethod, + pub error: MultifundchannelFailedError, + pub id: PublicKey, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsMaxlocktimeblocks { - pub source: String, - pub value_int: u32, + pub struct MultifundchannelChannel_idsChannel_type { + pub bits: Vec, + pub names: Vec, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsAccepthtlctlvtypes { - pub source: String, - pub value_str: String, + pub struct MultifundchannelChannel_ids { + #[serde(skip_serializing_if = "Option::is_none")] + pub channel_type: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub close_to: Option, + pub channel_id: Sha256, + pub id: PublicKey, + pub outnum: u32, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsAllowdeprecatedapis { - pub source: String, - pub value_bool: bool, + pub struct MultifundchannelResponse { + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub failed: Option>, + pub channel_ids: Vec, + pub tx: String, + pub txid: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsAlwaysuseproxy { - pub source: String, - pub value_bool: bool, + impl TryFrom for MultifundchannelResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::MultiFundChannel(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsAnnounceaddr { - pub sources: Vec, - pub values_str: Vec, + pub struct MultiwithdrawResponse { + pub tx: String, + pub txid: String, } - /// ['Field from config or cmdline, or default.'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListconfigsConfigsAnnounceaddrdiscoveredValue_str { - #[serde(rename = "true")] - TRUE = 0, - #[serde(rename = "false")] - FALSE = 1, - #[serde(rename = "auto")] - AUTO = 2, - } + impl TryFrom for MultiwithdrawResponse { + type Error = super::TryFromResponseError; - impl TryFrom for ListconfigsConfigsAnnounceaddrdiscoveredValue_str { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(ListconfigsConfigsAnnounceaddrdiscoveredValue_str::TRUE), - 1 => Ok(ListconfigsConfigsAnnounceaddrdiscoveredValue_str::FALSE), - 2 => Ok(ListconfigsConfigsAnnounceaddrdiscoveredValue_str::AUTO), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListconfigsConfigsAnnounceaddrdiscoveredValue_str", o)), + fn try_from(response: Response) -> Result { + match response { + Response::MultiWithdraw(response) => Ok(response), + _ => Err(TryFromResponseError) } } } - impl ToString for ListconfigsConfigsAnnounceaddrdiscoveredValue_str { - fn to_string(&self) -> String { - match self { - ListconfigsConfigsAnnounceaddrdiscoveredValue_str::TRUE => "TRUE", - ListconfigsConfigsAnnounceaddrdiscoveredValue_str::FALSE => "FALSE", - ListconfigsConfigsAnnounceaddrdiscoveredValue_str::AUTO => "AUTO", - }.to_string() - } - } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsAnnounceaddrdiscovered { - // Path `ListConfigs.configs.announce-addr-discovered.value_str` - pub value_str: ListconfigsConfigsAnnounceaddrdiscoveredValue_str, - pub source: String, + pub struct OfferResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub label: Option, + pub active: bool, + pub bolt12: String, + pub created: bool, + pub offer_id: Sha256, + pub single_use: bool, + pub used: bool, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsAnnounceaddrdiscoveredport { - pub source: String, - pub value_int: u32, - } + impl TryFrom for OfferResponse { + type Error = super::TryFromResponseError; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsAnnounceaddrdns { - pub source: String, - pub value_bool: bool, + fn try_from(response: Response) -> Result { + match response { + Response::Offer(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsAutoconnectseekerpeers { - pub source: String, - pub value_int: u32, + pub struct Openchannel_abortResponse { + pub channel_canceled: bool, + pub channel_id: Sha256, + pub reason: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsBindaddr { - pub sources: Vec, - pub values_str: Vec, - } + impl TryFrom for Openchannel_abortResponse { + type Error = super::TryFromResponseError; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsClearplugins { - pub set: bool, - pub source: String, + fn try_from(response: Response) -> Result { + match response { + Response::OpenChannel_Abort(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsCltvdelta { - pub source: String, - pub value_int: u32, + pub struct Openchannel_bumpChannel_type { + pub bits: Vec, + pub names: Vec, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsCltvfinal { - pub source: String, - pub value_int: u32, + pub struct Openchannel_bumpResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub channel_type: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub requires_confirmed_inputs: Option, + pub channel_id: Sha256, + pub commitments_secured: bool, + pub funding_serial: u64, + pub psbt: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsCommitfee { - pub source: String, - pub value_int: u64, - } + impl TryFrom for Openchannel_bumpResponse { + type Error = super::TryFromResponseError; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsCommitfeerateoffset { - pub source: String, - pub value_int: u32, + fn try_from(response: Response) -> Result { + match response { + Response::OpenChannel_Bump(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsCommittime { - pub source: String, - pub value_int: u32, + pub struct Openchannel_initChannel_type { + pub bits: Vec, + pub names: Vec, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsDatabaseupgrade { - pub source: String, - pub value_bool: bool, + pub struct Openchannel_initResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub channel_type: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub requires_confirmed_inputs: Option, + pub channel_id: Sha256, + pub commitments_secured: bool, + pub funding_serial: u64, + pub psbt: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsDisabledns { - pub set: bool, - pub source: String, - } + impl TryFrom for Openchannel_initResponse { + type Error = super::TryFromResponseError; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsDisablempp { - #[serde(skip_serializing_if = "Option::is_none")] - pub plugin: Option, - pub set: bool, - pub source: String, + fn try_from(response: Response) -> Result { + match response { + Response::OpenChannel_Init(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsDisableplugin { - pub sources: Vec, - pub values_str: Vec, + pub struct Openchannel_signedResponse { + pub channel_id: Sha256, + pub tx: String, + pub txid: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsEncryptedhsm { - pub set: bool, - pub source: String, + impl TryFrom for Openchannel_signedResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::OpenChannel_Signed(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsExperimentalanchors { - pub set: bool, - pub source: String, + pub struct Openchannel_updateChannel_type { + pub bits: Vec, + pub names: Vec, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsExperimentaldualfund { - pub set: bool, - pub source: String, + pub struct Openchannel_updateResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub channel_type: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub close_to: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub requires_confirmed_inputs: Option, + pub channel_id: Sha256, + pub commitments_secured: bool, + pub funding_outnum: u32, + pub psbt: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsExperimentalpeerstorage { - pub set: bool, - pub source: String, - } + impl TryFrom for Openchannel_updateResponse { + type Error = super::TryFromResponseError; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsExperimentalshutdownwrongfunding { - pub set: bool, - pub source: String, + fn try_from(response: Response) -> Result { + match response { + Response::OpenChannel_Update(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsExperimentalsplicing { - pub set: bool, - pub source: String, + pub struct PingResponse { + pub totlen: u16, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsFeebase { - pub source: String, - pub value_int: u32, + impl TryFrom for PingResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::Ping(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsFeepersatoshi { - pub source: String, - pub value_int: u32, + pub struct PluginPlugins { + pub active: bool, + pub dynamic: bool, + pub name: String, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsFetchinvoicenoconnect { + pub struct PluginResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub plugin: Option, - pub set: bool, - pub source: String, + pub result: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub plugins: Option>, + // Path `Plugin.command` + pub command: PluginSubcommand, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsForcefeerates { - pub source: String, - pub value_str: String, - } + impl TryFrom for PluginResponse { + type Error = super::TryFromResponseError; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsFundingconfirms { - pub source: String, - pub value_int: u32, + fn try_from(response: Response) -> Result { + match response { + Response::Plugin(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsHtlcmaximummsat { - pub source: String, - pub value_msat: Amount, + /// ['Status of payment.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum RenepaystatusPaystatusStatus { + #[serde(rename = "complete")] + COMPLETE = 0, + #[serde(rename = "pending")] + PENDING = 1, + #[serde(rename = "failed")] + FAILED = 2, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsHtlcminimummsat { - pub source: String, - pub value_msat: Amount, + impl TryFrom for RenepaystatusPaystatusStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(RenepaystatusPaystatusStatus::COMPLETE), + 1 => Ok(RenepaystatusPaystatusStatus::PENDING), + 2 => Ok(RenepaystatusPaystatusStatus::FAILED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum RenepaystatusPaystatusStatus", o)), + } + } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsIgnorefeelimits { - pub source: String, - pub value_bool: bool, + impl ToString for RenepaystatusPaystatusStatus { + fn to_string(&self) -> String { + match self { + RenepaystatusPaystatusStatus::COMPLETE => "COMPLETE", + RenepaystatusPaystatusStatus::PENDING => "PENDING", + RenepaystatusPaystatusStatus::FAILED => "FAILED", + }.to_string() + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsImportantplugin { - pub sources: Vec, - pub values_str: Vec, + pub struct RenepaystatusPaystatus { + #[serde(skip_serializing_if = "Option::is_none")] + pub amount_sent_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub destination: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub parts: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_preimage: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub notes: Option>, + // Path `RenePayStatus.paystatus[].status` + pub status: RenepaystatusPaystatusStatus, + pub amount_msat: Amount, + pub bolt11: String, + pub created_at: f64, + pub groupid: u32, + pub payment_hash: Sha256, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsLargechannels { - pub set: bool, - pub source: String, + pub struct RenepaystatusResponse { + pub paystatus: Vec, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsLightningdir { - pub source: String, - pub value_str: String, - } + impl TryFrom for RenepaystatusResponse { + type Error = super::TryFromResponseError; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsLogfile { - pub sources: Vec, - pub values_str: Vec, + fn try_from(response: Response) -> Result { + match response { + Response::RenePayStatus(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsLoglevel { - pub source: String, - pub value_str: String, + /// ['Status of payment.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum RenepayStatus { + #[serde(rename = "complete")] + COMPLETE = 0, + #[serde(rename = "pending")] + PENDING = 1, + #[serde(rename = "failed")] + FAILED = 2, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsLogprefix { - pub source: String, - pub value_str: String, + impl TryFrom for RenepayStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(RenepayStatus::COMPLETE), + 1 => Ok(RenepayStatus::PENDING), + 2 => Ok(RenepayStatus::FAILED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum RenepayStatus", o)), + } + } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsLogtimestamps { - pub source: String, - pub value_bool: bool, + impl ToString for RenepayStatus { + fn to_string(&self) -> String { + match self { + RenepayStatus::COMPLETE => "COMPLETE", + RenepayStatus::PENDING => "PENDING", + RenepayStatus::FAILED => "FAILED", + }.to_string() + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsMaxconcurrenthtlcs { - pub source: String, - pub value_int: u32, + pub struct RenepayResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub bolt11: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub bolt12: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub destination: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub groupid: Option, + // Path `RenePay.status` + pub status: RenepayStatus, + pub amount_msat: Amount, + pub amount_sent_msat: Amount, + pub created_at: f64, + pub parts: u32, + pub payment_hash: Sha256, + pub payment_preimage: Secret, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsMaxdusthtlcexposuremsat { - pub source: String, - pub value_msat: Amount, - } + impl TryFrom for RenepayResponse { + type Error = super::TryFromResponseError; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsMincapacitysat { - #[serde(skip_serializing_if = "Option::is_none")] - pub dynamic: Option, - pub source: String, - pub value_int: u64, + fn try_from(response: Response) -> Result { + match response { + Response::RenePay(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsPidfile { - pub source: String, - pub value_str: String, + pub struct ReserveinputsReservations { + pub reserved: bool, + pub reserved_to_block: u32, + pub txid: String, + pub vout: u32, + pub was_reserved: bool, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsPlugindir { - pub sources: Vec, - pub values_str: Vec, + pub struct ReserveinputsResponse { + pub reservations: Vec, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsRequireconfirmedinputs { - pub source: String, - pub value_bool: bool, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsRpcfile { - pub source: String, - pub value_str: String, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsRpcfilemode { - pub source: String, - pub value_str: String, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsTorservicepassword { - pub source: String, - pub value_str: String, - } + impl TryFrom for ReserveinputsResponse { + type Error = super::TryFromResponseError; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsWatchtimeblocks { - pub source: String, - pub value_int: u32, + fn try_from(response: Response) -> Result { + match response { + Response::ReserveInputs(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsAddr { - pub sources: Vec, - pub values_str: Vec, + pub struct SendcustommsgResponse { + pub status: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsAlias { - pub source: String, - pub value_str: String, - } + impl TryFrom for SendcustommsgResponse { + type Error = super::TryFromResponseError; - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsAutolisten { - pub source: String, - pub value_bool: bool, + fn try_from(response: Response) -> Result { + match response { + Response::SendCustomMsg(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } - /// ['Source of configuration setting.'] + /// ["Whether it's paid, unpaid or unpayable."] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListconfigsConfigsConfSource { - #[serde(rename = "cmdline")] - CMDLINE = 0, + pub enum SendinvoiceStatus { + #[serde(rename = "unpaid")] + UNPAID = 0, + #[serde(rename = "paid")] + PAID = 1, + #[serde(rename = "expired")] + EXPIRED = 2, } - impl TryFrom for ListconfigsConfigsConfSource { + impl TryFrom for SendinvoiceStatus { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListconfigsConfigsConfSource::CMDLINE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListconfigsConfigsConfSource", o)), + 0 => Ok(SendinvoiceStatus::UNPAID), + 1 => Ok(SendinvoiceStatus::PAID), + 2 => Ok(SendinvoiceStatus::EXPIRED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum SendinvoiceStatus", o)), } } } - impl ToString for ListconfigsConfigsConfSource { + impl ToString for SendinvoiceStatus { fn to_string(&self) -> String { match self { - ListconfigsConfigsConfSource::CMDLINE => "CMDLINE", + SendinvoiceStatus::UNPAID => "UNPAID", + SendinvoiceStatus::PAID => "PAID", + SendinvoiceStatus::EXPIRED => "EXPIRED", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsConf { - // Path `ListConfigs.configs.conf.source` - pub source: ListconfigsConfigsConfSource, - pub value_str: String, + pub struct SendinvoiceResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub amount_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub amount_received_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub bolt12: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub created_index: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub paid_at: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub pay_index: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_preimage: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub updated_index: Option, + // Path `SendInvoice.status` + pub status: SendinvoiceStatus, + pub description: String, + pub expires_at: u64, + pub label: String, + pub payment_hash: Sha256, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsDaemon { - pub set: bool, - pub source: String, + impl TryFrom for SendinvoiceResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::SendInvoice(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsDeveloper { - pub set: bool, - pub source: String, + pub struct SetchannelChannels { + #[serde(skip_serializing_if = "Option::is_none")] + pub ignore_fee_limits: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub short_channel_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_htlcmax_too_high: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_htlcmin_too_low: Option, + pub channel_id: Sha256, + pub fee_base_msat: Amount, + pub fee_proportional_millionths: u32, + pub maximum_htlc_out_msat: Amount, + pub minimum_htlc_out_msat: Amount, + pub peer_id: PublicKey, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsMainnet { - pub set: bool, - pub source: String, + pub struct SetchannelResponse { + pub channels: Vec, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsNetwork { - pub source: String, - pub value_str: String, + impl TryFrom for SetchannelResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::SetChannel(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsOffline { - pub set: bool, + pub struct SetconfigConfig { + #[serde(skip_serializing_if = "Option::is_none")] + pub plugin: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub set: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub value_bool: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub value_int: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub value_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub value_str: Option, + pub config: String, + pub dynamic: bool, pub source: String, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsPlugin { - pub sources: Vec, - pub values_str: Vec, + pub struct SetconfigResponse { + pub config: SetconfigConfig, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsProxy { - pub source: String, - pub value_str: String, + impl TryFrom for SetconfigResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::SetConfig(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsRegtest { - pub set: bool, - pub source: String, + pub struct SetpsbtversionResponse { + pub psbt: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsRescan { - pub source: String, - pub value_int: i64, + impl TryFrom for SetpsbtversionResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::SetPsbtVersion(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsRgb { - pub source: String, - pub value_str: String, + pub struct SigninvoiceResponse { + pub bolt11: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsSignet { - pub set: bool, - pub source: String, + impl TryFrom for SigninvoiceResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::SignInvoice(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsSubdaemon { - pub sources: Vec, - pub values_str: Vec, + pub struct SignmessageResponse { + pub recid: String, + pub signature: String, + pub zbase: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsTestnet { - pub set: bool, - pub source: String, + impl TryFrom for SignmessageResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::SignMessage(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigsWallet { - pub source: String, - pub value_str: String, + pub struct Splice_initResponse { + pub psbt: String, + } + + impl TryFrom for Splice_initResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::Splice_Init(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListconfigsConfigs { - #[deprecated] - #[serde(rename = "experimental-offers")] - #[serde(skip_serializing_if = "Option::is_none")] - pub experimental_offers: Option, - #[deprecated] - #[serde(rename = "experimental-onion-messages")] - #[serde(skip_serializing_if = "Option::is_none")] - pub experimental_onion_messages: Option, - #[deprecated] - #[serde(rename = "max-locktime-blocks")] - #[serde(skip_serializing_if = "Option::is_none")] - pub max_locktime_blocks: Option, - #[serde(rename = "accept-htlc-tlv-types")] - #[serde(skip_serializing_if = "Option::is_none")] - pub accept_htlc_tlv_types: Option, - #[serde(rename = "allow-deprecated-apis")] - #[serde(skip_serializing_if = "Option::is_none")] - pub allow_deprecated_apis: Option, - #[serde(rename = "always-use-proxy")] + pub struct Splice_signedResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub always_use_proxy: Option, - #[serde(rename = "announce-addr")] + pub outnum: Option, + pub psbt: String, + pub tx: String, + pub txid: String, + } + + impl TryFrom for Splice_signedResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::Splice_Signed(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct Splice_updateResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub announce_addr: Option, - #[serde(rename = "announce-addr-discovered")] + pub signatures_secured: Option, + pub commitments_secured: bool, + pub psbt: String, + } + + impl TryFrom for Splice_updateResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::Splice_Update(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DevspliceResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub announce_addr_discovered: Option, - #[serde(rename = "announce-addr-discovered-port")] + pub psbt: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub announce_addr_discovered_port: Option, - #[serde(rename = "announce-addr-dns")] + pub tx: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub announce_addr_dns: Option, - #[serde(rename = "autoconnect-seeker-peers")] + pub txid: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub dryrun: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub log: Option>, + } + + impl TryFrom for DevspliceResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::DevSplice(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct UnreserveinputsReservations { #[serde(skip_serializing_if = "Option::is_none")] - pub autoconnect_seeker_peers: Option, - #[serde(rename = "bind-addr")] + pub reserved_to_block: Option, + pub reserved: bool, + pub txid: String, + pub vout: u32, + pub was_reserved: bool, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct UnreserveinputsResponse { + pub reservations: Vec, + } + + impl TryFrom for UnreserveinputsResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::UnreserveInputs(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct UpgradewalletResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub bind_addr: Option, - #[serde(rename = "clear-plugins")] + pub psbt: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub clear_plugins: Option, - #[serde(rename = "cltv-delta")] + pub tx: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub cltv_delta: Option, - #[serde(rename = "cltv-final")] + pub txid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub cltv_final: Option, - #[serde(rename = "commit-fee")] + pub upgraded_outs: Option, + } + + impl TryFrom for UpgradewalletResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::UpgradeWallet(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct WaitblockheightResponse { + pub blockheight: u32, + } + + impl TryFrom for WaitblockheightResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::WaitBlockHeight(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + /// ['Status of the payment.', 'Still ongoing, completed, failed locally, or failed after forwarding.', "Whether it's paid, unpaid or unpayable."] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum WaitDetailsStatus { + #[serde(rename = "unpaid")] + UNPAID = 0, + #[serde(rename = "paid")] + PAID = 1, + #[serde(rename = "expired")] + EXPIRED = 2, + #[serde(rename = "pending")] + PENDING = 3, + #[serde(rename = "failed")] + FAILED = 4, + #[serde(rename = "complete")] + COMPLETE = 5, + #[serde(rename = "offered")] + OFFERED = 6, + #[serde(rename = "settled")] + SETTLED = 7, + #[serde(rename = "local_failed")] + LOCAL_FAILED = 8, + } + + impl TryFrom for WaitDetailsStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(WaitDetailsStatus::UNPAID), + 1 => Ok(WaitDetailsStatus::PAID), + 2 => Ok(WaitDetailsStatus::EXPIRED), + 3 => Ok(WaitDetailsStatus::PENDING), + 4 => Ok(WaitDetailsStatus::FAILED), + 5 => Ok(WaitDetailsStatus::COMPLETE), + 6 => Ok(WaitDetailsStatus::OFFERED), + 7 => Ok(WaitDetailsStatus::SETTLED), + 8 => Ok(WaitDetailsStatus::LOCAL_FAILED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitDetailsStatus", o)), + } + } + } + + impl ToString for WaitDetailsStatus { + fn to_string(&self) -> String { + match self { + WaitDetailsStatus::COMPLETE => "COMPLETE", + WaitDetailsStatus::EXPIRED => "EXPIRED", + WaitDetailsStatus::FAILED => "FAILED", + WaitDetailsStatus::LOCAL_FAILED => "LOCAL_FAILED", + WaitDetailsStatus::OFFERED => "OFFERED", + WaitDetailsStatus::PAID => "PAID", + WaitDetailsStatus::PENDING => "PENDING", + WaitDetailsStatus::SETTLED => "SETTLED", + WaitDetailsStatus::UNPAID => "UNPAID", + }.to_string() + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct WaitDetails { #[serde(skip_serializing_if = "Option::is_none")] - pub commit_fee: Option, - #[serde(rename = "commit-feerate-offset")] + pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub commit_feerate_offset: Option, - #[serde(rename = "commit-time")] + pub bolt12: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub commit_time: Option, - #[serde(rename = "database-upgrade")] + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub database_upgrade: Option, - #[serde(rename = "disable-dns")] + pub groupid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub disable_dns: Option, - #[serde(rename = "disable-mpp")] + pub in_channel: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub disable_mpp: Option, - #[serde(rename = "disable-plugin")] + pub in_htlc_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub disable_plugin: Option, - #[serde(rename = "encrypted-hsm")] + pub in_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub encrypted_hsm: Option, - #[serde(rename = "experimental-anchors")] + pub label: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub experimental_anchors: Option, - #[serde(rename = "experimental-dual-fund")] + pub out_channel: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub experimental_dual_fund: Option, - #[serde(rename = "experimental-peer-storage")] + pub partid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub experimental_peer_storage: Option, - #[serde(rename = "experimental-shutdown-wrong-funding")] + pub payment_hash: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub status: Option, + } + + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum WaitSubsystem { + #[serde(rename = "invoices")] + INVOICES = 0, + #[serde(rename = "forwards")] + FORWARDS = 1, + #[serde(rename = "sendpays")] + SENDPAYS = 2, + } + + impl TryFrom for WaitSubsystem { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(WaitSubsystem::INVOICES), + 1 => Ok(WaitSubsystem::FORWARDS), + 2 => Ok(WaitSubsystem::SENDPAYS), + o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitSubsystem", o)), + } + } + } + + impl ToString for WaitSubsystem { + fn to_string(&self) -> String { + match self { + WaitSubsystem::INVOICES => "INVOICES", + WaitSubsystem::FORWARDS => "FORWARDS", + WaitSubsystem::SENDPAYS => "SENDPAYS", + }.to_string() + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct WaitResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub created: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub deleted: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub details: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub updated: Option, + // Path `Wait.subsystem` + pub subsystem: WaitSubsystem, + } + + impl TryFrom for WaitResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::Wait(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsImportantpluginsOptions { + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsImportantplugins { + #[serde(skip_serializing_if = "Option::is_none")] + pub options: Option, + pub name: String, + pub path: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsPluginsOptions { + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsPlugins { + #[serde(skip_serializing_if = "Option::is_none")] + pub options: Option, + pub name: String, + pub path: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsExperimentaloffers { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsExperimentalonionmessages { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsMaxlocktimeblocks { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsAccepthtlctlvtypes { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsAllowdeprecatedapis { + pub source: String, + pub value_bool: bool, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsAlwaysuseproxy { + pub source: String, + pub value_bool: bool, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsAnnounceaddr { + pub sources: Vec, + pub values_str: Vec, + } + + /// ['Field from config or cmdline, or default.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum ListconfigsConfigsAnnounceaddrdiscoveredValue_str { + #[serde(rename = "true")] + TRUE = 0, + #[serde(rename = "false")] + FALSE = 1, + #[serde(rename = "auto")] + AUTO = 2, + } + + impl TryFrom for ListconfigsConfigsAnnounceaddrdiscoveredValue_str { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(ListconfigsConfigsAnnounceaddrdiscoveredValue_str::TRUE), + 1 => Ok(ListconfigsConfigsAnnounceaddrdiscoveredValue_str::FALSE), + 2 => Ok(ListconfigsConfigsAnnounceaddrdiscoveredValue_str::AUTO), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListconfigsConfigsAnnounceaddrdiscoveredValue_str", o)), + } + } + } + + impl ToString for ListconfigsConfigsAnnounceaddrdiscoveredValue_str { + fn to_string(&self) -> String { + match self { + ListconfigsConfigsAnnounceaddrdiscoveredValue_str::TRUE => "TRUE", + ListconfigsConfigsAnnounceaddrdiscoveredValue_str::FALSE => "FALSE", + ListconfigsConfigsAnnounceaddrdiscoveredValue_str::AUTO => "AUTO", + }.to_string() + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsAnnounceaddrdiscovered { + // Path `ListConfigs.configs.announce-addr-discovered.value_str` + pub value_str: ListconfigsConfigsAnnounceaddrdiscoveredValue_str, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsAnnounceaddrdiscoveredport { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsAnnounceaddrdns { + pub source: String, + pub value_bool: bool, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsAutoconnectseekerpeers { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsBindaddr { + pub sources: Vec, + pub values_str: Vec, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsClearplugins { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsCltvdelta { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsCltvfinal { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsCommitfee { + pub source: String, + pub value_int: u64, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsCommitfeerateoffset { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsCommittime { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsDatabaseupgrade { + pub source: String, + pub value_bool: bool, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsDisabledns { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsDisablempp { + #[serde(skip_serializing_if = "Option::is_none")] + pub plugin: Option, + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsDisableplugin { + pub sources: Vec, + pub values_str: Vec, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsEncryptedhsm { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsExperimentalanchors { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsExperimentaldualfund { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsExperimentalpeerstorage { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsExperimentalshutdownwrongfunding { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsExperimentalsplicing { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsFeebase { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsFeepersatoshi { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsFetchinvoicenoconnect { + #[serde(skip_serializing_if = "Option::is_none")] + pub plugin: Option, + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsForcefeerates { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsFundingconfirms { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsHtlcmaximummsat { + pub source: String, + pub value_msat: Amount, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsHtlcminimummsat { + pub source: String, + pub value_msat: Amount, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsIgnorefeelimits { + pub source: String, + pub value_bool: bool, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsImportantplugin { + pub sources: Vec, + pub values_str: Vec, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsLargechannels { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsLightningdir { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsLogfile { + pub sources: Vec, + pub values_str: Vec, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsLoglevel { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsLogprefix { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsLogtimestamps { + pub source: String, + pub value_bool: bool, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsMaxconcurrenthtlcs { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsMaxdusthtlcexposuremsat { + pub source: String, + pub value_msat: Amount, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsMincapacitysat { + #[serde(skip_serializing_if = "Option::is_none")] + pub dynamic: Option, + pub source: String, + pub value_int: u64, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsPidfile { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsPlugindir { + pub sources: Vec, + pub values_str: Vec, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsRequireconfirmedinputs { + pub source: String, + pub value_bool: bool, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsRpcfile { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsRpcfilemode { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsTorservicepassword { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsWatchtimeblocks { + pub source: String, + pub value_int: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsAddr { + pub sources: Vec, + pub values_str: Vec, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsAlias { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsAutolisten { + pub source: String, + pub value_bool: bool, + } + + /// ['Source of configuration setting.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum ListconfigsConfigsConfSource { + #[serde(rename = "cmdline")] + CMDLINE = 0, + } + + impl TryFrom for ListconfigsConfigsConfSource { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(ListconfigsConfigsConfSource::CMDLINE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListconfigsConfigsConfSource", o)), + } + } + } + + impl ToString for ListconfigsConfigsConfSource { + fn to_string(&self) -> String { + match self { + ListconfigsConfigsConfSource::CMDLINE => "CMDLINE", + }.to_string() + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsConf { + // Path `ListConfigs.configs.conf.source` + pub source: ListconfigsConfigsConfSource, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsDaemon { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsDeveloper { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsMainnet { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsNetwork { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsOffline { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsPlugin { + pub sources: Vec, + pub values_str: Vec, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsProxy { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsRegtest { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsRescan { + pub source: String, + pub value_int: i64, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsRgb { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsSignet { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsSubdaemon { + pub sources: Vec, + pub values_str: Vec, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsTestnet { + pub set: bool, + pub source: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigsWallet { + pub source: String, + pub value_str: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListconfigsConfigs { + #[deprecated] + #[serde(rename = "experimental-offers")] + #[serde(skip_serializing_if = "Option::is_none")] + pub experimental_offers: Option, + #[deprecated] + #[serde(rename = "experimental-onion-messages")] + #[serde(skip_serializing_if = "Option::is_none")] + pub experimental_onion_messages: Option, + #[deprecated] + #[serde(rename = "max-locktime-blocks")] + #[serde(skip_serializing_if = "Option::is_none")] + pub max_locktime_blocks: Option, + #[serde(rename = "accept-htlc-tlv-types")] + #[serde(skip_serializing_if = "Option::is_none")] + pub accept_htlc_tlv_types: Option, + #[serde(rename = "allow-deprecated-apis")] + #[serde(skip_serializing_if = "Option::is_none")] + pub allow_deprecated_apis: Option, + #[serde(rename = "always-use-proxy")] + #[serde(skip_serializing_if = "Option::is_none")] + pub always_use_proxy: Option, + #[serde(rename = "announce-addr")] + #[serde(skip_serializing_if = "Option::is_none")] + pub announce_addr: Option, + #[serde(rename = "announce-addr-discovered")] + #[serde(skip_serializing_if = "Option::is_none")] + pub announce_addr_discovered: Option, + #[serde(rename = "announce-addr-discovered-port")] + #[serde(skip_serializing_if = "Option::is_none")] + pub announce_addr_discovered_port: Option, + #[serde(rename = "announce-addr-dns")] + #[serde(skip_serializing_if = "Option::is_none")] + pub announce_addr_dns: Option, + #[serde(rename = "autoconnect-seeker-peers")] + #[serde(skip_serializing_if = "Option::is_none")] + pub autoconnect_seeker_peers: Option, + #[serde(rename = "bind-addr")] + #[serde(skip_serializing_if = "Option::is_none")] + pub bind_addr: Option, + #[serde(rename = "clear-plugins")] + #[serde(skip_serializing_if = "Option::is_none")] + pub clear_plugins: Option, + #[serde(rename = "cltv-delta")] + #[serde(skip_serializing_if = "Option::is_none")] + pub cltv_delta: Option, + #[serde(rename = "cltv-final")] + #[serde(skip_serializing_if = "Option::is_none")] + pub cltv_final: Option, + #[serde(rename = "commit-fee")] + #[serde(skip_serializing_if = "Option::is_none")] + pub commit_fee: Option, + #[serde(rename = "commit-feerate-offset")] + #[serde(skip_serializing_if = "Option::is_none")] + pub commit_feerate_offset: Option, + #[serde(rename = "commit-time")] + #[serde(skip_serializing_if = "Option::is_none")] + pub commit_time: Option, + #[serde(rename = "database-upgrade")] + #[serde(skip_serializing_if = "Option::is_none")] + pub database_upgrade: Option, + #[serde(rename = "disable-dns")] + #[serde(skip_serializing_if = "Option::is_none")] + pub disable_dns: Option, + #[serde(rename = "disable-mpp")] + #[serde(skip_serializing_if = "Option::is_none")] + pub disable_mpp: Option, + #[serde(rename = "disable-plugin")] + #[serde(skip_serializing_if = "Option::is_none")] + pub disable_plugin: Option, + #[serde(rename = "encrypted-hsm")] + #[serde(skip_serializing_if = "Option::is_none")] + pub encrypted_hsm: Option, + #[serde(rename = "experimental-anchors")] + #[serde(skip_serializing_if = "Option::is_none")] + pub experimental_anchors: Option, + #[serde(rename = "experimental-dual-fund")] + #[serde(skip_serializing_if = "Option::is_none")] + pub experimental_dual_fund: Option, + #[serde(rename = "experimental-peer-storage")] + #[serde(skip_serializing_if = "Option::is_none")] + pub experimental_peer_storage: Option, + #[serde(rename = "experimental-shutdown-wrong-funding")] #[serde(skip_serializing_if = "Option::is_none")] pub experimental_shutdown_wrong_funding: Option, #[serde(rename = "experimental-splicing")] @@ -9651,679 +10436,1233 @@ pub mod responses { #[serde(skip_serializing_if = "Option::is_none")] pub ignore_fee_limits: Option, #[deprecated] - #[serde(rename = "large-channels")] + #[serde(rename = "large-channels")] + #[serde(skip_serializing_if = "Option::is_none")] + pub large_channels: Option, + #[deprecated] + #[serde(rename = "lightning-dir")] + #[serde(skip_serializing_if = "Option::is_none")] + pub lightning_dir: Option, + #[deprecated] + #[serde(rename = "log-file")] + #[serde(skip_serializing_if = "Option::is_none")] + pub log_file: Option, + #[deprecated] + #[serde(rename = "log-level")] + #[serde(skip_serializing_if = "Option::is_none")] + pub log_level: Option, + #[deprecated] + #[serde(rename = "log-prefix")] + #[serde(skip_serializing_if = "Option::is_none")] + pub log_prefix: Option, + #[deprecated] + #[serde(rename = "log-timestamps")] + #[serde(skip_serializing_if = "Option::is_none")] + pub log_timestamps: Option, + #[deprecated] + #[serde(rename = "max-concurrent-htlcs")] + #[serde(skip_serializing_if = "Option::is_none")] + pub max_concurrent_htlcs: Option, + #[deprecated] + #[serde(rename = "max-dust-htlc-exposure-msat")] + #[serde(skip_serializing_if = "Option::is_none")] + pub max_dust_htlc_exposure_msat: Option, + #[deprecated] + #[serde(rename = "max-locktime-blocks")] + #[serde(skip_serializing_if = "Option::is_none")] + pub max_locktime_blocks: Option, + #[deprecated] + #[serde(rename = "min-capacity-sat")] + #[serde(skip_serializing_if = "Option::is_none")] + pub min_capacity_sat: Option, + #[deprecated] + #[serde(rename = "pid-file")] + #[serde(skip_serializing_if = "Option::is_none")] + pub pid_file: Option, + #[deprecated] + #[serde(rename = "require-confirmed-inputs")] + #[serde(skip_serializing_if = "Option::is_none")] + pub require_confirmed_inputs: Option, + #[deprecated] + #[serde(rename = "rpc-file")] + #[serde(skip_serializing_if = "Option::is_none")] + pub rpc_file: Option, + #[deprecated] + #[serde(rename = "rpc-file-mode")] + #[serde(skip_serializing_if = "Option::is_none")] + pub rpc_file_mode: Option, + #[deprecated] + #[serde(rename = "tor-service-password")] + #[serde(skip_serializing_if = "Option::is_none")] + pub tor_service_password: Option, + #[deprecated] + #[serde(rename = "watchtime-blocks")] + #[serde(skip_serializing_if = "Option::is_none")] + pub watchtime_blocks: Option, + #[deprecated] + #[serde(skip_serializing_if = "Option::is_none")] + pub addr: Option, + #[deprecated] + #[serde(skip_serializing_if = "Option::is_none")] + pub alias: Option, + #[deprecated] + #[serde(skip_serializing_if = "Option::is_none")] + pub autolisten: Option, + #[deprecated] + #[serde(skip_serializing_if = "Option::is_none")] + pub conf: Option, + #[deprecated] #[serde(skip_serializing_if = "Option::is_none")] - pub large_channels: Option, + pub daemon: Option, #[deprecated] - #[serde(rename = "lightning-dir")] #[serde(skip_serializing_if = "Option::is_none")] - pub lightning_dir: Option, + pub network: Option, #[deprecated] - #[serde(rename = "log-file")] #[serde(skip_serializing_if = "Option::is_none")] - pub log_file: Option, + pub offline: Option, #[deprecated] - #[serde(rename = "log-level")] #[serde(skip_serializing_if = "Option::is_none")] - pub log_level: Option, + pub proxy: Option, #[deprecated] - #[serde(rename = "log-prefix")] #[serde(skip_serializing_if = "Option::is_none")] - pub log_prefix: Option, + pub rescan: Option, #[deprecated] - #[serde(rename = "log-timestamps")] #[serde(skip_serializing_if = "Option::is_none")] - pub log_timestamps: Option, + pub rgb: Option, #[deprecated] - #[serde(rename = "max-concurrent-htlcs")] #[serde(skip_serializing_if = "Option::is_none")] - pub max_concurrent_htlcs: Option, + pub subdaemon: Option, #[deprecated] - #[serde(rename = "max-dust-htlc-exposure-msat")] #[serde(skip_serializing_if = "Option::is_none")] - pub max_dust_htlc_exposure_msat: Option, + pub wallet: Option, #[deprecated] - #[serde(rename = "max-locktime-blocks")] + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub disable_plugin: Option>, + #[deprecated] + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub important_plugins: Option>, + #[deprecated] + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub plugins: Option>, + #[serde(rename = "autoconnect-seeker-peers")] + #[serde(skip_serializing_if = "Option::is_none")] + pub autoconnect_seeker_peers: Option, + #[serde(rename = "commit-feerate-offset")] + #[serde(skip_serializing_if = "Option::is_none")] + pub commit_feerate_offset: Option, + #[serde(rename = "invoices-onchain-fallback")] + #[serde(skip_serializing_if = "Option::is_none")] + pub invoices_onchain_fallback: Option, + #[serde(rename = "min-emergency-msat")] + #[serde(skip_serializing_if = "Option::is_none")] + pub min_emergency_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub configs: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub developer: Option, + } + + impl TryFrom for ListconfigsResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::ListConfigs(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum StopResult { + #[serde(rename = "Shutdown complete")] + SHUTDOWN_COMPLETE = 0, + } + + impl TryFrom for StopResult { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(StopResult::SHUTDOWN_COMPLETE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum StopResult", o)), + } + } + } + + impl ToString for StopResult { + fn to_string(&self) -> String { + match self { + StopResult::SHUTDOWN_COMPLETE => "SHUTDOWN_COMPLETE", + }.to_string() + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct StopResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub result: Option, + } + + impl TryFrom for StopResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::Stop(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + /// ['Prints the help in human-readable flat form.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum HelpFormathint { + #[serde(rename = "simple")] + SIMPLE = 0, + } + + impl TryFrom for HelpFormathint { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(HelpFormathint::SIMPLE), + o => Err(anyhow::anyhow!("Unknown variant {} for enum HelpFormathint", o)), + } + } + } + + impl ToString for HelpFormathint { + fn to_string(&self) -> String { + match self { + HelpFormathint::SIMPLE => "SIMPLE", + }.to_string() + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct HelpHelp { + pub command: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct HelpResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub format_hint: Option, + pub help: Vec, + } + + impl TryFrom for HelpResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::Help(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct PreapprovekeysendResponse { + } + + impl TryFrom for PreapprovekeysendResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::PreApproveKeysend(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct PreapproveinvoiceResponse { + } + + impl TryFrom for PreapproveinvoiceResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::PreApproveInvoice(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct StaticbackupResponse { + pub scb: Vec, + } + + impl TryFrom for StaticbackupResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::StaticBackup(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprchannelsapyChannels_apy { + #[serde(skip_serializing_if = "Option::is_none")] + pub apy_in_initial: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub apy_lease: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub apy_out_initial: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub apy_total_initial: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub fees_in_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub utilization_in_initial: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub utilization_out_initial: Option, + pub account: String, + pub apy_in: String, + pub apy_out: String, + pub apy_total: String, + pub channel_start_balance_msat: Amount, + pub fees_out_msat: Amount, + pub lease_fee_earned_msat: Amount, + pub lease_fee_paid_msat: Amount, + pub our_start_balance_msat: Amount, + pub pushed_in_msat: Amount, + pub pushed_out_msat: Amount, + pub routed_in_msat: Amount, + pub routed_out_msat: Amount, + pub utilization_in: String, + pub utilization_out: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprchannelsapyResponse { + pub channels_apy: Vec, + } + + impl TryFrom for BkprchannelsapyResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::BkprChannelsApy(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + /// ['Format to print csv as.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum BkprdumpincomecsvCsv_format { + #[serde(rename = "cointracker")] + COINTRACKER = 0, + #[serde(rename = "koinly")] + KOINLY = 1, + #[serde(rename = "harmony")] + HARMONY = 2, + #[serde(rename = "quickbooks")] + QUICKBOOKS = 3, + } + + impl TryFrom for BkprdumpincomecsvCsv_format { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(BkprdumpincomecsvCsv_format::COINTRACKER), + 1 => Ok(BkprdumpincomecsvCsv_format::KOINLY), + 2 => Ok(BkprdumpincomecsvCsv_format::HARMONY), + 3 => Ok(BkprdumpincomecsvCsv_format::QUICKBOOKS), + o => Err(anyhow::anyhow!("Unknown variant {} for enum BkprdumpincomecsvCsv_format", o)), + } + } + } + + impl ToString for BkprdumpincomecsvCsv_format { + fn to_string(&self) -> String { + match self { + BkprdumpincomecsvCsv_format::COINTRACKER => "COINTRACKER", + BkprdumpincomecsvCsv_format::KOINLY => "KOINLY", + BkprdumpincomecsvCsv_format::HARMONY => "HARMONY", + BkprdumpincomecsvCsv_format::QUICKBOOKS => "QUICKBOOKS", + }.to_string() + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprdumpincomecsvResponse { + // Path `Bkpr-DumpIncomeCsv.csv_format` + pub csv_format: BkprdumpincomecsvCsv_format, + pub csv_file: String, + } + + impl TryFrom for BkprdumpincomecsvResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::BkprDumpIncomeCsv(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprinspectTxsOutputs { #[serde(skip_serializing_if = "Option::is_none")] - pub max_locktime_blocks: Option, - #[deprecated] - #[serde(rename = "min-capacity-sat")] + pub credit_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub min_capacity_sat: Option, - #[deprecated] - #[serde(rename = "pid-file")] + pub debit_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub pid_file: Option, - #[deprecated] - #[serde(rename = "require-confirmed-inputs")] + pub originating_account: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub require_confirmed_inputs: Option, - #[deprecated] - #[serde(rename = "rpc-file")] + pub output_tag: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub rpc_file: Option, - #[deprecated] - #[serde(rename = "rpc-file-mode")] + pub payment_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub rpc_file_mode: Option, - #[deprecated] - #[serde(rename = "tor-service-password")] + pub spend_tag: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub tor_service_password: Option, - #[deprecated] - #[serde(rename = "watchtime-blocks")] + pub spending_txid: Option, + pub account: String, + pub currency: String, + pub outnum: u32, + pub output_value_msat: Amount, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprinspectTxs { #[serde(skip_serializing_if = "Option::is_none")] - pub watchtime_blocks: Option, - #[deprecated] + pub blockheight: Option, + pub fees_paid_msat: Amount, + pub outputs: Vec, + pub txid: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprinspectResponse { + pub txs: Vec, + } + + impl TryFrom for BkprinspectResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::BkprInspect(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + /// ['Coin movement type.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum BkprlistaccounteventsEventsType { + #[serde(rename = "onchain_fee")] + ONCHAIN_FEE = 0, + #[serde(rename = "chain")] + CHAIN = 1, + #[serde(rename = "channel")] + CHANNEL = 2, + } + + impl TryFrom for BkprlistaccounteventsEventsType { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(BkprlistaccounteventsEventsType::ONCHAIN_FEE), + 1 => Ok(BkprlistaccounteventsEventsType::CHAIN), + 2 => Ok(BkprlistaccounteventsEventsType::CHANNEL), + o => Err(anyhow::anyhow!("Unknown variant {} for enum BkprlistaccounteventsEventsType", o)), + } + } + } + + impl ToString for BkprlistaccounteventsEventsType { + fn to_string(&self) -> String { + match self { + BkprlistaccounteventsEventsType::ONCHAIN_FEE => "ONCHAIN_FEE", + BkprlistaccounteventsEventsType::CHAIN => "CHAIN", + BkprlistaccounteventsEventsType::CHANNEL => "CHANNEL", + }.to_string() + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprlistaccounteventsEvents { #[serde(skip_serializing_if = "Option::is_none")] - pub addr: Option, - #[deprecated] + pub blockheight: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub alias: Option, - #[deprecated] + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub autolisten: Option, - #[deprecated] + pub fees_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub conf: Option, - #[deprecated] + pub is_rebalance: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub daemon: Option, - #[deprecated] + pub origin: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub network: Option, - #[deprecated] + pub outpoint: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offline: Option, - #[deprecated] + pub part_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub proxy: Option, - #[deprecated] + pub payment_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub rescan: Option, - #[deprecated] + pub txid: Option, + // Path `Bkpr-ListAccountEvents.events[].type` + #[serde(rename = "type")] + pub item_type: BkprlistaccounteventsEventsType, + pub account: String, + pub credit_msat: Amount, + pub currency: String, + pub debit_msat: Amount, + pub tag: String, + pub timestamp: u32, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprlistaccounteventsResponse { + pub events: Vec, + } + + impl TryFrom for BkprlistaccounteventsResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::BkprListAccountEvents(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprlistbalancesAccountsBalances { + pub balance_msat: Amount, + pub coin_type: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprlistbalancesAccounts { #[serde(skip_serializing_if = "Option::is_none")] - pub rgb: Option, - #[deprecated] + pub account_closed: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub subdaemon: Option, - #[deprecated] + pub account_resolved: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub wallet: Option, - #[deprecated] - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub disable_plugin: Option>, - #[deprecated] - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub important_plugins: Option>, - #[deprecated] - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub plugins: Option>, - #[serde(rename = "autoconnect-seeker-peers")] + pub peer_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub autoconnect_seeker_peers: Option, - #[serde(rename = "commit-feerate-offset")] + pub resolved_at_block: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub commit_feerate_offset: Option, - #[serde(rename = "invoices-onchain-fallback")] + pub we_opened: Option, + pub account: String, + pub balances: Vec, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprlistbalancesResponse { + pub accounts: Vec, + } + + impl TryFrom for BkprlistbalancesResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::BkprListBalances(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprlistincomeIncome_events { #[serde(skip_serializing_if = "Option::is_none")] - pub invoices_onchain_fallback: Option, - #[serde(rename = "min-emergency-msat")] + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub min_emergency_msat: Option, + pub outpoint: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub configs: Option, + pub payment_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub developer: Option, + pub txid: Option, + pub account: String, + pub credit_msat: Amount, + pub currency: String, + pub debit_msat: Amount, + pub tag: String, + pub timestamp: u32, } - impl TryFrom for ListconfigsResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkprlistincomeResponse { + pub income_events: Vec, + } + + impl TryFrom for BkprlistincomeResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ListConfigs(response) => Ok(response), + Response::BkprListIncome(response) => Ok(response), _ => Err(TryFromResponseError) } } } + /// ['Coin movement type.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum StopResult { - #[serde(rename = "Shutdown complete")] - SHUTDOWN_COMPLETE = 0, + pub enum BkpreditdescriptionbypaymentidUpdatedType { + #[serde(rename = "chain")] + CHAIN = 0, + #[serde(rename = "channel")] + CHANNEL = 1, } - impl TryFrom for StopResult { + impl TryFrom for BkpreditdescriptionbypaymentidUpdatedType { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(StopResult::SHUTDOWN_COMPLETE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum StopResult", o)), + 0 => Ok(BkpreditdescriptionbypaymentidUpdatedType::CHAIN), + 1 => Ok(BkpreditdescriptionbypaymentidUpdatedType::CHANNEL), + o => Err(anyhow::anyhow!("Unknown variant {} for enum BkpreditdescriptionbypaymentidUpdatedType", o)), } } } - impl ToString for StopResult { + impl ToString for BkpreditdescriptionbypaymentidUpdatedType { fn to_string(&self) -> String { match self { - StopResult::SHUTDOWN_COMPLETE => "SHUTDOWN_COMPLETE", + BkpreditdescriptionbypaymentidUpdatedType::CHAIN => "CHAIN", + BkpreditdescriptionbypaymentidUpdatedType::CHANNEL => "CHANNEL", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct StopResponse { + pub struct BkpreditdescriptionbypaymentidUpdated { #[serde(skip_serializing_if = "Option::is_none")] - pub result: Option, + pub blockheight: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub fees_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub is_rebalance: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub origin: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub outpoint: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub part_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub txid: Option, + // Path `Bkpr-EditDescriptionByPaymentId.updated[].type` + #[serde(rename = "type")] + pub item_type: BkpreditdescriptionbypaymentidUpdatedType, + pub account: String, + pub credit_msat: Amount, + pub currency: String, + pub debit_msat: Amount, + pub description: String, + pub tag: String, + pub timestamp: u32, } - impl TryFrom for StopResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BkpreditdescriptionbypaymentidResponse { + pub updated: Vec, + } + + impl TryFrom for BkpreditdescriptionbypaymentidResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Stop(response) => Ok(response), + Response::BkprEditDescriptionByPaymentId(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Prints the help in human-readable flat form.'] + /// ['Coin movement type.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum HelpFormathint { - #[serde(rename = "simple")] - SIMPLE = 0, + pub enum BkpreditdescriptionbyoutpointUpdatedType { + #[serde(rename = "chain")] + CHAIN = 0, + #[serde(rename = "channel")] + CHANNEL = 1, } - impl TryFrom for HelpFormathint { + impl TryFrom for BkpreditdescriptionbyoutpointUpdatedType { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(HelpFormathint::SIMPLE), - o => Err(anyhow::anyhow!("Unknown variant {} for enum HelpFormathint", o)), + 0 => Ok(BkpreditdescriptionbyoutpointUpdatedType::CHAIN), + 1 => Ok(BkpreditdescriptionbyoutpointUpdatedType::CHANNEL), + o => Err(anyhow::anyhow!("Unknown variant {} for enum BkpreditdescriptionbyoutpointUpdatedType", o)), } } } - impl ToString for HelpFormathint { + impl ToString for BkpreditdescriptionbyoutpointUpdatedType { fn to_string(&self) -> String { match self { - HelpFormathint::SIMPLE => "SIMPLE", + BkpreditdescriptionbyoutpointUpdatedType::CHAIN => "CHAIN", + BkpreditdescriptionbyoutpointUpdatedType::CHANNEL => "CHANNEL", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct HelpHelp { - pub command: String, + pub struct BkpreditdescriptionbyoutpointUpdated { + #[serde(skip_serializing_if = "Option::is_none")] + pub blockheight: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub fees_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub is_rebalance: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub origin: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub outpoint: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub part_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub txid: Option, + // Path `Bkpr-EditDescriptionByOutpoint.updated[].type` + #[serde(rename = "type")] + pub item_type: BkpreditdescriptionbyoutpointUpdatedType, + pub account: String, + pub credit_msat: Amount, + pub currency: String, + pub debit_msat: Amount, + pub description: String, + pub tag: String, + pub timestamp: u32, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct HelpResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub format_hint: Option, - pub help: Vec, + pub struct BkpreditdescriptionbyoutpointResponse { + pub updated: Vec, } - impl TryFrom for HelpResponse { + impl TryFrom for BkpreditdescriptionbyoutpointResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::Help(response) => Ok(response), + Response::BkprEditDescriptionByOutpoint(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct PreapprovekeysendResponse { + pub struct BlacklistruneBlacklist { + pub end: u64, + pub start: u64, } - impl TryFrom for PreapprovekeysendResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct BlacklistruneResponse { + pub blacklist: Vec, + } + + impl TryFrom for BlacklistruneResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::PreApproveKeysend(response) => Ok(response), + Response::BlacklistRune(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct PreapproveinvoiceResponse { + pub struct CheckruneResponse { + pub valid: bool, } - impl TryFrom for PreapproveinvoiceResponse { + impl TryFrom for CheckruneResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::PreApproveInvoice(response) => Ok(response), + Response::CheckRune(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct StaticbackupResponse { - pub scb: Vec, + pub struct CreateruneResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub warning_unrestricted_rune: Option, + pub rune: String, + pub unique_id: String, } - impl TryFrom for StaticbackupResponse { + impl TryFrom for CreateruneResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::StaticBackup(response) => Ok(response), + Response::CreateRune(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprchannelsapyChannels_apy { - #[serde(skip_serializing_if = "Option::is_none")] - pub apy_in_initial: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub apy_lease: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub apy_out_initial: Option, + pub struct ShowrunesRunesRestrictionsAlternatives { + pub condition: String, + pub english: String, + pub fieldname: String, + pub value: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ShowrunesRunesRestrictions { + pub alternatives: Vec, + pub english: String, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ShowrunesRunes { #[serde(skip_serializing_if = "Option::is_none")] - pub apy_total_initial: Option, + pub blacklisted: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub fees_in_msat: Option, + pub last_used: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub utilization_in_initial: Option, + pub our_rune: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub utilization_out_initial: Option, - pub account: String, - pub apy_in: String, - pub apy_out: String, - pub apy_total: String, - pub channel_start_balance_msat: Amount, - pub fees_out_msat: Amount, - pub lease_fee_earned_msat: Amount, - pub lease_fee_paid_msat: Amount, - pub our_start_balance_msat: Amount, - pub pushed_in_msat: Amount, - pub pushed_out_msat: Amount, - pub routed_in_msat: Amount, - pub routed_out_msat: Amount, - pub utilization_in: String, - pub utilization_out: String, + pub stored: Option, + pub restrictions: Vec, + pub restrictions_as_english: String, + pub rune: String, + pub unique_id: String, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprchannelsapyResponse { - pub channels_apy: Vec, + pub struct ShowrunesResponse { + pub runes: Vec, } - impl TryFrom for BkprchannelsapyResponse { + impl TryFrom for ShowrunesResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::BkprChannelsApy(response) => Ok(response), + Response::ShowRunes(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Format to print csv as.'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum BkprdumpincomecsvCsv_format { - #[serde(rename = "cointracker")] - COINTRACKER = 0, - #[serde(rename = "koinly")] - KOINLY = 1, - #[serde(rename = "harmony")] - HARMONY = 2, - #[serde(rename = "quickbooks")] - QUICKBOOKS = 3, + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskreneunreserveResponse { } - impl TryFrom for BkprdumpincomecsvCsv_format { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(BkprdumpincomecsvCsv_format::COINTRACKER), - 1 => Ok(BkprdumpincomecsvCsv_format::KOINLY), - 2 => Ok(BkprdumpincomecsvCsv_format::HARMONY), - 3 => Ok(BkprdumpincomecsvCsv_format::QUICKBOOKS), - o => Err(anyhow::anyhow!("Unknown variant {} for enum BkprdumpincomecsvCsv_format", o)), + impl TryFrom for AskreneunreserveResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::AskReneUnreserve(response) => Ok(response), + _ => Err(TryFromResponseError) } } } - impl ToString for BkprdumpincomecsvCsv_format { - fn to_string(&self) -> String { - match self { - BkprdumpincomecsvCsv_format::COINTRACKER => "COINTRACKER", - BkprdumpincomecsvCsv_format::KOINLY => "KOINLY", - BkprdumpincomecsvCsv_format::HARMONY => "HARMONY", - BkprdumpincomecsvCsv_format::QUICKBOOKS => "QUICKBOOKS", - }.to_string() - } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskrenelistlayersLayersBiases { + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + pub bias: i64, + pub short_channel_id_dir: ShortChannelIdDir, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskrenelistlayersLayersChannel_updates { + #[serde(skip_serializing_if = "Option::is_none")] + pub cltv_expiry_delta: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub enabled: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub fee_base_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub fee_proportional_millionths: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub htlc_maximum_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub htlc_minimum_msat: Option, + pub short_channel_id_dir: ShortChannelIdDir, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskrenelistlayersLayersConstraints { + #[serde(skip_serializing_if = "Option::is_none")] + pub maximum_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub minimum_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub short_channel_id_dir: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub timestamp: Option, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskrenelistlayersLayersCreated_channels { + pub capacity_msat: Amount, + pub destination: PublicKey, + pub short_channel_id: ShortChannelId, + pub source: PublicKey, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprdumpincomecsvResponse { - // Path `Bkpr-DumpIncomeCsv.csv_format` - pub csv_format: BkprdumpincomecsvCsv_format, - pub csv_file: String, + pub struct AskrenelistlayersLayers { + #[serde(skip_serializing_if = "Option::is_none")] + pub persistent: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub biases: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub channel_updates: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub disabled_channels: Option>, + pub constraints: Vec, + pub created_channels: Vec, + pub disabled_nodes: Vec, + pub layer: String, } - impl TryFrom for BkprdumpincomecsvResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskrenelistlayersResponse { + pub layers: Vec, + } + + impl TryFrom for AskrenelistlayersResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::BkprDumpIncomeCsv(response) => Ok(response), + Response::AskReneListLayers(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprinspectTxsOutputs { + pub struct AskrenecreatelayerLayersBiases { #[serde(skip_serializing_if = "Option::is_none")] - pub credit_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub debit_msat: Option, + pub description: Option, + pub bias: i64, + pub short_channel_id_dir: ShortChannelIdDir, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskrenecreatelayerLayersChannel_updates { #[serde(skip_serializing_if = "Option::is_none")] - pub originating_account: Option, + pub delay: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub output_tag: Option, + pub fee_base_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_id: Option, + pub fee_proportional_millionths: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub spend_tag: Option, + pub htlc_maximum_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub spending_txid: Option, - pub account: String, - pub currency: String, - pub outnum: u32, - pub output_value_msat: Amount, + pub htlc_minimum_msat: Option, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprinspectTxs { + pub struct AskrenecreatelayerLayersConstraints { #[serde(skip_serializing_if = "Option::is_none")] - pub blockheight: Option, - pub fees_paid_msat: Amount, - pub outputs: Vec, - pub txid: String, + pub maximum_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub minimum_msat: Option, + pub direction: u32, + pub short_channel_id: ShortChannelId, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprinspectResponse { - pub txs: Vec, + pub struct AskrenecreatelayerLayersCreated_channels { + pub capacity_msat: Amount, + pub destination: PublicKey, + pub short_channel_id: ShortChannelId, + pub source: PublicKey, } - impl TryFrom for BkprinspectResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskrenecreatelayerLayers { + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub biases: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub disabled_channels: Option>, + pub channel_updates: Vec, + pub constraints: Vec, + pub created_channels: Vec, + pub disabled_nodes: Vec, + pub layer: String, + pub persistent: bool, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskrenecreatelayerResponse { + pub layers: Vec, + } + + impl TryFrom for AskrenecreatelayerResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::BkprInspect(response) => Ok(response), + Response::AskReneCreateLayer(response) => Ok(response), _ => Err(TryFromResponseError) } } } - /// ['Coin movement type.'] - #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum BkprlistaccounteventsEventsType { - #[serde(rename = "onchain_fee")] - ONCHAIN_FEE = 0, - #[serde(rename = "chain")] - CHAIN = 1, - #[serde(rename = "channel")] - CHANNEL = 2, + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskreneremovelayerResponse { } - impl TryFrom for BkprlistaccounteventsEventsType { - type Error = anyhow::Error; - fn try_from(c: i32) -> Result { - match c { - 0 => Ok(BkprlistaccounteventsEventsType::ONCHAIN_FEE), - 1 => Ok(BkprlistaccounteventsEventsType::CHAIN), - 2 => Ok(BkprlistaccounteventsEventsType::CHANNEL), - o => Err(anyhow::anyhow!("Unknown variant {} for enum BkprlistaccounteventsEventsType", o)), + impl TryFrom for AskreneremovelayerResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::AskReneRemoveLayer(response) => Ok(response), + _ => Err(TryFromResponseError) } } } - impl ToString for BkprlistaccounteventsEventsType { - fn to_string(&self) -> String { - match self { - BkprlistaccounteventsEventsType::ONCHAIN_FEE => "ONCHAIN_FEE", - BkprlistaccounteventsEventsType::CHAIN => "CHAIN", - BkprlistaccounteventsEventsType::CHANNEL => "CHANNEL", - }.to_string() - } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskrenereserveResponse { } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprlistaccounteventsEvents { - #[serde(skip_serializing_if = "Option::is_none")] - pub blockheight: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub fees_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub is_rebalance: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub origin: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub outpoint: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub part_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub payment_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub txid: Option, - // Path `Bkpr-ListAccountEvents.events[].type` - #[serde(rename = "type")] - pub item_type: BkprlistaccounteventsEventsType, - pub account: String, - pub credit_msat: Amount, - pub currency: String, - pub debit_msat: Amount, - pub tag: String, - pub timestamp: u32, + impl TryFrom for AskrenereserveResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::AskReneReserve(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprlistaccounteventsResponse { - pub events: Vec, + pub struct AskreneageResponse { + pub layer: String, + pub num_removed: u64, } - impl TryFrom for BkprlistaccounteventsResponse { + impl TryFrom for AskreneageResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::BkprListAccountEvents(response) => Ok(response), + Response::AskReneAge(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprlistbalancesAccountsBalances { - pub balance_msat: Amount, - pub coin_type: String, + pub struct GetroutesRoutesPath { + #[serde(skip_serializing_if = "Option::is_none")] + pub short_channel_id_dir: Option, + pub amount_msat: Amount, + pub delay: u32, + pub next_node_id: PublicKey, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprlistbalancesAccounts { - #[serde(skip_serializing_if = "Option::is_none")] - pub account_closed: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub account_resolved: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub peer_id: Option, + pub struct GetroutesRoutes { #[serde(skip_serializing_if = "Option::is_none")] - pub resolved_at_block: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub we_opened: Option, - pub account: String, - pub balances: Vec, + pub final_cltv: Option, + pub amount_msat: Amount, + pub path: Vec, + pub probability_ppm: u64, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprlistbalancesResponse { - pub accounts: Vec, + pub struct GetroutesResponse { + pub probability_ppm: u64, + pub routes: Vec, } - impl TryFrom for BkprlistbalancesResponse { + impl TryFrom for GetroutesResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::BkprListBalances(response) => Ok(response), + Response::GetRoutes(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprlistincomeIncome_events { - #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub outpoint: Option, + pub struct AskrenedisablenodeResponse { + } + + impl TryFrom for AskrenedisablenodeResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::AskReneDisableNode(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskreneinformchannelConstraints { #[serde(skip_serializing_if = "Option::is_none")] - pub payment_id: Option, + pub maximum_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub txid: Option, - pub account: String, - pub credit_msat: Amount, - pub currency: String, - pub debit_msat: Amount, - pub tag: String, - pub timestamp: u32, + pub minimum_msat: Option, + pub layer: String, + pub short_channel_id_dir: ShortChannelIdDir, + pub timestamp: u64, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BkprlistincomeResponse { - pub income_events: Vec, + pub struct AskreneinformchannelResponse { + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub constraints: Option>, } - impl TryFrom for BkprlistincomeResponse { + impl TryFrom for AskreneinformchannelResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::BkprListIncome(response) => Ok(response), + Response::AskReneInformChannel(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BlacklistruneBlacklist { - pub end: u64, - pub start: u64, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct BlacklistruneResponse { - pub blacklist: Vec, + pub struct AskrenecreatechannelResponse { } - impl TryFrom for BlacklistruneResponse { + impl TryFrom for AskrenecreatechannelResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::BlacklistRune(response) => Ok(response), + Response::AskReneCreateChannel(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct CheckruneResponse { - pub valid: bool, + pub struct AskreneupdatechannelResponse { } - impl TryFrom for CheckruneResponse { + impl TryFrom for AskreneupdatechannelResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::CheckRune(response) => Ok(response), + Response::AskReneUpdateChannel(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct CreateruneResponse { + pub struct AskrenebiaschannelBiases { #[serde(skip_serializing_if = "Option::is_none")] - pub warning_unrestricted_rune: Option, - pub rune: String, - pub unique_id: String, + pub description: Option, + pub bias: i64, + pub layer: String, + pub short_channel_id_dir: ShortChannelIdDir, } - impl TryFrom for CreateruneResponse { + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct AskrenebiaschannelResponse { + pub biases: Vec, + } + + impl TryFrom for AskrenebiaschannelResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::CreateRune(response) => Ok(response), + Response::AskReneBiasChannel(response) => Ok(response), _ => Err(TryFromResponseError) } } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ShowrunesRunesRestrictionsAlternatives { - pub condition: String, - pub english: String, - pub fieldname: String, - pub value: String, + pub struct AskrenelistreservationsReservations { + pub age_in_seconds: u64, + pub amount_msat: Amount, + pub command_id: String, + pub short_channel_id_dir: ShortChannelIdDir, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ShowrunesRunesRestrictions { - pub alternatives: Vec, - pub english: String, + pub struct AskrenelistreservationsResponse { + pub reservations: Vec, + } + + impl TryFrom for AskrenelistreservationsResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::AskReneListReservations(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ShowrunesRunes { - #[serde(skip_serializing_if = "Option::is_none")] - pub blacklisted: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub last_used: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub our_rune: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub stored: Option, - pub restrictions: Vec, - pub restrictions_as_english: String, - pub rune: String, - pub unique_id: String, + pub struct InjectpaymentonionResponse { + pub completed_at: u64, + pub created_at: u64, + pub created_index: u64, + } + + impl TryFrom for InjectpaymentonionResponse { + type Error = super::TryFromResponseError; + + fn try_from(response: Response) -> Result { + match response { + Response::InjectPaymentOnion(response) => Ok(response), + _ => Err(TryFromResponseError) + } + } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ShowrunesResponse { - pub runes: Vec, + pub struct XpayResponse { + pub amount_msat: Amount, + pub amount_sent_msat: Amount, + pub failed_parts: u64, + pub payment_preimage: Secret, + pub successful_parts: u64, } - impl TryFrom for ShowrunesResponse { + impl TryFrom for XpayResponse { type Error = super::TryFromResponseError; fn try_from(response: Response) -> Result { match response { - Response::ShowRunes(response) => Ok(response), + Response::Xpay(response) => Ok(response), _ => Err(TryFromResponseError) } } diff --git a/contrib/msggen/msggen/utils/utils.py b/contrib/msggen/msggen/utils/utils.py index a310cf051bd7..e726489e5476 100644 --- a/contrib/msggen/msggen/utils/utils.py +++ b/contrib/msggen/msggen/utils/utils.py @@ -26,6 +26,8 @@ "DelInvoice", "Dev-Forget-Channel", "EmergencyRecover", + "GetEmergencyRecoverData", + "ExposeSecret", "Recover", "RecoverChannel", "Invoice", @@ -60,6 +62,7 @@ "DelPay", "DelForward", "DisableOffer", + "EnableOffer", "Disconnect", "Feerates", "FetchInvoice", @@ -70,6 +73,7 @@ "GetLog", "FunderUpdate", "GetRoute", + "ListAddresses", "ListForwards", "ListOffers", "ListPays", @@ -98,6 +102,7 @@ "Splice_Init", "Splice_Signed", "Splice_Update", + "Dev-Splice", "UnreserveInputs", "UpgradeWallet", "WaitBlockHeight", @@ -116,10 +121,27 @@ "Bkpr-ListAccountEvents", "Bkpr-ListBalances", "Bkpr-ListIncome", + "Bkpr-EditDescriptionByPaymentId", + "Bkpr-EditDescriptionByOutpoint", "BlacklistRune", "CheckRune", "CreateRune", "ShowRunes", + "AskRene-Unreserve", + "AskRene-ListLayers", + "AskRene-Create-Layer", + "AskRene-Remove-Layer", + "AskRene-Reserve", + "AskRene-Age", + "GetRoutes", + "AskRene-Disable-Node", + "AskRene-Inform-Channel", + "AskRene-Create-Channel", + "AskRene-Update-Channel", + "AskRene-Bias-Channel", + "AskRene-ListReservations", + "InjectPaymentOnion", + "Xpay", ] grpc_notification_names = [ diff --git a/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py b/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py index 2122787a0d37..1e21fe56779c 100644 --- a/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py +++ b/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py @@ -15,7 +15,7 @@ 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\"\xac\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\x12\x14\n\x07subtype\x18\x05 \x01(\tH\x03\x88\x01\x01\"_\n\x12GetinfoBindingType\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\x12\r\n\tWEBSOCKET\x10\x05\x42\n\n\x08_addressB\x07\n\x05_portB\t\n\x07_socketB\n\n\x08_subtype\"\xb5\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\"E\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\x12\t\n\x05TRACE\x10\x04\x42\x05\n\x03_idB\x08\n\x06_level\"7\n\x11ListpeersResponse\x12\"\n\x05peers\x18\x01 \x03(\x0b\x32\x13.cln.ListpeersPeers\"\xdf\x01\n\x0eListpeersPeers\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x11\n\tconnected\x18\x02 \x01(\x08\x12#\n\x03log\x18\x03 \x03(\x0b\x32\x16.cln.ListpeersPeersLog\x12\x0f\n\x07netaddr\x18\x05 \x03(\t\x12\x15\n\x08\x66\x65\x61tures\x18\x06 \x01(\x0cH\x00\x88\x01\x01\x12\x18\n\x0bremote_addr\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cnum_channels\x18\x08 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_featuresB\x0e\n\x0c_remote_addrB\x0f\n\r_num_channels\"\x88\x03\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\"t\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\x12\t\n\x05TRACE\x10\x07\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\"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\"\xb9\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\x18\n\x0b\x62lockheight\x18\x08 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x08reserved\x18\t \x01(\x08\x12\x1e\n\x11reserved_to_block\x18\n \x01(\rH\x03\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_blockheightB\x14\n\x12_reserved_to_block\"\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\x1d\n\x10short_channel_id\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nchannel_id\x18\t \x01(\x0cH\x01\x88\x01\x01\x42\x13\n\x11_short_channel_idB\r\n\x0b_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\x13\n\x06\x62olt11\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0epayment_secret\x18\x06 \x01(\x0cH\x02\x88\x01\x01\x12\x13\n\x06partid\x18\x07 \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x07groupid\x18\t \x01(\x04H\x04\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\x0b \x01(\x0cH\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\t\n\x07_bolt11B\x11\n\x0f_payment_secretB\t\n\x07_partidB\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x10\n\x0e_localinvreqidB\x13\n\x11_payment_metadataB\x0e\n\x0c_description\"\xad\x05\n\x0fSendpayResponse\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x07groupid\x18\x02 \x01(\x04H\x00\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\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x02\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\x03\x88\x01\x01\x12\x13\n\x06partid\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0b \x01(\tH\x05\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0c \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\x07\x88\x01\x01\x12\x14\n\x07message\x18\x0e \x01(\tH\x08\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x0f \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x0b\x88\x01\x01\"*\n\rSendpayStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x42\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\n\n\x08_messageB\x0f\n\r_completed_atB\x10\n\x0e_created_indexB\x10\n\x0e_updated_index\"\\\n\x0cSendpayRoute\x12\n\n\x02id\x18\x02 \x01(\x0c\x12\r\n\x05\x64\x65lay\x18\x03 \x01(\r\x12\x0f\n\x07\x63hannel\x18\x04 \x01(\t\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\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\x12\x11\n\tdirection\x18\x10 \x01(\rB\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\"\xac\x01\n\x14\x41\x64\x64psbtoutputRequest\x12\x1c\n\x07satoshi\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x15\n\x08locktime\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0binitialpsbt\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_locktimeB\x0e\n\x0c_initialpsbtB\x0e\n\x0c_destination\"U\n\x15\x41\x64\x64psbtoutputResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x1e\n\x16\x65stimated_added_weight\x18\x02 \x01(\r\x12\x0e\n\x06outnum\x18\x03 \x01(\r\"O\n\x14\x41utocleanonceRequest\x12*\n\tsubsystem\x18\x01 \x01(\x0e\x32\x17.cln.AutocleanSubsystem\x12\x0b\n\x03\x61ge\x18\x02 \x01(\x04\"G\n\x15\x41utocleanonceResponse\x12.\n\tautoclean\x18\x01 \x01(\x0b\x32\x1b.cln.AutocleanonceAutoclean\"\xb1\x04\n\x16\x41utocleanonceAutoclean\x12L\n\x11succeededforwards\x18\x01 \x01(\x0b\x32,.cln.AutocleanonceAutocleanSucceededforwardsH\x00\x88\x01\x01\x12\x46\n\x0e\x66\x61iledforwards\x18\x02 \x01(\x0b\x32).cln.AutocleanonceAutocleanFailedforwardsH\x01\x88\x01\x01\x12\x44\n\rsucceededpays\x18\x03 \x01(\x0b\x32(.cln.AutocleanonceAutocleanSucceededpaysH\x02\x88\x01\x01\x12>\n\nfailedpays\x18\x04 \x01(\x0b\x32%.cln.AutocleanonceAutocleanFailedpaysH\x03\x88\x01\x01\x12\x42\n\x0cpaidinvoices\x18\x05 \x01(\x0b\x32\'.cln.AutocleanonceAutocleanPaidinvoicesH\x04\x88\x01\x01\x12H\n\x0f\x65xpiredinvoices\x18\x06 \x01(\x0b\x32*.cln.AutocleanonceAutocleanExpiredinvoicesH\x05\x88\x01\x01\x42\x14\n\x12_succeededforwardsB\x11\n\x0f_failedforwardsB\x10\n\x0e_succeededpaysB\r\n\x0b_failedpaysB\x0f\n\r_paidinvoicesB\x12\n\x10_expiredinvoices\"M\n\'AutocleanonceAutocleanSucceededforwards\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"J\n$AutocleanonceAutocleanFailedforwards\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"I\n#AutocleanonceAutocleanSucceededpays\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"F\n AutocleanonceAutocleanFailedpays\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"H\n\"AutocleanonceAutocleanPaidinvoices\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"K\n%AutocleanonceAutocleanExpiredinvoices\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"W\n\x16\x41utocleanstatusRequest\x12/\n\tsubsystem\x18\x01 \x01(\x0e\x32\x17.cln.AutocleanSubsystemH\x00\x88\x01\x01\x42\x0c\n\n_subsystem\"K\n\x17\x41utocleanstatusResponse\x12\x30\n\tautoclean\x18\x01 \x01(\x0b\x32\x1d.cln.AutocleanstatusAutoclean\"\xbf\x04\n\x18\x41utocleanstatusAutoclean\x12N\n\x11succeededforwards\x18\x01 \x01(\x0b\x32..cln.AutocleanstatusAutocleanSucceededforwardsH\x00\x88\x01\x01\x12H\n\x0e\x66\x61iledforwards\x18\x02 \x01(\x0b\x32+.cln.AutocleanstatusAutocleanFailedforwardsH\x01\x88\x01\x01\x12\x46\n\rsucceededpays\x18\x03 \x01(\x0b\x32*.cln.AutocleanstatusAutocleanSucceededpaysH\x02\x88\x01\x01\x12@\n\nfailedpays\x18\x04 \x01(\x0b\x32\'.cln.AutocleanstatusAutocleanFailedpaysH\x03\x88\x01\x01\x12\x44\n\x0cpaidinvoices\x18\x05 \x01(\x0b\x32).cln.AutocleanstatusAutocleanPaidinvoicesH\x04\x88\x01\x01\x12J\n\x0f\x65xpiredinvoices\x18\x06 \x01(\x0b\x32,.cln.AutocleanstatusAutocleanExpiredinvoicesH\x05\x88\x01\x01\x42\x14\n\x12_succeededforwardsB\x11\n\x0f_failedforwardsB\x10\n\x0e_succeededpaysB\r\n\x0b_failedpaysB\x0f\n\r_paidinvoicesB\x12\n\x10_expiredinvoices\"g\n)AutocleanstatusAutocleanSucceededforwards\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"d\n&AutocleanstatusAutocleanFailedforwards\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"c\n%AutocleanstatusAutocleanSucceededpays\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"`\n\"AutocleanstatusAutocleanFailedpays\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"b\n$AutocleanstatusAutocleanPaidinvoices\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"e\n\'AutocleanstatusAutocleanExpiredinvoices\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"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\"\xc7\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\x12\x0b\n\x03txs\x18\x04 \x03(\x0c\x12\r\n\x05txids\x18\x05 \x03(\x0c\"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\x16\n\tpay_index\x18\t \x01(\x04H\x03\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0b \x01(\x04H\x05\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\x06\x88\x01\x01\x12\x1b\n\x0elocal_offer_id\x18\r \x01(\x0cH\x07\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0f \x01(\tH\x08\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\t\x88\x01\x01\x12;\n\rpaid_outpoint\x18\x11 \x01(\x0b\x32\x1f.cln.CreateinvoicePaid_outpointH\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\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x13\n\x11_payment_preimageB\x11\n\x0f_local_offer_idB\x14\n\x12_invreq_payer_noteB\x10\n\x0e_created_indexB\x10\n\x0e_paid_outpoint\":\n\x1a\x43reateinvoicePaid_outpoint\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\"\xb4\x02\n\x10\x44\x61tastoreRequest\x12\x10\n\x03hex\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x36\n\x04mode\x18\x03 \x01(\x0e\x32#.cln.DatastoreRequest.DatastoreModeH\x01\x88\x01\x01\x12\x17\n\ngeneration\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x0b\n\x03key\x18\x05 \x03(\t\x12\x13\n\x06string\x18\x06 \x01(\tH\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\x06\n\x04_hexB\x07\n\x05_modeB\r\n\x0b_generationB\t\n\x07_string\"\x82\x01\n\x11\x44\x61tastoreResponse\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\x12\x0b\n\x03key\x18\x05 \x03(\tB\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"$\n\x15\x44\x61tastoreusageRequest\x12\x0b\n\x03key\x18\x01 \x03(\t\"S\n\x16\x44\x61tastoreusageResponse\x12\x39\n\x0e\x64\x61tastoreusage\x18\x01 \x01(\x0b\x32!.cln.DatastoreusageDatastoreusage\"@\n\x1c\x44\x61tastoreusageDatastoreusage\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x13\n\x0btotal_bytes\x18\x02 \x01(\x04\"\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\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x0b\n\x03key\x18\x03 \x03(\tB\r\n\x0b_generation\"\x85\x01\n\x14\x44\x65ldatastoreResponse\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\x12\x0b\n\x03key\x18\x05 \x03(\tB\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"\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\"\xe6\x05\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\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\x04\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0b \x01(\tH\x05\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x0c \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rupdated_index\x18\r \x01(\x04H\x07\x88\x01\x01\x12\x16\n\tpay_index\x18\x0e \x01(\x04H\x08\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\x0f \x01(\x0b\x32\x0b.cln.AmountH\t\x88\x01\x01\x12\x14\n\x07paid_at\x18\x10 \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x11 \x01(\x0cH\x0b\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\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\x13\n\x11_payment_preimage\"\x9f\x01\n\x17\x44\x65vforgetchannelRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x1d\n\x10short_channel_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nchannel_id\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05\x66orce\x18\x04 \x01(\x08H\x02\x88\x01\x01\x42\x13\n\x11_short_channel_idB\r\n\x0b_channel_idB\x08\n\x06_force\"Y\n\x18\x44\x65vforgetchannelResponse\x12\x0e\n\x06\x66orced\x18\x01 \x01(\x08\x12\x17\n\x0f\x66unding_unspent\x18\x02 \x01(\x08\x12\x14\n\x0c\x66unding_txid\x18\x03 \x01(\x0c\"\x19\n\x17\x45mergencyrecoverRequest\")\n\x18\x45mergencyrecoverResponse\x12\r\n\x05stubs\x18\x01 \x03(\x0c\"#\n\x0eRecoverRequest\x12\x11\n\thsmsecret\x18\x01 \x01(\t\"\x88\x01\n\x0fRecoverResponse\x12\x37\n\x06result\x18\x01 \x01(\x0e\x32\".cln.RecoverResponse.RecoverResultH\x00\x88\x01\x01\"1\n\rRecoverResult\x12 \n\x1cRECOVERY_RESTART_IN_PROGRESS\x10\x00\x42\t\n\x07_result\"$\n\x15RecoverchannelRequest\x12\x0b\n\x03scb\x18\x01 \x03(\x0c\"\'\n\x16RecoverchannelResponse\x12\r\n\x05stubs\x18\x01 \x03(\t\"\x99\x02\n\x0eInvoiceRequest\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\x12\x11\n\tfallbacks\x18\x04 \x03(\t\x12\x15\n\x08preimage\x18\x05 \x01(\x0cH\x00\x88\x01\x01\x12\x11\n\x04\x63ltv\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06\x65xpiry\x18\x07 \x01(\x04H\x02\x88\x01\x01\x12\x1d\n\x15\x65xposeprivatechannels\x18\x08 \x03(\t\x12\x19\n\x0c\x64\x65schashonly\x18\t \x01(\x08H\x03\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x10.cln.AmountOrAnyB\x0b\n\t_preimageB\x07\n\x05_cltvB\t\n\x07_expiryB\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\x1d\n\x10warning_capacity\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0fwarning_offline\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10warning_deadends\x18\x07 \x01(\tH\x02\x88\x01\x01\x12#\n\x16warning_private_unused\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x18\n\x0bwarning_mpp\x18\t \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rcreated_index\x18\n \x01(\x04H\x05\x88\x01\x01\x42\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_mppB\x10\n\x0e_created_index\"\xe1\x01\n\x15InvoicerequestRequest\x12\x1b\n\x06\x61mount\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\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\x1c\n\x0f\x61\x62solute_expiry\x18\x05 \x01(\x04H\x02\x88\x01\x01\x12\x17\n\nsingle_use\x18\x06 \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_issuerB\x08\n\x06_labelB\x12\n\x10_absolute_expiryB\r\n\x0b_single_use\"\x8b\x01\n\x16InvoicerequestResponse\x12\x11\n\tinvreq_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\"1\n\x1c\x44isableinvoicerequestRequest\x12\x11\n\tinvreq_id\x18\x01 \x01(\t\"\x92\x01\n\x1d\x44isableinvoicerequestResponse\x12\x11\n\tinvreq_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\"l\n\x1aListinvoicerequestsRequest\x12\x16\n\tinvreq_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61\x63tive_only\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0c\n\n_invreq_idB\x0e\n\x0c_active_only\"_\n\x1bListinvoicerequestsResponse\x12@\n\x0finvoicerequests\x18\x01 \x03(\x0b\x32\'.cln.ListinvoicerequestsInvoicerequests\"\x97\x01\n\"ListinvoicerequestsInvoicerequests\x12\x11\n\tinvreq_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\"#\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\x16\n\tpay_index\x18\x0b \x01(\x04H\x05\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x14\n\x07paid_at\x18\r \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0e \x01(\x0cH\x08\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0f \x01(\tH\t\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x0b\x88\x01\x01\x12\x42\n\rpaid_outpoint\x18\x12 \x01(\x0b\x32&.cln.ListinvoicesInvoicesPaid_outpointH\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\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x13\n\x11_payment_preimageB\x14\n\x12_invreq_payer_noteB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x10\n\x0e_paid_outpoint\"A\n!ListinvoicesInvoicesPaid_outpoint\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\"\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\x18\n\x0b\x64\x65stination\x18\t \x01(\x0cH\x03\x88\x01\x01\x12\x14\n\x07groupid\x18\x0b \x01(\x04H\x04\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\r \x01(\x0cH\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_destinationB\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x10\n\x0e_localinvreqidB\x0e\n\x0c_description\"\xe7\x04\n\x11SendonionResponse\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\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x05 \x01(\x0cH\x01\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\x02\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\t \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\n \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0b \x01(\x0cH\x05\x88\x01\x01\x12\x14\n\x07message\x18\x0c \x01(\tH\x06\x88\x01\x01\x12\x13\n\x06partid\x18\r \x01(\x04H\x07\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x0e \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0f \x01(\x04H\t\x88\x01\x01\",\n\x0fSendonionStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x42\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\n\n\x08_messageB\t\n\x07_partidB\x10\n\x0e_created_indexB\x10\n\x0e_updated_index\"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\n\n\x02id\x18\x01 \x01(\x04\x12\x0f\n\x07groupid\x18\x02 \x01(\x04\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\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\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x01\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\x02\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\n \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0b \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\x05\x88\x01\x01\x12\x17\n\nerroronion\x18\r \x01(\x0cH\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0e \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06partid\x18\x0f \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\n\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x12 \x01(\x04H\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\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\r\n\x0b_erroronionB\x0e\n\x0c_descriptionB\t\n\x07_partidB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x0f\n\r_completed_at\"\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\x14\n\x0cscriptPubKey\x18\x03 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\"M\n\x11MakesecretRequest\x12\x10\n\x03hex\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06string\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_hexB\t\n\x07_string\"$\n\x12MakesecretResponse\x12\x0e\n\x06secret\x18\x01 \x01(\x0c\"\x93\x04\n\nPayRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\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\x17\n\nriskfactor\x18\x08 \x01(\x01H\x05\x88\x01\x01\x12\x0f\n\x07\x65xclude\x18\n \x03(\t\x12 \n\x06maxfee\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0c \x01(\tH\x07\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\r \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\x0e \x01(\x0cH\t\x88\x01\x01\x12&\n\x0cpartial_msat\x18\x0f \x01(\x0b\x32\x0b.cln.AmountH\n\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_riskfactorB\t\n\x07_maxfeeB\x0e\n\x0c_descriptionB\x0e\n\x0c_amount_msatB\x10\n\x0e_localinvreqidB\x0f\n\r_partial_msat\"\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\"\xba\x02\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.ListnodesNodesAddresses\x12\x42\n\x10option_will_fund\x18\x07 \x01(\x0b\x32#.cln.ListnodesNodesOption_will_fundH\x04\x88\x01\x01\x42\x11\n\x0f_last_timestampB\x08\n\x06_aliasB\x08\n\x06_colorB\x0b\n\t_featuresB\x13\n\x11_option_will_fund\"\xf4\x01\n\x1eListnodesNodesOption_will_fund\x12(\n\x13lease_fee_base_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x17\n\x0flease_fee_basis\x18\x02 \x01(\r\x12\x16\n\x0e\x66unding_weight\x18\x03 \x01(\r\x12.\n\x19\x63hannel_fee_max_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x30\n(channel_fee_max_proportional_thousandths\x18\x05 \x01(\r\x12\x15\n\rcompact_lease\x18\x06 \x01(\x0c\"\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\"\xd4\x05\n\x16WaitanyinvoiceResponse\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@\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\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\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\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\x07\x88\x01\x01\x12\x1a\n\rcreated_index\x18\r \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\t\x88\x01\x01\x12<\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32 .cln.WaitanyinvoicePaid_outpointH\n\x88\x01\x01\"-\n\x14WaitanyinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x13\n\x11_payment_preimageB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x10\n\x0e_paid_outpoint\";\n\x1bWaitanyinvoicePaid_outpoint\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\"#\n\x12WaitinvoiceRequest\x12\r\n\x05label\x18\x01 \x01(\t\"\xc5\x05\n\x13WaitinvoiceResponse\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:\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\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\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\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\x07\x88\x01\x01\x12\x1a\n\rcreated_index\x18\r \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\t\x88\x01\x01\x12\x39\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32\x1d.cln.WaitinvoicePaid_outpointH\n\x88\x01\x01\"*\n\x11WaitinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x13\n\x11_payment_preimageB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x10\n\x0e_paid_outpoint\"8\n\x18WaitinvoicePaid_outpoint\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\"\x8e\x01\n\x12WaitsendpayRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x13\n\x06partid\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x14\n\x07groupid\x18\x04 \x01(\x04H\x02\x88\x01\x01\x42\t\n\x07_partidB\n\n\x08_timeoutB\n\n\x08_groupid\"\x8e\x05\n\x13WaitsendpayResponse\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x07groupid\x18\x02 \x01(\x04H\x00\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\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x02\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\x03\x88\x01\x01\x12\x13\n\x06partid\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0b \x01(\tH\x05\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0c \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\x07\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x0e \x01(\x01H\x08\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x0f \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x10 \x01(\x04H\n\x88\x01\x01\"!\n\x11WaitsendpayStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x42\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\x0f\n\r_completed_atB\x10\n\x0e_created_indexB\x10\n\x0e_updated_index\"\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\x07\n\x03\x41LL\x10\x02\x12\x08\n\x04P2TR\x10\x03\x42\x0e\n\x0c_addresstype\"M\n\x0fNewaddrResponse\x12\x13\n\x06\x62\x65\x63h32\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04p2tr\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_bech32B\x07\n\x05_p2tr\"\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\x14\n\x07minconf\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.Outpoint\x12\"\n\x07\x66\x65\x65rate\x18\x05 \x01(\x0b\x32\x0c.cln.FeerateH\x01\x88\x01\x01\x42\n\n\x08_minconfB\n\n\x08_feerate\":\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\"\xaf\x03\n\x0eKeysendRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\x0c\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\x12 \n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x0b.cln.Amount\x12 \n\x06maxfee\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\x07\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_extratlvsB\t\n\x07_maxfee\"\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\x15\n\x08locktime\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12min_witness_weight\x18\x07 \x01(\rH\x02\x88\x01\x01\x12\x17\n\nreservedok\x18\x08 \x01(\x08H\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\x0b\n\t_locktimeB\x15\n\x13_min_witness_weightB\r\n\x0b_reservedokB\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\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.Outpoint\x12 \n\x07outputs\x18\x05 \x03(\x0b\x32\x0f.cln.OutputDescB\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\"\xd7\x1b\n\x18ListpeerchannelsChannels\x12\x0f\n\x07peer_id\x18\x01 \x01(\x0c\x12\x16\n\x0epeer_connected\x18\x02 \x01(\x08\x12J\n\x05state\x18\x03 \x01(\x0e\x32;.cln.ListpeerchannelsChannels.ListpeerchannelsChannelsState\x12\x19\n\x0cscratch_txid\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x12:\n\x07\x66\x65\x65rate\x18\x06 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFeerateH\x01\x88\x01\x01\x12\x12\n\x05owner\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x10short_channel_id\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x17\n\nchannel_id\x18\t \x01(\x0cH\x04\x88\x01\x01\x12\x19\n\x0c\x66unding_txid\x18\n \x01(\x0cH\x05\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x0b \x01(\rH\x06\x88\x01\x01\x12\x1c\n\x0finitial_feerate\x18\x0c \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0clast_feerate\x18\r \x01(\tH\x08\x88\x01\x01\x12\x19\n\x0cnext_feerate\x18\x0e \x01(\tH\t\x88\x01\x01\x12\x1a\n\rnext_fee_step\x18\x0f \x01(\rH\n\x88\x01\x01\x12\x37\n\x08inflight\x18\x10 \x03(\x0b\x32%.cln.ListpeerchannelsChannelsInflight\x12\x15\n\x08\x63lose_to\x18\x11 \x01(\x0cH\x0b\x88\x01\x01\x12\x14\n\x07private\x18\x12 \x01(\x08H\x0c\x88\x01\x01\x12 \n\x06opener\x18\x13 \x01(\x0e\x32\x10.cln.ChannelSide\x12%\n\x06\x63loser\x18\x14 \x01(\x0e\x32\x10.cln.ChannelSideH\r\x88\x01\x01\x12:\n\x07\x66unding\x18\x16 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFundingH\x0e\x88\x01\x01\x12$\n\nto_us_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x0f\x88\x01\x01\x12(\n\x0emin_to_us_msat\x18\x18 \x01(\x0b\x32\x0b.cln.AmountH\x10\x88\x01\x01\x12(\n\x0emax_to_us_msat\x18\x19 \x01(\x0b\x32\x0b.cln.AmountH\x11\x88\x01\x01\x12$\n\ntotal_msat\x18\x1a \x01(\x0b\x32\x0b.cln.AmountH\x12\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x1b \x01(\x0b\x32\x0b.cln.AmountH\x13\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x1c \x01(\rH\x14\x88\x01\x01\x12)\n\x0f\x64ust_limit_msat\x18\x1d \x01(\x0b\x32\x0b.cln.AmountH\x15\x88\x01\x01\x12\x30\n\x16max_total_htlc_in_msat\x18\x1e \x01(\x0b\x32\x0b.cln.AmountH\x16\x88\x01\x01\x12,\n\x12their_reserve_msat\x18\x1f \x01(\x0b\x32\x0b.cln.AmountH\x17\x88\x01\x01\x12*\n\x10our_reserve_msat\x18 \x01(\x0b\x32\x0b.cln.AmountH\x18\x88\x01\x01\x12(\n\x0espendable_msat\x18! \x01(\x0b\x32\x0b.cln.AmountH\x19\x88\x01\x01\x12)\n\x0freceivable_msat\x18\" \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$ \x01(\x0b\x32\x0b.cln.AmountH\x1c\x88\x01\x01\x12/\n\x15maximum_htlc_out_msat\x18% \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\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.AmountH)\x88\x01\x01\x12\x31\n\x05htlcs\x18\x34 \x03(\x0b\x32\".cln.ListpeerchannelsChannelsHtlcs\x12\x1a\n\rclose_to_addr\x18\x35 \x01(\tH*\x88\x01\x01\x12\x1e\n\x11ignore_fee_limits\x18\x36 \x01(\x08H+\x88\x01\x01\x12:\n\x07updates\x18\x37 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsUpdatesH,\x88\x01\x01\x12#\n\x16last_stable_connection\x18\x38 \x01(\x04H-\x88\x01\x01\x12\x17\n\nlost_state\x18\x39 \x01(\x08H.\x88\x01\x01\x12\x1a\n\rreestablished\x18: \x01(\x08H/\x88\x01\x01\x12*\n\x10last_tx_fee_msat\x18; \x01(\x0b\x32\x0b.cln.AmountH0\x88\x01\x01\x12\x16\n\tdirection\x18< \x01(\rH1\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\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_addrB\x14\n\x12_ignore_fee_limitsB\n\n\x08_updatesB\x19\n\x17_last_stable_connectionB\r\n\x0b_lost_stateB\x10\n\x0e_reestablishedB\x13\n\x11_last_tx_fee_msatB\x0c\n\n_direction\"\xa7\x01\n\x1fListpeerchannelsChannelsUpdates\x12\x38\n\x05local\x18\x01 \x01(\x0b\x32).cln.ListpeerchannelsChannelsUpdatesLocal\x12?\n\x06remote\x18\x02 \x01(\x0b\x32*.cln.ListpeerchannelsChannelsUpdatesRemoteH\x00\x88\x01\x01\x42\t\n\x07_remote\"\xda\x01\n$ListpeerchannelsChannelsUpdatesLocal\x12&\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12&\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\x19\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\r\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\"\xdb\x01\n%ListpeerchannelsChannelsUpdatesRemote\x12&\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12&\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\x19\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\r\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\"?\n\x1fListpeerchannelsChannelsFeerate\x12\r\n\x05perkw\x18\x01 \x01(\r\x12\r\n\x05perkb\x18\x02 \x01(\r\"\x8b\x02\n ListpeerchannelsChannelsInflight\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\x19\n\x0cscratch_txid\x18\x06 \x01(\x0cH\x00\x88\x01\x01\x12\x1a\n\rsplice_amount\x18\x07 \x01(\x12H\x01\x88\x01\x01\x42\x0f\n\r_scratch_txidB\x10\n\x0e_splice_amount\"\x9d\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.Amount\x12&\n\x11remote_funds_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\'\n\rfee_paid_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\'\n\rfee_rcvd_msat\x18\x05 \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\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\"\xf9\x02\n\x1dListpeerchannelsChannelsHtlcs\x12\\\n\tdirection\x18\x01 \x01(\x0e\x32I.cln.ListpeerchannelsChannelsHtlcs.ListpeerchannelsChannelsHtlcsDirection\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\"9\n&ListpeerchannelsChannelsHtlcsDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\x42\x10\n\x0e_local_trimmedB\t\n\x07_status\"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\"\xc7\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.DecodepayExtra\x12-\n\x06routes\x18\x11 \x01(\x0b\x32\x18.cln.DecodeRoutehintListH\x06\x88\x01\x01\x42\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_metadataB\t\n\x07_routes\"\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\"\xec%\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\x12\x16\n\tsignature\x18M \x01(\tH>\x88\x01\x01\x12\x15\n\x08\x63urrency\x18N \x01(\tH?\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18O \x01(\x0b\x32\x0b.cln.AmountH@\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18P \x01(\tHA\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18Q \x01(\x0cHB\x88\x01\x01\x12-\n\x06routes\x18R \x01(\x0b\x32\x18.cln.DecodeRoutehintListHC\x88\x01\x01\x12\x1c\n\x0foffer_issuer_id\x18S \x01(\x0cHD\x88\x01\x01\x12,\n\x1fwarning_missing_offer_issuer_id\x18T \x01(\tHE\x88\x01\x01\x12-\n\x0cinvreq_paths\x18U \x03(\x0b\x32\x17.cln.DecodeInvreq_paths\x12\'\n\x1awarning_empty_blinded_path\x18V \x01(\tHF\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_decryptedB\x0c\n\n_signatureB\x0b\n\t_currencyB\x0e\n\x0c_amount_msatB\x0e\n\x0c_descriptionB\x0b\n\t_featuresB\t\n\x07_routesB\x12\n\x10_offer_issuer_idB\"\n _warning_missing_offer_issuer_idB\x1d\n\x1b_warning_empty_blinded_path\"\xed\x01\n\x11\x44\x65\x63odeOffer_paths\x12\x1a\n\rfirst_node_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x15\n\x08\x62linding\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x1b\n\x0e\x66irst_scid_dir\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x17\n\nfirst_scid\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0e\x66irst_path_key\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x42\x10\n\x0e_first_node_idB\x0b\n\t_blindingB\x11\n\x0f_first_scid_dirB\r\n\x0b_first_scidB\x11\n\x0f_first_path_key\"\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\"\x99\x02\n\x12\x44\x65\x63odeInvreq_paths\x12\x1b\n\x0e\x66irst_scid_dir\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x15\n\x08\x62linding\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x1a\n\rfirst_node_id\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x12\x17\n\nfirst_scid\x18\x04 \x01(\tH\x03\x88\x01\x01\x12)\n\x04path\x18\x05 \x03(\x0b\x32\x1b.cln.DecodeInvreq_pathsPath\x12\x1b\n\x0e\x66irst_path_key\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x42\x11\n\x0f_first_scid_dirB\x0b\n\t_blindingB\x10\n\x0e_first_node_idB\r\n\x0b_first_scidB\x11\n\x0f_first_path_key\"S\n\x16\x44\x65\x63odeInvreq_pathsPath\x12\x17\n\x0f\x62linded_node_id\x18\x01 \x01(\x0c\x12 \n\x18\x65ncrypted_recipient_data\x18\x02 \x01(\x0c\"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\"\xaa\x02\n\x0f\x44\x65\x63odeFallbacks\x12\x36\n)warning_invoice_fallbacks_version_invalid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12;\n\titem_type\x18\x02 \x01(\x0e\x32(.cln.DecodeFallbacks.DecodeFallbacksType\x12\x11\n\x04\x61\x64\x64r\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x0b\n\x03hex\x18\x04 \x01(\x0c\"K\n\x13\x44\x65\x63odeFallbacksType\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,\n*_warning_invoice_fallbacks_version_invalidB\x07\n\x05_addr\"(\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\"\xc2\x01\n\rDelpayRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12/\n\x06status\x18\x02 \x01(\x0e\x32\x1f.cln.DelpayRequest.DelpayStatus\x12\x13\n\x06partid\x18\x03 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07groupid\x18\x04 \x01(\x04H\x01\x88\x01\x01\"(\n\x0c\x44\x65lpayStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x42\t\n\x07_partidB\n\n\x08_groupid\"7\n\x0e\x44\x65lpayResponse\x12%\n\x08payments\x18\x01 \x03(\x0b\x32\x13.cln.DelpayPayments\"\xcb\x05\n\x0e\x44\x65lpayPayments\x12\x1a\n\rcreated_index\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\n\n\x02id\x18\x02 \x01(\x04\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x38\n\x06status\x18\x04 \x01(\x0e\x32(.cln.DelpayPayments.DelpayPaymentsStatus\x12%\n\x10\x61mount_sent_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x13\n\x06partid\x18\x06 \x01(\x04H\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x07 \x01(\x0cH\x02\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x12\n\ncreated_at\x18\t \x01(\x04\x12\x1a\n\rupdated_index\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x0b \x01(\x04H\x05\x88\x01\x01\x12\x14\n\x07groupid\x18\x0c \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\x07\x88\x01\x01\x12\x12\n\x05label\x18\x0e \x01(\tH\x08\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0f \x01(\tH\t\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x10 \x01(\tH\n\x88\x01\x01\x12\x17\n\nerroronion\x18\x11 \x01(\x0cH\x0b\x88\x01\x01\"=\n\x14\x44\x65lpayPaymentsStatus\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\x0e\n\x0c_destinationB\x0e\n\x0c_amount_msatB\x10\n\x0e_updated_indexB\x0f\n\r_completed_atB\n\n\x08_groupidB\x13\n\x11_payment_preimageB\x08\n\x06_labelB\t\n\x07_bolt11B\t\n\x07_bolt12B\r\n\x0b_erroronion\"\xb3\x01\n\x11\x44\x65lforwardRequest\x12\x12\n\nin_channel\x18\x01 \x01(\t\x12\x12\n\nin_htlc_id\x18\x02 \x01(\x04\x12\x37\n\x06status\x18\x03 \x01(\x0e\x32\'.cln.DelforwardRequest.DelforwardStatus\"=\n\x10\x44\x65lforwardStatus\x12\x0b\n\x07SETTLED\x10\x00\x12\x10\n\x0cLOCAL_FAILED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"\x14\n\x12\x44\x65lforwardResponse\"\'\n\x13\x44isableofferRequest\x12\x10\n\x08offer_id\x18\x01 \x01(\x0c\"\x88\x01\n\x14\x44isableofferResponse\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\"=\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\x14\n\x07opening\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmutual_close\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10unilateral_close\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x1a\n\rdelayed_to_us\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1c\n\x0fhtlc_resolution\x18\x07 \x01(\rH\x04\x88\x01\x01\x12\x14\n\x07penalty\x18\x08 \x01(\rH\x05\x88\x01\x01\x12.\n\testimates\x18\t \x03(\x0b\x32\x1b.cln.FeeratesPerkbEstimates\x12\x12\n\x05\x66loor\x18\n \x01(\rH\x06\x88\x01\x01\x12$\n\x17unilateral_anchor_close\x18\x0b \x01(\rH\x07\x88\x01\x01\x42\n\n\x08_openingB\x0f\n\r_mutual_closeB\x13\n\x11_unilateral_closeB\x10\n\x0e_delayed_to_usB\x12\n\x10_htlc_resolutionB\n\n\x08_penaltyB\x08\n\x06_floorB\x1a\n\x18_unilateral_anchor_close\"W\n\x16\x46\x65\x65ratesPerkbEstimates\x12\x12\n\nblockcount\x18\x01 \x01(\r\x12\x0f\n\x07\x66\x65\x65rate\x18\x02 \x01(\r\x12\x18\n\x10smoothed_feerate\x18\x03 \x01(\r\"\xd3\x03\n\rFeeratesPerkw\x12\x16\n\x0emin_acceptable\x18\x01 \x01(\r\x12\x16\n\x0emax_acceptable\x18\x02 \x01(\r\x12\x14\n\x07opening\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmutual_close\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10unilateral_close\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x1a\n\rdelayed_to_us\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1c\n\x0fhtlc_resolution\x18\x07 \x01(\rH\x04\x88\x01\x01\x12\x14\n\x07penalty\x18\x08 \x01(\rH\x05\x88\x01\x01\x12.\n\testimates\x18\t \x03(\x0b\x32\x1b.cln.FeeratesPerkwEstimates\x12\x12\n\x05\x66loor\x18\n \x01(\rH\x06\x88\x01\x01\x12$\n\x17unilateral_anchor_close\x18\x0b \x01(\rH\x07\x88\x01\x01\x42\n\n\x08_openingB\x0f\n\r_mutual_closeB\x13\n\x11_unilateral_closeB\x10\n\x0e_delayed_to_usB\x12\n\x10_htlc_resolutionB\n\n\x08_penaltyB\x08\n\x06_floorB\x1a\n\x18_unilateral_anchor_close\"W\n\x16\x46\x65\x65ratesPerkwEstimates\x12\x12\n\nblockcount\x18\x01 \x01(\r\x12\x0f\n\x07\x66\x65\x65rate\x18\x02 \x01(\r\x12\x18\n\x10smoothed_feerate\x18\x03 \x01(\r\"\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\x1d\n\x15htlc_timeout_satoshis\x18\x04 \x01(\x04\x12\x1d\n\x15htlc_success_satoshis\x18\x05 \x01(\x04\x12\x30\n#unilateral_close_nonanchor_satoshis\x18\x06 \x01(\x04H\x00\x88\x01\x01\x42&\n$_unilateral_close_nonanchor_satoshis\"\x99\x03\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\x12\x1b\n\x0epayer_metadata\x18\t \x01(\tH\x07\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_noteB\x11\n\x0f_payer_metadata\"\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\"\'\n\x19\x46undchannel_cancelRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\"/\n\x1a\x46undchannel_cancelResponse\x12\x11\n\tcancelled\x18\x01 \x01(\t\"7\n\x1b\x46undchannel_completeRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x0c\n\x04psbt\x18\x02 \x01(\t\"O\n\x1c\x46undchannel_completeResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x1b\n\x13\x63ommitments_secured\x18\x02 \x01(\x08\"\xfb\x03\n\x12\x46undchannelRequest\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#\n\tpush_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x0brequest_amt\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x08 \x01(\tH\x05\x88\x01\x01\x12\n\n\x02id\x18\t \x01(\x0c\x12\x14\n\x07minconf\x18\n \x01(\rH\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\x0c\n\n_push_msatB\x0b\n\t_close_toB\x0e\n\x0c_request_amtB\x10\n\x0e_compact_leaseB\n\n\x08_minconfB\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\x15\n\x08\x63lose_to\x18\x05 \x01(\x0cH\x00\x88\x01\x01\x12\x15\n\x08mindepth\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x37\n\x0c\x63hannel_type\x18\x07 \x01(\x0b\x32\x1c.cln.FundchannelChannel_typeH\x02\x88\x01\x01\x42\x0b\n\t_close_toB\x0b\n\t_mindepthB\x0f\n\r_channel_type\"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\"\xd7\x02\n\x18\x46undchannel_startRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x1b\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\"\n\x07\x66\x65\x65rate\x18\x03 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x15\n\x08\x61nnounce\x18\x04 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\tpush_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x15\n\x08mindepth\x18\x07 \x01(\rH\x04\x88\x01\x01\x12!\n\x07reserve\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x14\n\x0c\x63hannel_type\x18\t \x03(\rB\n\n\x08_feerateB\x0b\n\t_announceB\x0b\n\t_close_toB\x0c\n\n_push_msatB\x0b\n\t_mindepthB\n\n\x08_reserve\"\xf9\x01\n\x19\x46undchannel_startResponse\x12\x17\n\x0f\x66unding_address\x18\x01 \x01(\t\x12\x14\n\x0cscriptpubkey\x18\x02 \x01(\x0c\x12=\n\x0c\x63hannel_type\x18\x03 \x01(\x0b\x32\".cln.Fundchannel_startChannel_typeH\x00\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x04 \x01(\x0cH\x01\x88\x01\x01\x12\x15\n\rwarning_usage\x18\x05 \x01(\t\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\"R\n\x1d\x46undchannel_startChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"\x9d\x01\n\rGetlogRequest\x12\x32\n\x05level\x18\x01 \x01(\x0e\x32\x1e.cln.GetlogRequest.GetlogLevelH\x00\x88\x01\x01\"N\n\x0bGetlogLevel\x12\n\n\x06\x42ROKEN\x10\x00\x12\x0b\n\x07UNUSUAL\x10\x01\x12\x08\n\x04INFO\x10\x02\x12\t\n\x05\x44\x45\x42UG\x10\x03\x12\x06\n\x02IO\x10\x04\x12\t\n\x05TRACE\x10\x05\x42\x08\n\x06_level\"h\n\x0eGetlogResponse\x12\x12\n\ncreated_at\x18\x01 \x01(\t\x12\x12\n\nbytes_used\x18\x02 \x01(\r\x12\x11\n\tbytes_max\x18\x03 \x01(\r\x12\x1b\n\x03log\x18\x04 \x03(\x0b\x32\x0e.cln.GetlogLog\"\xe8\x02\n\tGetlogLog\x12/\n\titem_type\x18\x01 \x01(\x0e\x32\x1c.cln.GetlogLog.GetlogLogType\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\"l\n\rGetlogLogType\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\x12\t\n\x05TRACE\x10\x07\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\"\xd9\x08\n\x13\x46underupdateRequest\x12@\n\x06policy\x18\x01 \x01(\x0e\x32+.cln.FunderupdateRequest.FunderupdatePolicyH\x00\x88\x01\x01\x12$\n\npolicy_mod\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x18\n\x0bleases_only\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x30\n\x16min_their_funding_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x30\n\x16max_their_funding_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12.\n\x14per_channel_min_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12.\n\x14per_channel_max_msat\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12+\n\x11reserve_tank_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x07\x88\x01\x01\x12\x19\n\x0c\x66uzz_percent\x18\t \x01(\rH\x08\x88\x01\x01\x12\x1d\n\x10\x66und_probability\x18\n \x01(\rH\t\x88\x01\x01\x12-\n\x13lease_fee_base_msat\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\n\x88\x01\x01\x12\x1c\n\x0flease_fee_basis\x18\x0c \x01(\rH\x0b\x88\x01\x01\x12\x1b\n\x0e\x66unding_weight\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x33\n\x19\x63hannel_fee_max_base_msat\x18\x0e \x01(\x0b\x32\x0b.cln.AmountH\r\x88\x01\x01\x12\x35\n(channel_fee_max_proportional_thousandths\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x10 \x01(\x0cH\x0f\x88\x01\x01\"9\n\x12\x46underupdatePolicy\x12\t\n\x05MATCH\x10\x00\x12\r\n\tAVAILABLE\x10\x01\x12\t\n\x05\x46IXED\x10\x02\x42\t\n\x07_policyB\r\n\x0b_policy_modB\x0e\n\x0c_leases_onlyB\x19\n\x17_min_their_funding_msatB\x19\n\x17_max_their_funding_msatB\x17\n\x15_per_channel_min_msatB\x17\n\x15_per_channel_max_msatB\x14\n\x12_reserve_tank_msatB\x0f\n\r_fuzz_percentB\x13\n\x11_fund_probabilityB\x16\n\x14_lease_fee_base_msatB\x12\n\x10_lease_fee_basisB\x11\n\x0f_funding_weightB\x1c\n\x1a_channel_fee_max_base_msatB+\n)_channel_fee_max_proportional_thousandthsB\x10\n\x0e_compact_lease\"\xdf\x06\n\x14\x46underupdateResponse\x12\x0f\n\x07summary\x18\x01 \x01(\t\x12<\n\x06policy\x18\x02 \x01(\x0e\x32,.cln.FunderupdateResponse.FunderupdatePolicy\x12\x12\n\npolicy_mod\x18\x03 \x01(\r\x12\x13\n\x0bleases_only\x18\x04 \x01(\x08\x12+\n\x16min_their_funding_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12+\n\x16max_their_funding_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12)\n\x14per_channel_min_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12)\n\x14per_channel_max_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12&\n\x11reserve_tank_msat\x18\t \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0c\x66uzz_percent\x18\n \x01(\r\x12\x18\n\x10\x66und_probability\x18\x0b \x01(\r\x12-\n\x13lease_fee_base_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x1c\n\x0flease_fee_basis\x18\r \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0e\x66unding_weight\x18\x0e \x01(\rH\x02\x88\x01\x01\x12\x33\n\x19\x63hannel_fee_max_base_msat\x18\x0f \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x35\n(channel_fee_max_proportional_thousandths\x18\x10 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x11 \x01(\x0cH\x05\x88\x01\x01\"9\n\x12\x46underupdatePolicy\x12\t\n\x05MATCH\x10\x00\x12\r\n\tAVAILABLE\x10\x01\x12\t\n\x05\x46IXED\x10\x02\x42\x16\n\x14_lease_fee_base_msatB\x12\n\x10_lease_fee_basisB\x11\n\x0f_funding_weightB\x1c\n\x1a_channel_fee_max_base_msatB+\n)_channel_fee_max_proportional_thousandthsB\x10\n\x0e_compact_lease\"\xec\x01\n\x0fGetrouteRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\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\x12 \n\x0b\x61mount_msat\x18\t \x01(\x0b\x32\x0b.cln.AmountB\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\"\xb4\x06\n\x14ListforwardsForwards\x12\x12\n\nin_channel\x18\x01 \x01(\t\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\x00\x88\x01\x01\x12\"\n\x08\x66\x65\x65_msat\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\"\n\x08out_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12G\n\x05style\x18\t \x01(\x0e\x32\x33.cln.ListforwardsForwards.ListforwardsForwardsStyleH\x03\x88\x01\x01\x12\x17\n\nin_htlc_id\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x18\n\x0bout_htlc_id\x18\x0b \x01(\x04H\x05\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x0c \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rupdated_index\x18\r \x01(\x04H\x07\x88\x01\x01\x12\x1a\n\rresolved_time\x18\x0e \x01(\x01H\x08\x88\x01\x01\x12\x15\n\x08\x66\x61ilcode\x18\x0f \x01(\rH\t\x88\x01\x01\x12\x17\n\nfailreason\x18\x10 \x01(\tH\n\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\x0e\n\x0c_out_channelB\x0b\n\t_fee_msatB\x0b\n\t_out_msatB\x08\n\x06_styleB\r\n\x0b_in_htlc_idB\x0e\n\x0c_out_htlc_idB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x10\n\x0e_resolved_timeB\x0b\n\t_failcodeB\r\n\x0b_failreason\"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\"\x84\x03\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\x12\x36\n\x05index\x18\x04 \x01(\x0e\x32\".cln.ListpaysRequest.ListpaysIndexH\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\"7\n\x0eListpaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\")\n\rListpaysIndex\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\"3\n\x10ListpaysResponse\x12\x1f\n\x04pays\x18\x01 \x03(\x0b\x32\x11.cln.ListpaysPays\"\xdb\x05\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\x12\n\x05label\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x07 \x01(\tH\x03\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12*\n\x10\x61mount_sent_msat\x18\t \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x17\n\nerroronion\x18\n \x01(\x0cH\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0b \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x0c \x01(\x04H\x08\x88\x01\x01\x12\x15\n\x08preimage\x18\r \x01(\x0cH\t\x88\x01\x01\x12\x1c\n\x0fnumber_of_parts\x18\x0e \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x0f \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x10 \x01(\x04H\x0c\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\x08\n\x06_labelB\t\n\x07_bolt11B\t\n\x07_bolt12B\x0e\n\x0c_amount_msatB\x13\n\x11_amount_sent_msatB\r\n\x0b_erroronionB\x0e\n\x0c_descriptionB\x0f\n\r_completed_atB\x0b\n\t_preimageB\x12\n\x10_number_of_partsB\x10\n\x0e_created_indexB\x10\n\x0e_updated_index\"*\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\"\xb2\x02\n\x17MultifundchannelRequest\x12\x37\n\x0c\x64\x65stinations\x18\x01 \x03(\x0b\x32!.cln.MultifundchannelDestinations\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(\x12H\x01\x88\x01\x01\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.Outpoint\x12\x18\n\x0bminchannels\x18\x05 \x01(\x12H\x02\x88\x01\x01\x12-\n\x12\x63ommitment_feerate\x18\x06 \x01(\x0b\x32\x0c.cln.FeerateH\x03\x88\x01\x01\x42\n\n\x08_feerateB\n\n\x08_minconfB\x0e\n\x0c_minchannelsB\x15\n\x13_commitment_feerate\"\x98\x01\n\x18MultifundchannelResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\x12\x35\n\x0b\x63hannel_ids\x18\x03 \x03(\x0b\x32 .cln.MultifundchannelChannel_ids\x12+\n\x06\x66\x61iled\x18\x04 \x03(\x0b\x32\x1b.cln.MultifundchannelFailed\"\xff\x02\n\x1cMultifundchannelDestinations\x12\n\n\x02id\x18\x01 \x01(\t\x12 \n\x06\x61mount\x18\x02 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\x15\n\x08\x61nnounce\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12#\n\tpush_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x05 \x01(\tH\x02\x88\x01\x01\x12%\n\x0brequest_amt\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x07 \x01(\tH\x04\x88\x01\x01\x12\x15\n\x08mindepth\x18\x08 \x01(\rH\x05\x88\x01\x01\x12!\n\x07reserve\x18\t \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x42\x0b\n\t_announceB\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\"\xcb\x01\n\x1bMultifundchannelChannel_ids\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\x12\x12\n\nchannel_id\x18\x03 \x01(\x0c\x12G\n\x0c\x63hannel_type\x18\x04 \x01(\x0b\x32,.cln.MultifundchannelChannel_idsChannel_typeH\x00\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x42\x0f\n\r_channel_typeB\x0b\n\t_close_to\"\\\n\'MultifundchannelChannel_idsChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"\x93\x02\n\x16MultifundchannelFailed\x12\n\n\x02id\x18\x01 \x01(\x0c\x12H\n\x06method\x18\x02 \x01(\x0e\x32\x38.cln.MultifundchannelFailed.MultifundchannelFailedMethod\x12/\n\x05\x65rror\x18\x03 \x01(\x0b\x32 .cln.MultifundchannelFailedError\"r\n\x1cMultifundchannelFailedMethod\x12\x0b\n\x07\x43ONNECT\x10\x00\x12\x14\n\x10OPENCHANNEL_INIT\x10\x01\x12\x15\n\x11\x46UNDCHANNEL_START\x10\x02\x12\x18\n\x14\x46UNDCHANNEL_COMPLETE\x10\x03\"<\n\x1bMultifundchannelFailedError\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x12\x12\x0f\n\x07message\x18\x02 \x01(\t\"\xa8\x01\n\x14MultiwithdrawRequest\x12 \n\x07outputs\x18\x01 \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\"1\n\x15MultiwithdrawResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\"\xa0\x04\n\x0cOfferRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06issuer\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05label\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cquantity_max\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0f\x61\x62solute_expiry\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x17\n\nrecurrence\x18\x07 \x01(\tH\x05\x88\x01\x01\x12\x1c\n\x0frecurrence_base\x18\x08 \x01(\tH\x06\x88\x01\x01\x12!\n\x14recurrence_paywindow\x18\t \x01(\tH\x07\x88\x01\x01\x12\x1d\n\x10recurrence_limit\x18\n \x01(\rH\x08\x88\x01\x01\x12\x17\n\nsingle_use\x18\x0b \x01(\x08H\t\x88\x01\x01\x12(\n\x1brecurrence_start_any_period\x18\x0c \x01(\x08H\n\x88\x01\x01\x42\x0e\n\x0c_descriptionB\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_useB\x1e\n\x1c_recurrence_start_any_period\"\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\".\n\x18Openchannel_abortRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\"Y\n\x19Openchannel_abortResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x18\n\x10\x63hannel_canceled\x18\x02 \x01(\x08\x12\x0e\n\x06reason\x18\x03 \x01(\t\"\x9f\x01\n\x17Openchannel_bumpRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x13\n\x0binitialpsbt\x18\x02 \x01(\t\x12*\n\x0f\x66unding_feerate\x18\x03 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x1b\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x0b.cln.AmountB\x12\n\x10_funding_feerate\"\x86\x02\n\x18Openchannel_bumpResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12<\n\x0c\x63hannel_type\x18\x02 \x01(\x0b\x32!.cln.Openchannel_bumpChannel_typeH\x00\x88\x01\x01\x12\x0c\n\x04psbt\x18\x03 \x01(\t\x12\x1b\n\x13\x63ommitments_secured\x18\x04 \x01(\x08\x12\x16\n\x0e\x66unding_serial\x18\x05 \x01(\x04\x12&\n\x19requires_confirmed_inputs\x18\x06 \x01(\x08H\x01\x88\x01\x01\x42\x0f\n\r_channel_typeB\x1c\n\x1a_requires_confirmed_inputs\"Q\n\x1cOpenchannel_bumpChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"\xa0\x03\n\x17Openchannel_initRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x13\n\x0binitialpsbt\x18\x02 \x01(\t\x12-\n\x12\x63ommitment_feerate\x18\x03 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12*\n\x0f\x66unding_feerate\x18\x04 \x01(\x0b\x32\x0c.cln.FeerateH\x01\x88\x01\x01\x12\x15\n\x08\x61nnounce\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x0brequest_amt\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x08 \x01(\x0cH\x05\x88\x01\x01\x12\x14\n\x0c\x63hannel_type\x18\t \x03(\r\x12\x1b\n\x06\x61mount\x18\n \x01(\x0b\x32\x0b.cln.AmountB\x15\n\x13_commitment_feerateB\x12\n\x10_funding_feerateB\x0b\n\t_announceB\x0b\n\t_close_toB\x0e\n\x0c_request_amtB\x10\n\x0e_compact_lease\"\x86\x02\n\x18Openchannel_initResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x0c\n\x04psbt\x18\x02 \x01(\t\x12<\n\x0c\x63hannel_type\x18\x03 \x01(\x0b\x32!.cln.Openchannel_initChannel_typeH\x00\x88\x01\x01\x12\x1b\n\x13\x63ommitments_secured\x18\x04 \x01(\x08\x12\x16\n\x0e\x66unding_serial\x18\x05 \x01(\x04\x12&\n\x19requires_confirmed_inputs\x18\x06 \x01(\x08H\x01\x88\x01\x01\x42\x0f\n\r_channel_typeB\x1c\n\x1a_requires_confirmed_inputs\"Q\n\x1cOpenchannel_initChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"D\n\x19Openchannel_signedRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x13\n\x0bsigned_psbt\x18\x02 \x01(\t\"J\n\x1aOpenchannel_signedResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\n\n\x02tx\x18\x02 \x01(\x0c\x12\x0c\n\x04txid\x18\x03 \x01(\x0c\"=\n\x19Openchannel_updateRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x0c\n\x04psbt\x18\x02 \x01(\t\"\xae\x02\n\x1aOpenchannel_updateResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12>\n\x0c\x63hannel_type\x18\x02 \x01(\x0b\x32#.cln.Openchannel_updateChannel_typeH\x00\x88\x01\x01\x12\x0c\n\x04psbt\x18\x03 \x01(\t\x12\x1b\n\x13\x63ommitments_secured\x18\x04 \x01(\x08\x12\x16\n\x0e\x66unding_outnum\x18\x05 \x01(\r\x12\x15\n\x08\x63lose_to\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12&\n\x19requires_confirmed_inputs\x18\x07 \x01(\x08H\x02\x88\x01\x01\x42\x0f\n\r_channel_typeB\x0b\n\t_close_toB\x1c\n\x1a_requires_confirmed_inputs\"S\n\x1eOpenchannel_updateChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"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\"\x91\x01\n\rPluginRequest\x12)\n\nsubcommand\x18\x01 \x01(\x0e\x32\x15.cln.PluginSubcommand\x12\x13\n\x06plugin\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tdirectory\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x0f\n\x07options\x18\x04 \x03(\tB\t\n\x07_pluginB\x0c\n\n_directory\"}\n\x0ePluginResponse\x12&\n\x07\x63ommand\x18\x01 \x01(\x0e\x32\x15.cln.PluginSubcommand\x12#\n\x07plugins\x18\x02 \x03(\x0b\x32\x12.cln.PluginPlugins\x12\x13\n\x06result\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_result\">\n\rPluginPlugins\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x63tive\x18\x02 \x01(\x08\x12\x0f\n\x07\x64ynamic\x18\x03 \x01(\x08\"<\n\x14RenepaystatusRequest\x12\x16\n\tinvstring\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_invstring\"G\n\x15RenepaystatusResponse\x12.\n\tpaystatus\x18\x01 \x03(\x0b\x32\x1b.cln.RenepaystatusPaystatus\"\xe2\x03\n\x16RenepaystatusPaystatus\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12\x1d\n\x10payment_preimage\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\x0f\n\x07groupid\x18\x05 \x01(\r\x12\x12\n\x05parts\x18\x06 \x01(\rH\x01\x88\x01\x01\x12 \n\x0b\x61mount_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12*\n\x10\x61mount_sent_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12H\n\x06status\x18\t \x01(\x0e\x32\x38.cln.RenepaystatusPaystatus.RenepaystatusPaystatusStatus\x12\x18\n\x0b\x64\x65stination\x18\n \x01(\x0cH\x03\x88\x01\x01\x12\r\n\x05notes\x18\x0b \x03(\t\"E\n\x1cRenepaystatusPaystatusStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x42\x13\n\x11_payment_preimageB\x08\n\x06_partsB\x13\n\x11_amount_sent_msatB\x0e\n\x0c_destination\"\xda\x02\n\x0eRenepayRequest\x12\x11\n\tinvstring\x18\x01 \x01(\t\x12%\n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12 \n\x06maxfee\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x15\n\x08maxdelay\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tretry_for\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x12\n\x05label\x18\x07 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0e\x64\x65v_use_shadow\x18\x08 \x01(\x08H\x06\x88\x01\x01\x12\x0f\n\x07\x65xclude\x18\t \x03(\tB\x0e\n\x0c_amount_msatB\t\n\x07_maxfeeB\x0b\n\t_maxdelayB\x0c\n\n_retry_forB\x0e\n\x0c_descriptionB\x08\n\x06_labelB\x11\n\x0f_dev_use_shadow\"\xa5\x03\n\x0fRenepayResponse\x12\x18\n\x10payment_preimage\x18\x01 \x01(\x0c\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12\r\n\x05parts\x18\x04 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x61mount_sent_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12\x32\n\x06status\x18\x07 \x01(\x0e\x32\".cln.RenepayResponse.RenepayStatus\x12\x18\n\x0b\x64\x65stination\x18\x08 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\t \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\n \x01(\tH\x02\x88\x01\x01\x12\x14\n\x07groupid\x18\x0b \x01(\x04H\x03\x88\x01\x01\"6\n\rRenepayStatus\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\t\n\x07_bolt11B\t\n\x07_bolt12B\n\n\x08_groupid\"l\n\x14ReserveinputsRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x16\n\texclusive\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07reserve\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x0c\n\n_exclusiveB\n\n\x08_reserve\"M\n\x15ReserveinputsResponse\x12\x34\n\x0creservations\x18\x01 \x03(\x0b\x32\x1e.cln.ReserveinputsReservations\"z\n\x19ReserveinputsReservations\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\"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\"\xb0\x01\n\x12SendinvoiceRequest\x12\x0e\n\x06invreq\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12%\n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08quantity\x18\x05 \x01(\x04H\x02\x88\x01\x01\x42\x0e\n\x0c_amount_msatB\n\n\x08_timeoutB\x0b\n\t_quantity\"\xcf\x04\n\x13SendinvoiceResponse\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.SendinvoiceResponse.SendinvoiceStatus\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\x62olt12\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x08 \x01(\x04H\x02\x88\x01\x01\x12\x1a\n\rupdated_index\x18\t \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tpay_index\x18\n \x01(\x04H\x04\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0c \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\x07\x88\x01\x01\"6\n\x11SendinvoiceStatus\x12\n\n\x06UNPAID\x10\x00\x12\x08\n\x04PAID\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x42\x0e\n\x0c_amount_msatB\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\x13\n\x11_payment_preimage\"\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*\n\x15minimum_htlc_out_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12$\n\x17warning_htlcmin_too_low\x18\x07 \x01(\tH\x01\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\x02\x88\x01\x01\x12\x1e\n\x11ignore_fee_limits\x18\n \x01(\x08H\x03\x88\x01\x01\x42\x13\n\x11_short_channel_idB\x1a\n\x18_warning_htlcmin_too_lowB\x1b\n\x19_warning_htlcmax_too_highB\x14\n\x12_ignore_fee_limits\"<\n\x10SetconfigRequest\x12\x0e\n\x06\x63onfig\x18\x01 \x01(\t\x12\x10\n\x03val\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x06\n\x04_val\"9\n\x11SetconfigResponse\x12$\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x14.cln.SetconfigConfig\"\xa5\x02\n\x0fSetconfigConfig\x12\x0e\n\x06\x63onfig\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x13\n\x06plugin\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x64ynamic\x18\x04 \x01(\x08\x12\x10\n\x03set\x18\x05 \x01(\x08H\x01\x88\x01\x01\x12\x16\n\tvalue_str\x18\x06 \x01(\tH\x02\x88\x01\x01\x12$\n\nvalue_msat\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x16\n\tvalue_int\x18\x08 \x01(\x12H\x04\x88\x01\x01\x12\x17\n\nvalue_bool\x18\t \x01(\x08H\x05\x88\x01\x01\x42\t\n\x07_pluginB\x06\n\x04_setB\x0c\n\n_value_strB\r\n\x0b_value_msatB\x0c\n\n_value_intB\r\n\x0b_value_bool\"6\n\x15SetpsbtversionRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\r\"&\n\x16SetpsbtversionResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\"\'\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\"\xc9\x01\n\x12Splice_initRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x17\n\x0frelative_amount\x18\x02 \x01(\x12\x12\x18\n\x0binitialpsbt\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0e\x66\x65\x65rate_per_kw\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rforce_feerate\x18\x05 \x01(\x08H\x02\x88\x01\x01\x42\x0e\n\x0c_initialpsbtB\x11\n\x0f_feerate_per_kwB\x10\n\x0e_force_feerate\"#\n\x13Splice_initResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\"`\n\x14Splice_signedRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x0c\n\x04psbt\x18\x02 \x01(\t\x12\x17\n\nsign_first\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_sign_first\"_\n\x15Splice_signedResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\x12\x13\n\x06outnum\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x0c\n\x04psbt\x18\x04 \x01(\tB\t\n\x07_outnum\"8\n\x14Splice_updateRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x0c\n\x04psbt\x18\x02 \x01(\t\"z\n\x15Splice_updateResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x1b\n\x13\x63ommitments_secured\x18\x02 \x01(\x08\x12\x1f\n\x12signatures_secured\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x15\n\x13_signatures_secured\"H\n\x16UnreserveinputsRequest\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\"Q\n\x17UnreserveinputsResponse\x12\x36\n\x0creservations\x18\x01 \x03(\x0b\x32 .cln.UnreserveinputsReservations\"\x97\x01\n\x1bUnreserveinputsReservations\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\x1e\n\x11reserved_to_block\x18\x05 \x01(\rH\x00\x88\x01\x01\x42\x14\n\x12_reserved_to_block\"n\n\x14UpgradewalletRequest\x12\"\n\x07\x66\x65\x65rate\x18\x01 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x17\n\nreservedok\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_feerateB\r\n\x0b_reservedok\"\x95\x01\n\x15UpgradewalletResponse\x12\x1a\n\rupgraded_outs\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04psbt\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0f\n\x02tx\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x12\x11\n\x04txid\x18\x04 \x01(\x0cH\x03\x88\x01\x01\x42\x10\n\x0e_upgraded_outsB\x07\n\x05_psbtB\x05\n\x03_txB\x07\n\x05_txid\"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\"\x97\x02\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\x12&\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32\x10.cln.WaitDetailsH\x03\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_deletedB\n\n\x08_details\"\xfc\x04\n\x0bWaitDetails\x12\x37\n\x06status\x18\x01 \x01(\x0e\x32\".cln.WaitDetails.WaitDetailsStatusH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x13\n\x06partid\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x14\n\x07groupid\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x08 \x01(\x0cH\x07\x88\x01\x01\x12\x17\n\nin_channel\x18\t \x01(\tH\x08\x88\x01\x01\x12\x17\n\nin_htlc_id\x18\n \x01(\x04H\t\x88\x01\x01\x12!\n\x07in_msat\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\n\x88\x01\x01\x12\x18\n\x0bout_channel\x18\x0c \x01(\tH\x0b\x88\x01\x01\"\x89\x01\n\x11WaitDetailsStatus\x12\n\n\x06UNPAID\x10\x00\x12\x08\n\x04PAID\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x12\x0b\n\x07PENDING\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x0c\n\x08\x43OMPLETE\x10\x05\x12\x0b\n\x07OFFERED\x10\x06\x12\x0b\n\x07SETTLED\x10\x07\x12\x10\n\x0cLOCAL_FAILED\x10\x08\x42\t\n\x07_statusB\x08\n\x06_labelB\x0e\n\x0c_descriptionB\t\n\x07_bolt11B\t\n\x07_bolt12B\t\n\x07_partidB\n\n\x08_groupidB\x0f\n\r_payment_hashB\r\n\x0b_in_channelB\r\n\x0b_in_htlc_idB\n\n\x08_in_msatB\x0e\n\x0c_out_channel\"4\n\x12ListconfigsRequest\x12\x13\n\x06\x63onfig\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_config\"\xa3\x1c\n\x13ListconfigsResponse\x12-\n\x07\x63onfigs\x18\x01 \x01(\x0b\x32\x17.cln.ListconfigsConfigsH\x00\x88\x01\x01\x12(\n\x07plugins\x18\x03 \x03(\x0b\x32\x17.cln.ListconfigsPlugins\x12;\n\x11important_plugins\x18\x04 \x03(\x0b\x32 .cln.ListconfigsImportantplugins\x12\x11\n\x04\x63onf\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rlightning_dir\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x07network\x18\x07 \x01(\tH\x03\x88\x01\x01\x12\"\n\x15\x61llow_deprecated_apis\x18\x08 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08rpc_file\x18\t \x01(\tH\x05\x88\x01\x01\x12\x16\n\x0e\x64isable_plugin\x18\n \x03(\t\x12\x1b\n\x0e\x62ookkeeper_dir\x18\x0b \x01(\tH\x06\x88\x01\x01\x12\x1a\n\rbookkeeper_db\x18\x0c \x01(\tH\x07\x88\x01\x01\x12\x1d\n\x10\x61lways_use_proxy\x18\r \x01(\x08H\x08\x88\x01\x01\x12\x13\n\x06\x64\x61\x65mon\x18\x0e \x01(\x08H\t\x88\x01\x01\x12\x13\n\x06wallet\x18\x0f \x01(\tH\n\x88\x01\x01\x12\x1b\n\x0elarge_channels\x18\x10 \x01(\x08H\x0b\x88\x01\x01\x12#\n\x16\x65xperimental_dual_fund\x18\x11 \x01(\x08H\x0c\x88\x01\x01\x12\"\n\x15\x65xperimental_splicing\x18\x12 \x01(\x08H\r\x88\x01\x01\x12(\n\x1b\x65xperimental_onion_messages\x18\x13 \x01(\x08H\x0e\x88\x01\x01\x12 \n\x13\x65xperimental_offers\x18\x14 \x01(\x08H\x0f\x88\x01\x01\x12\x30\n#experimental_shutdown_wrong_funding\x18\x15 \x01(\x08H\x10\x88\x01\x01\x12&\n\x19\x65xperimental_peer_storage\x18\x16 \x01(\x08H\x11\x88\x01\x01\x12!\n\x14\x65xperimental_quiesce\x18\x17 \x01(\x08H\x12\x88\x01\x01\x12*\n\x1d\x65xperimental_upgrade_protocol\x18\x18 \x01(\x08H\x13\x88\x01\x01\x12&\n\x19invoices_onchain_fallback\x18\x19 \x01(\x08H\x14\x88\x01\x01\x12\x1d\n\x10\x64\x61tabase_upgrade\x18\x1a \x01(\x08H\x15\x88\x01\x01\x12\x10\n\x03rgb\x18\x1b \x01(\x0cH\x16\x88\x01\x01\x12\x12\n\x05\x61lias\x18\x1c \x01(\tH\x17\x88\x01\x01\x12\x15\n\x08pid_file\x18\x1d \x01(\tH\x18\x88\x01\x01\x12\x1e\n\x11ignore_fee_limits\x18\x1e \x01(\x08H\x19\x88\x01\x01\x12\x1d\n\x10watchtime_blocks\x18\x1f \x01(\rH\x1a\x88\x01\x01\x12 \n\x13max_locktime_blocks\x18 \x01(\rH\x1b\x88\x01\x01\x12\x1d\n\x10\x66unding_confirms\x18! \x01(\rH\x1c\x88\x01\x01\x12\x17\n\ncltv_delta\x18\" \x01(\rH\x1d\x88\x01\x01\x12\x17\n\ncltv_final\x18# \x01(\rH\x1e\x88\x01\x01\x12\x18\n\x0b\x63ommit_time\x18$ \x01(\rH\x1f\x88\x01\x01\x12\x15\n\x08\x66\x65\x65_base\x18% \x01(\rH \x88\x01\x01\x12\x13\n\x06rescan\x18& \x01(\x12H!\x88\x01\x01\x12\x1c\n\x0f\x66\x65\x65_per_satoshi\x18\' \x01(\rH\"\x88\x01\x01\x12!\n\x14max_concurrent_htlcs\x18( \x01(\rH#\x88\x01\x01\x12+\n\x11htlc_minimum_msat\x18) \x01(\x0b\x32\x0b.cln.AmountH$\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18* \x01(\x0b\x32\x0b.cln.AmountH%\x88\x01\x01\x12\x35\n\x1bmax_dust_htlc_exposure_msat\x18+ \x01(\x0b\x32\x0b.cln.AmountH&\x88\x01\x01\x12\x1d\n\x10min_capacity_sat\x18, \x01(\x04H\'\x88\x01\x01\x12\x11\n\x04\x61\x64\x64r\x18- \x01(\tH(\x88\x01\x01\x12\x1a\n\rannounce_addr\x18. \x01(\tH)\x88\x01\x01\x12\x16\n\tbind_addr\x18/ \x01(\tH*\x88\x01\x01\x12\x14\n\x07offline\x18\x30 \x01(\x08H+\x88\x01\x01\x12\x17\n\nautolisten\x18\x31 \x01(\x08H,\x88\x01\x01\x12\x12\n\x05proxy\x18\x32 \x01(\tH-\x88\x01\x01\x12\x18\n\x0b\x64isable_dns\x18\x33 \x01(\x08H.\x88\x01\x01\x12%\n\x18\x61nnounce_addr_discovered\x18\x34 \x01(\tH/\x88\x01\x01\x12*\n\x1d\x61nnounce_addr_discovered_port\x18\x35 \x01(\x12H0\x88\x01\x01\x12\x1a\n\rencrypted_hsm\x18\x36 \x01(\x08H1\x88\x01\x01\x12\x1a\n\rrpc_file_mode\x18\x37 \x01(\tH2\x88\x01\x01\x12\x16\n\tlog_level\x18\x38 \x01(\tH3\x88\x01\x01\x12\x17\n\nlog_prefix\x18\x39 \x01(\tH4\x88\x01\x01\x12\x15\n\x08log_file\x18: \x01(\tH5\x88\x01\x01\x12\x1b\n\x0elog_timestamps\x18; \x01(\x08H6\x88\x01\x01\x12\x1b\n\x0e\x66orce_feerates\x18< \x01(\tH7\x88\x01\x01\x12\x16\n\tsubdaemon\x18= \x01(\tH8\x88\x01\x01\x12#\n\x16\x66\x65tchinvoice_noconnect\x18> \x01(\x08H9\x88\x01\x01\x12\"\n\x15\x61\x63\x63\x65pt_htlc_tlv_types\x18? \x01(\tH:\x88\x01\x01\x12!\n\x14tor_service_password\x18@ \x01(\tH;\x88\x01\x01\x12!\n\x14\x64\x65v_allowdustreserve\x18\x41 \x01(\x08H<\x88\x01\x01\x12\x1e\n\x11\x61nnounce_addr_dns\x18\x42 \x01(\x08H=\x88\x01\x01\x12%\n\x18require_confirmed_inputs\x18\x43 \x01(\x08H>\x88\x01\x01\x12\x16\n\tdeveloper\x18\x44 \x01(\x08H?\x88\x01\x01\x12\x17\n\ncommit_fee\x18\x45 \x01(\x04H@\x88\x01\x01\x12,\n\x12min_emergency_msat\x18\x46 \x01(\x0b\x32\x0b.cln.AmountHA\x88\x01\x01\x12\"\n\x15\x63ommit_feerate_offset\x18G \x01(\rHB\x88\x01\x01\x12%\n\x18\x61utoconnect_seeker_peers\x18H \x01(\rHC\x88\x01\x01\x42\n\n\x08_configsB\x07\n\x05_confB\x10\n\x0e_lightning_dirB\n\n\x08_networkB\x18\n\x16_allow_deprecated_apisB\x0b\n\t_rpc_fileB\x11\n\x0f_bookkeeper_dirB\x10\n\x0e_bookkeeper_dbB\x13\n\x11_always_use_proxyB\t\n\x07_daemonB\t\n\x07_walletB\x11\n\x0f_large_channelsB\x19\n\x17_experimental_dual_fundB\x18\n\x16_experimental_splicingB\x1e\n\x1c_experimental_onion_messagesB\x16\n\x14_experimental_offersB&\n$_experimental_shutdown_wrong_fundingB\x1c\n\x1a_experimental_peer_storageB\x17\n\x15_experimental_quiesceB \n\x1e_experimental_upgrade_protocolB\x1c\n\x1a_invoices_onchain_fallbackB\x13\n\x11_database_upgradeB\x06\n\x04_rgbB\x08\n\x06_aliasB\x0b\n\t_pid_fileB\x14\n\x12_ignore_fee_limitsB\x13\n\x11_watchtime_blocksB\x16\n\x14_max_locktime_blocksB\x13\n\x11_funding_confirmsB\r\n\x0b_cltv_deltaB\r\n\x0b_cltv_finalB\x0e\n\x0c_commit_timeB\x0b\n\t_fee_baseB\t\n\x07_rescanB\x12\n\x10_fee_per_satoshiB\x17\n\x15_max_concurrent_htlcsB\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x1e\n\x1c_max_dust_htlc_exposure_msatB\x13\n\x11_min_capacity_satB\x07\n\x05_addrB\x10\n\x0e_announce_addrB\x0c\n\n_bind_addrB\n\n\x08_offlineB\r\n\x0b_autolistenB\x08\n\x06_proxyB\x0e\n\x0c_disable_dnsB\x1b\n\x19_announce_addr_discoveredB \n\x1e_announce_addr_discovered_portB\x10\n\x0e_encrypted_hsmB\x10\n\x0e_rpc_file_modeB\x0c\n\n_log_levelB\r\n\x0b_log_prefixB\x0b\n\t_log_fileB\x11\n\x0f_log_timestampsB\x11\n\x0f_force_feeratesB\x0c\n\n_subdaemonB\x19\n\x17_fetchinvoice_noconnectB\x18\n\x16_accept_htlc_tlv_typesB\x17\n\x15_tor_service_passwordB\x17\n\x15_dev_allowdustreserveB\x14\n\x12_announce_addr_dnsB\x1b\n\x19_require_confirmed_inputsB\x0c\n\n_developerB\r\n\x0b_commit_feeB\x15\n\x13_min_emergency_msatB\x18\n\x16_commit_feerate_offsetB\x1b\n\x19_autoconnect_seeker_peers\"\xd2/\n\x12ListconfigsConfigs\x12.\n\x04\x63onf\x18\x01 \x01(\x0b\x32\x1b.cln.ListconfigsConfigsConfH\x00\x88\x01\x01\x12\x38\n\tdeveloper\x18\x02 \x01(\x0b\x32 .cln.ListconfigsConfigsDeveloperH\x01\x88\x01\x01\x12?\n\rclear_plugins\x18\x03 \x01(\x0b\x32#.cln.ListconfigsConfigsClearpluginsH\x02\x88\x01\x01\x12;\n\x0b\x64isable_mpp\x18\x04 \x01(\x0b\x32!.cln.ListconfigsConfigsDisablemppH\x03\x88\x01\x01\x12\x34\n\x07mainnet\x18\x05 \x01(\x0b\x32\x1e.cln.ListconfigsConfigsMainnetH\x04\x88\x01\x01\x12\x34\n\x07regtest\x18\x06 \x01(\x0b\x32\x1e.cln.ListconfigsConfigsRegtestH\x05\x88\x01\x01\x12\x32\n\x06signet\x18\x07 \x01(\x0b\x32\x1d.cln.ListconfigsConfigsSignetH\x06\x88\x01\x01\x12\x34\n\x07testnet\x18\x08 \x01(\x0b\x32\x1e.cln.ListconfigsConfigsTestnetH\x07\x88\x01\x01\x12\x45\n\x10important_plugin\x18\t \x01(\x0b\x32&.cln.ListconfigsConfigsImportantpluginH\x08\x88\x01\x01\x12\x32\n\x06plugin\x18\n \x01(\x0b\x32\x1d.cln.ListconfigsConfigsPluginH\t\x88\x01\x01\x12\x39\n\nplugin_dir\x18\x0b \x01(\x0b\x32 .cln.ListconfigsConfigsPlugindirH\n\x88\x01\x01\x12?\n\rlightning_dir\x18\x0c \x01(\x0b\x32#.cln.ListconfigsConfigsLightningdirH\x0b\x88\x01\x01\x12\x34\n\x07network\x18\r \x01(\x0b\x32\x1e.cln.ListconfigsConfigsNetworkH\x0c\x88\x01\x01\x12N\n\x15\x61llow_deprecated_apis\x18\x0e \x01(\x0b\x32*.cln.ListconfigsConfigsAllowdeprecatedapisH\r\x88\x01\x01\x12\x35\n\x08rpc_file\x18\x0f \x01(\x0b\x32\x1e.cln.ListconfigsConfigsRpcfileH\x0e\x88\x01\x01\x12\x41\n\x0e\x64isable_plugin\x18\x10 \x01(\x0b\x32$.cln.ListconfigsConfigsDisablepluginH\x0f\x88\x01\x01\x12\x44\n\x10\x61lways_use_proxy\x18\x11 \x01(\x0b\x32%.cln.ListconfigsConfigsAlwaysuseproxyH\x10\x88\x01\x01\x12\x32\n\x06\x64\x61\x65mon\x18\x12 \x01(\x0b\x32\x1d.cln.ListconfigsConfigsDaemonH\x11\x88\x01\x01\x12\x32\n\x06wallet\x18\x13 \x01(\x0b\x32\x1d.cln.ListconfigsConfigsWalletH\x12\x88\x01\x01\x12\x41\n\x0elarge_channels\x18\x14 \x01(\x0b\x32$.cln.ListconfigsConfigsLargechannelsH\x13\x88\x01\x01\x12P\n\x16\x65xperimental_dual_fund\x18\x15 \x01(\x0b\x32+.cln.ListconfigsConfigsExperimentaldualfundH\x14\x88\x01\x01\x12O\n\x15\x65xperimental_splicing\x18\x16 \x01(\x0b\x32+.cln.ListconfigsConfigsExperimentalsplicingH\x15\x88\x01\x01\x12Z\n\x1b\x65xperimental_onion_messages\x18\x17 \x01(\x0b\x32\x30.cln.ListconfigsConfigsExperimentalonionmessagesH\x16\x88\x01\x01\x12K\n\x13\x65xperimental_offers\x18\x18 \x01(\x0b\x32).cln.ListconfigsConfigsExperimentaloffersH\x17\x88\x01\x01\x12i\n#experimental_shutdown_wrong_funding\x18\x19 \x01(\x0b\x32\x37.cln.ListconfigsConfigsExperimentalshutdownwrongfundingH\x18\x88\x01\x01\x12V\n\x19\x65xperimental_peer_storage\x18\x1a \x01(\x0b\x32..cln.ListconfigsConfigsExperimentalpeerstorageH\x19\x88\x01\x01\x12M\n\x14\x65xperimental_anchors\x18\x1b \x01(\x0b\x32*.cln.ListconfigsConfigsExperimentalanchorsH\x1a\x88\x01\x01\x12\x45\n\x10\x64\x61tabase_upgrade\x18\x1c \x01(\x0b\x32&.cln.ListconfigsConfigsDatabaseupgradeH\x1b\x88\x01\x01\x12,\n\x03rgb\x18\x1d \x01(\x0b\x32\x1a.cln.ListconfigsConfigsRgbH\x1c\x88\x01\x01\x12\x30\n\x05\x61lias\x18\x1e \x01(\x0b\x32\x1c.cln.ListconfigsConfigsAliasH\x1d\x88\x01\x01\x12\x35\n\x08pid_file\x18\x1f \x01(\x0b\x32\x1e.cln.ListconfigsConfigsPidfileH\x1e\x88\x01\x01\x12\x46\n\x11ignore_fee_limits\x18 \x01(\x0b\x32&.cln.ListconfigsConfigsIgnorefeelimitsH\x1f\x88\x01\x01\x12\x45\n\x10watchtime_blocks\x18! \x01(\x0b\x32&.cln.ListconfigsConfigsWatchtimeblocksH \x88\x01\x01\x12J\n\x13max_locktime_blocks\x18\" \x01(\x0b\x32(.cln.ListconfigsConfigsMaxlocktimeblocksH!\x88\x01\x01\x12\x45\n\x10\x66unding_confirms\x18# \x01(\x0b\x32&.cln.ListconfigsConfigsFundingconfirmsH\"\x88\x01\x01\x12\x39\n\ncltv_delta\x18$ \x01(\x0b\x32 .cln.ListconfigsConfigsCltvdeltaH#\x88\x01\x01\x12\x39\n\ncltv_final\x18% \x01(\x0b\x32 .cln.ListconfigsConfigsCltvfinalH$\x88\x01\x01\x12;\n\x0b\x63ommit_time\x18& \x01(\x0b\x32!.cln.ListconfigsConfigsCommittimeH%\x88\x01\x01\x12\x35\n\x08\x66\x65\x65_base\x18\' \x01(\x0b\x32\x1e.cln.ListconfigsConfigsFeebaseH&\x88\x01\x01\x12\x32\n\x06rescan\x18( \x01(\x0b\x32\x1d.cln.ListconfigsConfigsRescanH\'\x88\x01\x01\x12\x42\n\x0f\x66\x65\x65_per_satoshi\x18) \x01(\x0b\x32$.cln.ListconfigsConfigsFeepersatoshiH(\x88\x01\x01\x12L\n\x14max_concurrent_htlcs\x18* \x01(\x0b\x32).cln.ListconfigsConfigsMaxconcurrenthtlcsH)\x88\x01\x01\x12\x46\n\x11htlc_minimum_msat\x18+ \x01(\x0b\x32&.cln.ListconfigsConfigsHtlcminimummsatH*\x88\x01\x01\x12\x46\n\x11htlc_maximum_msat\x18, \x01(\x0b\x32&.cln.ListconfigsConfigsHtlcmaximummsatH+\x88\x01\x01\x12X\n\x1bmax_dust_htlc_exposure_msat\x18- \x01(\x0b\x32..cln.ListconfigsConfigsMaxdusthtlcexposuremsatH,\x88\x01\x01\x12\x44\n\x10min_capacity_sat\x18. \x01(\x0b\x32%.cln.ListconfigsConfigsMincapacitysatH-\x88\x01\x01\x12.\n\x04\x61\x64\x64r\x18/ \x01(\x0b\x32\x1b.cln.ListconfigsConfigsAddrH.\x88\x01\x01\x12?\n\rannounce_addr\x18\x30 \x01(\x0b\x32#.cln.ListconfigsConfigsAnnounceaddrH/\x88\x01\x01\x12\x37\n\tbind_addr\x18\x31 \x01(\x0b\x32\x1f.cln.ListconfigsConfigsBindaddrH0\x88\x01\x01\x12\x34\n\x07offline\x18\x32 \x01(\x0b\x32\x1e.cln.ListconfigsConfigsOfflineH1\x88\x01\x01\x12:\n\nautolisten\x18\x33 \x01(\x0b\x32!.cln.ListconfigsConfigsAutolistenH2\x88\x01\x01\x12\x30\n\x05proxy\x18\x34 \x01(\x0b\x32\x1c.cln.ListconfigsConfigsProxyH3\x88\x01\x01\x12;\n\x0b\x64isable_dns\x18\x35 \x01(\x0b\x32!.cln.ListconfigsConfigsDisablednsH4\x88\x01\x01\x12T\n\x18\x61nnounce_addr_discovered\x18\x36 \x01(\x0b\x32-.cln.ListconfigsConfigsAnnounceaddrdiscoveredH5\x88\x01\x01\x12]\n\x1d\x61nnounce_addr_discovered_port\x18\x37 \x01(\x0b\x32\x31.cln.ListconfigsConfigsAnnounceaddrdiscoveredportH6\x88\x01\x01\x12?\n\rencrypted_hsm\x18\x38 \x01(\x0b\x32#.cln.ListconfigsConfigsEncryptedhsmH7\x88\x01\x01\x12>\n\rrpc_file_mode\x18\x39 \x01(\x0b\x32\".cln.ListconfigsConfigsRpcfilemodeH8\x88\x01\x01\x12\x37\n\tlog_level\x18: \x01(\x0b\x32\x1f.cln.ListconfigsConfigsLoglevelH9\x88\x01\x01\x12\x39\n\nlog_prefix\x18; \x01(\x0b\x32 .cln.ListconfigsConfigsLogprefixH:\x88\x01\x01\x12\x35\n\x08log_file\x18< \x01(\x0b\x32\x1e.cln.ListconfigsConfigsLogfileH;\x88\x01\x01\x12\x41\n\x0elog_timestamps\x18= \x01(\x0b\x32$.cln.ListconfigsConfigsLogtimestampsH<\x88\x01\x01\x12\x41\n\x0e\x66orce_feerates\x18> \x01(\x0b\x32$.cln.ListconfigsConfigsForcefeeratesH=\x88\x01\x01\x12\x38\n\tsubdaemon\x18? \x01(\x0b\x32 .cln.ListconfigsConfigsSubdaemonH>\x88\x01\x01\x12Q\n\x16\x66\x65tchinvoice_noconnect\x18@ \x01(\x0b\x32,.cln.ListconfigsConfigsFetchinvoicenoconnectH?\x88\x01\x01\x12M\n\x15\x61\x63\x63\x65pt_htlc_tlv_types\x18\x41 \x01(\x0b\x32).cln.ListconfigsConfigsAccepthtlctlvtypesH@\x88\x01\x01\x12L\n\x14tor_service_password\x18\x42 \x01(\x0b\x32).cln.ListconfigsConfigsTorservicepasswordHA\x88\x01\x01\x12\x46\n\x11\x61nnounce_addr_dns\x18\x43 \x01(\x0b\x32&.cln.ListconfigsConfigsAnnounceaddrdnsHB\x88\x01\x01\x12T\n\x18require_confirmed_inputs\x18\x44 \x01(\x0b\x32-.cln.ListconfigsConfigsRequireconfirmedinputsHC\x88\x01\x01\x12\x39\n\ncommit_fee\x18\x45 \x01(\x0b\x32 .cln.ListconfigsConfigsCommitfeeHD\x88\x01\x01\x12N\n\x15\x63ommit_feerate_offset\x18\x46 \x01(\x0b\x32*.cln.ListconfigsConfigsCommitfeerateoffsetHE\x88\x01\x01\x12T\n\x18\x61utoconnect_seeker_peers\x18G \x01(\x0b\x32-.cln.ListconfigsConfigsAutoconnectseekerpeersHF\x88\x01\x01\x42\x07\n\x05_confB\x0c\n\n_developerB\x10\n\x0e_clear_pluginsB\x0e\n\x0c_disable_mppB\n\n\x08_mainnetB\n\n\x08_regtestB\t\n\x07_signetB\n\n\x08_testnetB\x13\n\x11_important_pluginB\t\n\x07_pluginB\r\n\x0b_plugin_dirB\x10\n\x0e_lightning_dirB\n\n\x08_networkB\x18\n\x16_allow_deprecated_apisB\x0b\n\t_rpc_fileB\x11\n\x0f_disable_pluginB\x13\n\x11_always_use_proxyB\t\n\x07_daemonB\t\n\x07_walletB\x11\n\x0f_large_channelsB\x19\n\x17_experimental_dual_fundB\x18\n\x16_experimental_splicingB\x1e\n\x1c_experimental_onion_messagesB\x16\n\x14_experimental_offersB&\n$_experimental_shutdown_wrong_fundingB\x1c\n\x1a_experimental_peer_storageB\x17\n\x15_experimental_anchorsB\x13\n\x11_database_upgradeB\x06\n\x04_rgbB\x08\n\x06_aliasB\x0b\n\t_pid_fileB\x14\n\x12_ignore_fee_limitsB\x13\n\x11_watchtime_blocksB\x16\n\x14_max_locktime_blocksB\x13\n\x11_funding_confirmsB\r\n\x0b_cltv_deltaB\r\n\x0b_cltv_finalB\x0e\n\x0c_commit_timeB\x0b\n\t_fee_baseB\t\n\x07_rescanB\x12\n\x10_fee_per_satoshiB\x17\n\x15_max_concurrent_htlcsB\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x1e\n\x1c_max_dust_htlc_exposure_msatB\x13\n\x11_min_capacity_satB\x07\n\x05_addrB\x10\n\x0e_announce_addrB\x0c\n\n_bind_addrB\n\n\x08_offlineB\r\n\x0b_autolistenB\x08\n\x06_proxyB\x0e\n\x0c_disable_dnsB\x1b\n\x19_announce_addr_discoveredB \n\x1e_announce_addr_discovered_portB\x10\n\x0e_encrypted_hsmB\x10\n\x0e_rpc_file_modeB\x0c\n\n_log_levelB\r\n\x0b_log_prefixB\x0b\n\t_log_fileB\x11\n\x0f_log_timestampsB\x11\n\x0f_force_feeratesB\x0c\n\n_subdaemonB\x19\n\x17_fetchinvoice_noconnectB\x18\n\x16_accept_htlc_tlv_typesB\x17\n\x15_tor_service_passwordB\x14\n\x12_announce_addr_dnsB\x1b\n\x19_require_confirmed_inputsB\r\n\x0b_commit_feeB\x18\n\x16_commit_feerate_offsetB\x1b\n\x19_autoconnect_seeker_peers\"\xa2\x01\n\x16ListconfigsConfigsConf\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12H\n\x06source\x18\x02 \x01(\x0e\x32\x38.cln.ListconfigsConfigsConf.ListconfigsConfigsConfSource\"+\n\x1cListconfigsConfigsConfSource\x12\x0b\n\x07\x43MDLINE\x10\x00\":\n\x1bListconfigsConfigsDeveloper\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"=\n\x1eListconfigsConfigsClearplugins\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"[\n\x1cListconfigsConfigsDisablempp\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x13\n\x06plugin\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_plugin\"8\n\x19ListconfigsConfigsMainnet\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"8\n\x19ListconfigsConfigsRegtest\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"7\n\x18ListconfigsConfigsSignet\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"8\n\x19ListconfigsConfigsTestnet\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"H\n!ListconfigsConfigsImportantplugin\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"?\n\x18ListconfigsConfigsPlugin\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"B\n\x1bListconfigsConfigsPlugindir\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"C\n\x1eListconfigsConfigsLightningdir\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\">\n\x19ListconfigsConfigsNetwork\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"K\n%ListconfigsConfigsAllowdeprecatedapis\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\">\n\x19ListconfigsConfigsRpcfile\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"F\n\x1fListconfigsConfigsDisableplugin\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"F\n ListconfigsConfigsAlwaysuseproxy\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"7\n\x18ListconfigsConfigsDaemon\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"=\n\x18ListconfigsConfigsWallet\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\">\n\x1fListconfigsConfigsLargechannels\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"E\n&ListconfigsConfigsExperimentaldualfund\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"E\n&ListconfigsConfigsExperimentalsplicing\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"J\n+ListconfigsConfigsExperimentalonionmessages\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"C\n$ListconfigsConfigsExperimentaloffers\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"Q\n2ListconfigsConfigsExperimentalshutdownwrongfunding\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"H\n)ListconfigsConfigsExperimentalpeerstorage\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"D\n%ListconfigsConfigsExperimentalanchors\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"G\n!ListconfigsConfigsDatabaseupgrade\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\":\n\x15ListconfigsConfigsRgb\x12\x11\n\tvalue_str\x18\x01 \x01(\x0c\x12\x0e\n\x06source\x18\x02 \x01(\t\"<\n\x17ListconfigsConfigsAlias\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\">\n\x19ListconfigsConfigsPidfile\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"G\n!ListconfigsConfigsIgnorefeelimits\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"F\n!ListconfigsConfigsWatchtimeblocks\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"H\n#ListconfigsConfigsMaxlocktimeblocks\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"F\n!ListconfigsConfigsFundingconfirms\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"@\n\x1bListconfigsConfigsCltvdelta\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"@\n\x1bListconfigsConfigsCltvfinal\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"A\n\x1cListconfigsConfigsCommittime\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\">\n\x19ListconfigsConfigsFeebase\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"=\n\x18ListconfigsConfigsRescan\x12\x11\n\tvalue_int\x18\x01 \x01(\x12\x12\x0e\n\x06source\x18\x02 \x01(\t\"D\n\x1fListconfigsConfigsFeepersatoshi\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"I\n$ListconfigsConfigsMaxconcurrenthtlcs\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"T\n!ListconfigsConfigsHtlcminimummsat\x12\x1f\n\nvalue_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x0e\n\x06source\x18\x02 \x01(\t\"T\n!ListconfigsConfigsHtlcmaximummsat\x12\x1f\n\nvalue_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x0e\n\x06source\x18\x02 \x01(\t\"\\\n)ListconfigsConfigsMaxdusthtlcexposuremsat\x12\x1f\n\nvalue_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x0e\n\x06source\x18\x02 \x01(\t\"g\n ListconfigsConfigsMincapacitysat\x12\x11\n\tvalue_int\x18\x01 \x01(\x04\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x14\n\x07\x64ynamic\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_dynamic\"=\n\x16ListconfigsConfigsAddr\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"E\n\x1eListconfigsConfigsAnnounceaddr\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"A\n\x1aListconfigsConfigsBindaddr\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"8\n\x19ListconfigsConfigsOffline\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"B\n\x1cListconfigsConfigsAutolisten\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"<\n\x17ListconfigsConfigsProxy\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\";\n\x1cListconfigsConfigsDisabledns\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"\x82\x02\n(ListconfigsConfigsAnnounceaddrdiscovered\x12r\n\tvalue_str\x18\x01 \x01(\x0e\x32_.cln.ListconfigsConfigsAnnounceaddrdiscovered.ListconfigsConfigsAnnounceaddrdiscoveredValue_str\x12\x0e\n\x06source\x18\x02 \x01(\t\"R\n1ListconfigsConfigsAnnounceaddrdiscoveredValue_str\x12\x08\n\x04TRUE\x10\x00\x12\t\n\x05\x46\x41LSE\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\"Q\n,ListconfigsConfigsAnnounceaddrdiscoveredport\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"=\n\x1eListconfigsConfigsEncryptedhsm\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"B\n\x1dListconfigsConfigsRpcfilemode\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"?\n\x1aListconfigsConfigsLoglevel\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"@\n\x1bListconfigsConfigsLogprefix\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"@\n\x19ListconfigsConfigsLogfile\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"E\n\x1fListconfigsConfigsLogtimestamps\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"D\n\x1fListconfigsConfigsForcefeerates\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"B\n\x1bListconfigsConfigsSubdaemon\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"f\n\'ListconfigsConfigsFetchinvoicenoconnect\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x13\n\x06plugin\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_plugin\"I\n$ListconfigsConfigsAccepthtlctlvtypes\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"I\n$ListconfigsConfigsTorservicepassword\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"G\n!ListconfigsConfigsAnnounceaddrdns\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"N\n(ListconfigsConfigsRequireconfirmedinputs\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"@\n\x1bListconfigsConfigsCommitfee\x12\x11\n\tvalue_int\x18\x01 \x01(\x04\x12\x0e\n\x06source\x18\x02 \x01(\t\"J\n%ListconfigsConfigsCommitfeerateoffset\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"M\n(ListconfigsConfigsAutoconnectseekerpeers\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"r\n\x12ListconfigsPlugins\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x34\n\x07options\x18\x03 \x01(\x0b\x32\x1e.cln.ListconfigsPluginsOptionsH\x00\x88\x01\x01\x42\n\n\x08_options\"\x1b\n\x19ListconfigsPluginsOptions\"\x84\x01\n\x1bListconfigsImportantplugins\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12=\n\x07options\x18\x03 \x01(\x0b\x32\'.cln.ListconfigsImportantpluginsOptionsH\x00\x88\x01\x01\x42\n\n\x08_options\"$\n\"ListconfigsImportantpluginsOptions\"\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\"/\n\x0bHelpRequest\x12\x14\n\x07\x63ommand\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_command\"\x95\x01\n\x0cHelpResponse\x12\x1b\n\x04help\x18\x01 \x03(\x0b\x32\r.cln.HelpHelp\x12:\n\x0b\x66ormat_hint\x18\x02 \x01(\x0e\x32 .cln.HelpResponse.HelpFormathintH\x00\x88\x01\x01\"\x1c\n\x0eHelpFormathint\x12\n\n\x06SIMPLE\x10\x00\x42\x0e\n\x0c_format_hint\"\x1b\n\x08HelpHelp\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\"g\n\x18PreapprovekeysendRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\x0c\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\"\x1b\n\x19PreapprovekeysendResponse\"*\n\x18PreapproveinvoiceRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\"\x1b\n\x19PreapproveinvoiceResponse\"\x15\n\x13StaticbackupRequest\"#\n\x14StaticbackupResponse\x12\x0b\n\x03scb\x18\x01 \x03(\x0c\"d\n\x16\x42kprchannelsapyRequest\x12\x17\n\nstart_time\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_time\"Q\n\x17\x42kprchannelsapyResponse\x12\x36\n\x0c\x63hannels_apy\x18\x01 \x03(\x0b\x32 .cln.BkprchannelsapyChannels_apy\"\xfa\x06\n\x1b\x42kprchannelsapyChannels_apy\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12$\n\x0frouted_out_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0erouted_in_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12(\n\x13lease_fee_paid_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12*\n\x15lease_fee_earned_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12$\n\x0fpushed_out_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0epushed_in_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12+\n\x16our_start_balance_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12/\n\x1a\x63hannel_start_balance_msat\x18\t \x01(\x0b\x32\x0b.cln.Amount\x12\"\n\rfees_out_msat\x18\n \x01(\x0b\x32\x0b.cln.Amount\x12&\n\x0c\x66\x65\x65s_in_msat\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x17\n\x0futilization_out\x18\x0c \x01(\t\x12$\n\x17utilization_out_initial\x18\r \x01(\tH\x01\x88\x01\x01\x12\x16\n\x0eutilization_in\x18\x0e \x01(\t\x12#\n\x16utilization_in_initial\x18\x0f \x01(\tH\x02\x88\x01\x01\x12\x0f\n\x07\x61py_out\x18\x10 \x01(\t\x12\x1c\n\x0f\x61py_out_initial\x18\x11 \x01(\tH\x03\x88\x01\x01\x12\x0e\n\x06\x61py_in\x18\x12 \x01(\t\x12\x1b\n\x0e\x61py_in_initial\x18\x13 \x01(\tH\x04\x88\x01\x01\x12\x11\n\tapy_total\x18\x14 \x01(\t\x12\x1e\n\x11\x61py_total_initial\x18\x15 \x01(\tH\x05\x88\x01\x01\x12\x16\n\tapy_lease\x18\x16 \x01(\tH\x06\x88\x01\x01\x42\x0f\n\r_fees_in_msatB\x1a\n\x18_utilization_out_initialB\x19\n\x17_utilization_in_initialB\x12\n\x10_apy_out_initialB\x11\n\x0f_apy_in_initialB\x14\n\x12_apy_total_initialB\x0c\n\n_apy_lease\"\xd2\x01\n\x18\x42kprdumpincomecsvRequest\x12\x12\n\ncsv_format\x18\x01 \x01(\t\x12\x15\n\x08\x63sv_file\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10\x63onsolidate_fees\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x17\n\nstart_time\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x05 \x01(\x04H\x03\x88\x01\x01\x42\x0b\n\t_csv_fileB\x13\n\x11_consolidate_feesB\r\n\x0b_start_timeB\x0b\n\t_end_time\"\xd6\x01\n\x19\x42kprdumpincomecsvResponse\x12\x10\n\x08\x63sv_file\x18\x01 \x01(\t\x12N\n\ncsv_format\x18\x02 \x01(\x0e\x32:.cln.BkprdumpincomecsvResponse.BkprdumpincomecsvCsv_format\"W\n\x1b\x42kprdumpincomecsvCsv_format\x12\x0f\n\x0b\x43OINTRACKER\x10\x00\x12\n\n\x06KOINLY\x10\x01\x12\x0b\n\x07HARMONY\x10\x02\x12\x0e\n\nQUICKBOOKS\x10\x03\"%\n\x12\x42kprinspectRequest\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\"7\n\x13\x42kprinspectResponse\x12 \n\x03txs\x18\x01 \x03(\x0b\x32\x13.cln.BkprinspectTxs\"\x9a\x01\n\x0e\x42kprinspectTxs\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x18\n\x0b\x62lockheight\x18\x02 \x01(\rH\x00\x88\x01\x01\x12#\n\x0e\x66\x65\x65s_paid_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12+\n\x07outputs\x18\x04 \x03(\x0b\x32\x1a.cln.BkprinspectTxsOutputsB\x0e\n\x0c_blockheight\"\xbc\x03\n\x15\x42kprinspectTxsOutputs\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x0e\n\x06outnum\x18\x02 \x01(\r\x12&\n\x11output_value_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x10\n\x08\x63urrency\x18\x04 \x01(\t\x12%\n\x0b\x63redit_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12$\n\ndebit_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12 \n\x13originating_account\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x17\n\noutput_tag\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x16\n\tspend_tag\x18\t \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rspending_txid\x18\n \x01(\x0cH\x05\x88\x01\x01\x12\x17\n\npayment_id\x18\x0b \x01(\x0cH\x06\x88\x01\x01\x42\x0e\n\x0c_credit_msatB\r\n\x0b_debit_msatB\x16\n\x14_originating_accountB\r\n\x0b_output_tagB\x0c\n\n_spend_tagB\x10\n\x0e_spending_txidB\r\n\x0b_payment_id\"h\n\x1c\x42kprlistaccounteventsRequest\x12\x14\n\x07\x61\x63\x63ount\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\npayment_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_accountB\r\n\x0b_payment_id\"Q\n\x1d\x42kprlistaccounteventsResponse\x12\x30\n\x06\x65vents\x18\x01 \x03(\x0b\x32 .cln.BkprlistaccounteventsEvents\"\xa1\x05\n\x1b\x42kprlistaccounteventsEvents\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12S\n\titem_type\x18\x02 \x01(\x0e\x32@.cln.BkprlistaccounteventsEvents.BkprlistaccounteventsEventsType\x12\x0b\n\x03tag\x18\x03 \x01(\t\x12 \n\x0b\x63redit_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x1f\n\ndebit_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x10\n\x08\x63urrency\x18\x06 \x01(\t\x12\x11\n\ttimestamp\x18\x07 \x01(\r\x12\x15\n\x08outpoint\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x62lockheight\x18\t \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06origin\x18\n \x01(\tH\x02\x88\x01\x01\x12\x17\n\npayment_id\x18\x0b \x01(\x0cH\x03\x88\x01\x01\x12\x11\n\x04txid\x18\x0c \x01(\x0cH\x04\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\r \x01(\tH\x05\x88\x01\x01\x12#\n\tfees_msat\x18\x0e \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x19\n\x0cis_rebalance\x18\x0f \x01(\x08H\x07\x88\x01\x01\x12\x14\n\x07part_id\x18\x10 \x01(\rH\x08\x88\x01\x01\"J\n\x1f\x42kprlistaccounteventsEventsType\x12\x0f\n\x0bONCHAIN_FEE\x10\x00\x12\t\n\x05\x43HAIN\x10\x01\x12\x0b\n\x07\x43HANNEL\x10\x02\x42\x0b\n\t_outpointB\x0e\n\x0c_blockheightB\t\n\x07_originB\r\n\x0b_payment_idB\x07\n\x05_txidB\x0e\n\x0c_descriptionB\x0c\n\n_fees_msatB\x0f\n\r_is_rebalanceB\n\n\x08_part_id\"\x19\n\x17\x42kprlistbalancesRequest\"K\n\x18\x42kprlistbalancesResponse\x12/\n\x08\x61\x63\x63ounts\x18\x01 \x03(\x0b\x32\x1d.cln.BkprlistbalancesAccounts\"\xc6\x02\n\x18\x42kprlistbalancesAccounts\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x37\n\x08\x62\x61lances\x18\x02 \x03(\x0b\x32%.cln.BkprlistbalancesAccountsBalances\x12\x14\n\x07peer_id\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x16\n\twe_opened\x18\x04 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0e\x61\x63\x63ount_closed\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x61\x63\x63ount_resolved\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x11resolved_at_block\x18\x07 \x01(\rH\x04\x88\x01\x01\x42\n\n\x08_peer_idB\x0c\n\n_we_openedB\x11\n\x0f_account_closedB\x13\n\x11_account_resolvedB\x14\n\x12_resolved_at_block\"X\n BkprlistbalancesAccountsBalances\x12!\n\x0c\x62\x61lance_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x11\n\tcoin_type\x18\x02 \x01(\t\"\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_id\"N\n\x14\x42lacklistruneRequest\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_end\"G\n\x15\x42lacklistruneResponse\x12.\n\tblacklist\x18\x01 \x03(\x0b\x32\x1b.cln.BlacklistruneBlacklist\"4\n\x16\x42lacklistruneBlacklist\x12\r\n\x05start\x18\x01 \x01(\x04\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x04\"p\n\x10\x43heckruneRequest\x12\x0c\n\x04rune\x18\x01 \x01(\t\x12\x13\n\x06nodeid\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06method\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06params\x18\x04 \x03(\tB\t\n\x07_nodeidB\t\n\x07_method\"\"\n\x11\x43heckruneResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\"E\n\x11\x43reateruneRequest\x12\x11\n\x04rune\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x0crestrictions\x18\x02 \x03(\tB\x07\n\x05_rune\"{\n\x12\x43reateruneResponse\x12\x0c\n\x04rune\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12&\n\x19warning_unrestricted_rune\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x1c\n\x1a_warning_unrestricted_rune\".\n\x10ShowrunesRequest\x12\x11\n\x04rune\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_rune\"7\n\x11ShowrunesResponse\x12\"\n\x05runes\x18\x01 \x03(\x0b\x32\x13.cln.ShowrunesRunes\"\x9d\x02\n\x0eShowrunesRunes\x12\x0c\n\x04rune\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x35\n\x0crestrictions\x18\x03 \x03(\x0b\x32\x1f.cln.ShowrunesRunesRestrictions\x12\x1f\n\x17restrictions_as_english\x18\x04 \x01(\t\x12\x13\n\x06stored\x18\x05 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0b\x62lacklisted\x18\x06 \x01(\x08H\x01\x88\x01\x01\x12\x16\n\tlast_used\x18\x07 \x01(\x01H\x02\x88\x01\x01\x12\x15\n\x08our_rune\x18\x08 \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_storedB\x0e\n\x0c_blacklistedB\x0c\n\n_last_usedB\x0b\n\t_our_rune\"p\n\x1aShowrunesRunesRestrictions\x12\x41\n\x0c\x61lternatives\x18\x01 \x03(\x0b\x32+.cln.ShowrunesRunesRestrictionsAlternatives\x12\x0f\n\x07\x65nglish\x18\x02 \x01(\t\"n\n&ShowrunesRunesRestrictionsAlternatives\x12\x11\n\tfieldname\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x11\n\tcondition\x18\x03 \x01(\t\x12\x0f\n\x07\x65nglish\x18\x04 \x01(\t\"\x19\n\x17StreamBlockAddedRequest\"6\n\x16\x42lockAddedNotification\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x0e\n\x06height\x18\x02 \x01(\r\" \n\x1eStreamChannelOpenFailedRequest\"3\n\x1d\x43hannelOpenFailedNotification\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\"\x1c\n\x1aStreamChannelOpenedRequest\"w\n\x19\x43hannelOpenedNotification\x12\n\n\x02id\x18\x01 \x01(\x0c\x12!\n\x0c\x66unding_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0c\x66unding_txid\x18\x03 \x01(\x0c\x12\x15\n\rchannel_ready\x18\x04 \x01(\x08\"\x16\n\x14StreamConnectRequest\"\xbe\x01\n\x17PeerConnectNotification\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x44\n\tdirection\x18\x02 \x01(\x0e\x32\x31.cln.PeerConnectNotification.PeerConnectDirection\x12(\n\x07\x61\x64\x64ress\x18\x03 \x01(\x0b\x32\x17.cln.PeerConnectAddress\"\'\n\x14PeerConnectDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\"\x8b\x02\n\x12PeerConnectAddress\x12\x41\n\titem_type\x18\x01 \x01(\x0e\x32..cln.PeerConnectAddress.PeerConnectAddressType\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\"T\n\x16PeerConnectAddressType\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\"\x18\n\x16StreamCustomMsgRequest\"9\n\x15\x43ustomMsgNotification\x12\x0f\n\x07peer_id\x18\x01 \x01(\x0c\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x32\xcb?\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\x12H\n\rAddPsbtOutput\x12\x19.cln.AddpsbtoutputRequest\x1a\x1a.cln.AddpsbtoutputResponse\"\x00\x12H\n\rAutoCleanOnce\x12\x19.cln.AutocleanonceRequest\x1a\x1a.cln.AutocleanonceResponse\"\x00\x12N\n\x0f\x41utoCleanStatus\x12\x1b.cln.AutocleanstatusRequest\x1a\x1c.cln.AutocleanstatusResponse\"\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\x12?\n\nDelInvoice\x12\x16.cln.DelinvoiceRequest\x1a\x17.cln.DelinvoiceResponse\"\x00\x12Q\n\x10\x44\x65vForgetChannel\x12\x1c.cln.DevforgetchannelRequest\x1a\x1d.cln.DevforgetchannelResponse\"\x00\x12Q\n\x10\x45mergencyRecover\x12\x1c.cln.EmergencyrecoverRequest\x1a\x1d.cln.EmergencyrecoverResponse\"\x00\x12\x36\n\x07Recover\x12\x13.cln.RecoverRequest\x1a\x14.cln.RecoverResponse\"\x00\x12K\n\x0eRecoverChannel\x12\x1a.cln.RecoverchannelRequest\x1a\x1b.cln.RecoverchannelResponse\"\x00\x12\x36\n\x07Invoice\x12\x13.cln.InvoiceRequest\x1a\x14.cln.InvoiceResponse\"\x00\x12Q\n\x14\x43reateInvoiceRequest\x12\x1a.cln.InvoicerequestRequest\x1a\x1b.cln.InvoicerequestResponse\"\x00\x12`\n\x15\x44isableInvoiceRequest\x12!.cln.DisableinvoicerequestRequest\x1a\".cln.DisableinvoicerequestResponse\"\x00\x12Z\n\x13ListInvoiceRequests\x12\x1f.cln.ListinvoicerequestsRequest\x1a .cln.ListinvoicerequestsResponse\"\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\nMakeSecret\x12\x16.cln.MakesecretRequest\x1a\x17.cln.MakesecretResponse\"\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\x33\n\x06\x44\x65lPay\x12\x12.cln.DelpayRequest\x1a\x13.cln.DelpayResponse\"\x00\x12?\n\nDelForward\x12\x16.cln.DelforwardRequest\x1a\x17.cln.DelforwardResponse\"\x00\x12\x45\n\x0c\x44isableOffer\x12\x18.cln.DisableofferRequest\x1a\x19.cln.DisableofferResponse\"\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\x12W\n\x12\x46undChannel_Cancel\x12\x1e.cln.Fundchannel_cancelRequest\x1a\x1f.cln.Fundchannel_cancelResponse\"\x00\x12]\n\x14\x46undChannel_Complete\x12 .cln.Fundchannel_completeRequest\x1a!.cln.Fundchannel_completeResponse\"\x00\x12\x42\n\x0b\x46undChannel\x12\x17.cln.FundchannelRequest\x1a\x18.cln.FundchannelResponse\"\x00\x12T\n\x11\x46undChannel_Start\x12\x1d.cln.Fundchannel_startRequest\x1a\x1e.cln.Fundchannel_startResponse\"\x00\x12\x33\n\x06GetLog\x12\x12.cln.GetlogRequest\x1a\x13.cln.GetlogResponse\"\x00\x12\x45\n\x0c\x46underUpdate\x12\x18.cln.FunderupdateRequest\x1a\x19.cln.FunderupdateResponse\"\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\x12Q\n\x10MultiFundChannel\x12\x1c.cln.MultifundchannelRequest\x1a\x1d.cln.MultifundchannelResponse\"\x00\x12H\n\rMultiWithdraw\x12\x19.cln.MultiwithdrawRequest\x1a\x1a.cln.MultiwithdrawResponse\"\x00\x12\x30\n\x05Offer\x12\x11.cln.OfferRequest\x1a\x12.cln.OfferResponse\"\x00\x12T\n\x11OpenChannel_Abort\x12\x1d.cln.Openchannel_abortRequest\x1a\x1e.cln.Openchannel_abortResponse\"\x00\x12Q\n\x10OpenChannel_Bump\x12\x1c.cln.Openchannel_bumpRequest\x1a\x1d.cln.Openchannel_bumpResponse\"\x00\x12Q\n\x10OpenChannel_Init\x12\x1c.cln.Openchannel_initRequest\x1a\x1d.cln.Openchannel_initResponse\"\x00\x12W\n\x12OpenChannel_Signed\x12\x1e.cln.Openchannel_signedRequest\x1a\x1f.cln.Openchannel_signedResponse\"\x00\x12W\n\x12OpenChannel_Update\x12\x1e.cln.Openchannel_updateRequest\x1a\x1f.cln.Openchannel_updateResponse\"\x00\x12-\n\x04Ping\x12\x10.cln.PingRequest\x1a\x11.cln.PingResponse\"\x00\x12\x33\n\x06Plugin\x12\x12.cln.PluginRequest\x1a\x13.cln.PluginResponse\"\x00\x12H\n\rRenePayStatus\x12\x19.cln.RenepaystatusRequest\x1a\x1a.cln.RenepaystatusResponse\"\x00\x12\x36\n\x07RenePay\x12\x13.cln.RenepayRequest\x1a\x14.cln.RenepayResponse\"\x00\x12H\n\rReserveInputs\x12\x19.cln.ReserveinputsRequest\x1a\x1a.cln.ReserveinputsResponse\"\x00\x12H\n\rSendCustomMsg\x12\x19.cln.SendcustommsgRequest\x1a\x1a.cln.SendcustommsgResponse\"\x00\x12\x42\n\x0bSendInvoice\x12\x17.cln.SendinvoiceRequest\x1a\x18.cln.SendinvoiceResponse\"\x00\x12?\n\nSetChannel\x12\x16.cln.SetchannelRequest\x1a\x17.cln.SetchannelResponse\"\x00\x12<\n\tSetConfig\x12\x15.cln.SetconfigRequest\x1a\x16.cln.SetconfigResponse\"\x00\x12K\n\x0eSetPsbtVersion\x12\x1a.cln.SetpsbtversionRequest\x1a\x1b.cln.SetpsbtversionResponse\"\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\x12\x42\n\x0bSplice_Init\x12\x17.cln.Splice_initRequest\x1a\x18.cln.Splice_initResponse\"\x00\x12H\n\rSplice_Signed\x12\x19.cln.Splice_signedRequest\x1a\x1a.cln.Splice_signedResponse\"\x00\x12H\n\rSplice_Update\x12\x19.cln.Splice_updateRequest\x1a\x1a.cln.Splice_updateResponse\"\x00\x12N\n\x0fUnreserveInputs\x12\x1b.cln.UnreserveinputsRequest\x1a\x1c.cln.UnreserveinputsResponse\"\x00\x12H\n\rUpgradeWallet\x12\x19.cln.UpgradewalletRequest\x1a\x1a.cln.UpgradewalletResponse\"\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\x42\n\x0bListConfigs\x12\x17.cln.ListconfigsRequest\x1a\x18.cln.ListconfigsResponse\"\x00\x12-\n\x04Stop\x12\x10.cln.StopRequest\x1a\x11.cln.StopResponse\"\x00\x12-\n\x04Help\x12\x10.cln.HelpRequest\x1a\x11.cln.HelpResponse\"\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\x12N\n\x0f\x42kprChannelsApy\x12\x1b.cln.BkprchannelsapyRequest\x1a\x1c.cln.BkprchannelsapyResponse\"\x00\x12T\n\x11\x42kprDumpIncomeCsv\x12\x1d.cln.BkprdumpincomecsvRequest\x1a\x1e.cln.BkprdumpincomecsvResponse\"\x00\x12\x42\n\x0b\x42kprInspect\x12\x17.cln.BkprinspectRequest\x1a\x18.cln.BkprinspectResponse\"\x00\x12`\n\x15\x42kprListAccountEvents\x12!.cln.BkprlistaccounteventsRequest\x1a\".cln.BkprlistaccounteventsResponse\"\x00\x12Q\n\x10\x42kprListBalances\x12\x1c.cln.BkprlistbalancesRequest\x1a\x1d.cln.BkprlistbalancesResponse\"\x00\x12K\n\x0e\x42kprListIncome\x12\x1a.cln.BkprlistincomeRequest\x1a\x1b.cln.BkprlistincomeResponse\"\x00\x12H\n\rBlacklistRune\x12\x19.cln.BlacklistruneRequest\x1a\x1a.cln.BlacklistruneResponse\"\x00\x12<\n\tCheckRune\x12\x15.cln.CheckruneRequest\x1a\x16.cln.CheckruneResponse\"\x00\x12?\n\nCreateRune\x12\x16.cln.CreateruneRequest\x1a\x17.cln.CreateruneResponse\"\x00\x12<\n\tShowRunes\x12\x15.cln.ShowrunesRequest\x1a\x16.cln.ShowrunesResponse\"\x00\x12T\n\x13SubscribeBlockAdded\x12\x1c.cln.StreamBlockAddedRequest\x1a\x1b.cln.BlockAddedNotification\"\x00\x30\x01\x12i\n\x1aSubscribeChannelOpenFailed\x12#.cln.StreamChannelOpenFailedRequest\x1a\".cln.ChannelOpenFailedNotification\"\x00\x30\x01\x12]\n\x16SubscribeChannelOpened\x12\x1f.cln.StreamChannelOpenedRequest\x1a\x1e.cln.ChannelOpenedNotification\"\x00\x30\x01\x12O\n\x10SubscribeConnect\x12\x19.cln.StreamConnectRequest\x1a\x1c.cln.PeerConnectNotification\"\x00\x30\x01\x12Q\n\x12SubscribeCustomMsg\x12\x1b.cln.StreamCustomMsgRequest\x1a\x1a.cln.CustomMsgNotification\"\x00\x30\x01\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\"\xac\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\x12\x14\n\x07subtype\x18\x05 \x01(\tH\x03\x88\x01\x01\"_\n\x12GetinfoBindingType\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\x12\r\n\tWEBSOCKET\x10\x05\x42\n\n\x08_addressB\x07\n\x05_portB\t\n\x07_socketB\n\n\x08_subtype\"\xb5\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\"E\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\x12\t\n\x05TRACE\x10\x04\x42\x05\n\x03_idB\x08\n\x06_level\"7\n\x11ListpeersResponse\x12\"\n\x05peers\x18\x01 \x03(\x0b\x32\x13.cln.ListpeersPeers\"\xdf\x01\n\x0eListpeersPeers\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x11\n\tconnected\x18\x02 \x01(\x08\x12#\n\x03log\x18\x03 \x03(\x0b\x32\x16.cln.ListpeersPeersLog\x12\x0f\n\x07netaddr\x18\x05 \x03(\t\x12\x15\n\x08\x66\x65\x61tures\x18\x06 \x01(\x0cH\x00\x88\x01\x01\x12\x18\n\x0bremote_addr\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cnum_channels\x18\x08 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_featuresB\x0e\n\x0c_remote_addrB\x0f\n\r_num_channels\"\x88\x03\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\"t\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\x12\t\n\x05TRACE\x10\x07\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\"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\"\xb9\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\x18\n\x0b\x62lockheight\x18\x08 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x08reserved\x18\t \x01(\x08\x12\x1e\n\x11reserved_to_block\x18\n \x01(\rH\x03\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_blockheightB\x14\n\x12_reserved_to_block\"\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\x1d\n\x10short_channel_id\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nchannel_id\x18\t \x01(\x0cH\x01\x88\x01\x01\x42\x13\n\x11_short_channel_idB\r\n\x0b_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\x13\n\x06\x62olt11\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0epayment_secret\x18\x06 \x01(\x0cH\x02\x88\x01\x01\x12\x13\n\x06partid\x18\x07 \x01(\x04H\x03\x88\x01\x01\x12\x14\n\x07groupid\x18\t \x01(\x04H\x04\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\x0b \x01(\x0cH\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\t\n\x07_bolt11B\x11\n\x0f_payment_secretB\t\n\x07_partidB\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x10\n\x0e_localinvreqidB\x13\n\x11_payment_metadataB\x0e\n\x0c_description\"\xad\x05\n\x0fSendpayResponse\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x07groupid\x18\x02 \x01(\x04H\x00\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\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x02\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\x03\x88\x01\x01\x12\x13\n\x06partid\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0b \x01(\tH\x05\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0c \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\x07\x88\x01\x01\x12\x14\n\x07message\x18\x0e \x01(\tH\x08\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x0f \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x0b\x88\x01\x01\"*\n\rSendpayStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x42\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\n\n\x08_messageB\x0f\n\r_completed_atB\x10\n\x0e_created_indexB\x10\n\x0e_updated_index\"\\\n\x0cSendpayRoute\x12\n\n\x02id\x18\x02 \x01(\x0c\x12\r\n\x05\x64\x65lay\x18\x03 \x01(\r\x12\x0f\n\x07\x63hannel\x18\x04 \x01(\t\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\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\x12\x11\n\tdirection\x18\x10 \x01(\rB\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\"\xac\x01\n\x14\x41\x64\x64psbtoutputRequest\x12\x1c\n\x07satoshi\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x15\n\x08locktime\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0binitialpsbt\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_locktimeB\x0e\n\x0c_initialpsbtB\x0e\n\x0c_destination\"U\n\x15\x41\x64\x64psbtoutputResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x1e\n\x16\x65stimated_added_weight\x18\x02 \x01(\r\x12\x0e\n\x06outnum\x18\x03 \x01(\r\"O\n\x14\x41utocleanonceRequest\x12*\n\tsubsystem\x18\x01 \x01(\x0e\x32\x17.cln.AutocleanSubsystem\x12\x0b\n\x03\x61ge\x18\x02 \x01(\x04\"G\n\x15\x41utocleanonceResponse\x12.\n\tautoclean\x18\x01 \x01(\x0b\x32\x1b.cln.AutocleanonceAutoclean\"\xb1\x04\n\x16\x41utocleanonceAutoclean\x12L\n\x11succeededforwards\x18\x01 \x01(\x0b\x32,.cln.AutocleanonceAutocleanSucceededforwardsH\x00\x88\x01\x01\x12\x46\n\x0e\x66\x61iledforwards\x18\x02 \x01(\x0b\x32).cln.AutocleanonceAutocleanFailedforwardsH\x01\x88\x01\x01\x12\x44\n\rsucceededpays\x18\x03 \x01(\x0b\x32(.cln.AutocleanonceAutocleanSucceededpaysH\x02\x88\x01\x01\x12>\n\nfailedpays\x18\x04 \x01(\x0b\x32%.cln.AutocleanonceAutocleanFailedpaysH\x03\x88\x01\x01\x12\x42\n\x0cpaidinvoices\x18\x05 \x01(\x0b\x32\'.cln.AutocleanonceAutocleanPaidinvoicesH\x04\x88\x01\x01\x12H\n\x0f\x65xpiredinvoices\x18\x06 \x01(\x0b\x32*.cln.AutocleanonceAutocleanExpiredinvoicesH\x05\x88\x01\x01\x42\x14\n\x12_succeededforwardsB\x11\n\x0f_failedforwardsB\x10\n\x0e_succeededpaysB\r\n\x0b_failedpaysB\x0f\n\r_paidinvoicesB\x12\n\x10_expiredinvoices\"M\n\'AutocleanonceAutocleanSucceededforwards\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"J\n$AutocleanonceAutocleanFailedforwards\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"I\n#AutocleanonceAutocleanSucceededpays\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"F\n AutocleanonceAutocleanFailedpays\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"H\n\"AutocleanonceAutocleanPaidinvoices\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"K\n%AutocleanonceAutocleanExpiredinvoices\x12\x0f\n\x07\x63leaned\x18\x01 \x01(\x04\x12\x11\n\tuncleaned\x18\x02 \x01(\x04\"W\n\x16\x41utocleanstatusRequest\x12/\n\tsubsystem\x18\x01 \x01(\x0e\x32\x17.cln.AutocleanSubsystemH\x00\x88\x01\x01\x42\x0c\n\n_subsystem\"K\n\x17\x41utocleanstatusResponse\x12\x30\n\tautoclean\x18\x01 \x01(\x0b\x32\x1d.cln.AutocleanstatusAutoclean\"\xbf\x04\n\x18\x41utocleanstatusAutoclean\x12N\n\x11succeededforwards\x18\x01 \x01(\x0b\x32..cln.AutocleanstatusAutocleanSucceededforwardsH\x00\x88\x01\x01\x12H\n\x0e\x66\x61iledforwards\x18\x02 \x01(\x0b\x32+.cln.AutocleanstatusAutocleanFailedforwardsH\x01\x88\x01\x01\x12\x46\n\rsucceededpays\x18\x03 \x01(\x0b\x32*.cln.AutocleanstatusAutocleanSucceededpaysH\x02\x88\x01\x01\x12@\n\nfailedpays\x18\x04 \x01(\x0b\x32\'.cln.AutocleanstatusAutocleanFailedpaysH\x03\x88\x01\x01\x12\x44\n\x0cpaidinvoices\x18\x05 \x01(\x0b\x32).cln.AutocleanstatusAutocleanPaidinvoicesH\x04\x88\x01\x01\x12J\n\x0f\x65xpiredinvoices\x18\x06 \x01(\x0b\x32,.cln.AutocleanstatusAutocleanExpiredinvoicesH\x05\x88\x01\x01\x42\x14\n\x12_succeededforwardsB\x11\n\x0f_failedforwardsB\x10\n\x0e_succeededpaysB\r\n\x0b_failedpaysB\x0f\n\r_paidinvoicesB\x12\n\x10_expiredinvoices\"g\n)AutocleanstatusAutocleanSucceededforwards\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"d\n&AutocleanstatusAutocleanFailedforwards\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"c\n%AutocleanstatusAutocleanSucceededpays\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"`\n\"AutocleanstatusAutocleanFailedpays\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"b\n$AutocleanstatusAutocleanPaidinvoices\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"e\n\'AutocleanstatusAutocleanExpiredinvoices\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x0f\n\x07\x63leaned\x18\x02 \x01(\x04\x12\x10\n\x03\x61ge\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x06\n\x04_age\"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\"\xc7\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\x12\x0b\n\x03txs\x18\x04 \x03(\x0c\x12\r\n\x05txids\x18\x05 \x03(\x0c\"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\x16\n\tpay_index\x18\t \x01(\x04H\x03\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0b \x01(\x04H\x05\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\x06\x88\x01\x01\x12\x1b\n\x0elocal_offer_id\x18\r \x01(\x0cH\x07\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0f \x01(\tH\x08\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\t\x88\x01\x01\x12;\n\rpaid_outpoint\x18\x11 \x01(\x0b\x32\x1f.cln.CreateinvoicePaid_outpointH\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\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x13\n\x11_payment_preimageB\x11\n\x0f_local_offer_idB\x14\n\x12_invreq_payer_noteB\x10\n\x0e_created_indexB\x10\n\x0e_paid_outpoint\":\n\x1a\x43reateinvoicePaid_outpoint\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\"\xb4\x02\n\x10\x44\x61tastoreRequest\x12\x10\n\x03hex\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x36\n\x04mode\x18\x03 \x01(\x0e\x32#.cln.DatastoreRequest.DatastoreModeH\x01\x88\x01\x01\x12\x17\n\ngeneration\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x0b\n\x03key\x18\x05 \x03(\t\x12\x13\n\x06string\x18\x06 \x01(\tH\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\x06\n\x04_hexB\x07\n\x05_modeB\r\n\x0b_generationB\t\n\x07_string\"\x82\x01\n\x11\x44\x61tastoreResponse\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\x12\x0b\n\x03key\x18\x05 \x03(\tB\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"$\n\x15\x44\x61tastoreusageRequest\x12\x0b\n\x03key\x18\x01 \x03(\t\"S\n\x16\x44\x61tastoreusageResponse\x12\x39\n\x0e\x64\x61tastoreusage\x18\x01 \x01(\x0b\x32!.cln.DatastoreusageDatastoreusage\"@\n\x1c\x44\x61tastoreusageDatastoreusage\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x13\n\x0btotal_bytes\x18\x02 \x01(\x04\"\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\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x0b\n\x03key\x18\x03 \x03(\tB\r\n\x0b_generation\"\x85\x01\n\x14\x44\x65ldatastoreResponse\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\x12\x0b\n\x03key\x18\x05 \x03(\tB\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"\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\"\xe6\x05\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\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\x04\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0b \x01(\tH\x05\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x0c \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rupdated_index\x18\r \x01(\x04H\x07\x88\x01\x01\x12\x16\n\tpay_index\x18\x0e \x01(\x04H\x08\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\x0f \x01(\x0b\x32\x0b.cln.AmountH\t\x88\x01\x01\x12\x14\n\x07paid_at\x18\x10 \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x11 \x01(\x0cH\x0b\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\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\x13\n\x11_payment_preimage\"\x9f\x01\n\x17\x44\x65vforgetchannelRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x1d\n\x10short_channel_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nchannel_id\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x12\n\x05\x66orce\x18\x04 \x01(\x08H\x02\x88\x01\x01\x42\x13\n\x11_short_channel_idB\r\n\x0b_channel_idB\x08\n\x06_force\"Y\n\x18\x44\x65vforgetchannelResponse\x12\x0e\n\x06\x66orced\x18\x01 \x01(\x08\x12\x17\n\x0f\x66unding_unspent\x18\x02 \x01(\x08\x12\x14\n\x0c\x66unding_txid\x18\x03 \x01(\x0c\"\x19\n\x17\x45mergencyrecoverRequest\")\n\x18\x45mergencyrecoverResponse\x12\r\n\x05stubs\x18\x01 \x03(\x0c\" \n\x1eGetemergencyrecoverdataRequest\"3\n\x1fGetemergencyrecoverdataResponse\x12\x10\n\x08\x66iledata\x18\x01 \x01(\x0c\"Q\n\x13\x45xposesecretRequest\x12\x12\n\npassphrase\x18\x01 \x01(\t\x12\x17\n\nidentifier\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_identifier\";\n\x14\x45xposesecretResponse\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12\x0f\n\x07\x63odex32\x18\x02 \x01(\t\"#\n\x0eRecoverRequest\x12\x11\n\thsmsecret\x18\x01 \x01(\t\"\x88\x01\n\x0fRecoverResponse\x12\x37\n\x06result\x18\x01 \x01(\x0e\x32\".cln.RecoverResponse.RecoverResultH\x00\x88\x01\x01\"1\n\rRecoverResult\x12 \n\x1cRECOVERY_RESTART_IN_PROGRESS\x10\x00\x42\t\n\x07_result\"$\n\x15RecoverchannelRequest\x12\x0b\n\x03scb\x18\x01 \x03(\x0c\"\'\n\x16RecoverchannelResponse\x12\r\n\x05stubs\x18\x01 \x03(\t\"\x99\x02\n\x0eInvoiceRequest\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\x12\x11\n\tfallbacks\x18\x04 \x03(\t\x12\x15\n\x08preimage\x18\x05 \x01(\x0cH\x00\x88\x01\x01\x12\x11\n\x04\x63ltv\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06\x65xpiry\x18\x07 \x01(\x04H\x02\x88\x01\x01\x12\x1d\n\x15\x65xposeprivatechannels\x18\x08 \x03(\t\x12\x19\n\x0c\x64\x65schashonly\x18\t \x01(\x08H\x03\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x10.cln.AmountOrAnyB\x0b\n\t_preimageB\x07\n\x05_cltvB\t\n\x07_expiryB\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\x1d\n\x10warning_capacity\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x1c\n\x0fwarning_offline\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10warning_deadends\x18\x07 \x01(\tH\x02\x88\x01\x01\x12#\n\x16warning_private_unused\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x18\n\x0bwarning_mpp\x18\t \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rcreated_index\x18\n \x01(\x04H\x05\x88\x01\x01\x42\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_mppB\x10\n\x0e_created_index\"\xe1\x01\n\x15InvoicerequestRequest\x12\x1b\n\x06\x61mount\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\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\x1c\n\x0f\x61\x62solute_expiry\x18\x05 \x01(\x04H\x02\x88\x01\x01\x12\x17\n\nsingle_use\x18\x06 \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_issuerB\x08\n\x06_labelB\x12\n\x10_absolute_expiryB\r\n\x0b_single_use\"\x8b\x01\n\x16InvoicerequestResponse\x12\x11\n\tinvreq_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\"1\n\x1c\x44isableinvoicerequestRequest\x12\x11\n\tinvreq_id\x18\x01 \x01(\t\"\x92\x01\n\x1d\x44isableinvoicerequestResponse\x12\x11\n\tinvreq_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\"l\n\x1aListinvoicerequestsRequest\x12\x16\n\tinvreq_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x61\x63tive_only\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0c\n\n_invreq_idB\x0e\n\x0c_active_only\"_\n\x1bListinvoicerequestsResponse\x12@\n\x0finvoicerequests\x18\x01 \x03(\x0b\x32\'.cln.ListinvoicerequestsInvoicerequests\"\x97\x01\n\"ListinvoicerequestsInvoicerequests\x12\x11\n\tinvreq_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\"#\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\x16\n\tpay_index\x18\x0b \x01(\x04H\x05\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x14\n\x07paid_at\x18\r \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0e \x01(\x0cH\x08\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0f \x01(\tH\t\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x0b\x88\x01\x01\x12\x42\n\rpaid_outpoint\x18\x12 \x01(\x0b\x32&.cln.ListinvoicesInvoicesPaid_outpointH\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\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x13\n\x11_payment_preimageB\x14\n\x12_invreq_payer_noteB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x10\n\x0e_paid_outpoint\"A\n!ListinvoicesInvoicesPaid_outpoint\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\"\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\x18\n\x0b\x64\x65stination\x18\t \x01(\x0cH\x03\x88\x01\x01\x12\x14\n\x07groupid\x18\x0b \x01(\x04H\x04\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\r \x01(\x0cH\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_destinationB\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x10\n\x0e_localinvreqidB\x0e\n\x0c_description\"\xe7\x04\n\x11SendonionResponse\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\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x05 \x01(\x0cH\x01\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\x02\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\t \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\n \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0b \x01(\x0cH\x05\x88\x01\x01\x12\x14\n\x07message\x18\x0c \x01(\tH\x06\x88\x01\x01\x12\x13\n\x06partid\x18\r \x01(\x04H\x07\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x0e \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0f \x01(\x04H\t\x88\x01\x01\",\n\x0fSendonionStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x42\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\n\n\x08_messageB\t\n\x07_partidB\x10\n\x0e_created_indexB\x10\n\x0e_updated_index\"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\n\n\x02id\x18\x01 \x01(\x04\x12\x0f\n\x07groupid\x18\x02 \x01(\x04\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\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\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x01\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\x02\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\n \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0b \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\x05\x88\x01\x01\x12\x17\n\nerroronion\x18\r \x01(\x0cH\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0e \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06partid\x18\x0f \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\n\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x12 \x01(\x04H\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\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\r\n\x0b_erroronionB\x0e\n\x0c_descriptionB\t\n\x07_partidB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x0f\n\r_completed_at\"\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\x14\n\x0cscriptPubKey\x18\x03 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\"M\n\x11MakesecretRequest\x12\x10\n\x03hex\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06string\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x06\n\x04_hexB\t\n\x07_string\"$\n\x12MakesecretResponse\x12\x0e\n\x06secret\x18\x01 \x01(\x0c\"\x93\x04\n\nPayRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\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\x17\n\nriskfactor\x18\x08 \x01(\x01H\x05\x88\x01\x01\x12\x0f\n\x07\x65xclude\x18\n \x03(\t\x12 \n\x06maxfee\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0c \x01(\tH\x07\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\r \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\x0e \x01(\x0cH\t\x88\x01\x01\x12&\n\x0cpartial_msat\x18\x0f \x01(\x0b\x32\x0b.cln.AmountH\n\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_riskfactorB\t\n\x07_maxfeeB\x0e\n\x0c_descriptionB\x0e\n\x0c_amount_msatB\x10\n\x0e_localinvreqidB\x0f\n\r_partial_msat\"\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\"\xba\x02\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.ListnodesNodesAddresses\x12\x42\n\x10option_will_fund\x18\x07 \x01(\x0b\x32#.cln.ListnodesNodesOption_will_fundH\x04\x88\x01\x01\x42\x11\n\x0f_last_timestampB\x08\n\x06_aliasB\x08\n\x06_colorB\x0b\n\t_featuresB\x13\n\x11_option_will_fund\"\xf4\x01\n\x1eListnodesNodesOption_will_fund\x12(\n\x13lease_fee_base_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x17\n\x0flease_fee_basis\x18\x02 \x01(\r\x12\x16\n\x0e\x66unding_weight\x18\x03 \x01(\r\x12.\n\x19\x63hannel_fee_max_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x30\n(channel_fee_max_proportional_thousandths\x18\x05 \x01(\r\x12\x15\n\rcompact_lease\x18\x06 \x01(\x0c\"\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\"\xd4\x05\n\x16WaitanyinvoiceResponse\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@\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\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\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\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\x07\x88\x01\x01\x12\x1a\n\rcreated_index\x18\r \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\t\x88\x01\x01\x12<\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32 .cln.WaitanyinvoicePaid_outpointH\n\x88\x01\x01\"-\n\x14WaitanyinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x13\n\x11_payment_preimageB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x10\n\x0e_paid_outpoint\";\n\x1bWaitanyinvoicePaid_outpoint\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\"#\n\x12WaitinvoiceRequest\x12\r\n\x05label\x18\x01 \x01(\t\"\xc5\x05\n\x13WaitinvoiceResponse\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:\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\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\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\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\x07\x88\x01\x01\x12\x1a\n\rcreated_index\x18\r \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\t\x88\x01\x01\x12\x39\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32\x1d.cln.WaitinvoicePaid_outpointH\n\x88\x01\x01\"*\n\x11WaitinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x13\n\x11_payment_preimageB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x10\n\x0e_paid_outpoint\"8\n\x18WaitinvoicePaid_outpoint\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\"\x8e\x01\n\x12WaitsendpayRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x13\n\x06partid\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x14\n\x07groupid\x18\x04 \x01(\x04H\x02\x88\x01\x01\x42\t\n\x07_partidB\n\n\x08_timeoutB\n\n\x08_groupid\"\x8e\x05\n\x13WaitsendpayResponse\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x07groupid\x18\x02 \x01(\x04H\x00\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\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x02\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\x03\x88\x01\x01\x12\x13\n\x06partid\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0b \x01(\tH\x05\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0c \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\x07\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x0e \x01(\x01H\x08\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x0f \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x10 \x01(\x04H\n\x88\x01\x01\"!\n\x11WaitsendpayStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x42\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\x0f\n\r_completed_atB\x10\n\x0e_created_indexB\x10\n\x0e_updated_index\"\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\x07\n\x03\x41LL\x10\x02\x12\x08\n\x04P2TR\x10\x03\x42\x0e\n\x0c_addresstype\"M\n\x0fNewaddrResponse\x12\x13\n\x06\x62\x65\x63h32\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04p2tr\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_bech32B\x07\n\x05_p2tr\"\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\x14\n\x07minconf\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.Outpoint\x12\"\n\x07\x66\x65\x65rate\x18\x05 \x01(\x0b\x32\x0c.cln.FeerateH\x01\x88\x01\x01\x42\n\n\x08_minconfB\n\n\x08_feerate\":\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\"\xaf\x03\n\x0eKeysendRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\x0c\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\x12 \n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x0b.cln.Amount\x12 \n\x06maxfee\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\x07\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_extratlvsB\t\n\x07_maxfee\"\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\x15\n\x08locktime\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12min_witness_weight\x18\x07 \x01(\rH\x02\x88\x01\x01\x12\x17\n\nreservedok\x18\x08 \x01(\x08H\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\x0b\n\t_locktimeB\x15\n\x13_min_witness_weightB\r\n\x0b_reservedokB\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\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.Outpoint\x12 \n\x07outputs\x18\x05 \x03(\x0b\x32\x0f.cln.OutputDescB\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\"\xd7\x1b\n\x18ListpeerchannelsChannels\x12\x0f\n\x07peer_id\x18\x01 \x01(\x0c\x12\x16\n\x0epeer_connected\x18\x02 \x01(\x08\x12J\n\x05state\x18\x03 \x01(\x0e\x32;.cln.ListpeerchannelsChannels.ListpeerchannelsChannelsState\x12\x19\n\x0cscratch_txid\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x12:\n\x07\x66\x65\x65rate\x18\x06 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFeerateH\x01\x88\x01\x01\x12\x12\n\x05owner\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x10short_channel_id\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x17\n\nchannel_id\x18\t \x01(\x0cH\x04\x88\x01\x01\x12\x19\n\x0c\x66unding_txid\x18\n \x01(\x0cH\x05\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x0b \x01(\rH\x06\x88\x01\x01\x12\x1c\n\x0finitial_feerate\x18\x0c \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0clast_feerate\x18\r \x01(\tH\x08\x88\x01\x01\x12\x19\n\x0cnext_feerate\x18\x0e \x01(\tH\t\x88\x01\x01\x12\x1a\n\rnext_fee_step\x18\x0f \x01(\rH\n\x88\x01\x01\x12\x37\n\x08inflight\x18\x10 \x03(\x0b\x32%.cln.ListpeerchannelsChannelsInflight\x12\x15\n\x08\x63lose_to\x18\x11 \x01(\x0cH\x0b\x88\x01\x01\x12\x14\n\x07private\x18\x12 \x01(\x08H\x0c\x88\x01\x01\x12 \n\x06opener\x18\x13 \x01(\x0e\x32\x10.cln.ChannelSide\x12%\n\x06\x63loser\x18\x14 \x01(\x0e\x32\x10.cln.ChannelSideH\r\x88\x01\x01\x12:\n\x07\x66unding\x18\x16 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFundingH\x0e\x88\x01\x01\x12$\n\nto_us_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x0f\x88\x01\x01\x12(\n\x0emin_to_us_msat\x18\x18 \x01(\x0b\x32\x0b.cln.AmountH\x10\x88\x01\x01\x12(\n\x0emax_to_us_msat\x18\x19 \x01(\x0b\x32\x0b.cln.AmountH\x11\x88\x01\x01\x12$\n\ntotal_msat\x18\x1a \x01(\x0b\x32\x0b.cln.AmountH\x12\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x1b \x01(\x0b\x32\x0b.cln.AmountH\x13\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x1c \x01(\rH\x14\x88\x01\x01\x12)\n\x0f\x64ust_limit_msat\x18\x1d \x01(\x0b\x32\x0b.cln.AmountH\x15\x88\x01\x01\x12\x30\n\x16max_total_htlc_in_msat\x18\x1e \x01(\x0b\x32\x0b.cln.AmountH\x16\x88\x01\x01\x12,\n\x12their_reserve_msat\x18\x1f \x01(\x0b\x32\x0b.cln.AmountH\x17\x88\x01\x01\x12*\n\x10our_reserve_msat\x18 \x01(\x0b\x32\x0b.cln.AmountH\x18\x88\x01\x01\x12(\n\x0espendable_msat\x18! \x01(\x0b\x32\x0b.cln.AmountH\x19\x88\x01\x01\x12)\n\x0freceivable_msat\x18\" \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$ \x01(\x0b\x32\x0b.cln.AmountH\x1c\x88\x01\x01\x12/\n\x15maximum_htlc_out_msat\x18% \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\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.AmountH)\x88\x01\x01\x12\x31\n\x05htlcs\x18\x34 \x03(\x0b\x32\".cln.ListpeerchannelsChannelsHtlcs\x12\x1a\n\rclose_to_addr\x18\x35 \x01(\tH*\x88\x01\x01\x12\x1e\n\x11ignore_fee_limits\x18\x36 \x01(\x08H+\x88\x01\x01\x12:\n\x07updates\x18\x37 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsUpdatesH,\x88\x01\x01\x12#\n\x16last_stable_connection\x18\x38 \x01(\x04H-\x88\x01\x01\x12\x17\n\nlost_state\x18\x39 \x01(\x08H.\x88\x01\x01\x12\x1a\n\rreestablished\x18: \x01(\x08H/\x88\x01\x01\x12*\n\x10last_tx_fee_msat\x18; \x01(\x0b\x32\x0b.cln.AmountH0\x88\x01\x01\x12\x16\n\tdirection\x18< \x01(\rH1\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\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_addrB\x14\n\x12_ignore_fee_limitsB\n\n\x08_updatesB\x19\n\x17_last_stable_connectionB\r\n\x0b_lost_stateB\x10\n\x0e_reestablishedB\x13\n\x11_last_tx_fee_msatB\x0c\n\n_direction\"\xa7\x01\n\x1fListpeerchannelsChannelsUpdates\x12\x38\n\x05local\x18\x01 \x01(\x0b\x32).cln.ListpeerchannelsChannelsUpdatesLocal\x12?\n\x06remote\x18\x02 \x01(\x0b\x32*.cln.ListpeerchannelsChannelsUpdatesRemoteH\x00\x88\x01\x01\x42\t\n\x07_remote\"\xda\x01\n$ListpeerchannelsChannelsUpdatesLocal\x12&\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12&\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\x19\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\r\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\"\xdb\x01\n%ListpeerchannelsChannelsUpdatesRemote\x12&\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12&\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\x19\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\r\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\"?\n\x1fListpeerchannelsChannelsFeerate\x12\r\n\x05perkw\x18\x01 \x01(\r\x12\r\n\x05perkb\x18\x02 \x01(\r\"\x8b\x02\n ListpeerchannelsChannelsInflight\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\x19\n\x0cscratch_txid\x18\x06 \x01(\x0cH\x00\x88\x01\x01\x12\x1a\n\rsplice_amount\x18\x07 \x01(\x12H\x01\x88\x01\x01\x42\x0f\n\r_scratch_txidB\x10\n\x0e_splice_amount\"\x9d\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.Amount\x12&\n\x11remote_funds_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\'\n\rfee_paid_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\'\n\rfee_rcvd_msat\x18\x05 \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\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\"\xf9\x02\n\x1dListpeerchannelsChannelsHtlcs\x12\\\n\tdirection\x18\x01 \x01(\x0e\x32I.cln.ListpeerchannelsChannelsHtlcs.ListpeerchannelsChannelsHtlcsDirection\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\"9\n&ListpeerchannelsChannelsHtlcsDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\x42\x10\n\x0e_local_trimmedB\t\n\x07_status\"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\"\xc7\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.DecodepayExtra\x12-\n\x06routes\x18\x11 \x01(\x0b\x32\x18.cln.DecodeRoutehintListH\x06\x88\x01\x01\x42\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_metadataB\t\n\x07_routes\"\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\"\xec%\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\x12\x16\n\tsignature\x18M \x01(\tH>\x88\x01\x01\x12\x15\n\x08\x63urrency\x18N \x01(\tH?\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18O \x01(\x0b\x32\x0b.cln.AmountH@\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18P \x01(\tHA\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18Q \x01(\x0cHB\x88\x01\x01\x12-\n\x06routes\x18R \x01(\x0b\x32\x18.cln.DecodeRoutehintListHC\x88\x01\x01\x12\x1c\n\x0foffer_issuer_id\x18S \x01(\x0cHD\x88\x01\x01\x12,\n\x1fwarning_missing_offer_issuer_id\x18T \x01(\tHE\x88\x01\x01\x12-\n\x0cinvreq_paths\x18U \x03(\x0b\x32\x17.cln.DecodeInvreq_paths\x12\'\n\x1awarning_empty_blinded_path\x18V \x01(\tHF\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_decryptedB\x0c\n\n_signatureB\x0b\n\t_currencyB\x0e\n\x0c_amount_msatB\x0e\n\x0c_descriptionB\x0b\n\t_featuresB\t\n\x07_routesB\x12\n\x10_offer_issuer_idB\"\n _warning_missing_offer_issuer_idB\x1d\n\x1b_warning_empty_blinded_path\"\xed\x01\n\x11\x44\x65\x63odeOffer_paths\x12\x1a\n\rfirst_node_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x15\n\x08\x62linding\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x1b\n\x0e\x66irst_scid_dir\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x17\n\nfirst_scid\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0e\x66irst_path_key\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x42\x10\n\x0e_first_node_idB\x0b\n\t_blindingB\x11\n\x0f_first_scid_dirB\r\n\x0b_first_scidB\x11\n\x0f_first_path_key\"\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\"\x99\x02\n\x12\x44\x65\x63odeInvreq_paths\x12\x1b\n\x0e\x66irst_scid_dir\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x15\n\x08\x62linding\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x1a\n\rfirst_node_id\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x12\x17\n\nfirst_scid\x18\x04 \x01(\tH\x03\x88\x01\x01\x12)\n\x04path\x18\x05 \x03(\x0b\x32\x1b.cln.DecodeInvreq_pathsPath\x12\x1b\n\x0e\x66irst_path_key\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x42\x11\n\x0f_first_scid_dirB\x0b\n\t_blindingB\x10\n\x0e_first_node_idB\r\n\x0b_first_scidB\x11\n\x0f_first_path_key\"S\n\x16\x44\x65\x63odeInvreq_pathsPath\x12\x17\n\x0f\x62linded_node_id\x18\x01 \x01(\x0c\x12 \n\x18\x65ncrypted_recipient_data\x18\x02 \x01(\x0c\"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\"\xaa\x02\n\x0f\x44\x65\x63odeFallbacks\x12\x36\n)warning_invoice_fallbacks_version_invalid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12;\n\titem_type\x18\x02 \x01(\x0e\x32(.cln.DecodeFallbacks.DecodeFallbacksType\x12\x11\n\x04\x61\x64\x64r\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x0b\n\x03hex\x18\x04 \x01(\x0c\"K\n\x13\x44\x65\x63odeFallbacksType\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,\n*_warning_invoice_fallbacks_version_invalidB\x07\n\x05_addr\"(\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\"\xc2\x01\n\rDelpayRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12/\n\x06status\x18\x02 \x01(\x0e\x32\x1f.cln.DelpayRequest.DelpayStatus\x12\x13\n\x06partid\x18\x03 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07groupid\x18\x04 \x01(\x04H\x01\x88\x01\x01\"(\n\x0c\x44\x65lpayStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x42\t\n\x07_partidB\n\n\x08_groupid\"7\n\x0e\x44\x65lpayResponse\x12%\n\x08payments\x18\x01 \x03(\x0b\x32\x13.cln.DelpayPayments\"\xcb\x05\n\x0e\x44\x65lpayPayments\x12\x1a\n\rcreated_index\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\n\n\x02id\x18\x02 \x01(\x04\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x38\n\x06status\x18\x04 \x01(\x0e\x32(.cln.DelpayPayments.DelpayPaymentsStatus\x12%\n\x10\x61mount_sent_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x13\n\x06partid\x18\x06 \x01(\x04H\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x07 \x01(\x0cH\x02\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x12\n\ncreated_at\x18\t \x01(\x04\x12\x1a\n\rupdated_index\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x0b \x01(\x04H\x05\x88\x01\x01\x12\x14\n\x07groupid\x18\x0c \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\x07\x88\x01\x01\x12\x12\n\x05label\x18\x0e \x01(\tH\x08\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0f \x01(\tH\t\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x10 \x01(\tH\n\x88\x01\x01\x12\x17\n\nerroronion\x18\x11 \x01(\x0cH\x0b\x88\x01\x01\"=\n\x14\x44\x65lpayPaymentsStatus\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\x0e\n\x0c_destinationB\x0e\n\x0c_amount_msatB\x10\n\x0e_updated_indexB\x0f\n\r_completed_atB\n\n\x08_groupidB\x13\n\x11_payment_preimageB\x08\n\x06_labelB\t\n\x07_bolt11B\t\n\x07_bolt12B\r\n\x0b_erroronion\"\xb3\x01\n\x11\x44\x65lforwardRequest\x12\x12\n\nin_channel\x18\x01 \x01(\t\x12\x12\n\nin_htlc_id\x18\x02 \x01(\x04\x12\x37\n\x06status\x18\x03 \x01(\x0e\x32\'.cln.DelforwardRequest.DelforwardStatus\"=\n\x10\x44\x65lforwardStatus\x12\x0b\n\x07SETTLED\x10\x00\x12\x10\n\x0cLOCAL_FAILED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"\x14\n\x12\x44\x65lforwardResponse\"\'\n\x13\x44isableofferRequest\x12\x10\n\x08offer_id\x18\x01 \x01(\x0c\"\x88\x01\n\x14\x44isableofferResponse\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\"&\n\x12\x45nableofferRequest\x12\x10\n\x08offer_id\x18\x01 \x01(\x0c\"\x87\x01\n\x13\x45nableofferResponse\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\"=\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\x14\n\x07opening\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmutual_close\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10unilateral_close\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x1a\n\rdelayed_to_us\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1c\n\x0fhtlc_resolution\x18\x07 \x01(\rH\x04\x88\x01\x01\x12\x14\n\x07penalty\x18\x08 \x01(\rH\x05\x88\x01\x01\x12.\n\testimates\x18\t \x03(\x0b\x32\x1b.cln.FeeratesPerkbEstimates\x12\x12\n\x05\x66loor\x18\n \x01(\rH\x06\x88\x01\x01\x12$\n\x17unilateral_anchor_close\x18\x0b \x01(\rH\x07\x88\x01\x01\x42\n\n\x08_openingB\x0f\n\r_mutual_closeB\x13\n\x11_unilateral_closeB\x10\n\x0e_delayed_to_usB\x12\n\x10_htlc_resolutionB\n\n\x08_penaltyB\x08\n\x06_floorB\x1a\n\x18_unilateral_anchor_close\"W\n\x16\x46\x65\x65ratesPerkbEstimates\x12\x12\n\nblockcount\x18\x01 \x01(\r\x12\x0f\n\x07\x66\x65\x65rate\x18\x02 \x01(\r\x12\x18\n\x10smoothed_feerate\x18\x03 \x01(\r\"\xd3\x03\n\rFeeratesPerkw\x12\x16\n\x0emin_acceptable\x18\x01 \x01(\r\x12\x16\n\x0emax_acceptable\x18\x02 \x01(\r\x12\x14\n\x07opening\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmutual_close\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10unilateral_close\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x1a\n\rdelayed_to_us\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1c\n\x0fhtlc_resolution\x18\x07 \x01(\rH\x04\x88\x01\x01\x12\x14\n\x07penalty\x18\x08 \x01(\rH\x05\x88\x01\x01\x12.\n\testimates\x18\t \x03(\x0b\x32\x1b.cln.FeeratesPerkwEstimates\x12\x12\n\x05\x66loor\x18\n \x01(\rH\x06\x88\x01\x01\x12$\n\x17unilateral_anchor_close\x18\x0b \x01(\rH\x07\x88\x01\x01\x42\n\n\x08_openingB\x0f\n\r_mutual_closeB\x13\n\x11_unilateral_closeB\x10\n\x0e_delayed_to_usB\x12\n\x10_htlc_resolutionB\n\n\x08_penaltyB\x08\n\x06_floorB\x1a\n\x18_unilateral_anchor_close\"W\n\x16\x46\x65\x65ratesPerkwEstimates\x12\x12\n\nblockcount\x18\x01 \x01(\r\x12\x0f\n\x07\x66\x65\x65rate\x18\x02 \x01(\r\x12\x18\n\x10smoothed_feerate\x18\x03 \x01(\r\"\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\x1d\n\x15htlc_timeout_satoshis\x18\x04 \x01(\x04\x12\x1d\n\x15htlc_success_satoshis\x18\x05 \x01(\x04\x12\x30\n#unilateral_close_nonanchor_satoshis\x18\x06 \x01(\x04H\x00\x88\x01\x01\x42&\n$_unilateral_close_nonanchor_satoshis\"\x99\x03\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\x12\x1b\n\x0epayer_metadata\x18\t \x01(\tH\x07\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_noteB\x11\n\x0f_payer_metadata\"\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\"\'\n\x19\x46undchannel_cancelRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\"/\n\x1a\x46undchannel_cancelResponse\x12\x11\n\tcancelled\x18\x01 \x01(\t\"7\n\x1b\x46undchannel_completeRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x0c\n\x04psbt\x18\x02 \x01(\t\"O\n\x1c\x46undchannel_completeResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x1b\n\x13\x63ommitments_secured\x18\x02 \x01(\x08\"\xfb\x03\n\x12\x46undchannelRequest\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#\n\tpush_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x0brequest_amt\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x08 \x01(\tH\x05\x88\x01\x01\x12\n\n\x02id\x18\t \x01(\x0c\x12\x14\n\x07minconf\x18\n \x01(\rH\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\x0c\n\n_push_msatB\x0b\n\t_close_toB\x0e\n\x0c_request_amtB\x10\n\x0e_compact_leaseB\n\n\x08_minconfB\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\x15\n\x08\x63lose_to\x18\x05 \x01(\x0cH\x00\x88\x01\x01\x12\x15\n\x08mindepth\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x37\n\x0c\x63hannel_type\x18\x07 \x01(\x0b\x32\x1c.cln.FundchannelChannel_typeH\x02\x88\x01\x01\x42\x0b\n\t_close_toB\x0b\n\t_mindepthB\x0f\n\r_channel_type\"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\"\xd7\x02\n\x18\x46undchannel_startRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x1b\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\"\n\x07\x66\x65\x65rate\x18\x03 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x15\n\x08\x61nnounce\x18\x04 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\tpush_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x15\n\x08mindepth\x18\x07 \x01(\rH\x04\x88\x01\x01\x12!\n\x07reserve\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x14\n\x0c\x63hannel_type\x18\t \x03(\rB\n\n\x08_feerateB\x0b\n\t_announceB\x0b\n\t_close_toB\x0c\n\n_push_msatB\x0b\n\t_mindepthB\n\n\x08_reserve\"\xf9\x01\n\x19\x46undchannel_startResponse\x12\x17\n\x0f\x66unding_address\x18\x01 \x01(\t\x12\x14\n\x0cscriptpubkey\x18\x02 \x01(\x0c\x12=\n\x0c\x63hannel_type\x18\x03 \x01(\x0b\x32\".cln.Fundchannel_startChannel_typeH\x00\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x04 \x01(\x0cH\x01\x88\x01\x01\x12\x15\n\rwarning_usage\x18\x05 \x01(\t\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\"R\n\x1d\x46undchannel_startChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"\x9d\x01\n\rGetlogRequest\x12\x32\n\x05level\x18\x01 \x01(\x0e\x32\x1e.cln.GetlogRequest.GetlogLevelH\x00\x88\x01\x01\"N\n\x0bGetlogLevel\x12\n\n\x06\x42ROKEN\x10\x00\x12\x0b\n\x07UNUSUAL\x10\x01\x12\x08\n\x04INFO\x10\x02\x12\t\n\x05\x44\x45\x42UG\x10\x03\x12\x06\n\x02IO\x10\x04\x12\t\n\x05TRACE\x10\x05\x42\x08\n\x06_level\"h\n\x0eGetlogResponse\x12\x12\n\ncreated_at\x18\x01 \x01(\t\x12\x12\n\nbytes_used\x18\x02 \x01(\r\x12\x11\n\tbytes_max\x18\x03 \x01(\r\x12\x1b\n\x03log\x18\x04 \x03(\x0b\x32\x0e.cln.GetlogLog\"\xe8\x02\n\tGetlogLog\x12/\n\titem_type\x18\x01 \x01(\x0e\x32\x1c.cln.GetlogLog.GetlogLogType\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\"l\n\rGetlogLogType\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\x12\t\n\x05TRACE\x10\x07\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\"\xd9\x08\n\x13\x46underupdateRequest\x12@\n\x06policy\x18\x01 \x01(\x0e\x32+.cln.FunderupdateRequest.FunderupdatePolicyH\x00\x88\x01\x01\x12$\n\npolicy_mod\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x18\n\x0bleases_only\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x30\n\x16min_their_funding_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x30\n\x16max_their_funding_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12.\n\x14per_channel_min_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12.\n\x14per_channel_max_msat\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12+\n\x11reserve_tank_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x07\x88\x01\x01\x12\x19\n\x0c\x66uzz_percent\x18\t \x01(\rH\x08\x88\x01\x01\x12\x1d\n\x10\x66und_probability\x18\n \x01(\rH\t\x88\x01\x01\x12-\n\x13lease_fee_base_msat\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\n\x88\x01\x01\x12\x1c\n\x0flease_fee_basis\x18\x0c \x01(\rH\x0b\x88\x01\x01\x12\x1b\n\x0e\x66unding_weight\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x33\n\x19\x63hannel_fee_max_base_msat\x18\x0e \x01(\x0b\x32\x0b.cln.AmountH\r\x88\x01\x01\x12\x35\n(channel_fee_max_proportional_thousandths\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x10 \x01(\x0cH\x0f\x88\x01\x01\"9\n\x12\x46underupdatePolicy\x12\t\n\x05MATCH\x10\x00\x12\r\n\tAVAILABLE\x10\x01\x12\t\n\x05\x46IXED\x10\x02\x42\t\n\x07_policyB\r\n\x0b_policy_modB\x0e\n\x0c_leases_onlyB\x19\n\x17_min_their_funding_msatB\x19\n\x17_max_their_funding_msatB\x17\n\x15_per_channel_min_msatB\x17\n\x15_per_channel_max_msatB\x14\n\x12_reserve_tank_msatB\x0f\n\r_fuzz_percentB\x13\n\x11_fund_probabilityB\x16\n\x14_lease_fee_base_msatB\x12\n\x10_lease_fee_basisB\x11\n\x0f_funding_weightB\x1c\n\x1a_channel_fee_max_base_msatB+\n)_channel_fee_max_proportional_thousandthsB\x10\n\x0e_compact_lease\"\xdf\x06\n\x14\x46underupdateResponse\x12\x0f\n\x07summary\x18\x01 \x01(\t\x12<\n\x06policy\x18\x02 \x01(\x0e\x32,.cln.FunderupdateResponse.FunderupdatePolicy\x12\x12\n\npolicy_mod\x18\x03 \x01(\r\x12\x13\n\x0bleases_only\x18\x04 \x01(\x08\x12+\n\x16min_their_funding_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12+\n\x16max_their_funding_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12)\n\x14per_channel_min_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12)\n\x14per_channel_max_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12&\n\x11reserve_tank_msat\x18\t \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0c\x66uzz_percent\x18\n \x01(\r\x12\x18\n\x10\x66und_probability\x18\x0b \x01(\r\x12-\n\x13lease_fee_base_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x1c\n\x0flease_fee_basis\x18\r \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0e\x66unding_weight\x18\x0e \x01(\rH\x02\x88\x01\x01\x12\x33\n\x19\x63hannel_fee_max_base_msat\x18\x0f \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x35\n(channel_fee_max_proportional_thousandths\x18\x10 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x11 \x01(\x0cH\x05\x88\x01\x01\"9\n\x12\x46underupdatePolicy\x12\t\n\x05MATCH\x10\x00\x12\r\n\tAVAILABLE\x10\x01\x12\t\n\x05\x46IXED\x10\x02\x42\x16\n\x14_lease_fee_base_msatB\x12\n\x10_lease_fee_basisB\x11\n\x0f_funding_weightB\x1c\n\x1a_channel_fee_max_base_msatB+\n)_channel_fee_max_proportional_thousandthsB\x10\n\x0e_compact_lease\"\xec\x01\n\x0fGetrouteRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\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\x12 \n\x0b\x61mount_msat\x18\t \x01(\x0b\x32\x0b.cln.AmountB\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\"t\n\x14ListaddressesRequest\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05start\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\n\n\x08_addressB\x08\n\x06_startB\x08\n\x06_limit\"G\n\x15ListaddressesResponse\x12.\n\taddresses\x18\x01 \x03(\x0b\x32\x1b.cln.ListaddressesAddresses\"d\n\x16ListaddressesAddresses\x12\x0e\n\x06keyidx\x18\x01 \x01(\x04\x12\x13\n\x06\x62\x65\x63h32\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04p2tr\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_bech32B\x07\n\x05_p2tr\"\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\"\xb4\x06\n\x14ListforwardsForwards\x12\x12\n\nin_channel\x18\x01 \x01(\t\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\x00\x88\x01\x01\x12\"\n\x08\x66\x65\x65_msat\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\"\n\x08out_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12G\n\x05style\x18\t \x01(\x0e\x32\x33.cln.ListforwardsForwards.ListforwardsForwardsStyleH\x03\x88\x01\x01\x12\x17\n\nin_htlc_id\x18\n \x01(\x04H\x04\x88\x01\x01\x12\x18\n\x0bout_htlc_id\x18\x0b \x01(\x04H\x05\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x0c \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rupdated_index\x18\r \x01(\x04H\x07\x88\x01\x01\x12\x1a\n\rresolved_time\x18\x0e \x01(\x01H\x08\x88\x01\x01\x12\x15\n\x08\x66\x61ilcode\x18\x0f \x01(\rH\t\x88\x01\x01\x12\x17\n\nfailreason\x18\x10 \x01(\tH\n\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\x0e\n\x0c_out_channelB\x0b\n\t_fee_msatB\x0b\n\t_out_msatB\x08\n\x06_styleB\r\n\x0b_in_htlc_idB\x0e\n\x0c_out_htlc_idB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x10\n\x0e_resolved_timeB\x0b\n\t_failcodeB\r\n\x0b_failreason\"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\"\x84\x03\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\x12\x36\n\x05index\x18\x04 \x01(\x0e\x32\".cln.ListpaysRequest.ListpaysIndexH\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\"7\n\x0eListpaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\")\n\rListpaysIndex\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\"3\n\x10ListpaysResponse\x12\x1f\n\x04pays\x18\x01 \x03(\x0b\x32\x11.cln.ListpaysPays\"\xdb\x05\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\x12\n\x05label\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x07 \x01(\tH\x03\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12*\n\x10\x61mount_sent_msat\x18\t \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x17\n\nerroronion\x18\n \x01(\x0cH\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0b \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x0c \x01(\x04H\x08\x88\x01\x01\x12\x15\n\x08preimage\x18\r \x01(\x0cH\t\x88\x01\x01\x12\x1c\n\x0fnumber_of_parts\x18\x0e \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x0f \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x10 \x01(\x04H\x0c\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\x08\n\x06_labelB\t\n\x07_bolt11B\t\n\x07_bolt12B\x0e\n\x0c_amount_msatB\x13\n\x11_amount_sent_msatB\r\n\x0b_erroronionB\x0e\n\x0c_descriptionB\x0f\n\r_completed_atB\x0b\n\t_preimageB\x12\n\x10_number_of_partsB\x10\n\x0e_created_indexB\x10\n\x0e_updated_index\"*\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\"\xb2\x02\n\x17MultifundchannelRequest\x12\x37\n\x0c\x64\x65stinations\x18\x01 \x03(\x0b\x32!.cln.MultifundchannelDestinations\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(\x12H\x01\x88\x01\x01\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.Outpoint\x12\x18\n\x0bminchannels\x18\x05 \x01(\x12H\x02\x88\x01\x01\x12-\n\x12\x63ommitment_feerate\x18\x06 \x01(\x0b\x32\x0c.cln.FeerateH\x03\x88\x01\x01\x42\n\n\x08_feerateB\n\n\x08_minconfB\x0e\n\x0c_minchannelsB\x15\n\x13_commitment_feerate\"\x98\x01\n\x18MultifundchannelResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\x12\x35\n\x0b\x63hannel_ids\x18\x03 \x03(\x0b\x32 .cln.MultifundchannelChannel_ids\x12+\n\x06\x66\x61iled\x18\x04 \x03(\x0b\x32\x1b.cln.MultifundchannelFailed\"\xff\x02\n\x1cMultifundchannelDestinations\x12\n\n\x02id\x18\x01 \x01(\t\x12 \n\x06\x61mount\x18\x02 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\x15\n\x08\x61nnounce\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12#\n\tpush_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x05 \x01(\tH\x02\x88\x01\x01\x12%\n\x0brequest_amt\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x07 \x01(\tH\x04\x88\x01\x01\x12\x15\n\x08mindepth\x18\x08 \x01(\rH\x05\x88\x01\x01\x12!\n\x07reserve\x18\t \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x42\x0b\n\t_announceB\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\"\xcb\x01\n\x1bMultifundchannelChannel_ids\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\x12\x12\n\nchannel_id\x18\x03 \x01(\x0c\x12G\n\x0c\x63hannel_type\x18\x04 \x01(\x0b\x32,.cln.MultifundchannelChannel_idsChannel_typeH\x00\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x42\x0f\n\r_channel_typeB\x0b\n\t_close_to\"\\\n\'MultifundchannelChannel_idsChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"\x93\x02\n\x16MultifundchannelFailed\x12\n\n\x02id\x18\x01 \x01(\x0c\x12H\n\x06method\x18\x02 \x01(\x0e\x32\x38.cln.MultifundchannelFailed.MultifundchannelFailedMethod\x12/\n\x05\x65rror\x18\x03 \x01(\x0b\x32 .cln.MultifundchannelFailedError\"r\n\x1cMultifundchannelFailedMethod\x12\x0b\n\x07\x43ONNECT\x10\x00\x12\x14\n\x10OPENCHANNEL_INIT\x10\x01\x12\x15\n\x11\x46UNDCHANNEL_START\x10\x02\x12\x18\n\x14\x46UNDCHANNEL_COMPLETE\x10\x03\"<\n\x1bMultifundchannelFailedError\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x12\x12\x0f\n\x07message\x18\x02 \x01(\t\"\xa8\x01\n\x14MultiwithdrawRequest\x12 \n\x07outputs\x18\x01 \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\"1\n\x15MultiwithdrawResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\"\xa0\x04\n\x0cOfferRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06issuer\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05label\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cquantity_max\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0f\x61\x62solute_expiry\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x17\n\nrecurrence\x18\x07 \x01(\tH\x05\x88\x01\x01\x12\x1c\n\x0frecurrence_base\x18\x08 \x01(\tH\x06\x88\x01\x01\x12!\n\x14recurrence_paywindow\x18\t \x01(\tH\x07\x88\x01\x01\x12\x1d\n\x10recurrence_limit\x18\n \x01(\rH\x08\x88\x01\x01\x12\x17\n\nsingle_use\x18\x0b \x01(\x08H\t\x88\x01\x01\x12(\n\x1brecurrence_start_any_period\x18\x0c \x01(\x08H\n\x88\x01\x01\x42\x0e\n\x0c_descriptionB\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_useB\x1e\n\x1c_recurrence_start_any_period\"\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\".\n\x18Openchannel_abortRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\"Y\n\x19Openchannel_abortResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x18\n\x10\x63hannel_canceled\x18\x02 \x01(\x08\x12\x0e\n\x06reason\x18\x03 \x01(\t\"\x9f\x01\n\x17Openchannel_bumpRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x13\n\x0binitialpsbt\x18\x02 \x01(\t\x12*\n\x0f\x66unding_feerate\x18\x03 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x1b\n\x06\x61mount\x18\x04 \x01(\x0b\x32\x0b.cln.AmountB\x12\n\x10_funding_feerate\"\x86\x02\n\x18Openchannel_bumpResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12<\n\x0c\x63hannel_type\x18\x02 \x01(\x0b\x32!.cln.Openchannel_bumpChannel_typeH\x00\x88\x01\x01\x12\x0c\n\x04psbt\x18\x03 \x01(\t\x12\x1b\n\x13\x63ommitments_secured\x18\x04 \x01(\x08\x12\x16\n\x0e\x66unding_serial\x18\x05 \x01(\x04\x12&\n\x19requires_confirmed_inputs\x18\x06 \x01(\x08H\x01\x88\x01\x01\x42\x0f\n\r_channel_typeB\x1c\n\x1a_requires_confirmed_inputs\"Q\n\x1cOpenchannel_bumpChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"\xa0\x03\n\x17Openchannel_initRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x13\n\x0binitialpsbt\x18\x02 \x01(\t\x12-\n\x12\x63ommitment_feerate\x18\x03 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12*\n\x0f\x66unding_feerate\x18\x04 \x01(\x0b\x32\x0c.cln.FeerateH\x01\x88\x01\x01\x12\x15\n\x08\x61nnounce\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x06 \x01(\tH\x03\x88\x01\x01\x12%\n\x0brequest_amt\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x08 \x01(\x0cH\x05\x88\x01\x01\x12\x14\n\x0c\x63hannel_type\x18\t \x03(\r\x12\x1b\n\x06\x61mount\x18\n \x01(\x0b\x32\x0b.cln.AmountB\x15\n\x13_commitment_feerateB\x12\n\x10_funding_feerateB\x0b\n\t_announceB\x0b\n\t_close_toB\x0e\n\x0c_request_amtB\x10\n\x0e_compact_lease\"\x86\x02\n\x18Openchannel_initResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x0c\n\x04psbt\x18\x02 \x01(\t\x12<\n\x0c\x63hannel_type\x18\x03 \x01(\x0b\x32!.cln.Openchannel_initChannel_typeH\x00\x88\x01\x01\x12\x1b\n\x13\x63ommitments_secured\x18\x04 \x01(\x08\x12\x16\n\x0e\x66unding_serial\x18\x05 \x01(\x04\x12&\n\x19requires_confirmed_inputs\x18\x06 \x01(\x08H\x01\x88\x01\x01\x42\x0f\n\r_channel_typeB\x1c\n\x1a_requires_confirmed_inputs\"Q\n\x1cOpenchannel_initChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"D\n\x19Openchannel_signedRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x13\n\x0bsigned_psbt\x18\x02 \x01(\t\"J\n\x1aOpenchannel_signedResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\n\n\x02tx\x18\x02 \x01(\x0c\x12\x0c\n\x04txid\x18\x03 \x01(\x0c\"=\n\x19Openchannel_updateRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x0c\n\x04psbt\x18\x02 \x01(\t\"\xae\x02\n\x1aOpenchannel_updateResponse\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12>\n\x0c\x63hannel_type\x18\x02 \x01(\x0b\x32#.cln.Openchannel_updateChannel_typeH\x00\x88\x01\x01\x12\x0c\n\x04psbt\x18\x03 \x01(\t\x12\x1b\n\x13\x63ommitments_secured\x18\x04 \x01(\x08\x12\x16\n\x0e\x66unding_outnum\x18\x05 \x01(\r\x12\x15\n\x08\x63lose_to\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12&\n\x19requires_confirmed_inputs\x18\x07 \x01(\x08H\x02\x88\x01\x01\x42\x0f\n\r_channel_typeB\x0b\n\t_close_toB\x1c\n\x1a_requires_confirmed_inputs\"S\n\x1eOpenchannel_updateChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"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\"\x91\x01\n\rPluginRequest\x12)\n\nsubcommand\x18\x01 \x01(\x0e\x32\x15.cln.PluginSubcommand\x12\x13\n\x06plugin\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tdirectory\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x0f\n\x07options\x18\x04 \x03(\tB\t\n\x07_pluginB\x0c\n\n_directory\"}\n\x0ePluginResponse\x12&\n\x07\x63ommand\x18\x01 \x01(\x0e\x32\x15.cln.PluginSubcommand\x12#\n\x07plugins\x18\x02 \x03(\x0b\x32\x12.cln.PluginPlugins\x12\x13\n\x06result\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_result\">\n\rPluginPlugins\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x63tive\x18\x02 \x01(\x08\x12\x0f\n\x07\x64ynamic\x18\x03 \x01(\x08\"<\n\x14RenepaystatusRequest\x12\x16\n\tinvstring\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_invstring\"G\n\x15RenepaystatusResponse\x12.\n\tpaystatus\x18\x01 \x03(\x0b\x32\x1b.cln.RenepaystatusPaystatus\"\xe2\x03\n\x16RenepaystatusPaystatus\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12\x1d\n\x10payment_preimage\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\x0f\n\x07groupid\x18\x05 \x01(\r\x12\x12\n\x05parts\x18\x06 \x01(\rH\x01\x88\x01\x01\x12 \n\x0b\x61mount_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12*\n\x10\x61mount_sent_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12H\n\x06status\x18\t \x01(\x0e\x32\x38.cln.RenepaystatusPaystatus.RenepaystatusPaystatusStatus\x12\x18\n\x0b\x64\x65stination\x18\n \x01(\x0cH\x03\x88\x01\x01\x12\r\n\x05notes\x18\x0b \x03(\t\"E\n\x1cRenepaystatusPaystatusStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x12\x0b\n\x07PENDING\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x42\x13\n\x11_payment_preimageB\x08\n\x06_partsB\x13\n\x11_amount_sent_msatB\x0e\n\x0c_destination\"\xda\x02\n\x0eRenepayRequest\x12\x11\n\tinvstring\x18\x01 \x01(\t\x12%\n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12 \n\x06maxfee\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x15\n\x08maxdelay\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tretry_for\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x12\n\x05label\x18\x07 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0e\x64\x65v_use_shadow\x18\x08 \x01(\x08H\x06\x88\x01\x01\x12\x0f\n\x07\x65xclude\x18\t \x03(\tB\x0e\n\x0c_amount_msatB\t\n\x07_maxfeeB\x0b\n\t_maxdelayB\x0c\n\n_retry_forB\x0e\n\x0c_descriptionB\x08\n\x06_labelB\x11\n\x0f_dev_use_shadow\"\xa5\x03\n\x0fRenepayResponse\x12\x18\n\x10payment_preimage\x18\x01 \x01(\x0c\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\x12\n\ncreated_at\x18\x03 \x01(\x01\x12\r\n\x05parts\x18\x04 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x61mount_sent_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12\x32\n\x06status\x18\x07 \x01(\x0e\x32\".cln.RenepayResponse.RenepayStatus\x12\x18\n\x0b\x64\x65stination\x18\x08 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\t \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\n \x01(\tH\x02\x88\x01\x01\x12\x14\n\x07groupid\x18\x0b \x01(\x04H\x03\x88\x01\x01\"6\n\rRenepayStatus\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\t\n\x07_bolt11B\t\n\x07_bolt12B\n\n\x08_groupid\"l\n\x14ReserveinputsRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x16\n\texclusive\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07reserve\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x0c\n\n_exclusiveB\n\n\x08_reserve\"M\n\x15ReserveinputsResponse\x12\x34\n\x0creservations\x18\x01 \x03(\x0b\x32\x1e.cln.ReserveinputsReservations\"z\n\x19ReserveinputsReservations\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\"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\"\xb0\x01\n\x12SendinvoiceRequest\x12\x0e\n\x06invreq\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12%\n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08quantity\x18\x05 \x01(\x04H\x02\x88\x01\x01\x42\x0e\n\x0c_amount_msatB\n\n\x08_timeoutB\x0b\n\t_quantity\"\xcf\x04\n\x13SendinvoiceResponse\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.SendinvoiceResponse.SendinvoiceStatus\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\x62olt12\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x08 \x01(\x04H\x02\x88\x01\x01\x12\x1a\n\rupdated_index\x18\t \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tpay_index\x18\n \x01(\x04H\x04\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0c \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\x07\x88\x01\x01\"6\n\x11SendinvoiceStatus\x12\n\n\x06UNPAID\x10\x00\x12\x08\n\x04PAID\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x42\x0e\n\x0c_amount_msatB\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\x13\n\x11_payment_preimage\"\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*\n\x15minimum_htlc_out_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12$\n\x17warning_htlcmin_too_low\x18\x07 \x01(\tH\x01\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\x02\x88\x01\x01\x12\x1e\n\x11ignore_fee_limits\x18\n \x01(\x08H\x03\x88\x01\x01\x42\x13\n\x11_short_channel_idB\x1a\n\x18_warning_htlcmin_too_lowB\x1b\n\x19_warning_htlcmax_too_highB\x14\n\x12_ignore_fee_limits\"<\n\x10SetconfigRequest\x12\x0e\n\x06\x63onfig\x18\x01 \x01(\t\x12\x10\n\x03val\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x06\n\x04_val\"9\n\x11SetconfigResponse\x12$\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x14.cln.SetconfigConfig\"\xa5\x02\n\x0fSetconfigConfig\x12\x0e\n\x06\x63onfig\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x13\n\x06plugin\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x07\x64ynamic\x18\x04 \x01(\x08\x12\x10\n\x03set\x18\x05 \x01(\x08H\x01\x88\x01\x01\x12\x16\n\tvalue_str\x18\x06 \x01(\tH\x02\x88\x01\x01\x12$\n\nvalue_msat\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x16\n\tvalue_int\x18\x08 \x01(\x12H\x04\x88\x01\x01\x12\x17\n\nvalue_bool\x18\t \x01(\x08H\x05\x88\x01\x01\x42\t\n\x07_pluginB\x06\n\x04_setB\x0c\n\n_value_strB\r\n\x0b_value_msatB\x0c\n\n_value_intB\r\n\x0b_value_bool\"6\n\x15SetpsbtversionRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\r\"&\n\x16SetpsbtversionResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\"\'\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\"\xc9\x01\n\x12Splice_initRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x17\n\x0frelative_amount\x18\x02 \x01(\x12\x12\x18\n\x0binitialpsbt\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0e\x66\x65\x65rate_per_kw\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rforce_feerate\x18\x05 \x01(\x08H\x02\x88\x01\x01\x42\x0e\n\x0c_initialpsbtB\x11\n\x0f_feerate_per_kwB\x10\n\x0e_force_feerate\"#\n\x13Splice_initResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\"`\n\x14Splice_signedRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x0c\n\x04psbt\x18\x02 \x01(\t\x12\x17\n\nsign_first\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_sign_first\"_\n\x15Splice_signedResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\x12\x13\n\x06outnum\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x0c\n\x04psbt\x18\x04 \x01(\tB\t\n\x07_outnum\"8\n\x14Splice_updateRequest\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\x12\x0c\n\x04psbt\x18\x02 \x01(\t\"z\n\x15Splice_updateResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x1b\n\x13\x63ommitments_secured\x18\x02 \x01(\x08\x12\x1f\n\x12signatures_secured\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x15\n\x13_signatures_secured\"\xc6\x01\n\x10\x44\x65vspliceRequest\x12\x16\n\x0escript_or_json\x18\x01 \x01(\t\x12\x13\n\x06\x64ryrun\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rforce_feerate\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x16\n\tdebug_log\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\ndev_wetrun\x18\x05 \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_dryrunB\x10\n\x0e_force_feerateB\x0c\n\n_debug_logB\r\n\x0b_dev_wetrun\"\x80\x01\n\x11\x44\x65vspliceResponse\x12\x0e\n\x06\x64ryrun\x18\x01 \x03(\t\x12\x11\n\x04psbt\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02tx\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04txid\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x0b\n\x03log\x18\x05 \x03(\tB\x07\n\x05_psbtB\x05\n\x03_txB\x07\n\x05_txid\"H\n\x16UnreserveinputsRequest\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\"Q\n\x17UnreserveinputsResponse\x12\x36\n\x0creservations\x18\x01 \x03(\x0b\x32 .cln.UnreserveinputsReservations\"\x97\x01\n\x1bUnreserveinputsReservations\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\x1e\n\x11reserved_to_block\x18\x05 \x01(\rH\x00\x88\x01\x01\x42\x14\n\x12_reserved_to_block\"n\n\x14UpgradewalletRequest\x12\"\n\x07\x66\x65\x65rate\x18\x01 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x17\n\nreservedok\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_feerateB\r\n\x0b_reservedok\"\x95\x01\n\x15UpgradewalletResponse\x12\x1a\n\rupgraded_outs\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04psbt\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0f\n\x02tx\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x12\x11\n\x04txid\x18\x04 \x01(\x0cH\x03\x88\x01\x01\x42\x10\n\x0e_upgraded_outsB\x07\n\x05_psbtB\x05\n\x03_txB\x07\n\x05_txid\"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\"\x97\x02\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\x12&\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32\x10.cln.WaitDetailsH\x03\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_deletedB\n\n\x08_details\"\xfc\x04\n\x0bWaitDetails\x12\x37\n\x06status\x18\x01 \x01(\x0e\x32\".cln.WaitDetails.WaitDetailsStatusH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x13\n\x06partid\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x14\n\x07groupid\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x08 \x01(\x0cH\x07\x88\x01\x01\x12\x17\n\nin_channel\x18\t \x01(\tH\x08\x88\x01\x01\x12\x17\n\nin_htlc_id\x18\n \x01(\x04H\t\x88\x01\x01\x12!\n\x07in_msat\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\n\x88\x01\x01\x12\x18\n\x0bout_channel\x18\x0c \x01(\tH\x0b\x88\x01\x01\"\x89\x01\n\x11WaitDetailsStatus\x12\n\n\x06UNPAID\x10\x00\x12\x08\n\x04PAID\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x12\x0b\n\x07PENDING\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x0c\n\x08\x43OMPLETE\x10\x05\x12\x0b\n\x07OFFERED\x10\x06\x12\x0b\n\x07SETTLED\x10\x07\x12\x10\n\x0cLOCAL_FAILED\x10\x08\x42\t\n\x07_statusB\x08\n\x06_labelB\x0e\n\x0c_descriptionB\t\n\x07_bolt11B\t\n\x07_bolt12B\t\n\x07_partidB\n\n\x08_groupidB\x0f\n\r_payment_hashB\r\n\x0b_in_channelB\r\n\x0b_in_htlc_idB\n\n\x08_in_msatB\x0e\n\x0c_out_channel\"4\n\x12ListconfigsRequest\x12\x13\n\x06\x63onfig\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_config\"\xa3\x1c\n\x13ListconfigsResponse\x12-\n\x07\x63onfigs\x18\x01 \x01(\x0b\x32\x17.cln.ListconfigsConfigsH\x00\x88\x01\x01\x12(\n\x07plugins\x18\x03 \x03(\x0b\x32\x17.cln.ListconfigsPlugins\x12;\n\x11important_plugins\x18\x04 \x03(\x0b\x32 .cln.ListconfigsImportantplugins\x12\x11\n\x04\x63onf\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rlightning_dir\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x14\n\x07network\x18\x07 \x01(\tH\x03\x88\x01\x01\x12\"\n\x15\x61llow_deprecated_apis\x18\x08 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08rpc_file\x18\t \x01(\tH\x05\x88\x01\x01\x12\x16\n\x0e\x64isable_plugin\x18\n \x03(\t\x12\x1b\n\x0e\x62ookkeeper_dir\x18\x0b \x01(\tH\x06\x88\x01\x01\x12\x1a\n\rbookkeeper_db\x18\x0c \x01(\tH\x07\x88\x01\x01\x12\x1d\n\x10\x61lways_use_proxy\x18\r \x01(\x08H\x08\x88\x01\x01\x12\x13\n\x06\x64\x61\x65mon\x18\x0e \x01(\x08H\t\x88\x01\x01\x12\x13\n\x06wallet\x18\x0f \x01(\tH\n\x88\x01\x01\x12\x1b\n\x0elarge_channels\x18\x10 \x01(\x08H\x0b\x88\x01\x01\x12#\n\x16\x65xperimental_dual_fund\x18\x11 \x01(\x08H\x0c\x88\x01\x01\x12\"\n\x15\x65xperimental_splicing\x18\x12 \x01(\x08H\r\x88\x01\x01\x12(\n\x1b\x65xperimental_onion_messages\x18\x13 \x01(\x08H\x0e\x88\x01\x01\x12 \n\x13\x65xperimental_offers\x18\x14 \x01(\x08H\x0f\x88\x01\x01\x12\x30\n#experimental_shutdown_wrong_funding\x18\x15 \x01(\x08H\x10\x88\x01\x01\x12&\n\x19\x65xperimental_peer_storage\x18\x16 \x01(\x08H\x11\x88\x01\x01\x12!\n\x14\x65xperimental_quiesce\x18\x17 \x01(\x08H\x12\x88\x01\x01\x12*\n\x1d\x65xperimental_upgrade_protocol\x18\x18 \x01(\x08H\x13\x88\x01\x01\x12&\n\x19invoices_onchain_fallback\x18\x19 \x01(\x08H\x14\x88\x01\x01\x12\x1d\n\x10\x64\x61tabase_upgrade\x18\x1a \x01(\x08H\x15\x88\x01\x01\x12\x10\n\x03rgb\x18\x1b \x01(\x0cH\x16\x88\x01\x01\x12\x12\n\x05\x61lias\x18\x1c \x01(\tH\x17\x88\x01\x01\x12\x15\n\x08pid_file\x18\x1d \x01(\tH\x18\x88\x01\x01\x12\x1e\n\x11ignore_fee_limits\x18\x1e \x01(\x08H\x19\x88\x01\x01\x12\x1d\n\x10watchtime_blocks\x18\x1f \x01(\rH\x1a\x88\x01\x01\x12 \n\x13max_locktime_blocks\x18 \x01(\rH\x1b\x88\x01\x01\x12\x1d\n\x10\x66unding_confirms\x18! \x01(\rH\x1c\x88\x01\x01\x12\x17\n\ncltv_delta\x18\" \x01(\rH\x1d\x88\x01\x01\x12\x17\n\ncltv_final\x18# \x01(\rH\x1e\x88\x01\x01\x12\x18\n\x0b\x63ommit_time\x18$ \x01(\rH\x1f\x88\x01\x01\x12\x15\n\x08\x66\x65\x65_base\x18% \x01(\rH \x88\x01\x01\x12\x13\n\x06rescan\x18& \x01(\x12H!\x88\x01\x01\x12\x1c\n\x0f\x66\x65\x65_per_satoshi\x18\' \x01(\rH\"\x88\x01\x01\x12!\n\x14max_concurrent_htlcs\x18( \x01(\rH#\x88\x01\x01\x12+\n\x11htlc_minimum_msat\x18) \x01(\x0b\x32\x0b.cln.AmountH$\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18* \x01(\x0b\x32\x0b.cln.AmountH%\x88\x01\x01\x12\x35\n\x1bmax_dust_htlc_exposure_msat\x18+ \x01(\x0b\x32\x0b.cln.AmountH&\x88\x01\x01\x12\x1d\n\x10min_capacity_sat\x18, \x01(\x04H\'\x88\x01\x01\x12\x11\n\x04\x61\x64\x64r\x18- \x01(\tH(\x88\x01\x01\x12\x1a\n\rannounce_addr\x18. \x01(\tH)\x88\x01\x01\x12\x16\n\tbind_addr\x18/ \x01(\tH*\x88\x01\x01\x12\x14\n\x07offline\x18\x30 \x01(\x08H+\x88\x01\x01\x12\x17\n\nautolisten\x18\x31 \x01(\x08H,\x88\x01\x01\x12\x12\n\x05proxy\x18\x32 \x01(\tH-\x88\x01\x01\x12\x18\n\x0b\x64isable_dns\x18\x33 \x01(\x08H.\x88\x01\x01\x12%\n\x18\x61nnounce_addr_discovered\x18\x34 \x01(\tH/\x88\x01\x01\x12*\n\x1d\x61nnounce_addr_discovered_port\x18\x35 \x01(\x12H0\x88\x01\x01\x12\x1a\n\rencrypted_hsm\x18\x36 \x01(\x08H1\x88\x01\x01\x12\x1a\n\rrpc_file_mode\x18\x37 \x01(\tH2\x88\x01\x01\x12\x16\n\tlog_level\x18\x38 \x01(\tH3\x88\x01\x01\x12\x17\n\nlog_prefix\x18\x39 \x01(\tH4\x88\x01\x01\x12\x15\n\x08log_file\x18: \x01(\tH5\x88\x01\x01\x12\x1b\n\x0elog_timestamps\x18; \x01(\x08H6\x88\x01\x01\x12\x1b\n\x0e\x66orce_feerates\x18< \x01(\tH7\x88\x01\x01\x12\x16\n\tsubdaemon\x18= \x01(\tH8\x88\x01\x01\x12#\n\x16\x66\x65tchinvoice_noconnect\x18> \x01(\x08H9\x88\x01\x01\x12\"\n\x15\x61\x63\x63\x65pt_htlc_tlv_types\x18? \x01(\tH:\x88\x01\x01\x12!\n\x14tor_service_password\x18@ \x01(\tH;\x88\x01\x01\x12!\n\x14\x64\x65v_allowdustreserve\x18\x41 \x01(\x08H<\x88\x01\x01\x12\x1e\n\x11\x61nnounce_addr_dns\x18\x42 \x01(\x08H=\x88\x01\x01\x12%\n\x18require_confirmed_inputs\x18\x43 \x01(\x08H>\x88\x01\x01\x12\x16\n\tdeveloper\x18\x44 \x01(\x08H?\x88\x01\x01\x12\x17\n\ncommit_fee\x18\x45 \x01(\x04H@\x88\x01\x01\x12,\n\x12min_emergency_msat\x18\x46 \x01(\x0b\x32\x0b.cln.AmountHA\x88\x01\x01\x12\"\n\x15\x63ommit_feerate_offset\x18G \x01(\rHB\x88\x01\x01\x12%\n\x18\x61utoconnect_seeker_peers\x18H \x01(\rHC\x88\x01\x01\x42\n\n\x08_configsB\x07\n\x05_confB\x10\n\x0e_lightning_dirB\n\n\x08_networkB\x18\n\x16_allow_deprecated_apisB\x0b\n\t_rpc_fileB\x11\n\x0f_bookkeeper_dirB\x10\n\x0e_bookkeeper_dbB\x13\n\x11_always_use_proxyB\t\n\x07_daemonB\t\n\x07_walletB\x11\n\x0f_large_channelsB\x19\n\x17_experimental_dual_fundB\x18\n\x16_experimental_splicingB\x1e\n\x1c_experimental_onion_messagesB\x16\n\x14_experimental_offersB&\n$_experimental_shutdown_wrong_fundingB\x1c\n\x1a_experimental_peer_storageB\x17\n\x15_experimental_quiesceB \n\x1e_experimental_upgrade_protocolB\x1c\n\x1a_invoices_onchain_fallbackB\x13\n\x11_database_upgradeB\x06\n\x04_rgbB\x08\n\x06_aliasB\x0b\n\t_pid_fileB\x14\n\x12_ignore_fee_limitsB\x13\n\x11_watchtime_blocksB\x16\n\x14_max_locktime_blocksB\x13\n\x11_funding_confirmsB\r\n\x0b_cltv_deltaB\r\n\x0b_cltv_finalB\x0e\n\x0c_commit_timeB\x0b\n\t_fee_baseB\t\n\x07_rescanB\x12\n\x10_fee_per_satoshiB\x17\n\x15_max_concurrent_htlcsB\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x1e\n\x1c_max_dust_htlc_exposure_msatB\x13\n\x11_min_capacity_satB\x07\n\x05_addrB\x10\n\x0e_announce_addrB\x0c\n\n_bind_addrB\n\n\x08_offlineB\r\n\x0b_autolistenB\x08\n\x06_proxyB\x0e\n\x0c_disable_dnsB\x1b\n\x19_announce_addr_discoveredB \n\x1e_announce_addr_discovered_portB\x10\n\x0e_encrypted_hsmB\x10\n\x0e_rpc_file_modeB\x0c\n\n_log_levelB\r\n\x0b_log_prefixB\x0b\n\t_log_fileB\x11\n\x0f_log_timestampsB\x11\n\x0f_force_feeratesB\x0c\n\n_subdaemonB\x19\n\x17_fetchinvoice_noconnectB\x18\n\x16_accept_htlc_tlv_typesB\x17\n\x15_tor_service_passwordB\x17\n\x15_dev_allowdustreserveB\x14\n\x12_announce_addr_dnsB\x1b\n\x19_require_confirmed_inputsB\x0c\n\n_developerB\r\n\x0b_commit_feeB\x15\n\x13_min_emergency_msatB\x18\n\x16_commit_feerate_offsetB\x1b\n\x19_autoconnect_seeker_peers\"\xd2/\n\x12ListconfigsConfigs\x12.\n\x04\x63onf\x18\x01 \x01(\x0b\x32\x1b.cln.ListconfigsConfigsConfH\x00\x88\x01\x01\x12\x38\n\tdeveloper\x18\x02 \x01(\x0b\x32 .cln.ListconfigsConfigsDeveloperH\x01\x88\x01\x01\x12?\n\rclear_plugins\x18\x03 \x01(\x0b\x32#.cln.ListconfigsConfigsClearpluginsH\x02\x88\x01\x01\x12;\n\x0b\x64isable_mpp\x18\x04 \x01(\x0b\x32!.cln.ListconfigsConfigsDisablemppH\x03\x88\x01\x01\x12\x34\n\x07mainnet\x18\x05 \x01(\x0b\x32\x1e.cln.ListconfigsConfigsMainnetH\x04\x88\x01\x01\x12\x34\n\x07regtest\x18\x06 \x01(\x0b\x32\x1e.cln.ListconfigsConfigsRegtestH\x05\x88\x01\x01\x12\x32\n\x06signet\x18\x07 \x01(\x0b\x32\x1d.cln.ListconfigsConfigsSignetH\x06\x88\x01\x01\x12\x34\n\x07testnet\x18\x08 \x01(\x0b\x32\x1e.cln.ListconfigsConfigsTestnetH\x07\x88\x01\x01\x12\x45\n\x10important_plugin\x18\t \x01(\x0b\x32&.cln.ListconfigsConfigsImportantpluginH\x08\x88\x01\x01\x12\x32\n\x06plugin\x18\n \x01(\x0b\x32\x1d.cln.ListconfigsConfigsPluginH\t\x88\x01\x01\x12\x39\n\nplugin_dir\x18\x0b \x01(\x0b\x32 .cln.ListconfigsConfigsPlugindirH\n\x88\x01\x01\x12?\n\rlightning_dir\x18\x0c \x01(\x0b\x32#.cln.ListconfigsConfigsLightningdirH\x0b\x88\x01\x01\x12\x34\n\x07network\x18\r \x01(\x0b\x32\x1e.cln.ListconfigsConfigsNetworkH\x0c\x88\x01\x01\x12N\n\x15\x61llow_deprecated_apis\x18\x0e \x01(\x0b\x32*.cln.ListconfigsConfigsAllowdeprecatedapisH\r\x88\x01\x01\x12\x35\n\x08rpc_file\x18\x0f \x01(\x0b\x32\x1e.cln.ListconfigsConfigsRpcfileH\x0e\x88\x01\x01\x12\x41\n\x0e\x64isable_plugin\x18\x10 \x01(\x0b\x32$.cln.ListconfigsConfigsDisablepluginH\x0f\x88\x01\x01\x12\x44\n\x10\x61lways_use_proxy\x18\x11 \x01(\x0b\x32%.cln.ListconfigsConfigsAlwaysuseproxyH\x10\x88\x01\x01\x12\x32\n\x06\x64\x61\x65mon\x18\x12 \x01(\x0b\x32\x1d.cln.ListconfigsConfigsDaemonH\x11\x88\x01\x01\x12\x32\n\x06wallet\x18\x13 \x01(\x0b\x32\x1d.cln.ListconfigsConfigsWalletH\x12\x88\x01\x01\x12\x41\n\x0elarge_channels\x18\x14 \x01(\x0b\x32$.cln.ListconfigsConfigsLargechannelsH\x13\x88\x01\x01\x12P\n\x16\x65xperimental_dual_fund\x18\x15 \x01(\x0b\x32+.cln.ListconfigsConfigsExperimentaldualfundH\x14\x88\x01\x01\x12O\n\x15\x65xperimental_splicing\x18\x16 \x01(\x0b\x32+.cln.ListconfigsConfigsExperimentalsplicingH\x15\x88\x01\x01\x12Z\n\x1b\x65xperimental_onion_messages\x18\x17 \x01(\x0b\x32\x30.cln.ListconfigsConfigsExperimentalonionmessagesH\x16\x88\x01\x01\x12K\n\x13\x65xperimental_offers\x18\x18 \x01(\x0b\x32).cln.ListconfigsConfigsExperimentaloffersH\x17\x88\x01\x01\x12i\n#experimental_shutdown_wrong_funding\x18\x19 \x01(\x0b\x32\x37.cln.ListconfigsConfigsExperimentalshutdownwrongfundingH\x18\x88\x01\x01\x12V\n\x19\x65xperimental_peer_storage\x18\x1a \x01(\x0b\x32..cln.ListconfigsConfigsExperimentalpeerstorageH\x19\x88\x01\x01\x12M\n\x14\x65xperimental_anchors\x18\x1b \x01(\x0b\x32*.cln.ListconfigsConfigsExperimentalanchorsH\x1a\x88\x01\x01\x12\x45\n\x10\x64\x61tabase_upgrade\x18\x1c \x01(\x0b\x32&.cln.ListconfigsConfigsDatabaseupgradeH\x1b\x88\x01\x01\x12,\n\x03rgb\x18\x1d \x01(\x0b\x32\x1a.cln.ListconfigsConfigsRgbH\x1c\x88\x01\x01\x12\x30\n\x05\x61lias\x18\x1e \x01(\x0b\x32\x1c.cln.ListconfigsConfigsAliasH\x1d\x88\x01\x01\x12\x35\n\x08pid_file\x18\x1f \x01(\x0b\x32\x1e.cln.ListconfigsConfigsPidfileH\x1e\x88\x01\x01\x12\x46\n\x11ignore_fee_limits\x18 \x01(\x0b\x32&.cln.ListconfigsConfigsIgnorefeelimitsH\x1f\x88\x01\x01\x12\x45\n\x10watchtime_blocks\x18! \x01(\x0b\x32&.cln.ListconfigsConfigsWatchtimeblocksH \x88\x01\x01\x12J\n\x13max_locktime_blocks\x18\" \x01(\x0b\x32(.cln.ListconfigsConfigsMaxlocktimeblocksH!\x88\x01\x01\x12\x45\n\x10\x66unding_confirms\x18# \x01(\x0b\x32&.cln.ListconfigsConfigsFundingconfirmsH\"\x88\x01\x01\x12\x39\n\ncltv_delta\x18$ \x01(\x0b\x32 .cln.ListconfigsConfigsCltvdeltaH#\x88\x01\x01\x12\x39\n\ncltv_final\x18% \x01(\x0b\x32 .cln.ListconfigsConfigsCltvfinalH$\x88\x01\x01\x12;\n\x0b\x63ommit_time\x18& \x01(\x0b\x32!.cln.ListconfigsConfigsCommittimeH%\x88\x01\x01\x12\x35\n\x08\x66\x65\x65_base\x18\' \x01(\x0b\x32\x1e.cln.ListconfigsConfigsFeebaseH&\x88\x01\x01\x12\x32\n\x06rescan\x18( \x01(\x0b\x32\x1d.cln.ListconfigsConfigsRescanH\'\x88\x01\x01\x12\x42\n\x0f\x66\x65\x65_per_satoshi\x18) \x01(\x0b\x32$.cln.ListconfigsConfigsFeepersatoshiH(\x88\x01\x01\x12L\n\x14max_concurrent_htlcs\x18* \x01(\x0b\x32).cln.ListconfigsConfigsMaxconcurrenthtlcsH)\x88\x01\x01\x12\x46\n\x11htlc_minimum_msat\x18+ \x01(\x0b\x32&.cln.ListconfigsConfigsHtlcminimummsatH*\x88\x01\x01\x12\x46\n\x11htlc_maximum_msat\x18, \x01(\x0b\x32&.cln.ListconfigsConfigsHtlcmaximummsatH+\x88\x01\x01\x12X\n\x1bmax_dust_htlc_exposure_msat\x18- \x01(\x0b\x32..cln.ListconfigsConfigsMaxdusthtlcexposuremsatH,\x88\x01\x01\x12\x44\n\x10min_capacity_sat\x18. \x01(\x0b\x32%.cln.ListconfigsConfigsMincapacitysatH-\x88\x01\x01\x12.\n\x04\x61\x64\x64r\x18/ \x01(\x0b\x32\x1b.cln.ListconfigsConfigsAddrH.\x88\x01\x01\x12?\n\rannounce_addr\x18\x30 \x01(\x0b\x32#.cln.ListconfigsConfigsAnnounceaddrH/\x88\x01\x01\x12\x37\n\tbind_addr\x18\x31 \x01(\x0b\x32\x1f.cln.ListconfigsConfigsBindaddrH0\x88\x01\x01\x12\x34\n\x07offline\x18\x32 \x01(\x0b\x32\x1e.cln.ListconfigsConfigsOfflineH1\x88\x01\x01\x12:\n\nautolisten\x18\x33 \x01(\x0b\x32!.cln.ListconfigsConfigsAutolistenH2\x88\x01\x01\x12\x30\n\x05proxy\x18\x34 \x01(\x0b\x32\x1c.cln.ListconfigsConfigsProxyH3\x88\x01\x01\x12;\n\x0b\x64isable_dns\x18\x35 \x01(\x0b\x32!.cln.ListconfigsConfigsDisablednsH4\x88\x01\x01\x12T\n\x18\x61nnounce_addr_discovered\x18\x36 \x01(\x0b\x32-.cln.ListconfigsConfigsAnnounceaddrdiscoveredH5\x88\x01\x01\x12]\n\x1d\x61nnounce_addr_discovered_port\x18\x37 \x01(\x0b\x32\x31.cln.ListconfigsConfigsAnnounceaddrdiscoveredportH6\x88\x01\x01\x12?\n\rencrypted_hsm\x18\x38 \x01(\x0b\x32#.cln.ListconfigsConfigsEncryptedhsmH7\x88\x01\x01\x12>\n\rrpc_file_mode\x18\x39 \x01(\x0b\x32\".cln.ListconfigsConfigsRpcfilemodeH8\x88\x01\x01\x12\x37\n\tlog_level\x18: \x01(\x0b\x32\x1f.cln.ListconfigsConfigsLoglevelH9\x88\x01\x01\x12\x39\n\nlog_prefix\x18; \x01(\x0b\x32 .cln.ListconfigsConfigsLogprefixH:\x88\x01\x01\x12\x35\n\x08log_file\x18< \x01(\x0b\x32\x1e.cln.ListconfigsConfigsLogfileH;\x88\x01\x01\x12\x41\n\x0elog_timestamps\x18= \x01(\x0b\x32$.cln.ListconfigsConfigsLogtimestampsH<\x88\x01\x01\x12\x41\n\x0e\x66orce_feerates\x18> \x01(\x0b\x32$.cln.ListconfigsConfigsForcefeeratesH=\x88\x01\x01\x12\x38\n\tsubdaemon\x18? \x01(\x0b\x32 .cln.ListconfigsConfigsSubdaemonH>\x88\x01\x01\x12Q\n\x16\x66\x65tchinvoice_noconnect\x18@ \x01(\x0b\x32,.cln.ListconfigsConfigsFetchinvoicenoconnectH?\x88\x01\x01\x12M\n\x15\x61\x63\x63\x65pt_htlc_tlv_types\x18\x41 \x01(\x0b\x32).cln.ListconfigsConfigsAccepthtlctlvtypesH@\x88\x01\x01\x12L\n\x14tor_service_password\x18\x42 \x01(\x0b\x32).cln.ListconfigsConfigsTorservicepasswordHA\x88\x01\x01\x12\x46\n\x11\x61nnounce_addr_dns\x18\x43 \x01(\x0b\x32&.cln.ListconfigsConfigsAnnounceaddrdnsHB\x88\x01\x01\x12T\n\x18require_confirmed_inputs\x18\x44 \x01(\x0b\x32-.cln.ListconfigsConfigsRequireconfirmedinputsHC\x88\x01\x01\x12\x39\n\ncommit_fee\x18\x45 \x01(\x0b\x32 .cln.ListconfigsConfigsCommitfeeHD\x88\x01\x01\x12N\n\x15\x63ommit_feerate_offset\x18\x46 \x01(\x0b\x32*.cln.ListconfigsConfigsCommitfeerateoffsetHE\x88\x01\x01\x12T\n\x18\x61utoconnect_seeker_peers\x18G \x01(\x0b\x32-.cln.ListconfigsConfigsAutoconnectseekerpeersHF\x88\x01\x01\x42\x07\n\x05_confB\x0c\n\n_developerB\x10\n\x0e_clear_pluginsB\x0e\n\x0c_disable_mppB\n\n\x08_mainnetB\n\n\x08_regtestB\t\n\x07_signetB\n\n\x08_testnetB\x13\n\x11_important_pluginB\t\n\x07_pluginB\r\n\x0b_plugin_dirB\x10\n\x0e_lightning_dirB\n\n\x08_networkB\x18\n\x16_allow_deprecated_apisB\x0b\n\t_rpc_fileB\x11\n\x0f_disable_pluginB\x13\n\x11_always_use_proxyB\t\n\x07_daemonB\t\n\x07_walletB\x11\n\x0f_large_channelsB\x19\n\x17_experimental_dual_fundB\x18\n\x16_experimental_splicingB\x1e\n\x1c_experimental_onion_messagesB\x16\n\x14_experimental_offersB&\n$_experimental_shutdown_wrong_fundingB\x1c\n\x1a_experimental_peer_storageB\x17\n\x15_experimental_anchorsB\x13\n\x11_database_upgradeB\x06\n\x04_rgbB\x08\n\x06_aliasB\x0b\n\t_pid_fileB\x14\n\x12_ignore_fee_limitsB\x13\n\x11_watchtime_blocksB\x16\n\x14_max_locktime_blocksB\x13\n\x11_funding_confirmsB\r\n\x0b_cltv_deltaB\r\n\x0b_cltv_finalB\x0e\n\x0c_commit_timeB\x0b\n\t_fee_baseB\t\n\x07_rescanB\x12\n\x10_fee_per_satoshiB\x17\n\x15_max_concurrent_htlcsB\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x1e\n\x1c_max_dust_htlc_exposure_msatB\x13\n\x11_min_capacity_satB\x07\n\x05_addrB\x10\n\x0e_announce_addrB\x0c\n\n_bind_addrB\n\n\x08_offlineB\r\n\x0b_autolistenB\x08\n\x06_proxyB\x0e\n\x0c_disable_dnsB\x1b\n\x19_announce_addr_discoveredB \n\x1e_announce_addr_discovered_portB\x10\n\x0e_encrypted_hsmB\x10\n\x0e_rpc_file_modeB\x0c\n\n_log_levelB\r\n\x0b_log_prefixB\x0b\n\t_log_fileB\x11\n\x0f_log_timestampsB\x11\n\x0f_force_feeratesB\x0c\n\n_subdaemonB\x19\n\x17_fetchinvoice_noconnectB\x18\n\x16_accept_htlc_tlv_typesB\x17\n\x15_tor_service_passwordB\x14\n\x12_announce_addr_dnsB\x1b\n\x19_require_confirmed_inputsB\r\n\x0b_commit_feeB\x18\n\x16_commit_feerate_offsetB\x1b\n\x19_autoconnect_seeker_peers\"\xa2\x01\n\x16ListconfigsConfigsConf\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12H\n\x06source\x18\x02 \x01(\x0e\x32\x38.cln.ListconfigsConfigsConf.ListconfigsConfigsConfSource\"+\n\x1cListconfigsConfigsConfSource\x12\x0b\n\x07\x43MDLINE\x10\x00\":\n\x1bListconfigsConfigsDeveloper\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"=\n\x1eListconfigsConfigsClearplugins\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"[\n\x1cListconfigsConfigsDisablempp\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x13\n\x06plugin\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_plugin\"8\n\x19ListconfigsConfigsMainnet\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"8\n\x19ListconfigsConfigsRegtest\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"7\n\x18ListconfigsConfigsSignet\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"8\n\x19ListconfigsConfigsTestnet\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"H\n!ListconfigsConfigsImportantplugin\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"?\n\x18ListconfigsConfigsPlugin\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"B\n\x1bListconfigsConfigsPlugindir\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"C\n\x1eListconfigsConfigsLightningdir\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\">\n\x19ListconfigsConfigsNetwork\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"K\n%ListconfigsConfigsAllowdeprecatedapis\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\">\n\x19ListconfigsConfigsRpcfile\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"F\n\x1fListconfigsConfigsDisableplugin\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"F\n ListconfigsConfigsAlwaysuseproxy\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"7\n\x18ListconfigsConfigsDaemon\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"=\n\x18ListconfigsConfigsWallet\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\">\n\x1fListconfigsConfigsLargechannels\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"E\n&ListconfigsConfigsExperimentaldualfund\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"E\n&ListconfigsConfigsExperimentalsplicing\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"J\n+ListconfigsConfigsExperimentalonionmessages\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"C\n$ListconfigsConfigsExperimentaloffers\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"Q\n2ListconfigsConfigsExperimentalshutdownwrongfunding\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"H\n)ListconfigsConfigsExperimentalpeerstorage\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"D\n%ListconfigsConfigsExperimentalanchors\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"G\n!ListconfigsConfigsDatabaseupgrade\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\":\n\x15ListconfigsConfigsRgb\x12\x11\n\tvalue_str\x18\x01 \x01(\x0c\x12\x0e\n\x06source\x18\x02 \x01(\t\"<\n\x17ListconfigsConfigsAlias\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\">\n\x19ListconfigsConfigsPidfile\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"G\n!ListconfigsConfigsIgnorefeelimits\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"F\n!ListconfigsConfigsWatchtimeblocks\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"H\n#ListconfigsConfigsMaxlocktimeblocks\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"F\n!ListconfigsConfigsFundingconfirms\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"@\n\x1bListconfigsConfigsCltvdelta\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"@\n\x1bListconfigsConfigsCltvfinal\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"A\n\x1cListconfigsConfigsCommittime\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\">\n\x19ListconfigsConfigsFeebase\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"=\n\x18ListconfigsConfigsRescan\x12\x11\n\tvalue_int\x18\x01 \x01(\x12\x12\x0e\n\x06source\x18\x02 \x01(\t\"D\n\x1fListconfigsConfigsFeepersatoshi\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"I\n$ListconfigsConfigsMaxconcurrenthtlcs\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"T\n!ListconfigsConfigsHtlcminimummsat\x12\x1f\n\nvalue_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x0e\n\x06source\x18\x02 \x01(\t\"T\n!ListconfigsConfigsHtlcmaximummsat\x12\x1f\n\nvalue_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x0e\n\x06source\x18\x02 \x01(\t\"\\\n)ListconfigsConfigsMaxdusthtlcexposuremsat\x12\x1f\n\nvalue_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x0e\n\x06source\x18\x02 \x01(\t\"g\n ListconfigsConfigsMincapacitysat\x12\x11\n\tvalue_int\x18\x01 \x01(\x04\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x14\n\x07\x64ynamic\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_dynamic\"=\n\x16ListconfigsConfigsAddr\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"E\n\x1eListconfigsConfigsAnnounceaddr\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"A\n\x1aListconfigsConfigsBindaddr\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"8\n\x19ListconfigsConfigsOffline\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"B\n\x1cListconfigsConfigsAutolisten\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"<\n\x17ListconfigsConfigsProxy\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\";\n\x1cListconfigsConfigsDisabledns\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"\x82\x02\n(ListconfigsConfigsAnnounceaddrdiscovered\x12r\n\tvalue_str\x18\x01 \x01(\x0e\x32_.cln.ListconfigsConfigsAnnounceaddrdiscovered.ListconfigsConfigsAnnounceaddrdiscoveredValue_str\x12\x0e\n\x06source\x18\x02 \x01(\t\"R\n1ListconfigsConfigsAnnounceaddrdiscoveredValue_str\x12\x08\n\x04TRUE\x10\x00\x12\t\n\x05\x46\x41LSE\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\"Q\n,ListconfigsConfigsAnnounceaddrdiscoveredport\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"=\n\x1eListconfigsConfigsEncryptedhsm\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"B\n\x1dListconfigsConfigsRpcfilemode\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"?\n\x1aListconfigsConfigsLoglevel\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"@\n\x1bListconfigsConfigsLogprefix\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"@\n\x19ListconfigsConfigsLogfile\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"E\n\x1fListconfigsConfigsLogtimestamps\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"D\n\x1fListconfigsConfigsForcefeerates\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"B\n\x1bListconfigsConfigsSubdaemon\x12\x12\n\nvalues_str\x18\x01 \x03(\t\x12\x0f\n\x07sources\x18\x02 \x03(\t\"f\n\'ListconfigsConfigsFetchinvoicenoconnect\x12\x0b\n\x03set\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\x12\x13\n\x06plugin\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_plugin\"I\n$ListconfigsConfigsAccepthtlctlvtypes\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"I\n$ListconfigsConfigsTorservicepassword\x12\x11\n\tvalue_str\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\t\"G\n!ListconfigsConfigsAnnounceaddrdns\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"N\n(ListconfigsConfigsRequireconfirmedinputs\x12\x12\n\nvalue_bool\x18\x01 \x01(\x08\x12\x0e\n\x06source\x18\x02 \x01(\t\"@\n\x1bListconfigsConfigsCommitfee\x12\x11\n\tvalue_int\x18\x01 \x01(\x04\x12\x0e\n\x06source\x18\x02 \x01(\t\"J\n%ListconfigsConfigsCommitfeerateoffset\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"M\n(ListconfigsConfigsAutoconnectseekerpeers\x12\x11\n\tvalue_int\x18\x01 \x01(\r\x12\x0e\n\x06source\x18\x02 \x01(\t\"r\n\x12ListconfigsPlugins\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x34\n\x07options\x18\x03 \x01(\x0b\x32\x1e.cln.ListconfigsPluginsOptionsH\x00\x88\x01\x01\x42\n\n\x08_options\"\x1b\n\x19ListconfigsPluginsOptions\"\x84\x01\n\x1bListconfigsImportantplugins\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12=\n\x07options\x18\x03 \x01(\x0b\x32\'.cln.ListconfigsImportantpluginsOptionsH\x00\x88\x01\x01\x42\n\n\x08_options\"$\n\"ListconfigsImportantpluginsOptions\"\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\"/\n\x0bHelpRequest\x12\x14\n\x07\x63ommand\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_command\"\x95\x01\n\x0cHelpResponse\x12\x1b\n\x04help\x18\x01 \x03(\x0b\x32\r.cln.HelpHelp\x12:\n\x0b\x66ormat_hint\x18\x02 \x01(\x0e\x32 .cln.HelpResponse.HelpFormathintH\x00\x88\x01\x01\"\x1c\n\x0eHelpFormathint\x12\n\n\x06SIMPLE\x10\x00\x42\x0e\n\x0c_format_hint\"\x1b\n\x08HelpHelp\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\"g\n\x18PreapprovekeysendRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\x0c\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\"\x1b\n\x19PreapprovekeysendResponse\"*\n\x18PreapproveinvoiceRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\"\x1b\n\x19PreapproveinvoiceResponse\"\x15\n\x13StaticbackupRequest\"#\n\x14StaticbackupResponse\x12\x0b\n\x03scb\x18\x01 \x03(\x0c\"d\n\x16\x42kprchannelsapyRequest\x12\x17\n\nstart_time\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_time\"Q\n\x17\x42kprchannelsapyResponse\x12\x36\n\x0c\x63hannels_apy\x18\x01 \x03(\x0b\x32 .cln.BkprchannelsapyChannels_apy\"\xfa\x06\n\x1b\x42kprchannelsapyChannels_apy\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12$\n\x0frouted_out_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0erouted_in_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12(\n\x13lease_fee_paid_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12*\n\x15lease_fee_earned_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12$\n\x0fpushed_out_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0epushed_in_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12+\n\x16our_start_balance_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12/\n\x1a\x63hannel_start_balance_msat\x18\t \x01(\x0b\x32\x0b.cln.Amount\x12\"\n\rfees_out_msat\x18\n \x01(\x0b\x32\x0b.cln.Amount\x12&\n\x0c\x66\x65\x65s_in_msat\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x17\n\x0futilization_out\x18\x0c \x01(\t\x12$\n\x17utilization_out_initial\x18\r \x01(\tH\x01\x88\x01\x01\x12\x16\n\x0eutilization_in\x18\x0e \x01(\t\x12#\n\x16utilization_in_initial\x18\x0f \x01(\tH\x02\x88\x01\x01\x12\x0f\n\x07\x61py_out\x18\x10 \x01(\t\x12\x1c\n\x0f\x61py_out_initial\x18\x11 \x01(\tH\x03\x88\x01\x01\x12\x0e\n\x06\x61py_in\x18\x12 \x01(\t\x12\x1b\n\x0e\x61py_in_initial\x18\x13 \x01(\tH\x04\x88\x01\x01\x12\x11\n\tapy_total\x18\x14 \x01(\t\x12\x1e\n\x11\x61py_total_initial\x18\x15 \x01(\tH\x05\x88\x01\x01\x12\x16\n\tapy_lease\x18\x16 \x01(\tH\x06\x88\x01\x01\x42\x0f\n\r_fees_in_msatB\x1a\n\x18_utilization_out_initialB\x19\n\x17_utilization_in_initialB\x12\n\x10_apy_out_initialB\x11\n\x0f_apy_in_initialB\x14\n\x12_apy_total_initialB\x0c\n\n_apy_lease\"\xd2\x01\n\x18\x42kprdumpincomecsvRequest\x12\x12\n\ncsv_format\x18\x01 \x01(\t\x12\x15\n\x08\x63sv_file\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10\x63onsolidate_fees\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x17\n\nstart_time\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x05 \x01(\x04H\x03\x88\x01\x01\x42\x0b\n\t_csv_fileB\x13\n\x11_consolidate_feesB\r\n\x0b_start_timeB\x0b\n\t_end_time\"\xd6\x01\n\x19\x42kprdumpincomecsvResponse\x12\x10\n\x08\x63sv_file\x18\x01 \x01(\t\x12N\n\ncsv_format\x18\x02 \x01(\x0e\x32:.cln.BkprdumpincomecsvResponse.BkprdumpincomecsvCsv_format\"W\n\x1b\x42kprdumpincomecsvCsv_format\x12\x0f\n\x0b\x43OINTRACKER\x10\x00\x12\n\n\x06KOINLY\x10\x01\x12\x0b\n\x07HARMONY\x10\x02\x12\x0e\n\nQUICKBOOKS\x10\x03\"%\n\x12\x42kprinspectRequest\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\"7\n\x13\x42kprinspectResponse\x12 \n\x03txs\x18\x01 \x03(\x0b\x32\x13.cln.BkprinspectTxs\"\x9a\x01\n\x0e\x42kprinspectTxs\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x18\n\x0b\x62lockheight\x18\x02 \x01(\rH\x00\x88\x01\x01\x12#\n\x0e\x66\x65\x65s_paid_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12+\n\x07outputs\x18\x04 \x03(\x0b\x32\x1a.cln.BkprinspectTxsOutputsB\x0e\n\x0c_blockheight\"\xbc\x03\n\x15\x42kprinspectTxsOutputs\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x0e\n\x06outnum\x18\x02 \x01(\r\x12&\n\x11output_value_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x10\n\x08\x63urrency\x18\x04 \x01(\t\x12%\n\x0b\x63redit_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12$\n\ndebit_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12 \n\x13originating_account\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x17\n\noutput_tag\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x16\n\tspend_tag\x18\t \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rspending_txid\x18\n \x01(\x0cH\x05\x88\x01\x01\x12\x17\n\npayment_id\x18\x0b \x01(\x0cH\x06\x88\x01\x01\x42\x0e\n\x0c_credit_msatB\r\n\x0b_debit_msatB\x16\n\x14_originating_accountB\r\n\x0b_output_tagB\x0c\n\n_spend_tagB\x10\n\x0e_spending_txidB\r\n\x0b_payment_id\"h\n\x1c\x42kprlistaccounteventsRequest\x12\x14\n\x07\x61\x63\x63ount\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\npayment_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\n\n\x08_accountB\r\n\x0b_payment_id\"Q\n\x1d\x42kprlistaccounteventsResponse\x12\x30\n\x06\x65vents\x18\x01 \x03(\x0b\x32 .cln.BkprlistaccounteventsEvents\"\xa1\x05\n\x1b\x42kprlistaccounteventsEvents\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12S\n\titem_type\x18\x02 \x01(\x0e\x32@.cln.BkprlistaccounteventsEvents.BkprlistaccounteventsEventsType\x12\x0b\n\x03tag\x18\x03 \x01(\t\x12 \n\x0b\x63redit_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x1f\n\ndebit_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x10\n\x08\x63urrency\x18\x06 \x01(\t\x12\x11\n\ttimestamp\x18\x07 \x01(\r\x12\x15\n\x08outpoint\x18\x08 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x62lockheight\x18\t \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06origin\x18\n \x01(\tH\x02\x88\x01\x01\x12\x17\n\npayment_id\x18\x0b \x01(\x0cH\x03\x88\x01\x01\x12\x11\n\x04txid\x18\x0c \x01(\x0cH\x04\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\r \x01(\tH\x05\x88\x01\x01\x12#\n\tfees_msat\x18\x0e \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x19\n\x0cis_rebalance\x18\x0f \x01(\x08H\x07\x88\x01\x01\x12\x14\n\x07part_id\x18\x10 \x01(\rH\x08\x88\x01\x01\"J\n\x1f\x42kprlistaccounteventsEventsType\x12\x0f\n\x0bONCHAIN_FEE\x10\x00\x12\t\n\x05\x43HAIN\x10\x01\x12\x0b\n\x07\x43HANNEL\x10\x02\x42\x0b\n\t_outpointB\x0e\n\x0c_blockheightB\t\n\x07_originB\r\n\x0b_payment_idB\x07\n\x05_txidB\x0e\n\x0c_descriptionB\x0c\n\n_fees_msatB\x0f\n\r_is_rebalanceB\n\n\x08_part_id\"\x19\n\x17\x42kprlistbalancesRequest\"K\n\x18\x42kprlistbalancesResponse\x12/\n\x08\x61\x63\x63ounts\x18\x01 \x03(\x0b\x32\x1d.cln.BkprlistbalancesAccounts\"\xc6\x02\n\x18\x42kprlistbalancesAccounts\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x37\n\x08\x62\x61lances\x18\x02 \x03(\x0b\x32%.cln.BkprlistbalancesAccountsBalances\x12\x14\n\x07peer_id\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x16\n\twe_opened\x18\x04 \x01(\x08H\x01\x88\x01\x01\x12\x1b\n\x0e\x61\x63\x63ount_closed\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x61\x63\x63ount_resolved\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x11resolved_at_block\x18\x07 \x01(\rH\x04\x88\x01\x01\x42\n\n\x08_peer_idB\x0c\n\n_we_openedB\x11\n\x0f_account_closedB\x13\n\x11_account_resolvedB\x14\n\x12_resolved_at_block\"X\n BkprlistbalancesAccountsBalances\x12!\n\x0c\x62\x61lance_msat\x18\x01 \x01(\x0b\x32\x0b.cln.Amount\x12\x11\n\tcoin_type\x18\x02 \x01(\t\"\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_id\"P\n%BkpreditdescriptionbypaymentidRequest\x12\x12\n\npayment_id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"e\n&BkpreditdescriptionbypaymentidResponse\x12;\n\x07updated\x18\x01 \x03(\x0b\x32*.cln.BkpreditdescriptionbypaymentidUpdated\"\xa3\x05\n%BkpreditdescriptionbypaymentidUpdated\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12g\n\titem_type\x18\x02 \x01(\x0e\x32T.cln.BkpreditdescriptionbypaymentidUpdated.BkpreditdescriptionbypaymentidUpdatedType\x12\x0b\n\x03tag\x18\x03 \x01(\t\x12 \n\x0b\x63redit_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x1f\n\ndebit_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x10\n\x08\x63urrency\x18\x06 \x01(\t\x12\x11\n\ttimestamp\x18\x07 \x01(\r\x12\x13\n\x0b\x64\x65scription\x18\x08 \x01(\t\x12\x15\n\x08outpoint\x18\t \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x62lockheight\x18\n \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06origin\x18\x0b \x01(\tH\x02\x88\x01\x01\x12\x17\n\npayment_id\x18\x0c \x01(\x0cH\x03\x88\x01\x01\x12\x11\n\x04txid\x18\r \x01(\x0cH\x04\x88\x01\x01\x12#\n\tfees_msat\x18\x0e \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x19\n\x0cis_rebalance\x18\x0f \x01(\x08H\x06\x88\x01\x01\x12\x14\n\x07part_id\x18\x10 \x01(\rH\x07\x88\x01\x01\"C\n)BkpreditdescriptionbypaymentidUpdatedType\x12\t\n\x05\x43HAIN\x10\x00\x12\x0b\n\x07\x43HANNEL\x10\x01\x42\x0b\n\t_outpointB\x0e\n\x0c_blockheightB\t\n\x07_originB\r\n\x0b_payment_idB\x07\n\x05_txidB\x0c\n\n_fees_msatB\x0f\n\r_is_rebalanceB\n\n\x08_part_id\"M\n$BkpreditdescriptionbyoutpointRequest\x12\x10\n\x08outpoint\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"c\n%BkpreditdescriptionbyoutpointResponse\x12:\n\x07updated\x18\x01 \x03(\x0b\x32).cln.BkpreditdescriptionbyoutpointUpdated\"\x9f\x05\n$BkpreditdescriptionbyoutpointUpdated\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x65\n\titem_type\x18\x02 \x01(\x0e\x32R.cln.BkpreditdescriptionbyoutpointUpdated.BkpreditdescriptionbyoutpointUpdatedType\x12\x0b\n\x03tag\x18\x03 \x01(\t\x12 \n\x0b\x63redit_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x1f\n\ndebit_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x10\n\x08\x63urrency\x18\x06 \x01(\t\x12\x11\n\ttimestamp\x18\x07 \x01(\r\x12\x13\n\x0b\x64\x65scription\x18\x08 \x01(\t\x12\x15\n\x08outpoint\x18\t \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x62lockheight\x18\n \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06origin\x18\x0b \x01(\tH\x02\x88\x01\x01\x12\x17\n\npayment_id\x18\x0c \x01(\x0cH\x03\x88\x01\x01\x12\x11\n\x04txid\x18\r \x01(\x0cH\x04\x88\x01\x01\x12#\n\tfees_msat\x18\x0e \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x19\n\x0cis_rebalance\x18\x0f \x01(\x08H\x06\x88\x01\x01\x12\x14\n\x07part_id\x18\x10 \x01(\rH\x07\x88\x01\x01\"B\n(BkpreditdescriptionbyoutpointUpdatedType\x12\t\n\x05\x43HAIN\x10\x00\x12\x0b\n\x07\x43HANNEL\x10\x01\x42\x0b\n\t_outpointB\x0e\n\x0c_blockheightB\t\n\x07_originB\r\n\x0b_payment_idB\x07\n\x05_txidB\x0c\n\n_fees_msatB\x0f\n\r_is_rebalanceB\n\n\x08_part_id\"N\n\x14\x42lacklistruneRequest\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_end\"G\n\x15\x42lacklistruneResponse\x12.\n\tblacklist\x18\x01 \x03(\x0b\x32\x1b.cln.BlacklistruneBlacklist\"4\n\x16\x42lacklistruneBlacklist\x12\r\n\x05start\x18\x01 \x01(\x04\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x04\"p\n\x10\x43heckruneRequest\x12\x0c\n\x04rune\x18\x01 \x01(\t\x12\x13\n\x06nodeid\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06method\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06params\x18\x04 \x03(\tB\t\n\x07_nodeidB\t\n\x07_method\"\"\n\x11\x43heckruneResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\"E\n\x11\x43reateruneRequest\x12\x11\n\x04rune\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x0crestrictions\x18\x02 \x03(\tB\x07\n\x05_rune\"{\n\x12\x43reateruneResponse\x12\x0c\n\x04rune\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12&\n\x19warning_unrestricted_rune\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x1c\n\x1a_warning_unrestricted_rune\".\n\x10ShowrunesRequest\x12\x11\n\x04rune\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_rune\"7\n\x11ShowrunesResponse\x12\"\n\x05runes\x18\x01 \x03(\x0b\x32\x13.cln.ShowrunesRunes\"\x9d\x02\n\x0eShowrunesRunes\x12\x0c\n\x04rune\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x35\n\x0crestrictions\x18\x03 \x03(\x0b\x32\x1f.cln.ShowrunesRunesRestrictions\x12\x1f\n\x17restrictions_as_english\x18\x04 \x01(\t\x12\x13\n\x06stored\x18\x05 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0b\x62lacklisted\x18\x06 \x01(\x08H\x01\x88\x01\x01\x12\x16\n\tlast_used\x18\x07 \x01(\x01H\x02\x88\x01\x01\x12\x15\n\x08our_rune\x18\x08 \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_storedB\x0e\n\x0c_blacklistedB\x0c\n\n_last_usedB\x0b\n\t_our_rune\"p\n\x1aShowrunesRunesRestrictions\x12\x41\n\x0c\x61lternatives\x18\x01 \x03(\x0b\x32+.cln.ShowrunesRunesRestrictionsAlternatives\x12\x0f\n\x07\x65nglish\x18\x02 \x01(\t\"n\n&ShowrunesRunesRestrictionsAlternatives\x12\x11\n\tfieldname\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\x12\x11\n\tcondition\x18\x03 \x01(\t\x12\x0f\n\x07\x65nglish\x18\x04 \x01(\t\"B\n\x17\x41skreneunreserveRequest\x12\'\n\x04path\x18\x01 \x03(\x0b\x32\x19.cln.AskreneunreservePath\"\x1a\n\x18\x41skreneunreserveResponse\"t\n\x14\x41skreneunreservePath\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12!\n\x14short_channel_id_dir\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x17\n\x15_short_channel_id_dir\"8\n\x18\x41skrenelistlayersRequest\x12\x12\n\x05layer\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_layer\"I\n\x19\x41skrenelistlayersResponse\x12,\n\x06layers\x18\x01 \x03(\x0b\x32\x1c.cln.AskrenelistlayersLayers\"\x83\x03\n\x17\x41skrenelistlayersLayers\x12\r\n\x05layer\x18\x01 \x01(\t\x12\x16\n\x0e\x64isabled_nodes\x18\x02 \x03(\x0c\x12\x46\n\x10\x63reated_channels\x18\x03 \x03(\x0b\x32,.cln.AskrenelistlayersLayersCreated_channels\x12<\n\x0b\x63onstraints\x18\x04 \x03(\x0b\x32\'.cln.AskrenelistlayersLayersConstraints\x12\x17\n\npersistent\x18\x05 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x11\x64isabled_channels\x18\x06 \x03(\t\x12\x44\n\x0f\x63hannel_updates\x18\x07 \x03(\x0b\x32+.cln.AskrenelistlayersLayersChannel_updates\x12\x32\n\x06\x62iases\x18\x08 \x03(\x0b\x32\".cln.AskrenelistlayersLayersBiasesB\r\n\x0b_persistent\"\x8c\x01\n\'AskrenelistlayersLayersCreated_channels\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\"\n\rcapacity_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\"\xa9\x03\n&AskrenelistlayersLayersChannel_updates\x12\x1c\n\x14short_channel_id_dir\x18\x01 \x01(\t\x12\x14\n\x07\x65nabled\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12+\n\x11htlc_minimum_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1e\n\x11\x63ltv_expiry_delta\x18\x07 \x01(\rH\x05\x88\x01\x01\x42\n\n\x08_enabledB\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionthsB\x14\n\x12_cltv_expiry_delta\"\xf8\x01\n\"AskrenelistlayersLayersConstraints\x12&\n\x0cmaximum_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12&\n\x0cminimum_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12!\n\x14short_channel_id_dir\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x16\n\ttimestamp\x18\x06 \x01(\x04H\x03\x88\x01\x01\x42\x0f\n\r_maximum_msatB\x0f\n\r_minimum_msatB\x17\n\x15_short_channel_id_dirB\x0c\n\n_timestamp\"u\n\x1d\x41skrenelistlayersLayersBiases\x12\x1c\n\x14short_channel_id_dir\x18\x01 \x01(\t\x12\x0c\n\x04\x62ias\x18\x02 \x01(\x12\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"R\n\x19\x41skrenecreatelayerRequest\x12\r\n\x05layer\x18\x01 \x01(\t\x12\x17\n\npersistent\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\r\n\x0b_persistent\"K\n\x1a\x41skrenecreatelayerResponse\x12-\n\x06layers\x18\x01 \x03(\x0b\x32\x1d.cln.AskrenecreatelayerLayers\"\xf4\x02\n\x18\x41skrenecreatelayerLayers\x12\r\n\x05layer\x18\x01 \x01(\t\x12\x12\n\npersistent\x18\x02 \x01(\x08\x12\x16\n\x0e\x64isabled_nodes\x18\x03 \x03(\x0c\x12\x19\n\x11\x64isabled_channels\x18\x04 \x03(\t\x12G\n\x10\x63reated_channels\x18\x05 \x03(\x0b\x32-.cln.AskrenecreatelayerLayersCreated_channels\x12\x45\n\x0f\x63hannel_updates\x18\x06 \x03(\x0b\x32,.cln.AskrenecreatelayerLayersChannel_updates\x12=\n\x0b\x63onstraints\x18\x07 \x03(\x0b\x32(.cln.AskrenecreatelayerLayersConstraints\x12\x33\n\x06\x62iases\x18\x08 \x03(\x0b\x32#.cln.AskrenecreatelayerLayersBiases\"\x8d\x01\n(AskrenecreatelayerLayersCreated_channels\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\"\n\rcapacity_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\"\xd2\x02\n\'AskrenecreatelayerLayersChannel_updates\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\'\n\rfee_base_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x12\n\x05\x64\x65lay\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionthsB\x08\n\x06_delay\"\xc4\x01\n#AskrenecreatelayerLayersConstraints\x12\x18\n\x10short_channel_id\x18\x01 \x01(\t\x12\x11\n\tdirection\x18\x02 \x01(\r\x12&\n\x0cmaximum_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12&\n\x0cminimum_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x42\x0f\n\r_maximum_msatB\x0f\n\r_minimum_msat\"v\n\x1e\x41skrenecreatelayerLayersBiases\x12\x1c\n\x14short_channel_id_dir\x18\x01 \x01(\t\x12\x0c\n\x04\x62ias\x18\x02 \x01(\x12\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"*\n\x19\x41skreneremovelayerRequest\x12\r\n\x05layer\x18\x01 \x01(\t\"\x1c\n\x1a\x41skreneremovelayerResponse\">\n\x15\x41skrenereserveRequest\x12%\n\x04path\x18\x01 \x03(\x0b\x32\x17.cln.AskrenereservePath\"\x18\n\x16\x41skrenereserveResponse\"r\n\x12\x41skrenereservePath\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12!\n\x14short_channel_id_dir\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x17\n\x15_short_channel_id_dir\"2\n\x11\x41skreneageRequest\x12\r\n\x05layer\x18\x01 \x01(\t\x12\x0e\n\x06\x63utoff\x18\x02 \x01(\x04\"8\n\x12\x41skreneageResponse\x12\r\n\x05layer\x18\x01 \x01(\t\x12\x13\n\x0bnum_removed\x18\x02 \x01(\x04\"\xb3\x01\n\x10GetroutesRequest\x12\x0e\n\x06source\x18\x01 \x01(\x0c\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x0e\n\x06layers\x18\x04 \x03(\t\x12 \n\x0bmaxfee_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x17\n\nfinal_cltv\x18\x07 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_final_cltv\"R\n\x11GetroutesResponse\x12\x17\n\x0fprobability_ppm\x18\x01 \x01(\x04\x12$\n\x06routes\x18\x02 \x03(\x0b\x32\x14.cln.GetroutesRoutes\"\x9c\x01\n\x0fGetroutesRoutes\x12\x17\n\x0fprobability_ppm\x18\x01 \x01(\x04\x12 \n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12&\n\x04path\x18\x03 \x03(\x0b\x32\x18.cln.GetroutesRoutesPath\x12\x17\n\nfinal_cltv\x18\x04 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_final_cltv\"\x98\x01\n\x13GetroutesRoutesPath\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0cnext_node_id\x18\x04 \x01(\x0c\x12\r\n\x05\x64\x65lay\x18\x05 \x01(\r\x12!\n\x14short_channel_id_dir\x18\x06 \x01(\tH\x00\x88\x01\x01\x42\x17\n\x15_short_channel_id_dir\"8\n\x19\x41skrenedisablenodeRequest\x12\r\n\x05layer\x18\x01 \x01(\t\x12\x0c\n\x04node\x18\x02 \x01(\x0c\"\x1c\n\x1a\x41skrenedisablenodeResponse\"\xcd\x02\n\x1b\x41skreneinformchannelRequest\x12\r\n\x05layer\x18\x01 \x01(\t\x12!\n\x14short_channel_id_dir\x18\x06 \x01(\tH\x00\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12P\n\x06inform\x18\x08 \x01(\x0e\x32;.cln.AskreneinformchannelRequest.AskreneinformchannelInformH\x02\x88\x01\x01\"O\n\x1a\x41skreneinformchannelInform\x12\x0f\n\x0b\x43ONSTRAINED\x10\x00\x12\x11\n\rUNCONSTRAINED\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x42\x17\n\x15_short_channel_id_dirB\x0e\n\x0c_amount_msatB\t\n\x07_inform\"Y\n\x1c\x41skreneinformchannelResponse\x12\x39\n\x0b\x63onstraints\x18\x02 \x03(\x0b\x32$.cln.AskreneinformchannelConstraints\"\xd3\x01\n\x1f\x41skreneinformchannelConstraints\x12\x1c\n\x14short_channel_id_dir\x18\x01 \x01(\t\x12\r\n\x05layer\x18\x02 \x01(\t\x12\x11\n\ttimestamp\x18\x03 \x01(\x04\x12&\n\x0cmaximum_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12&\n\x0cminimum_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x42\x0f\n\r_maximum_msatB\x0f\n\r_minimum_msat\"\x8f\x01\n\x1b\x41skrenecreatechannelRequest\x12\r\n\x05layer\x18\x01 \x01(\t\x12\x0e\n\x06source\x18\x02 \x01(\x0c\x12\x13\n\x0b\x64\x65stination\x18\x03 \x01(\x0c\x12\x18\n\x10short_channel_id\x18\x04 \x01(\t\x12\"\n\rcapacity_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\"\x1e\n\x1c\x41skrenecreatechannelResponse\"\xad\x03\n\x1b\x41skreneupdatechannelRequest\x12\r\n\x05layer\x18\x01 \x01(\t\x12\x1c\n\x14short_channel_id_dir\x18\x02 \x01(\t\x12\x14\n\x07\x65nabled\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12+\n\x11htlc_minimum_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x07 \x01(\rH\x04\x88\x01\x01\x12\x1e\n\x11\x63ltv_expiry_delta\x18\x08 \x01(\rH\x05\x88\x01\x01\x42\n\n\x08_enabledB\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionthsB\x14\n\x12_cltv_expiry_delta\"\x1e\n\x1c\x41skreneupdatechannelResponse\"\x80\x01\n\x19\x41skrenebiaschannelRequest\x12\r\n\x05layer\x18\x01 \x01(\t\x12\x1c\n\x14short_channel_id_dir\x18\x02 \x01(\t\x12\x0c\n\x04\x62ias\x18\x03 \x01(\x12\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"K\n\x1a\x41skrenebiaschannelResponse\x12-\n\x06\x62iases\x18\x01 \x03(\x0b\x32\x1d.cln.AskrenebiaschannelBiases\"\x7f\n\x18\x41skrenebiaschannelBiases\x12\r\n\x05layer\x18\x01 \x01(\t\x12\x1c\n\x14short_channel_id_dir\x18\x02 \x01(\t\x12\x0c\n\x04\x62ias\x18\x03 \x01(\x12\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\" \n\x1e\x41skrenelistreservationsRequest\"a\n\x1f\x41skrenelistreservationsResponse\x12>\n\x0creservations\x18\x01 \x03(\x0b\x32(.cln.AskrenelistreservationsReservations\"\x91\x01\n#AskrenelistreservationsReservations\x12\x1c\n\x14short_channel_id_dir\x18\x01 \x01(\t\x12 \n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\x16\n\x0e\x61ge_in_seconds\x18\x03 \x01(\x04\x12\x12\n\ncommand_id\x18\x04 \x01(\t\"\x8a\x02\n\x19InjectpaymentonionRequest\x12\r\n\x05onion\x18\x01 \x01(\x0c\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x13\n\x0b\x63ltv_expiry\x18\x04 \x01(\r\x12\x0e\n\x06partid\x18\x05 \x01(\x04\x12\x0f\n\x07groupid\x18\x06 \x01(\x04\x12\x12\n\x05label\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tinvstring\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\t \x01(\x0cH\x02\x88\x01\x01\x42\x08\n\x06_labelB\x0c\n\n_invstringB\x10\n\x0e_localinvreqid\"]\n\x1aInjectpaymentonionResponse\x12\x12\n\ncreated_at\x18\x01 \x01(\x04\x12\x14\n\x0c\x63ompleted_at\x18\x02 \x01(\x04\x12\x15\n\rcreated_index\x18\x03 \x01(\x04\"\xf3\x01\n\x0bXpayRequest\x12\x11\n\tinvstring\x18\x01 \x01(\t\x12%\n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12 \n\x06maxfee\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x0e\n\x06layers\x18\x04 \x03(\t\x12\x16\n\tretry_for\x18\x05 \x01(\rH\x02\x88\x01\x01\x12&\n\x0cpartial_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x42\x0e\n\x0c_amount_msatB\t\n\x07_maxfeeB\x0c\n\n_retry_forB\x0f\n\r_partial_msat\"\xa1\x01\n\x0cXpayResponse\x12\x18\n\x10payment_preimage\x18\x01 \x01(\x0c\x12\x14\n\x0c\x66\x61iled_parts\x18\x02 \x01(\x04\x12\x18\n\x10successful_parts\x18\x03 \x01(\x04\x12 \n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x61mount_sent_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\"\x19\n\x17StreamBlockAddedRequest\"6\n\x16\x42lockAddedNotification\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x0e\n\x06height\x18\x02 \x01(\r\" \n\x1eStreamChannelOpenFailedRequest\"3\n\x1d\x43hannelOpenFailedNotification\x12\x12\n\nchannel_id\x18\x01 \x01(\x0c\"\x1c\n\x1aStreamChannelOpenedRequest\"w\n\x19\x43hannelOpenedNotification\x12\n\n\x02id\x18\x01 \x01(\x0c\x12!\n\x0c\x66unding_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0c\x66unding_txid\x18\x03 \x01(\x0c\x12\x15\n\rchannel_ready\x18\x04 \x01(\x08\"\x16\n\x14StreamConnectRequest\"\xbe\x01\n\x17PeerConnectNotification\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x44\n\tdirection\x18\x02 \x01(\x0e\x32\x31.cln.PeerConnectNotification.PeerConnectDirection\x12(\n\x07\x61\x64\x64ress\x18\x03 \x01(\x0b\x32\x17.cln.PeerConnectAddress\"\'\n\x14PeerConnectDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\"\x8b\x02\n\x12PeerConnectAddress\x12\x41\n\titem_type\x18\x01 \x01(\x0e\x32..cln.PeerConnectAddress.PeerConnectAddressType\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\"T\n\x16PeerConnectAddressType\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\"\x18\n\x16StreamCustomMsgRequest\"9\n\x15\x43ustomMsgNotification\x12\x0f\n\x07peer_id\x18\x01 \x01(\x0c\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\x32\xa3N\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\x12H\n\rAddPsbtOutput\x12\x19.cln.AddpsbtoutputRequest\x1a\x1a.cln.AddpsbtoutputResponse\"\x00\x12H\n\rAutoCleanOnce\x12\x19.cln.AutocleanonceRequest\x1a\x1a.cln.AutocleanonceResponse\"\x00\x12N\n\x0f\x41utoCleanStatus\x12\x1b.cln.AutocleanstatusRequest\x1a\x1c.cln.AutocleanstatusResponse\"\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\x12?\n\nDelInvoice\x12\x16.cln.DelinvoiceRequest\x1a\x17.cln.DelinvoiceResponse\"\x00\x12Q\n\x10\x44\x65vForgetChannel\x12\x1c.cln.DevforgetchannelRequest\x1a\x1d.cln.DevforgetchannelResponse\"\x00\x12Q\n\x10\x45mergencyRecover\x12\x1c.cln.EmergencyrecoverRequest\x1a\x1d.cln.EmergencyrecoverResponse\"\x00\x12\x66\n\x17GetEmergencyRecoverData\x12#.cln.GetemergencyrecoverdataRequest\x1a$.cln.GetemergencyrecoverdataResponse\"\x00\x12\x45\n\x0c\x45xposeSecret\x12\x18.cln.ExposesecretRequest\x1a\x19.cln.ExposesecretResponse\"\x00\x12\x36\n\x07Recover\x12\x13.cln.RecoverRequest\x1a\x14.cln.RecoverResponse\"\x00\x12K\n\x0eRecoverChannel\x12\x1a.cln.RecoverchannelRequest\x1a\x1b.cln.RecoverchannelResponse\"\x00\x12\x36\n\x07Invoice\x12\x13.cln.InvoiceRequest\x1a\x14.cln.InvoiceResponse\"\x00\x12Q\n\x14\x43reateInvoiceRequest\x12\x1a.cln.InvoicerequestRequest\x1a\x1b.cln.InvoicerequestResponse\"\x00\x12`\n\x15\x44isableInvoiceRequest\x12!.cln.DisableinvoicerequestRequest\x1a\".cln.DisableinvoicerequestResponse\"\x00\x12Z\n\x13ListInvoiceRequests\x12\x1f.cln.ListinvoicerequestsRequest\x1a .cln.ListinvoicerequestsResponse\"\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\nMakeSecret\x12\x16.cln.MakesecretRequest\x1a\x17.cln.MakesecretResponse\"\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\x33\n\x06\x44\x65lPay\x12\x12.cln.DelpayRequest\x1a\x13.cln.DelpayResponse\"\x00\x12?\n\nDelForward\x12\x16.cln.DelforwardRequest\x1a\x17.cln.DelforwardResponse\"\x00\x12\x45\n\x0c\x44isableOffer\x12\x18.cln.DisableofferRequest\x1a\x19.cln.DisableofferResponse\"\x00\x12\x42\n\x0b\x45nableOffer\x12\x17.cln.EnableofferRequest\x1a\x18.cln.EnableofferResponse\"\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\x12W\n\x12\x46undChannel_Cancel\x12\x1e.cln.Fundchannel_cancelRequest\x1a\x1f.cln.Fundchannel_cancelResponse\"\x00\x12]\n\x14\x46undChannel_Complete\x12 .cln.Fundchannel_completeRequest\x1a!.cln.Fundchannel_completeResponse\"\x00\x12\x42\n\x0b\x46undChannel\x12\x17.cln.FundchannelRequest\x1a\x18.cln.FundchannelResponse\"\x00\x12T\n\x11\x46undChannel_Start\x12\x1d.cln.Fundchannel_startRequest\x1a\x1e.cln.Fundchannel_startResponse\"\x00\x12\x33\n\x06GetLog\x12\x12.cln.GetlogRequest\x1a\x13.cln.GetlogResponse\"\x00\x12\x45\n\x0c\x46underUpdate\x12\x18.cln.FunderupdateRequest\x1a\x19.cln.FunderupdateResponse\"\x00\x12\x39\n\x08GetRoute\x12\x14.cln.GetrouteRequest\x1a\x15.cln.GetrouteResponse\"\x00\x12H\n\rListAddresses\x12\x19.cln.ListaddressesRequest\x1a\x1a.cln.ListaddressesResponse\"\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\x12Q\n\x10MultiFundChannel\x12\x1c.cln.MultifundchannelRequest\x1a\x1d.cln.MultifundchannelResponse\"\x00\x12H\n\rMultiWithdraw\x12\x19.cln.MultiwithdrawRequest\x1a\x1a.cln.MultiwithdrawResponse\"\x00\x12\x30\n\x05Offer\x12\x11.cln.OfferRequest\x1a\x12.cln.OfferResponse\"\x00\x12T\n\x11OpenChannel_Abort\x12\x1d.cln.Openchannel_abortRequest\x1a\x1e.cln.Openchannel_abortResponse\"\x00\x12Q\n\x10OpenChannel_Bump\x12\x1c.cln.Openchannel_bumpRequest\x1a\x1d.cln.Openchannel_bumpResponse\"\x00\x12Q\n\x10OpenChannel_Init\x12\x1c.cln.Openchannel_initRequest\x1a\x1d.cln.Openchannel_initResponse\"\x00\x12W\n\x12OpenChannel_Signed\x12\x1e.cln.Openchannel_signedRequest\x1a\x1f.cln.Openchannel_signedResponse\"\x00\x12W\n\x12OpenChannel_Update\x12\x1e.cln.Openchannel_updateRequest\x1a\x1f.cln.Openchannel_updateResponse\"\x00\x12-\n\x04Ping\x12\x10.cln.PingRequest\x1a\x11.cln.PingResponse\"\x00\x12\x33\n\x06Plugin\x12\x12.cln.PluginRequest\x1a\x13.cln.PluginResponse\"\x00\x12H\n\rRenePayStatus\x12\x19.cln.RenepaystatusRequest\x1a\x1a.cln.RenepaystatusResponse\"\x00\x12\x36\n\x07RenePay\x12\x13.cln.RenepayRequest\x1a\x14.cln.RenepayResponse\"\x00\x12H\n\rReserveInputs\x12\x19.cln.ReserveinputsRequest\x1a\x1a.cln.ReserveinputsResponse\"\x00\x12H\n\rSendCustomMsg\x12\x19.cln.SendcustommsgRequest\x1a\x1a.cln.SendcustommsgResponse\"\x00\x12\x42\n\x0bSendInvoice\x12\x17.cln.SendinvoiceRequest\x1a\x18.cln.SendinvoiceResponse\"\x00\x12?\n\nSetChannel\x12\x16.cln.SetchannelRequest\x1a\x17.cln.SetchannelResponse\"\x00\x12<\n\tSetConfig\x12\x15.cln.SetconfigRequest\x1a\x16.cln.SetconfigResponse\"\x00\x12K\n\x0eSetPsbtVersion\x12\x1a.cln.SetpsbtversionRequest\x1a\x1b.cln.SetpsbtversionResponse\"\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\x12\x42\n\x0bSplice_Init\x12\x17.cln.Splice_initRequest\x1a\x18.cln.Splice_initResponse\"\x00\x12H\n\rSplice_Signed\x12\x19.cln.Splice_signedRequest\x1a\x1a.cln.Splice_signedResponse\"\x00\x12H\n\rSplice_Update\x12\x19.cln.Splice_updateRequest\x1a\x1a.cln.Splice_updateResponse\"\x00\x12<\n\tDevSplice\x12\x15.cln.DevspliceRequest\x1a\x16.cln.DevspliceResponse\"\x00\x12N\n\x0fUnreserveInputs\x12\x1b.cln.UnreserveinputsRequest\x1a\x1c.cln.UnreserveinputsResponse\"\x00\x12H\n\rUpgradeWallet\x12\x19.cln.UpgradewalletRequest\x1a\x1a.cln.UpgradewalletResponse\"\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\x42\n\x0bListConfigs\x12\x17.cln.ListconfigsRequest\x1a\x18.cln.ListconfigsResponse\"\x00\x12-\n\x04Stop\x12\x10.cln.StopRequest\x1a\x11.cln.StopResponse\"\x00\x12-\n\x04Help\x12\x10.cln.HelpRequest\x1a\x11.cln.HelpResponse\"\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\x12N\n\x0f\x42kprChannelsApy\x12\x1b.cln.BkprchannelsapyRequest\x1a\x1c.cln.BkprchannelsapyResponse\"\x00\x12T\n\x11\x42kprDumpIncomeCsv\x12\x1d.cln.BkprdumpincomecsvRequest\x1a\x1e.cln.BkprdumpincomecsvResponse\"\x00\x12\x42\n\x0b\x42kprInspect\x12\x17.cln.BkprinspectRequest\x1a\x18.cln.BkprinspectResponse\"\x00\x12`\n\x15\x42kprListAccountEvents\x12!.cln.BkprlistaccounteventsRequest\x1a\".cln.BkprlistaccounteventsResponse\"\x00\x12Q\n\x10\x42kprListBalances\x12\x1c.cln.BkprlistbalancesRequest\x1a\x1d.cln.BkprlistbalancesResponse\"\x00\x12K\n\x0e\x42kprListIncome\x12\x1a.cln.BkprlistincomeRequest\x1a\x1b.cln.BkprlistincomeResponse\"\x00\x12{\n\x1e\x42kprEditDescriptionByPaymentId\x12*.cln.BkpreditdescriptionbypaymentidRequest\x1a+.cln.BkpreditdescriptionbypaymentidResponse\"\x00\x12x\n\x1d\x42kprEditDescriptionByOutpoint\x12).cln.BkpreditdescriptionbyoutpointRequest\x1a*.cln.BkpreditdescriptionbyoutpointResponse\"\x00\x12H\n\rBlacklistRune\x12\x19.cln.BlacklistruneRequest\x1a\x1a.cln.BlacklistruneResponse\"\x00\x12<\n\tCheckRune\x12\x15.cln.CheckruneRequest\x1a\x16.cln.CheckruneResponse\"\x00\x12?\n\nCreateRune\x12\x16.cln.CreateruneRequest\x1a\x17.cln.CreateruneResponse\"\x00\x12<\n\tShowRunes\x12\x15.cln.ShowrunesRequest\x1a\x16.cln.ShowrunesResponse\"\x00\x12Q\n\x10\x41skReneUnreserve\x12\x1c.cln.AskreneunreserveRequest\x1a\x1d.cln.AskreneunreserveResponse\"\x00\x12T\n\x11\x41skReneListLayers\x12\x1d.cln.AskrenelistlayersRequest\x1a\x1e.cln.AskrenelistlayersResponse\"\x00\x12W\n\x12\x41skReneCreateLayer\x12\x1e.cln.AskrenecreatelayerRequest\x1a\x1f.cln.AskrenecreatelayerResponse\"\x00\x12W\n\x12\x41skReneRemoveLayer\x12\x1e.cln.AskreneremovelayerRequest\x1a\x1f.cln.AskreneremovelayerResponse\"\x00\x12K\n\x0e\x41skReneReserve\x12\x1a.cln.AskrenereserveRequest\x1a\x1b.cln.AskrenereserveResponse\"\x00\x12?\n\nAskReneAge\x12\x16.cln.AskreneageRequest\x1a\x17.cln.AskreneageResponse\"\x00\x12<\n\tGetRoutes\x12\x15.cln.GetroutesRequest\x1a\x16.cln.GetroutesResponse\"\x00\x12W\n\x12\x41skReneDisableNode\x12\x1e.cln.AskrenedisablenodeRequest\x1a\x1f.cln.AskrenedisablenodeResponse\"\x00\x12]\n\x14\x41skReneInformChannel\x12 .cln.AskreneinformchannelRequest\x1a!.cln.AskreneinformchannelResponse\"\x00\x12]\n\x14\x41skReneCreateChannel\x12 .cln.AskrenecreatechannelRequest\x1a!.cln.AskrenecreatechannelResponse\"\x00\x12]\n\x14\x41skReneUpdateChannel\x12 .cln.AskreneupdatechannelRequest\x1a!.cln.AskreneupdatechannelResponse\"\x00\x12W\n\x12\x41skReneBiasChannel\x12\x1e.cln.AskrenebiaschannelRequest\x1a\x1f.cln.AskrenebiaschannelResponse\"\x00\x12\x66\n\x17\x41skReneListReservations\x12#.cln.AskrenelistreservationsRequest\x1a$.cln.AskrenelistreservationsResponse\"\x00\x12W\n\x12InjectPaymentOnion\x12\x1e.cln.InjectpaymentonionRequest\x1a\x1f.cln.InjectpaymentonionResponse\"\x00\x12-\n\x04Xpay\x12\x10.cln.XpayRequest\x1a\x11.cln.XpayResponse\"\x00\x12T\n\x13SubscribeBlockAdded\x12\x1c.cln.StreamBlockAddedRequest\x1a\x1b.cln.BlockAddedNotification\"\x00\x30\x01\x12i\n\x1aSubscribeChannelOpenFailed\x12#.cln.StreamChannelOpenFailedRequest\x1a\".cln.ChannelOpenFailedNotification\"\x00\x30\x01\x12]\n\x16SubscribeChannelOpened\x12\x1f.cln.StreamChannelOpenedRequest\x1a\x1e.cln.ChannelOpenedNotification\"\x00\x30\x01\x12O\n\x10SubscribeConnect\x12\x19.cln.StreamConnectRequest\x1a\x1c.cln.PeerConnectNotification\"\x00\x30\x01\x12Q\n\x12SubscribeCustomMsg\x12\x1b.cln.StreamCustomMsgRequest\x1a\x1a.cln.CustomMsgNotification\"\x00\x30\x01\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -182,812 +182,946 @@ _globals['_EMERGENCYRECOVERREQUEST']._serialized_end=12148 _globals['_EMERGENCYRECOVERRESPONSE']._serialized_start=12150 _globals['_EMERGENCYRECOVERRESPONSE']._serialized_end=12191 - _globals['_RECOVERREQUEST']._serialized_start=12193 - _globals['_RECOVERREQUEST']._serialized_end=12228 - _globals['_RECOVERRESPONSE']._serialized_start=12231 - _globals['_RECOVERRESPONSE']._serialized_end=12367 - _globals['_RECOVERRESPONSE_RECOVERRESULT']._serialized_start=12307 - _globals['_RECOVERRESPONSE_RECOVERRESULT']._serialized_end=12356 - _globals['_RECOVERCHANNELREQUEST']._serialized_start=12369 - _globals['_RECOVERCHANNELREQUEST']._serialized_end=12405 - _globals['_RECOVERCHANNELRESPONSE']._serialized_start=12407 - _globals['_RECOVERCHANNELRESPONSE']._serialized_end=12446 - _globals['_INVOICEREQUEST']._serialized_start=12449 - _globals['_INVOICEREQUEST']._serialized_end=12730 - _globals['_INVOICERESPONSE']._serialized_start=12733 - _globals['_INVOICERESPONSE']._serialized_end=13138 - _globals['_INVOICEREQUESTREQUEST']._serialized_start=13141 - _globals['_INVOICEREQUESTREQUEST']._serialized_end=13366 - _globals['_INVOICEREQUESTRESPONSE']._serialized_start=13369 - _globals['_INVOICEREQUESTRESPONSE']._serialized_end=13508 - _globals['_DISABLEINVOICEREQUESTREQUEST']._serialized_start=13510 - _globals['_DISABLEINVOICEREQUESTREQUEST']._serialized_end=13559 - _globals['_DISABLEINVOICEREQUESTRESPONSE']._serialized_start=13562 - _globals['_DISABLEINVOICEREQUESTRESPONSE']._serialized_end=13708 - _globals['_LISTINVOICEREQUESTSREQUEST']._serialized_start=13710 - _globals['_LISTINVOICEREQUESTSREQUEST']._serialized_end=13818 - _globals['_LISTINVOICEREQUESTSRESPONSE']._serialized_start=13820 - _globals['_LISTINVOICEREQUESTSRESPONSE']._serialized_end=13915 - _globals['_LISTINVOICEREQUESTSINVOICEREQUESTS']._serialized_start=13918 - _globals['_LISTINVOICEREQUESTSINVOICEREQUESTS']._serialized_end=14069 - _globals['_LISTDATASTOREREQUEST']._serialized_start=14071 - _globals['_LISTDATASTOREREQUEST']._serialized_end=14106 - _globals['_LISTDATASTORERESPONSE']._serialized_start=14108 - _globals['_LISTDATASTORERESPONSE']._serialized_end=14179 - _globals['_LISTDATASTOREDATASTORE']._serialized_start=14182 - _globals['_LISTDATASTOREDATASTORE']._serialized_end=14317 - _globals['_LISTINVOICESREQUEST']._serialized_start=14320 - _globals['_LISTINVOICESREQUEST']._serialized_end=14670 - _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_start=14541 - _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_end=14586 - _globals['_LISTINVOICESRESPONSE']._serialized_start=14672 - _globals['_LISTINVOICESRESPONSE']._serialized_end=14739 - _globals['_LISTINVOICESINVOICES']._serialized_start=14742 - _globals['_LISTINVOICESINVOICES']._serialized_end=15594 - _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_start=15310 - _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_end=15373 - _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_start=15596 - _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_end=15661 - _globals['_SENDONIONREQUEST']._serialized_start=15664 - _globals['_SENDONIONREQUEST']._serialized_end=16100 - _globals['_SENDONIONRESPONSE']._serialized_start=16103 - _globals['_SENDONIONRESPONSE']._serialized_end=16718 - _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_start=16530 - _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_end=16574 - _globals['_SENDONIONFIRST_HOP']._serialized_start=16720 - _globals['_SENDONIONFIRST_HOP']._serialized_end=16801 - _globals['_LISTSENDPAYSREQUEST']._serialized_start=16804 - _globals['_LISTSENDPAYSREQUEST']._serialized_end=17220 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_start=17045 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_end=17104 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_start=17106 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_end=17151 - _globals['_LISTSENDPAYSRESPONSE']._serialized_start=17222 - _globals['_LISTSENDPAYSRESPONSE']._serialized_end=17289 - _globals['_LISTSENDPAYSPAYMENTS']._serialized_start=17292 - _globals['_LISTSENDPAYSPAYMENTS']._serialized_end=18056 - _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_start=17809 - _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_end=17876 - _globals['_LISTTRANSACTIONSREQUEST']._serialized_start=18058 - _globals['_LISTTRANSACTIONSREQUEST']._serialized_end=18083 - _globals['_LISTTRANSACTIONSRESPONSE']._serialized_start=18085 - _globals['_LISTTRANSACTIONSRESPONSE']._serialized_end=18168 - _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_start=18171 - _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_end=18419 - _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_start=18421 - _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_end=18504 - _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_start=18506 - _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_end=18614 - _globals['_MAKESECRETREQUEST']._serialized_start=18616 - _globals['_MAKESECRETREQUEST']._serialized_end=18693 - _globals['_MAKESECRETRESPONSE']._serialized_start=18695 - _globals['_MAKESECRETRESPONSE']._serialized_end=18731 - _globals['_PAYREQUEST']._serialized_start=18734 - _globals['_PAYREQUEST']._serialized_end=19265 - _globals['_PAYRESPONSE']._serialized_start=19268 - _globals['_PAYRESPONSE']._serialized_end=19647 - _globals['_PAYRESPONSE_PAYSTATUS']._serialized_start=19550 - _globals['_PAYRESPONSE_PAYSTATUS']._serialized_end=19600 - _globals['_LISTNODESREQUEST']._serialized_start=19649 - _globals['_LISTNODESREQUEST']._serialized_end=19691 - _globals['_LISTNODESRESPONSE']._serialized_start=19693 - _globals['_LISTNODESRESPONSE']._serialized_end=19748 - _globals['_LISTNODESNODES']._serialized_start=19751 - _globals['_LISTNODESNODES']._serialized_end=20065 - _globals['_LISTNODESNODESOPTION_WILL_FUND']._serialized_start=20068 - _globals['_LISTNODESNODESOPTION_WILL_FUND']._serialized_end=20312 - _globals['_LISTNODESNODESADDRESSES']._serialized_start=20315 - _globals['_LISTNODESNODESADDRESSES']._serialized_end=20547 - _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_start=20455 - _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_end=20535 - _globals['_WAITANYINVOICEREQUEST']._serialized_start=20549 - _globals['_WAITANYINVOICEREQUEST']._serialized_end=20652 - _globals['_WAITANYINVOICERESPONSE']._serialized_start=20655 - _globals['_WAITANYINVOICERESPONSE']._serialized_end=21379 - _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_start=21154 - _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_end=21199 - _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_start=21381 - _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_end=21440 - _globals['_WAITINVOICEREQUEST']._serialized_start=21442 - _globals['_WAITINVOICEREQUEST']._serialized_end=21477 - _globals['_WAITINVOICERESPONSE']._serialized_start=21480 - _globals['_WAITINVOICERESPONSE']._serialized_end=22189 - _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_start=21967 - _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_end=22009 - _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_start=22191 - _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_end=22247 - _globals['_WAITSENDPAYREQUEST']._serialized_start=22250 - _globals['_WAITSENDPAYREQUEST']._serialized_end=22392 - _globals['_WAITSENDPAYRESPONSE']._serialized_start=22395 - _globals['_WAITSENDPAYRESPONSE']._serialized_end=23049 - _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_start=22855 - _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_end=22888 - _globals['_NEWADDRREQUEST']._serialized_start=23052 - _globals['_NEWADDRREQUEST']._serialized_end=23203 - _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_start=23136 - _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_end=23187 - _globals['_NEWADDRRESPONSE']._serialized_start=23205 - _globals['_NEWADDRRESPONSE']._serialized_end=23282 - _globals['_WITHDRAWREQUEST']._serialized_start=23285 - _globals['_WITHDRAWREQUEST']._serialized_end=23470 - _globals['_WITHDRAWRESPONSE']._serialized_start=23472 - _globals['_WITHDRAWRESPONSE']._serialized_end=23530 - _globals['_KEYSENDREQUEST']._serialized_start=23533 - _globals['_KEYSENDREQUEST']._serialized_end=23964 - _globals['_KEYSENDRESPONSE']._serialized_start=23967 - _globals['_KEYSENDRESPONSE']._serialized_end=24337 - _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_start=24261 - _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_end=24290 - _globals['_FUNDPSBTREQUEST']._serialized_start=24340 - _globals['_FUNDPSBTREQUEST']._serialized_end=24760 - _globals['_FUNDPSBTRESPONSE']._serialized_start=24763 - _globals['_FUNDPSBTRESPONSE']._serialized_end=24980 - _globals['_FUNDPSBTRESERVATIONS']._serialized_start=24982 - _globals['_FUNDPSBTRESERVATIONS']._serialized_end=25099 - _globals['_SENDPSBTREQUEST']._serialized_start=25101 - _globals['_SENDPSBTREQUEST']._serialized_end=25166 - _globals['_SENDPSBTRESPONSE']._serialized_start=25168 - _globals['_SENDPSBTRESPONSE']._serialized_end=25212 - _globals['_SIGNPSBTREQUEST']._serialized_start=25214 - _globals['_SIGNPSBTREQUEST']._serialized_end=25263 - _globals['_SIGNPSBTRESPONSE']._serialized_start=25265 - _globals['_SIGNPSBTRESPONSE']._serialized_end=25304 - _globals['_UTXOPSBTREQUEST']._serialized_start=25307 - _globals['_UTXOPSBTREQUEST']._serialized_end=25723 - _globals['_UTXOPSBTRESPONSE']._serialized_start=25726 - _globals['_UTXOPSBTRESPONSE']._serialized_end=25943 - _globals['_UTXOPSBTRESERVATIONS']._serialized_start=25945 - _globals['_UTXOPSBTRESERVATIONS']._serialized_end=26062 - _globals['_TXDISCARDREQUEST']._serialized_start=26064 - _globals['_TXDISCARDREQUEST']._serialized_end=26096 - _globals['_TXDISCARDRESPONSE']._serialized_start=26098 - _globals['_TXDISCARDRESPONSE']._serialized_end=26152 - _globals['_TXPREPAREREQUEST']._serialized_start=26155 - _globals['_TXPREPAREREQUEST']._serialized_end=26319 - _globals['_TXPREPARERESPONSE']._serialized_start=26321 - _globals['_TXPREPARERESPONSE']._serialized_end=26389 - _globals['_TXSENDREQUEST']._serialized_start=26391 - _globals['_TXSENDREQUEST']._serialized_end=26420 - _globals['_TXSENDRESPONSE']._serialized_start=26422 - _globals['_TXSENDRESPONSE']._serialized_end=26478 - _globals['_LISTPEERCHANNELSREQUEST']._serialized_start=26480 - _globals['_LISTPEERCHANNELSREQUEST']._serialized_end=26529 - _globals['_LISTPEERCHANNELSRESPONSE']._serialized_start=26531 - _globals['_LISTPEERCHANNELSRESPONSE']._serialized_end=26606 - _globals['_LISTPEERCHANNELSCHANNELS']._serialized_start=26609 - _globals['_LISTPEERCHANNELSCHANNELS']._serialized_end=30152 - _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_start=28798 - _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_end=29182 - _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_start=30155 - _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_end=30322 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_start=30325 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_end=30543 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_start=30546 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_end=30765 - _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_start=30767 - _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_end=30830 - _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_start=30833 - _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_end=31100 - _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_start=31103 - _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_end=31388 - _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_start=31390 - _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_end=31483 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_start=31486 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_end=31863 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_start=31777 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_end=31834 - _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_start=31865 - _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_end=31916 - _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_start=31918 - _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_end=32009 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_start=32012 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_end=33278 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_start=32949 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_end=33067 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_start=33280 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_end=33381 - _globals['_DECODEPAYREQUEST']._serialized_start=33383 - _globals['_DECODEPAYREQUEST']._serialized_end=33459 - _globals['_DECODEPAYRESPONSE']._serialized_start=33462 - _globals['_DECODEPAYRESPONSE']._serialized_end=34045 - _globals['_DECODEPAYFALLBACKS']._serialized_start=34048 - _globals['_DECODEPAYFALLBACKS']._serialized_end=34256 - _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_start=34169 - _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_end=34247 - _globals['_DECODEPAYEXTRA']._serialized_start=34258 - _globals['_DECODEPAYEXTRA']._serialized_end=34301 - _globals['_DECODEREQUEST']._serialized_start=34303 - _globals['_DECODEREQUEST']._serialized_end=34334 - _globals['_DECODERESPONSE']._serialized_start=34337 - _globals['_DECODERESPONSE']._serialized_end=39181 - _globals['_DECODERESPONSE_DECODETYPE']._serialized_start=37276 - _globals['_DECODERESPONSE_DECODETYPE']._serialized_end=37407 - _globals['_DECODEOFFER_PATHS']._serialized_start=39184 - _globals['_DECODEOFFER_PATHS']._serialized_end=39421 - _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_start=39424 - _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_end=39562 - _globals['_DECODEINVREQ_PATHS']._serialized_start=39565 - _globals['_DECODEINVREQ_PATHS']._serialized_end=39846 - _globals['_DECODEINVREQ_PATHSPATH']._serialized_start=39848 - _globals['_DECODEINVREQ_PATHSPATH']._serialized_end=39931 - _globals['_DECODEINVOICE_PATHSPATH']._serialized_start=39933 - _globals['_DECODEINVOICE_PATHSPATH']._serialized_end=40017 - _globals['_DECODEINVOICE_FALLBACKS']._serialized_start=40019 - _globals['_DECODEINVOICE_FALLBACKS']._serialized_end=40108 - _globals['_DECODEFALLBACKS']._serialized_start=40111 - _globals['_DECODEFALLBACKS']._serialized_end=40409 - _globals['_DECODEFALLBACKS_DECODEFALLBACKSTYPE']._serialized_start=40279 - _globals['_DECODEFALLBACKS_DECODEFALLBACKSTYPE']._serialized_end=40354 - _globals['_DECODEEXTRA']._serialized_start=40411 - _globals['_DECODEEXTRA']._serialized_end=40451 - _globals['_DECODERESTRICTIONS']._serialized_start=40453 - _globals['_DECODERESTRICTIONS']._serialized_end=40512 - _globals['_DELPAYREQUEST']._serialized_start=40515 - _globals['_DELPAYREQUEST']._serialized_end=40709 - _globals['_DELPAYREQUEST_DELPAYSTATUS']._serialized_start=40646 - _globals['_DELPAYREQUEST_DELPAYSTATUS']._serialized_end=40686 - _globals['_DELPAYRESPONSE']._serialized_start=40711 - _globals['_DELPAYRESPONSE']._serialized_end=40766 - _globals['_DELPAYPAYMENTS']._serialized_start=40769 - _globals['_DELPAYPAYMENTS']._serialized_end=41484 - _globals['_DELPAYPAYMENTS_DELPAYPAYMENTSSTATUS']._serialized_start=41247 - _globals['_DELPAYPAYMENTS_DELPAYPAYMENTSSTATUS']._serialized_end=41308 - _globals['_DELFORWARDREQUEST']._serialized_start=41487 - _globals['_DELFORWARDREQUEST']._serialized_end=41666 - _globals['_DELFORWARDREQUEST_DELFORWARDSTATUS']._serialized_start=41605 - _globals['_DELFORWARDREQUEST_DELFORWARDSTATUS']._serialized_end=41666 - _globals['_DELFORWARDRESPONSE']._serialized_start=41668 - _globals['_DELFORWARDRESPONSE']._serialized_end=41688 - _globals['_DISABLEOFFERREQUEST']._serialized_start=41690 - _globals['_DISABLEOFFERREQUEST']._serialized_end=41729 - _globals['_DISABLEOFFERRESPONSE']._serialized_start=41732 - _globals['_DISABLEOFFERRESPONSE']._serialized_end=41868 - _globals['_DISCONNECTREQUEST']._serialized_start=41870 - _globals['_DISCONNECTREQUEST']._serialized_end=41931 - _globals['_DISCONNECTRESPONSE']._serialized_start=41933 - _globals['_DISCONNECTRESPONSE']._serialized_end=41953 - _globals['_FEERATESREQUEST']._serialized_start=41955 - _globals['_FEERATESREQUEST']._serialized_end=42062 - _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_start=42025 - _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_end=42062 - _globals['_FEERATESRESPONSE']._serialized_start=42065 - _globals['_FEERATESRESPONSE']._serialized_end=42349 - _globals['_FEERATESPERKB']._serialized_start=42352 - _globals['_FEERATESPERKB']._serialized_end=42819 - _globals['_FEERATESPERKBESTIMATES']._serialized_start=42821 - _globals['_FEERATESPERKBESTIMATES']._serialized_end=42908 - _globals['_FEERATESPERKW']._serialized_start=42911 - _globals['_FEERATESPERKW']._serialized_end=43378 - _globals['_FEERATESPERKWESTIMATES']._serialized_start=43380 - _globals['_FEERATESPERKWESTIMATES']._serialized_end=43467 - _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_start=43470 - _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_end=43753 - _globals['_FETCHINVOICEREQUEST']._serialized_start=43756 - _globals['_FETCHINVOICEREQUEST']._serialized_end=44165 - _globals['_FETCHINVOICERESPONSE']._serialized_start=44168 - _globals['_FETCHINVOICERESPONSE']._serialized_end=44322 - _globals['_FETCHINVOICECHANGES']._serialized_start=44325 - _globals['_FETCHINVOICECHANGES']._serialized_end=44583 - _globals['_FETCHINVOICENEXT_PERIOD']._serialized_start=44585 - _globals['_FETCHINVOICENEXT_PERIOD']._serialized_end=44711 - _globals['_FUNDCHANNEL_CANCELREQUEST']._serialized_start=44713 - _globals['_FUNDCHANNEL_CANCELREQUEST']._serialized_end=44752 - _globals['_FUNDCHANNEL_CANCELRESPONSE']._serialized_start=44754 - _globals['_FUNDCHANNEL_CANCELRESPONSE']._serialized_end=44801 - _globals['_FUNDCHANNEL_COMPLETEREQUEST']._serialized_start=44803 - _globals['_FUNDCHANNEL_COMPLETEREQUEST']._serialized_end=44858 - _globals['_FUNDCHANNEL_COMPLETERESPONSE']._serialized_start=44860 - _globals['_FUNDCHANNEL_COMPLETERESPONSE']._serialized_end=44939 - _globals['_FUNDCHANNELREQUEST']._serialized_start=44942 - _globals['_FUNDCHANNELREQUEST']._serialized_end=45449 - _globals['_FUNDCHANNELRESPONSE']._serialized_start=45452 - _globals['_FUNDCHANNELRESPONSE']._serialized_end=45681 - _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_start=45683 - _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_end=45759 - _globals['_FUNDCHANNEL_STARTREQUEST']._serialized_start=45762 - _globals['_FUNDCHANNEL_STARTREQUEST']._serialized_end=46105 - _globals['_FUNDCHANNEL_STARTRESPONSE']._serialized_start=46108 - _globals['_FUNDCHANNEL_STARTRESPONSE']._serialized_end=46357 - _globals['_FUNDCHANNEL_STARTCHANNEL_TYPE']._serialized_start=46359 - _globals['_FUNDCHANNEL_STARTCHANNEL_TYPE']._serialized_end=46441 - _globals['_GETLOGREQUEST']._serialized_start=46444 - _globals['_GETLOGREQUEST']._serialized_end=46601 - _globals['_GETLOGREQUEST_GETLOGLEVEL']._serialized_start=46513 - _globals['_GETLOGREQUEST_GETLOGLEVEL']._serialized_end=46591 - _globals['_GETLOGRESPONSE']._serialized_start=46603 - _globals['_GETLOGRESPONSE']._serialized_end=46707 - _globals['_GETLOGLOG']._serialized_start=46710 - _globals['_GETLOGLOG']._serialized_end=47070 - _globals['_GETLOGLOG_GETLOGLOGTYPE']._serialized_start=46897 - _globals['_GETLOGLOG_GETLOGLOGTYPE']._serialized_end=47005 - _globals['_FUNDERUPDATEREQUEST']._serialized_start=47073 - _globals['_FUNDERUPDATEREQUEST']._serialized_end=48186 - _globals['_FUNDERUPDATEREQUEST_FUNDERUPDATEPOLICY']._serialized_start=47767 - _globals['_FUNDERUPDATEREQUEST_FUNDERUPDATEPOLICY']._serialized_end=47824 - _globals['_FUNDERUPDATERESPONSE']._serialized_start=48189 - _globals['_FUNDERUPDATERESPONSE']._serialized_end=49052 - _globals['_FUNDERUPDATERESPONSE_FUNDERUPDATEPOLICY']._serialized_start=47767 - _globals['_FUNDERUPDATERESPONSE_FUNDERUPDATEPOLICY']._serialized_end=47824 - _globals['_GETROUTEREQUEST']._serialized_start=49055 - _globals['_GETROUTEREQUEST']._serialized_end=49291 - _globals['_GETROUTERESPONSE']._serialized_start=49293 - _globals['_GETROUTERESPONSE']._serialized_end=49346 - _globals['_GETROUTEROUTE']._serialized_start=49349 - _globals['_GETROUTEROUTE']._serialized_end=49546 - _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_start=49517 - _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_end=49546 - _globals['_LISTFORWARDSREQUEST']._serialized_start=49549 - _globals['_LISTFORWARDSREQUEST']._serialized_end=49988 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_start=49793 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_end=49869 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_start=49871 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_end=49916 - _globals['_LISTFORWARDSRESPONSE']._serialized_start=49990 - _globals['_LISTFORWARDSRESPONSE']._serialized_end=50057 - _globals['_LISTFORWARDSFORWARDS']._serialized_start=50060 - _globals['_LISTFORWARDSFORWARDS']._serialized_end=50880 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_start=50581 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_end=50665 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_start=50667 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_end=50715 - _globals['_LISTOFFERSREQUEST']._serialized_start=50882 - _globals['_LISTOFFERSREQUEST']._serialized_end=50979 - _globals['_LISTOFFERSRESPONSE']._serialized_start=50981 - _globals['_LISTOFFERSRESPONSE']._serialized_end=51040 - _globals['_LISTOFFERSOFFERS']._serialized_start=51043 - _globals['_LISTOFFERSOFFERS']._serialized_end=51175 - _globals['_LISTPAYSREQUEST']._serialized_start=51178 - _globals['_LISTPAYSREQUEST']._serialized_end=51566 - _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_start=51399 - _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_end=51454 - _globals['_LISTPAYSREQUEST_LISTPAYSINDEX']._serialized_start=51456 - _globals['_LISTPAYSREQUEST_LISTPAYSINDEX']._serialized_end=51497 - _globals['_LISTPAYSRESPONSE']._serialized_start=51568 - _globals['_LISTPAYSRESPONSE']._serialized_end=51619 - _globals['_LISTPAYSPAYS']._serialized_start=51622 - _globals['_LISTPAYSPAYS']._serialized_end=52353 - _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_start=52092 - _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_end=52151 - _globals['_LISTHTLCSREQUEST']._serialized_start=52355 - _globals['_LISTHTLCSREQUEST']._serialized_end=52397 - _globals['_LISTHTLCSRESPONSE']._serialized_start=52399 - _globals['_LISTHTLCSRESPONSE']._serialized_end=52454 - _globals['_LISTHTLCSHTLCS']._serialized_start=52457 - _globals['_LISTHTLCSHTLCS']._serialized_end=52722 - _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_start=52680 - _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_end=52722 - _globals['_MULTIFUNDCHANNELREQUEST']._serialized_start=52725 - _globals['_MULTIFUNDCHANNELREQUEST']._serialized_end=53031 - _globals['_MULTIFUNDCHANNELRESPONSE']._serialized_start=53034 - _globals['_MULTIFUNDCHANNELRESPONSE']._serialized_end=53186 - _globals['_MULTIFUNDCHANNELDESTINATIONS']._serialized_start=53189 - _globals['_MULTIFUNDCHANNELDESTINATIONS']._serialized_end=53572 - _globals['_MULTIFUNDCHANNELCHANNEL_IDS']._serialized_start=53575 - _globals['_MULTIFUNDCHANNELCHANNEL_IDS']._serialized_end=53778 - _globals['_MULTIFUNDCHANNELCHANNEL_IDSCHANNEL_TYPE']._serialized_start=53780 - _globals['_MULTIFUNDCHANNELCHANNEL_IDSCHANNEL_TYPE']._serialized_end=53872 - _globals['_MULTIFUNDCHANNELFAILED']._serialized_start=53875 - _globals['_MULTIFUNDCHANNELFAILED']._serialized_end=54150 - _globals['_MULTIFUNDCHANNELFAILED_MULTIFUNDCHANNELFAILEDMETHOD']._serialized_start=54036 - _globals['_MULTIFUNDCHANNELFAILED_MULTIFUNDCHANNELFAILEDMETHOD']._serialized_end=54150 - _globals['_MULTIFUNDCHANNELFAILEDERROR']._serialized_start=54152 - _globals['_MULTIFUNDCHANNELFAILEDERROR']._serialized_end=54212 - _globals['_MULTIWITHDRAWREQUEST']._serialized_start=54215 - _globals['_MULTIWITHDRAWREQUEST']._serialized_end=54383 - _globals['_MULTIWITHDRAWRESPONSE']._serialized_start=54385 - _globals['_MULTIWITHDRAWRESPONSE']._serialized_end=54434 - _globals['_OFFERREQUEST']._serialized_start=54437 - _globals['_OFFERREQUEST']._serialized_end=54981 - _globals['_OFFERRESPONSE']._serialized_start=54984 - _globals['_OFFERRESPONSE']._serialized_end=55130 - _globals['_OPENCHANNEL_ABORTREQUEST']._serialized_start=55132 - _globals['_OPENCHANNEL_ABORTREQUEST']._serialized_end=55178 - _globals['_OPENCHANNEL_ABORTRESPONSE']._serialized_start=55180 - _globals['_OPENCHANNEL_ABORTRESPONSE']._serialized_end=55269 - _globals['_OPENCHANNEL_BUMPREQUEST']._serialized_start=55272 - _globals['_OPENCHANNEL_BUMPREQUEST']._serialized_end=55431 - _globals['_OPENCHANNEL_BUMPRESPONSE']._serialized_start=55434 - _globals['_OPENCHANNEL_BUMPRESPONSE']._serialized_end=55696 - _globals['_OPENCHANNEL_BUMPCHANNEL_TYPE']._serialized_start=55698 - _globals['_OPENCHANNEL_BUMPCHANNEL_TYPE']._serialized_end=55779 - _globals['_OPENCHANNEL_INITREQUEST']._serialized_start=55782 - _globals['_OPENCHANNEL_INITREQUEST']._serialized_end=56198 - _globals['_OPENCHANNEL_INITRESPONSE']._serialized_start=56201 - _globals['_OPENCHANNEL_INITRESPONSE']._serialized_end=56463 - _globals['_OPENCHANNEL_INITCHANNEL_TYPE']._serialized_start=56465 - _globals['_OPENCHANNEL_INITCHANNEL_TYPE']._serialized_end=56546 - _globals['_OPENCHANNEL_SIGNEDREQUEST']._serialized_start=56548 - _globals['_OPENCHANNEL_SIGNEDREQUEST']._serialized_end=56616 - _globals['_OPENCHANNEL_SIGNEDRESPONSE']._serialized_start=56618 - _globals['_OPENCHANNEL_SIGNEDRESPONSE']._serialized_end=56692 - _globals['_OPENCHANNEL_UPDATEREQUEST']._serialized_start=56694 - _globals['_OPENCHANNEL_UPDATEREQUEST']._serialized_end=56755 - _globals['_OPENCHANNEL_UPDATERESPONSE']._serialized_start=56758 - _globals['_OPENCHANNEL_UPDATERESPONSE']._serialized_end=57060 - _globals['_OPENCHANNEL_UPDATECHANNEL_TYPE']._serialized_start=57062 - _globals['_OPENCHANNEL_UPDATECHANNEL_TYPE']._serialized_end=57145 - _globals['_PINGREQUEST']._serialized_start=57147 - _globals['_PINGREQUEST']._serialized_end=57236 - _globals['_PINGRESPONSE']._serialized_start=57238 - _globals['_PINGRESPONSE']._serialized_end=57268 - _globals['_PLUGINREQUEST']._serialized_start=57271 - _globals['_PLUGINREQUEST']._serialized_end=57416 - _globals['_PLUGINRESPONSE']._serialized_start=57418 - _globals['_PLUGINRESPONSE']._serialized_end=57543 - _globals['_PLUGINPLUGINS']._serialized_start=57545 - _globals['_PLUGINPLUGINS']._serialized_end=57607 - _globals['_RENEPAYSTATUSREQUEST']._serialized_start=57609 - _globals['_RENEPAYSTATUSREQUEST']._serialized_end=57669 - _globals['_RENEPAYSTATUSRESPONSE']._serialized_start=57671 - _globals['_RENEPAYSTATUSRESPONSE']._serialized_end=57742 - _globals['_RENEPAYSTATUSPAYSTATUS']._serialized_start=57745 - _globals['_RENEPAYSTATUSPAYSTATUS']._serialized_end=58227 - _globals['_RENEPAYSTATUSPAYSTATUS_RENEPAYSTATUSPAYSTATUSSTATUS']._serialized_start=58090 - _globals['_RENEPAYSTATUSPAYSTATUS_RENEPAYSTATUSPAYSTATUSSTATUS']._serialized_end=58159 - _globals['_RENEPAYREQUEST']._serialized_start=58230 - _globals['_RENEPAYREQUEST']._serialized_end=58576 - _globals['_RENEPAYRESPONSE']._serialized_start=58579 - _globals['_RENEPAYRESPONSE']._serialized_end=59000 - _globals['_RENEPAYRESPONSE_RENEPAYSTATUS']._serialized_start=58896 - _globals['_RENEPAYRESPONSE_RENEPAYSTATUS']._serialized_end=58950 - _globals['_RESERVEINPUTSREQUEST']._serialized_start=59002 - _globals['_RESERVEINPUTSREQUEST']._serialized_end=59110 - _globals['_RESERVEINPUTSRESPONSE']._serialized_start=59112 - _globals['_RESERVEINPUTSRESPONSE']._serialized_end=59189 - _globals['_RESERVEINPUTSRESERVATIONS']._serialized_start=59191 - _globals['_RESERVEINPUTSRESERVATIONS']._serialized_end=59313 - _globals['_SENDCUSTOMMSGREQUEST']._serialized_start=59315 - _globals['_SENDCUSTOMMSGREQUEST']._serialized_end=59367 - _globals['_SENDCUSTOMMSGRESPONSE']._serialized_start=59369 - _globals['_SENDCUSTOMMSGRESPONSE']._serialized_end=59408 - _globals['_SENDINVOICEREQUEST']._serialized_start=59411 - _globals['_SENDINVOICEREQUEST']._serialized_end=59587 - _globals['_SENDINVOICERESPONSE']._serialized_start=59590 - _globals['_SENDINVOICERESPONSE']._serialized_end=60181 - _globals['_SENDINVOICERESPONSE_SENDINVOICESTATUS']._serialized_start=59992 - _globals['_SENDINVOICERESPONSE_SENDINVOICESTATUS']._serialized_end=60046 - _globals['_SETCHANNELREQUEST']._serialized_start=60184 - _globals['_SETCHANNELREQUEST']._serialized_end=60482 - _globals['_SETCHANNELRESPONSE']._serialized_start=60484 - _globals['_SETCHANNELRESPONSE']._serialized_end=60547 - _globals['_SETCHANNELCHANNELS']._serialized_start=60550 - _globals['_SETCHANNELCHANNELS']._serialized_end=61008 - _globals['_SETCONFIGREQUEST']._serialized_start=61010 - _globals['_SETCONFIGREQUEST']._serialized_end=61070 - _globals['_SETCONFIGRESPONSE']._serialized_start=61072 - _globals['_SETCONFIGRESPONSE']._serialized_end=61129 - _globals['_SETCONFIGCONFIG']._serialized_start=61132 - _globals['_SETCONFIGCONFIG']._serialized_end=61425 - _globals['_SETPSBTVERSIONREQUEST']._serialized_start=61427 - _globals['_SETPSBTVERSIONREQUEST']._serialized_end=61481 - _globals['_SETPSBTVERSIONRESPONSE']._serialized_start=61483 - _globals['_SETPSBTVERSIONRESPONSE']._serialized_end=61521 - _globals['_SIGNINVOICEREQUEST']._serialized_start=61523 - _globals['_SIGNINVOICEREQUEST']._serialized_end=61562 - _globals['_SIGNINVOICERESPONSE']._serialized_start=61564 - _globals['_SIGNINVOICERESPONSE']._serialized_end=61601 - _globals['_SIGNMESSAGEREQUEST']._serialized_start=61603 - _globals['_SIGNMESSAGEREQUEST']._serialized_end=61640 - _globals['_SIGNMESSAGERESPONSE']._serialized_start=61642 - _globals['_SIGNMESSAGERESPONSE']._serialized_end=61712 - _globals['_SPLICE_INITREQUEST']._serialized_start=61715 - _globals['_SPLICE_INITREQUEST']._serialized_end=61916 - _globals['_SPLICE_INITRESPONSE']._serialized_start=61918 - _globals['_SPLICE_INITRESPONSE']._serialized_end=61953 - _globals['_SPLICE_SIGNEDREQUEST']._serialized_start=61955 - _globals['_SPLICE_SIGNEDREQUEST']._serialized_end=62051 - _globals['_SPLICE_SIGNEDRESPONSE']._serialized_start=62053 - _globals['_SPLICE_SIGNEDRESPONSE']._serialized_end=62148 - _globals['_SPLICE_UPDATEREQUEST']._serialized_start=62150 - _globals['_SPLICE_UPDATEREQUEST']._serialized_end=62206 - _globals['_SPLICE_UPDATERESPONSE']._serialized_start=62208 - _globals['_SPLICE_UPDATERESPONSE']._serialized_end=62330 - _globals['_UNRESERVEINPUTSREQUEST']._serialized_start=62332 - _globals['_UNRESERVEINPUTSREQUEST']._serialized_end=62404 - _globals['_UNRESERVEINPUTSRESPONSE']._serialized_start=62406 - _globals['_UNRESERVEINPUTSRESPONSE']._serialized_end=62487 - _globals['_UNRESERVEINPUTSRESERVATIONS']._serialized_start=62490 - _globals['_UNRESERVEINPUTSRESERVATIONS']._serialized_end=62641 - _globals['_UPGRADEWALLETREQUEST']._serialized_start=62643 - _globals['_UPGRADEWALLETREQUEST']._serialized_end=62753 - _globals['_UPGRADEWALLETRESPONSE']._serialized_start=62756 - _globals['_UPGRADEWALLETRESPONSE']._serialized_end=62905 - _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_start=62907 - _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_end=62986 - _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_start=62988 - _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_end=63034 - _globals['_WAITREQUEST']._serialized_start=63037 - _globals['_WAITREQUEST']._serialized_end=63286 - _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_start=63173 - _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_end=63230 - _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_start=63232 - _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_end=63286 - _globals['_WAITRESPONSE']._serialized_start=63289 - _globals['_WAITRESPONSE']._serialized_end=63568 - _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_start=63173 - _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_end=63230 - _globals['_WAITDETAILS']._serialized_start=63571 - _globals['_WAITDETAILS']._serialized_end=64207 - _globals['_WAITDETAILS_WAITDETAILSSTATUS']._serialized_start=63913 - _globals['_WAITDETAILS_WAITDETAILSSTATUS']._serialized_end=64050 - _globals['_LISTCONFIGSREQUEST']._serialized_start=64209 - _globals['_LISTCONFIGSREQUEST']._serialized_end=64261 - _globals['_LISTCONFIGSRESPONSE']._serialized_start=64264 - _globals['_LISTCONFIGSRESPONSE']._serialized_end=67883 - _globals['_LISTCONFIGSCONFIGS']._serialized_start=67886 - _globals['_LISTCONFIGSCONFIGS']._serialized_end=73984 - _globals['_LISTCONFIGSCONFIGSCONF']._serialized_start=73987 - _globals['_LISTCONFIGSCONFIGSCONF']._serialized_end=74149 - _globals['_LISTCONFIGSCONFIGSCONF_LISTCONFIGSCONFIGSCONFSOURCE']._serialized_start=74106 - _globals['_LISTCONFIGSCONFIGSCONF_LISTCONFIGSCONFIGSCONFSOURCE']._serialized_end=74149 - _globals['_LISTCONFIGSCONFIGSDEVELOPER']._serialized_start=74151 - _globals['_LISTCONFIGSCONFIGSDEVELOPER']._serialized_end=74209 - _globals['_LISTCONFIGSCONFIGSCLEARPLUGINS']._serialized_start=74211 - _globals['_LISTCONFIGSCONFIGSCLEARPLUGINS']._serialized_end=74272 - _globals['_LISTCONFIGSCONFIGSDISABLEMPP']._serialized_start=74274 - _globals['_LISTCONFIGSCONFIGSDISABLEMPP']._serialized_end=74365 - _globals['_LISTCONFIGSCONFIGSMAINNET']._serialized_start=74367 - _globals['_LISTCONFIGSCONFIGSMAINNET']._serialized_end=74423 - _globals['_LISTCONFIGSCONFIGSREGTEST']._serialized_start=74425 - _globals['_LISTCONFIGSCONFIGSREGTEST']._serialized_end=74481 - _globals['_LISTCONFIGSCONFIGSSIGNET']._serialized_start=74483 - _globals['_LISTCONFIGSCONFIGSSIGNET']._serialized_end=74538 - _globals['_LISTCONFIGSCONFIGSTESTNET']._serialized_start=74540 - _globals['_LISTCONFIGSCONFIGSTESTNET']._serialized_end=74596 - _globals['_LISTCONFIGSCONFIGSIMPORTANTPLUGIN']._serialized_start=74598 - _globals['_LISTCONFIGSCONFIGSIMPORTANTPLUGIN']._serialized_end=74670 - _globals['_LISTCONFIGSCONFIGSPLUGIN']._serialized_start=74672 - _globals['_LISTCONFIGSCONFIGSPLUGIN']._serialized_end=74735 - _globals['_LISTCONFIGSCONFIGSPLUGINDIR']._serialized_start=74737 - _globals['_LISTCONFIGSCONFIGSPLUGINDIR']._serialized_end=74803 - _globals['_LISTCONFIGSCONFIGSLIGHTNINGDIR']._serialized_start=74805 - _globals['_LISTCONFIGSCONFIGSLIGHTNINGDIR']._serialized_end=74872 - _globals['_LISTCONFIGSCONFIGSNETWORK']._serialized_start=74874 - _globals['_LISTCONFIGSCONFIGSNETWORK']._serialized_end=74936 - _globals['_LISTCONFIGSCONFIGSALLOWDEPRECATEDAPIS']._serialized_start=74938 - _globals['_LISTCONFIGSCONFIGSALLOWDEPRECATEDAPIS']._serialized_end=75013 - _globals['_LISTCONFIGSCONFIGSRPCFILE']._serialized_start=75015 - _globals['_LISTCONFIGSCONFIGSRPCFILE']._serialized_end=75077 - _globals['_LISTCONFIGSCONFIGSDISABLEPLUGIN']._serialized_start=75079 - _globals['_LISTCONFIGSCONFIGSDISABLEPLUGIN']._serialized_end=75149 - _globals['_LISTCONFIGSCONFIGSALWAYSUSEPROXY']._serialized_start=75151 - _globals['_LISTCONFIGSCONFIGSALWAYSUSEPROXY']._serialized_end=75221 - _globals['_LISTCONFIGSCONFIGSDAEMON']._serialized_start=75223 - _globals['_LISTCONFIGSCONFIGSDAEMON']._serialized_end=75278 - _globals['_LISTCONFIGSCONFIGSWALLET']._serialized_start=75280 - _globals['_LISTCONFIGSCONFIGSWALLET']._serialized_end=75341 - _globals['_LISTCONFIGSCONFIGSLARGECHANNELS']._serialized_start=75343 - _globals['_LISTCONFIGSCONFIGSLARGECHANNELS']._serialized_end=75405 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALDUALFUND']._serialized_start=75407 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALDUALFUND']._serialized_end=75476 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALSPLICING']._serialized_start=75478 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALSPLICING']._serialized_end=75547 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALONIONMESSAGES']._serialized_start=75549 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALONIONMESSAGES']._serialized_end=75623 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALOFFERS']._serialized_start=75625 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALOFFERS']._serialized_end=75692 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALSHUTDOWNWRONGFUNDING']._serialized_start=75694 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALSHUTDOWNWRONGFUNDING']._serialized_end=75775 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALPEERSTORAGE']._serialized_start=75777 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALPEERSTORAGE']._serialized_end=75849 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALANCHORS']._serialized_start=75851 - _globals['_LISTCONFIGSCONFIGSEXPERIMENTALANCHORS']._serialized_end=75919 - _globals['_LISTCONFIGSCONFIGSDATABASEUPGRADE']._serialized_start=75921 - _globals['_LISTCONFIGSCONFIGSDATABASEUPGRADE']._serialized_end=75992 - _globals['_LISTCONFIGSCONFIGSRGB']._serialized_start=75994 - _globals['_LISTCONFIGSCONFIGSRGB']._serialized_end=76052 - _globals['_LISTCONFIGSCONFIGSALIAS']._serialized_start=76054 - _globals['_LISTCONFIGSCONFIGSALIAS']._serialized_end=76114 - _globals['_LISTCONFIGSCONFIGSPIDFILE']._serialized_start=76116 - _globals['_LISTCONFIGSCONFIGSPIDFILE']._serialized_end=76178 - _globals['_LISTCONFIGSCONFIGSIGNOREFEELIMITS']._serialized_start=76180 - _globals['_LISTCONFIGSCONFIGSIGNOREFEELIMITS']._serialized_end=76251 - _globals['_LISTCONFIGSCONFIGSWATCHTIMEBLOCKS']._serialized_start=76253 - _globals['_LISTCONFIGSCONFIGSWATCHTIMEBLOCKS']._serialized_end=76323 - _globals['_LISTCONFIGSCONFIGSMAXLOCKTIMEBLOCKS']._serialized_start=76325 - _globals['_LISTCONFIGSCONFIGSMAXLOCKTIMEBLOCKS']._serialized_end=76397 - _globals['_LISTCONFIGSCONFIGSFUNDINGCONFIRMS']._serialized_start=76399 - _globals['_LISTCONFIGSCONFIGSFUNDINGCONFIRMS']._serialized_end=76469 - _globals['_LISTCONFIGSCONFIGSCLTVDELTA']._serialized_start=76471 - _globals['_LISTCONFIGSCONFIGSCLTVDELTA']._serialized_end=76535 - _globals['_LISTCONFIGSCONFIGSCLTVFINAL']._serialized_start=76537 - _globals['_LISTCONFIGSCONFIGSCLTVFINAL']._serialized_end=76601 - _globals['_LISTCONFIGSCONFIGSCOMMITTIME']._serialized_start=76603 - _globals['_LISTCONFIGSCONFIGSCOMMITTIME']._serialized_end=76668 - _globals['_LISTCONFIGSCONFIGSFEEBASE']._serialized_start=76670 - _globals['_LISTCONFIGSCONFIGSFEEBASE']._serialized_end=76732 - _globals['_LISTCONFIGSCONFIGSRESCAN']._serialized_start=76734 - _globals['_LISTCONFIGSCONFIGSRESCAN']._serialized_end=76795 - _globals['_LISTCONFIGSCONFIGSFEEPERSATOSHI']._serialized_start=76797 - _globals['_LISTCONFIGSCONFIGSFEEPERSATOSHI']._serialized_end=76865 - _globals['_LISTCONFIGSCONFIGSMAXCONCURRENTHTLCS']._serialized_start=76867 - _globals['_LISTCONFIGSCONFIGSMAXCONCURRENTHTLCS']._serialized_end=76940 - _globals['_LISTCONFIGSCONFIGSHTLCMINIMUMMSAT']._serialized_start=76942 - _globals['_LISTCONFIGSCONFIGSHTLCMINIMUMMSAT']._serialized_end=77026 - _globals['_LISTCONFIGSCONFIGSHTLCMAXIMUMMSAT']._serialized_start=77028 - _globals['_LISTCONFIGSCONFIGSHTLCMAXIMUMMSAT']._serialized_end=77112 - _globals['_LISTCONFIGSCONFIGSMAXDUSTHTLCEXPOSUREMSAT']._serialized_start=77114 - _globals['_LISTCONFIGSCONFIGSMAXDUSTHTLCEXPOSUREMSAT']._serialized_end=77206 - _globals['_LISTCONFIGSCONFIGSMINCAPACITYSAT']._serialized_start=77208 - _globals['_LISTCONFIGSCONFIGSMINCAPACITYSAT']._serialized_end=77311 - _globals['_LISTCONFIGSCONFIGSADDR']._serialized_start=77313 - _globals['_LISTCONFIGSCONFIGSADDR']._serialized_end=77374 - _globals['_LISTCONFIGSCONFIGSANNOUNCEADDR']._serialized_start=77376 - _globals['_LISTCONFIGSCONFIGSANNOUNCEADDR']._serialized_end=77445 - _globals['_LISTCONFIGSCONFIGSBINDADDR']._serialized_start=77447 - _globals['_LISTCONFIGSCONFIGSBINDADDR']._serialized_end=77512 - _globals['_LISTCONFIGSCONFIGSOFFLINE']._serialized_start=77514 - _globals['_LISTCONFIGSCONFIGSOFFLINE']._serialized_end=77570 - _globals['_LISTCONFIGSCONFIGSAUTOLISTEN']._serialized_start=77572 - _globals['_LISTCONFIGSCONFIGSAUTOLISTEN']._serialized_end=77638 - _globals['_LISTCONFIGSCONFIGSPROXY']._serialized_start=77640 - _globals['_LISTCONFIGSCONFIGSPROXY']._serialized_end=77700 - _globals['_LISTCONFIGSCONFIGSDISABLEDNS']._serialized_start=77702 - _globals['_LISTCONFIGSCONFIGSDISABLEDNS']._serialized_end=77761 - _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVERED']._serialized_start=77764 - _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVERED']._serialized_end=78022 - _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVERED_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVEREDVALUE_STR']._serialized_start=77940 - _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVERED_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVEREDVALUE_STR']._serialized_end=78022 - _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVEREDPORT']._serialized_start=78024 - _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVEREDPORT']._serialized_end=78105 - _globals['_LISTCONFIGSCONFIGSENCRYPTEDHSM']._serialized_start=78107 - _globals['_LISTCONFIGSCONFIGSENCRYPTEDHSM']._serialized_end=78168 - _globals['_LISTCONFIGSCONFIGSRPCFILEMODE']._serialized_start=78170 - _globals['_LISTCONFIGSCONFIGSRPCFILEMODE']._serialized_end=78236 - _globals['_LISTCONFIGSCONFIGSLOGLEVEL']._serialized_start=78238 - _globals['_LISTCONFIGSCONFIGSLOGLEVEL']._serialized_end=78301 - _globals['_LISTCONFIGSCONFIGSLOGPREFIX']._serialized_start=78303 - _globals['_LISTCONFIGSCONFIGSLOGPREFIX']._serialized_end=78367 - _globals['_LISTCONFIGSCONFIGSLOGFILE']._serialized_start=78369 - _globals['_LISTCONFIGSCONFIGSLOGFILE']._serialized_end=78433 - _globals['_LISTCONFIGSCONFIGSLOGTIMESTAMPS']._serialized_start=78435 - _globals['_LISTCONFIGSCONFIGSLOGTIMESTAMPS']._serialized_end=78504 - _globals['_LISTCONFIGSCONFIGSFORCEFEERATES']._serialized_start=78506 - _globals['_LISTCONFIGSCONFIGSFORCEFEERATES']._serialized_end=78574 - _globals['_LISTCONFIGSCONFIGSSUBDAEMON']._serialized_start=78576 - _globals['_LISTCONFIGSCONFIGSSUBDAEMON']._serialized_end=78642 - _globals['_LISTCONFIGSCONFIGSFETCHINVOICENOCONNECT']._serialized_start=78644 - _globals['_LISTCONFIGSCONFIGSFETCHINVOICENOCONNECT']._serialized_end=78746 - _globals['_LISTCONFIGSCONFIGSACCEPTHTLCTLVTYPES']._serialized_start=78748 - _globals['_LISTCONFIGSCONFIGSACCEPTHTLCTLVTYPES']._serialized_end=78821 - _globals['_LISTCONFIGSCONFIGSTORSERVICEPASSWORD']._serialized_start=78823 - _globals['_LISTCONFIGSCONFIGSTORSERVICEPASSWORD']._serialized_end=78896 - _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDNS']._serialized_start=78898 - _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDNS']._serialized_end=78969 - _globals['_LISTCONFIGSCONFIGSREQUIRECONFIRMEDINPUTS']._serialized_start=78971 - _globals['_LISTCONFIGSCONFIGSREQUIRECONFIRMEDINPUTS']._serialized_end=79049 - _globals['_LISTCONFIGSCONFIGSCOMMITFEE']._serialized_start=79051 - _globals['_LISTCONFIGSCONFIGSCOMMITFEE']._serialized_end=79115 - _globals['_LISTCONFIGSCONFIGSCOMMITFEERATEOFFSET']._serialized_start=79117 - _globals['_LISTCONFIGSCONFIGSCOMMITFEERATEOFFSET']._serialized_end=79191 - _globals['_LISTCONFIGSCONFIGSAUTOCONNECTSEEKERPEERS']._serialized_start=79193 - _globals['_LISTCONFIGSCONFIGSAUTOCONNECTSEEKERPEERS']._serialized_end=79270 - _globals['_LISTCONFIGSPLUGINS']._serialized_start=79272 - _globals['_LISTCONFIGSPLUGINS']._serialized_end=79386 - _globals['_LISTCONFIGSPLUGINSOPTIONS']._serialized_start=79388 - _globals['_LISTCONFIGSPLUGINSOPTIONS']._serialized_end=79415 - _globals['_LISTCONFIGSIMPORTANTPLUGINS']._serialized_start=79418 - _globals['_LISTCONFIGSIMPORTANTPLUGINS']._serialized_end=79550 - _globals['_LISTCONFIGSIMPORTANTPLUGINSOPTIONS']._serialized_start=79552 - _globals['_LISTCONFIGSIMPORTANTPLUGINSOPTIONS']._serialized_end=79588 - _globals['_STOPREQUEST']._serialized_start=79590 - _globals['_STOPREQUEST']._serialized_end=79603 - _globals['_STOPRESPONSE']._serialized_start=79605 - _globals['_STOPRESPONSE']._serialized_end=79718 - _globals['_STOPRESPONSE_STOPRESULT']._serialized_start=79672 - _globals['_STOPRESPONSE_STOPRESULT']._serialized_end=79707 - _globals['_HELPREQUEST']._serialized_start=79720 - _globals['_HELPREQUEST']._serialized_end=79767 - _globals['_HELPRESPONSE']._serialized_start=79770 - _globals['_HELPRESPONSE']._serialized_end=79919 - _globals['_HELPRESPONSE_HELPFORMATHINT']._serialized_start=79875 - _globals['_HELPRESPONSE_HELPFORMATHINT']._serialized_end=79903 - _globals['_HELPHELP']._serialized_start=79921 - _globals['_HELPHELP']._serialized_end=79948 - _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_start=79950 - _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_end=80053 - _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_start=80055 - _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_end=80082 - _globals['_PREAPPROVEINVOICEREQUEST']._serialized_start=80084 - _globals['_PREAPPROVEINVOICEREQUEST']._serialized_end=80126 - _globals['_PREAPPROVEINVOICERESPONSE']._serialized_start=80128 - _globals['_PREAPPROVEINVOICERESPONSE']._serialized_end=80155 - _globals['_STATICBACKUPREQUEST']._serialized_start=80157 - _globals['_STATICBACKUPREQUEST']._serialized_end=80178 - _globals['_STATICBACKUPRESPONSE']._serialized_start=80180 - _globals['_STATICBACKUPRESPONSE']._serialized_end=80215 - _globals['_BKPRCHANNELSAPYREQUEST']._serialized_start=80217 - _globals['_BKPRCHANNELSAPYREQUEST']._serialized_end=80317 - _globals['_BKPRCHANNELSAPYRESPONSE']._serialized_start=80319 - _globals['_BKPRCHANNELSAPYRESPONSE']._serialized_end=80400 - _globals['_BKPRCHANNELSAPYCHANNELS_APY']._serialized_start=80403 - _globals['_BKPRCHANNELSAPYCHANNELS_APY']._serialized_end=81293 - _globals['_BKPRDUMPINCOMECSVREQUEST']._serialized_start=81296 - _globals['_BKPRDUMPINCOMECSVREQUEST']._serialized_end=81506 - _globals['_BKPRDUMPINCOMECSVRESPONSE']._serialized_start=81509 - _globals['_BKPRDUMPINCOMECSVRESPONSE']._serialized_end=81723 - _globals['_BKPRDUMPINCOMECSVRESPONSE_BKPRDUMPINCOMECSVCSV_FORMAT']._serialized_start=81636 - _globals['_BKPRDUMPINCOMECSVRESPONSE_BKPRDUMPINCOMECSVCSV_FORMAT']._serialized_end=81723 - _globals['_BKPRINSPECTREQUEST']._serialized_start=81725 - _globals['_BKPRINSPECTREQUEST']._serialized_end=81762 - _globals['_BKPRINSPECTRESPONSE']._serialized_start=81764 - _globals['_BKPRINSPECTRESPONSE']._serialized_end=81819 - _globals['_BKPRINSPECTTXS']._serialized_start=81822 - _globals['_BKPRINSPECTTXS']._serialized_end=81976 - _globals['_BKPRINSPECTTXSOUTPUTS']._serialized_start=81979 - _globals['_BKPRINSPECTTXSOUTPUTS']._serialized_end=82423 - _globals['_BKPRLISTACCOUNTEVENTSREQUEST']._serialized_start=82425 - _globals['_BKPRLISTACCOUNTEVENTSREQUEST']._serialized_end=82529 - _globals['_BKPRLISTACCOUNTEVENTSRESPONSE']._serialized_start=82531 - _globals['_BKPRLISTACCOUNTEVENTSRESPONSE']._serialized_end=82612 - _globals['_BKPRLISTACCOUNTEVENTSEVENTS']._serialized_start=82615 - _globals['_BKPRLISTACCOUNTEVENTSEVENTS']._serialized_end=83288 - _globals['_BKPRLISTACCOUNTEVENTSEVENTS_BKPRLISTACCOUNTEVENTSEVENTSTYPE']._serialized_start=83091 - _globals['_BKPRLISTACCOUNTEVENTSEVENTS_BKPRLISTACCOUNTEVENTSEVENTSTYPE']._serialized_end=83165 - _globals['_BKPRLISTBALANCESREQUEST']._serialized_start=83290 - _globals['_BKPRLISTBALANCESREQUEST']._serialized_end=83315 - _globals['_BKPRLISTBALANCESRESPONSE']._serialized_start=83317 - _globals['_BKPRLISTBALANCESRESPONSE']._serialized_end=83392 - _globals['_BKPRLISTBALANCESACCOUNTS']._serialized_start=83395 - _globals['_BKPRLISTBALANCESACCOUNTS']._serialized_end=83721 - _globals['_BKPRLISTBALANCESACCOUNTSBALANCES']._serialized_start=83723 - _globals['_BKPRLISTBALANCESACCOUNTSBALANCES']._serialized_end=83811 - _globals['_BKPRLISTINCOMEREQUEST']._serialized_start=83814 - _globals['_BKPRLISTINCOMEREQUEST']._serialized_end=83965 - _globals['_BKPRLISTINCOMERESPONSE']._serialized_start=83967 - _globals['_BKPRLISTINCOMERESPONSE']._serialized_end=84048 - _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_start=84051 - _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_end=84360 - _globals['_BLACKLISTRUNEREQUEST']._serialized_start=84362 - _globals['_BLACKLISTRUNEREQUEST']._serialized_end=84440 - _globals['_BLACKLISTRUNERESPONSE']._serialized_start=84442 - _globals['_BLACKLISTRUNERESPONSE']._serialized_end=84513 - _globals['_BLACKLISTRUNEBLACKLIST']._serialized_start=84515 - _globals['_BLACKLISTRUNEBLACKLIST']._serialized_end=84567 - _globals['_CHECKRUNEREQUEST']._serialized_start=84569 - _globals['_CHECKRUNEREQUEST']._serialized_end=84681 - _globals['_CHECKRUNERESPONSE']._serialized_start=84683 - _globals['_CHECKRUNERESPONSE']._serialized_end=84717 - _globals['_CREATERUNEREQUEST']._serialized_start=84719 - _globals['_CREATERUNEREQUEST']._serialized_end=84788 - _globals['_CREATERUNERESPONSE']._serialized_start=84790 - _globals['_CREATERUNERESPONSE']._serialized_end=84913 - _globals['_SHOWRUNESREQUEST']._serialized_start=84915 - _globals['_SHOWRUNESREQUEST']._serialized_end=84961 - _globals['_SHOWRUNESRESPONSE']._serialized_start=84963 - _globals['_SHOWRUNESRESPONSE']._serialized_end=85018 - _globals['_SHOWRUNESRUNES']._serialized_start=85021 - _globals['_SHOWRUNESRUNES']._serialized_end=85306 - _globals['_SHOWRUNESRUNESRESTRICTIONS']._serialized_start=85308 - _globals['_SHOWRUNESRUNESRESTRICTIONS']._serialized_end=85420 - _globals['_SHOWRUNESRUNESRESTRICTIONSALTERNATIVES']._serialized_start=85422 - _globals['_SHOWRUNESRUNESRESTRICTIONSALTERNATIVES']._serialized_end=85532 - _globals['_STREAMBLOCKADDEDREQUEST']._serialized_start=85534 - _globals['_STREAMBLOCKADDEDREQUEST']._serialized_end=85559 - _globals['_BLOCKADDEDNOTIFICATION']._serialized_start=85561 - _globals['_BLOCKADDEDNOTIFICATION']._serialized_end=85615 - _globals['_STREAMCHANNELOPENFAILEDREQUEST']._serialized_start=85617 - _globals['_STREAMCHANNELOPENFAILEDREQUEST']._serialized_end=85649 - _globals['_CHANNELOPENFAILEDNOTIFICATION']._serialized_start=85651 - _globals['_CHANNELOPENFAILEDNOTIFICATION']._serialized_end=85702 - _globals['_STREAMCHANNELOPENEDREQUEST']._serialized_start=85704 - _globals['_STREAMCHANNELOPENEDREQUEST']._serialized_end=85732 - _globals['_CHANNELOPENEDNOTIFICATION']._serialized_start=85734 - _globals['_CHANNELOPENEDNOTIFICATION']._serialized_end=85853 - _globals['_STREAMCONNECTREQUEST']._serialized_start=85855 - _globals['_STREAMCONNECTREQUEST']._serialized_end=85877 - _globals['_PEERCONNECTNOTIFICATION']._serialized_start=85880 - _globals['_PEERCONNECTNOTIFICATION']._serialized_end=86070 - _globals['_PEERCONNECTNOTIFICATION_PEERCONNECTDIRECTION']._serialized_start=86031 - _globals['_PEERCONNECTNOTIFICATION_PEERCONNECTDIRECTION']._serialized_end=86070 - _globals['_PEERCONNECTADDRESS']._serialized_start=86073 - _globals['_PEERCONNECTADDRESS']._serialized_end=86340 - _globals['_PEERCONNECTADDRESS_PEERCONNECTADDRESSTYPE']._serialized_start=86224 - _globals['_PEERCONNECTADDRESS_PEERCONNECTADDRESSTYPE']._serialized_end=86308 - _globals['_STREAMCUSTOMMSGREQUEST']._serialized_start=86342 - _globals['_STREAMCUSTOMMSGREQUEST']._serialized_end=86366 - _globals['_CUSTOMMSGNOTIFICATION']._serialized_start=86368 - _globals['_CUSTOMMSGNOTIFICATION']._serialized_end=86425 - _globals['_NODE']._serialized_start=86428 - _globals['_NODE']._serialized_end=94567 + _globals['_GETEMERGENCYRECOVERDATAREQUEST']._serialized_start=12193 + _globals['_GETEMERGENCYRECOVERDATAREQUEST']._serialized_end=12225 + _globals['_GETEMERGENCYRECOVERDATARESPONSE']._serialized_start=12227 + _globals['_GETEMERGENCYRECOVERDATARESPONSE']._serialized_end=12278 + _globals['_EXPOSESECRETREQUEST']._serialized_start=12280 + _globals['_EXPOSESECRETREQUEST']._serialized_end=12361 + _globals['_EXPOSESECRETRESPONSE']._serialized_start=12363 + _globals['_EXPOSESECRETRESPONSE']._serialized_end=12422 + _globals['_RECOVERREQUEST']._serialized_start=12424 + _globals['_RECOVERREQUEST']._serialized_end=12459 + _globals['_RECOVERRESPONSE']._serialized_start=12462 + _globals['_RECOVERRESPONSE']._serialized_end=12598 + _globals['_RECOVERRESPONSE_RECOVERRESULT']._serialized_start=12538 + _globals['_RECOVERRESPONSE_RECOVERRESULT']._serialized_end=12587 + _globals['_RECOVERCHANNELREQUEST']._serialized_start=12600 + _globals['_RECOVERCHANNELREQUEST']._serialized_end=12636 + _globals['_RECOVERCHANNELRESPONSE']._serialized_start=12638 + _globals['_RECOVERCHANNELRESPONSE']._serialized_end=12677 + _globals['_INVOICEREQUEST']._serialized_start=12680 + _globals['_INVOICEREQUEST']._serialized_end=12961 + _globals['_INVOICERESPONSE']._serialized_start=12964 + _globals['_INVOICERESPONSE']._serialized_end=13369 + _globals['_INVOICEREQUESTREQUEST']._serialized_start=13372 + _globals['_INVOICEREQUESTREQUEST']._serialized_end=13597 + _globals['_INVOICEREQUESTRESPONSE']._serialized_start=13600 + _globals['_INVOICEREQUESTRESPONSE']._serialized_end=13739 + _globals['_DISABLEINVOICEREQUESTREQUEST']._serialized_start=13741 + _globals['_DISABLEINVOICEREQUESTREQUEST']._serialized_end=13790 + _globals['_DISABLEINVOICEREQUESTRESPONSE']._serialized_start=13793 + _globals['_DISABLEINVOICEREQUESTRESPONSE']._serialized_end=13939 + _globals['_LISTINVOICEREQUESTSREQUEST']._serialized_start=13941 + _globals['_LISTINVOICEREQUESTSREQUEST']._serialized_end=14049 + _globals['_LISTINVOICEREQUESTSRESPONSE']._serialized_start=14051 + _globals['_LISTINVOICEREQUESTSRESPONSE']._serialized_end=14146 + _globals['_LISTINVOICEREQUESTSINVOICEREQUESTS']._serialized_start=14149 + _globals['_LISTINVOICEREQUESTSINVOICEREQUESTS']._serialized_end=14300 + _globals['_LISTDATASTOREREQUEST']._serialized_start=14302 + _globals['_LISTDATASTOREREQUEST']._serialized_end=14337 + _globals['_LISTDATASTORERESPONSE']._serialized_start=14339 + _globals['_LISTDATASTORERESPONSE']._serialized_end=14410 + _globals['_LISTDATASTOREDATASTORE']._serialized_start=14413 + _globals['_LISTDATASTOREDATASTORE']._serialized_end=14548 + _globals['_LISTINVOICESREQUEST']._serialized_start=14551 + _globals['_LISTINVOICESREQUEST']._serialized_end=14901 + _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_start=14772 + _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_end=14817 + _globals['_LISTINVOICESRESPONSE']._serialized_start=14903 + _globals['_LISTINVOICESRESPONSE']._serialized_end=14970 + _globals['_LISTINVOICESINVOICES']._serialized_start=14973 + _globals['_LISTINVOICESINVOICES']._serialized_end=15825 + _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_start=15541 + _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_end=15604 + _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_start=15827 + _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_end=15892 + _globals['_SENDONIONREQUEST']._serialized_start=15895 + _globals['_SENDONIONREQUEST']._serialized_end=16331 + _globals['_SENDONIONRESPONSE']._serialized_start=16334 + _globals['_SENDONIONRESPONSE']._serialized_end=16949 + _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_start=16761 + _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_end=16805 + _globals['_SENDONIONFIRST_HOP']._serialized_start=16951 + _globals['_SENDONIONFIRST_HOP']._serialized_end=17032 + _globals['_LISTSENDPAYSREQUEST']._serialized_start=17035 + _globals['_LISTSENDPAYSREQUEST']._serialized_end=17451 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_start=17276 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_end=17335 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_start=17337 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_end=17382 + _globals['_LISTSENDPAYSRESPONSE']._serialized_start=17453 + _globals['_LISTSENDPAYSRESPONSE']._serialized_end=17520 + _globals['_LISTSENDPAYSPAYMENTS']._serialized_start=17523 + _globals['_LISTSENDPAYSPAYMENTS']._serialized_end=18287 + _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_start=18040 + _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_end=18107 + _globals['_LISTTRANSACTIONSREQUEST']._serialized_start=18289 + _globals['_LISTTRANSACTIONSREQUEST']._serialized_end=18314 + _globals['_LISTTRANSACTIONSRESPONSE']._serialized_start=18316 + _globals['_LISTTRANSACTIONSRESPONSE']._serialized_end=18399 + _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_start=18402 + _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_end=18650 + _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_start=18652 + _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_end=18735 + _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_start=18737 + _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_end=18845 + _globals['_MAKESECRETREQUEST']._serialized_start=18847 + _globals['_MAKESECRETREQUEST']._serialized_end=18924 + _globals['_MAKESECRETRESPONSE']._serialized_start=18926 + _globals['_MAKESECRETRESPONSE']._serialized_end=18962 + _globals['_PAYREQUEST']._serialized_start=18965 + _globals['_PAYREQUEST']._serialized_end=19496 + _globals['_PAYRESPONSE']._serialized_start=19499 + _globals['_PAYRESPONSE']._serialized_end=19878 + _globals['_PAYRESPONSE_PAYSTATUS']._serialized_start=19781 + _globals['_PAYRESPONSE_PAYSTATUS']._serialized_end=19831 + _globals['_LISTNODESREQUEST']._serialized_start=19880 + _globals['_LISTNODESREQUEST']._serialized_end=19922 + _globals['_LISTNODESRESPONSE']._serialized_start=19924 + _globals['_LISTNODESRESPONSE']._serialized_end=19979 + _globals['_LISTNODESNODES']._serialized_start=19982 + _globals['_LISTNODESNODES']._serialized_end=20296 + _globals['_LISTNODESNODESOPTION_WILL_FUND']._serialized_start=20299 + _globals['_LISTNODESNODESOPTION_WILL_FUND']._serialized_end=20543 + _globals['_LISTNODESNODESADDRESSES']._serialized_start=20546 + _globals['_LISTNODESNODESADDRESSES']._serialized_end=20778 + _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_start=20686 + _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_end=20766 + _globals['_WAITANYINVOICEREQUEST']._serialized_start=20780 + _globals['_WAITANYINVOICEREQUEST']._serialized_end=20883 + _globals['_WAITANYINVOICERESPONSE']._serialized_start=20886 + _globals['_WAITANYINVOICERESPONSE']._serialized_end=21610 + _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_start=21385 + _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_end=21430 + _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_start=21612 + _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_end=21671 + _globals['_WAITINVOICEREQUEST']._serialized_start=21673 + _globals['_WAITINVOICEREQUEST']._serialized_end=21708 + _globals['_WAITINVOICERESPONSE']._serialized_start=21711 + _globals['_WAITINVOICERESPONSE']._serialized_end=22420 + _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_start=22198 + _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_end=22240 + _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_start=22422 + _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_end=22478 + _globals['_WAITSENDPAYREQUEST']._serialized_start=22481 + _globals['_WAITSENDPAYREQUEST']._serialized_end=22623 + _globals['_WAITSENDPAYRESPONSE']._serialized_start=22626 + _globals['_WAITSENDPAYRESPONSE']._serialized_end=23280 + _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_start=23086 + _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_end=23119 + _globals['_NEWADDRREQUEST']._serialized_start=23283 + _globals['_NEWADDRREQUEST']._serialized_end=23434 + _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_start=23367 + _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_end=23418 + _globals['_NEWADDRRESPONSE']._serialized_start=23436 + _globals['_NEWADDRRESPONSE']._serialized_end=23513 + _globals['_WITHDRAWREQUEST']._serialized_start=23516 + _globals['_WITHDRAWREQUEST']._serialized_end=23701 + _globals['_WITHDRAWRESPONSE']._serialized_start=23703 + _globals['_WITHDRAWRESPONSE']._serialized_end=23761 + _globals['_KEYSENDREQUEST']._serialized_start=23764 + _globals['_KEYSENDREQUEST']._serialized_end=24195 + _globals['_KEYSENDRESPONSE']._serialized_start=24198 + _globals['_KEYSENDRESPONSE']._serialized_end=24568 + _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_start=24492 + _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_end=24521 + _globals['_FUNDPSBTREQUEST']._serialized_start=24571 + _globals['_FUNDPSBTREQUEST']._serialized_end=24991 + _globals['_FUNDPSBTRESPONSE']._serialized_start=24994 + _globals['_FUNDPSBTRESPONSE']._serialized_end=25211 + _globals['_FUNDPSBTRESERVATIONS']._serialized_start=25213 + _globals['_FUNDPSBTRESERVATIONS']._serialized_end=25330 + _globals['_SENDPSBTREQUEST']._serialized_start=25332 + _globals['_SENDPSBTREQUEST']._serialized_end=25397 + _globals['_SENDPSBTRESPONSE']._serialized_start=25399 + _globals['_SENDPSBTRESPONSE']._serialized_end=25443 + _globals['_SIGNPSBTREQUEST']._serialized_start=25445 + _globals['_SIGNPSBTREQUEST']._serialized_end=25494 + _globals['_SIGNPSBTRESPONSE']._serialized_start=25496 + _globals['_SIGNPSBTRESPONSE']._serialized_end=25535 + _globals['_UTXOPSBTREQUEST']._serialized_start=25538 + _globals['_UTXOPSBTREQUEST']._serialized_end=25954 + _globals['_UTXOPSBTRESPONSE']._serialized_start=25957 + _globals['_UTXOPSBTRESPONSE']._serialized_end=26174 + _globals['_UTXOPSBTRESERVATIONS']._serialized_start=26176 + _globals['_UTXOPSBTRESERVATIONS']._serialized_end=26293 + _globals['_TXDISCARDREQUEST']._serialized_start=26295 + _globals['_TXDISCARDREQUEST']._serialized_end=26327 + _globals['_TXDISCARDRESPONSE']._serialized_start=26329 + _globals['_TXDISCARDRESPONSE']._serialized_end=26383 + _globals['_TXPREPAREREQUEST']._serialized_start=26386 + _globals['_TXPREPAREREQUEST']._serialized_end=26550 + _globals['_TXPREPARERESPONSE']._serialized_start=26552 + _globals['_TXPREPARERESPONSE']._serialized_end=26620 + _globals['_TXSENDREQUEST']._serialized_start=26622 + _globals['_TXSENDREQUEST']._serialized_end=26651 + _globals['_TXSENDRESPONSE']._serialized_start=26653 + _globals['_TXSENDRESPONSE']._serialized_end=26709 + _globals['_LISTPEERCHANNELSREQUEST']._serialized_start=26711 + _globals['_LISTPEERCHANNELSREQUEST']._serialized_end=26760 + _globals['_LISTPEERCHANNELSRESPONSE']._serialized_start=26762 + _globals['_LISTPEERCHANNELSRESPONSE']._serialized_end=26837 + _globals['_LISTPEERCHANNELSCHANNELS']._serialized_start=26840 + _globals['_LISTPEERCHANNELSCHANNELS']._serialized_end=30383 + _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_start=29029 + _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_end=29413 + _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_start=30386 + _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_end=30553 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_start=30556 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_end=30774 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_start=30777 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_end=30996 + _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_start=30998 + _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_end=31061 + _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_start=31064 + _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_end=31331 + _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_start=31334 + _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_end=31619 + _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_start=31621 + _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_end=31714 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_start=31717 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_end=32094 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_start=32008 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_end=32065 + _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_start=32096 + _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_end=32147 + _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_start=32149 + _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_end=32240 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_start=32243 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_end=33509 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_start=33180 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_end=33298 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_start=33511 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_end=33612 + _globals['_DECODEPAYREQUEST']._serialized_start=33614 + _globals['_DECODEPAYREQUEST']._serialized_end=33690 + _globals['_DECODEPAYRESPONSE']._serialized_start=33693 + _globals['_DECODEPAYRESPONSE']._serialized_end=34276 + _globals['_DECODEPAYFALLBACKS']._serialized_start=34279 + _globals['_DECODEPAYFALLBACKS']._serialized_end=34487 + _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_start=34400 + _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_end=34478 + _globals['_DECODEPAYEXTRA']._serialized_start=34489 + _globals['_DECODEPAYEXTRA']._serialized_end=34532 + _globals['_DECODEREQUEST']._serialized_start=34534 + _globals['_DECODEREQUEST']._serialized_end=34565 + _globals['_DECODERESPONSE']._serialized_start=34568 + _globals['_DECODERESPONSE']._serialized_end=39412 + _globals['_DECODERESPONSE_DECODETYPE']._serialized_start=37507 + _globals['_DECODERESPONSE_DECODETYPE']._serialized_end=37638 + _globals['_DECODEOFFER_PATHS']._serialized_start=39415 + _globals['_DECODEOFFER_PATHS']._serialized_end=39652 + _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_start=39655 + _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_end=39793 + _globals['_DECODEINVREQ_PATHS']._serialized_start=39796 + _globals['_DECODEINVREQ_PATHS']._serialized_end=40077 + _globals['_DECODEINVREQ_PATHSPATH']._serialized_start=40079 + _globals['_DECODEINVREQ_PATHSPATH']._serialized_end=40162 + _globals['_DECODEINVOICE_PATHSPATH']._serialized_start=40164 + _globals['_DECODEINVOICE_PATHSPATH']._serialized_end=40248 + _globals['_DECODEINVOICE_FALLBACKS']._serialized_start=40250 + _globals['_DECODEINVOICE_FALLBACKS']._serialized_end=40339 + _globals['_DECODEFALLBACKS']._serialized_start=40342 + _globals['_DECODEFALLBACKS']._serialized_end=40640 + _globals['_DECODEFALLBACKS_DECODEFALLBACKSTYPE']._serialized_start=40510 + _globals['_DECODEFALLBACKS_DECODEFALLBACKSTYPE']._serialized_end=40585 + _globals['_DECODEEXTRA']._serialized_start=40642 + _globals['_DECODEEXTRA']._serialized_end=40682 + _globals['_DECODERESTRICTIONS']._serialized_start=40684 + _globals['_DECODERESTRICTIONS']._serialized_end=40743 + _globals['_DELPAYREQUEST']._serialized_start=40746 + _globals['_DELPAYREQUEST']._serialized_end=40940 + _globals['_DELPAYREQUEST_DELPAYSTATUS']._serialized_start=40877 + _globals['_DELPAYREQUEST_DELPAYSTATUS']._serialized_end=40917 + _globals['_DELPAYRESPONSE']._serialized_start=40942 + _globals['_DELPAYRESPONSE']._serialized_end=40997 + _globals['_DELPAYPAYMENTS']._serialized_start=41000 + _globals['_DELPAYPAYMENTS']._serialized_end=41715 + _globals['_DELPAYPAYMENTS_DELPAYPAYMENTSSTATUS']._serialized_start=41478 + _globals['_DELPAYPAYMENTS_DELPAYPAYMENTSSTATUS']._serialized_end=41539 + _globals['_DELFORWARDREQUEST']._serialized_start=41718 + _globals['_DELFORWARDREQUEST']._serialized_end=41897 + _globals['_DELFORWARDREQUEST_DELFORWARDSTATUS']._serialized_start=41836 + _globals['_DELFORWARDREQUEST_DELFORWARDSTATUS']._serialized_end=41897 + _globals['_DELFORWARDRESPONSE']._serialized_start=41899 + _globals['_DELFORWARDRESPONSE']._serialized_end=41919 + _globals['_DISABLEOFFERREQUEST']._serialized_start=41921 + _globals['_DISABLEOFFERREQUEST']._serialized_end=41960 + _globals['_DISABLEOFFERRESPONSE']._serialized_start=41963 + _globals['_DISABLEOFFERRESPONSE']._serialized_end=42099 + _globals['_ENABLEOFFERREQUEST']._serialized_start=42101 + _globals['_ENABLEOFFERREQUEST']._serialized_end=42139 + _globals['_ENABLEOFFERRESPONSE']._serialized_start=42142 + _globals['_ENABLEOFFERRESPONSE']._serialized_end=42277 + _globals['_DISCONNECTREQUEST']._serialized_start=42279 + _globals['_DISCONNECTREQUEST']._serialized_end=42340 + _globals['_DISCONNECTRESPONSE']._serialized_start=42342 + _globals['_DISCONNECTRESPONSE']._serialized_end=42362 + _globals['_FEERATESREQUEST']._serialized_start=42364 + _globals['_FEERATESREQUEST']._serialized_end=42471 + _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_start=42434 + _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_end=42471 + _globals['_FEERATESRESPONSE']._serialized_start=42474 + _globals['_FEERATESRESPONSE']._serialized_end=42758 + _globals['_FEERATESPERKB']._serialized_start=42761 + _globals['_FEERATESPERKB']._serialized_end=43228 + _globals['_FEERATESPERKBESTIMATES']._serialized_start=43230 + _globals['_FEERATESPERKBESTIMATES']._serialized_end=43317 + _globals['_FEERATESPERKW']._serialized_start=43320 + _globals['_FEERATESPERKW']._serialized_end=43787 + _globals['_FEERATESPERKWESTIMATES']._serialized_start=43789 + _globals['_FEERATESPERKWESTIMATES']._serialized_end=43876 + _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_start=43879 + _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_end=44162 + _globals['_FETCHINVOICEREQUEST']._serialized_start=44165 + _globals['_FETCHINVOICEREQUEST']._serialized_end=44574 + _globals['_FETCHINVOICERESPONSE']._serialized_start=44577 + _globals['_FETCHINVOICERESPONSE']._serialized_end=44731 + _globals['_FETCHINVOICECHANGES']._serialized_start=44734 + _globals['_FETCHINVOICECHANGES']._serialized_end=44992 + _globals['_FETCHINVOICENEXT_PERIOD']._serialized_start=44994 + _globals['_FETCHINVOICENEXT_PERIOD']._serialized_end=45120 + _globals['_FUNDCHANNEL_CANCELREQUEST']._serialized_start=45122 + _globals['_FUNDCHANNEL_CANCELREQUEST']._serialized_end=45161 + _globals['_FUNDCHANNEL_CANCELRESPONSE']._serialized_start=45163 + _globals['_FUNDCHANNEL_CANCELRESPONSE']._serialized_end=45210 + _globals['_FUNDCHANNEL_COMPLETEREQUEST']._serialized_start=45212 + _globals['_FUNDCHANNEL_COMPLETEREQUEST']._serialized_end=45267 + _globals['_FUNDCHANNEL_COMPLETERESPONSE']._serialized_start=45269 + _globals['_FUNDCHANNEL_COMPLETERESPONSE']._serialized_end=45348 + _globals['_FUNDCHANNELREQUEST']._serialized_start=45351 + _globals['_FUNDCHANNELREQUEST']._serialized_end=45858 + _globals['_FUNDCHANNELRESPONSE']._serialized_start=45861 + _globals['_FUNDCHANNELRESPONSE']._serialized_end=46090 + _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_start=46092 + _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_end=46168 + _globals['_FUNDCHANNEL_STARTREQUEST']._serialized_start=46171 + _globals['_FUNDCHANNEL_STARTREQUEST']._serialized_end=46514 + _globals['_FUNDCHANNEL_STARTRESPONSE']._serialized_start=46517 + _globals['_FUNDCHANNEL_STARTRESPONSE']._serialized_end=46766 + _globals['_FUNDCHANNEL_STARTCHANNEL_TYPE']._serialized_start=46768 + _globals['_FUNDCHANNEL_STARTCHANNEL_TYPE']._serialized_end=46850 + _globals['_GETLOGREQUEST']._serialized_start=46853 + _globals['_GETLOGREQUEST']._serialized_end=47010 + _globals['_GETLOGREQUEST_GETLOGLEVEL']._serialized_start=46922 + _globals['_GETLOGREQUEST_GETLOGLEVEL']._serialized_end=47000 + _globals['_GETLOGRESPONSE']._serialized_start=47012 + _globals['_GETLOGRESPONSE']._serialized_end=47116 + _globals['_GETLOGLOG']._serialized_start=47119 + _globals['_GETLOGLOG']._serialized_end=47479 + _globals['_GETLOGLOG_GETLOGLOGTYPE']._serialized_start=47306 + _globals['_GETLOGLOG_GETLOGLOGTYPE']._serialized_end=47414 + _globals['_FUNDERUPDATEREQUEST']._serialized_start=47482 + _globals['_FUNDERUPDATEREQUEST']._serialized_end=48595 + _globals['_FUNDERUPDATEREQUEST_FUNDERUPDATEPOLICY']._serialized_start=48176 + _globals['_FUNDERUPDATEREQUEST_FUNDERUPDATEPOLICY']._serialized_end=48233 + _globals['_FUNDERUPDATERESPONSE']._serialized_start=48598 + _globals['_FUNDERUPDATERESPONSE']._serialized_end=49461 + _globals['_FUNDERUPDATERESPONSE_FUNDERUPDATEPOLICY']._serialized_start=48176 + _globals['_FUNDERUPDATERESPONSE_FUNDERUPDATEPOLICY']._serialized_end=48233 + _globals['_GETROUTEREQUEST']._serialized_start=49464 + _globals['_GETROUTEREQUEST']._serialized_end=49700 + _globals['_GETROUTERESPONSE']._serialized_start=49702 + _globals['_GETROUTERESPONSE']._serialized_end=49755 + _globals['_GETROUTEROUTE']._serialized_start=49758 + _globals['_GETROUTEROUTE']._serialized_end=49955 + _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_start=49926 + _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_end=49955 + _globals['_LISTADDRESSESREQUEST']._serialized_start=49957 + _globals['_LISTADDRESSESREQUEST']._serialized_end=50073 + _globals['_LISTADDRESSESRESPONSE']._serialized_start=50075 + _globals['_LISTADDRESSESRESPONSE']._serialized_end=50146 + _globals['_LISTADDRESSESADDRESSES']._serialized_start=50148 + _globals['_LISTADDRESSESADDRESSES']._serialized_end=50248 + _globals['_LISTFORWARDSREQUEST']._serialized_start=50251 + _globals['_LISTFORWARDSREQUEST']._serialized_end=50690 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_start=50495 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_end=50571 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_start=50573 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_end=50618 + _globals['_LISTFORWARDSRESPONSE']._serialized_start=50692 + _globals['_LISTFORWARDSRESPONSE']._serialized_end=50759 + _globals['_LISTFORWARDSFORWARDS']._serialized_start=50762 + _globals['_LISTFORWARDSFORWARDS']._serialized_end=51582 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_start=51283 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_end=51367 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_start=51369 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_end=51417 + _globals['_LISTOFFERSREQUEST']._serialized_start=51584 + _globals['_LISTOFFERSREQUEST']._serialized_end=51681 + _globals['_LISTOFFERSRESPONSE']._serialized_start=51683 + _globals['_LISTOFFERSRESPONSE']._serialized_end=51742 + _globals['_LISTOFFERSOFFERS']._serialized_start=51745 + _globals['_LISTOFFERSOFFERS']._serialized_end=51877 + _globals['_LISTPAYSREQUEST']._serialized_start=51880 + _globals['_LISTPAYSREQUEST']._serialized_end=52268 + _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_start=52101 + _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_end=52156 + _globals['_LISTPAYSREQUEST_LISTPAYSINDEX']._serialized_start=52158 + _globals['_LISTPAYSREQUEST_LISTPAYSINDEX']._serialized_end=52199 + _globals['_LISTPAYSRESPONSE']._serialized_start=52270 + _globals['_LISTPAYSRESPONSE']._serialized_end=52321 + _globals['_LISTPAYSPAYS']._serialized_start=52324 + _globals['_LISTPAYSPAYS']._serialized_end=53055 + _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_start=52794 + _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_end=52853 + _globals['_LISTHTLCSREQUEST']._serialized_start=53057 + _globals['_LISTHTLCSREQUEST']._serialized_end=53099 + _globals['_LISTHTLCSRESPONSE']._serialized_start=53101 + _globals['_LISTHTLCSRESPONSE']._serialized_end=53156 + _globals['_LISTHTLCSHTLCS']._serialized_start=53159 + _globals['_LISTHTLCSHTLCS']._serialized_end=53424 + _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_start=53382 + _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_end=53424 + _globals['_MULTIFUNDCHANNELREQUEST']._serialized_start=53427 + _globals['_MULTIFUNDCHANNELREQUEST']._serialized_end=53733 + _globals['_MULTIFUNDCHANNELRESPONSE']._serialized_start=53736 + _globals['_MULTIFUNDCHANNELRESPONSE']._serialized_end=53888 + _globals['_MULTIFUNDCHANNELDESTINATIONS']._serialized_start=53891 + _globals['_MULTIFUNDCHANNELDESTINATIONS']._serialized_end=54274 + _globals['_MULTIFUNDCHANNELCHANNEL_IDS']._serialized_start=54277 + _globals['_MULTIFUNDCHANNELCHANNEL_IDS']._serialized_end=54480 + _globals['_MULTIFUNDCHANNELCHANNEL_IDSCHANNEL_TYPE']._serialized_start=54482 + _globals['_MULTIFUNDCHANNELCHANNEL_IDSCHANNEL_TYPE']._serialized_end=54574 + _globals['_MULTIFUNDCHANNELFAILED']._serialized_start=54577 + _globals['_MULTIFUNDCHANNELFAILED']._serialized_end=54852 + _globals['_MULTIFUNDCHANNELFAILED_MULTIFUNDCHANNELFAILEDMETHOD']._serialized_start=54738 + _globals['_MULTIFUNDCHANNELFAILED_MULTIFUNDCHANNELFAILEDMETHOD']._serialized_end=54852 + _globals['_MULTIFUNDCHANNELFAILEDERROR']._serialized_start=54854 + _globals['_MULTIFUNDCHANNELFAILEDERROR']._serialized_end=54914 + _globals['_MULTIWITHDRAWREQUEST']._serialized_start=54917 + _globals['_MULTIWITHDRAWREQUEST']._serialized_end=55085 + _globals['_MULTIWITHDRAWRESPONSE']._serialized_start=55087 + _globals['_MULTIWITHDRAWRESPONSE']._serialized_end=55136 + _globals['_OFFERREQUEST']._serialized_start=55139 + _globals['_OFFERREQUEST']._serialized_end=55683 + _globals['_OFFERRESPONSE']._serialized_start=55686 + _globals['_OFFERRESPONSE']._serialized_end=55832 + _globals['_OPENCHANNEL_ABORTREQUEST']._serialized_start=55834 + _globals['_OPENCHANNEL_ABORTREQUEST']._serialized_end=55880 + _globals['_OPENCHANNEL_ABORTRESPONSE']._serialized_start=55882 + _globals['_OPENCHANNEL_ABORTRESPONSE']._serialized_end=55971 + _globals['_OPENCHANNEL_BUMPREQUEST']._serialized_start=55974 + _globals['_OPENCHANNEL_BUMPREQUEST']._serialized_end=56133 + _globals['_OPENCHANNEL_BUMPRESPONSE']._serialized_start=56136 + _globals['_OPENCHANNEL_BUMPRESPONSE']._serialized_end=56398 + _globals['_OPENCHANNEL_BUMPCHANNEL_TYPE']._serialized_start=56400 + _globals['_OPENCHANNEL_BUMPCHANNEL_TYPE']._serialized_end=56481 + _globals['_OPENCHANNEL_INITREQUEST']._serialized_start=56484 + _globals['_OPENCHANNEL_INITREQUEST']._serialized_end=56900 + _globals['_OPENCHANNEL_INITRESPONSE']._serialized_start=56903 + _globals['_OPENCHANNEL_INITRESPONSE']._serialized_end=57165 + _globals['_OPENCHANNEL_INITCHANNEL_TYPE']._serialized_start=57167 + _globals['_OPENCHANNEL_INITCHANNEL_TYPE']._serialized_end=57248 + _globals['_OPENCHANNEL_SIGNEDREQUEST']._serialized_start=57250 + _globals['_OPENCHANNEL_SIGNEDREQUEST']._serialized_end=57318 + _globals['_OPENCHANNEL_SIGNEDRESPONSE']._serialized_start=57320 + _globals['_OPENCHANNEL_SIGNEDRESPONSE']._serialized_end=57394 + _globals['_OPENCHANNEL_UPDATEREQUEST']._serialized_start=57396 + _globals['_OPENCHANNEL_UPDATEREQUEST']._serialized_end=57457 + _globals['_OPENCHANNEL_UPDATERESPONSE']._serialized_start=57460 + _globals['_OPENCHANNEL_UPDATERESPONSE']._serialized_end=57762 + _globals['_OPENCHANNEL_UPDATECHANNEL_TYPE']._serialized_start=57764 + _globals['_OPENCHANNEL_UPDATECHANNEL_TYPE']._serialized_end=57847 + _globals['_PINGREQUEST']._serialized_start=57849 + _globals['_PINGREQUEST']._serialized_end=57938 + _globals['_PINGRESPONSE']._serialized_start=57940 + _globals['_PINGRESPONSE']._serialized_end=57970 + _globals['_PLUGINREQUEST']._serialized_start=57973 + _globals['_PLUGINREQUEST']._serialized_end=58118 + _globals['_PLUGINRESPONSE']._serialized_start=58120 + _globals['_PLUGINRESPONSE']._serialized_end=58245 + _globals['_PLUGINPLUGINS']._serialized_start=58247 + _globals['_PLUGINPLUGINS']._serialized_end=58309 + _globals['_RENEPAYSTATUSREQUEST']._serialized_start=58311 + _globals['_RENEPAYSTATUSREQUEST']._serialized_end=58371 + _globals['_RENEPAYSTATUSRESPONSE']._serialized_start=58373 + _globals['_RENEPAYSTATUSRESPONSE']._serialized_end=58444 + _globals['_RENEPAYSTATUSPAYSTATUS']._serialized_start=58447 + _globals['_RENEPAYSTATUSPAYSTATUS']._serialized_end=58929 + _globals['_RENEPAYSTATUSPAYSTATUS_RENEPAYSTATUSPAYSTATUSSTATUS']._serialized_start=58792 + _globals['_RENEPAYSTATUSPAYSTATUS_RENEPAYSTATUSPAYSTATUSSTATUS']._serialized_end=58861 + _globals['_RENEPAYREQUEST']._serialized_start=58932 + _globals['_RENEPAYREQUEST']._serialized_end=59278 + _globals['_RENEPAYRESPONSE']._serialized_start=59281 + _globals['_RENEPAYRESPONSE']._serialized_end=59702 + _globals['_RENEPAYRESPONSE_RENEPAYSTATUS']._serialized_start=59598 + _globals['_RENEPAYRESPONSE_RENEPAYSTATUS']._serialized_end=59652 + _globals['_RESERVEINPUTSREQUEST']._serialized_start=59704 + _globals['_RESERVEINPUTSREQUEST']._serialized_end=59812 + _globals['_RESERVEINPUTSRESPONSE']._serialized_start=59814 + _globals['_RESERVEINPUTSRESPONSE']._serialized_end=59891 + _globals['_RESERVEINPUTSRESERVATIONS']._serialized_start=59893 + _globals['_RESERVEINPUTSRESERVATIONS']._serialized_end=60015 + _globals['_SENDCUSTOMMSGREQUEST']._serialized_start=60017 + _globals['_SENDCUSTOMMSGREQUEST']._serialized_end=60069 + _globals['_SENDCUSTOMMSGRESPONSE']._serialized_start=60071 + _globals['_SENDCUSTOMMSGRESPONSE']._serialized_end=60110 + _globals['_SENDINVOICEREQUEST']._serialized_start=60113 + _globals['_SENDINVOICEREQUEST']._serialized_end=60289 + _globals['_SENDINVOICERESPONSE']._serialized_start=60292 + _globals['_SENDINVOICERESPONSE']._serialized_end=60883 + _globals['_SENDINVOICERESPONSE_SENDINVOICESTATUS']._serialized_start=60694 + _globals['_SENDINVOICERESPONSE_SENDINVOICESTATUS']._serialized_end=60748 + _globals['_SETCHANNELREQUEST']._serialized_start=60886 + _globals['_SETCHANNELREQUEST']._serialized_end=61184 + _globals['_SETCHANNELRESPONSE']._serialized_start=61186 + _globals['_SETCHANNELRESPONSE']._serialized_end=61249 + _globals['_SETCHANNELCHANNELS']._serialized_start=61252 + _globals['_SETCHANNELCHANNELS']._serialized_end=61710 + _globals['_SETCONFIGREQUEST']._serialized_start=61712 + _globals['_SETCONFIGREQUEST']._serialized_end=61772 + _globals['_SETCONFIGRESPONSE']._serialized_start=61774 + _globals['_SETCONFIGRESPONSE']._serialized_end=61831 + _globals['_SETCONFIGCONFIG']._serialized_start=61834 + _globals['_SETCONFIGCONFIG']._serialized_end=62127 + _globals['_SETPSBTVERSIONREQUEST']._serialized_start=62129 + _globals['_SETPSBTVERSIONREQUEST']._serialized_end=62183 + _globals['_SETPSBTVERSIONRESPONSE']._serialized_start=62185 + _globals['_SETPSBTVERSIONRESPONSE']._serialized_end=62223 + _globals['_SIGNINVOICEREQUEST']._serialized_start=62225 + _globals['_SIGNINVOICEREQUEST']._serialized_end=62264 + _globals['_SIGNINVOICERESPONSE']._serialized_start=62266 + _globals['_SIGNINVOICERESPONSE']._serialized_end=62303 + _globals['_SIGNMESSAGEREQUEST']._serialized_start=62305 + _globals['_SIGNMESSAGEREQUEST']._serialized_end=62342 + _globals['_SIGNMESSAGERESPONSE']._serialized_start=62344 + _globals['_SIGNMESSAGERESPONSE']._serialized_end=62414 + _globals['_SPLICE_INITREQUEST']._serialized_start=62417 + _globals['_SPLICE_INITREQUEST']._serialized_end=62618 + _globals['_SPLICE_INITRESPONSE']._serialized_start=62620 + _globals['_SPLICE_INITRESPONSE']._serialized_end=62655 + _globals['_SPLICE_SIGNEDREQUEST']._serialized_start=62657 + _globals['_SPLICE_SIGNEDREQUEST']._serialized_end=62753 + _globals['_SPLICE_SIGNEDRESPONSE']._serialized_start=62755 + _globals['_SPLICE_SIGNEDRESPONSE']._serialized_end=62850 + _globals['_SPLICE_UPDATEREQUEST']._serialized_start=62852 + _globals['_SPLICE_UPDATEREQUEST']._serialized_end=62908 + _globals['_SPLICE_UPDATERESPONSE']._serialized_start=62910 + _globals['_SPLICE_UPDATERESPONSE']._serialized_end=63032 + _globals['_DEVSPLICEREQUEST']._serialized_start=63035 + _globals['_DEVSPLICEREQUEST']._serialized_end=63233 + _globals['_DEVSPLICERESPONSE']._serialized_start=63236 + _globals['_DEVSPLICERESPONSE']._serialized_end=63364 + _globals['_UNRESERVEINPUTSREQUEST']._serialized_start=63366 + _globals['_UNRESERVEINPUTSREQUEST']._serialized_end=63438 + _globals['_UNRESERVEINPUTSRESPONSE']._serialized_start=63440 + _globals['_UNRESERVEINPUTSRESPONSE']._serialized_end=63521 + _globals['_UNRESERVEINPUTSRESERVATIONS']._serialized_start=63524 + _globals['_UNRESERVEINPUTSRESERVATIONS']._serialized_end=63675 + _globals['_UPGRADEWALLETREQUEST']._serialized_start=63677 + _globals['_UPGRADEWALLETREQUEST']._serialized_end=63787 + _globals['_UPGRADEWALLETRESPONSE']._serialized_start=63790 + _globals['_UPGRADEWALLETRESPONSE']._serialized_end=63939 + _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_start=63941 + _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_end=64020 + _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_start=64022 + _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_end=64068 + _globals['_WAITREQUEST']._serialized_start=64071 + _globals['_WAITREQUEST']._serialized_end=64320 + _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_start=64207 + _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_end=64264 + _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_start=64266 + _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_end=64320 + _globals['_WAITRESPONSE']._serialized_start=64323 + _globals['_WAITRESPONSE']._serialized_end=64602 + _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_start=64207 + _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_end=64264 + _globals['_WAITDETAILS']._serialized_start=64605 + _globals['_WAITDETAILS']._serialized_end=65241 + _globals['_WAITDETAILS_WAITDETAILSSTATUS']._serialized_start=64947 + _globals['_WAITDETAILS_WAITDETAILSSTATUS']._serialized_end=65084 + _globals['_LISTCONFIGSREQUEST']._serialized_start=65243 + _globals['_LISTCONFIGSREQUEST']._serialized_end=65295 + _globals['_LISTCONFIGSRESPONSE']._serialized_start=65298 + _globals['_LISTCONFIGSRESPONSE']._serialized_end=68917 + _globals['_LISTCONFIGSCONFIGS']._serialized_start=68920 + _globals['_LISTCONFIGSCONFIGS']._serialized_end=75018 + _globals['_LISTCONFIGSCONFIGSCONF']._serialized_start=75021 + _globals['_LISTCONFIGSCONFIGSCONF']._serialized_end=75183 + _globals['_LISTCONFIGSCONFIGSCONF_LISTCONFIGSCONFIGSCONFSOURCE']._serialized_start=75140 + _globals['_LISTCONFIGSCONFIGSCONF_LISTCONFIGSCONFIGSCONFSOURCE']._serialized_end=75183 + _globals['_LISTCONFIGSCONFIGSDEVELOPER']._serialized_start=75185 + _globals['_LISTCONFIGSCONFIGSDEVELOPER']._serialized_end=75243 + _globals['_LISTCONFIGSCONFIGSCLEARPLUGINS']._serialized_start=75245 + _globals['_LISTCONFIGSCONFIGSCLEARPLUGINS']._serialized_end=75306 + _globals['_LISTCONFIGSCONFIGSDISABLEMPP']._serialized_start=75308 + _globals['_LISTCONFIGSCONFIGSDISABLEMPP']._serialized_end=75399 + _globals['_LISTCONFIGSCONFIGSMAINNET']._serialized_start=75401 + _globals['_LISTCONFIGSCONFIGSMAINNET']._serialized_end=75457 + _globals['_LISTCONFIGSCONFIGSREGTEST']._serialized_start=75459 + _globals['_LISTCONFIGSCONFIGSREGTEST']._serialized_end=75515 + _globals['_LISTCONFIGSCONFIGSSIGNET']._serialized_start=75517 + _globals['_LISTCONFIGSCONFIGSSIGNET']._serialized_end=75572 + _globals['_LISTCONFIGSCONFIGSTESTNET']._serialized_start=75574 + _globals['_LISTCONFIGSCONFIGSTESTNET']._serialized_end=75630 + _globals['_LISTCONFIGSCONFIGSIMPORTANTPLUGIN']._serialized_start=75632 + _globals['_LISTCONFIGSCONFIGSIMPORTANTPLUGIN']._serialized_end=75704 + _globals['_LISTCONFIGSCONFIGSPLUGIN']._serialized_start=75706 + _globals['_LISTCONFIGSCONFIGSPLUGIN']._serialized_end=75769 + _globals['_LISTCONFIGSCONFIGSPLUGINDIR']._serialized_start=75771 + _globals['_LISTCONFIGSCONFIGSPLUGINDIR']._serialized_end=75837 + _globals['_LISTCONFIGSCONFIGSLIGHTNINGDIR']._serialized_start=75839 + _globals['_LISTCONFIGSCONFIGSLIGHTNINGDIR']._serialized_end=75906 + _globals['_LISTCONFIGSCONFIGSNETWORK']._serialized_start=75908 + _globals['_LISTCONFIGSCONFIGSNETWORK']._serialized_end=75970 + _globals['_LISTCONFIGSCONFIGSALLOWDEPRECATEDAPIS']._serialized_start=75972 + _globals['_LISTCONFIGSCONFIGSALLOWDEPRECATEDAPIS']._serialized_end=76047 + _globals['_LISTCONFIGSCONFIGSRPCFILE']._serialized_start=76049 + _globals['_LISTCONFIGSCONFIGSRPCFILE']._serialized_end=76111 + _globals['_LISTCONFIGSCONFIGSDISABLEPLUGIN']._serialized_start=76113 + _globals['_LISTCONFIGSCONFIGSDISABLEPLUGIN']._serialized_end=76183 + _globals['_LISTCONFIGSCONFIGSALWAYSUSEPROXY']._serialized_start=76185 + _globals['_LISTCONFIGSCONFIGSALWAYSUSEPROXY']._serialized_end=76255 + _globals['_LISTCONFIGSCONFIGSDAEMON']._serialized_start=76257 + _globals['_LISTCONFIGSCONFIGSDAEMON']._serialized_end=76312 + _globals['_LISTCONFIGSCONFIGSWALLET']._serialized_start=76314 + _globals['_LISTCONFIGSCONFIGSWALLET']._serialized_end=76375 + _globals['_LISTCONFIGSCONFIGSLARGECHANNELS']._serialized_start=76377 + _globals['_LISTCONFIGSCONFIGSLARGECHANNELS']._serialized_end=76439 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALDUALFUND']._serialized_start=76441 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALDUALFUND']._serialized_end=76510 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALSPLICING']._serialized_start=76512 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALSPLICING']._serialized_end=76581 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALONIONMESSAGES']._serialized_start=76583 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALONIONMESSAGES']._serialized_end=76657 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALOFFERS']._serialized_start=76659 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALOFFERS']._serialized_end=76726 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALSHUTDOWNWRONGFUNDING']._serialized_start=76728 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALSHUTDOWNWRONGFUNDING']._serialized_end=76809 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALPEERSTORAGE']._serialized_start=76811 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALPEERSTORAGE']._serialized_end=76883 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALANCHORS']._serialized_start=76885 + _globals['_LISTCONFIGSCONFIGSEXPERIMENTALANCHORS']._serialized_end=76953 + _globals['_LISTCONFIGSCONFIGSDATABASEUPGRADE']._serialized_start=76955 + _globals['_LISTCONFIGSCONFIGSDATABASEUPGRADE']._serialized_end=77026 + _globals['_LISTCONFIGSCONFIGSRGB']._serialized_start=77028 + _globals['_LISTCONFIGSCONFIGSRGB']._serialized_end=77086 + _globals['_LISTCONFIGSCONFIGSALIAS']._serialized_start=77088 + _globals['_LISTCONFIGSCONFIGSALIAS']._serialized_end=77148 + _globals['_LISTCONFIGSCONFIGSPIDFILE']._serialized_start=77150 + _globals['_LISTCONFIGSCONFIGSPIDFILE']._serialized_end=77212 + _globals['_LISTCONFIGSCONFIGSIGNOREFEELIMITS']._serialized_start=77214 + _globals['_LISTCONFIGSCONFIGSIGNOREFEELIMITS']._serialized_end=77285 + _globals['_LISTCONFIGSCONFIGSWATCHTIMEBLOCKS']._serialized_start=77287 + _globals['_LISTCONFIGSCONFIGSWATCHTIMEBLOCKS']._serialized_end=77357 + _globals['_LISTCONFIGSCONFIGSMAXLOCKTIMEBLOCKS']._serialized_start=77359 + _globals['_LISTCONFIGSCONFIGSMAXLOCKTIMEBLOCKS']._serialized_end=77431 + _globals['_LISTCONFIGSCONFIGSFUNDINGCONFIRMS']._serialized_start=77433 + _globals['_LISTCONFIGSCONFIGSFUNDINGCONFIRMS']._serialized_end=77503 + _globals['_LISTCONFIGSCONFIGSCLTVDELTA']._serialized_start=77505 + _globals['_LISTCONFIGSCONFIGSCLTVDELTA']._serialized_end=77569 + _globals['_LISTCONFIGSCONFIGSCLTVFINAL']._serialized_start=77571 + _globals['_LISTCONFIGSCONFIGSCLTVFINAL']._serialized_end=77635 + _globals['_LISTCONFIGSCONFIGSCOMMITTIME']._serialized_start=77637 + _globals['_LISTCONFIGSCONFIGSCOMMITTIME']._serialized_end=77702 + _globals['_LISTCONFIGSCONFIGSFEEBASE']._serialized_start=77704 + _globals['_LISTCONFIGSCONFIGSFEEBASE']._serialized_end=77766 + _globals['_LISTCONFIGSCONFIGSRESCAN']._serialized_start=77768 + _globals['_LISTCONFIGSCONFIGSRESCAN']._serialized_end=77829 + _globals['_LISTCONFIGSCONFIGSFEEPERSATOSHI']._serialized_start=77831 + _globals['_LISTCONFIGSCONFIGSFEEPERSATOSHI']._serialized_end=77899 + _globals['_LISTCONFIGSCONFIGSMAXCONCURRENTHTLCS']._serialized_start=77901 + _globals['_LISTCONFIGSCONFIGSMAXCONCURRENTHTLCS']._serialized_end=77974 + _globals['_LISTCONFIGSCONFIGSHTLCMINIMUMMSAT']._serialized_start=77976 + _globals['_LISTCONFIGSCONFIGSHTLCMINIMUMMSAT']._serialized_end=78060 + _globals['_LISTCONFIGSCONFIGSHTLCMAXIMUMMSAT']._serialized_start=78062 + _globals['_LISTCONFIGSCONFIGSHTLCMAXIMUMMSAT']._serialized_end=78146 + _globals['_LISTCONFIGSCONFIGSMAXDUSTHTLCEXPOSUREMSAT']._serialized_start=78148 + _globals['_LISTCONFIGSCONFIGSMAXDUSTHTLCEXPOSUREMSAT']._serialized_end=78240 + _globals['_LISTCONFIGSCONFIGSMINCAPACITYSAT']._serialized_start=78242 + _globals['_LISTCONFIGSCONFIGSMINCAPACITYSAT']._serialized_end=78345 + _globals['_LISTCONFIGSCONFIGSADDR']._serialized_start=78347 + _globals['_LISTCONFIGSCONFIGSADDR']._serialized_end=78408 + _globals['_LISTCONFIGSCONFIGSANNOUNCEADDR']._serialized_start=78410 + _globals['_LISTCONFIGSCONFIGSANNOUNCEADDR']._serialized_end=78479 + _globals['_LISTCONFIGSCONFIGSBINDADDR']._serialized_start=78481 + _globals['_LISTCONFIGSCONFIGSBINDADDR']._serialized_end=78546 + _globals['_LISTCONFIGSCONFIGSOFFLINE']._serialized_start=78548 + _globals['_LISTCONFIGSCONFIGSOFFLINE']._serialized_end=78604 + _globals['_LISTCONFIGSCONFIGSAUTOLISTEN']._serialized_start=78606 + _globals['_LISTCONFIGSCONFIGSAUTOLISTEN']._serialized_end=78672 + _globals['_LISTCONFIGSCONFIGSPROXY']._serialized_start=78674 + _globals['_LISTCONFIGSCONFIGSPROXY']._serialized_end=78734 + _globals['_LISTCONFIGSCONFIGSDISABLEDNS']._serialized_start=78736 + _globals['_LISTCONFIGSCONFIGSDISABLEDNS']._serialized_end=78795 + _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVERED']._serialized_start=78798 + _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVERED']._serialized_end=79056 + _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVERED_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVEREDVALUE_STR']._serialized_start=78974 + _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVERED_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVEREDVALUE_STR']._serialized_end=79056 + _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVEREDPORT']._serialized_start=79058 + _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDISCOVEREDPORT']._serialized_end=79139 + _globals['_LISTCONFIGSCONFIGSENCRYPTEDHSM']._serialized_start=79141 + _globals['_LISTCONFIGSCONFIGSENCRYPTEDHSM']._serialized_end=79202 + _globals['_LISTCONFIGSCONFIGSRPCFILEMODE']._serialized_start=79204 + _globals['_LISTCONFIGSCONFIGSRPCFILEMODE']._serialized_end=79270 + _globals['_LISTCONFIGSCONFIGSLOGLEVEL']._serialized_start=79272 + _globals['_LISTCONFIGSCONFIGSLOGLEVEL']._serialized_end=79335 + _globals['_LISTCONFIGSCONFIGSLOGPREFIX']._serialized_start=79337 + _globals['_LISTCONFIGSCONFIGSLOGPREFIX']._serialized_end=79401 + _globals['_LISTCONFIGSCONFIGSLOGFILE']._serialized_start=79403 + _globals['_LISTCONFIGSCONFIGSLOGFILE']._serialized_end=79467 + _globals['_LISTCONFIGSCONFIGSLOGTIMESTAMPS']._serialized_start=79469 + _globals['_LISTCONFIGSCONFIGSLOGTIMESTAMPS']._serialized_end=79538 + _globals['_LISTCONFIGSCONFIGSFORCEFEERATES']._serialized_start=79540 + _globals['_LISTCONFIGSCONFIGSFORCEFEERATES']._serialized_end=79608 + _globals['_LISTCONFIGSCONFIGSSUBDAEMON']._serialized_start=79610 + _globals['_LISTCONFIGSCONFIGSSUBDAEMON']._serialized_end=79676 + _globals['_LISTCONFIGSCONFIGSFETCHINVOICENOCONNECT']._serialized_start=79678 + _globals['_LISTCONFIGSCONFIGSFETCHINVOICENOCONNECT']._serialized_end=79780 + _globals['_LISTCONFIGSCONFIGSACCEPTHTLCTLVTYPES']._serialized_start=79782 + _globals['_LISTCONFIGSCONFIGSACCEPTHTLCTLVTYPES']._serialized_end=79855 + _globals['_LISTCONFIGSCONFIGSTORSERVICEPASSWORD']._serialized_start=79857 + _globals['_LISTCONFIGSCONFIGSTORSERVICEPASSWORD']._serialized_end=79930 + _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDNS']._serialized_start=79932 + _globals['_LISTCONFIGSCONFIGSANNOUNCEADDRDNS']._serialized_end=80003 + _globals['_LISTCONFIGSCONFIGSREQUIRECONFIRMEDINPUTS']._serialized_start=80005 + _globals['_LISTCONFIGSCONFIGSREQUIRECONFIRMEDINPUTS']._serialized_end=80083 + _globals['_LISTCONFIGSCONFIGSCOMMITFEE']._serialized_start=80085 + _globals['_LISTCONFIGSCONFIGSCOMMITFEE']._serialized_end=80149 + _globals['_LISTCONFIGSCONFIGSCOMMITFEERATEOFFSET']._serialized_start=80151 + _globals['_LISTCONFIGSCONFIGSCOMMITFEERATEOFFSET']._serialized_end=80225 + _globals['_LISTCONFIGSCONFIGSAUTOCONNECTSEEKERPEERS']._serialized_start=80227 + _globals['_LISTCONFIGSCONFIGSAUTOCONNECTSEEKERPEERS']._serialized_end=80304 + _globals['_LISTCONFIGSPLUGINS']._serialized_start=80306 + _globals['_LISTCONFIGSPLUGINS']._serialized_end=80420 + _globals['_LISTCONFIGSPLUGINSOPTIONS']._serialized_start=80422 + _globals['_LISTCONFIGSPLUGINSOPTIONS']._serialized_end=80449 + _globals['_LISTCONFIGSIMPORTANTPLUGINS']._serialized_start=80452 + _globals['_LISTCONFIGSIMPORTANTPLUGINS']._serialized_end=80584 + _globals['_LISTCONFIGSIMPORTANTPLUGINSOPTIONS']._serialized_start=80586 + _globals['_LISTCONFIGSIMPORTANTPLUGINSOPTIONS']._serialized_end=80622 + _globals['_STOPREQUEST']._serialized_start=80624 + _globals['_STOPREQUEST']._serialized_end=80637 + _globals['_STOPRESPONSE']._serialized_start=80639 + _globals['_STOPRESPONSE']._serialized_end=80752 + _globals['_STOPRESPONSE_STOPRESULT']._serialized_start=80706 + _globals['_STOPRESPONSE_STOPRESULT']._serialized_end=80741 + _globals['_HELPREQUEST']._serialized_start=80754 + _globals['_HELPREQUEST']._serialized_end=80801 + _globals['_HELPRESPONSE']._serialized_start=80804 + _globals['_HELPRESPONSE']._serialized_end=80953 + _globals['_HELPRESPONSE_HELPFORMATHINT']._serialized_start=80909 + _globals['_HELPRESPONSE_HELPFORMATHINT']._serialized_end=80937 + _globals['_HELPHELP']._serialized_start=80955 + _globals['_HELPHELP']._serialized_end=80982 + _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_start=80984 + _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_end=81087 + _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_start=81089 + _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_end=81116 + _globals['_PREAPPROVEINVOICEREQUEST']._serialized_start=81118 + _globals['_PREAPPROVEINVOICEREQUEST']._serialized_end=81160 + _globals['_PREAPPROVEINVOICERESPONSE']._serialized_start=81162 + _globals['_PREAPPROVEINVOICERESPONSE']._serialized_end=81189 + _globals['_STATICBACKUPREQUEST']._serialized_start=81191 + _globals['_STATICBACKUPREQUEST']._serialized_end=81212 + _globals['_STATICBACKUPRESPONSE']._serialized_start=81214 + _globals['_STATICBACKUPRESPONSE']._serialized_end=81249 + _globals['_BKPRCHANNELSAPYREQUEST']._serialized_start=81251 + _globals['_BKPRCHANNELSAPYREQUEST']._serialized_end=81351 + _globals['_BKPRCHANNELSAPYRESPONSE']._serialized_start=81353 + _globals['_BKPRCHANNELSAPYRESPONSE']._serialized_end=81434 + _globals['_BKPRCHANNELSAPYCHANNELS_APY']._serialized_start=81437 + _globals['_BKPRCHANNELSAPYCHANNELS_APY']._serialized_end=82327 + _globals['_BKPRDUMPINCOMECSVREQUEST']._serialized_start=82330 + _globals['_BKPRDUMPINCOMECSVREQUEST']._serialized_end=82540 + _globals['_BKPRDUMPINCOMECSVRESPONSE']._serialized_start=82543 + _globals['_BKPRDUMPINCOMECSVRESPONSE']._serialized_end=82757 + _globals['_BKPRDUMPINCOMECSVRESPONSE_BKPRDUMPINCOMECSVCSV_FORMAT']._serialized_start=82670 + _globals['_BKPRDUMPINCOMECSVRESPONSE_BKPRDUMPINCOMECSVCSV_FORMAT']._serialized_end=82757 + _globals['_BKPRINSPECTREQUEST']._serialized_start=82759 + _globals['_BKPRINSPECTREQUEST']._serialized_end=82796 + _globals['_BKPRINSPECTRESPONSE']._serialized_start=82798 + _globals['_BKPRINSPECTRESPONSE']._serialized_end=82853 + _globals['_BKPRINSPECTTXS']._serialized_start=82856 + _globals['_BKPRINSPECTTXS']._serialized_end=83010 + _globals['_BKPRINSPECTTXSOUTPUTS']._serialized_start=83013 + _globals['_BKPRINSPECTTXSOUTPUTS']._serialized_end=83457 + _globals['_BKPRLISTACCOUNTEVENTSREQUEST']._serialized_start=83459 + _globals['_BKPRLISTACCOUNTEVENTSREQUEST']._serialized_end=83563 + _globals['_BKPRLISTACCOUNTEVENTSRESPONSE']._serialized_start=83565 + _globals['_BKPRLISTACCOUNTEVENTSRESPONSE']._serialized_end=83646 + _globals['_BKPRLISTACCOUNTEVENTSEVENTS']._serialized_start=83649 + _globals['_BKPRLISTACCOUNTEVENTSEVENTS']._serialized_end=84322 + _globals['_BKPRLISTACCOUNTEVENTSEVENTS_BKPRLISTACCOUNTEVENTSEVENTSTYPE']._serialized_start=84125 + _globals['_BKPRLISTACCOUNTEVENTSEVENTS_BKPRLISTACCOUNTEVENTSEVENTSTYPE']._serialized_end=84199 + _globals['_BKPRLISTBALANCESREQUEST']._serialized_start=84324 + _globals['_BKPRLISTBALANCESREQUEST']._serialized_end=84349 + _globals['_BKPRLISTBALANCESRESPONSE']._serialized_start=84351 + _globals['_BKPRLISTBALANCESRESPONSE']._serialized_end=84426 + _globals['_BKPRLISTBALANCESACCOUNTS']._serialized_start=84429 + _globals['_BKPRLISTBALANCESACCOUNTS']._serialized_end=84755 + _globals['_BKPRLISTBALANCESACCOUNTSBALANCES']._serialized_start=84757 + _globals['_BKPRLISTBALANCESACCOUNTSBALANCES']._serialized_end=84845 + _globals['_BKPRLISTINCOMEREQUEST']._serialized_start=84848 + _globals['_BKPRLISTINCOMEREQUEST']._serialized_end=84999 + _globals['_BKPRLISTINCOMERESPONSE']._serialized_start=85001 + _globals['_BKPRLISTINCOMERESPONSE']._serialized_end=85082 + _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_start=85085 + _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_end=85394 + _globals['_BKPREDITDESCRIPTIONBYPAYMENTIDREQUEST']._serialized_start=85396 + _globals['_BKPREDITDESCRIPTIONBYPAYMENTIDREQUEST']._serialized_end=85476 + _globals['_BKPREDITDESCRIPTIONBYPAYMENTIDRESPONSE']._serialized_start=85478 + _globals['_BKPREDITDESCRIPTIONBYPAYMENTIDRESPONSE']._serialized_end=85579 + _globals['_BKPREDITDESCRIPTIONBYPAYMENTIDUPDATED']._serialized_start=85582 + _globals['_BKPREDITDESCRIPTIONBYPAYMENTIDUPDATED']._serialized_end=86257 + _globals['_BKPREDITDESCRIPTIONBYPAYMENTIDUPDATED_BKPREDITDESCRIPTIONBYPAYMENTIDUPDATEDTYPE']._serialized_start=86083 + _globals['_BKPREDITDESCRIPTIONBYPAYMENTIDUPDATED_BKPREDITDESCRIPTIONBYPAYMENTIDUPDATEDTYPE']._serialized_end=86150 + _globals['_BKPREDITDESCRIPTIONBYOUTPOINTREQUEST']._serialized_start=86259 + _globals['_BKPREDITDESCRIPTIONBYOUTPOINTREQUEST']._serialized_end=86336 + _globals['_BKPREDITDESCRIPTIONBYOUTPOINTRESPONSE']._serialized_start=86338 + _globals['_BKPREDITDESCRIPTIONBYOUTPOINTRESPONSE']._serialized_end=86437 + _globals['_BKPREDITDESCRIPTIONBYOUTPOINTUPDATED']._serialized_start=86440 + _globals['_BKPREDITDESCRIPTIONBYOUTPOINTUPDATED']._serialized_end=87111 + _globals['_BKPREDITDESCRIPTIONBYOUTPOINTUPDATED_BKPREDITDESCRIPTIONBYOUTPOINTUPDATEDTYPE']._serialized_start=86938 + _globals['_BKPREDITDESCRIPTIONBYOUTPOINTUPDATED_BKPREDITDESCRIPTIONBYOUTPOINTUPDATEDTYPE']._serialized_end=87004 + _globals['_BLACKLISTRUNEREQUEST']._serialized_start=87113 + _globals['_BLACKLISTRUNEREQUEST']._serialized_end=87191 + _globals['_BLACKLISTRUNERESPONSE']._serialized_start=87193 + _globals['_BLACKLISTRUNERESPONSE']._serialized_end=87264 + _globals['_BLACKLISTRUNEBLACKLIST']._serialized_start=87266 + _globals['_BLACKLISTRUNEBLACKLIST']._serialized_end=87318 + _globals['_CHECKRUNEREQUEST']._serialized_start=87320 + _globals['_CHECKRUNEREQUEST']._serialized_end=87432 + _globals['_CHECKRUNERESPONSE']._serialized_start=87434 + _globals['_CHECKRUNERESPONSE']._serialized_end=87468 + _globals['_CREATERUNEREQUEST']._serialized_start=87470 + _globals['_CREATERUNEREQUEST']._serialized_end=87539 + _globals['_CREATERUNERESPONSE']._serialized_start=87541 + _globals['_CREATERUNERESPONSE']._serialized_end=87664 + _globals['_SHOWRUNESREQUEST']._serialized_start=87666 + _globals['_SHOWRUNESREQUEST']._serialized_end=87712 + _globals['_SHOWRUNESRESPONSE']._serialized_start=87714 + _globals['_SHOWRUNESRESPONSE']._serialized_end=87769 + _globals['_SHOWRUNESRUNES']._serialized_start=87772 + _globals['_SHOWRUNESRUNES']._serialized_end=88057 + _globals['_SHOWRUNESRUNESRESTRICTIONS']._serialized_start=88059 + _globals['_SHOWRUNESRUNESRESTRICTIONS']._serialized_end=88171 + _globals['_SHOWRUNESRUNESRESTRICTIONSALTERNATIVES']._serialized_start=88173 + _globals['_SHOWRUNESRUNESRESTRICTIONSALTERNATIVES']._serialized_end=88283 + _globals['_ASKRENEUNRESERVEREQUEST']._serialized_start=88285 + _globals['_ASKRENEUNRESERVEREQUEST']._serialized_end=88351 + _globals['_ASKRENEUNRESERVERESPONSE']._serialized_start=88353 + _globals['_ASKRENEUNRESERVERESPONSE']._serialized_end=88379 + _globals['_ASKRENEUNRESERVEPATH']._serialized_start=88381 + _globals['_ASKRENEUNRESERVEPATH']._serialized_end=88497 + _globals['_ASKRENELISTLAYERSREQUEST']._serialized_start=88499 + _globals['_ASKRENELISTLAYERSREQUEST']._serialized_end=88555 + _globals['_ASKRENELISTLAYERSRESPONSE']._serialized_start=88557 + _globals['_ASKRENELISTLAYERSRESPONSE']._serialized_end=88630 + _globals['_ASKRENELISTLAYERSLAYERS']._serialized_start=88633 + _globals['_ASKRENELISTLAYERSLAYERS']._serialized_end=89020 + _globals['_ASKRENELISTLAYERSLAYERSCREATED_CHANNELS']._serialized_start=89023 + _globals['_ASKRENELISTLAYERSLAYERSCREATED_CHANNELS']._serialized_end=89163 + _globals['_ASKRENELISTLAYERSLAYERSCHANNEL_UPDATES']._serialized_start=89166 + _globals['_ASKRENELISTLAYERSLAYERSCHANNEL_UPDATES']._serialized_end=89591 + _globals['_ASKRENELISTLAYERSLAYERSCONSTRAINTS']._serialized_start=89594 + _globals['_ASKRENELISTLAYERSLAYERSCONSTRAINTS']._serialized_end=89842 + _globals['_ASKRENELISTLAYERSLAYERSBIASES']._serialized_start=89844 + _globals['_ASKRENELISTLAYERSLAYERSBIASES']._serialized_end=89961 + _globals['_ASKRENECREATELAYERREQUEST']._serialized_start=89963 + _globals['_ASKRENECREATELAYERREQUEST']._serialized_end=90045 + _globals['_ASKRENECREATELAYERRESPONSE']._serialized_start=90047 + _globals['_ASKRENECREATELAYERRESPONSE']._serialized_end=90122 + _globals['_ASKRENECREATELAYERLAYERS']._serialized_start=90125 + _globals['_ASKRENECREATELAYERLAYERS']._serialized_end=90497 + _globals['_ASKRENECREATELAYERLAYERSCREATED_CHANNELS']._serialized_start=90500 + _globals['_ASKRENECREATELAYERLAYERSCREATED_CHANNELS']._serialized_end=90641 + _globals['_ASKRENECREATELAYERLAYERSCHANNEL_UPDATES']._serialized_start=90644 + _globals['_ASKRENECREATELAYERLAYERSCHANNEL_UPDATES']._serialized_end=90982 + _globals['_ASKRENECREATELAYERLAYERSCONSTRAINTS']._serialized_start=90985 + _globals['_ASKRENECREATELAYERLAYERSCONSTRAINTS']._serialized_end=91181 + _globals['_ASKRENECREATELAYERLAYERSBIASES']._serialized_start=91183 + _globals['_ASKRENECREATELAYERLAYERSBIASES']._serialized_end=91301 + _globals['_ASKRENEREMOVELAYERREQUEST']._serialized_start=91303 + _globals['_ASKRENEREMOVELAYERREQUEST']._serialized_end=91345 + _globals['_ASKRENEREMOVELAYERRESPONSE']._serialized_start=91347 + _globals['_ASKRENEREMOVELAYERRESPONSE']._serialized_end=91375 + _globals['_ASKRENERESERVEREQUEST']._serialized_start=91377 + _globals['_ASKRENERESERVEREQUEST']._serialized_end=91439 + _globals['_ASKRENERESERVERESPONSE']._serialized_start=91441 + _globals['_ASKRENERESERVERESPONSE']._serialized_end=91465 + _globals['_ASKRENERESERVEPATH']._serialized_start=91467 + _globals['_ASKRENERESERVEPATH']._serialized_end=91581 + _globals['_ASKRENEAGEREQUEST']._serialized_start=91583 + _globals['_ASKRENEAGEREQUEST']._serialized_end=91633 + _globals['_ASKRENEAGERESPONSE']._serialized_start=91635 + _globals['_ASKRENEAGERESPONSE']._serialized_end=91691 + _globals['_GETROUTESREQUEST']._serialized_start=91694 + _globals['_GETROUTESREQUEST']._serialized_end=91873 + _globals['_GETROUTESRESPONSE']._serialized_start=91875 + _globals['_GETROUTESRESPONSE']._serialized_end=91957 + _globals['_GETROUTESROUTES']._serialized_start=91960 + _globals['_GETROUTESROUTES']._serialized_end=92116 + _globals['_GETROUTESROUTESPATH']._serialized_start=92119 + _globals['_GETROUTESROUTESPATH']._serialized_end=92271 + _globals['_ASKRENEDISABLENODEREQUEST']._serialized_start=92273 + _globals['_ASKRENEDISABLENODEREQUEST']._serialized_end=92329 + _globals['_ASKRENEDISABLENODERESPONSE']._serialized_start=92331 + _globals['_ASKRENEDISABLENODERESPONSE']._serialized_end=92359 + _globals['_ASKRENEINFORMCHANNELREQUEST']._serialized_start=92362 + _globals['_ASKRENEINFORMCHANNELREQUEST']._serialized_end=92695 + _globals['_ASKRENEINFORMCHANNELREQUEST_ASKRENEINFORMCHANNELINFORM']._serialized_start=92564 + _globals['_ASKRENEINFORMCHANNELREQUEST_ASKRENEINFORMCHANNELINFORM']._serialized_end=92643 + _globals['_ASKRENEINFORMCHANNELRESPONSE']._serialized_start=92697 + _globals['_ASKRENEINFORMCHANNELRESPONSE']._serialized_end=92786 + _globals['_ASKRENEINFORMCHANNELCONSTRAINTS']._serialized_start=92789 + _globals['_ASKRENEINFORMCHANNELCONSTRAINTS']._serialized_end=93000 + _globals['_ASKRENECREATECHANNELREQUEST']._serialized_start=93003 + _globals['_ASKRENECREATECHANNELREQUEST']._serialized_end=93146 + _globals['_ASKRENECREATECHANNELRESPONSE']._serialized_start=93148 + _globals['_ASKRENECREATECHANNELRESPONSE']._serialized_end=93178 + _globals['_ASKRENEUPDATECHANNELREQUEST']._serialized_start=93181 + _globals['_ASKRENEUPDATECHANNELREQUEST']._serialized_end=93610 + _globals['_ASKRENEUPDATECHANNELRESPONSE']._serialized_start=93612 + _globals['_ASKRENEUPDATECHANNELRESPONSE']._serialized_end=93642 + _globals['_ASKRENEBIASCHANNELREQUEST']._serialized_start=93645 + _globals['_ASKRENEBIASCHANNELREQUEST']._serialized_end=93773 + _globals['_ASKRENEBIASCHANNELRESPONSE']._serialized_start=93775 + _globals['_ASKRENEBIASCHANNELRESPONSE']._serialized_end=93850 + _globals['_ASKRENEBIASCHANNELBIASES']._serialized_start=93852 + _globals['_ASKRENEBIASCHANNELBIASES']._serialized_end=93979 + _globals['_ASKRENELISTRESERVATIONSREQUEST']._serialized_start=93981 + _globals['_ASKRENELISTRESERVATIONSREQUEST']._serialized_end=94013 + _globals['_ASKRENELISTRESERVATIONSRESPONSE']._serialized_start=94015 + _globals['_ASKRENELISTRESERVATIONSRESPONSE']._serialized_end=94112 + _globals['_ASKRENELISTRESERVATIONSRESERVATIONS']._serialized_start=94115 + _globals['_ASKRENELISTRESERVATIONSRESERVATIONS']._serialized_end=94260 + _globals['_INJECTPAYMENTONIONREQUEST']._serialized_start=94263 + _globals['_INJECTPAYMENTONIONREQUEST']._serialized_end=94529 + _globals['_INJECTPAYMENTONIONRESPONSE']._serialized_start=94531 + _globals['_INJECTPAYMENTONIONRESPONSE']._serialized_end=94624 + _globals['_XPAYREQUEST']._serialized_start=94627 + _globals['_XPAYREQUEST']._serialized_end=94870 + _globals['_XPAYRESPONSE']._serialized_start=94873 + _globals['_XPAYRESPONSE']._serialized_end=95034 + _globals['_STREAMBLOCKADDEDREQUEST']._serialized_start=95036 + _globals['_STREAMBLOCKADDEDREQUEST']._serialized_end=95061 + _globals['_BLOCKADDEDNOTIFICATION']._serialized_start=95063 + _globals['_BLOCKADDEDNOTIFICATION']._serialized_end=95117 + _globals['_STREAMCHANNELOPENFAILEDREQUEST']._serialized_start=95119 + _globals['_STREAMCHANNELOPENFAILEDREQUEST']._serialized_end=95151 + _globals['_CHANNELOPENFAILEDNOTIFICATION']._serialized_start=95153 + _globals['_CHANNELOPENFAILEDNOTIFICATION']._serialized_end=95204 + _globals['_STREAMCHANNELOPENEDREQUEST']._serialized_start=95206 + _globals['_STREAMCHANNELOPENEDREQUEST']._serialized_end=95234 + _globals['_CHANNELOPENEDNOTIFICATION']._serialized_start=95236 + _globals['_CHANNELOPENEDNOTIFICATION']._serialized_end=95355 + _globals['_STREAMCONNECTREQUEST']._serialized_start=95357 + _globals['_STREAMCONNECTREQUEST']._serialized_end=95379 + _globals['_PEERCONNECTNOTIFICATION']._serialized_start=95382 + _globals['_PEERCONNECTNOTIFICATION']._serialized_end=95572 + _globals['_PEERCONNECTNOTIFICATION_PEERCONNECTDIRECTION']._serialized_start=95533 + _globals['_PEERCONNECTNOTIFICATION_PEERCONNECTDIRECTION']._serialized_end=95572 + _globals['_PEERCONNECTADDRESS']._serialized_start=95575 + _globals['_PEERCONNECTADDRESS']._serialized_end=95842 + _globals['_PEERCONNECTADDRESS_PEERCONNECTADDRESSTYPE']._serialized_start=95726 + _globals['_PEERCONNECTADDRESS_PEERCONNECTADDRESSTYPE']._serialized_end=95810 + _globals['_STREAMCUSTOMMSGREQUEST']._serialized_start=95844 + _globals['_STREAMCUSTOMMSGREQUEST']._serialized_end=95868 + _globals['_CUSTOMMSGNOTIFICATION']._serialized_start=95870 + _globals['_CUSTOMMSGNOTIFICATION']._serialized_end=95927 + _globals['_NODE']._serialized_start=95930 + _globals['_NODE']._serialized_end=105949 # @@protoc_insertion_point(module_scope) diff --git a/contrib/pyln-grpc-proto/pyln/grpc/node_pb2_grpc.py b/contrib/pyln-grpc-proto/pyln/grpc/node_pb2_grpc.py index c595011c3eae..2da539b4babf 100644 --- a/contrib/pyln-grpc-proto/pyln/grpc/node_pb2_grpc.py +++ b/contrib/pyln-grpc-proto/pyln/grpc/node_pb2_grpc.py @@ -114,6 +114,16 @@ def __init__(self, channel): request_serializer=node__pb2.EmergencyrecoverRequest.SerializeToString, response_deserializer=node__pb2.EmergencyrecoverResponse.FromString, ) + self.GetEmergencyRecoverData = channel.unary_unary( + '/cln.Node/GetEmergencyRecoverData', + request_serializer=node__pb2.GetemergencyrecoverdataRequest.SerializeToString, + response_deserializer=node__pb2.GetemergencyrecoverdataResponse.FromString, + ) + self.ExposeSecret = channel.unary_unary( + '/cln.Node/ExposeSecret', + request_serializer=node__pb2.ExposesecretRequest.SerializeToString, + response_deserializer=node__pb2.ExposesecretResponse.FromString, + ) self.Recover = channel.unary_unary( '/cln.Node/Recover', request_serializer=node__pb2.RecoverRequest.SerializeToString, @@ -284,6 +294,11 @@ def __init__(self, channel): request_serializer=node__pb2.DisableofferRequest.SerializeToString, response_deserializer=node__pb2.DisableofferResponse.FromString, ) + self.EnableOffer = channel.unary_unary( + '/cln.Node/EnableOffer', + request_serializer=node__pb2.EnableofferRequest.SerializeToString, + response_deserializer=node__pb2.EnableofferResponse.FromString, + ) self.Disconnect = channel.unary_unary( '/cln.Node/Disconnect', request_serializer=node__pb2.DisconnectRequest.SerializeToString, @@ -334,6 +349,11 @@ def __init__(self, channel): request_serializer=node__pb2.GetrouteRequest.SerializeToString, response_deserializer=node__pb2.GetrouteResponse.FromString, ) + self.ListAddresses = channel.unary_unary( + '/cln.Node/ListAddresses', + request_serializer=node__pb2.ListaddressesRequest.SerializeToString, + response_deserializer=node__pb2.ListaddressesResponse.FromString, + ) self.ListForwards = channel.unary_unary( '/cln.Node/ListForwards', request_serializer=node__pb2.ListforwardsRequest.SerializeToString, @@ -469,6 +489,11 @@ def __init__(self, channel): request_serializer=node__pb2.Splice_updateRequest.SerializeToString, response_deserializer=node__pb2.Splice_updateResponse.FromString, ) + self.DevSplice = channel.unary_unary( + '/cln.Node/DevSplice', + request_serializer=node__pb2.DevspliceRequest.SerializeToString, + response_deserializer=node__pb2.DevspliceResponse.FromString, + ) self.UnreserveInputs = channel.unary_unary( '/cln.Node/UnreserveInputs', request_serializer=node__pb2.UnreserveinputsRequest.SerializeToString, @@ -549,6 +574,16 @@ def __init__(self, channel): request_serializer=node__pb2.BkprlistincomeRequest.SerializeToString, response_deserializer=node__pb2.BkprlistincomeResponse.FromString, ) + self.BkprEditDescriptionByPaymentId = channel.unary_unary( + '/cln.Node/BkprEditDescriptionByPaymentId', + request_serializer=node__pb2.BkpreditdescriptionbypaymentidRequest.SerializeToString, + response_deserializer=node__pb2.BkpreditdescriptionbypaymentidResponse.FromString, + ) + self.BkprEditDescriptionByOutpoint = channel.unary_unary( + '/cln.Node/BkprEditDescriptionByOutpoint', + request_serializer=node__pb2.BkpreditdescriptionbyoutpointRequest.SerializeToString, + response_deserializer=node__pb2.BkpreditdescriptionbyoutpointResponse.FromString, + ) self.BlacklistRune = channel.unary_unary( '/cln.Node/BlacklistRune', request_serializer=node__pb2.BlacklistruneRequest.SerializeToString, @@ -569,6 +604,81 @@ def __init__(self, channel): request_serializer=node__pb2.ShowrunesRequest.SerializeToString, response_deserializer=node__pb2.ShowrunesResponse.FromString, ) + self.AskReneUnreserve = channel.unary_unary( + '/cln.Node/AskReneUnreserve', + request_serializer=node__pb2.AskreneunreserveRequest.SerializeToString, + response_deserializer=node__pb2.AskreneunreserveResponse.FromString, + ) + self.AskReneListLayers = channel.unary_unary( + '/cln.Node/AskReneListLayers', + request_serializer=node__pb2.AskrenelistlayersRequest.SerializeToString, + response_deserializer=node__pb2.AskrenelistlayersResponse.FromString, + ) + self.AskReneCreateLayer = channel.unary_unary( + '/cln.Node/AskReneCreateLayer', + request_serializer=node__pb2.AskrenecreatelayerRequest.SerializeToString, + response_deserializer=node__pb2.AskrenecreatelayerResponse.FromString, + ) + self.AskReneRemoveLayer = channel.unary_unary( + '/cln.Node/AskReneRemoveLayer', + request_serializer=node__pb2.AskreneremovelayerRequest.SerializeToString, + response_deserializer=node__pb2.AskreneremovelayerResponse.FromString, + ) + self.AskReneReserve = channel.unary_unary( + '/cln.Node/AskReneReserve', + request_serializer=node__pb2.AskrenereserveRequest.SerializeToString, + response_deserializer=node__pb2.AskrenereserveResponse.FromString, + ) + self.AskReneAge = channel.unary_unary( + '/cln.Node/AskReneAge', + request_serializer=node__pb2.AskreneageRequest.SerializeToString, + response_deserializer=node__pb2.AskreneageResponse.FromString, + ) + self.GetRoutes = channel.unary_unary( + '/cln.Node/GetRoutes', + request_serializer=node__pb2.GetroutesRequest.SerializeToString, + response_deserializer=node__pb2.GetroutesResponse.FromString, + ) + self.AskReneDisableNode = channel.unary_unary( + '/cln.Node/AskReneDisableNode', + request_serializer=node__pb2.AskrenedisablenodeRequest.SerializeToString, + response_deserializer=node__pb2.AskrenedisablenodeResponse.FromString, + ) + self.AskReneInformChannel = channel.unary_unary( + '/cln.Node/AskReneInformChannel', + request_serializer=node__pb2.AskreneinformchannelRequest.SerializeToString, + response_deserializer=node__pb2.AskreneinformchannelResponse.FromString, + ) + self.AskReneCreateChannel = channel.unary_unary( + '/cln.Node/AskReneCreateChannel', + request_serializer=node__pb2.AskrenecreatechannelRequest.SerializeToString, + response_deserializer=node__pb2.AskrenecreatechannelResponse.FromString, + ) + self.AskReneUpdateChannel = channel.unary_unary( + '/cln.Node/AskReneUpdateChannel', + request_serializer=node__pb2.AskreneupdatechannelRequest.SerializeToString, + response_deserializer=node__pb2.AskreneupdatechannelResponse.FromString, + ) + self.AskReneBiasChannel = channel.unary_unary( + '/cln.Node/AskReneBiasChannel', + request_serializer=node__pb2.AskrenebiaschannelRequest.SerializeToString, + response_deserializer=node__pb2.AskrenebiaschannelResponse.FromString, + ) + self.AskReneListReservations = channel.unary_unary( + '/cln.Node/AskReneListReservations', + request_serializer=node__pb2.AskrenelistreservationsRequest.SerializeToString, + response_deserializer=node__pb2.AskrenelistreservationsResponse.FromString, + ) + self.InjectPaymentOnion = channel.unary_unary( + '/cln.Node/InjectPaymentOnion', + request_serializer=node__pb2.InjectpaymentonionRequest.SerializeToString, + response_deserializer=node__pb2.InjectpaymentonionResponse.FromString, + ) + self.Xpay = channel.unary_unary( + '/cln.Node/Xpay', + request_serializer=node__pb2.XpayRequest.SerializeToString, + response_deserializer=node__pb2.XpayResponse.FromString, + ) self.SubscribeBlockAdded = channel.unary_stream( '/cln.Node/SubscribeBlockAdded', request_serializer=node__pb2.StreamBlockAddedRequest.SerializeToString, @@ -719,6 +829,18 @@ def EmergencyRecover(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetEmergencyRecoverData(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ExposeSecret(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def Recover(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -923,6 +1045,12 @@ def DisableOffer(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def EnableOffer(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def Disconnect(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -983,6 +1111,12 @@ def GetRoute(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def ListAddresses(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def ListForwards(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -1145,6 +1279,12 @@ def Splice_Update(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def DevSplice(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def UnreserveInputs(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -1241,6 +1381,18 @@ def BkprListIncome(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def BkprEditDescriptionByPaymentId(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def BkprEditDescriptionByOutpoint(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def BlacklistRune(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -1265,6 +1417,96 @@ def ShowRunes(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def AskReneUnreserve(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AskReneListLayers(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AskReneCreateLayer(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AskReneRemoveLayer(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AskReneReserve(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AskReneAge(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetRoutes(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AskReneDisableNode(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AskReneInformChannel(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AskReneCreateChannel(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AskReneUpdateChannel(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AskReneBiasChannel(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def AskReneListReservations(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def InjectPaymentOnion(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Xpay(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def SubscribeBlockAdded(self, request, context): """Missing associated documentation comment in .proto file.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -1398,6 +1640,16 @@ def add_NodeServicer_to_server(servicer, server): request_deserializer=node__pb2.EmergencyrecoverRequest.FromString, response_serializer=node__pb2.EmergencyrecoverResponse.SerializeToString, ), + 'GetEmergencyRecoverData': grpc.unary_unary_rpc_method_handler( + servicer.GetEmergencyRecoverData, + request_deserializer=node__pb2.GetemergencyrecoverdataRequest.FromString, + response_serializer=node__pb2.GetemergencyrecoverdataResponse.SerializeToString, + ), + 'ExposeSecret': grpc.unary_unary_rpc_method_handler( + servicer.ExposeSecret, + request_deserializer=node__pb2.ExposesecretRequest.FromString, + response_serializer=node__pb2.ExposesecretResponse.SerializeToString, + ), 'Recover': grpc.unary_unary_rpc_method_handler( servicer.Recover, request_deserializer=node__pb2.RecoverRequest.FromString, @@ -1568,6 +1820,11 @@ def add_NodeServicer_to_server(servicer, server): request_deserializer=node__pb2.DisableofferRequest.FromString, response_serializer=node__pb2.DisableofferResponse.SerializeToString, ), + 'EnableOffer': grpc.unary_unary_rpc_method_handler( + servicer.EnableOffer, + request_deserializer=node__pb2.EnableofferRequest.FromString, + response_serializer=node__pb2.EnableofferResponse.SerializeToString, + ), 'Disconnect': grpc.unary_unary_rpc_method_handler( servicer.Disconnect, request_deserializer=node__pb2.DisconnectRequest.FromString, @@ -1618,6 +1875,11 @@ def add_NodeServicer_to_server(servicer, server): request_deserializer=node__pb2.GetrouteRequest.FromString, response_serializer=node__pb2.GetrouteResponse.SerializeToString, ), + 'ListAddresses': grpc.unary_unary_rpc_method_handler( + servicer.ListAddresses, + request_deserializer=node__pb2.ListaddressesRequest.FromString, + response_serializer=node__pb2.ListaddressesResponse.SerializeToString, + ), 'ListForwards': grpc.unary_unary_rpc_method_handler( servicer.ListForwards, request_deserializer=node__pb2.ListforwardsRequest.FromString, @@ -1753,6 +2015,11 @@ def add_NodeServicer_to_server(servicer, server): request_deserializer=node__pb2.Splice_updateRequest.FromString, response_serializer=node__pb2.Splice_updateResponse.SerializeToString, ), + 'DevSplice': grpc.unary_unary_rpc_method_handler( + servicer.DevSplice, + request_deserializer=node__pb2.DevspliceRequest.FromString, + response_serializer=node__pb2.DevspliceResponse.SerializeToString, + ), 'UnreserveInputs': grpc.unary_unary_rpc_method_handler( servicer.UnreserveInputs, request_deserializer=node__pb2.UnreserveinputsRequest.FromString, @@ -1833,6 +2100,16 @@ def add_NodeServicer_to_server(servicer, server): request_deserializer=node__pb2.BkprlistincomeRequest.FromString, response_serializer=node__pb2.BkprlistincomeResponse.SerializeToString, ), + 'BkprEditDescriptionByPaymentId': grpc.unary_unary_rpc_method_handler( + servicer.BkprEditDescriptionByPaymentId, + request_deserializer=node__pb2.BkpreditdescriptionbypaymentidRequest.FromString, + response_serializer=node__pb2.BkpreditdescriptionbypaymentidResponse.SerializeToString, + ), + 'BkprEditDescriptionByOutpoint': grpc.unary_unary_rpc_method_handler( + servicer.BkprEditDescriptionByOutpoint, + request_deserializer=node__pb2.BkpreditdescriptionbyoutpointRequest.FromString, + response_serializer=node__pb2.BkpreditdescriptionbyoutpointResponse.SerializeToString, + ), 'BlacklistRune': grpc.unary_unary_rpc_method_handler( servicer.BlacklistRune, request_deserializer=node__pb2.BlacklistruneRequest.FromString, @@ -1853,6 +2130,81 @@ def add_NodeServicer_to_server(servicer, server): request_deserializer=node__pb2.ShowrunesRequest.FromString, response_serializer=node__pb2.ShowrunesResponse.SerializeToString, ), + 'AskReneUnreserve': grpc.unary_unary_rpc_method_handler( + servicer.AskReneUnreserve, + request_deserializer=node__pb2.AskreneunreserveRequest.FromString, + response_serializer=node__pb2.AskreneunreserveResponse.SerializeToString, + ), + 'AskReneListLayers': grpc.unary_unary_rpc_method_handler( + servicer.AskReneListLayers, + request_deserializer=node__pb2.AskrenelistlayersRequest.FromString, + response_serializer=node__pb2.AskrenelistlayersResponse.SerializeToString, + ), + 'AskReneCreateLayer': grpc.unary_unary_rpc_method_handler( + servicer.AskReneCreateLayer, + request_deserializer=node__pb2.AskrenecreatelayerRequest.FromString, + response_serializer=node__pb2.AskrenecreatelayerResponse.SerializeToString, + ), + 'AskReneRemoveLayer': grpc.unary_unary_rpc_method_handler( + servicer.AskReneRemoveLayer, + request_deserializer=node__pb2.AskreneremovelayerRequest.FromString, + response_serializer=node__pb2.AskreneremovelayerResponse.SerializeToString, + ), + 'AskReneReserve': grpc.unary_unary_rpc_method_handler( + servicer.AskReneReserve, + request_deserializer=node__pb2.AskrenereserveRequest.FromString, + response_serializer=node__pb2.AskrenereserveResponse.SerializeToString, + ), + 'AskReneAge': grpc.unary_unary_rpc_method_handler( + servicer.AskReneAge, + request_deserializer=node__pb2.AskreneageRequest.FromString, + response_serializer=node__pb2.AskreneageResponse.SerializeToString, + ), + 'GetRoutes': grpc.unary_unary_rpc_method_handler( + servicer.GetRoutes, + request_deserializer=node__pb2.GetroutesRequest.FromString, + response_serializer=node__pb2.GetroutesResponse.SerializeToString, + ), + 'AskReneDisableNode': grpc.unary_unary_rpc_method_handler( + servicer.AskReneDisableNode, + request_deserializer=node__pb2.AskrenedisablenodeRequest.FromString, + response_serializer=node__pb2.AskrenedisablenodeResponse.SerializeToString, + ), + 'AskReneInformChannel': grpc.unary_unary_rpc_method_handler( + servicer.AskReneInformChannel, + request_deserializer=node__pb2.AskreneinformchannelRequest.FromString, + response_serializer=node__pb2.AskreneinformchannelResponse.SerializeToString, + ), + 'AskReneCreateChannel': grpc.unary_unary_rpc_method_handler( + servicer.AskReneCreateChannel, + request_deserializer=node__pb2.AskrenecreatechannelRequest.FromString, + response_serializer=node__pb2.AskrenecreatechannelResponse.SerializeToString, + ), + 'AskReneUpdateChannel': grpc.unary_unary_rpc_method_handler( + servicer.AskReneUpdateChannel, + request_deserializer=node__pb2.AskreneupdatechannelRequest.FromString, + response_serializer=node__pb2.AskreneupdatechannelResponse.SerializeToString, + ), + 'AskReneBiasChannel': grpc.unary_unary_rpc_method_handler( + servicer.AskReneBiasChannel, + request_deserializer=node__pb2.AskrenebiaschannelRequest.FromString, + response_serializer=node__pb2.AskrenebiaschannelResponse.SerializeToString, + ), + 'AskReneListReservations': grpc.unary_unary_rpc_method_handler( + servicer.AskReneListReservations, + request_deserializer=node__pb2.AskrenelistreservationsRequest.FromString, + response_serializer=node__pb2.AskrenelistreservationsResponse.SerializeToString, + ), + 'InjectPaymentOnion': grpc.unary_unary_rpc_method_handler( + servicer.InjectPaymentOnion, + request_deserializer=node__pb2.InjectpaymentonionRequest.FromString, + response_serializer=node__pb2.InjectpaymentonionResponse.SerializeToString, + ), + 'Xpay': grpc.unary_unary_rpc_method_handler( + servicer.Xpay, + request_deserializer=node__pb2.XpayRequest.FromString, + response_serializer=node__pb2.XpayResponse.SerializeToString, + ), 'SubscribeBlockAdded': grpc.unary_stream_rpc_method_handler( servicer.SubscribeBlockAdded, request_deserializer=node__pb2.StreamBlockAddedRequest.FromString, @@ -2228,6 +2580,40 @@ def EmergencyRecover(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def GetEmergencyRecoverData(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/GetEmergencyRecoverData', + node__pb2.GetemergencyrecoverdataRequest.SerializeToString, + node__pb2.GetemergencyrecoverdataResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ExposeSecret(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/ExposeSecret', + node__pb2.ExposesecretRequest.SerializeToString, + node__pb2.ExposesecretResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def Recover(request, target, @@ -2806,6 +3192,23 @@ def DisableOffer(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def EnableOffer(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/EnableOffer', + node__pb2.EnableofferRequest.SerializeToString, + node__pb2.EnableofferResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def Disconnect(request, target, @@ -2976,6 +3379,23 @@ def GetRoute(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def ListAddresses(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/ListAddresses', + node__pb2.ListaddressesRequest.SerializeToString, + node__pb2.ListaddressesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def ListForwards(request, target, @@ -3435,6 +3855,23 @@ def Splice_Update(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def DevSplice(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/DevSplice', + node__pb2.DevspliceRequest.SerializeToString, + node__pb2.DevspliceResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def UnreserveInputs(request, target, @@ -3707,6 +4144,40 @@ def BkprListIncome(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def BkprEditDescriptionByPaymentId(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/BkprEditDescriptionByPaymentId', + node__pb2.BkpreditdescriptionbypaymentidRequest.SerializeToString, + node__pb2.BkpreditdescriptionbypaymentidResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def BkprEditDescriptionByOutpoint(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/BkprEditDescriptionByOutpoint', + node__pb2.BkpreditdescriptionbyoutpointRequest.SerializeToString, + node__pb2.BkpreditdescriptionbyoutpointResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def BlacklistRune(request, target, @@ -3775,6 +4246,261 @@ def ShowRunes(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def AskReneUnreserve(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneUnreserve', + node__pb2.AskreneunreserveRequest.SerializeToString, + node__pb2.AskreneunreserveResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AskReneListLayers(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneListLayers', + node__pb2.AskrenelistlayersRequest.SerializeToString, + node__pb2.AskrenelistlayersResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AskReneCreateLayer(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneCreateLayer', + node__pb2.AskrenecreatelayerRequest.SerializeToString, + node__pb2.AskrenecreatelayerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AskReneRemoveLayer(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneRemoveLayer', + node__pb2.AskreneremovelayerRequest.SerializeToString, + node__pb2.AskreneremovelayerResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AskReneReserve(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneReserve', + node__pb2.AskrenereserveRequest.SerializeToString, + node__pb2.AskrenereserveResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AskReneAge(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneAge', + node__pb2.AskreneageRequest.SerializeToString, + node__pb2.AskreneageResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetRoutes(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/GetRoutes', + node__pb2.GetroutesRequest.SerializeToString, + node__pb2.GetroutesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AskReneDisableNode(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneDisableNode', + node__pb2.AskrenedisablenodeRequest.SerializeToString, + node__pb2.AskrenedisablenodeResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AskReneInformChannel(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneInformChannel', + node__pb2.AskreneinformchannelRequest.SerializeToString, + node__pb2.AskreneinformchannelResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AskReneCreateChannel(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneCreateChannel', + node__pb2.AskrenecreatechannelRequest.SerializeToString, + node__pb2.AskrenecreatechannelResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AskReneUpdateChannel(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneUpdateChannel', + node__pb2.AskreneupdatechannelRequest.SerializeToString, + node__pb2.AskreneupdatechannelResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AskReneBiasChannel(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneBiasChannel', + node__pb2.AskrenebiaschannelRequest.SerializeToString, + node__pb2.AskrenebiaschannelResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def AskReneListReservations(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/AskReneListReservations', + node__pb2.AskrenelistreservationsRequest.SerializeToString, + node__pb2.AskrenelistreservationsResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def InjectPaymentOnion(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/InjectPaymentOnion', + node__pb2.InjectpaymentonionRequest.SerializeToString, + node__pb2.InjectpaymentonionResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def Xpay(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/cln.Node/Xpay', + node__pb2.XpayRequest.SerializeToString, + node__pb2.XpayResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def SubscribeBlockAdded(request, target, diff --git a/contrib/pyln-testing/pyln/testing/grpc2py.py b/contrib/pyln-testing/pyln/testing/grpc2py.py index f6e8de909adb..c44bc65d72ff 100644 --- a/contrib/pyln-testing/pyln/testing/grpc2py.py +++ b/contrib/pyln-testing/pyln/testing/grpc2py.py @@ -441,6 +441,19 @@ def emergencyrecover2py(m): }) +def getemergencyrecoverdata2py(m): + return remove_default({ + "filedata": hexlify(m.filedata), # PrimitiveField in generate_composite + }) + + +def exposesecret2py(m): + return remove_default({ + "codex32": m.codex32, # PrimitiveField in generate_composite + "identifier": m.identifier, # PrimitiveField in generate_composite + }) + + def recover2py(m): return remove_default({ "result": str(m.result), # EnumField in generate_composite @@ -1387,6 +1400,17 @@ def disableoffer2py(m): }) +def enableoffer2py(m): + return remove_default({ + "active": m.active, # PrimitiveField in generate_composite + "bolt12": m.bolt12, # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite + "offer_id": hexlify(m.offer_id), # PrimitiveField in generate_composite + "single_use": m.single_use, # PrimitiveField in generate_composite + "used": m.used, # PrimitiveField in generate_composite + }) + + def disconnect2py(m): return remove_default({ }) @@ -1591,6 +1615,20 @@ def getroute2py(m): }) +def listaddresses_addresses2py(m): + return remove_default({ + "bech32": m.bech32, # PrimitiveField in generate_composite + "keyidx": m.keyidx, # PrimitiveField in generate_composite + "p2tr": m.p2tr, # PrimitiveField in generate_composite + }) + + +def listaddresses2py(m): + return remove_default({ + "addresses": [listaddresses_addresses2py(i) for i in m.addresses], # ArrayField[composite] in generate_composite + }) + + def listforwards_forwards2py(m): return remove_default({ "status": str(m.status), # EnumField in generate_composite @@ -1988,6 +2026,16 @@ def splice_update2py(m): }) +def dev_splice2py(m): + return remove_default({ + "dryrun": [m.dryrun for i in m.dryrun], # ArrayField[primitive] in generate_composite + "log": [m.log for i in m.log], # ArrayField[primitive] in generate_composite + "psbt": m.psbt, # PrimitiveField in generate_composite + "tx": m.tx, # PrimitiveField in generate_composite + "txid": m.txid, # PrimitiveField in generate_composite + }) + + def unreserveinputs_reservations2py(m): return remove_default({ "reserved": m.reserved, # PrimitiveField in generate_composite @@ -2829,6 +2877,60 @@ def bkpr_listincome2py(m): }) +def bkpr_editdescriptionbypaymentid_updated2py(m): + return remove_default({ + "type": str(m.item_type), # EnumField in generate_composite + "account": m.account, # PrimitiveField in generate_composite + "blockheight": m.blockheight, # PrimitiveField in generate_composite + "credit_msat": amount2msat(m.credit_msat), # PrimitiveField in generate_composite + "currency": m.currency, # PrimitiveField in generate_composite + "debit_msat": amount2msat(m.debit_msat), # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "fees_msat": amount2msat(m.fees_msat), # PrimitiveField in generate_composite + "is_rebalance": m.is_rebalance, # PrimitiveField in generate_composite + "origin": m.origin, # PrimitiveField in generate_composite + "outpoint": m.outpoint, # PrimitiveField in generate_composite + "part_id": m.part_id, # PrimitiveField in generate_composite + "payment_id": hexlify(m.payment_id), # PrimitiveField in generate_composite + "tag": m.tag, # PrimitiveField in generate_composite + "timestamp": m.timestamp, # PrimitiveField in generate_composite + "txid": hexlify(m.txid), # PrimitiveField in generate_composite + }) + + +def bkpr_editdescriptionbypaymentid2py(m): + return remove_default({ + "updated": [bkpr_editdescriptionbypaymentid_updated2py(i) for i in m.updated], # ArrayField[composite] in generate_composite + }) + + +def bkpr_editdescriptionbyoutpoint_updated2py(m): + return remove_default({ + "type": str(m.item_type), # EnumField in generate_composite + "account": m.account, # PrimitiveField in generate_composite + "blockheight": m.blockheight, # PrimitiveField in generate_composite + "credit_msat": amount2msat(m.credit_msat), # PrimitiveField in generate_composite + "currency": m.currency, # PrimitiveField in generate_composite + "debit_msat": amount2msat(m.debit_msat), # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "fees_msat": amount2msat(m.fees_msat), # PrimitiveField in generate_composite + "is_rebalance": m.is_rebalance, # PrimitiveField in generate_composite + "origin": m.origin, # PrimitiveField in generate_composite + "outpoint": m.outpoint, # PrimitiveField in generate_composite + "part_id": m.part_id, # PrimitiveField in generate_composite + "payment_id": hexlify(m.payment_id), # PrimitiveField in generate_composite + "tag": m.tag, # PrimitiveField in generate_composite + "timestamp": m.timestamp, # PrimitiveField in generate_composite + "txid": hexlify(m.txid), # PrimitiveField in generate_composite + }) + + +def bkpr_editdescriptionbyoutpoint2py(m): + return remove_default({ + "updated": [bkpr_editdescriptionbyoutpoint_updated2py(i) for i in m.updated], # ArrayField[composite] in generate_composite + }) + + def blacklistrune_blacklist2py(m): return remove_default({ "end": m.end, # PrimitiveField in generate_composite @@ -2891,6 +2993,244 @@ def showrunes2py(m): }) +def askrene_unreserve2py(m): + return remove_default({ + }) + + +def askrene_listlayers_layers_biases2py(m): + return remove_default({ + "bias": m.bias, # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "short_channel_id_dir": m.short_channel_id_dir, # PrimitiveField in generate_composite + }) + + +def askrene_listlayers_layers_channel_updates2py(m): + return remove_default({ + "cltv_expiry_delta": m.cltv_expiry_delta, # PrimitiveField in generate_composite + "enabled": m.enabled, # PrimitiveField in generate_composite + "fee_base_msat": amount2msat(m.fee_base_msat), # PrimitiveField in generate_composite + "fee_proportional_millionths": m.fee_proportional_millionths, # PrimitiveField in generate_composite + "htlc_maximum_msat": amount2msat(m.htlc_maximum_msat), # PrimitiveField in generate_composite + "htlc_minimum_msat": amount2msat(m.htlc_minimum_msat), # PrimitiveField in generate_composite + "short_channel_id_dir": m.short_channel_id_dir, # PrimitiveField in generate_composite + }) + + +def askrene_listlayers_layers_constraints2py(m): + return remove_default({ + "maximum_msat": amount2msat(m.maximum_msat), # PrimitiveField in generate_composite + "minimum_msat": amount2msat(m.minimum_msat), # PrimitiveField in generate_composite + "short_channel_id_dir": m.short_channel_id_dir, # PrimitiveField in generate_composite + "timestamp": m.timestamp, # PrimitiveField in generate_composite + }) + + +def askrene_listlayers_layers_created_channels2py(m): + return remove_default({ + "capacity_msat": amount2msat(m.capacity_msat), # PrimitiveField in generate_composite + "destination": hexlify(m.destination), # PrimitiveField in generate_composite + "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite + "source": hexlify(m.source), # PrimitiveField in generate_composite + }) + + +def askrene_listlayers_layers2py(m): + return remove_default({ + "biases": [askrene_listlayers_layers_biases2py(i) for i in m.biases], # ArrayField[composite] in generate_composite + "channel_updates": [askrene_listlayers_layers_channel_updates2py(i) for i in m.channel_updates], # ArrayField[composite] in generate_composite + "constraints": [askrene_listlayers_layers_constraints2py(i) for i in m.constraints], # ArrayField[composite] in generate_composite + "created_channels": [askrene_listlayers_layers_created_channels2py(i) for i in m.created_channels], # ArrayField[composite] in generate_composite + "disabled_channels": [m.disabled_channels for i in m.disabled_channels], # ArrayField[primitive] in generate_composite + "disabled_nodes": [hexlify(m.disabled_nodes) for i in hexlify(m.disabled_nodes)], # ArrayField[primitive] in generate_composite + "layer": m.layer, # PrimitiveField in generate_composite + "persistent": m.persistent, # PrimitiveField in generate_composite + }) + + +def askrene_listlayers2py(m): + return remove_default({ + "layers": [askrene_listlayers_layers2py(i) for i in m.layers], # ArrayField[composite] in generate_composite + }) + + +def askrene_create_layer_layers_biases2py(m): + return remove_default({ + "bias": m.bias, # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "short_channel_id_dir": m.short_channel_id_dir, # PrimitiveField in generate_composite + }) + + +def askrene_create_layer_layers_channel_updates2py(m): + return remove_default({ + "delay": m.delay, # PrimitiveField in generate_composite + "fee_base_msat": amount2msat(m.fee_base_msat), # PrimitiveField in generate_composite + "fee_proportional_millionths": m.fee_proportional_millionths, # PrimitiveField in generate_composite + "htlc_maximum_msat": amount2msat(m.htlc_maximum_msat), # PrimitiveField in generate_composite + "htlc_minimum_msat": amount2msat(m.htlc_minimum_msat), # PrimitiveField in generate_composite + }) + + +def askrene_create_layer_layers_constraints2py(m): + return remove_default({ + "direction": m.direction, # PrimitiveField in generate_composite + "maximum_msat": amount2msat(m.maximum_msat), # PrimitiveField in generate_composite + "minimum_msat": amount2msat(m.minimum_msat), # PrimitiveField in generate_composite + "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite + }) + + +def askrene_create_layer_layers_created_channels2py(m): + return remove_default({ + "capacity_msat": amount2msat(m.capacity_msat), # PrimitiveField in generate_composite + "destination": hexlify(m.destination), # PrimitiveField in generate_composite + "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite + "source": hexlify(m.source), # PrimitiveField in generate_composite + }) + + +def askrene_create_layer_layers2py(m): + return remove_default({ + "biases": [askrene_create_layer_layers_biases2py(i) for i in m.biases], # ArrayField[composite] in generate_composite + "channel_updates": [askrene_create_layer_layers_channel_updates2py(i) for i in m.channel_updates], # ArrayField[composite] in generate_composite + "constraints": [askrene_create_layer_layers_constraints2py(i) for i in m.constraints], # ArrayField[composite] in generate_composite + "created_channels": [askrene_create_layer_layers_created_channels2py(i) for i in m.created_channels], # ArrayField[composite] in generate_composite + "disabled_channels": [m.disabled_channels for i in m.disabled_channels], # ArrayField[primitive] in generate_composite + "disabled_nodes": [hexlify(m.disabled_nodes) for i in hexlify(m.disabled_nodes)], # ArrayField[primitive] in generate_composite + "layer": m.layer, # PrimitiveField in generate_composite + "persistent": m.persistent, # PrimitiveField in generate_composite + }) + + +def askrene_create_layer2py(m): + return remove_default({ + "layers": [askrene_create_layer_layers2py(i) for i in m.layers], # ArrayField[composite] in generate_composite + }) + + +def askrene_remove_layer2py(m): + return remove_default({ + }) + + +def askrene_reserve2py(m): + return remove_default({ + }) + + +def askrene_age2py(m): + return remove_default({ + "layer": m.layer, # PrimitiveField in generate_composite + "num_removed": m.num_removed, # PrimitiveField in generate_composite + }) + + +def getroutes_routes_path2py(m): + return remove_default({ + "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "delay": m.delay, # PrimitiveField in generate_composite + "next_node_id": hexlify(m.next_node_id), # PrimitiveField in generate_composite + "short_channel_id_dir": m.short_channel_id_dir, # PrimitiveField in generate_composite + }) + + +def getroutes_routes2py(m): + return remove_default({ + "path": [getroutes_routes_path2py(i) for i in m.path], # ArrayField[composite] in generate_composite + "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "final_cltv": m.final_cltv, # PrimitiveField in generate_composite + "probability_ppm": m.probability_ppm, # PrimitiveField in generate_composite + }) + + +def getroutes2py(m): + return remove_default({ + "routes": [getroutes_routes2py(i) for i in m.routes], # ArrayField[composite] in generate_composite + "probability_ppm": m.probability_ppm, # PrimitiveField in generate_composite + }) + + +def askrene_disable_node2py(m): + return remove_default({ + }) + + +def askrene_inform_channel_constraints2py(m): + return remove_default({ + "layer": m.layer, # PrimitiveField in generate_composite + "maximum_msat": amount2msat(m.maximum_msat), # PrimitiveField in generate_composite + "minimum_msat": amount2msat(m.minimum_msat), # PrimitiveField in generate_composite + "short_channel_id_dir": m.short_channel_id_dir, # PrimitiveField in generate_composite + "timestamp": m.timestamp, # PrimitiveField in generate_composite + }) + + +def askrene_inform_channel2py(m): + return remove_default({ + "constraints": [askrene_inform_channel_constraints2py(i) for i in m.constraints], # ArrayField[composite] in generate_composite + }) + + +def askrene_create_channel2py(m): + return remove_default({ + }) + + +def askrene_update_channel2py(m): + return remove_default({ + }) + + +def askrene_bias_channel_biases2py(m): + return remove_default({ + "bias": m.bias, # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "layer": m.layer, # PrimitiveField in generate_composite + "short_channel_id_dir": m.short_channel_id_dir, # PrimitiveField in generate_composite + }) + + +def askrene_bias_channel2py(m): + return remove_default({ + "biases": [askrene_bias_channel_biases2py(i) for i in m.biases], # ArrayField[composite] in generate_composite + }) + + +def askrene_listreservations_reservations2py(m): + return remove_default({ + "age_in_seconds": m.age_in_seconds, # PrimitiveField in generate_composite + "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "command_id": m.command_id, # PrimitiveField in generate_composite + "short_channel_id_dir": m.short_channel_id_dir, # PrimitiveField in generate_composite + }) + + +def askrene_listreservations2py(m): + return remove_default({ + "reservations": [askrene_listreservations_reservations2py(i) for i in m.reservations], # ArrayField[composite] in generate_composite + }) + + +def injectpaymentonion2py(m): + return remove_default({ + "completed_at": m.completed_at, # PrimitiveField in generate_composite + "created_at": m.created_at, # PrimitiveField in generate_composite + "created_index": m.created_index, # PrimitiveField in generate_composite + }) + + +def xpay2py(m): + return remove_default({ + "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "amount_sent_msat": amount2msat(m.amount_sent_msat), # PrimitiveField in generate_composite + "failed_parts": m.failed_parts, # PrimitiveField in generate_composite + "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite + "successful_parts": m.successful_parts, # PrimitiveField in generate_composite + }) + + def decodekeysend_routes2py(m): # manual override return remove_default({ "expirydelta": m.expirydelta,