From e54288a2e60ce5426f8e361235cf92e932dd41c1 Mon Sep 17 00:00:00 2001 From: daywalker90 <8257956+daywalker90@users.noreply.github.com> Date: Sun, 14 Apr 2024 17:18:11 +0200 Subject: [PATCH] msggen: fix walk through nested json schemas Changelog-None --- .msggen.json | 219 +- cln-grpc/proto/node.proto | 235 +- cln-grpc/src/convert.rs | 1475 +++++----- cln-rpc/src/model.rs | 2524 +++++++++-------- contrib/msggen/msggen/gen/grpc.py | 17 +- contrib/msggen/msggen/gen/grpc2py.py | 1 + contrib/msggen/msggen/gen/rust.py | 11 +- contrib/msggen/msggen/model.py | 57 +- contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py | 920 +++--- contrib/pyln-testing/pyln/testing/grpc2py.py | 1059 +++---- 10 files changed, 3569 insertions(+), 2949 deletions(-) diff --git a/.msggen.json b/.msggen.json index 9e425f66c8f8..c9d83aeeba8a 100644 --- a/.msggen.json +++ b/.msggen.json @@ -28,6 +28,13 @@ "must-create": 0, "must-replace": 1 }, + "DecodeFallbacksType": { + "P2PKH": 0, + "P2SH": 1, + "P2TR": 4, + "P2WPKH": 2, + "P2WSH": 3 + }, "DecodeType": { "bolt11 invoice": 3, "bolt12 invoice": 1, @@ -342,6 +349,17 @@ "StopResult": { "Shutdown complete": 0 }, + "WaitDetailsStatus": { + "complete": 5, + "expired": 2, + "failed": 4, + "local_failed": 8, + "offered": 6, + "paid": 1, + "pending": 3, + "settled": 7, + "unpaid": 0 + }, "WaitIndexname": { "created": 0, "deleted": 2, @@ -509,6 +527,9 @@ "Decode.extra[].tag": 1 }, "DecodeFallbacks": { + "Decode.fallbacks[].addr": 3, + "Decode.fallbacks[].hex": 4, + "Decode.fallbacks[].type": 2, "Decode.fallbacks[].warning_invoice_fallbacks_version_invalid": 1 }, "DecodeInvoice_fallbacks": { @@ -534,13 +555,17 @@ "Decode.string": 1 }, "DecodeResponse": { + "Decode.amount_msat": 79, "Decode.created_at": 60, + "Decode.currency": 78, "Decode.currency_minor_unit": 8, "Decode.decrypted": 76, + "Decode.description": 80, "Decode.description_hash": 64, "Decode.expiry": 61, "Decode.extra[]": 69, "Decode.fallbacks[]": 59, + "Decode.features": 81, "Decode.hex": 75, "Decode.invoice_amount_msat": 44, "Decode.invoice_created_at": 41, @@ -581,6 +606,7 @@ "Decode.payment_secret": 66, "Decode.restrictions[]": 73, "Decode.routes[][]": 68, + "Decode.signature": 77, "Decode.string": 72, "Decode.type": 1, "Decode.unique_id": 70, @@ -668,6 +694,7 @@ }, "DelinvoiceResponse": { "DelInvoice.amount_msat": 4, + "DelInvoice.amount_received_msat": 15, "DelInvoice.bolt11": 2, "DelInvoice.bolt12": 3, "DelInvoice.created_index": 12, @@ -676,8 +703,11 @@ "DelInvoice.invreq_payer_note": 11, "DelInvoice.label": 1, "DelInvoice.local_offer_id": 9, + "DelInvoice.paid_at": 16, + "DelInvoice.pay_index": 14, "DelInvoice.payer_note": 10, "DelInvoice.payment_hash": 6, + "DelInvoice.payment_preimage": 17, "DelInvoice.status": 7, "DelInvoice.updated_index": 13 }, @@ -832,6 +862,7 @@ "Getinfo.binding[].address": 2, "Getinfo.binding[].port": 3, "Getinfo.binding[].socket": 4, + "Getinfo.binding[].subtype": 5, "Getinfo.binding[].type": 1 }, "GetinfoOur_features": { @@ -1008,6 +1039,8 @@ }, "ListforwardsForwards": { "ListForwards.forwards[].created_index": 12, + "ListForwards.forwards[].failcode": 15, + "ListForwards.forwards[].failreason": 16, "ListForwards.forwards[].fee_msat": 7, "ListForwards.forwards[].in_channel": 1, "ListForwards.forwards[].in_htlc_id": 10, @@ -1017,6 +1050,7 @@ "ListForwards.forwards[].out_msat": 8, "ListForwards.forwards[].payment_hash": 6, "ListForwards.forwards[].received_time": 4, + "ListForwards.forwards[].resolved_time": 14, "ListForwards.forwards[].status": 3, "ListForwards.forwards[].style": 9, "ListForwards.forwards[].updated_index": 13 @@ -1050,6 +1084,7 @@ "ListFunds.outputs[].output": 2, "ListFunds.outputs[].redeemscript": 6, "ListFunds.outputs[].reserved": 9, + "ListFunds.outputs[].reserved_to_block": 10, "ListFunds.outputs[].scriptpubkey": 4, "ListFunds.outputs[].status": 7, "ListFunds.outputs[].txid": 1 @@ -1118,13 +1153,22 @@ "ListNodes.nodes[].color": 4, "ListNodes.nodes[].features": 5, "ListNodes.nodes[].last_timestamp": 2, - "ListNodes.nodes[].nodeid": 1 + "ListNodes.nodes[].nodeid": 1, + "ListNodes.nodes[].option_will_fund": 7 }, "ListnodesNodesAddresses": { "ListNodes.nodes[].addresses[].address": 3, "ListNodes.nodes[].addresses[].port": 2, "ListNodes.nodes[].addresses[].type": 1 }, + "ListnodesNodesOption_will_fund": { + "ListNodes.nodes[].option_will_fund.channel_fee_max_base_msat": 4, + "ListNodes.nodes[].option_will_fund.channel_fee_max_proportional_thousandths": 5, + "ListNodes.nodes[].option_will_fund.compact_lease": 6, + "ListNodes.nodes[].option_will_fund.funding_weight": 3, + "ListNodes.nodes[].option_will_fund.lease_fee_base_msat": 1, + "ListNodes.nodes[].option_will_fund.lease_fee_basis": 2 + }, "ListnodesRequest": { "ListNodes.id": 1 }, @@ -1177,6 +1221,7 @@ "ListPeerChannels.channels[].close_to": 17, "ListPeerChannels.channels[].close_to_addr": 53, "ListPeerChannels.channels[].closer": 20, + "ListPeerChannels.channels[].direction": 60, "ListPeerChannels.channels[].dust_limit_msat": 29, "ListPeerChannels.channels[].features[]": 21, "ListPeerChannels.channels[].fee_base_msat": 27, @@ -1195,6 +1240,7 @@ "ListPeerChannels.channels[].initial_feerate": 12, "ListPeerChannels.channels[].last_feerate": 13, "ListPeerChannels.channels[].last_stable_connection": 56, + "ListPeerChannels.channels[].last_tx_fee_msat": 59, "ListPeerChannels.channels[].lost_state": 57, "ListPeerChannels.channels[].max_accepted_htlcs": 40, "ListPeerChannels.channels[].max_to_us_msat": 25, @@ -1760,6 +1806,20 @@ "UtxoPsbt.psbt": 1, "UtxoPsbt.reservations[]": 6 }, + "WaitDetails": { + "Wait.details.bolt11": 4, + "Wait.details.bolt12": 5, + "Wait.details.description": 3, + "Wait.details.groupid": 7, + "Wait.details.in_channel": 9, + "Wait.details.in_htlc_id": 10, + "Wait.details.in_msat": 11, + "Wait.details.label": 2, + "Wait.details.out_channel": 12, + "Wait.details.partid": 6, + "Wait.details.payment_hash": 8, + "Wait.details.status": 1 + }, "WaitRequest": { "Wait.indexname": 2, "Wait.nextvalue": 3, @@ -1768,6 +1828,7 @@ "WaitResponse": { "Wait.created": 2, "Wait.deleted": 4, + "Wait.details": 5, "Wait.subsystem": 1, "Wait.updated": 3 }, @@ -2225,10 +2286,18 @@ "added": "v23.05", "deprecated": null }, + "Decode.amount_msat": { + "added": "pre-v0.10.1", + "deprecated": false + }, "Decode.created_at": { "added": "pre-v0.10.1", "deprecated": false }, + "Decode.currency": { + "added": "pre-v0.10.1", + "deprecated": false + }, "Decode.currency_minor_unit": { "added": "pre-v0.10.1", "deprecated": false @@ -2237,6 +2306,10 @@ "added": "v23.11", "deprecated": false }, + "Decode.description": { + "added": "pre-v0.10.1", + "deprecated": false + }, "Decode.description_hash": { "added": "pre-v0.10.1", "deprecated": false @@ -2261,10 +2334,26 @@ "added": "pre-v0.10.1", "deprecated": false }, + "Decode.fallbacks[].addr": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Decode.fallbacks[].hex": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Decode.fallbacks[].type": { + "added": "pre-v0.10.1", + "deprecated": false + }, "Decode.fallbacks[].warning_invoice_fallbacks_version_invalid": { "added": "pre-v0.10.1", "deprecated": false }, + "Decode.features": { + "added": "pre-v0.10.1", + "deprecated": false + }, "Decode.hex": { "added": "pre-v0.10.1", "deprecated": false @@ -2565,6 +2654,10 @@ "added": "pre-v0.10.1", "deprecated": false }, + "Decode.signature": { + "added": "pre-v0.10.1", + "deprecated": false + }, "Decode.string": { "added": "pre-v0.10.1", "deprecated": false @@ -2865,6 +2958,10 @@ "added": "pre-v0.10.1", "deprecated": false }, + "DelInvoice.amount_received_msat": { + "added": "pre-v0.10.1", + "deprecated": false + }, "DelInvoice.bolt11": { "added": "pre-v0.10.1", "deprecated": false @@ -2901,10 +2998,22 @@ "added": "pre-v0.10.1", "deprecated": false }, + "DelInvoice.paid_at": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "DelInvoice.pay_index": { + "added": "pre-v0.10.1", + "deprecated": false + }, "DelInvoice.payment_hash": { "added": "pre-v0.10.1", "deprecated": false }, + "DelInvoice.payment_preimage": { + "added": "pre-v0.10.1", + "deprecated": false + }, "DelInvoice.status": { "added": "pre-v0.10.1", "deprecated": false @@ -3449,6 +3558,10 @@ "added": "pre-v0.10.1", "deprecated": false }, + "Getinfo.binding[].subtype": { + "added": "pre-v0.10.1", + "deprecated": false + }, "Getinfo.binding[].type": { "added": "pre-v0.10.1", "deprecated": false @@ -3925,6 +4038,14 @@ "added": "v23.11", "deprecated": false }, + "ListForwards.forwards[].failcode": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "ListForwards.forwards[].failreason": { + "added": "pre-v0.10.1", + "deprecated": false + }, "ListForwards.forwards[].fee_msat": { "added": "pre-v0.10.1", "deprecated": false @@ -3957,6 +4078,10 @@ "added": "pre-v0.10.1", "deprecated": false }, + "ListForwards.forwards[].resolved_time": { + "added": "pre-v0.10.1", + "deprecated": false + }, "ListForwards.forwards[].status": { "added": "pre-v0.10.1", "deprecated": false @@ -4065,6 +4190,10 @@ "added": "pre-v0.10.1", "deprecated": false }, + "ListFunds.outputs[].reserved_to_block": { + "added": "pre-v0.10.1", + "deprecated": false + }, "ListFunds.outputs[].scriptpubkey": { "added": "pre-v0.10.1", "deprecated": false @@ -4281,6 +4410,34 @@ "added": "pre-v0.10.1", "deprecated": false }, + "ListNodes.nodes[].option_will_fund": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "ListNodes.nodes[].option_will_fund.channel_fee_max_base_msat": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "ListNodes.nodes[].option_will_fund.channel_fee_max_proportional_thousandths": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "ListNodes.nodes[].option_will_fund.compact_lease": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "ListNodes.nodes[].option_will_fund.funding_weight": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "ListNodes.nodes[].option_will_fund.lease_fee_base_msat": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "ListNodes.nodes[].option_will_fund.lease_fee_basis": { + "added": "pre-v0.10.1", + "deprecated": false + }, "ListOffers": { "added": "pre-v0.10.1", "deprecated": null @@ -4453,6 +4610,10 @@ "added": "v23.02", "deprecated": false }, + "ListPeerChannels.channels[].direction": { + "added": "v23.02", + "deprecated": false + }, "ListPeerChannels.channels[].dust_limit_msat": { "added": "v23.02", "deprecated": false @@ -4613,6 +4774,10 @@ "added": "v24.02", "deprecated": false }, + "ListPeerChannels.channels[].last_tx_fee_msat": { + "added": "pre-v0.10.1", + "deprecated": false + }, "ListPeerChannels.channels[].lost_state": { "added": "v24.02", "deprecated": false @@ -6189,6 +6354,58 @@ "added": "pre-v0.10.1", "deprecated": false }, + "Wait.details": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.bolt11": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.bolt12": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.description": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.groupid": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.in_channel": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.in_htlc_id": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.in_msat": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.label": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.out_channel": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.partid": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.payment_hash": { + "added": "pre-v0.10.1", + "deprecated": false + }, + "Wait.details.status": { + "added": "pre-v0.10.1", + "deprecated": false + }, "Wait.indexname": { "added": "pre-v0.10.1", "deprecated": false diff --git a/cln-grpc/proto/node.proto b/cln-grpc/proto/node.proto index 8a775c542f46..809281251e64 100644 --- a/cln-grpc/proto/node.proto +++ b/cln-grpc/proto/node.proto @@ -121,16 +121,17 @@ message GetinfoBinding { // Getinfo.binding[].type enum GetinfoBindingType { LOCAL_SOCKET = 0; - WEBSOCKET = 5; IPV4 = 1; IPV6 = 2; TORV2 = 3; TORV3 = 4; + WEBSOCKET = 5; } GetinfoBindingType item_type = 1; optional string address = 2; optional uint32 port = 3; optional string socket = 4; + optional string subtype = 5; } message ListpeersRequest { @@ -152,11 +153,11 @@ message ListpeersResponse { message ListpeersPeers { bytes id = 1; bool connected = 2; - optional uint32 num_channels = 8; repeated ListpeersPeersLog log = 3; repeated string netaddr = 5; - optional string remote_addr = 7; optional bytes features = 6; + optional string remote_addr = 7; + optional uint32 num_channels = 8; } message ListpeersPeersLog { @@ -203,8 +204,9 @@ message ListfundsOutputs { optional string address = 5; optional bytes redeemscript = 6; ListfundsOutputsStatus status = 7; - bool reserved = 9; optional uint32 blockheight = 8; + bool reserved = 9; + optional uint32 reserved_to_block = 10; } message ListfundsChannels { @@ -215,20 +217,20 @@ message ListfundsChannels { uint32 funding_output = 5; bool connected = 6; ChannelState state = 7; - optional bytes channel_id = 9; optional string short_channel_id = 8; + optional bytes channel_id = 9; } message SendpayRequest { repeated SendpayRoute route = 1; bytes payment_hash = 2; optional string label = 3; - optional Amount amount_msat = 10; optional string bolt11 = 5; optional bytes payment_secret = 6; optional uint64 partid = 7; - optional bytes localinvreqid = 11; optional uint64 groupid = 9; + optional Amount amount_msat = 10; + optional bytes localinvreqid = 11; optional bytes payment_metadata = 12; optional string description = 13; } @@ -239,8 +241,6 @@ message SendpayResponse { PENDING = 0; COMPLETE = 1; } - optional uint64 created_index = 16; - optional uint64 updated_index = 17; uint64 id = 1; optional uint64 groupid = 2; bytes payment_hash = 3; @@ -248,7 +248,6 @@ message SendpayResponse { optional Amount amount_msat = 5; optional bytes destination = 6; uint64 created_at = 7; - optional uint64 completed_at = 15; Amount amount_sent_msat = 8; optional string label = 9; optional uint64 partid = 10; @@ -256,12 +255,15 @@ message SendpayResponse { optional string bolt12 = 12; optional bytes payment_preimage = 13; optional string message = 14; + optional uint64 completed_at = 15; + optional uint64 created_index = 16; + optional uint64 updated_index = 17; } message SendpayRoute { bytes id = 2; - string channel = 4; uint32 delay = 3; + string channel = 4; Amount amount_msat = 5; } @@ -279,7 +281,6 @@ message ListchannelsChannels { bytes source = 1; bytes destination = 2; string short_channel_id = 3; - uint32 direction = 16; bool public = 4; Amount amount_msat = 5; uint32 message_flags = 6; @@ -292,6 +293,7 @@ message ListchannelsChannels { Amount htlc_minimum_msat = 13; optional Amount htlc_maximum_msat = 14; bytes features = 15; + uint32 direction = 16; } message AddgossipRequest { @@ -399,14 +401,14 @@ message CreateinvoiceResponse { CreateinvoiceStatus status = 6; string description = 7; uint64 expires_at = 8; - optional uint64 created_index = 16; optional uint64 pay_index = 9; optional Amount amount_received_msat = 10; optional uint64 paid_at = 11; - optional CreateinvoicePaid_outpoint paid_outpoint = 17; optional bytes payment_preimage = 12; optional bytes local_offer_id = 13; optional string invreq_payer_note = 15; + optional uint64 created_index = 16; + optional CreateinvoicePaid_outpoint paid_outpoint = 17; } message CreateinvoicePaid_outpoint { @@ -423,18 +425,18 @@ message DatastoreRequest { MUST_APPEND = 3; CREATE_OR_APPEND = 4; } - repeated string key = 5; - optional string string = 6; optional bytes hex = 2; optional DatastoreMode mode = 3; optional uint64 generation = 4; + repeated string key = 5; + optional string string = 6; } message DatastoreResponse { - repeated string key = 5; optional uint64 generation = 2; optional bytes hex = 3; optional string string = 4; + repeated string key = 5; } message DatastoreusageRequest { @@ -468,15 +470,15 @@ message CreateonionHops { } message DeldatastoreRequest { - repeated string key = 3; optional uint64 generation = 2; + repeated string key = 3; } message DeldatastoreResponse { - repeated string key = 5; optional uint64 generation = 2; optional bytes hex = 3; optional string string = 4; + repeated string key = 5; } message DelinvoiceRequest { @@ -504,23 +506,27 @@ message DelinvoiceResponse { optional Amount amount_msat = 4; optional string description = 5; bytes payment_hash = 6; - optional uint64 created_index = 12; - optional uint64 updated_index = 13; DelinvoiceStatus status = 7; uint64 expires_at = 8; optional bytes local_offer_id = 9; optional string invreq_payer_note = 11; + optional uint64 created_index = 12; + optional uint64 updated_index = 13; + optional uint64 pay_index = 14; + optional Amount amount_received_msat = 15; + optional uint64 paid_at = 16; + optional bytes payment_preimage = 17; } message InvoiceRequest { - AmountOrAny amount_msat = 10; - string label = 3; string description = 2; - optional uint64 expiry = 7; + string label = 3; repeated string fallbacks = 4; optional bytes preimage = 5; optional uint32 cltv = 6; + optional uint64 expiry = 7; optional bool deschashonly = 9; + AmountOrAny amount_msat = 10; } message InvoiceResponse { @@ -528,12 +534,12 @@ message InvoiceResponse { bytes payment_hash = 2; bytes payment_secret = 3; uint64 expires_at = 4; - optional uint64 created_index = 10; optional string warning_capacity = 5; optional string warning_offline = 6; optional string warning_deadends = 7; optional string warning_private_unused = 8; optional string warning_mpp = 9; + optional uint64 created_index = 10; } message ListdatastoreRequest { @@ -586,14 +592,14 @@ message ListinvoicesInvoices { optional string bolt11 = 7; optional string bolt12 = 8; optional bytes local_offer_id = 9; - optional string invreq_payer_note = 15; - optional uint64 created_index = 16; - optional uint64 updated_index = 17; optional uint64 pay_index = 11; optional Amount amount_received_msat = 12; optional uint64 paid_at = 13; - optional ListinvoicesInvoicesPaid_outpoint paid_outpoint = 18; optional bytes payment_preimage = 14; + optional string invreq_payer_note = 15; + optional uint64 created_index = 16; + optional uint64 updated_index = 17; + optional ListinvoicesInvoicesPaid_outpoint paid_outpoint = 18; } message ListinvoicesInvoicesPaid_outpoint { @@ -609,10 +615,10 @@ message SendonionRequest { repeated bytes shared_secrets = 5; optional uint32 partid = 6; optional string bolt11 = 7; - optional Amount amount_msat = 12; optional bytes destination = 9; - optional bytes localinvreqid = 13; optional uint64 groupid = 11; + optional Amount amount_msat = 12; + optional bytes localinvreqid = 13; optional string description = 14; } @@ -622,7 +628,6 @@ message SendonionResponse { PENDING = 0; COMPLETE = 1; } - optional uint64 created_index = 14; uint64 id = 1; bytes payment_hash = 2; SendonionStatus status = 3; @@ -633,10 +638,11 @@ message SendonionResponse { optional string label = 8; optional string bolt11 = 9; optional string bolt12 = 10; - optional uint64 partid = 13; - optional uint64 updated_index = 15; optional bytes payment_preimage = 11; optional string message = 12; + optional uint64 partid = 13; + optional uint64 created_index = 14; + optional uint64 updated_index = 15; } message SendonionFirst_hop { @@ -676,12 +682,9 @@ message ListsendpaysPayments { FAILED = 1; COMPLETE = 2; } - optional uint64 created_index = 16; uint64 id = 1; uint64 groupid = 2; - optional uint64 partid = 15; bytes payment_hash = 3; - optional uint64 updated_index = 17; ListsendpaysPaymentsStatus status = 4; optional Amount amount_msat = 5; optional bytes destination = 6; @@ -689,11 +692,14 @@ message ListsendpaysPayments { Amount amount_sent_msat = 8; optional string label = 9; optional string bolt11 = 10; - optional string description = 14; optional string bolt12 = 11; - optional uint64 completed_at = 18; optional bytes payment_preimage = 12; optional bytes erroronion = 13; + optional string description = 14; + optional uint64 partid = 15; + optional uint64 created_index = 16; + optional uint64 updated_index = 17; + optional uint64 completed_at = 18; } message ListtransactionsRequest { @@ -722,23 +728,23 @@ message ListtransactionsTransactionsInputs { message ListtransactionsTransactionsOutputs { uint32 index = 1; - Amount amount_msat = 6; bytes scriptPubKey = 3; + Amount amount_msat = 6; } message PayRequest { string bolt11 = 1; - optional Amount amount_msat = 13; optional string label = 3; - optional double riskfactor = 8; optional double maxfeepercent = 4; optional uint32 retry_for = 5; optional uint32 maxdelay = 6; optional Amount exemptfee = 7; - optional bytes localinvreqid = 14; + optional double riskfactor = 8; repeated string exclude = 10; optional Amount maxfee = 11; optional string description = 12; + optional Amount amount_msat = 13; + optional bytes localinvreqid = 14; optional Amount partial_msat = 15; } @@ -775,6 +781,16 @@ message ListnodesNodes { optional bytes color = 4; optional bytes features = 5; repeated ListnodesNodesAddresses addresses = 6; + optional ListnodesNodesOption_will_fund option_will_fund = 7; +} + +message ListnodesNodesOption_will_fund { + Amount lease_fee_base_msat = 1; + uint32 lease_fee_basis = 2; + uint32 funding_weight = 3; + Amount channel_fee_max_base_msat = 4; + uint32 channel_fee_max_proportional_thousandths = 5; + bytes compact_lease = 6; } message ListnodesNodesAddresses { @@ -810,13 +826,13 @@ message WaitanyinvoiceResponse { optional Amount amount_msat = 6; optional string bolt11 = 7; optional string bolt12 = 8; - optional uint64 created_index = 13; - optional uint64 updated_index = 14; optional uint64 pay_index = 9; optional Amount amount_received_msat = 10; optional uint64 paid_at = 11; - optional WaitanyinvoicePaid_outpoint paid_outpoint = 15; optional bytes payment_preimage = 12; + optional uint64 created_index = 13; + optional uint64 updated_index = 14; + optional WaitanyinvoicePaid_outpoint paid_outpoint = 15; } message WaitanyinvoicePaid_outpoint { @@ -842,13 +858,13 @@ message WaitinvoiceResponse { optional Amount amount_msat = 6; optional string bolt11 = 7; optional string bolt12 = 8; - optional uint64 created_index = 13; - optional uint64 updated_index = 14; optional uint64 pay_index = 9; optional Amount amount_received_msat = 10; optional uint64 paid_at = 11; - optional WaitinvoicePaid_outpoint paid_outpoint = 15; optional bytes payment_preimage = 12; + optional uint64 created_index = 13; + optional uint64 updated_index = 14; + optional WaitinvoicePaid_outpoint paid_outpoint = 15; } message WaitinvoicePaid_outpoint { @@ -858,8 +874,8 @@ message WaitinvoicePaid_outpoint { message WaitsendpayRequest { bytes payment_hash = 1; - optional uint32 timeout = 3; optional uint64 partid = 2; + optional uint32 timeout = 3; optional uint64 groupid = 4; } @@ -868,7 +884,6 @@ message WaitsendpayResponse { enum WaitsendpayStatus { COMPLETE = 0; } - optional uint64 created_index = 15; uint64 id = 1; optional uint64 groupid = 2; bytes payment_hash = 3; @@ -876,37 +891,38 @@ message WaitsendpayResponse { optional Amount amount_msat = 5; optional bytes destination = 6; uint64 created_at = 7; - optional uint64 updated_index = 16; - optional double completed_at = 14; Amount amount_sent_msat = 8; optional string label = 9; optional uint64 partid = 10; optional string bolt11 = 11; optional string bolt12 = 12; optional bytes payment_preimage = 13; + optional double completed_at = 14; + optional uint64 created_index = 15; + optional uint64 updated_index = 16; } message NewaddrRequest { // NewAddr.addresstype enum NewaddrAddresstype { BECH32 = 0; - P2TR = 3; ALL = 2; + P2TR = 3; } optional NewaddrAddresstype addresstype = 1; } message NewaddrResponse { - optional string p2tr = 3; optional string bech32 = 1; + optional string p2tr = 3; } message WithdrawRequest { string destination = 1; AmountOrAll satoshi = 2; - optional Feerate feerate = 5; optional uint32 minconf = 3; repeated Outpoint utxos = 4; + optional Feerate feerate = 5; } message WithdrawResponse { @@ -917,7 +933,6 @@ message WithdrawResponse { message KeysendRequest { bytes destination = 1; - Amount amount_msat = 10; optional string label = 3; optional double maxfeepercent = 4; optional uint32 retry_for = 5; @@ -925,6 +940,7 @@ message KeysendRequest { optional Amount exemptfee = 7; optional RoutehintList routehints = 8; optional TlvStream extratlvs = 9; + Amount amount_msat = 10; } message KeysendResponse { @@ -998,9 +1014,9 @@ message UtxopsbtRequest { uint32 startweight = 3; repeated Outpoint utxos = 4; optional uint32 reserve = 5; - optional bool reservedok = 8; optional uint32 locktime = 6; optional uint32 min_witness_weight = 7; + optional bool reservedok = 8; optional bool excess_as_change = 9; optional bool opening_anchor_channel = 10; } @@ -1032,10 +1048,10 @@ message TxdiscardResponse { } message TxprepareRequest { - repeated OutputDesc outputs = 5; optional Feerate feerate = 2; optional uint32 minconf = 3; repeated Outpoint utxos = 4; + repeated OutputDesc outputs = 5; } message TxprepareResponse { @@ -1082,12 +1098,8 @@ message ListpeerchannelsChannels { } optional bytes peer_id = 1; optional bool peer_connected = 2; - optional bool reestablished = 58; optional ListpeerchannelsChannelsState state = 3; optional bytes scratch_txid = 4; - optional ListpeerchannelsChannelsUpdates updates = 55; - optional bool ignore_fee_limits = 54; - optional bool lost_state = 57; optional ListpeerchannelsChannelsFeerate feerate = 6; optional string owner = 7; optional string short_channel_id = 8; @@ -1132,9 +1144,15 @@ message ListpeerchannelsChannels { optional Amount out_offered_msat = 49; optional uint64 out_payments_fulfilled = 50; optional Amount out_fulfilled_msat = 51; - optional uint64 last_stable_connection = 56; repeated ListpeerchannelsChannelsHtlcs htlcs = 52; optional string close_to_addr = 53; + optional bool ignore_fee_limits = 54; + optional ListpeerchannelsChannelsUpdates updates = 55; + optional uint64 last_stable_connection = 56; + optional bool lost_state = 57; + optional bool reestablished = 58; + optional Amount last_tx_fee_msat = 59; + optional uint32 direction = 60; } message ListpeerchannelsChannelsUpdates { @@ -1168,9 +1186,9 @@ message ListpeerchannelsChannelsInflight { optional uint32 funding_outnum = 2; optional string feerate = 3; optional Amount total_funding_msat = 4; - optional sint64 splice_amount = 7; optional Amount our_funding_msat = 5; optional bytes scratch_txid = 6; + optional sint64 splice_amount = 7; } message ListpeerchannelsChannelsFunding { @@ -1377,6 +1395,11 @@ message DecodeResponse { optional string warning_rune_invalid_utf8 = 74; optional bytes hex = 75; optional bytes decrypted = 76; + optional string signature = 77; + optional string currency = 78; + optional Amount amount_msat = 79; + optional string description = 80; + optional bytes features = 81; } message DecodeOffer_paths { @@ -1402,7 +1425,18 @@ message DecodeInvoice_fallbacks { } message DecodeFallbacks { + // Decode.fallbacks[].type + enum DecodeFallbacksType { + P2PKH = 0; + P2SH = 1; + P2WPKH = 2; + P2WSH = 3; + P2TR = 4; + } optional string warning_invoice_fallbacks_version_invalid = 1; + DecodeFallbacksType item_type = 2; + optional string addr = 3; + bytes hex = 4; } message DecodeExtra { @@ -1442,15 +1476,15 @@ message FeeratesResponse { message FeeratesPerkb { uint32 min_acceptable = 1; uint32 max_acceptable = 2; - optional uint32 floor = 10; - repeated FeeratesPerkbEstimates estimates = 9; optional uint32 opening = 3; optional uint32 mutual_close = 4; optional uint32 unilateral_close = 5; - optional uint32 unilateral_anchor_close = 11; optional uint32 delayed_to_us = 6; optional uint32 htlc_resolution = 7; optional uint32 penalty = 8; + repeated FeeratesPerkbEstimates estimates = 9; + optional uint32 floor = 10; + optional uint32 unilateral_anchor_close = 11; } message FeeratesPerkbEstimates { @@ -1462,15 +1496,15 @@ message FeeratesPerkbEstimates { message FeeratesPerkw { uint32 min_acceptable = 1; uint32 max_acceptable = 2; - optional uint32 floor = 10; - repeated FeeratesPerkwEstimates estimates = 9; optional uint32 opening = 3; optional uint32 mutual_close = 4; optional uint32 unilateral_close = 5; - optional uint32 unilateral_anchor_close = 11; optional uint32 delayed_to_us = 6; optional uint32 htlc_resolution = 7; optional uint32 penalty = 8; + repeated FeeratesPerkwEstimates estimates = 9; + optional uint32 floor = 10; + optional uint32 unilateral_anchor_close = 11; } message FeeratesPerkwEstimates { @@ -1483,9 +1517,9 @@ message FeeratesOnchain_fee_estimates { uint64 opening_channel_satoshis = 1; uint64 mutual_close_satoshis = 2; uint64 unilateral_close_satoshis = 3; - optional uint64 unilateral_close_nonanchor_satoshis = 6; uint64 htlc_timeout_satoshis = 4; uint64 htlc_success_satoshis = 5; + optional uint64 unilateral_close_nonanchor_satoshis = 6; } message FetchinvoiceRequest { @@ -1522,15 +1556,15 @@ message FetchinvoiceNext_period { } message FundchannelRequest { - bytes id = 9; AmountOrAll amount = 1; optional Feerate feerate = 2; optional bool announce = 3; - optional uint32 minconf = 10; optional Amount push_msat = 5; optional string close_to = 6; optional Amount request_amt = 7; optional string compact_lease = 8; + bytes id = 9; + optional uint32 minconf = 10; repeated Outpoint utxos = 11; optional uint32 mindepth = 12; optional Amount reserve = 13; @@ -1542,9 +1576,9 @@ message FundchannelResponse { bytes txid = 2; uint32 outnum = 3; bytes channel_id = 4; - optional FundchannelChannel_type channel_type = 7; optional bytes close_to = 5; optional uint32 mindepth = 6; + optional FundchannelChannel_type channel_type = 7; } message FundchannelChannel_type { @@ -1554,13 +1588,13 @@ message FundchannelChannel_type { message GetrouteRequest { bytes id = 1; - Amount amount_msat = 9; uint64 riskfactor = 3; optional uint32 cltv = 4; optional bytes fromid = 5; optional uint32 fuzzpercent = 6; repeated string exclude = 7; optional uint32 maxhops = 8; + Amount amount_msat = 9; } message GetrouteResponse { @@ -1618,18 +1652,21 @@ message ListforwardsForwards { LEGACY = 0; TLV = 1; } - optional uint64 created_index = 12; string in_channel = 1; - optional uint64 in_htlc_id = 10; Amount in_msat = 2; ListforwardsForwardsStatus status = 3; double received_time = 4; optional string out_channel = 5; - optional uint64 out_htlc_id = 11; - optional uint64 updated_index = 13; - optional ListforwardsForwardsStyle style = 9; optional Amount fee_msat = 7; optional Amount out_msat = 8; + optional ListforwardsForwardsStyle style = 9; + optional uint64 in_htlc_id = 10; + optional uint64 out_htlc_id = 11; + optional uint64 created_index = 12; + optional uint64 updated_index = 13; + optional double resolved_time = 14; + optional uint32 failcode = 15; + optional string failreason = 16; } message ListoffersRequest { @@ -1677,16 +1714,16 @@ message ListpaysPays { ListpaysPaysStatus status = 2; optional bytes destination = 3; uint64 created_at = 4; - optional uint64 completed_at = 12; optional string label = 5; optional string bolt11 = 6; - optional string description = 11; optional string bolt12 = 7; optional Amount amount_msat = 8; optional Amount amount_sent_msat = 9; + optional bytes erroronion = 10; + optional string description = 11; + optional uint64 completed_at = 12; optional bytes preimage = 13; optional uint64 number_of_parts = 14; - optional bytes erroronion = 10; } message ListhtlcsRequest { @@ -1775,11 +1812,11 @@ message SetchannelChannels { optional string short_channel_id = 3; Amount fee_base_msat = 4; uint32 fee_proportional_millionths = 5; - optional bool ignore_fee_limits = 10; Amount minimum_htlc_out_msat = 6; optional string warning_htlcmin_too_low = 7; Amount maximum_htlc_out_msat = 8; optional string warning_htlcmax_too_high = 9; + optional bool ignore_fee_limits = 10; } message SigninvoiceRequest { @@ -1838,6 +1875,34 @@ message WaitResponse { optional uint64 created = 2; optional uint64 updated = 3; optional uint64 deleted = 4; + optional WaitDetails details = 5; +} + +message WaitDetails { + // Wait.details.status + enum WaitDetailsStatus { + UNPAID = 0; + PAID = 1; + EXPIRED = 2; + PENDING = 3; + FAILED = 4; + COMPLETE = 5; + OFFERED = 6; + SETTLED = 7; + LOCAL_FAILED = 8; + } + optional WaitDetailsStatus status = 1; + optional string label = 2; + optional string description = 3; + optional string bolt11 = 4; + optional string bolt12 = 5; + optional uint64 partid = 6; + optional uint64 groupid = 7; + optional bytes payment_hash = 8; + optional string in_channel = 9; + optional uint64 in_htlc_id = 10; + optional Amount in_msat = 11; + optional string out_channel = 12; } message StopRequest { diff --git a/cln-grpc/src/convert.rs b/cln-grpc/src/convert.rs index e1177d62186c..aa632f936092 100644 --- a/cln-grpc/src/convert.rs +++ b/cln-grpc/src/convert.rs @@ -12,25 +12,13 @@ use bitcoin::hashes::sha256::Hash as Sha256; use bitcoin::hashes::Hash; use cln_rpc::primitives::PublicKey; -#[allow(unused_variables)] -impl From for pb::GetinfoOurFeatures { - fn from(c: responses::GetinfoOur_features) -> Self { - Self { - init: hex::decode(&c.init).unwrap(), // Rule #2 for type hex - node: hex::decode(&c.node).unwrap(), // Rule #2 for type hex - channel: hex::decode(&c.channel).unwrap(), // Rule #2 for type hex - invoice: hex::decode(&c.invoice).unwrap(), // Rule #2 for type hex - } - } -} - #[allow(unused_variables)] impl From for pb::GetinfoAddress { fn from(c: responses::GetinfoAddress) -> Self { Self { - item_type: c.item_type as i32, - port: c.port.into(), // Rule #2 for type u16 address: c.address, // Rule #2 for type string? + port: c.port.into(), // Rule #2 for type u16 + item_type: c.item_type as i32, } } } @@ -39,10 +27,23 @@ impl From for pb::GetinfoAddress { impl From for pb::GetinfoBinding { fn from(c: responses::GetinfoBinding) -> Self { Self { - item_type: c.item_type as i32, 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? + subtype: c.subtype, // Rule #2 for type string? + item_type: c.item_type as i32, + } + } +} + +#[allow(unused_variables)] +impl From for pb::GetinfoOurFeatures { + fn from(c: responses::GetinfoOur_features) -> Self { + Self { + channel: hex::decode(&c.channel).unwrap(), // Rule #2 for type hex + init: hex::decode(&c.init).unwrap(), // Rule #2 for type hex + invoice: hex::decode(&c.invoice).unwrap(), // Rule #2 for type hex + node: hex::decode(&c.node).unwrap(), // Rule #2 for type hex } } } @@ -51,23 +52,23 @@ impl From for pb::GetinfoBinding { impl From for pb::GetinfoResponse { fn from(c: responses::GetinfoResponse) -> Self { Self { - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey + // Field: Getinfo.address[] + address: c.address.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 alias: c.alias, // Rule #2 for type string? + // Field: Getinfo.binding[] + binding: c.binding.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + blockheight: c.blockheight, // Rule #2 for type u32 color: hex::decode(&c.color).unwrap(), // Rule #2 for type hex - num_peers: c.num_peers, // Rule #2 for type u32 - num_pending_channels: c.num_pending_channels, // Rule #2 for type u32 + fees_collected_msat: Some(c.fees_collected_msat.into()), // Rule #2 for type msat + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey + lightning_dir: c.lightning_dir, // Rule #2 for type string + network: c.network, // Rule #2 for type string num_active_channels: c.num_active_channels, // Rule #2 for type u32 num_inactive_channels: c.num_inactive_channels, // Rule #2 for type u32 - version: c.version, // Rule #2 for type string - lightning_dir: c.lightning_dir, // Rule #2 for type string + num_peers: c.num_peers, // Rule #2 for type u32 + num_pending_channels: c.num_pending_channels, // Rule #2 for type u32 our_features: c.our_features.map(|v| v.into()), - blockheight: c.blockheight, // Rule #2 for type u32 - network: c.network, // Rule #2 for type string - fees_collected_msat: Some(c.fees_collected_msat.into()), // Rule #2 for type msat - // Field: Getinfo.address[] - address: c.address.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - // Field: Getinfo.binding[] - binding: c.binding.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + version: c.version, // Rule #2 for type string warning_bitcoind_sync: c.warning_bitcoind_sync, // Rule #2 for type string? warning_lightningd_sync: c.warning_lightningd_sync, // Rule #2 for type string? } @@ -78,13 +79,13 @@ impl From for pb::GetinfoResponse { impl From for pb::ListpeersPeersLog { fn from(c: responses::ListpeersPeersLog) -> Self { Self { - item_type: c.item_type as i32, - num_skipped: c.num_skipped, // Rule #2 for type u32? - time: c.time, // Rule #2 for type string? - source: c.source, // Rule #2 for type string? + data: c.data.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? log: c.log, // Rule #2 for type string? node_id: c.node_id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - data: c.data.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + num_skipped: c.num_skipped, // Rule #2 for type u32? + source: c.source, // Rule #2 for type string? + time: c.time, // Rule #2 for type string? + item_type: c.item_type as i32, } } } @@ -93,15 +94,15 @@ impl From for pb::ListpeersPeersLog { impl From for pb::ListpeersPeers { fn from(c: responses::ListpeersPeers) -> Self { Self { - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey connected: c.connected, // Rule #2 for type boolean - num_channels: c.num_channels, // Rule #2 for type u32? + features: c.features.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey // Field: ListPeers.peers[].log[] log: c.log.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 // Field: ListPeers.peers[].netaddr[] netaddr: c.netaddr.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + num_channels: c.num_channels, // Rule #2 for type u32? remote_addr: c.remote_addr, // Rule #2 for type string? - features: c.features.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? } } } @@ -117,35 +118,36 @@ impl From for pb::ListpeersResponse { } #[allow(unused_variables)] -impl From for pb::ListfundsOutputs { - fn from(c: responses::ListfundsOutputs) -> Self { +impl From for pb::ListfundsChannels { + fn from(c: responses::ListfundsChannels) -> Self { Self { - txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid - output: c.output, // Rule #2 for type u32 amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat - scriptpubkey: hex::decode(&c.scriptpubkey).unwrap(), // Rule #2 for type hex - address: c.address, // Rule #2 for type string? - redeemscript: c.redeemscript.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - status: c.status as i32, - reserved: c.reserved, // Rule #2 for type boolean - blockheight: c.blockheight, // Rule #2 for type u32? + channel_id: c.channel_id.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? + connected: c.connected, // Rule #2 for type boolean + funding_output: c.funding_output, // Rule #2 for type u32 + funding_txid: hex::decode(&c.funding_txid).unwrap(), // Rule #2 for type txid + our_amount_msat: Some(c.our_amount_msat.into()), // Rule #2 for type msat + peer_id: c.peer_id.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? + state: c.state as i32, } } } #[allow(unused_variables)] -impl From for pb::ListfundsChannels { - fn from(c: responses::ListfundsChannels) -> Self { +impl From for pb::ListfundsOutputs { + fn from(c: responses::ListfundsOutputs) -> Self { Self { - peer_id: c.peer_id.serialize().to_vec(), // Rule #2 for type pubkey - our_amount_msat: Some(c.our_amount_msat.into()), // Rule #2 for type msat + address: c.address, // Rule #2 for type string? amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat - funding_txid: hex::decode(&c.funding_txid).unwrap(), // Rule #2 for type txid - funding_output: c.funding_output, // Rule #2 for type u32 - connected: c.connected, // Rule #2 for type boolean - state: c.state as i32, - channel_id: c.channel_id.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? - short_channel_id: c.short_channel_id.map(|v| v.to_string()), // Rule #2 for type short_channel_id? + blockheight: c.blockheight, // Rule #2 for type u32? + output: c.output, // Rule #2 for type u32 + redeemscript: c.redeemscript.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + reserved: c.reserved, // Rule #2 for type boolean + reserved_to_block: c.reserved_to_block, // Rule #2 for type u32? + scriptpubkey: hex::decode(&c.scriptpubkey).unwrap(), // Rule #2 for type hex + status: c.status as i32, + txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid } } } @@ -154,10 +156,10 @@ impl From for pb::ListfundsChannels { impl From for pb::ListfundsResponse { fn from(c: responses::ListfundsResponse) -> Self { Self { - // Field: ListFunds.outputs[] - outputs: c.outputs.into_iter().map(|i| i.into()).collect(), // Rule #3 for type ListfundsOutputs // Field: ListFunds.channels[] channels: c.channels.into_iter().map(|i| i.into()).collect(), // Rule #3 for type ListfundsChannels + // Field: ListFunds.outputs[] + outputs: c.outputs.into_iter().map(|i| i.into()).collect(), // Rule #3 for type ListfundsOutputs } } } @@ -166,23 +168,23 @@ impl From for pb::ListfundsResponse { impl From for pb::SendpayResponse { fn from(c: responses::SendpayResponse) -> Self { Self { - created_index: c.created_index, // Rule #2 for type u64? - updated_index: c.updated_index, // Rule #2 for type u64? - id: c.id, // Rule #2 for type u64 - groupid: c.groupid, // Rule #2 for type u64? - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - status: c.status as i32, amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? - destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - created_at: c.created_at, // Rule #2 for type u64 - completed_at: c.completed_at, // Rule #2 for type u64? amount_sent_msat: Some(c.amount_sent_msat.into()), // Rule #2 for type msat - label: c.label, // Rule #2 for type string? - partid: c.partid, // Rule #2 for type u64? bolt11: c.bolt11, // Rule #2 for type string? bolt12: c.bolt12, // Rule #2 for type string? - payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? + 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? + destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + groupid: c.groupid, // Rule #2 for type u64? + id: c.id, // Rule #2 for type u64 + label: c.label, // Rule #2 for type string? message: c.message, // Rule #2 for type string? + partid: c.partid, // Rule #2 for type u64? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash + payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? + status: c.status as i32, + updated_index: c.updated_index, // Rule #2 for type u64? } } } @@ -191,22 +193,22 @@ impl From for pb::SendpayResponse { impl From for pb::ListchannelsChannels { fn from(c: responses::ListchannelsChannels) -> Self { Self { - source: c.source.serialize().to_vec(), // Rule #2 for type pubkey - 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 - direction: c.direction, // Rule #2 for type u32 - public: c.public, // Rule #2 for type boolean - amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat - message_flags: c.message_flags.into(), // Rule #2 for type u8 - channel_flags: c.channel_flags.into(), // Rule #2 for type u8 active: c.active, // Rule #2 for type boolean - last_update: c.last_update, // Rule #2 for type u32 + amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat base_fee_millisatoshi: c.base_fee_millisatoshi, // Rule #2 for type u32 - fee_per_millionth: c.fee_per_millionth, // Rule #2 for type u32 + channel_flags: c.channel_flags.into(), // Rule #2 for type u8 delay: c.delay, // Rule #2 for type u32 - htlc_minimum_msat: Some(c.htlc_minimum_msat.into()), // Rule #2 for type msat - htlc_maximum_msat: c.htlc_maximum_msat.map(|f| f.into()), // Rule #2 for type msat? + destination: c.destination.serialize().to_vec(), // Rule #2 for type pubkey + direction: c.direction, // Rule #2 for type u32 features: hex::decode(&c.features).unwrap(), // Rule #2 for type hex + fee_per_millionth: c.fee_per_millionth, // Rule #2 for type u32 + htlc_maximum_msat: c.htlc_maximum_msat.map(|f| f.into()), // Rule #2 for type msat? + htlc_minimum_msat: Some(c.htlc_minimum_msat.into()), // Rule #2 for type msat + last_update: c.last_update, // Rule #2 for type u32 + message_flags: c.message_flags.into(), // Rule #2 for type u8 + public: c.public, // Rule #2 for type boolean + 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 } } } @@ -233,9 +235,9 @@ impl From for pb::AddgossipResponse { impl From for pb::AutocleaninvoiceResponse { fn from(c: responses::AutocleaninvoiceResponse) -> Self { Self { + cycle_seconds: c.cycle_seconds, // Rule #2 for type u64? enabled: c.enabled, // Rule #2 for type boolean expired_by: c.expired_by, // Rule #2 for type u64? - cycle_seconds: c.cycle_seconds, // Rule #2 for type u64? } } } @@ -244,8 +246,8 @@ impl From for pb::AutocleaninvoiceResponse impl From for pb::CheckmessageResponse { fn from(c: responses::CheckmessageResponse) -> Self { Self { - verified: c.verified, // Rule #2 for type boolean pubkey: c.pubkey.serialize().to_vec(), // Rule #2 for type pubkey + verified: c.verified, // Rule #2 for type boolean } } } @@ -254,9 +256,9 @@ impl From for pb::CheckmessageResponse { impl From for pb::CloseResponse { fn from(c: responses::CloseResponse) -> Self { Self { - item_type: c.item_type as i32, tx: c.tx.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? + item_type: c.item_type as i32, } } } @@ -265,10 +267,10 @@ impl From for pb::CloseResponse { impl From for pb::ConnectAddress { fn from(c: responses::ConnectAddress) -> Self { Self { - item_type: c.item_type as i32, - socket: c.socket, // Rule #2 for type string? 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, } } } @@ -277,10 +279,10 @@ impl From for pb::ConnectAddress { impl From for pb::ConnectResponse { fn from(c: responses::ConnectResponse) -> Self { Self { - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey - features: hex::decode(&c.features).unwrap(), // Rule #2 for type hex - direction: c.direction as i32, address: Some(c.address.into()), + direction: c.direction as i32, + features: hex::decode(&c.features).unwrap(), // Rule #2 for type hex + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey } } } @@ -289,8 +291,8 @@ impl From for pb::ConnectResponse { impl From for pb::CreateinvoicePaidOutpoint { fn from(c: responses::CreateinvoicePaid_outpoint) -> Self { Self { - txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? outnum: c.outnum, // Rule #2 for type u32? + txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? } } } @@ -299,22 +301,22 @@ impl From for pb::CreateinvoicePaidOutpoi impl From for pb::CreateinvoiceResponse { fn from(c: responses::CreateinvoiceResponse) -> Self { Self { - label: c.label, // Rule #2 for type string + amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + amount_received_msat: c.amount_received_msat.map(|f| f.into()), // Rule #2 for type msat? bolt11: c.bolt11, // Rule #2 for type string? bolt12: c.bolt12, // Rule #2 for type string? - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? - status: c.status as i32, + created_index: c.created_index, // Rule #2 for type u64? description: c.description, // Rule #2 for type string expires_at: c.expires_at, // Rule #2 for type u64 - created_index: c.created_index, // Rule #2 for type u64? - pay_index: c.pay_index, // Rule #2 for type u64? - amount_received_msat: c.amount_received_msat.map(|f| f.into()), // Rule #2 for type msat? + invreq_payer_note: c.invreq_payer_note, // Rule #2 for type string? + label: c.label, // Rule #2 for type string + local_offer_id: c.local_offer_id.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? paid_at: c.paid_at, // Rule #2 for type u64? paid_outpoint: c.paid_outpoint.map(|v| v.into()), + pay_index: c.pay_index, // Rule #2 for type u64? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? - local_offer_id: c.local_offer_id.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - invreq_payer_note: c.invreq_payer_note, // Rule #2 for type string? + status: c.status as i32, } } } @@ -323,10 +325,10 @@ impl From for pb::CreateinvoiceResponse { impl From for pb::DatastoreResponse { fn from(c: responses::DatastoreResponse) -> Self { Self { - // Field: Datastore.key - key: c.key.into_iter().map(|i| i.into()).collect(), // Rule #3 for type string 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 string: c.string, // Rule #2 for type string? } } @@ -366,10 +368,10 @@ impl From for pb::CreateonionResponse { impl From for pb::DeldatastoreResponse { fn from(c: responses::DeldatastoreResponse) -> Self { Self { - // Field: DelDatastore.key - key: c.key.into_iter().map(|i| i.into()).collect(), // Rule #3 for type string generation: c.generation, // Rule #2 for type u64? hex: c.hex.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + // Field: DelDatastore.key + key: c.key.into_iter().map(|i| i.into()).collect(), // Rule #3 for type string string: c.string, // Rule #2 for type string? } } @@ -379,18 +381,22 @@ impl From for pb::DeldatastoreResponse { impl From for pb::DelinvoiceResponse { fn from(c: responses::DelinvoiceResponse) -> Self { Self { - label: c.label, // Rule #2 for type string + amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + amount_received_msat: c.amount_received_msat.map(|f| f.into()), // Rule #2 for type msat? bolt11: c.bolt11, // Rule #2 for type string? bolt12: c.bolt12, // Rule #2 for type string? - amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? - description: c.description, // Rule #2 for type string? - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash created_index: c.created_index, // Rule #2 for type u64? - updated_index: c.updated_index, // Rule #2 for type u64? - status: c.status as i32, + description: c.description, // Rule #2 for type string? expires_at: c.expires_at, // Rule #2 for type u64 - local_offer_id: c.local_offer_id.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? invreq_payer_note: c.invreq_payer_note, // Rule #2 for type string? + label: c.label, // Rule #2 for type string + local_offer_id: c.local_offer_id.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + paid_at: c.paid_at, // Rule #2 for type u64? + pay_index: c.pay_index, // Rule #2 for type u64? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash + payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? + status: c.status as i32, + updated_index: c.updated_index, // Rule #2 for type u64? } } } @@ -400,15 +406,15 @@ impl From for pb::InvoiceResponse { fn from(c: responses::InvoiceResponse) -> Self { Self { bolt11: c.bolt11, // Rule #2 for type string + created_index: c.created_index, // Rule #2 for type u64? + expires_at: c.expires_at, // Rule #2 for type u64 payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash payment_secret: c.payment_secret.to_vec(), // Rule #2 for type secret - expires_at: c.expires_at, // Rule #2 for type u64 - created_index: c.created_index, // Rule #2 for type u64? warning_capacity: c.warning_capacity, // Rule #2 for type string? - warning_offline: c.warning_offline, // Rule #2 for type string? warning_deadends: c.warning_deadends, // Rule #2 for type string? - warning_private_unused: c.warning_private_unused, // Rule #2 for type string? warning_mpp: c.warning_mpp, // Rule #2 for type string? + warning_offline: c.warning_offline, // Rule #2 for type string? + warning_private_unused: c.warning_private_unused, // Rule #2 for type string? } } } @@ -417,10 +423,10 @@ impl From for pb::InvoiceResponse { impl From for pb::ListdatastoreDatastore { fn from(c: responses::ListdatastoreDatastore) -> Self { Self { - // Field: ListDatastore.datastore[].key[] - key: c.key.into_iter().map(|i| i.into()).collect(), // Rule #3 for type string generation: c.generation, // Rule #2 for type u64? hex: c.hex.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + // Field: ListDatastore.datastore[].key[] + key: c.key.into_iter().map(|i| i.into()).collect(), // Rule #3 for type string string: c.string, // Rule #2 for type string? } } @@ -440,8 +446,8 @@ impl From for pb::ListdatastoreResponse { impl From for pb::ListinvoicesInvoicesPaidOutpoint { fn from(c: responses::ListinvoicesInvoicesPaid_outpoint) -> Self { Self { - txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? outnum: c.outnum, // Rule #2 for type u32? + txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? } } } @@ -450,23 +456,23 @@ impl From for pb::ListinvoicesInvo impl From for pb::ListinvoicesInvoices { fn from(c: responses::ListinvoicesInvoices) -> Self { Self { - label: c.label, // Rule #2 for type string - description: c.description, // Rule #2 for type string? - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - status: c.status as i32, - expires_at: c.expires_at, // Rule #2 for type u64 amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + amount_received_msat: c.amount_received_msat.map(|f| f.into()), // Rule #2 for type msat? bolt11: c.bolt11, // Rule #2 for type string? bolt12: c.bolt12, // Rule #2 for type string? - local_offer_id: c.local_offer_id.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? - invreq_payer_note: c.invreq_payer_note, // Rule #2 for type string? created_index: c.created_index, // Rule #2 for type u64? - updated_index: c.updated_index, // Rule #2 for type u64? - pay_index: c.pay_index, // Rule #2 for type u64? - amount_received_msat: c.amount_received_msat.map(|f| f.into()), // Rule #2 for type msat? + description: c.description, // Rule #2 for type string? + expires_at: c.expires_at, // Rule #2 for type u64 + invreq_payer_note: c.invreq_payer_note, // Rule #2 for type string? + label: c.label, // Rule #2 for type string + local_offer_id: c.local_offer_id.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? paid_at: c.paid_at, // Rule #2 for type u64? paid_outpoint: c.paid_outpoint.map(|v| v.into()), + pay_index: c.pay_index, // Rule #2 for type u64? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? + status: c.status as i32, + updated_index: c.updated_index, // Rule #2 for type u64? } } } @@ -485,21 +491,21 @@ impl From for pb::ListinvoicesResponse { impl From for pb::SendonionResponse { fn from(c: responses::SendonionResponse) -> Self { Self { - created_index: c.created_index, // Rule #2 for type u64? - id: c.id, // Rule #2 for type u64 - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - status: c.status as i32, amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? - destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - created_at: c.created_at, // Rule #2 for type u64 amount_sent_msat: Some(c.amount_sent_msat.into()), // Rule #2 for type msat - label: c.label, // Rule #2 for type string? bolt11: c.bolt11, // Rule #2 for type string? bolt12: c.bolt12, // Rule #2 for type string? + created_at: c.created_at, // Rule #2 for type u64 + created_index: c.created_index, // Rule #2 for type u64? + destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + id: c.id, // Rule #2 for type u64 + label: c.label, // Rule #2 for type string? + message: c.message, // Rule #2 for type string? partid: c.partid, // Rule #2 for type u64? - updated_index: c.updated_index, // Rule #2 for type u64? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? - message: c.message, // Rule #2 for type string? + status: c.status as i32, + updated_index: c.updated_index, // Rule #2 for type u64? } } } @@ -508,24 +514,24 @@ impl From for pb::SendonionResponse { impl From for pb::ListsendpaysPayments { fn from(c: responses::ListsendpaysPayments) -> Self { Self { - created_index: c.created_index, // Rule #2 for type u64? - id: c.id, // Rule #2 for type u64 - groupid: c.groupid, // Rule #2 for type u64 - partid: c.partid, // Rule #2 for type u64? - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - updated_index: c.updated_index, // Rule #2 for type u64? - status: c.status as i32, amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? - destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - created_at: c.created_at, // Rule #2 for type u64 amount_sent_msat: Some(c.amount_sent_msat.into()), // Rule #2 for type msat - label: c.label, // Rule #2 for type string? bolt11: c.bolt11, // Rule #2 for type string? - description: c.description, // Rule #2 for type string? bolt12: c.bolt12, // Rule #2 for type string? completed_at: c.completed_at, // Rule #2 for type u64? - payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? + created_at: c.created_at, // Rule #2 for type u64 + created_index: c.created_index, // Rule #2 for type u64? + description: c.description, // Rule #2 for type string? + destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? erroronion: c.erroronion.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + groupid: c.groupid, // Rule #2 for type u64 + id: c.id, // Rule #2 for type u64 + label: c.label, // Rule #2 for type string? + partid: c.partid, // Rule #2 for type u64? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash + payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? + status: c.status as i32, + updated_index: c.updated_index, // Rule #2 for type u64? } } } @@ -544,9 +550,9 @@ impl From for pb::ListsendpaysResponse { impl From for pb::ListtransactionsTransactionsInputs { fn from(c: responses::ListtransactionsTransactionsInputs) -> Self { Self { - txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid index: c.index, // Rule #2 for type u32 sequence: c.sequence, // Rule #2 for type u32 + txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid } } } @@ -555,8 +561,8 @@ impl From for pb::Listtransaction impl From for pb::ListtransactionsTransactionsOutputs { fn from(c: responses::ListtransactionsTransactionsOutputs) -> Self { Self { - index: c.index, // Rule #2 for type u32 amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + index: c.index, // Rule #2 for type u32 script_pub_key: hex::decode(&c.script_pub_key).unwrap(), // Rule #2 for type hex } } @@ -566,16 +572,16 @@ impl From for pb::Listtransactio impl From for pb::ListtransactionsTransactions { fn from(c: responses::ListtransactionsTransactions) -> Self { Self { - hash: hex::decode(&c.hash).unwrap(), // Rule #2 for type txid - rawtx: hex::decode(&c.rawtx).unwrap(), // Rule #2 for type hex blockheight: c.blockheight, // Rule #2 for type u32 - txindex: c.txindex, // Rule #2 for type u32 - locktime: c.locktime, // Rule #2 for type u32 - version: c.version, // Rule #2 for type u32 + hash: hex::decode(&c.hash).unwrap(), // Rule #2 for type txid // Field: ListTransactions.transactions[].inputs[] inputs: c.inputs.into_iter().map(|i| i.into()).collect(), // Rule #3 for type ListtransactionsTransactionsInputs + locktime: c.locktime, // Rule #2 for type u32 // Field: ListTransactions.transactions[].outputs[] outputs: c.outputs.into_iter().map(|i| i.into()).collect(), // Rule #3 for type ListtransactionsTransactionsOutputs + rawtx: hex::decode(&c.rawtx).unwrap(), // Rule #2 for type hex + txindex: c.txindex, // Rule #2 for type u32 + version: c.version, // Rule #2 for type u32 } } } @@ -594,15 +600,15 @@ impl From for pb::ListtransactionsResponse impl From for pb::PayResponse { fn from(c: responses::PayResponse) -> Self { Self { - payment_preimage: c.payment_preimage.to_vec(), // Rule #2 for type secret - destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - created_at: c.created_at, // Rule #2 for type number - parts: c.parts, // Rule #2 for type u32 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 - warning_partial_completion: c.warning_partial_completion, // Rule #2 for type string? + created_at: c.created_at, // Rule #2 for type number + destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + parts: c.parts, // Rule #2 for type u32 + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash + payment_preimage: c.payment_preimage.to_vec(), // Rule #2 for type secret status: c.status as i32, + warning_partial_completion: c.warning_partial_completion, // Rule #2 for type string? } } } @@ -611,9 +617,23 @@ impl From for pb::PayResponse { impl From for pb::ListnodesNodesAddresses { fn from(c: responses::ListnodesNodesAddresses) -> Self { Self { - item_type: c.item_type as i32, - port: c.port.into(), // Rule #2 for type u16 address: c.address, // Rule #2 for type string? + port: c.port.into(), // Rule #2 for type u16 + item_type: c.item_type as i32, + } + } +} + +#[allow(unused_variables)] +impl From for pb::ListnodesNodesOptionWillFund { + fn from(c: responses::ListnodesNodesOption_will_fund) -> Self { + Self { + channel_fee_max_base_msat: Some(c.channel_fee_max_base_msat.into()), // Rule #2 for type msat + channel_fee_max_proportional_thousandths: c.channel_fee_max_proportional_thousandths, // Rule #2 for type u32 + compact_lease: hex::decode(&c.compact_lease).unwrap(), // Rule #2 for type hex + funding_weight: c.funding_weight, // Rule #2 for type u32 + lease_fee_base_msat: Some(c.lease_fee_base_msat.into()), // Rule #2 for type msat + lease_fee_basis: c.lease_fee_basis, // Rule #2 for type u32 } } } @@ -622,13 +642,14 @@ impl From for pb::ListnodesNodesAddresses { impl From for pb::ListnodesNodes { fn from(c: responses::ListnodesNodes) -> Self { Self { - nodeid: c.nodeid.serialize().to_vec(), // Rule #2 for type pubkey - last_timestamp: c.last_timestamp, // Rule #2 for type u32? + // Field: ListNodes.nodes[].addresses[] + addresses: c.addresses.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 alias: c.alias, // Rule #2 for type string? color: c.color.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? features: c.features.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - // Field: ListNodes.nodes[].addresses[] - addresses: c.addresses.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + last_timestamp: c.last_timestamp, // Rule #2 for type u32? + nodeid: c.nodeid.serialize().to_vec(), // Rule #2 for type pubkey + option_will_fund: c.option_will_fund.map(|v| v.into()), } } } @@ -647,8 +668,8 @@ impl From for pb::ListnodesResponse { impl From for pb::WaitanyinvoicePaidOutpoint { fn from(c: responses::WaitanyinvoicePaid_outpoint) -> Self { Self { - txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? outnum: c.outnum, // Rule #2 for type u32? + txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? } } } @@ -657,21 +678,21 @@ impl From for pb::WaitanyinvoicePaidOutp impl From for pb::WaitanyinvoiceResponse { fn from(c: responses::WaitanyinvoiceResponse) -> Self { Self { - label: c.label, // Rule #2 for type string - description: c.description, // Rule #2 for type string - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - status: c.status as i32, - expires_at: c.expires_at, // Rule #2 for type u64 amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + amount_received_msat: c.amount_received_msat.map(|f| f.into()), // Rule #2 for type msat? bolt11: c.bolt11, // Rule #2 for type string? bolt12: c.bolt12, // Rule #2 for type string? created_index: c.created_index, // Rule #2 for type u64? - updated_index: c.updated_index, // Rule #2 for type u64? - pay_index: c.pay_index, // Rule #2 for type u64? - amount_received_msat: c.amount_received_msat.map(|f| f.into()), // Rule #2 for type msat? + description: c.description, // Rule #2 for type string + expires_at: c.expires_at, // Rule #2 for type u64 + label: c.label, // Rule #2 for type string paid_at: c.paid_at, // Rule #2 for type u64? paid_outpoint: c.paid_outpoint.map(|v| v.into()), + pay_index: c.pay_index, // Rule #2 for type u64? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? + status: c.status as i32, + updated_index: c.updated_index, // Rule #2 for type u64? } } } @@ -680,8 +701,8 @@ impl From for pb::WaitanyinvoiceResponse { impl From for pb::WaitinvoicePaidOutpoint { fn from(c: responses::WaitinvoicePaid_outpoint) -> Self { Self { - txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? outnum: c.outnum, // Rule #2 for type u32? + txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? } } } @@ -690,21 +711,21 @@ impl From for pb::WaitinvoicePaidOutpoint { impl From for pb::WaitinvoiceResponse { fn from(c: responses::WaitinvoiceResponse) -> Self { Self { - label: c.label, // Rule #2 for type string - description: c.description, // Rule #2 for type string - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - status: c.status as i32, - expires_at: c.expires_at, // Rule #2 for type u64 amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + amount_received_msat: c.amount_received_msat.map(|f| f.into()), // Rule #2 for type msat? bolt11: c.bolt11, // Rule #2 for type string? bolt12: c.bolt12, // Rule #2 for type string? created_index: c.created_index, // Rule #2 for type u64? - updated_index: c.updated_index, // Rule #2 for type u64? - pay_index: c.pay_index, // Rule #2 for type u64? - amount_received_msat: c.amount_received_msat.map(|f| f.into()), // Rule #2 for type msat? + description: c.description, // Rule #2 for type string + expires_at: c.expires_at, // Rule #2 for type u64 + label: c.label, // Rule #2 for type string paid_at: c.paid_at, // Rule #2 for type u64? paid_outpoint: c.paid_outpoint.map(|v| v.into()), + pay_index: c.pay_index, // Rule #2 for type u64? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? + status: c.status as i32, + updated_index: c.updated_index, // Rule #2 for type u64? } } } @@ -713,22 +734,22 @@ impl From for pb::WaitinvoiceResponse { impl From for pb::WaitsendpayResponse { fn from(c: responses::WaitsendpayResponse) -> Self { Self { - created_index: c.created_index, // Rule #2 for type u64? - id: c.id, // Rule #2 for type u64 - groupid: c.groupid, // Rule #2 for type u64? - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - status: c.status as i32, amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? - destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - created_at: c.created_at, // Rule #2 for type u64 - updated_index: c.updated_index, // Rule #2 for type u64? - completed_at: c.completed_at, // Rule #2 for type number? amount_sent_msat: Some(c.amount_sent_msat.into()), // Rule #2 for type msat - label: c.label, // Rule #2 for type string? - partid: c.partid, // Rule #2 for type u64? bolt11: c.bolt11, // Rule #2 for type string? bolt12: c.bolt12, // Rule #2 for type string? + completed_at: c.completed_at, // Rule #2 for type number? + created_at: c.created_at, // Rule #2 for type u64 + created_index: c.created_index, // Rule #2 for type u64? + destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + groupid: c.groupid, // Rule #2 for type u64? + id: c.id, // Rule #2 for type u64 + label: c.label, // Rule #2 for type string? + partid: c.partid, // Rule #2 for type u64? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash payment_preimage: c.payment_preimage.map(|v| v.to_vec()), // Rule #2 for type secret? + status: c.status as i32, + updated_index: c.updated_index, // Rule #2 for type u64? } } } @@ -737,8 +758,8 @@ impl From for pb::WaitsendpayResponse { impl From for pb::NewaddrResponse { fn from(c: responses::NewaddrResponse) -> Self { Self { - p2tr: c.p2tr, // Rule #2 for type string? bech32: c.bech32, // Rule #2 for type string? + p2tr: c.p2tr, // Rule #2 for type string? } } } @@ -747,9 +768,9 @@ impl From for pb::NewaddrResponse { impl From for pb::WithdrawResponse { fn from(c: responses::WithdrawResponse) -> Self { Self { + psbt: c.psbt, // Rule #2 for type string tx: hex::decode(&c.tx).unwrap(), // Rule #2 for type hex txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid - psbt: c.psbt, // Rule #2 for type string } } } @@ -758,15 +779,15 @@ impl From for pb::WithdrawResponse { impl From for pb::KeysendResponse { fn from(c: responses::KeysendResponse) -> Self { Self { - payment_preimage: c.payment_preimage.to_vec(), // Rule #2 for type secret - destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - created_at: c.created_at, // Rule #2 for type number - parts: c.parts, // Rule #2 for type u32 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 - warning_partial_completion: c.warning_partial_completion, // Rule #2 for type string? + created_at: c.created_at, // Rule #2 for type number + destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + parts: c.parts, // Rule #2 for type u32 + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash + payment_preimage: c.payment_preimage.to_vec(), // Rule #2 for type secret status: c.status as i32, + warning_partial_completion: c.warning_partial_completion, // Rule #2 for type string? } } } @@ -775,11 +796,11 @@ impl From for pb::KeysendResponse { impl From for pb::FundpsbtReservations { fn from(c: responses::FundpsbtReservations) -> Self { Self { + reserved: c.reserved, // Rule #2 for type boolean + reserved_to_block: c.reserved_to_block, // Rule #2 for type u32 txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid vout: c.vout, // Rule #2 for type u32 was_reserved: c.was_reserved, // Rule #2 for type boolean - reserved: c.reserved, // Rule #2 for type boolean - reserved_to_block: c.reserved_to_block, // Rule #2 for type u32 } } } @@ -788,11 +809,11 @@ impl From for pb::FundpsbtReservations { impl From for pb::FundpsbtResponse { fn from(c: responses::FundpsbtResponse) -> Self { Self { - psbt: c.psbt, // Rule #2 for type string - feerate_per_kw: c.feerate_per_kw, // Rule #2 for type u32 + change_outnum: c.change_outnum, // Rule #2 for type u32? estimated_final_weight: c.estimated_final_weight, // Rule #2 for type u32 excess_msat: Some(c.excess_msat.into()), // Rule #2 for type msat - change_outnum: c.change_outnum, // Rule #2 for type u32? + feerate_per_kw: c.feerate_per_kw, // Rule #2 for type u32 + psbt: c.psbt, // Rule #2 for type string // Field: FundPsbt.reservations[] reservations: c.reservations.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 } @@ -822,11 +843,11 @@ impl From for pb::SignpsbtResponse { impl From for pb::UtxopsbtReservations { fn from(c: responses::UtxopsbtReservations) -> Self { Self { + reserved: c.reserved, // Rule #2 for type boolean + reserved_to_block: c.reserved_to_block, // Rule #2 for type u32 txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid vout: c.vout, // Rule #2 for type u32 was_reserved: c.was_reserved, // Rule #2 for type boolean - reserved: c.reserved, // Rule #2 for type boolean - reserved_to_block: c.reserved_to_block, // Rule #2 for type u32 } } } @@ -835,11 +856,11 @@ impl From for pb::UtxopsbtReservations { impl From for pb::UtxopsbtResponse { fn from(c: responses::UtxopsbtResponse) -> Self { Self { - psbt: c.psbt, // Rule #2 for type string - feerate_per_kw: c.feerate_per_kw, // Rule #2 for type u32 + change_outnum: c.change_outnum, // Rule #2 for type u32? estimated_final_weight: c.estimated_final_weight, // Rule #2 for type u32 excess_msat: Some(c.excess_msat.into()), // Rule #2 for type msat - change_outnum: c.change_outnum, // Rule #2 for type u32? + feerate_per_kw: c.feerate_per_kw, // Rule #2 for type u32 + psbt: c.psbt, // Rule #2 for type string // Field: UtxoPsbt.reservations[] reservations: c.reservations.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 } @@ -850,8 +871,8 @@ impl From for pb::UtxopsbtResponse { impl From for pb::TxdiscardResponse { fn from(c: responses::TxdiscardResponse) -> Self { Self { - unsigned_tx: hex::decode(&c.unsigned_tx).unwrap(), // Rule #2 for type hex txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid + unsigned_tx: hex::decode(&c.unsigned_tx).unwrap(), // Rule #2 for type hex } } } @@ -861,8 +882,8 @@ impl From for pb::TxprepareResponse { fn from(c: responses::TxprepareResponse) -> Self { Self { psbt: c.psbt, // Rule #2 for type string - unsigned_tx: hex::decode(&c.unsigned_tx).unwrap(), // Rule #2 for type hex txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid + unsigned_tx: hex::decode(&c.unsigned_tx).unwrap(), // Rule #2 for type hex } } } @@ -879,47 +900,50 @@ impl From for pb::TxsendResponse { } #[allow(unused_variables)] -impl From for pb::ListpeerchannelsChannelsUpdatesLocal { - fn from(c: responses::ListpeerchannelsChannelsUpdatesLocal) -> Self { +impl From for pb::ListpeerchannelsChannelsAlias { + fn from(c: responses::ListpeerchannelsChannelsAlias) -> Self { Self { - htlc_minimum_msat: c.htlc_minimum_msat.map(|f| f.into()), // Rule #2 for type msat? - htlc_maximum_msat: c.htlc_maximum_msat.map(|f| f.into()), // Rule #2 for type msat? - cltv_expiry_delta: c.cltv_expiry_delta, // Rule #2 for type u32? - 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? + local: c.local.map(|v| v.to_string()), // Rule #2 for type short_channel_id? + remote: c.remote.map(|v| v.to_string()), // Rule #2 for type short_channel_id? } } } #[allow(unused_variables)] -impl From for pb::ListpeerchannelsChannelsUpdatesRemote { - fn from(c: responses::ListpeerchannelsChannelsUpdatesRemote) -> Self { +impl From for pb::ListpeerchannelsChannelsFeerate { + fn from(c: responses::ListpeerchannelsChannelsFeerate) -> Self { Self { - htlc_minimum_msat: c.htlc_minimum_msat.map(|f| f.into()), // Rule #2 for type msat? - htlc_maximum_msat: c.htlc_maximum_msat.map(|f| f.into()), // Rule #2 for type msat? - cltv_expiry_delta: c.cltv_expiry_delta, // Rule #2 for type u32? - 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? + perkb: c.perkb, // Rule #2 for type u32? + perkw: c.perkw, // Rule #2 for type u32? } } } #[allow(unused_variables)] -impl From for pb::ListpeerchannelsChannelsUpdates { - fn from(c: responses::ListpeerchannelsChannelsUpdates) -> Self { +impl From for pb::ListpeerchannelsChannelsFunding { + fn from(c: responses::ListpeerchannelsChannelsFunding) -> Self { Self { - local: c.local.map(|v| v.into()), - remote: c.remote.map(|v| v.into()), + fee_paid_msat: c.fee_paid_msat.map(|f| f.into()), // Rule #2 for type msat? + fee_rcvd_msat: c.fee_rcvd_msat.map(|f| f.into()), // Rule #2 for type msat? + local_funds_msat: c.local_funds_msat.map(|f| f.into()), // Rule #2 for type msat? + pushed_msat: c.pushed_msat.map(|f| f.into()), // Rule #2 for type msat? + remote_funds_msat: c.remote_funds_msat.map(|f| f.into()), // Rule #2 for type msat? } } } #[allow(unused_variables)] -impl From for pb::ListpeerchannelsChannelsFeerate { - fn from(c: responses::ListpeerchannelsChannelsFeerate) -> Self { +impl From for pb::ListpeerchannelsChannelsHtlcs { + fn from(c: responses::ListpeerchannelsChannelsHtlcs) -> Self { Self { - perkw: c.perkw, // Rule #2 for type u32? - perkb: c.perkb, // Rule #2 for type u32? + amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + direction: c.direction.map(|v| v as i32), + expiry: c.expiry, // Rule #2 for type u32? + id: c.id, // Rule #2 for type u64? + local_trimmed: c.local_trimmed, // Rule #2 for type boolean? + payment_hash: c.payment_hash.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? + state: c.state.map(|v| v as i32), + status: c.status, // Rule #2 for type string? } } } @@ -928,52 +952,49 @@ impl From for pb::ListpeerchannelsCh impl From for pb::ListpeerchannelsChannelsInflight { fn from(c: responses::ListpeerchannelsChannelsInflight) -> Self { Self { - funding_txid: c.funding_txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? - funding_outnum: c.funding_outnum, // Rule #2 for type u32? feerate: c.feerate, // Rule #2 for type string? - total_funding_msat: c.total_funding_msat.map(|f| f.into()), // Rule #2 for type msat? - splice_amount: c.splice_amount, // Rule #2 for type integer? + funding_outnum: c.funding_outnum, // Rule #2 for type u32? + funding_txid: c.funding_txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? our_funding_msat: c.our_funding_msat.map(|f| f.into()), // Rule #2 for type msat? scratch_txid: c.scratch_txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? + splice_amount: c.splice_amount, // Rule #2 for type integer? + total_funding_msat: c.total_funding_msat.map(|f| f.into()), // Rule #2 for type msat? } } } #[allow(unused_variables)] -impl From for pb::ListpeerchannelsChannelsFunding { - fn from(c: responses::ListpeerchannelsChannelsFunding) -> Self { +impl From for pb::ListpeerchannelsChannelsUpdatesLocal { + fn from(c: responses::ListpeerchannelsChannelsUpdatesLocal) -> Self { Self { - pushed_msat: c.pushed_msat.map(|f| f.into()), // Rule #2 for type msat? - local_funds_msat: c.local_funds_msat.map(|f| f.into()), // Rule #2 for type msat? - remote_funds_msat: c.remote_funds_msat.map(|f| f.into()), // Rule #2 for type msat? - fee_paid_msat: c.fee_paid_msat.map(|f| f.into()), // Rule #2 for type msat? - fee_rcvd_msat: c.fee_rcvd_msat.map(|f| f.into()), // Rule #2 for type msat? + cltv_expiry_delta: c.cltv_expiry_delta, // Rule #2 for type u32? + 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::ListpeerchannelsChannelsAlias { - fn from(c: responses::ListpeerchannelsChannelsAlias) -> Self { +impl From for pb::ListpeerchannelsChannelsUpdatesRemote { + fn from(c: responses::ListpeerchannelsChannelsUpdatesRemote) -> Self { Self { - local: c.local.map(|v| v.to_string()), // Rule #2 for type short_channel_id? - remote: c.remote.map(|v| v.to_string()), // Rule #2 for type short_channel_id? + cltv_expiry_delta: c.cltv_expiry_delta, // Rule #2 for type u32? + 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::ListpeerchannelsChannelsHtlcs { - fn from(c: responses::ListpeerchannelsChannelsHtlcs) -> Self { +impl From for pb::ListpeerchannelsChannelsUpdates { + fn from(c: responses::ListpeerchannelsChannelsUpdates) -> Self { Self { - direction: c.direction.map(|v| v as i32), - id: c.id, // Rule #2 for type u64? - amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? - expiry: c.expiry, // Rule #2 for type u32? - payment_hash: c.payment_hash.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? - local_trimmed: c.local_trimmed, // Rule #2 for type boolean? - status: c.status, // Rule #2 for type string? - state: c.state.map(|v| v as i32), + local: c.local.map(|v| v.into()), + remote: c.remote.map(|v| v.into()), } } } @@ -982,64 +1003,66 @@ impl From for pb::ListpeerchannelsChan impl From for pb::ListpeerchannelsChannels { fn from(c: responses::ListpeerchannelsChannels) -> Self { Self { - peer_id: c.peer_id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - peer_connected: c.peer_connected, // Rule #2 for type boolean? - reestablished: c.reestablished, // Rule #2 for type boolean? - state: c.state.map(|v| v as i32), - scratch_txid: c.scratch_txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? - updates: c.updates.map(|v| v.into()), - ignore_fee_limits: c.ignore_fee_limits, // Rule #2 for type boolean? - lost_state: c.lost_state, // Rule #2 for type boolean? - feerate: c.feerate.map(|v| v.into()), - owner: c.owner, // Rule #2 for type string? - short_channel_id: c.short_channel_id.map(|v| v.to_string()), // Rule #2 for type short_channel_id? + alias: c.alias.map(|v| v.into()), channel_id: c.channel_id.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? - funding_txid: c.funding_txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? - funding_outnum: c.funding_outnum, // Rule #2 for type u32? - initial_feerate: c.initial_feerate, // Rule #2 for type string? - last_feerate: c.last_feerate, // Rule #2 for type string? - next_feerate: c.next_feerate, // Rule #2 for type string? - next_fee_step: c.next_fee_step, // Rule #2 for type u32? - // Field: ListPeerChannels.channels[].inflight[] - inflight: c.inflight.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 close_to: c.close_to.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - private: c.private, // Rule #2 for type boolean? - opener: c.opener.map(|v| v as i32), + close_to_addr: c.close_to_addr, // Rule #2 for type string? closer: c.closer.map(|v| v as i32), - funding: c.funding.map(|v| v.into()), - to_us_msat: c.to_us_msat.map(|f| f.into()), // Rule #2 for type msat? - min_to_us_msat: c.min_to_us_msat.map(|f| f.into()), // Rule #2 for type msat? - max_to_us_msat: c.max_to_us_msat.map(|f| f.into()), // Rule #2 for type msat? - total_msat: c.total_msat.map(|f| f.into()), // Rule #2 for type msat? + direction: c.direction, // Rule #2 for type u32? + dust_limit_msat: c.dust_limit_msat.map(|f| f.into()), // Rule #2 for type msat? 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? - dust_limit_msat: c.dust_limit_msat.map(|f| f.into()), // Rule #2 for type msat? + feerate: c.feerate.map(|v| v.into()), + funding: c.funding.map(|v| v.into()), + funding_outnum: c.funding_outnum, // Rule #2 for type u32? + funding_txid: c.funding_txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? + // Field: ListPeerChannels.channels[].htlcs[] + htlcs: c.htlcs.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + ignore_fee_limits: c.ignore_fee_limits, // Rule #2 for type boolean? + in_fulfilled_msat: c.in_fulfilled_msat.map(|f| f.into()), // Rule #2 for type msat? + in_offered_msat: c.in_offered_msat.map(|f| f.into()), // Rule #2 for type msat? + in_payments_fulfilled: c.in_payments_fulfilled, // Rule #2 for type u64? + in_payments_offered: c.in_payments_offered, // Rule #2 for type u64? + // Field: ListPeerChannels.channels[].inflight[] + inflight: c.inflight.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + initial_feerate: c.initial_feerate, // Rule #2 for type string? + last_feerate: c.last_feerate, // Rule #2 for type string? + last_stable_connection: c.last_stable_connection, // Rule #2 for type u64? + last_tx_fee_msat: c.last_tx_fee_msat.map(|f| f.into()), // Rule #2 for type msat? + lost_state: c.lost_state, // Rule #2 for type boolean? + max_accepted_htlcs: c.max_accepted_htlcs, // Rule #2 for type u32? + max_to_us_msat: c.max_to_us_msat.map(|f| f.into()), // Rule #2 for type msat? max_total_htlc_in_msat: c.max_total_htlc_in_msat.map(|f| f.into()), // Rule #2 for type msat? - their_reserve_msat: c.their_reserve_msat.map(|f| f.into()), // Rule #2 for type msat? - our_reserve_msat: c.our_reserve_msat.map(|f| f.into()), // Rule #2 for type msat? - spendable_msat: c.spendable_msat.map(|f| f.into()), // Rule #2 for type msat? - receivable_msat: c.receivable_msat.map(|f| f.into()), // Rule #2 for type msat? + maximum_htlc_out_msat: c.maximum_htlc_out_msat.map(|f| f.into()), // Rule #2 for type msat? + min_to_us_msat: c.min_to_us_msat.map(|f| f.into()), // Rule #2 for type msat? minimum_htlc_in_msat: c.minimum_htlc_in_msat.map(|f| f.into()), // Rule #2 for type msat? minimum_htlc_out_msat: c.minimum_htlc_out_msat.map(|f| f.into()), // Rule #2 for type msat? - maximum_htlc_out_msat: c.maximum_htlc_out_msat.map(|f| f.into()), // Rule #2 for type msat? - their_to_self_delay: c.their_to_self_delay, // Rule #2 for type u32? + next_fee_step: c.next_fee_step, // Rule #2 for type u32? + next_feerate: c.next_feerate, // Rule #2 for type string? + opener: c.opener.map(|v| v as i32), + our_reserve_msat: c.our_reserve_msat.map(|f| f.into()), // Rule #2 for type msat? our_to_self_delay: c.our_to_self_delay, // Rule #2 for type u32? - max_accepted_htlcs: c.max_accepted_htlcs, // Rule #2 for type u32? - alias: c.alias.map(|v| v.into()), - // Field: ListPeerChannels.channels[].status[] - status: c.status.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - in_payments_offered: c.in_payments_offered, // Rule #2 for type u64? - in_offered_msat: c.in_offered_msat.map(|f| f.into()), // Rule #2 for type msat? - in_payments_fulfilled: c.in_payments_fulfilled, // Rule #2 for type u64? - in_fulfilled_msat: c.in_fulfilled_msat.map(|f| f.into()), // Rule #2 for type msat? - out_payments_offered: c.out_payments_offered, // Rule #2 for type u64? + out_fulfilled_msat: c.out_fulfilled_msat.map(|f| f.into()), // Rule #2 for type msat? out_offered_msat: c.out_offered_msat.map(|f| f.into()), // Rule #2 for type msat? out_payments_fulfilled: c.out_payments_fulfilled, // Rule #2 for type u64? - out_fulfilled_msat: c.out_fulfilled_msat.map(|f| f.into()), // Rule #2 for type msat? - last_stable_connection: c.last_stable_connection, // Rule #2 for type u64? - // Field: ListPeerChannels.channels[].htlcs[] - htlcs: c.htlcs.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - close_to_addr: c.close_to_addr, // Rule #2 for type string? + out_payments_offered: c.out_payments_offered, // Rule #2 for type u64? + owner: c.owner, // Rule #2 for type string? + peer_connected: c.peer_connected, // Rule #2 for type boolean? + peer_id: c.peer_id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + private: c.private, // Rule #2 for type boolean? + receivable_msat: c.receivable_msat.map(|f| f.into()), // Rule #2 for type msat? + reestablished: c.reestablished, // Rule #2 for type boolean? + scratch_txid: c.scratch_txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? + short_channel_id: c.short_channel_id.map(|v| v.to_string()), // Rule #2 for type short_channel_id? + spendable_msat: c.spendable_msat.map(|f| f.into()), // Rule #2 for type msat? + state: c.state.map(|v| v as i32), + // Field: ListPeerChannels.channels[].status[] + status: c.status.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + their_reserve_msat: c.their_reserve_msat.map(|f| f.into()), // Rule #2 for type msat? + their_to_self_delay: c.their_to_self_delay, // Rule #2 for type u32? + to_us_msat: c.to_us_msat.map(|f| f.into()), // Rule #2 for type msat? + total_msat: c.total_msat.map(|f| f.into()), // Rule #2 for type msat? + updates: c.updates.map(|v| v.into()), } } } @@ -1068,30 +1091,30 @@ impl From for pb::Listclosedch impl From for pb::ListclosedchannelsClosedchannels { fn from(c: responses::ListclosedchannelsClosedchannels) -> Self { Self { - peer_id: c.peer_id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - channel_id: >::as_ref(&c.channel_id).to_vec(), // Rule #2 for type hash - short_channel_id: c.short_channel_id.map(|v| v.to_string()), // Rule #2 for type short_channel_id? alias: c.alias.map(|v| v.into()), - opener: c.opener as i32, + channel_id: >::as_ref(&c.channel_id).to_vec(), // Rule #2 for type hash + close_cause: c.close_cause as i32, closer: c.closer.map(|v| v as i32), - private: c.private, // Rule #2 for type boolean - total_local_commitments: c.total_local_commitments, // Rule #2 for type u64 - total_remote_commitments: c.total_remote_commitments, // Rule #2 for type u64 - total_htlcs_sent: c.total_htlcs_sent, // Rule #2 for type u64 - funding_txid: hex::decode(&c.funding_txid).unwrap(), // Rule #2 for type txid - funding_outnum: c.funding_outnum, // Rule #2 for type u32 - leased: c.leased, // Rule #2 for type boolean + final_to_us_msat: Some(c.final_to_us_msat.into()), // Rule #2 for type msat funding_fee_paid_msat: c.funding_fee_paid_msat.map(|f| f.into()), // Rule #2 for type msat? funding_fee_rcvd_msat: c.funding_fee_rcvd_msat.map(|f| f.into()), // Rule #2 for type msat? + funding_outnum: c.funding_outnum, // Rule #2 for type u32 funding_pushed_msat: c.funding_pushed_msat.map(|f| f.into()), // Rule #2 for type msat? - total_msat: Some(c.total_msat.into()), // Rule #2 for type msat - final_to_us_msat: Some(c.final_to_us_msat.into()), // Rule #2 for type msat - min_to_us_msat: Some(c.min_to_us_msat.into()), // Rule #2 for type msat - max_to_us_msat: Some(c.max_to_us_msat.into()), // Rule #2 for type msat - last_commitment_txid: c.last_commitment_txid.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? + funding_txid: hex::decode(&c.funding_txid).unwrap(), // Rule #2 for type txid last_commitment_fee_msat: c.last_commitment_fee_msat.map(|f| f.into()), // Rule #2 for type msat? - close_cause: c.close_cause as i32, + last_commitment_txid: c.last_commitment_txid.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? last_stable_connection: c.last_stable_connection, // Rule #2 for type u64? + leased: c.leased, // Rule #2 for type boolean + max_to_us_msat: Some(c.max_to_us_msat.into()), // Rule #2 for type msat + min_to_us_msat: Some(c.min_to_us_msat.into()), // Rule #2 for type msat + opener: c.opener as i32, + peer_id: c.peer_id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + private: c.private, // Rule #2 for type boolean + short_channel_id: c.short_channel_id.map(|v| v.to_string()), // Rule #2 for type short_channel_id? + total_htlcs_sent: c.total_htlcs_sent, // Rule #2 for type u64 + total_local_commitments: c.total_local_commitments, // Rule #2 for type u64 + total_msat: Some(c.total_msat.into()), // Rule #2 for type msat + total_remote_commitments: c.total_remote_commitments, // Rule #2 for type u64 } } } @@ -1107,22 +1130,22 @@ impl From for pb::ListclosedchannelsRespo } #[allow(unused_variables)] -impl From for pb::DecodepayFallbacks { - fn from(c: responses::DecodepayFallbacks) -> Self { +impl From for pb::DecodepayExtra { + fn from(c: responses::DecodepayExtra) -> Self { Self { - item_type: c.item_type as i32, - addr: c.addr, // Rule #2 for type string? - hex: hex::decode(&c.hex).unwrap(), // Rule #2 for type hex + data: c.data, // Rule #2 for type string + tag: c.tag, // Rule #2 for type string } } } #[allow(unused_variables)] -impl From for pb::DecodepayExtra { - fn from(c: responses::DecodepayExtra) -> Self { +impl From for pb::DecodepayFallbacks { + fn from(c: responses::DecodepayFallbacks) -> Self { Self { - tag: c.tag, // Rule #2 for type string - data: c.data, // Rule #2 for type string + addr: c.addr, // Rule #2 for type string? + hex: hex::decode(&c.hex).unwrap(), // Rule #2 for type hex + item_type: c.item_type as i32, } } } @@ -1131,63 +1154,66 @@ impl From for pb::DecodepayExtra { impl From for pb::DecodepayResponse { fn from(c: responses::DecodepayResponse) -> Self { Self { - currency: c.currency, // Rule #2 for type string - created_at: c.created_at, // Rule #2 for type u64 - expiry: c.expiry, // Rule #2 for type u64 - payee: c.payee.serialize().to_vec(), // Rule #2 for type pubkey amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - signature: c.signature, // Rule #2 for type signature + created_at: c.created_at, // Rule #2 for type u64 + currency: c.currency, // Rule #2 for type string description: c.description, // Rule #2 for type string? description_hash: c.description_hash.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? - min_final_cltv_expiry: c.min_final_cltv_expiry, // Rule #2 for type u32 - payment_secret: c.payment_secret.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? - features: c.features.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - payment_metadata: c.payment_metadata.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - // Field: DecodePay.fallbacks[] - fallbacks: c.fallbacks.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + expiry: c.expiry, // Rule #2 for type u64 // Field: DecodePay.extra[] extra: c.extra.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + // Field: DecodePay.fallbacks[] + fallbacks: c.fallbacks.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + features: c.features.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + min_final_cltv_expiry: c.min_final_cltv_expiry, // Rule #2 for type u32 + payee: c.payee.serialize().to_vec(), // Rule #2 for type pubkey + 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| >::as_ref(&v).to_vec()), // Rule #2 for type hash? + signature: c.signature, // Rule #2 for type signature } } } #[allow(unused_variables)] -impl From for pb::DecodeOfferPaths { - fn from(c: responses::DecodeOffer_paths) -> Self { +impl From for pb::DecodeExtra { + fn from(c: responses::DecodeExtra) -> Self { Self { - first_node_id: c.first_node_id.serialize().to_vec(), // Rule #2 for type pubkey - blinding: c.blinding.serialize().to_vec(), // Rule #2 for type pubkey + data: c.data, // Rule #2 for type string + tag: c.tag, // Rule #2 for type string } } } #[allow(unused_variables)] -impl From for pb::DecodeInvoiceFallbacks { - fn from(c: responses::DecodeInvoice_fallbacks) -> Self { +impl From for pb::DecodeFallbacks { + fn from(c: responses::DecodeFallbacks) -> Self { Self { - version: c.version.into(), // Rule #2 for type u8 + addr: c.addr, // Rule #2 for type string? hex: hex::decode(&c.hex).unwrap(), // Rule #2 for type hex - address: c.address, // Rule #2 for type string? + item_type: c.item_type as i32, + warning_invoice_fallbacks_version_invalid: c.warning_invoice_fallbacks_version_invalid, // Rule #2 for type string? } } } #[allow(unused_variables)] -impl From for pb::DecodeFallbacks { - fn from(c: responses::DecodeFallbacks) -> Self { +impl From for pb::DecodeInvoiceFallbacks { + fn from(c: responses::DecodeInvoice_fallbacks) -> Self { Self { - warning_invoice_fallbacks_version_invalid: c.warning_invoice_fallbacks_version_invalid, // Rule #2 for type string? + address: c.address, // Rule #2 for type string? + hex: hex::decode(&c.hex).unwrap(), // Rule #2 for type hex + version: c.version.into(), // Rule #2 for type u8 } } } #[allow(unused_variables)] -impl From for pb::DecodeExtra { - fn from(c: responses::DecodeExtra) -> Self { +impl From for pb::DecodeOfferPaths { + fn from(c: responses::DecodeOffer_paths) -> Self { Self { - tag: c.tag, // Rule #2 for type string - data: c.data, // Rule #2 for type string + blinding: c.blinding.serialize().to_vec(), // Rule #2 for type pubkey + first_node_id: c.first_node_id.serialize().to_vec(), // Rule #2 for type pubkey } } } @@ -1207,82 +1233,87 @@ impl From for pb::DecodeRestrictions { impl From for pb::DecodeResponse { fn from(c: responses::DecodeResponse) -> Self { Self { - item_type: c.item_type as i32, - valid: c.valid, // Rule #2 for type boolean - offer_id: c.offer_id.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - // Field: Decode.offer_chains[] - offer_chains: c.offer_chains.map(|arr| arr.into_iter().map(|i| >::as_ref(&i).to_vec()).collect()).unwrap_or(vec![]), // Rule #3 - offer_metadata: c.offer_metadata.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - offer_currency: c.offer_currency, // Rule #2 for type string? - warning_unknown_offer_currency: c.warning_unknown_offer_currency, // Rule #2 for type string? + amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + created_at: c.created_at, // Rule #2 for type u64? + currency: c.currency, // Rule #2 for type string? currency_minor_unit: c.currency_minor_unit, // Rule #2 for type u32? + decrypted: c.decrypted.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + description: c.description, // Rule #2 for type string? + description_hash: c.description_hash.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? + expiry: c.expiry, // Rule #2 for type u64? + // Field: Decode.extra[] + extra: c.extra.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + // Field: Decode.fallbacks[] + fallbacks: c.fallbacks.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + features: c.features.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + hex: c.hex.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + invoice_amount_msat: c.invoice_amount_msat.map(|f| f.into()), // Rule #2 for type msat? + invoice_created_at: c.invoice_created_at, // Rule #2 for type u64? + // Field: Decode.invoice_fallbacks[] + invoice_fallbacks: c.invoice_fallbacks.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + invoice_features: c.invoice_features.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + invoice_node_id: c.invoice_node_id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + invoice_payment_hash: c.invoice_payment_hash.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + invoice_recurrence_basetime: c.invoice_recurrence_basetime, // Rule #2 for type u64? + invoice_relative_expiry: c.invoice_relative_expiry, // Rule #2 for type u32? + invreq_amount_msat: c.invreq_amount_msat.map(|f| f.into()), // Rule #2 for type msat? + invreq_chain: c.invreq_chain.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + invreq_features: c.invreq_features.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + invreq_metadata: c.invreq_metadata.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + invreq_payer_id: c.invreq_payer_id.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + invreq_payer_note: c.invreq_payer_note, // Rule #2 for type string? + invreq_quantity: c.invreq_quantity, // Rule #2 for type u64? + invreq_recurrence_counter: c.invreq_recurrence_counter, // Rule #2 for type u32? + invreq_recurrence_start: c.invreq_recurrence_start, // Rule #2 for type u32? + min_final_cltv_expiry: c.min_final_cltv_expiry, // Rule #2 for type u32? + offer_absolute_expiry: c.offer_absolute_expiry, // Rule #2 for type u64? offer_amount: c.offer_amount, // Rule #2 for type u64? offer_amount_msat: c.offer_amount_msat.map(|f| f.into()), // Rule #2 for type msat? + // Field: Decode.offer_chains[] + offer_chains: c.offer_chains.map(|arr| arr.into_iter().map(|i| >::as_ref(&i).to_vec()).collect()).unwrap_or(vec![]), // Rule #3 + offer_currency: c.offer_currency, // Rule #2 for type string? offer_description: c.offer_description, // Rule #2 for type string? - offer_issuer: c.offer_issuer, // Rule #2 for type string? offer_features: c.offer_features.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - offer_absolute_expiry: c.offer_absolute_expiry, // Rule #2 for type u64? - offer_quantity_max: c.offer_quantity_max, // Rule #2 for type u64? + offer_id: c.offer_id.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + offer_issuer: c.offer_issuer, // Rule #2 for type string? + offer_metadata: c.offer_metadata.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + offer_node_id: c.offer_node_id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? // Field: Decode.offer_paths[] offer_paths: c.offer_paths.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - offer_node_id: c.offer_node_id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - warning_missing_offer_node_id: c.warning_missing_offer_node_id, // Rule #2 for type string? - warning_invalid_offer_description: c.warning_invalid_offer_description, // Rule #2 for type string? - warning_missing_offer_description: c.warning_missing_offer_description, // Rule #2 for type string? + offer_quantity_max: c.offer_quantity_max, // Rule #2 for type u64? + payee: c.payee.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + payment_hash: c.payment_hash.map(|v| >::as_ref(&v).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: Decode.restrictions[] + restrictions: c.restrictions.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + signature: c.signature, // Rule #2 for type bip340sig? + string: c.string, // Rule #2 for type string? + item_type: c.item_type as i32, + unique_id: c.unique_id, // Rule #2 for type string? + valid: c.valid, // Rule #2 for type boolean + version: c.version, // Rule #2 for type string? + warning_invalid_invoice_request_signature: c.warning_invalid_invoice_request_signature, // Rule #2 for type string? + warning_invalid_invoice_signature: c.warning_invalid_invoice_signature, // Rule #2 for type string? + warning_invalid_invreq_payer_note: c.warning_invalid_invreq_payer_note, // Rule #2 for type string? warning_invalid_offer_currency: c.warning_invalid_offer_currency, // Rule #2 for type string? + warning_invalid_offer_description: c.warning_invalid_offer_description, // Rule #2 for type string? warning_invalid_offer_issuer: c.warning_invalid_offer_issuer, // Rule #2 for type string? - invreq_metadata: c.invreq_metadata.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - invreq_payer_id: c.invreq_payer_id.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - invreq_chain: c.invreq_chain.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - invreq_amount_msat: c.invreq_amount_msat.map(|f| f.into()), // Rule #2 for type msat? - invreq_features: c.invreq_features.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - invreq_quantity: c.invreq_quantity, // Rule #2 for type u64? - invreq_payer_note: c.invreq_payer_note, // Rule #2 for type string? - invreq_recurrence_counter: c.invreq_recurrence_counter, // Rule #2 for type u32? - invreq_recurrence_start: c.invreq_recurrence_start, // Rule #2 for type u32? - warning_missing_invreq_metadata: c.warning_missing_invreq_metadata, // Rule #2 for type string? - warning_missing_invreq_payer_id: c.warning_missing_invreq_payer_id, // Rule #2 for type string? - warning_invalid_invreq_payer_note: c.warning_invalid_invreq_payer_note, // Rule #2 for type string? - warning_missing_invoice_request_signature: c.warning_missing_invoice_request_signature, // Rule #2 for type string? - warning_invalid_invoice_request_signature: c.warning_invalid_invoice_request_signature, // Rule #2 for type string? - invoice_created_at: c.invoice_created_at, // Rule #2 for type u64? - invoice_relative_expiry: c.invoice_relative_expiry, // Rule #2 for type u32? - invoice_payment_hash: c.invoice_payment_hash.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - invoice_amount_msat: c.invoice_amount_msat.map(|f| f.into()), // Rule #2 for type msat? - // Field: Decode.invoice_fallbacks[] - invoice_fallbacks: c.invoice_fallbacks.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - invoice_features: c.invoice_features.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - invoice_node_id: c.invoice_node_id.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - invoice_recurrence_basetime: c.invoice_recurrence_basetime, // Rule #2 for type u64? - warning_missing_invoice_paths: c.warning_missing_invoice_paths, // Rule #2 for type string? + warning_missing_invoice_amount: c.warning_missing_invoice_amount, // Rule #2 for type string? warning_missing_invoice_blindedpay: c.warning_missing_invoice_blindedpay, // Rule #2 for type string? warning_missing_invoice_created_at: c.warning_missing_invoice_created_at, // Rule #2 for type string? + warning_missing_invoice_node_id: c.warning_missing_invoice_node_id, // Rule #2 for type string? + warning_missing_invoice_paths: c.warning_missing_invoice_paths, // Rule #2 for type string? warning_missing_invoice_payment_hash: c.warning_missing_invoice_payment_hash, // Rule #2 for type string? - warning_missing_invoice_amount: c.warning_missing_invoice_amount, // Rule #2 for type string? warning_missing_invoice_recurrence_basetime: c.warning_missing_invoice_recurrence_basetime, // Rule #2 for type string? - warning_missing_invoice_node_id: c.warning_missing_invoice_node_id, // Rule #2 for type string? + warning_missing_invoice_request_signature: c.warning_missing_invoice_request_signature, // Rule #2 for type string? warning_missing_invoice_signature: c.warning_missing_invoice_signature, // Rule #2 for type string? - warning_invalid_invoice_signature: c.warning_invalid_invoice_signature, // Rule #2 for type string? - // Field: Decode.fallbacks[] - fallbacks: c.fallbacks.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - created_at: c.created_at, // Rule #2 for type u64? - expiry: c.expiry, // Rule #2 for type u64? - payee: c.payee.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - payment_hash: c.payment_hash.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? - description_hash: c.description_hash.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? - min_final_cltv_expiry: c.min_final_cltv_expiry, // Rule #2 for type u32? - payment_secret: c.payment_secret.map(|v| v.to_vec()), // Rule #2 for type secret? - payment_metadata: c.payment_metadata.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - // Field: Decode.extra[] - extra: c.extra.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - unique_id: c.unique_id, // Rule #2 for type string? - version: c.version, // Rule #2 for type string? - string: c.string, // Rule #2 for type string? - // Field: Decode.restrictions[] - restrictions: c.restrictions.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + warning_missing_invreq_metadata: c.warning_missing_invreq_metadata, // Rule #2 for type string? + warning_missing_invreq_payer_id: c.warning_missing_invreq_payer_id, // Rule #2 for type string? + warning_missing_offer_description: c.warning_missing_offer_description, // Rule #2 for type string? + warning_missing_offer_node_id: c.warning_missing_offer_node_id, // Rule #2 for type string? warning_rune_invalid_utf8: c.warning_rune_invalid_utf8, // Rule #2 for type string? - hex: c.hex.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - decrypted: c.decrypted.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + warning_unknown_offer_currency: c.warning_unknown_offer_currency, // Rule #2 for type string? } } } @@ -1295,6 +1326,20 @@ impl From for pb::DisconnectResponse { } } +#[allow(unused_variables)] +impl From for pb::FeeratesOnchainFeeEstimates { + fn from(c: responses::FeeratesOnchain_fee_estimates) -> Self { + Self { + htlc_success_satoshis: c.htlc_success_satoshis, // Rule #2 for type u64 + htlc_timeout_satoshis: c.htlc_timeout_satoshis, // Rule #2 for type u64 + mutual_close_satoshis: c.mutual_close_satoshis, // Rule #2 for type u64 + opening_channel_satoshis: c.opening_channel_satoshis, // Rule #2 for type u64 + unilateral_close_nonanchor_satoshis: c.unilateral_close_nonanchor_satoshis, // Rule #2 for type u64? + unilateral_close_satoshis: c.unilateral_close_satoshis, // Rule #2 for type u64 + } + } +} + #[allow(unused_variables)] impl From for pb::FeeratesPerkbEstimates { fn from(c: responses::FeeratesPerkbEstimates) -> Self { @@ -1310,20 +1355,20 @@ impl From for pb::FeeratesPerkbEstimates { impl From for pb::FeeratesPerkb { fn from(c: responses::FeeratesPerkb) -> Self { Self { - min_acceptable: c.min_acceptable, // Rule #2 for type u32 - max_acceptable: c.max_acceptable, // Rule #2 for type u32 - floor: c.floor, // Rule #2 for type u32? - // Field: Feerates.perkb.estimates[] - estimates: c.estimates.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - opening: c.opening, // Rule #2 for type u32? - mutual_close: c.mutual_close, // Rule #2 for type u32? - unilateral_close: c.unilateral_close, // Rule #2 for type u32? - unilateral_anchor_close: c.unilateral_anchor_close, // Rule #2 for type u32? #[allow(deprecated)] delayed_to_us: c.delayed_to_us, // Rule #2 for type u32? + // Field: Feerates.perkb.estimates[] + estimates: c.estimates.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + floor: c.floor, // Rule #2 for type u32? #[allow(deprecated)] htlc_resolution: c.htlc_resolution, // Rule #2 for type u32? + max_acceptable: c.max_acceptable, // Rule #2 for type u32 + min_acceptable: c.min_acceptable, // Rule #2 for type u32 + mutual_close: c.mutual_close, // Rule #2 for type u32? + opening: c.opening, // Rule #2 for type u32? penalty: c.penalty, // Rule #2 for type u32? + unilateral_anchor_close: c.unilateral_anchor_close, // Rule #2 for type u32? + unilateral_close: c.unilateral_close, // Rule #2 for type u32? } } } @@ -1343,34 +1388,20 @@ impl From for pb::FeeratesPerkwEstimates { impl From for pb::FeeratesPerkw { fn from(c: responses::FeeratesPerkw) -> Self { Self { - min_acceptable: c.min_acceptable, // Rule #2 for type u32 - max_acceptable: c.max_acceptable, // Rule #2 for type u32 - floor: c.floor, // Rule #2 for type u32? - // Field: Feerates.perkw.estimates[] - estimates: c.estimates.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - opening: c.opening, // Rule #2 for type u32? - mutual_close: c.mutual_close, // Rule #2 for type u32? - unilateral_close: c.unilateral_close, // Rule #2 for type u32? - unilateral_anchor_close: c.unilateral_anchor_close, // Rule #2 for type u32? #[allow(deprecated)] delayed_to_us: c.delayed_to_us, // Rule #2 for type u32? + // Field: Feerates.perkw.estimates[] + estimates: c.estimates.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + floor: c.floor, // Rule #2 for type u32? #[allow(deprecated)] htlc_resolution: c.htlc_resolution, // Rule #2 for type u32? + max_acceptable: c.max_acceptable, // Rule #2 for type u32 + min_acceptable: c.min_acceptable, // Rule #2 for type u32 + mutual_close: c.mutual_close, // Rule #2 for type u32? + opening: c.opening, // Rule #2 for type u32? penalty: c.penalty, // Rule #2 for type u32? - } - } -} - -#[allow(unused_variables)] -impl From for pb::FeeratesOnchainFeeEstimates { - fn from(c: responses::FeeratesOnchain_fee_estimates) -> Self { - Self { - opening_channel_satoshis: c.opening_channel_satoshis, // Rule #2 for type u64 - mutual_close_satoshis: c.mutual_close_satoshis, // Rule #2 for type u64 - unilateral_close_satoshis: c.unilateral_close_satoshis, // Rule #2 for type u64 - unilateral_close_nonanchor_satoshis: c.unilateral_close_nonanchor_satoshis, // Rule #2 for type u64? - htlc_timeout_satoshis: c.htlc_timeout_satoshis, // Rule #2 for type u64 - htlc_success_satoshis: c.htlc_success_satoshis, // Rule #2 for type u64 + unilateral_anchor_close: c.unilateral_anchor_close, // Rule #2 for type u32? + unilateral_close: c.unilateral_close, // Rule #2 for type u32? } } } @@ -1379,10 +1410,10 @@ impl From for pb::FeeratesOnchainFeeEs impl From for pb::FeeratesResponse { fn from(c: responses::FeeratesResponse) -> Self { Self { - warning_missing_feerates: c.warning_missing_feerates, // Rule #2 for type string? + onchain_fee_estimates: c.onchain_fee_estimates.map(|v| v.into()), perkb: c.perkb.map(|v| v.into()), perkw: c.perkw.map(|v| v.into()), - onchain_fee_estimates: c.onchain_fee_estimates.map(|v| v.into()), + warning_missing_feerates: c.warning_missing_feerates, // Rule #2 for type string? } } } @@ -1391,11 +1422,11 @@ impl From for pb::FeeratesResponse { impl From for pb::FetchinvoiceChanges { fn from(c: responses::FetchinvoiceChanges) -> Self { Self { - description_appended: c.description_appended, // Rule #2 for type string? + amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? description: c.description, // Rule #2 for type string? - vendor_removed: c.vendor_removed, // Rule #2 for type string? + description_appended: c.description_appended, // Rule #2 for type string? vendor: c.vendor, // Rule #2 for type string? - amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + vendor_removed: c.vendor_removed, // Rule #2 for type string? } } } @@ -1405,10 +1436,10 @@ impl From for pb::FetchinvoiceNextPeriod { fn from(c: responses::FetchinvoiceNext_period) -> Self { Self { counter: c.counter, // Rule #2 for type u64 - starttime: c.starttime, // Rule #2 for type u64 endtime: c.endtime, // Rule #2 for type u64 - paywindow_start: c.paywindow_start, // Rule #2 for type u64 paywindow_end: c.paywindow_end, // Rule #2 for type u64 + paywindow_start: c.paywindow_start, // Rule #2 for type u64 + starttime: c.starttime, // Rule #2 for type u64 } } } @@ -1417,8 +1448,8 @@ impl From for pb::FetchinvoiceNextPeriod { impl From for pb::FetchinvoiceResponse { fn from(c: responses::FetchinvoiceResponse) -> Self { Self { - invoice: c.invoice, // Rule #2 for type string changes: Some(c.changes.into()), + invoice: c.invoice, // Rule #2 for type string next_period: c.next_period.map(|v| v.into()), } } @@ -1440,13 +1471,13 @@ impl From for pb::FundchannelChannelType { impl From for pb::FundchannelResponse { fn from(c: responses::FundchannelResponse) -> Self { Self { - tx: hex::decode(&c.tx).unwrap(), // Rule #2 for type hex - txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid - outnum: c.outnum, // Rule #2 for type u32 channel_id: >::as_ref(&c.channel_id).to_vec(), // Rule #2 for type hash channel_type: c.channel_type.map(|v| v.into()), close_to: c.close_to.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? mindepth: c.mindepth, // Rule #2 for type u32? + outnum: c.outnum, // Rule #2 for type u32 + tx: hex::decode(&c.tx).unwrap(), // Rule #2 for type hex + txid: hex::decode(&c.txid).unwrap(), // Rule #2 for type txid } } } @@ -1455,11 +1486,11 @@ impl From for pb::FundchannelResponse { impl From for pb::GetrouteRoute { fn from(c: responses::GetrouteRoute) -> Self { Self { - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey - channel: c.channel.to_string(), // Rule #2 for type short_channel_id - direction: c.direction, // Rule #2 for type u32 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 + direction: c.direction, // Rule #2 for type u32 + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey style: c.style as i32, } } @@ -1480,17 +1511,20 @@ impl From for pb::ListforwardsForwards { fn from(c: responses::ListforwardsForwards) -> Self { Self { created_index: c.created_index, // Rule #2 for type u64? + failcode: c.failcode, // Rule #2 for type u32? + failreason: c.failreason, // Rule #2 for type string? + fee_msat: c.fee_msat.map(|f| f.into()), // Rule #2 for type msat? in_channel: c.in_channel.to_string(), // Rule #2 for type short_channel_id in_htlc_id: c.in_htlc_id, // Rule #2 for type u64? in_msat: Some(c.in_msat.into()), // Rule #2 for type msat - status: c.status as i32, - received_time: c.received_time, // Rule #2 for type number out_channel: c.out_channel.map(|v| v.to_string()), // Rule #2 for type short_channel_id? out_htlc_id: c.out_htlc_id, // Rule #2 for type u64? - updated_index: c.updated_index, // Rule #2 for type u64? - style: c.style.map(|v| v as i32), - fee_msat: c.fee_msat.map(|f| f.into()), // Rule #2 for type msat? out_msat: c.out_msat.map(|f| f.into()), // Rule #2 for type msat? + received_time: c.received_time, // Rule #2 for type number + resolved_time: c.resolved_time, // Rule #2 for type number? + status: c.status as i32, + style: c.style.map(|v| v as i32), + updated_index: c.updated_index, // Rule #2 for type u64? } } } @@ -1509,12 +1543,12 @@ impl From for pb::ListforwardsResponse { impl From for pb::ListoffersOffers { fn from(c: responses::ListoffersOffers) -> Self { Self { - offer_id: >::as_ref(&c.offer_id).to_vec(), // Rule #2 for type hash active: c.active, // Rule #2 for type boolean - single_use: c.single_use, // Rule #2 for type boolean bolt12: c.bolt12, // Rule #2 for type string - used: c.used, // Rule #2 for type boolean 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 } } } @@ -1533,20 +1567,20 @@ impl From for pb::ListoffersResponse { impl From for pb::ListpaysPays { fn from(c: responses::ListpaysPays) -> Self { Self { - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - status: c.status as i32, - destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - created_at: c.created_at, // Rule #2 for type u64 - completed_at: c.completed_at, // Rule #2 for type u64? - label: c.label, // Rule #2 for type string? - bolt11: c.bolt11, // Rule #2 for type string? - description: c.description, // Rule #2 for type string? - bolt12: c.bolt12, // Rule #2 for type string? amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? amount_sent_msat: c.amount_sent_msat.map(|f| f.into()), // Rule #2 for type msat? - preimage: c.preimage.map(|v| v.to_vec()), // Rule #2 for type secret? - number_of_parts: c.number_of_parts, // Rule #2 for type u64? + bolt11: c.bolt11, // Rule #2 for type string? + bolt12: c.bolt12, // Rule #2 for type string? + completed_at: c.completed_at, // Rule #2 for type u64? + created_at: c.created_at, // Rule #2 for type u64 + description: c.description, // Rule #2 for type string? + destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? erroronion: c.erroronion.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + label: c.label, // Rule #2 for type string? + number_of_parts: c.number_of_parts, // Rule #2 for type u64? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash + preimage: c.preimage.map(|v| v.to_vec()), // Rule #2 for type secret? + status: c.status as i32, } } } @@ -1565,12 +1599,12 @@ impl From for pb::ListpaysResponse { impl From for pb::ListhtlcsHtlcs { fn from(c: responses::ListhtlcsHtlcs) -> Self { Self { - short_channel_id: c.short_channel_id.to_string(), // Rule #2 for type short_channel_id - id: c.id, // Rule #2 for type u64 - expiry: c.expiry, // Rule #2 for type u32 amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat direction: c.direction as i32, + expiry: c.expiry, // Rule #2 for type u32 + id: c.id, // Rule #2 for type u64 payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash + short_channel_id: c.short_channel_id.to_string(), // Rule #2 for type short_channel_id state: c.state as i32, } } @@ -1590,13 +1624,13 @@ impl From for pb::ListhtlcsResponse { impl From for pb::OfferResponse { fn from(c: responses::OfferResponse) -> Self { Self { - offer_id: >::as_ref(&c.offer_id).to_vec(), // Rule #2 for type hash active: c.active, // Rule #2 for type boolean - single_use: c.single_use, // Rule #2 for type boolean bolt12: c.bolt12, // Rule #2 for type string - used: c.used, // Rule #2 for type boolean created: c.created, // Rule #2 for type boolean 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 } } } @@ -1623,16 +1657,16 @@ impl From for pb::SendcustommsgResponse { impl From for pb::SetchannelChannels { fn from(c: responses::SetchannelChannels) -> Self { Self { - peer_id: c.peer_id.serialize().to_vec(), // Rule #2 for type pubkey channel_id: >::as_ref(&c.channel_id).to_vec(), // Rule #2 for type hash - short_channel_id: c.short_channel_id.map(|v| v.to_string()), // Rule #2 for type short_channel_id? fee_base_msat: Some(c.fee_base_msat.into()), // Rule #2 for type msat fee_proportional_millionths: c.fee_proportional_millionths, // Rule #2 for type u32 ignore_fee_limits: c.ignore_fee_limits, // Rule #2 for type boolean? - minimum_htlc_out_msat: Some(c.minimum_htlc_out_msat.into()), // Rule #2 for type msat - warning_htlcmin_too_low: c.warning_htlcmin_too_low, // Rule #2 for type string? maximum_htlc_out_msat: Some(c.maximum_htlc_out_msat.into()), // Rule #2 for type msat + minimum_htlc_out_msat: Some(c.minimum_htlc_out_msat.into()), // Rule #2 for type msat + peer_id: c.peer_id.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? warning_htlcmax_too_high: c.warning_htlcmax_too_high, // Rule #2 for type string? + warning_htlcmin_too_low: c.warning_htlcmin_too_low, // Rule #2 for type string? } } } @@ -1660,8 +1694,8 @@ impl From for pb::SigninvoiceResponse { impl From for pb::SignmessageResponse { fn from(c: responses::SignmessageResponse) -> Self { Self { - signature: hex::decode(&c.signature).unwrap(), // Rule #2 for type hex recid: hex::decode(&c.recid).unwrap(), // Rule #2 for type hex + signature: hex::decode(&c.signature).unwrap(), // Rule #2 for type hex zbase: c.zbase, // Rule #2 for type string } } @@ -1676,14 +1710,35 @@ impl From for pb::WaitblockheightResponse { } } +#[allow(unused_variables)] +impl From for pb::WaitDetails { + fn from(c: responses::WaitDetails) -> Self { + Self { + bolt11: c.bolt11, // Rule #2 for type string? + bolt12: c.bolt12, // Rule #2 for type string? + description: c.description, // Rule #2 for type string? + groupid: c.groupid, // Rule #2 for type u64? + in_channel: c.in_channel.map(|v| v.to_string()), // Rule #2 for type short_channel_id? + in_htlc_id: c.in_htlc_id, // Rule #2 for type u64? + in_msat: c.in_msat.map(|f| f.into()), // Rule #2 for type msat? + label: c.label, // Rule #2 for type string? + out_channel: c.out_channel.map(|v| v.to_string()), // Rule #2 for type short_channel_id? + partid: c.partid, // Rule #2 for type u64? + payment_hash: c.payment_hash.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? + status: c.status.map(|v| v as i32), + } + } +} + #[allow(unused_variables)] impl From for pb::WaitResponse { fn from(c: responses::WaitResponse) -> Self { Self { - subsystem: c.subsystem as i32, created: c.created, // Rule #2 for type u64? - updated: c.updated, // Rule #2 for type u64? deleted: c.deleted, // Rule #2 for type u64? + details: c.details.map(|v| v.into()), + subsystem: c.subsystem as i32, + updated: c.updated, // Rule #2 for type u64? } } } @@ -1728,15 +1783,15 @@ impl From for pb::BkprlistincomeIncomeEv fn from(c: responses::BkprlistincomeIncome_events) -> Self { Self { account: c.account, // Rule #2 for type string - tag: c.tag, // Rule #2 for type string credit_msat: Some(c.credit_msat.into()), // Rule #2 for type msat - debit_msat: Some(c.debit_msat.into()), // Rule #2 for type msat currency: c.currency, // Rule #2 for type string - timestamp: c.timestamp, // Rule #2 for type u32 + debit_msat: Some(c.debit_msat.into()), // Rule #2 for type msat description: c.description, // Rule #2 for type string? outpoint: c.outpoint, // Rule #2 for type string? - txid: c.txid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type txid? 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? } } } @@ -1782,10 +1837,10 @@ impl From for pb::ListfundsRequest { impl From for pb::SendpayRoute { fn from(c: requests::SendpayRoute) -> Self { Self { - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey + 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 - amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey } } } @@ -1794,18 +1849,18 @@ impl From for pb::SendpayRoute { impl From for pb::SendpayRequest { fn from(c: requests::SendpayRequest) -> Self { Self { - // Field: SendPay.route[] - route: c.route.into_iter().map(|i| i.into()).collect(), // Rule #3 for type SendpayRoute - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash - label: c.label, // Rule #2 for type string? amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? bolt11: c.bolt11, // Rule #2 for type string? - payment_secret: c.payment_secret.map(|v| v.to_vec()), // Rule #2 for type secret? - partid: c.partid, // Rule #2 for type u64? - localinvreqid: c.localinvreqid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + 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? - description: c.description, // Rule #2 for type string? + 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 } } } @@ -1814,9 +1869,9 @@ impl From for pb::SendpayRequest { 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? - destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? } } } @@ -1834,8 +1889,8 @@ impl From for pb::AddgossipRequest { impl From for pb::AutocleaninvoiceRequest { fn from(c: requests::AutocleaninvoiceRequest) -> Self { Self { - expired_by: c.expired_by, // Rule #2 for type u64? cycle_seconds: c.cycle_seconds, // Rule #2 for type u64? + expired_by: c.expired_by, // Rule #2 for type u64? } } } @@ -1845,8 +1900,8 @@ impl From for pb::CheckmessageRequest { fn from(c: requests::CheckmessageRequest) -> Self { Self { message: c.message, // Rule #2 for type string - zbase: c.zbase, // 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 } } } @@ -1855,14 +1910,14 @@ impl From for pb::CheckmessageRequest { impl From for pb::CloseRequest { fn from(c: requests::CloseRequest) -> Self { Self { - id: c.id, // Rule #2 for type string - unilateraltimeout: c.unilateraltimeout, // Rule #2 for type u32? destination: c.destination, // Rule #2 for type string? fee_negotiation_step: c.fee_negotiation_step, // Rule #2 for type string? - wrong_funding: c.wrong_funding.map(|o|o.into()), // Rule #2 for type outpoint? - force_lease_closed: c.force_lease_closed, // Rule #2 for type boolean? // 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? } } } @@ -1871,8 +1926,8 @@ impl From for pb::CloseRequest { impl From for pb::ConnectRequest { fn from(c: requests::ConnectRequest) -> Self { Self { - id: c.id, // Rule #2 for type string 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? } } @@ -1893,12 +1948,12 @@ impl From for pb::CreateinvoiceRequest { 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 - string: c.string, // Rule #2 for type string? - hex: c.hex.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? mode: c.mode.map(|v| v as i32), - generation: c.generation, // Rule #2 for type u64? + string: c.string, // Rule #2 for type string? } } } @@ -1917,8 +1972,8 @@ impl From for pb::DatastoreusageRequest { impl From for pb::CreateonionHops { fn from(c: requests::CreateonionHops) -> Self { Self { - pubkey: c.pubkey.serialize().to_vec(), // Rule #2 for type pubkey payload: hex::decode(&c.payload).unwrap(), // Rule #2 for type hex + pubkey: c.pubkey.serialize().to_vec(), // Rule #2 for type pubkey } } } @@ -1927,11 +1982,11 @@ impl From for pb::CreateonionHops { 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 - assocdata: hex::decode(&c.assocdata).unwrap(), // Rule #2 for type hex - session_key: c.session_key.map(|v| v.to_vec()), // Rule #2 for type secret? 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? } } } @@ -1940,9 +1995,9 @@ impl From for pb::CreateonionRequest { 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 - generation: c.generation, // Rule #2 for type u64? } } } @@ -1951,9 +2006,9 @@ impl From for pb::DeldatastoreRequest { impl From for pb::DelinvoiceRequest { fn from(c: requests::DelinvoiceRequest) -> Self { Self { + desconly: c.desconly, // Rule #2 for type boolean? label: c.label, // Rule #2 for type string status: c.status as i32, - desconly: c.desconly, // Rule #2 for type boolean? } } } @@ -1963,14 +2018,14 @@ impl From for pb::InvoiceRequest { fn from(c: requests::InvoiceRequest) -> Self { Self { amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat_or_any - label: c.label, // Rule #2 for type string + cltv: c.cltv, // Rule #2 for type u32? + deschashonly: c.deschashonly, // Rule #2 for type boolean? description: c.description, // Rule #2 for type string expiry: c.expiry, // Rule #2 for type u64? // Field: Invoice.fallbacks[] fallbacks: c.fallbacks.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + label: c.label, // Rule #2 for type string preimage: c.preimage.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - cltv: c.cltv, // Rule #2 for type u32? - deschashonly: c.deschashonly, // Rule #2 for type boolean? } } } @@ -1989,13 +2044,13 @@ impl From for pb::ListdatastoreRequest { impl From for pb::ListinvoicesRequest { fn from(c: requests::ListinvoicesRequest) -> Self { Self { - label: c.label, // Rule #2 for type string? + index: c.index.map(|v| v as i32), invstring: c.invstring, // Rule #2 for type string? - payment_hash: c.payment_hash.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + label: c.label, // Rule #2 for type string? + limit: c.limit, // Rule #2 for type u32? offer_id: c.offer_id, // Rule #2 for type string? - index: c.index.map(|v| v as i32), + payment_hash: c.payment_hash.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? start: c.start, // Rule #2 for type u64? - limit: c.limit, // Rule #2 for type u32? } } } @@ -2004,9 +2059,9 @@ impl From for pb::ListinvoicesRequest { impl From for pb::SendonionFirstHop { fn from(c: requests::SendonionFirst_hop) -> Self { Self { - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat delay: c.delay.into(), // Rule #2 for type u16 + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey } } } @@ -2015,19 +2070,19 @@ impl From for pb::SendonionFirstHop { impl From for pb::SendonionRequest { fn from(c: requests::SendonionRequest) -> Self { Self { - onion: hex::decode(&c.onion).unwrap(), // Rule #2 for type hex + 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? + destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? first_hop: Some(c.first_hop.into()), - payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash + groupid: c.groupid, // Rule #2 for type u64? 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.map(|v| v.into()), // Rule #2 for type u16? + payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash // Field: SendOnion.shared_secrets[] shared_secrets: c.shared_secrets.map(|arr| arr.into_iter().map(|i| i.to_vec()).collect()).unwrap_or(vec![]), // Rule #3 - partid: c.partid.map(|v| v.into()), // Rule #2 for type u16? - bolt11: c.bolt11, // Rule #2 for type string? - amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? - destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - localinvreqid: c.localinvreqid.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? - groupid: c.groupid, // Rule #2 for type u64? - description: c.description, // Rule #2 for type string? } } } @@ -2037,11 +2092,11 @@ impl From for pb::ListsendpaysRequest { fn from(c: requests::ListsendpaysRequest) -> Self { Self { bolt11: c.bolt11, // Rule #2 for type string? - payment_hash: c.payment_hash.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? - status: c.status.map(|v| v as i32), index: c.index.map(|v| v as i32), - start: c.start, // Rule #2 for type u64? limit: c.limit, // Rule #2 for type u32? + payment_hash: c.payment_hash.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? + start: c.start, // Rule #2 for type u64? + status: c.status.map(|v| v as i32), } } } @@ -2058,20 +2113,20 @@ impl From for pb::ListtransactionsRequest { impl From for pb::PayRequest { fn from(c: requests::PayRequest) -> Self { Self { - bolt11: c.bolt11, // Rule #2 for type string amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? - label: c.label, // Rule #2 for type string? - riskfactor: c.riskfactor, // Rule #2 for type number? - maxfeepercent: c.maxfeepercent, // Rule #2 for type number? - retry_for: c.retry_for.map(|v| v.into()), // Rule #2 for type u16? - maxdelay: c.maxdelay.map(|v| v.into()), // Rule #2 for type u16? - exemptfee: c.exemptfee.map(|f| f.into()), // Rule #2 for type msat? - localinvreqid: c.localinvreqid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + bolt11: c.bolt11, // Rule #2 for type string + description: c.description, // Rule #2 for type string? // Field: Pay.exclude exclude: c.exclude.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + exemptfee: c.exemptfee.map(|f| f.into()), // Rule #2 for type msat? + label: c.label, // Rule #2 for type string? + localinvreqid: c.localinvreqid.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? + maxdelay: c.maxdelay.map(|v| v.into()), // Rule #2 for type u16? maxfee: c.maxfee.map(|f| f.into()), // Rule #2 for type msat? - description: c.description, // Rule #2 for type string? + maxfeepercent: c.maxfeepercent, // Rule #2 for type number? partial_msat: c.partial_msat.map(|f| f.into()), // Rule #2 for type msat? + retry_for: c.retry_for.map(|v| v.into()), // Rule #2 for type u16? + riskfactor: c.riskfactor, // Rule #2 for type number? } } } @@ -2108,10 +2163,10 @@ impl From for pb::WaitinvoiceRequest { impl From for pb::WaitsendpayRequest { fn from(c: requests::WaitsendpayRequest) -> Self { Self { + groupid: c.groupid, // Rule #2 for type u64? + partid: c.partid, // Rule #2 for type u64? payment_hash: >::as_ref(&c.payment_hash).to_vec(), // Rule #2 for type hash timeout: c.timeout, // Rule #2 for type u32? - partid: c.partid, // Rule #2 for type u64? - groupid: c.groupid, // Rule #2 for type u64? } } } @@ -2130,9 +2185,9 @@ impl From for pb::WithdrawRequest { fn from(c: requests::WithdrawRequest) -> Self { Self { destination: c.destination, // Rule #2 for type string - satoshi: Some(c.satoshi.into()), // Rule #2 for type msat_or_all feerate: c.feerate.map(|o|o.into()), // Rule #2 for type feerate? minconf: c.minconf.map(|v| v.into()), // Rule #2 for type u16? + satoshi: Some(c.satoshi.into()), // Rule #2 for type msat_or_all // Field: Withdraw.utxos[] utxos: c.utxos.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 } @@ -2143,15 +2198,15 @@ impl From for pb::WithdrawRequest { impl From for pb::KeysendRequest { fn from(c: requests::KeysendRequest) -> Self { Self { - destination: c.destination.serialize().to_vec(), // Rule #2 for type pubkey amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat + destination: c.destination.serialize().to_vec(), // Rule #2 for type pubkey + exemptfee: c.exemptfee.map(|f| f.into()), // Rule #2 for type msat? + extratlvs: c.extratlvs.map(|s| s.into()), // Rule #2 for type TlvStream? label: c.label, // Rule #2 for type string? + maxdelay: c.maxdelay, // Rule #2 for type u32? maxfeepercent: c.maxfeepercent, // Rule #2 for type number? retry_for: c.retry_for, // Rule #2 for type u32? - maxdelay: c.maxdelay, // Rule #2 for type u32? - exemptfee: c.exemptfee.map(|f| f.into()), // Rule #2 for type msat? routehints: c.routehints.map(|rl| rl.into()), // Rule #2 for type RoutehintList? - extratlvs: c.extratlvs.map(|s| s.into()), // Rule #2 for type TlvStream? } } } @@ -2160,16 +2215,16 @@ impl From for pb::KeysendRequest { impl From for pb::FundpsbtRequest { fn from(c: requests::FundpsbtRequest) -> Self { Self { - satoshi: Some(c.satoshi.into()), // Rule #2 for type msat_or_all + excess_as_change: c.excess_as_change, // Rule #2 for type boolean? feerate: Some(c.feerate.into()), // Rule #2 for type feerate - startweight: c.startweight, // Rule #2 for type u32 - minconf: c.minconf, // Rule #2 for type u32? - reserve: c.reserve, // Rule #2 for type u32? locktime: c.locktime, // Rule #2 for type u32? min_witness_weight: c.min_witness_weight, // Rule #2 for type u32? - excess_as_change: c.excess_as_change, // Rule #2 for type boolean? + minconf: c.minconf, // Rule #2 for type u32? nonwrapped: c.nonwrapped, // Rule #2 for type boolean? opening_anchor_channel: c.opening_anchor_channel, // Rule #2 for type boolean? + reserve: c.reserve, // Rule #2 for type u32? + satoshi: Some(c.satoshi.into()), // Rule #2 for type msat_or_all + startweight: c.startweight, // Rule #2 for type u32 } } } @@ -2199,17 +2254,17 @@ impl From for pb::SignpsbtRequest { impl From for pb::UtxopsbtRequest { fn from(c: requests::UtxopsbtRequest) -> Self { Self { - satoshi: Some(c.satoshi.into()), // Rule #2 for type msat_or_all + excess_as_change: c.excess_as_change, // Rule #2 for type boolean? feerate: Some(c.feerate.into()), // Rule #2 for type feerate - startweight: c.startweight, // Rule #2 for type u32 - // Field: UtxoPsbt.utxos[] - utxos: c.utxos.into_iter().map(|i| i.into()).collect(), // Rule #3 for type outpoint - reserve: c.reserve, // Rule #2 for type u32? - reservedok: c.reservedok, // Rule #2 for type boolean? locktime: c.locktime, // Rule #2 for type u32? min_witness_weight: c.min_witness_weight, // Rule #2 for type u32? - excess_as_change: c.excess_as_change, // Rule #2 for type boolean? opening_anchor_channel: c.opening_anchor_channel, // Rule #2 for type boolean? + reserve: c.reserve, // Rule #2 for type u32? + reservedok: c.reservedok, // Rule #2 for type boolean? + satoshi: Some(c.satoshi.into()), // Rule #2 for type msat_or_all + startweight: c.startweight, // Rule #2 for type u32 + // Field: UtxoPsbt.utxos[] + utxos: c.utxos.into_iter().map(|i| i.into()).collect(), // Rule #3 for type outpoint } } } @@ -2227,10 +2282,10 @@ impl From for pb::TxdiscardRequest { impl From for pb::TxprepareRequest { fn from(c: requests::TxprepareRequest) -> Self { Self { - // Field: TxPrepare.outputs[] - outputs: c.outputs.into_iter().map(|i| i.into()).collect(), // Rule #3 for type outputdesc feerate: c.feerate.map(|o|o.into()), // Rule #2 for type feerate? minconf: c.minconf, // Rule #2 for type u32? + // Field: TxPrepare.outputs[] + outputs: c.outputs.into_iter().map(|i| i.into()).collect(), // Rule #3 for type outputdesc // Field: TxPrepare.utxos[] utxos: c.utxos.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 } @@ -2287,8 +2342,8 @@ impl From for pb::DecodeRequest { impl From for pb::DisconnectRequest { fn from(c: requests::DisconnectRequest) -> Self { Self { - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey force: c.force, // Rule #2 for type boolean? + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey } } } @@ -2306,14 +2361,14 @@ impl From for pb::FeeratesRequest { impl From for pb::FetchinvoiceRequest { fn from(c: requests::FetchinvoiceRequest) -> Self { Self { - offer: c.offer, // Rule #2 for type string amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? + offer: c.offer, // Rule #2 for type string + payer_note: c.payer_note, // Rule #2 for type string? quantity: c.quantity, // Rule #2 for type u64? recurrence_counter: c.recurrence_counter, // Rule #2 for type u64? - recurrence_start: c.recurrence_start, // Rule #2 for type number? recurrence_label: c.recurrence_label, // Rule #2 for type string? + recurrence_start: c.recurrence_start, // Rule #2 for type number? timeout: c.timeout, // Rule #2 for type number? - payer_note: c.payer_note, // Rule #2 for type string? } } } @@ -2322,21 +2377,21 @@ impl From for pb::FetchinvoiceRequest { impl From for pb::FundchannelRequest { fn from(c: requests::FundchannelRequest) -> Self { Self { - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey amount: Some(c.amount.into()), // Rule #2 for type msat_or_all - feerate: c.feerate.map(|o|o.into()), // Rule #2 for type feerate? announce: c.announce, // Rule #2 for type boolean? + // Field: FundChannel.channel_type[] + channel_type: c.channel_type.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + close_to: c.close_to, // Rule #2 for type string? + compact_lease: c.compact_lease, // Rule #2 for type string? + feerate: c.feerate.map(|o|o.into()), // Rule #2 for type feerate? + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey minconf: c.minconf, // Rule #2 for type u32? + mindepth: c.mindepth, // Rule #2 for type u32? push_msat: c.push_msat.map(|f| f.into()), // Rule #2 for type msat? - close_to: c.close_to, // Rule #2 for type string? request_amt: c.request_amt.map(|f| f.into()), // Rule #2 for type msat? - compact_lease: c.compact_lease, // Rule #2 for type string? + reserve: c.reserve.map(|f| f.into()), // Rule #2 for type msat? // Field: FundChannel.utxos[] utxos: c.utxos.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 - mindepth: c.mindepth, // Rule #2 for type u32? - reserve: c.reserve.map(|f| f.into()), // Rule #2 for type msat? - // Field: FundChannel.channel_type[] - channel_type: c.channel_type.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 } } } @@ -2345,15 +2400,15 @@ impl From for pb::FundchannelRequest { impl From for pb::GetrouteRequest { fn from(c: requests::GetrouteRequest) -> Self { Self { - id: c.id.serialize().to_vec(), // Rule #2 for type pubkey amount_msat: Some(c.amount_msat.into()), // Rule #2 for type msat - riskfactor: c.riskfactor, // Rule #2 for type u64 cltv: c.cltv, // Rule #2 for type u32? - fromid: c.fromid.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? - fuzzpercent: c.fuzzpercent, // Rule #2 for type u32? // Field: GetRoute.exclude[] exclude: c.exclude.map(|arr| arr.into_iter().map(|i| i.into()).collect()).unwrap_or(vec![]), // Rule #3 + fromid: c.fromid.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? + fuzzpercent: c.fuzzpercent, // Rule #2 for type u32? + id: c.id.serialize().to_vec(), // Rule #2 for type pubkey maxhops: c.maxhops, // Rule #2 for type u32? + riskfactor: c.riskfactor, // Rule #2 for type u64 } } } @@ -2362,12 +2417,12 @@ impl From for pb::GetrouteRequest { impl From for pb::ListforwardsRequest { fn from(c: requests::ListforwardsRequest) -> Self { Self { - status: c.status.map(|v| v as i32), in_channel: c.in_channel.map(|v| v.to_string()), // Rule #2 for type short_channel_id? - out_channel: c.out_channel.map(|v| v.to_string()), // Rule #2 for type short_channel_id? index: c.index.map(|v| v as i32), - start: c.start, // Rule #2 for type u64? limit: c.limit, // Rule #2 for type u32? + out_channel: c.out_channel.map(|v| v.to_string()), // Rule #2 for type short_channel_id? + start: c.start, // Rule #2 for type u64? + status: c.status.map(|v| v as i32), } } } @@ -2376,8 +2431,8 @@ impl From for pb::ListforwardsRequest { impl From for pb::ListoffersRequest { fn from(c: requests::ListoffersRequest) -> Self { Self { - offer_id: c.offer_id.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? active_only: c.active_only, // Rule #2 for type boolean? + offer_id: c.offer_id.map(|v| >::as_ref(&v).to_vec()), // Rule #2 for type hash? } } } @@ -2406,16 +2461,16 @@ impl From for pb::ListhtlcsRequest { impl From for pb::OfferRequest { fn from(c: requests::OfferRequest) -> Self { Self { + absolute_expiry: c.absolute_expiry, // Rule #2 for type u64? amount: c.amount, // Rule #2 for type string description: c.description, // Rule #2 for type string issuer: c.issuer, // Rule #2 for type string? label: c.label, // Rule #2 for type string? quantity_max: c.quantity_max, // Rule #2 for type u64? - absolute_expiry: c.absolute_expiry, // Rule #2 for type u64? recurrence: c.recurrence, // Rule #2 for type string? recurrence_base: c.recurrence_base, // Rule #2 for type string? - recurrence_paywindow: c.recurrence_paywindow, // Rule #2 for type string? recurrence_limit: c.recurrence_limit, // Rule #2 for type u32? + recurrence_paywindow: c.recurrence_paywindow, // Rule #2 for type string? single_use: c.single_use, // Rule #2 for type boolean? } } @@ -2436,8 +2491,8 @@ impl From for pb::PingRequest { impl From for pb::SendcustommsgRequest { fn from(c: requests::SendcustommsgRequest) -> Self { Self { - node_id: c.node_id.serialize().to_vec(), // Rule #2 for type pubkey msg: hex::decode(&c.msg).unwrap(), // Rule #2 for type hex + node_id: c.node_id.serialize().to_vec(), // Rule #2 for type pubkey } } } @@ -2446,12 +2501,12 @@ impl From for pb::SendcustommsgRequest { impl From for pb::SetchannelRequest { fn from(c: requests::SetchannelRequest) -> Self { Self { - id: c.id, // Rule #2 for type string + enforcedelay: c.enforcedelay, // Rule #2 for type u32? feebase: c.feebase.map(|f| f.into()), // Rule #2 for type msat? feeppm: c.feeppm, // Rule #2 for type u32? - htlcmin: c.htlcmin.map(|f| f.into()), // Rule #2 for type msat? htlcmax: c.htlcmax.map(|f| f.into()), // Rule #2 for type msat? - enforcedelay: c.enforcedelay, // Rule #2 for type u32? + htlcmin: c.htlcmin.map(|f| f.into()), // Rule #2 for type msat? + id: c.id, // Rule #2 for type string ignorefeelimits: c.ignorefeelimits, // Rule #2 for type boolean? } } @@ -2489,9 +2544,9 @@ impl From for pb::WaitblockheightRequest { impl From for pb::WaitRequest { fn from(c: requests::WaitRequest) -> Self { Self { - subsystem: c.subsystem as i32, indexname: c.indexname as i32, nextvalue: c.nextvalue, // Rule #2 for type u64 + subsystem: c.subsystem as i32, } } } @@ -2508,9 +2563,9 @@ impl From for pb::StopRequest { impl From for pb::PreapprovekeysendRequest { fn from(c: requests::PreapprovekeysendRequest) -> Self { Self { + amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? destination: c.destination.map(|v| v.serialize().to_vec()), // Rule #2 for type pubkey? payment_hash: c.payment_hash.map(|v| hex::decode(v).unwrap()), // Rule #2 for type hex? - amount_msat: c.amount_msat.map(|f| f.into()), // Rule #2 for type msat? } } } @@ -2537,8 +2592,8 @@ impl From for pb::BkprlistincomeRequest { fn from(c: requests::BkprlistincomeRequest) -> Self { Self { consolidate_fees: c.consolidate_fees, // Rule #2 for type boolean? - start_time: c.start_time, // Rule #2 for type u32? end_time: c.end_time, // Rule #2 for type u32? + start_time: c.start_time, // Rule #2 for type u32? } } } @@ -2575,10 +2630,10 @@ impl From for requests::ListfundsRequest { impl From for requests::SendpayRoute { fn from(c: pb::SendpayRoute) -> Self { Self { - id: PublicKey::from_slice(&c.id).unwrap(), // Rule #1 for type pubkey + amount_msat: c.amount_msat.unwrap().into(), // Rule #1 for type msat channel: cln_rpc::primitives::ShortChannelId::from_str(&c.channel).unwrap(), // Rule #1 for type short_channel_id delay: c.delay, // Rule #1 for type u32 - amount_msat: c.amount_msat.unwrap().into(), // Rule #1 for type msat + id: PublicKey::from_slice(&c.id).unwrap(), // Rule #1 for type pubkey } } } @@ -2587,17 +2642,17 @@ impl From for requests::SendpayRoute { impl From for requests::SendpayRequest { fn from(c: pb::SendpayRequest) -> Self { Self { - route: c.route.into_iter().map(|s| s.into()).collect(), // Rule #4 - payment_hash: Sha256::from_slice(&c.payment_hash).unwrap(), // Rule #1 for type hash - label: c.label, // Rule #1 for type string? amount_msat: c.amount_msat.map(|a| a.into()), // Rule #1 for type msat? bolt11: c.bolt11, // Rule #1 for type string? - payment_secret: c.payment_secret.map(|v| v.try_into().unwrap()), // Rule #1 for type secret? - partid: c.partid, // Rule #1 for type u64? - localinvreqid: c.localinvreqid.map(|v| hex::encode(v)), // Rule #1 for type hex? + description: c.description, // Rule #1 for type string? groupid: c.groupid, // Rule #1 for type u64? + label: c.label, // Rule #1 for type string? + localinvreqid: c.localinvreqid.map(|v| hex::encode(v)), // 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 payment_metadata: c.payment_metadata.map(|v| hex::encode(v)), // Rule #1 for type hex? - description: c.description, // Rule #1 for type string? + payment_secret: c.payment_secret.map(|v| v.try_into().unwrap()), // Rule #1 for type secret? + route: c.route.into_iter().map(|s| s.into()).collect(), // Rule #4 } } } @@ -2606,9 +2661,9 @@ impl From for requests::SendpayRequest { impl From for requests::ListchannelsRequest { fn from(c: pb::ListchannelsRequest) -> Self { Self { + destination: c.destination.map(|v| PublicKey::from_slice(&v).unwrap()), // Rule #1 for type pubkey? short_channel_id: c.short_channel_id.map(|v| cln_rpc::primitives::ShortChannelId::from_str(&v).unwrap()), // Rule #1 for type short_channel_id? source: c.source.map(|v| PublicKey::from_slice(&v).unwrap()), // Rule #1 for type pubkey? - destination: c.destination.map(|v| PublicKey::from_slice(&v).unwrap()), // Rule #1 for type pubkey? } } } @@ -2626,8 +2681,8 @@ impl From for requests::AddgossipRequest { impl From for requests::AutocleaninvoiceRequest { fn from(c: pb::AutocleaninvoiceRequest) -> Self { Self { - expired_by: c.expired_by, // Rule #1 for type u64? cycle_seconds: c.cycle_seconds, // Rule #1 for type u64? + expired_by: c.expired_by, // Rule #1 for type u64? } } } @@ -2637,8 +2692,8 @@ impl From for requests::CheckmessageRequest { fn from(c: pb::CheckmessageRequest) -> Self { Self { message: c.message, // Rule #1 for type string - zbase: c.zbase, // Rule #1 for type string pubkey: c.pubkey.map(|v| PublicKey::from_slice(&v).unwrap()), // Rule #1 for type pubkey? + zbase: c.zbase, // Rule #1 for type string } } } @@ -2647,13 +2702,13 @@ impl From for requests::CheckmessageRequest { impl From for requests::CloseRequest { fn from(c: pb::CloseRequest) -> Self { Self { - id: c.id, // Rule #1 for type string - unilateraltimeout: c.unilateraltimeout, // Rule #1 for type u32? destination: c.destination, // Rule #1 for type string? fee_negotiation_step: c.fee_negotiation_step, // Rule #1 for type string? - wrong_funding: c.wrong_funding.map(|a| a.into()), // Rule #1 for type outpoint? - force_lease_closed: c.force_lease_closed, // Rule #1 for type boolean? feerange: Some(c.feerange.into_iter().map(|s| s.into()).collect()), // Rule #4 + force_lease_closed: c.force_lease_closed, // Rule #1 for type boolean? + id: c.id, // Rule #1 for type string + unilateraltimeout: c.unilateraltimeout, // Rule #1 for type u32? + wrong_funding: c.wrong_funding.map(|a| a.into()), // Rule #1 for type outpoint? } } } @@ -2662,8 +2717,8 @@ impl From for requests::CloseRequest { impl From for requests::ConnectRequest { fn from(c: pb::ConnectRequest) -> Self { Self { - id: c.id, // Rule #1 for type string host: c.host, // Rule #1 for type string? + id: c.id, // Rule #1 for type string port: c.port.map(|v| v as u16), // Rule #1 for type u16? } } @@ -2684,11 +2739,11 @@ impl From for requests::CreateinvoiceRequest { impl From for requests::DatastoreRequest { fn from(c: pb::DatastoreRequest) -> Self { Self { - key: c.key.into_iter().map(|s| s.into()).collect(), // Rule #4 - string: c.string, // Rule #1 for type string? + generation: c.generation, // Rule #1 for type u64? hex: c.hex.map(|v| hex::encode(v)), // Rule #1 for type hex? + key: c.key.into_iter().map(|s| s.into()).collect(), // Rule #4 mode: c.mode.map(|v| v.try_into().unwrap()), - generation: c.generation, // Rule #1 for type u64? + string: c.string, // Rule #1 for type string? } } } @@ -2706,8 +2761,8 @@ impl From for requests::DatastoreusageRequest { impl From for requests::CreateonionHops { fn from(c: pb::CreateonionHops) -> Self { Self { - pubkey: PublicKey::from_slice(&c.pubkey).unwrap(), // Rule #1 for type pubkey payload: hex::encode(&c.payload), // Rule #1 for type hex + pubkey: PublicKey::from_slice(&c.pubkey).unwrap(), // Rule #1 for type pubkey } } } @@ -2716,10 +2771,10 @@ impl From for requests::CreateonionHops { impl From for requests::CreateonionRequest { fn from(c: pb::CreateonionRequest) -> Self { Self { - hops: c.hops.into_iter().map(|s| s.into()).collect(), // Rule #4 assocdata: hex::encode(&c.assocdata), // Rule #1 for type hex - session_key: c.session_key.map(|v| v.try_into().unwrap()), // Rule #1 for type secret? + hops: c.hops.into_iter().map(|s| s.into()).collect(), // Rule #4 onion_size: c.onion_size.map(|v| v as u16), // Rule #1 for type u16? + session_key: c.session_key.map(|v| v.try_into().unwrap()), // Rule #1 for type secret? } } } @@ -2728,8 +2783,8 @@ impl From for requests::CreateonionRequest { impl From for requests::DeldatastoreRequest { fn from(c: pb::DeldatastoreRequest) -> Self { Self { - key: c.key.into_iter().map(|s| s.into()).collect(), // Rule #4 generation: c.generation, // Rule #1 for type u64? + key: c.key.into_iter().map(|s| s.into()).collect(), // Rule #4 } } } @@ -2738,9 +2793,9 @@ impl From for requests::DeldatastoreRequest { impl From for requests::DelinvoiceRequest { fn from(c: pb::DelinvoiceRequest) -> Self { Self { + desconly: c.desconly, // Rule #1 for type boolean? label: c.label, // Rule #1 for type string status: c.status.try_into().unwrap(), - desconly: c.desconly, // Rule #1 for type boolean? } } } @@ -2750,13 +2805,13 @@ impl From for requests::InvoiceRequest { fn from(c: pb::InvoiceRequest) -> Self { Self { amount_msat: c.amount_msat.unwrap().into(), // Rule #1 for type msat_or_any - label: c.label, // Rule #1 for type string + cltv: c.cltv, // Rule #1 for type u32? + deschashonly: c.deschashonly, // Rule #1 for type boolean? description: c.description, // Rule #1 for type string expiry: c.expiry, // Rule #1 for type u64? fallbacks: Some(c.fallbacks.into_iter().map(|s| s.into()).collect()), // Rule #4 + label: c.label, // Rule #1 for type string preimage: c.preimage.map(|v| hex::encode(v)), // Rule #1 for type hex? - cltv: c.cltv, // Rule #1 for type u32? - deschashonly: c.deschashonly, // Rule #1 for type boolean? } } } @@ -2774,13 +2829,13 @@ impl From for requests::ListdatastoreRequest { impl From for requests::ListinvoicesRequest { fn from(c: pb::ListinvoicesRequest) -> Self { Self { - label: c.label, // Rule #1 for type string? + index: c.index.map(|v| v.try_into().unwrap()), invstring: c.invstring, // Rule #1 for type string? - payment_hash: c.payment_hash.map(|v| hex::encode(v)), // Rule #1 for type hex? + label: c.label, // Rule #1 for type string? + limit: c.limit, // Rule #1 for type u32? offer_id: c.offer_id, // Rule #1 for type string? - index: c.index.map(|v| v.try_into().unwrap()), + payment_hash: c.payment_hash.map(|v| hex::encode(v)), // Rule #1 for type hex? start: c.start, // Rule #1 for type u64? - limit: c.limit, // Rule #1 for type u32? } } } @@ -2789,9 +2844,9 @@ impl From for requests::ListinvoicesRequest { impl From for requests::SendonionFirst_hop { fn from(c: pb::SendonionFirstHop) -> Self { Self { - id: PublicKey::from_slice(&c.id).unwrap(), // Rule #1 for type pubkey amount_msat: c.amount_msat.unwrap().into(), // Rule #1 for type msat delay: c.delay as u16, // Rule #1 for type u16 + id: PublicKey::from_slice(&c.id).unwrap(), // Rule #1 for type pubkey } } } @@ -2800,18 +2855,18 @@ impl From for requests::SendonionFirst_hop { impl From for requests::SendonionRequest { fn from(c: pb::SendonionRequest) -> Self { Self { - onion: hex::encode(&c.onion), // Rule #1 for type hex - first_hop: c.first_hop.unwrap().into(), - payment_hash: Sha256::from_slice(&c.payment_hash).unwrap(), // Rule #1 for type hash - label: c.label, // Rule #1 for type string? - shared_secrets: Some(c.shared_secrets.into_iter().map(|s| s.try_into().unwrap()).collect()), // Rule #4 - partid: c.partid.map(|v| v as u16), // Rule #1 for type u16? - bolt11: c.bolt11, // Rule #1 for type string? amount_msat: c.amount_msat.map(|a| a.into()), // Rule #1 for type msat? + bolt11: c.bolt11, // Rule #1 for type string? + description: c.description, // Rule #1 for type string? destination: c.destination.map(|v| PublicKey::from_slice(&v).unwrap()), // Rule #1 for type pubkey? - localinvreqid: c.localinvreqid.map(|v| Sha256::from_slice(&v).unwrap()), // Rule #1 for type hash? + first_hop: c.first_hop.unwrap().into(), groupid: c.groupid, // Rule #1 for type u64? - description: c.description, // 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.map(|v| v as u16), // Rule #1 for type u16? + payment_hash: Sha256::from_slice(&c.payment_hash).unwrap(), // Rule #1 for type hash + shared_secrets: Some(c.shared_secrets.into_iter().map(|s| s.try_into().unwrap()).collect()), // Rule #4 } } } @@ -2821,11 +2876,11 @@ impl From for requests::ListsendpaysRequest { fn from(c: pb::ListsendpaysRequest) -> Self { Self { bolt11: c.bolt11, // Rule #1 for type string? - payment_hash: c.payment_hash.map(|v| Sha256::from_slice(&v).unwrap()), // Rule #1 for type hash? - status: c.status.map(|v| v.try_into().unwrap()), index: c.index.map(|v| v.try_into().unwrap()), - start: c.start, // Rule #1 for type u64? limit: c.limit, // Rule #1 for type u32? + payment_hash: c.payment_hash.map(|v| Sha256::from_slice(&v).unwrap()), // Rule #1 for type hash? + start: c.start, // Rule #1 for type u64? + status: c.status.map(|v| v.try_into().unwrap()), } } } @@ -2842,19 +2897,19 @@ impl From for requests::ListtransactionsRequest { impl From for requests::PayRequest { fn from(c: pb::PayRequest) -> Self { Self { - bolt11: c.bolt11, // Rule #1 for type string amount_msat: c.amount_msat.map(|a| a.into()), // Rule #1 for type msat? - label: c.label, // Rule #1 for type string? - riskfactor: c.riskfactor, // Rule #1 for type number? - maxfeepercent: c.maxfeepercent, // Rule #1 for type number? - retry_for: c.retry_for.map(|v| v as u16), // Rule #1 for type u16? - maxdelay: c.maxdelay.map(|v| v as u16), // Rule #1 for type u16? + bolt11: c.bolt11, // Rule #1 for type string + description: c.description, // Rule #1 for type string? + exclude: Some(c.exclude.into_iter().map(|s| s.into()).collect()), // Rule #4 exemptfee: c.exemptfee.map(|a| a.into()), // Rule #1 for type msat? + label: c.label, // Rule #1 for type string? localinvreqid: c.localinvreqid.map(|v| hex::encode(v)), // Rule #1 for type hex? - exclude: Some(c.exclude.into_iter().map(|s| s.into()).collect()), // Rule #4 + maxdelay: c.maxdelay.map(|v| v as u16), // Rule #1 for type u16? maxfee: c.maxfee.map(|a| a.into()), // Rule #1 for type msat? - description: c.description, // Rule #1 for type string? + maxfeepercent: c.maxfeepercent, // Rule #1 for type number? partial_msat: c.partial_msat.map(|a| a.into()), // Rule #1 for type msat? + retry_for: c.retry_for.map(|v| v as u16), // Rule #1 for type u16? + riskfactor: c.riskfactor, // Rule #1 for type number? } } } @@ -2891,10 +2946,10 @@ impl From for requests::WaitinvoiceRequest { impl From for requests::WaitsendpayRequest { fn from(c: pb::WaitsendpayRequest) -> Self { Self { + groupid: c.groupid, // Rule #1 for type u64? + partid: c.partid, // Rule #1 for type u64? payment_hash: Sha256::from_slice(&c.payment_hash).unwrap(), // Rule #1 for type hash timeout: c.timeout, // Rule #1 for type u32? - partid: c.partid, // Rule #1 for type u64? - groupid: c.groupid, // Rule #1 for type u64? } } } @@ -2913,9 +2968,9 @@ impl From for requests::WithdrawRequest { fn from(c: pb::WithdrawRequest) -> Self { Self { destination: c.destination, // Rule #1 for type string - satoshi: c.satoshi.unwrap().into(), // Rule #1 for type msat_or_all feerate: c.feerate.map(|a| a.into()), // Rule #1 for type feerate? minconf: c.minconf.map(|v| v as u16), // Rule #1 for type u16? + satoshi: c.satoshi.unwrap().into(), // Rule #1 for type msat_or_all utxos: Some(c.utxos.into_iter().map(|s| s.into()).collect()), // Rule #4 } } @@ -2925,15 +2980,15 @@ impl From for requests::WithdrawRequest { impl From for requests::KeysendRequest { fn from(c: pb::KeysendRequest) -> Self { Self { - destination: PublicKey::from_slice(&c.destination).unwrap(), // Rule #1 for type pubkey amount_msat: c.amount_msat.unwrap().into(), // Rule #1 for type msat + destination: PublicKey::from_slice(&c.destination).unwrap(), // Rule #1 for type pubkey + exemptfee: c.exemptfee.map(|a| a.into()), // Rule #1 for type msat? + extratlvs: c.extratlvs.map(|s| s.into()), // Rule #1 for type TlvStream? label: c.label, // Rule #1 for type string? + maxdelay: c.maxdelay, // Rule #1 for type u32? maxfeepercent: c.maxfeepercent, // Rule #1 for type number? retry_for: c.retry_for, // Rule #1 for type u32? - maxdelay: c.maxdelay, // Rule #1 for type u32? - exemptfee: c.exemptfee.map(|a| a.into()), // Rule #1 for type msat? routehints: c.routehints.map(|rl| rl.into()), // Rule #1 for type RoutehintList? - extratlvs: c.extratlvs.map(|s| s.into()), // Rule #1 for type TlvStream? } } } @@ -2942,16 +2997,16 @@ impl From for requests::KeysendRequest { impl From for requests::FundpsbtRequest { fn from(c: pb::FundpsbtRequest) -> Self { Self { - satoshi: c.satoshi.unwrap().into(), // Rule #1 for type msat_or_all + excess_as_change: c.excess_as_change, // Rule #1 for type boolean? feerate: c.feerate.unwrap().into(), // Rule #1 for type feerate - startweight: c.startweight, // Rule #1 for type u32 - minconf: c.minconf, // Rule #1 for type u32? - reserve: c.reserve, // Rule #1 for type u32? locktime: c.locktime, // Rule #1 for type u32? min_witness_weight: c.min_witness_weight, // Rule #1 for type u32? - excess_as_change: c.excess_as_change, // Rule #1 for type boolean? + minconf: c.minconf, // Rule #1 for type u32? nonwrapped: c.nonwrapped, // Rule #1 for type boolean? opening_anchor_channel: c.opening_anchor_channel, // Rule #1 for type boolean? + reserve: c.reserve, // Rule #1 for type u32? + satoshi: c.satoshi.unwrap().into(), // Rule #1 for type msat_or_all + startweight: c.startweight, // Rule #1 for type u32 } } } @@ -2980,16 +3035,16 @@ impl From for requests::SignpsbtRequest { impl From for requests::UtxopsbtRequest { fn from(c: pb::UtxopsbtRequest) -> Self { Self { - satoshi: c.satoshi.unwrap().into(), // Rule #1 for type msat_or_all + excess_as_change: c.excess_as_change, // Rule #1 for type boolean? feerate: c.feerate.unwrap().into(), // Rule #1 for type feerate - startweight: c.startweight, // Rule #1 for type u32 - utxos: c.utxos.into_iter().map(|s| s.into()).collect(), // Rule #4 - reserve: c.reserve, // Rule #1 for type u32? - reservedok: c.reservedok, // Rule #1 for type boolean? locktime: c.locktime, // Rule #1 for type u32? min_witness_weight: c.min_witness_weight, // Rule #1 for type u32? - excess_as_change: c.excess_as_change, // Rule #1 for type boolean? opening_anchor_channel: c.opening_anchor_channel, // Rule #1 for type boolean? + reserve: c.reserve, // Rule #1 for type u32? + reservedok: c.reservedok, // Rule #1 for type boolean? + satoshi: c.satoshi.unwrap().into(), // Rule #1 for type msat_or_all + startweight: c.startweight, // Rule #1 for type u32 + utxos: c.utxos.into_iter().map(|s| s.into()).collect(), // Rule #4 } } } @@ -3007,9 +3062,9 @@ impl From for requests::TxdiscardRequest { impl From for requests::TxprepareRequest { fn from(c: pb::TxprepareRequest) -> Self { Self { - outputs: c.outputs.into_iter().map(|s| s.into()).collect(), // Rule #4 feerate: c.feerate.map(|a| a.into()), // Rule #1 for type feerate? minconf: c.minconf, // Rule #1 for type u32? + outputs: c.outputs.into_iter().map(|s| s.into()).collect(), // Rule #4 utxos: Some(c.utxos.into_iter().map(|s| s.into()).collect()), // Rule #4 } } @@ -3065,8 +3120,8 @@ impl From for requests::DecodeRequest { impl From for requests::DisconnectRequest { fn from(c: pb::DisconnectRequest) -> Self { Self { - id: PublicKey::from_slice(&c.id).unwrap(), // Rule #1 for type pubkey force: c.force, // Rule #1 for type boolean? + id: PublicKey::from_slice(&c.id).unwrap(), // Rule #1 for type pubkey } } } @@ -3084,14 +3139,14 @@ impl From for requests::FeeratesRequest { impl From for requests::FetchinvoiceRequest { fn from(c: pb::FetchinvoiceRequest) -> Self { Self { - offer: c.offer, // Rule #1 for type string amount_msat: c.amount_msat.map(|a| a.into()), // Rule #1 for type msat? + offer: c.offer, // Rule #1 for type string + payer_note: c.payer_note, // Rule #1 for type string? quantity: c.quantity, // Rule #1 for type u64? recurrence_counter: c.recurrence_counter, // Rule #1 for type u64? - recurrence_start: c.recurrence_start, // Rule #1 for type number? recurrence_label: c.recurrence_label, // Rule #1 for type string? + recurrence_start: c.recurrence_start, // Rule #1 for type number? timeout: c.timeout, // Rule #1 for type number? - payer_note: c.payer_note, // Rule #1 for type string? } } } @@ -3100,19 +3155,19 @@ impl From for requests::FetchinvoiceRequest { impl From for requests::FundchannelRequest { fn from(c: pb::FundchannelRequest) -> Self { Self { - id: PublicKey::from_slice(&c.id).unwrap(), // Rule #1 for type pubkey amount: c.amount.unwrap().into(), // Rule #1 for type msat_or_all - feerate: c.feerate.map(|a| a.into()), // Rule #1 for type feerate? announce: c.announce, // Rule #1 for type boolean? - minconf: c.minconf, // Rule #1 for type u32? - push_msat: c.push_msat.map(|a| a.into()), // Rule #1 for type msat? + channel_type: Some(c.channel_type.into_iter().map(|s| s).collect()), // Rule #4 close_to: c.close_to, // Rule #1 for type string? - request_amt: c.request_amt.map(|a| a.into()), // Rule #1 for type msat? compact_lease: c.compact_lease, // Rule #1 for type string? - utxos: Some(c.utxos.into_iter().map(|s| s.into()).collect()), // Rule #4 + feerate: c.feerate.map(|a| a.into()), // Rule #1 for type feerate? + id: PublicKey::from_slice(&c.id).unwrap(), // Rule #1 for type pubkey + minconf: c.minconf, // Rule #1 for type u32? mindepth: c.mindepth, // Rule #1 for type u32? + push_msat: c.push_msat.map(|a| a.into()), // Rule #1 for type msat? + request_amt: c.request_amt.map(|a| a.into()), // Rule #1 for type msat? reserve: c.reserve.map(|a| a.into()), // Rule #1 for type msat? - channel_type: Some(c.channel_type.into_iter().map(|s| s).collect()), // Rule #4 + utxos: Some(c.utxos.into_iter().map(|s| s.into()).collect()), // Rule #4 } } } @@ -3121,14 +3176,14 @@ impl From for requests::FundchannelRequest { impl From for requests::GetrouteRequest { fn from(c: pb::GetrouteRequest) -> Self { Self { - id: PublicKey::from_slice(&c.id).unwrap(), // Rule #1 for type pubkey amount_msat: c.amount_msat.unwrap().into(), // Rule #1 for type msat - riskfactor: c.riskfactor, // Rule #1 for type u64 cltv: c.cltv, // Rule #1 for type u32? + exclude: Some(c.exclude.into_iter().map(|s| s.into()).collect()), // Rule #4 fromid: c.fromid.map(|v| PublicKey::from_slice(&v).unwrap()), // Rule #1 for type pubkey? fuzzpercent: c.fuzzpercent, // Rule #1 for type u32? - exclude: Some(c.exclude.into_iter().map(|s| s.into()).collect()), // Rule #4 + id: PublicKey::from_slice(&c.id).unwrap(), // Rule #1 for type pubkey maxhops: c.maxhops, // Rule #1 for type u32? + riskfactor: c.riskfactor, // Rule #1 for type u64 } } } @@ -3137,12 +3192,12 @@ impl From for requests::GetrouteRequest { impl From for requests::ListforwardsRequest { fn from(c: pb::ListforwardsRequest) -> Self { Self { - status: c.status.map(|v| v.try_into().unwrap()), in_channel: c.in_channel.map(|v| cln_rpc::primitives::ShortChannelId::from_str(&v).unwrap()), // Rule #1 for type short_channel_id? - out_channel: c.out_channel.map(|v| cln_rpc::primitives::ShortChannelId::from_str(&v).unwrap()), // Rule #1 for type short_channel_id? index: c.index.map(|v| v.try_into().unwrap()), - start: c.start, // Rule #1 for type u64? limit: c.limit, // Rule #1 for type u32? + out_channel: c.out_channel.map(|v| cln_rpc::primitives::ShortChannelId::from_str(&v).unwrap()), // Rule #1 for type short_channel_id? + start: c.start, // Rule #1 for type u64? + status: c.status.map(|v| v.try_into().unwrap()), } } } @@ -3151,8 +3206,8 @@ impl From for requests::ListforwardsRequest { impl From for requests::ListoffersRequest { fn from(c: pb::ListoffersRequest) -> Self { Self { - offer_id: c.offer_id.map(|v| Sha256::from_slice(&v).unwrap()), // Rule #1 for type hash? active_only: c.active_only, // Rule #1 for type boolean? + offer_id: c.offer_id.map(|v| Sha256::from_slice(&v).unwrap()), // Rule #1 for type hash? } } } @@ -3181,16 +3236,16 @@ impl From for requests::ListhtlcsRequest { impl From for requests::OfferRequest { fn from(c: pb::OfferRequest) -> Self { Self { + absolute_expiry: c.absolute_expiry, // Rule #1 for type u64? amount: c.amount, // Rule #1 for type string description: c.description, // Rule #1 for type string issuer: c.issuer, // Rule #1 for type string? label: c.label, // Rule #1 for type string? quantity_max: c.quantity_max, // Rule #1 for type u64? - absolute_expiry: c.absolute_expiry, // Rule #1 for type u64? recurrence: c.recurrence, // Rule #1 for type string? recurrence_base: c.recurrence_base, // Rule #1 for type string? - recurrence_paywindow: c.recurrence_paywindow, // Rule #1 for type string? recurrence_limit: c.recurrence_limit, // Rule #1 for type u32? + recurrence_paywindow: c.recurrence_paywindow, // Rule #1 for type string? single_use: c.single_use, // Rule #1 for type boolean? } } @@ -3211,8 +3266,8 @@ impl From for requests::PingRequest { impl From for requests::SendcustommsgRequest { fn from(c: pb::SendcustommsgRequest) -> Self { Self { - node_id: PublicKey::from_slice(&c.node_id).unwrap(), // Rule #1 for type pubkey msg: hex::encode(&c.msg), // Rule #1 for type hex + node_id: PublicKey::from_slice(&c.node_id).unwrap(), // Rule #1 for type pubkey } } } @@ -3221,12 +3276,12 @@ impl From for requests::SendcustommsgRequest { impl From for requests::SetchannelRequest { fn from(c: pb::SetchannelRequest) -> Self { Self { - id: c.id, // Rule #1 for type string + enforcedelay: c.enforcedelay, // Rule #1 for type u32? feebase: c.feebase.map(|a| a.into()), // Rule #1 for type msat? feeppm: c.feeppm, // Rule #1 for type u32? - htlcmin: c.htlcmin.map(|a| a.into()), // Rule #1 for type msat? htlcmax: c.htlcmax.map(|a| a.into()), // Rule #1 for type msat? - enforcedelay: c.enforcedelay, // Rule #1 for type u32? + htlcmin: c.htlcmin.map(|a| a.into()), // Rule #1 for type msat? + id: c.id, // Rule #1 for type string ignorefeelimits: c.ignorefeelimits, // Rule #1 for type boolean? } } @@ -3264,9 +3319,9 @@ impl From for requests::WaitblockheightRequest { impl From for requests::WaitRequest { fn from(c: pb::WaitRequest) -> Self { Self { - subsystem: c.subsystem.try_into().unwrap(), indexname: c.indexname.try_into().unwrap(), nextvalue: c.nextvalue, // Rule #1 for type u64 + subsystem: c.subsystem.try_into().unwrap(), } } } @@ -3283,9 +3338,9 @@ impl From for requests::StopRequest { impl From for requests::PreapprovekeysendRequest { fn from(c: pb::PreapprovekeysendRequest) -> Self { Self { + amount_msat: c.amount_msat.map(|a| a.into()), // Rule #1 for type msat? destination: c.destination.map(|v| PublicKey::from_slice(&v).unwrap()), // Rule #1 for type pubkey? payment_hash: c.payment_hash.map(|v| hex::encode(v)), // Rule #1 for type hex? - amount_msat: c.amount_msat.map(|a| a.into()), // Rule #1 for type msat? } } } @@ -3312,8 +3367,8 @@ impl From for requests::BkprlistincomeRequest { fn from(c: pb::BkprlistincomeRequest) -> Self { Self { consolidate_fees: c.consolidate_fees, // Rule #1 for type boolean? - start_time: c.start_time, // Rule #1 for type u32? end_time: c.end_time, // Rule #1 for type u32? + start_time: c.start_time, // Rule #1 for type u32? } } } diff --git a/cln-rpc/src/model.rs b/cln-rpc/src/model.rs index 789cd4678c26..52bf6a0336bf 100644 --- a/cln-rpc/src/model.rs +++ b/cln-rpc/src/model.rs @@ -196,12 +196,12 @@ pub mod requests { /// ['Supplying level will show log entries related to that peer at the given log level.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListpeersLevel { - #[serde(rename = "io")] - IO = 0, #[serde(rename = "debug")] DEBUG = 1, #[serde(rename = "info")] INFO = 2, + #[serde(rename = "io")] + IO = 0, #[serde(rename = "unusual")] UNUSUAL = 3, } @@ -210,9 +210,9 @@ pub mod requests { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListpeersLevel::IO), 1 => Ok(ListpeersLevel::DEBUG), 2 => Ok(ListpeersLevel::INFO), + 0 => Ok(ListpeersLevel::IO), 3 => Ok(ListpeersLevel::UNUSUAL), o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeersLevel", o)), } @@ -222,9 +222,9 @@ pub mod requests { impl ToString for ListpeersLevel { fn to_string(&self) -> String { match self { - ListpeersLevel::IO => "IO", ListpeersLevel::DEBUG => "DEBUG", ListpeersLevel::INFO => "INFO", + ListpeersLevel::IO => "IO", ListpeersLevel::UNUSUAL => "UNUSUAL", }.to_string() } @@ -280,34 +280,34 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SendpayRoute { - pub id: PublicKey, + pub amount_msat: Amount, pub channel: ShortChannelId, pub delay: u32, - pub amount_msat: Amount, + pub id: PublicKey, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SendpayRequest { - pub route: Vec, - pub payment_hash: Sha256, - #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, #[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 payment_secret: Option, + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub partid: Option, + pub groupid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub label: Option, #[serde(skip_serializing_if = "Option::is_none")] pub localinvreqid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub groupid: Option, + pub partid: Option, #[serde(skip_serializing_if = "Option::is_none")] pub payment_metadata: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, + pub payment_secret: Option, + pub payment_hash: Sha256, + pub route: Vec, } impl From for Request { @@ -329,12 +329,12 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListchannelsRequest { + #[serde(skip_serializing_if = "Option::is_none")] + pub destination: Option, #[serde(skip_serializing_if = "Option::is_none")] pub short_channel_id: Option, #[serde(skip_serializing_if = "Option::is_none")] pub source: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, } impl From for Request { @@ -378,10 +378,10 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct AutocleaninvoiceRequest { - #[serde(skip_serializing_if = "Option::is_none")] - pub expired_by: Option, #[serde(skip_serializing_if = "Option::is_none")] pub cycle_seconds: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub expired_by: Option, } impl From for Request { @@ -403,10 +403,10 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct CheckmessageRequest { - pub message: String, - pub zbase: String, #[serde(skip_serializing_if = "Option::is_none")] pub pubkey: Option, + pub message: String, + pub zbase: String, } impl From for Request { @@ -428,19 +428,19 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct CloseRequest { - pub id: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub unilateraltimeout: Option, #[serde(skip_serializing_if = "Option::is_none")] pub destination: Option, #[serde(skip_serializing_if = "Option::is_none")] pub fee_negotiation_step: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub wrong_funding: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub force_lease_closed: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub unilateraltimeout: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub wrong_funding: Option, #[serde(skip_serializing_if = "crate::is_none_or_empty")] pub feerange: Option>, + pub id: String, } impl From for Request { @@ -462,11 +462,11 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ConnectRequest { - pub id: String, #[serde(skip_serializing_if = "Option::is_none")] pub host: Option, #[serde(skip_serializing_if = "Option::is_none")] pub port: Option, + pub id: String, } impl From for Request { @@ -513,27 +513,27 @@ pub mod requests { /// ['Write mode to determine how the record is updated:', ' * `must-create`: fails if it already exists.', " * `must-replace`: fails if it doesn't already exist.", ' * `create-or-replace`: never fails.', " * `must-append`: must already exist, append this to what's already there.", ' * `create-or-append`: append if anything is there, otherwise create.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum DatastoreMode { - #[serde(rename = "must-create")] - MUST_CREATE = 0, - #[serde(rename = "must-replace")] - MUST_REPLACE = 1, + #[serde(rename = "create-or-append")] + CREATE_OR_APPEND = 4, #[serde(rename = "create-or-replace")] CREATE_OR_REPLACE = 2, #[serde(rename = "must-append")] MUST_APPEND = 3, - #[serde(rename = "create-or-append")] - CREATE_OR_APPEND = 4, + #[serde(rename = "must-create")] + MUST_CREATE = 0, + #[serde(rename = "must-replace")] + MUST_REPLACE = 1, } impl TryFrom for DatastoreMode { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(DatastoreMode::MUST_CREATE), - 1 => Ok(DatastoreMode::MUST_REPLACE), + 4 => Ok(DatastoreMode::CREATE_OR_APPEND), 2 => Ok(DatastoreMode::CREATE_OR_REPLACE), 3 => Ok(DatastoreMode::MUST_APPEND), - 4 => Ok(DatastoreMode::CREATE_OR_APPEND), + 0 => Ok(DatastoreMode::MUST_CREATE), + 1 => Ok(DatastoreMode::MUST_REPLACE), o => Err(anyhow::anyhow!("Unknown variant {} for enum DatastoreMode", o)), } } @@ -542,26 +542,26 @@ pub mod requests { impl ToString for DatastoreMode { fn to_string(&self) -> String { match self { - DatastoreMode::MUST_CREATE => "MUST_CREATE", - DatastoreMode::MUST_REPLACE => "MUST_REPLACE", + DatastoreMode::CREATE_OR_APPEND => "CREATE_OR_APPEND", DatastoreMode::CREATE_OR_REPLACE => "CREATE_OR_REPLACE", DatastoreMode::MUST_APPEND => "MUST_APPEND", - DatastoreMode::CREATE_OR_APPEND => "CREATE_OR_APPEND", + DatastoreMode::MUST_CREATE => "MUST_CREATE", + DatastoreMode::MUST_REPLACE => "MUST_REPLACE", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DatastoreRequest { - pub key: Vec, #[serde(skip_serializing_if = "Option::is_none")] - pub string: Option, + pub generation: Option, #[serde(skip_serializing_if = "Option::is_none")] pub hex: Option, #[serde(skip_serializing_if = "Option::is_none")] pub mode: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub generation: Option, + pub string: Option, + pub key: Vec, } impl From for Request { @@ -606,18 +606,18 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct CreateonionHops { - pub pubkey: PublicKey, pub payload: String, + pub pubkey: PublicKey, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct CreateonionRequest { - pub hops: Vec, - pub assocdata: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub session_key: Option, #[serde(skip_serializing_if = "Option::is_none")] pub onion_size: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub session_key: Option, + pub assocdata: String, + pub hops: Vec, } impl From for Request { @@ -639,9 +639,9 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DeldatastoreRequest { - pub key: Vec, #[serde(skip_serializing_if = "Option::is_none")] pub generation: Option, + pub key: Vec, } impl From for Request { @@ -664,10 +664,10 @@ pub mod requests { /// ['Label of the invoice to be deleted. The caller should be particularly aware of the error case caused by the *status* changing just before this command is invoked!'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum DelinvoiceStatus { - #[serde(rename = "paid")] - PAID = 0, #[serde(rename = "expired")] EXPIRED = 1, + #[serde(rename = "paid")] + PAID = 0, #[serde(rename = "unpaid")] UNPAID = 2, } @@ -676,8 +676,8 @@ pub mod requests { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(DelinvoiceStatus::PAID), 1 => Ok(DelinvoiceStatus::EXPIRED), + 0 => Ok(DelinvoiceStatus::PAID), 2 => Ok(DelinvoiceStatus::UNPAID), o => Err(anyhow::anyhow!("Unknown variant {} for enum DelinvoiceStatus", o)), } @@ -687,8 +687,8 @@ pub mod requests { impl ToString for DelinvoiceStatus { fn to_string(&self) -> String { match self { - DelinvoiceStatus::PAID => "PAID", DelinvoiceStatus::EXPIRED => "EXPIRED", + DelinvoiceStatus::PAID => "PAID", DelinvoiceStatus::UNPAID => "UNPAID", }.to_string() } @@ -696,11 +696,11 @@ pub mod requests { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DelinvoiceRequest { - pub label: String, - // Path `DelInvoice.status` - pub status: DelinvoiceStatus, #[serde(skip_serializing_if = "Option::is_none")] pub desconly: Option, + // Path `DelInvoice.status` + pub status: DelinvoiceStatus, + pub label: String, } impl From for Request { @@ -722,19 +722,19 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct InvoiceRequest { - pub amount_msat: AmountOrAny, - pub label: String, - pub description: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub expiry: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub fallbacks: Option>, - #[serde(skip_serializing_if = "Option::is_none")] - pub preimage: Option, #[serde(skip_serializing_if = "Option::is_none")] pub cltv: Option, #[serde(skip_serializing_if = "Option::is_none")] pub deschashonly: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub expiry: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub preimage: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub fallbacks: Option>, + pub amount_msat: AmountOrAny, + pub description: String, + pub label: String, } impl From for Request { @@ -809,19 +809,19 @@ pub mod requests { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListinvoicesRequest { #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, + pub index: Option, #[serde(skip_serializing_if = "Option::is_none")] pub invstring: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_hash: Option, + pub label: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub limit: Option, #[serde(skip_serializing_if = "Option::is_none")] pub offer_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub index: Option, + pub payment_hash: Option, #[serde(skip_serializing_if = "Option::is_none")] pub start: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub limit: Option, } impl From for Request { @@ -843,34 +843,34 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SendonionFirst_hop { - pub id: PublicKey, pub amount_msat: Amount, pub delay: u16, + pub id: PublicKey, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SendonionRequest { - pub onion: String, - pub first_hop: SendonionFirst_hop, - pub payment_hash: Sha256, - #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub shared_secrets: Option>, #[serde(skip_serializing_if = "Option::is_none")] - pub partid: Option, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] pub destination: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub localinvreqid: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub groupid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, + pub label: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub localinvreqid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub partid: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub shared_secrets: Option>, + pub first_hop: SendonionFirst_hop, + pub onion: String, + pub payment_hash: Sha256, } impl From for Request { @@ -890,64 +890,64 @@ pub mod requests { "sendonion" } } - /// ['Whether the invoice has been paid, pending, or failed.'] + /// ['If neither bolt11 or payment_hash is specified, `index` controls ordering, by `created` (default) or `updated`.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListsendpaysStatus { - #[serde(rename = "pending")] - PENDING = 0, - #[serde(rename = "complete")] - COMPLETE = 1, - #[serde(rename = "failed")] - FAILED = 2, + pub enum ListsendpaysIndex { + #[serde(rename = "created")] + CREATED = 0, + #[serde(rename = "updated")] + UPDATED = 1, } - impl TryFrom for ListsendpaysStatus { + impl TryFrom for ListsendpaysIndex { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListsendpaysStatus::PENDING), - 1 => Ok(ListsendpaysStatus::COMPLETE), - 2 => Ok(ListsendpaysStatus::FAILED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListsendpaysStatus", o)), + 0 => Ok(ListsendpaysIndex::CREATED), + 1 => Ok(ListsendpaysIndex::UPDATED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListsendpaysIndex", o)), } } } - impl ToString for ListsendpaysStatus { + impl ToString for ListsendpaysIndex { fn to_string(&self) -> String { match self { - ListsendpaysStatus::PENDING => "PENDING", - ListsendpaysStatus::COMPLETE => "COMPLETE", - ListsendpaysStatus::FAILED => "FAILED", + ListsendpaysIndex::CREATED => "CREATED", + ListsendpaysIndex::UPDATED => "UPDATED", }.to_string() } } - /// ['If neither bolt11 or payment_hash is specified, `index` controls ordering, by `created` (default) or `updated`.'] + /// ['Whether the invoice has been paid, pending, or failed.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListsendpaysIndex { - #[serde(rename = "created")] - CREATED = 0, - #[serde(rename = "updated")] - UPDATED = 1, + pub enum ListsendpaysStatus { + #[serde(rename = "complete")] + COMPLETE = 1, + #[serde(rename = "failed")] + FAILED = 2, + #[serde(rename = "pending")] + PENDING = 0, } - impl TryFrom for ListsendpaysIndex { + impl TryFrom for ListsendpaysStatus { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListsendpaysIndex::CREATED), - 1 => Ok(ListsendpaysIndex::UPDATED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListsendpaysIndex", o)), + 1 => Ok(ListsendpaysStatus::COMPLETE), + 2 => Ok(ListsendpaysStatus::FAILED), + 0 => Ok(ListsendpaysStatus::PENDING), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListsendpaysStatus", o)), } } } - impl ToString for ListsendpaysIndex { + impl ToString for ListsendpaysStatus { fn to_string(&self) -> String { match self { - ListsendpaysIndex::CREATED => "CREATED", - ListsendpaysIndex::UPDATED => "UPDATED", + ListsendpaysStatus::COMPLETE => "COMPLETE", + ListsendpaysStatus::FAILED => "FAILED", + ListsendpaysStatus::PENDING => "PENDING", }.to_string() } } @@ -957,15 +957,15 @@ pub mod requests { #[serde(skip_serializing_if = "Option::is_none")] pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_hash: Option, + pub index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub status: Option, + pub limit: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub index: Option, + pub payment_hash: Option, #[serde(skip_serializing_if = "Option::is_none")] pub start: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub limit: Option, + pub status: Option, } impl From for Request { @@ -1008,36 +1008,36 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct PayRequest { - pub bolt11: String, #[serde(skip_serializing_if = "Option::is_none")] pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub riskfactor: Option, + pub exemptfee: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub maxfeepercent: Option, + pub label: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub retry_for: Option, + pub localinvreqid: Option, #[serde(skip_serializing_if = "Option::is_none")] pub maxdelay: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub exemptfee: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub localinvreqid: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub exclude: Option>, - #[serde(skip_serializing_if = "Option::is_none")] pub maxfee: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, + pub maxfeepercent: Option, #[serde(skip_serializing_if = "Option::is_none")] pub partial_msat: Option, - } - - impl From for Request { - fn from(r: PayRequest) -> Self { - Request::Pay(r) + #[serde(skip_serializing_if = "Option::is_none")] + pub retry_for: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub riskfactor: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub exclude: Option>, + pub bolt11: String, + } + + impl From for Request { + fn from(r: PayRequest) -> Self { + Request::Pay(r) } } @@ -1124,13 +1124,13 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct WaitsendpayRequest { - pub payment_hash: Sha256, #[serde(skip_serializing_if = "Option::is_none")] - pub timeout: Option, + pub groupid: Option, #[serde(skip_serializing_if = "Option::is_none")] pub partid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub groupid: Option, + pub timeout: Option, + pub payment_hash: Sha256, } impl From for Request { @@ -1153,21 +1153,21 @@ pub mod requests { /// ['It specifies the type of address wanted; currently *bech32* (e.g. `tb1qu9j4lg5f9rgjyfhvfd905vw46eg39czmktxqgg` on bitcoin testnet or `bc1qwqdg6squsna38e46795at95yu9atm8azzmyvckulcc7kytlcckxswvvzej` on bitcoin mainnet), or *p2tr* taproot addresses. The special value *all* generates all known address types for the same underlying key.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum NewaddrAddresstype { + #[serde(rename = "all")] + ALL = 2, #[serde(rename = "bech32")] BECH32 = 0, #[serde(rename = "p2tr")] P2TR = 3, - #[serde(rename = "all")] - ALL = 2, } impl TryFrom for NewaddrAddresstype { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { + 2 => Ok(NewaddrAddresstype::ALL), 0 => Ok(NewaddrAddresstype::BECH32), 3 => Ok(NewaddrAddresstype::P2TR), - 2 => Ok(NewaddrAddresstype::ALL), o => Err(anyhow::anyhow!("Unknown variant {} for enum NewaddrAddresstype", o)), } } @@ -1176,9 +1176,9 @@ pub mod requests { impl ToString for NewaddrAddresstype { fn to_string(&self) -> String { match self { + NewaddrAddresstype::ALL => "ALL", NewaddrAddresstype::BECH32 => "BECH32", NewaddrAddresstype::P2TR => "P2TR", - NewaddrAddresstype::ALL => "ALL", }.to_string() } } @@ -1208,14 +1208,14 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct WithdrawRequest { - pub destination: String, - pub satoshi: AmountOrAll, #[serde(skip_serializing_if = "Option::is_none")] pub feerate: Option, #[serde(skip_serializing_if = "Option::is_none")] pub minconf: Option, #[serde(skip_serializing_if = "crate::is_none_or_empty")] pub utxos: Option>, + pub destination: String, + pub satoshi: AmountOrAll, } impl From for Request { @@ -1237,22 +1237,22 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct KeysendRequest { - pub destination: PublicKey, - pub amount_msat: Amount, #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, + pub exemptfee: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub maxfeepercent: Option, + pub extratlvs: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub retry_for: Option, + pub label: Option, #[serde(skip_serializing_if = "Option::is_none")] pub maxdelay: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub exemptfee: Option, + pub maxfeepercent: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub routehints: Option, + pub retry_for: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub extratlvs: Option, + pub routehints: Option, + pub amount_msat: Amount, + pub destination: PublicKey, } impl From for Request { @@ -1274,23 +1274,23 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct FundpsbtRequest { - pub satoshi: AmountOrAll, - pub feerate: Feerate, - pub startweight: u32, - #[serde(skip_serializing_if = "Option::is_none")] - pub minconf: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub reserve: Option, + pub excess_as_change: Option, #[serde(skip_serializing_if = "Option::is_none")] pub locktime: Option, #[serde(skip_serializing_if = "Option::is_none")] pub min_witness_weight: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub excess_as_change: Option, + pub minconf: Option, #[serde(skip_serializing_if = "Option::is_none")] pub nonwrapped: Option, #[serde(skip_serializing_if = "Option::is_none")] pub opening_anchor_channel: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub reserve: Option, + pub feerate: Feerate, + pub satoshi: AmountOrAll, + pub startweight: u32, } impl From for Request { @@ -1312,9 +1312,9 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SendpsbtRequest { - pub psbt: String, #[serde(skip_serializing_if = "Option::is_none")] pub reserve: Option, + pub psbt: String, } impl From for Request { @@ -1336,9 +1336,9 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SignpsbtRequest { - pub psbt: String, #[serde(skip_serializing_if = "crate::is_none_or_empty")] pub signonly: Option>, + pub psbt: String, } impl From for Request { @@ -1360,22 +1360,22 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct UtxopsbtRequest { - pub satoshi: AmountOrAll, - pub feerate: Feerate, - pub startweight: u32, - pub utxos: Vec, #[serde(skip_serializing_if = "Option::is_none")] - pub reserve: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub reservedok: Option, + pub excess_as_change: Option, #[serde(skip_serializing_if = "Option::is_none")] pub locktime: Option, #[serde(skip_serializing_if = "Option::is_none")] pub min_witness_weight: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub excess_as_change: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub opening_anchor_channel: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub reserve: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub reservedok: Option, + pub feerate: Feerate, + pub satoshi: AmountOrAll, + pub startweight: u32, + pub utxos: Vec, } impl From for Request { @@ -1419,13 +1419,13 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct TxprepareRequest { - pub outputs: Vec, #[serde(skip_serializing_if = "Option::is_none")] pub feerate: Option, #[serde(skip_serializing_if = "Option::is_none")] pub minconf: Option, #[serde(skip_serializing_if = "crate::is_none_or_empty")] pub utxos: Option>, + pub outputs: Vec, } impl From for Request { @@ -1515,9 +1515,9 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DecodepayRequest { - pub bolt11: String, #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, + pub bolt11: String, } impl From for Request { @@ -1561,9 +1561,9 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DisconnectRequest { - pub id: PublicKey, #[serde(skip_serializing_if = "Option::is_none")] pub force: Option, + pub id: PublicKey, } impl From for Request { @@ -1637,21 +1637,21 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct FetchinvoiceRequest { - pub offer: String, #[serde(skip_serializing_if = "Option::is_none")] pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub payer_note: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub quantity: Option, #[serde(skip_serializing_if = "Option::is_none")] pub recurrence_counter: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub recurrence_start: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub recurrence_label: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub timeout: Option, + pub recurrence_start: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payer_note: Option, + pub timeout: Option, + pub offer: String, } impl From for Request { @@ -1673,30 +1673,30 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct FundchannelRequest { - pub id: PublicKey, - pub amount: AmountOrAll, - #[serde(skip_serializing_if = "Option::is_none")] - pub feerate: Option, #[serde(skip_serializing_if = "Option::is_none")] pub announce: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub minconf: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub push_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub close_to: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub request_amt: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub compact_lease: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub utxos: Option>, + #[serde(skip_serializing_if = "Option::is_none")] + pub feerate: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub minconf: Option, #[serde(skip_serializing_if = "Option::is_none")] pub mindepth: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub push_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub request_amt: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub reserve: Option, #[serde(skip_serializing_if = "crate::is_none_or_empty")] pub channel_type: Option>, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub utxos: Option>, + pub amount: AmountOrAll, + pub id: PublicKey, } impl From for Request { @@ -1718,19 +1718,19 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct GetrouteRequest { - pub id: PublicKey, - pub amount_msat: Amount, - pub riskfactor: u64, #[serde(skip_serializing_if = "Option::is_none")] pub cltv: Option, #[serde(skip_serializing_if = "Option::is_none")] pub fromid: Option, #[serde(skip_serializing_if = "Option::is_none")] pub fuzzpercent: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub exclude: Option>, #[serde(skip_serializing_if = "Option::is_none")] pub maxhops: Option, + #[serde(skip_serializing_if = "crate::is_none_or_empty")] + pub exclude: Option>, + pub amount_msat: Amount, + pub id: PublicKey, + pub riskfactor: u64, } impl From for Request { @@ -1750,86 +1750,86 @@ pub mod requests { "getroute" } } - /// ['If specified, then only the forwards with the given status are returned.'] + /// ['If neither *in_channel* nor *out_channel* is specified, it controls ordering.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListforwardsStatus { - #[serde(rename = "offered")] - OFFERED = 0, - #[serde(rename = "settled")] - SETTLED = 1, - #[serde(rename = "local_failed")] - LOCAL_FAILED = 2, - #[serde(rename = "failed")] - FAILED = 3, + pub enum ListforwardsIndex { + #[serde(rename = "created")] + CREATED = 0, + #[serde(rename = "updated")] + UPDATED = 1, } - impl TryFrom for ListforwardsStatus { + impl TryFrom for ListforwardsIndex { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListforwardsStatus::OFFERED), - 1 => Ok(ListforwardsStatus::SETTLED), - 2 => Ok(ListforwardsStatus::LOCAL_FAILED), - 3 => Ok(ListforwardsStatus::FAILED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsStatus", o)), + 0 => Ok(ListforwardsIndex::CREATED), + 1 => Ok(ListforwardsIndex::UPDATED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsIndex", o)), } } } - impl ToString for ListforwardsStatus { + impl ToString for ListforwardsIndex { fn to_string(&self) -> String { match self { - ListforwardsStatus::OFFERED => "OFFERED", - ListforwardsStatus::SETTLED => "SETTLED", - ListforwardsStatus::LOCAL_FAILED => "LOCAL_FAILED", - ListforwardsStatus::FAILED => "FAILED", + ListforwardsIndex::CREATED => "CREATED", + ListforwardsIndex::UPDATED => "UPDATED", }.to_string() } } - /// ['If neither *in_channel* nor *out_channel* is specified, it controls ordering.'] + /// ['If specified, then only the forwards with the given status are returned.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum ListforwardsIndex { - #[serde(rename = "created")] - CREATED = 0, - #[serde(rename = "updated")] - UPDATED = 1, + pub enum ListforwardsStatus { + #[serde(rename = "failed")] + FAILED = 3, + #[serde(rename = "local_failed")] + LOCAL_FAILED = 2, + #[serde(rename = "offered")] + OFFERED = 0, + #[serde(rename = "settled")] + SETTLED = 1, } - impl TryFrom for ListforwardsIndex { + impl TryFrom for ListforwardsStatus { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListforwardsIndex::CREATED), - 1 => Ok(ListforwardsIndex::UPDATED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsIndex", o)), + 3 => Ok(ListforwardsStatus::FAILED), + 2 => Ok(ListforwardsStatus::LOCAL_FAILED), + 0 => Ok(ListforwardsStatus::OFFERED), + 1 => Ok(ListforwardsStatus::SETTLED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsStatus", o)), } } } - impl ToString for ListforwardsIndex { + impl ToString for ListforwardsStatus { fn to_string(&self) -> String { match self { - ListforwardsIndex::CREATED => "CREATED", - ListforwardsIndex::UPDATED => "UPDATED", + ListforwardsStatus::FAILED => "FAILED", + ListforwardsStatus::LOCAL_FAILED => "LOCAL_FAILED", + ListforwardsStatus::OFFERED => "OFFERED", + ListforwardsStatus::SETTLED => "SETTLED", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListforwardsRequest { - #[serde(skip_serializing_if = "Option::is_none")] - pub status: Option, #[serde(skip_serializing_if = "Option::is_none")] pub in_channel: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub out_channel: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub index: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub limit: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub out_channel: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub start: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub limit: Option, + pub status: Option, } impl From for Request { @@ -1851,10 +1851,10 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListoffersRequest { - #[serde(skip_serializing_if = "Option::is_none")] - pub offer_id: Option, #[serde(skip_serializing_if = "Option::is_none")] pub active_only: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub offer_id: Option, } impl From for Request { @@ -1877,21 +1877,21 @@ pub mod requests { /// ['To filter the payment by status.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListpaysStatus { - #[serde(rename = "pending")] - PENDING = 0, #[serde(rename = "complete")] COMPLETE = 1, #[serde(rename = "failed")] FAILED = 2, + #[serde(rename = "pending")] + PENDING = 0, } impl TryFrom for ListpaysStatus { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListpaysStatus::PENDING), 1 => Ok(ListpaysStatus::COMPLETE), 2 => Ok(ListpaysStatus::FAILED), + 0 => Ok(ListpaysStatus::PENDING), o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpaysStatus", o)), } } @@ -1900,9 +1900,9 @@ pub mod requests { impl ToString for ListpaysStatus { fn to_string(&self) -> String { match self { - ListpaysStatus::PENDING => "PENDING", ListpaysStatus::COMPLETE => "COMPLETE", ListpaysStatus::FAILED => "FAILED", + ListpaysStatus::PENDING => "PENDING", }.to_string() } } @@ -1959,8 +1959,8 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct OfferRequest { - pub amount: String, - pub description: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub absolute_expiry: Option, #[serde(skip_serializing_if = "Option::is_none")] pub issuer: Option, #[serde(skip_serializing_if = "Option::is_none")] @@ -1968,17 +1968,17 @@ pub mod requests { #[serde(skip_serializing_if = "Option::is_none")] pub quantity_max: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub absolute_expiry: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub recurrence: Option, #[serde(skip_serializing_if = "Option::is_none")] pub recurrence_base: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub recurrence_paywindow: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub recurrence_limit: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub recurrence_paywindow: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub single_use: Option, + pub amount: String, + pub description: String, } impl From for Request { @@ -2000,11 +2000,11 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct PingRequest { - pub id: PublicKey, #[serde(skip_serializing_if = "Option::is_none")] pub len: Option, #[serde(skip_serializing_if = "Option::is_none")] pub pongbytes: Option, + pub id: PublicKey, } impl From for Request { @@ -2026,8 +2026,8 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SendcustommsgRequest { - pub node_id: PublicKey, pub msg: String, + pub node_id: PublicKey, } impl From for Request { @@ -2049,19 +2049,19 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SetchannelRequest { - pub id: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub enforcedelay: Option, #[serde(skip_serializing_if = "Option::is_none")] pub feebase: Option, #[serde(skip_serializing_if = "Option::is_none")] pub feeppm: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub htlcmin: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub htlcmax: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub enforcedelay: Option, + pub htlcmin: Option, #[serde(skip_serializing_if = "Option::is_none")] pub ignorefeelimits: Option, + pub id: String, } impl From for Request { @@ -2127,9 +2127,9 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct WaitblockheightRequest { - pub blockheight: u32, #[serde(skip_serializing_if = "Option::is_none")] pub timeout: Option, + pub blockheight: u32, } impl From for Request { @@ -2149,78 +2149,78 @@ pub mod requests { "waitblockheight" } } - /// ['The subsystem to get the next index value from.', ' `invoices`: corresponding to `listinvoices` (added in *v23.08*).', ' `sendpays`: corresponding to `listsendpays` (added in *v23.11*).', ' `forwards`: corresponding to `listforwards` (added in *v23.11*).'] + /// ['The name of the index to get the next value for.', ' `created` is incremented by one for every new object.', ' `updated` is incremented by one every time an object is changed.', ' `deleted` is incremented by one every time an object is deleted.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum WaitSubsystem { - #[serde(rename = "invoices")] - INVOICES = 0, - #[serde(rename = "forwards")] - FORWARDS = 1, - #[serde(rename = "sendpays")] - SENDPAYS = 2, + pub enum WaitIndexname { + #[serde(rename = "created")] + CREATED = 0, + #[serde(rename = "deleted")] + DELETED = 2, + #[serde(rename = "updated")] + UPDATED = 1, } - impl TryFrom for WaitSubsystem { + impl TryFrom for WaitIndexname { 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(WaitIndexname::CREATED), + 2 => Ok(WaitIndexname::DELETED), + 1 => Ok(WaitIndexname::UPDATED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitIndexname", o)), } } } - impl ToString for WaitSubsystem { + impl ToString for WaitIndexname { fn to_string(&self) -> String { match self { - WaitSubsystem::INVOICES => "INVOICES", - WaitSubsystem::FORWARDS => "FORWARDS", - WaitSubsystem::SENDPAYS => "SENDPAYS", + WaitIndexname::CREATED => "CREATED", + WaitIndexname::DELETED => "DELETED", + WaitIndexname::UPDATED => "UPDATED", }.to_string() } } - /// ['The name of the index to get the next value for.', ' `created` is incremented by one for every new object.', ' `updated` is incremented by one every time an object is changed.', ' `deleted` is incremented by one every time an object is deleted.'] + /// ['The subsystem to get the next index value from.', ' `invoices`: corresponding to `listinvoices` (added in *v23.08*).', ' `sendpays`: corresponding to `listsendpays` (added in *v23.11*).', ' `forwards`: corresponding to `listforwards` (added in *v23.11*).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] - pub enum WaitIndexname { - #[serde(rename = "created")] - CREATED = 0, - #[serde(rename = "updated")] - UPDATED = 1, - #[serde(rename = "deleted")] - DELETED = 2, + pub enum WaitSubsystem { + #[serde(rename = "forwards")] + FORWARDS = 1, + #[serde(rename = "invoices")] + INVOICES = 0, + #[serde(rename = "sendpays")] + SENDPAYS = 2, } - impl TryFrom for WaitIndexname { + impl TryFrom for WaitSubsystem { type Error = anyhow::Error; - fn try_from(c: i32) -> Result { + fn try_from(c: i32) -> Result { match c { - 0 => Ok(WaitIndexname::CREATED), - 1 => Ok(WaitIndexname::UPDATED), - 2 => Ok(WaitIndexname::DELETED), - o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitIndexname", o)), + 1 => Ok(WaitSubsystem::FORWARDS), + 0 => Ok(WaitSubsystem::INVOICES), + 2 => Ok(WaitSubsystem::SENDPAYS), + o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitSubsystem", o)), } } } - impl ToString for WaitIndexname { + impl ToString for WaitSubsystem { fn to_string(&self) -> String { match self { - WaitIndexname::CREATED => "CREATED", - WaitIndexname::UPDATED => "UPDATED", - WaitIndexname::DELETED => "DELETED", + WaitSubsystem::FORWARDS => "FORWARDS", + WaitSubsystem::INVOICES => "INVOICES", + WaitSubsystem::SENDPAYS => "SENDPAYS", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct WaitRequest { - // Path `Wait.subsystem` - pub subsystem: WaitSubsystem, // Path `Wait.indexname` pub indexname: WaitIndexname, + // Path `Wait.subsystem` + pub subsystem: WaitSubsystem, pub nextvalue: u64, } @@ -2264,12 +2264,12 @@ pub mod requests { } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct PreapprovekeysendRequest { + #[serde(skip_serializing_if = "Option::is_none")] + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] pub destination: Option, #[serde(skip_serializing_if = "Option::is_none")] pub payment_hash: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, } impl From for Request { @@ -2338,9 +2338,9 @@ pub mod requests { #[serde(skip_serializing_if = "Option::is_none")] pub consolidate_fees: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub start_time: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub end_time: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub start_time: Option, } impl From for Request { @@ -2372,10 +2372,10 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct GetinfoOur_features { - pub init: String, - pub node: String, pub channel: String, + pub init: String, pub invoice: String, + pub node: String, } /// ['Type of connection (until 23.08, `websocket` was also allowed).'] @@ -2421,41 +2421,41 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct GetinfoAddress { + #[serde(skip_serializing_if = "Option::is_none")] + pub address: Option, // Path `Getinfo.address[].type` #[serde(rename = "type")] pub item_type: GetinfoAddressType, pub port: u16, - #[serde(skip_serializing_if = "Option::is_none")] - pub address: Option, } /// ['Type of connection.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum GetinfoBindingType { - #[serde(rename = "local socket")] - LOCAL_SOCKET = 0, - #[serde(rename = "websocket")] - WEBSOCKET = 5, #[serde(rename = "ipv4")] IPV4 = 1, #[serde(rename = "ipv6")] IPV6 = 2, + #[serde(rename = "local socket")] + LOCAL_SOCKET = 0, #[serde(rename = "torv2")] TORV2 = 3, #[serde(rename = "torv3")] TORV3 = 4, + #[serde(rename = "websocket")] + WEBSOCKET = 5, } impl TryFrom for GetinfoBindingType { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(GetinfoBindingType::LOCAL_SOCKET), - 5 => Ok(GetinfoBindingType::WEBSOCKET), 1 => Ok(GetinfoBindingType::IPV4), 2 => Ok(GetinfoBindingType::IPV6), + 0 => Ok(GetinfoBindingType::LOCAL_SOCKET), 3 => Ok(GetinfoBindingType::TORV2), 4 => Ok(GetinfoBindingType::TORV3), + 5 => Ok(GetinfoBindingType::WEBSOCKET), o => Err(anyhow::anyhow!("Unknown variant {} for enum GetinfoBindingType", o)), } } @@ -2464,55 +2464,57 @@ pub mod responses { 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::LOCAL_SOCKET => "LOCAL_SOCKET", GetinfoBindingType::TORV2 => "TORV2", GetinfoBindingType::TORV3 => "TORV3", + GetinfoBindingType::WEBSOCKET => "WEBSOCKET", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct GetinfoBinding { - // Path `Getinfo.binding[].type` - #[serde(rename = "type")] - pub item_type: GetinfoBindingType, #[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, + #[serde(skip_serializing_if = "Option::is_none")] + pub subtype: Option, + // Path `Getinfo.binding[].type` + #[serde(rename = "type")] + pub item_type: GetinfoBindingType, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct GetinfoResponse { - pub id: PublicKey, - #[serde(skip_serializing_if = "Option::is_none")] - pub alias: Option, - pub color: String, - pub num_peers: u32, - pub num_pending_channels: u32, - pub num_active_channels: u32, - pub num_inactive_channels: u32, - pub version: String, #[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, - pub blockheight: u32, - pub network: String, - pub fees_collected_msat: Amount, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub address: Option>, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub binding: 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 GetinfoResponse { @@ -2528,33 +2530,33 @@ pub mod responses { #[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 = "INFO")] + INFO = 3, #[serde(rename = "IO_IN")] IO_IN = 5, #[serde(rename = "IO_OUT")] IO_OUT = 6, + #[serde(rename = "SKIPPED")] + SKIPPED = 0, + #[serde(rename = "UNUSUAL")] + UNUSUAL = 2, } 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), + 3 => Ok(ListpeersPeersLogType::INFO), 5 => Ok(ListpeersPeersLogType::IO_IN), 6 => Ok(ListpeersPeersLogType::IO_OUT), + 0 => Ok(ListpeersPeersLogType::SKIPPED), + 2 => Ok(ListpeersPeersLogType::UNUSUAL), o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeersPeersLogType", o)), } } @@ -2563,50 +2565,50 @@ pub mod responses { 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::INFO => "INFO", ListpeersPeersLogType::IO_IN => "IO_IN", ListpeersPeersLogType::IO_OUT => "IO_OUT", + ListpeersPeersLogType::SKIPPED => "SKIPPED", + ListpeersPeersLogType::UNUSUAL => "UNUSUAL", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListpeersPeersLog { - // Path `ListPeers.peers[].log[].type` - #[serde(rename = "type")] - pub item_type: ListpeersPeersLogType, - #[serde(skip_serializing_if = "Option::is_none")] - pub num_skipped: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub time: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub source: Option, + 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 data: Option, + pub num_skipped: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub source: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub time: Option, + // Path `ListPeers.peers[].log[].type` + #[serde(rename = "type")] + pub item_type: ListpeersPeersLogType, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListpeersPeers { - pub id: PublicKey, - pub connected: bool, + #[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>, - #[serde(skip_serializing_if = "Option::is_none")] - pub remote_addr: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub features: Option, + pub connected: bool, + pub id: PublicKey, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -2625,26 +2627,42 @@ pub mod responses { } } + #[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, + } + #[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, + #[serde(rename = "spent")] + SPENT = 2, + #[serde(rename = "unconfirmed")] + UNCONFIRMED = 0, } 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), + 2 => Ok(ListfundsOutputsStatus::SPENT), + 0 => Ok(ListfundsOutputsStatus::UNCONFIRMED), o => Err(anyhow::anyhow!("Unknown variant {} for enum ListfundsOutputsStatus", o)), } } @@ -2653,51 +2671,37 @@ pub mod responses { impl ToString for ListfundsOutputsStatus { fn to_string(&self) -> String { match self { - ListfundsOutputsStatus::UNCONFIRMED => "UNCONFIRMED", ListfundsOutputsStatus::CONFIRMED => "CONFIRMED", - ListfundsOutputsStatus::SPENT => "SPENT", ListfundsOutputsStatus::IMMATURE => "IMMATURE", + ListfundsOutputsStatus::SPENT => "SPENT", + ListfundsOutputsStatus::UNCONFIRMED => "UNCONFIRMED", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListfundsOutputs { - pub txid: String, - pub output: u32, - pub amount_msat: Amount, - pub scriptpubkey: String, #[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, + #[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, - #[serde(skip_serializing_if = "Option::is_none")] - pub blockheight: Option, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListfundsChannels { - pub peer_id: PublicKey, - pub our_amount_msat: Amount, - pub amount_msat: Amount, - pub funding_txid: String, - pub funding_output: u32, - pub connected: bool, - // Path `ListFunds.channels[].state` - pub state: ChannelState, - #[serde(skip_serializing_if = "Option::is_none")] - pub channel_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub short_channel_id: Option, + pub scriptpubkey: String, + pub txid: String, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListfundsResponse { - pub outputs: Vec, pub channels: Vec, + pub outputs: Vec, } impl TryFrom for ListfundsResponse { @@ -2714,18 +2718,18 @@ pub mod responses { /// ['Status of the payment (could be complete if already sent previously).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum SendpayStatus { - #[serde(rename = "pending")] - PENDING = 0, #[serde(rename = "complete")] COMPLETE = 1, + #[serde(rename = "pending")] + PENDING = 0, } impl TryFrom for SendpayStatus { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(SendpayStatus::PENDING), 1 => Ok(SendpayStatus::COMPLETE), + 0 => Ok(SendpayStatus::PENDING), o => Err(anyhow::anyhow!("Unknown variant {} for enum SendpayStatus", o)), } } @@ -2734,8 +2738,8 @@ pub mod responses { impl ToString for SendpayStatus { fn to_string(&self) -> String { match self { - SendpayStatus::PENDING => "PENDING", SendpayStatus::COMPLETE => "COMPLETE", + SendpayStatus::PENDING => "PENDING", }.to_string() } } @@ -2743,35 +2747,35 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SendpayResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - pub id: u64, + pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub groupid: Option, - pub payment_hash: Sha256, - // Path `SendPay.status` - pub status: SendpayStatus, + pub bolt12: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, + 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, - pub created_at: u64, #[serde(skip_serializing_if = "Option::is_none")] - pub completed_at: Option, - pub amount_sent_msat: Amount, + 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 bolt11: Option, + pub message: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub bolt12: Option, + pub partid: Option, #[serde(skip_serializing_if = "Option::is_none")] pub payment_preimage: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub message: Option, + 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, } impl TryFrom for SendpayResponse { @@ -2787,23 +2791,23 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListchannelsChannels { - pub source: PublicKey, - pub destination: PublicKey, - pub short_channel_id: ShortChannelId, - pub direction: u32, - pub public: bool, - pub amount_msat: Amount, - pub message_flags: u8, - pub channel_flags: u8, + #[serde(skip_serializing_if = "Option::is_none")] + pub htlc_maximum_msat: Option, pub active: bool, - pub last_update: u32, + pub amount_msat: Amount, pub base_fee_millisatoshi: u32, - pub fee_per_millionth: u32, + pub channel_flags: u8, pub delay: u32, - pub htlc_minimum_msat: Amount, - #[serde(skip_serializing_if = "Option::is_none")] - pub htlc_maximum_msat: Option, + 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, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -2839,11 +2843,11 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct AutocleaninvoiceResponse { - pub enabled: bool, - #[serde(skip_serializing_if = "Option::is_none")] - pub expired_by: Option, #[serde(skip_serializing_if = "Option::is_none")] pub cycle_seconds: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub expired_by: Option, + pub enabled: bool, } impl TryFrom for AutocleaninvoiceResponse { @@ -2859,8 +2863,8 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct CheckmessageResponse { - pub verified: bool, pub pubkey: PublicKey, + pub verified: bool, } impl TryFrom for CheckmessageResponse { @@ -2909,13 +2913,13 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct CloseResponse { - // Path `Close.type` - #[serde(rename = "type")] - pub item_type: CloseType, #[serde(skip_serializing_if = "Option::is_none")] pub tx: Option, #[serde(skip_serializing_if = "Option::is_none")] pub txid: Option, + // Path `Close.type` + #[serde(rename = "type")] + pub item_type: CloseType, } impl TryFrom for CloseResponse { @@ -2961,12 +2965,12 @@ pub mod responses { /// ['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 = "local socket")] + LOCAL_SOCKET = 0, #[serde(rename = "torv2")] TORV2 = 3, #[serde(rename = "torv3")] @@ -2977,9 +2981,9 @@ pub mod responses { 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), + 0 => Ok(ConnectAddressType::LOCAL_SOCKET), 3 => Ok(ConnectAddressType::TORV2), 4 => Ok(ConnectAddressType::TORV3), o => Err(anyhow::anyhow!("Unknown variant {} for enum ConnectAddressType", o)), @@ -2990,9 +2994,9 @@ pub mod responses { impl ToString for ConnectAddressType { fn to_string(&self) -> String { match self { - ConnectAddressType::LOCAL_SOCKET => "LOCAL_SOCKET", ConnectAddressType::IPV4 => "IPV4", ConnectAddressType::IPV6 => "IPV6", + ConnectAddressType::LOCAL_SOCKET => "LOCAL_SOCKET", ConnectAddressType::TORV2 => "TORV2", ConnectAddressType::TORV3 => "TORV3", }.to_string() @@ -3001,24 +3005,24 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ConnectAddress { - // Path `Connect.address.type` - #[serde(rename = "type")] - pub item_type: ConnectAddressType, - #[serde(skip_serializing_if = "Option::is_none")] - pub socket: Option, #[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(rename = "type")] + pub item_type: ConnectAddressType, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ConnectResponse { - pub id: PublicKey, - pub features: String, // Path `Connect.direction` pub direction: ConnectDirection, pub address: ConnectAddress, + pub features: String, + pub id: PublicKey, } impl TryFrom for ConnectResponse { @@ -3032,13 +3036,21 @@ pub mod responses { } } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct CreateinvoicePaid_outpoint { + #[serde(skip_serializing_if = "Option::is_none")] + pub outnum: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub txid: Option, + } + /// ['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 = "paid")] + PAID = 0, #[serde(rename = "unpaid")] UNPAID = 2, } @@ -3047,8 +3059,8 @@ pub mod responses { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(CreateinvoiceStatus::PAID), 1 => Ok(CreateinvoiceStatus::EXPIRED), + 0 => Ok(CreateinvoiceStatus::PAID), 2 => Ok(CreateinvoiceStatus::UNPAID), o => Err(anyhow::anyhow!("Unknown variant {} for enum CreateinvoiceStatus", o)), } @@ -3058,51 +3070,43 @@ pub mod responses { impl ToString for CreateinvoiceStatus { fn to_string(&self) -> String { match self { - CreateinvoiceStatus::PAID => "PAID", CreateinvoiceStatus::EXPIRED => "EXPIRED", + CreateinvoiceStatus::PAID => "PAID", CreateinvoiceStatus::UNPAID => "UNPAID", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct CreateinvoicePaid_outpoint { + pub struct CreateinvoiceResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub txid: Option, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub outnum: Option, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct CreateinvoiceResponse { - pub label: String, + 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, - pub payment_hash: Sha256, - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, - // Path `CreateInvoice.status` - pub status: CreateinvoiceStatus, - pub description: String, - pub expires_at: u64, #[serde(skip_serializing_if = "Option::is_none")] pub created_index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub pay_index: Option, + pub invreq_payer_note: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub amount_received_msat: 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 paid_outpoint: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_preimage: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub local_offer_id: Option, + pub pay_index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_payer_note: Option, + pub payment_preimage: Option, + // Path `CreateInvoice.status` + pub status: CreateinvoiceStatus, + pub description: String, + pub expires_at: u64, + pub label: String, + pub payment_hash: Sha256, } impl TryFrom for CreateinvoiceResponse { @@ -3118,13 +3122,13 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DatastoreResponse { - pub key: Vec, #[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, } impl TryFrom for DatastoreResponse { @@ -3182,13 +3186,13 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DeldatastoreResponse { - pub key: Vec, #[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, } impl TryFrom for DeldatastoreResponse { @@ -3205,10 +3209,10 @@ pub mod responses { /// ['State of invoice.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum DelinvoiceStatus { - #[serde(rename = "paid")] - PAID = 0, #[serde(rename = "expired")] EXPIRED = 1, + #[serde(rename = "paid")] + PAID = 0, #[serde(rename = "unpaid")] UNPAID = 2, } @@ -3217,8 +3221,8 @@ pub mod responses { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(DelinvoiceStatus::PAID), 1 => Ok(DelinvoiceStatus::EXPIRED), + 0 => Ok(DelinvoiceStatus::PAID), 2 => Ok(DelinvoiceStatus::UNPAID), o => Err(anyhow::anyhow!("Unknown variant {} for enum DelinvoiceStatus", o)), } @@ -3228,8 +3232,8 @@ pub mod responses { impl ToString for DelinvoiceStatus { fn to_string(&self) -> String { match self { - DelinvoiceStatus::PAID => "PAID", DelinvoiceStatus::EXPIRED => "EXPIRED", + DelinvoiceStatus::PAID => "PAID", DelinvoiceStatus::UNPAID => "UNPAID", }.to_string() } @@ -3237,27 +3241,35 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DelinvoiceResponse { - pub label: String, + #[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 amount_msat: Option, + pub created_index: Option, #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, - pub payment_hash: Sha256, #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, + 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 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 `DelInvoice.status` pub status: DelinvoiceStatus, pub expires_at: u64, - #[serde(skip_serializing_if = "Option::is_none")] - pub local_offer_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_payer_note: Option, + pub label: String, + pub payment_hash: Sha256, } impl TryFrom for DelinvoiceResponse { @@ -3273,22 +3285,22 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct InvoiceResponse { - pub bolt11: String, - pub payment_hash: Sha256, - pub payment_secret: Secret, - pub expires_at: u64, #[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_offline: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub warning_deadends: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_private_unused: 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 InvoiceResponse { @@ -3304,13 +3316,13 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListdatastoreDatastore { - pub key: Vec, #[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)] @@ -3329,24 +3341,32 @@ pub mod responses { } } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListinvoicesInvoicesPaid_outpoint { + #[serde(skip_serializing_if = "Option::is_none")] + pub outnum: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub txid: Option, + } + /// ["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, + #[serde(rename = "paid")] + PAID = 1, + #[serde(rename = "unpaid")] + UNPAID = 0, } 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), + 1 => Ok(ListinvoicesInvoicesStatus::PAID), + 0 => Ok(ListinvoicesInvoicesStatus::UNPAID), o => Err(anyhow::anyhow!("Unknown variant {} for enum ListinvoicesInvoicesStatus", o)), } } @@ -3355,54 +3375,46 @@ pub mod responses { impl ToString for ListinvoicesInvoicesStatus { fn to_string(&self) -> String { match self { - ListinvoicesInvoicesStatus::UNPAID => "UNPAID", - ListinvoicesInvoicesStatus::PAID => "PAID", ListinvoicesInvoicesStatus::EXPIRED => "EXPIRED", + ListinvoicesInvoicesStatus::PAID => "PAID", + ListinvoicesInvoicesStatus::UNPAID => "UNPAID", }.to_string() } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListinvoicesInvoicesPaid_outpoint { - #[serde(skip_serializing_if = "Option::is_none")] - pub txid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub outnum: Option, - } - #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListinvoicesInvoices { - pub label: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, - pub payment_hash: Sha256, - // Path `ListInvoices.invoices[].status` - pub status: ListinvoicesInvoicesStatus, - pub expires_at: u64, #[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 local_offer_id: Option, + 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 created_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub pay_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_received_msat: 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 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, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -3424,18 +3436,18 @@ pub mod responses { /// ['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, + #[serde(rename = "pending")] + PENDING = 0, } impl TryFrom for SendonionStatus { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(SendonionStatus::PENDING), 1 => Ok(SendonionStatus::COMPLETE), + 0 => Ok(SendonionStatus::PENDING), o => Err(anyhow::anyhow!("Unknown variant {} for enum SendonionStatus", o)), } } @@ -3444,40 +3456,40 @@ pub mod responses { impl ToString for SendonionStatus { fn to_string(&self) -> String { match self { - SendonionStatus::PENDING => "PENDING", SendonionStatus::COMPLETE => "COMPLETE", + SendonionStatus::PENDING => "PENDING", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SendonionResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, - pub id: u64, - pub payment_hash: Sha256, - // Path `SendOnion.status` - pub status: SendonionStatus, #[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, - pub created_at: u64, - pub amount_sent_msat: Amount, #[serde(skip_serializing_if = "Option::is_none")] pub label: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub bolt12: Option, + pub message: Option, #[serde(skip_serializing_if = "Option::is_none")] pub partid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub payment_preimage: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub message: Option, + 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, } impl TryFrom for SendonionResponse { @@ -3494,21 +3506,21 @@ pub mod responses { /// ['Status of the payment.'] #[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, + #[serde(rename = "failed")] + FAILED = 1, + #[serde(rename = "pending")] + PENDING = 0, } impl TryFrom for ListsendpaysPaymentsStatus { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListsendpaysPaymentsStatus::PENDING), - 1 => Ok(ListsendpaysPaymentsStatus::FAILED), 2 => Ok(ListsendpaysPaymentsStatus::COMPLETE), + 1 => Ok(ListsendpaysPaymentsStatus::FAILED), + 0 => Ok(ListsendpaysPaymentsStatus::PENDING), o => Err(anyhow::anyhow!("Unknown variant {} for enum ListsendpaysPaymentsStatus", o)), } } @@ -3517,9 +3529,9 @@ pub mod responses { impl ToString for ListsendpaysPaymentsStatus { fn to_string(&self) -> String { match self { - ListsendpaysPaymentsStatus::PENDING => "PENDING", - ListsendpaysPaymentsStatus::FAILED => "FAILED", ListsendpaysPaymentsStatus::COMPLETE => "COMPLETE", + ListsendpaysPaymentsStatus::FAILED => "FAILED", + ListsendpaysPaymentsStatus::PENDING => "PENDING", }.to_string() } } @@ -3527,36 +3539,36 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListsendpaysPayments { #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, - pub id: u64, - pub groupid: u64, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub partid: Option, - pub payment_hash: Sha256, + pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, - // Path `ListSendPays.payments[].status` - pub status: ListsendpaysPaymentsStatus, + pub bolt12: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, + pub completed_at: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, - pub created_at: u64, - pub amount_sent_msat: Amount, + pub created_index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, + pub destination: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, + pub erroronion: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub bolt12: Option, + pub label: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub completed_at: Option, + pub partid: Option, #[serde(skip_serializing_if = "Option::is_none")] pub payment_preimage: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub erroronion: Option, + 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)] @@ -3577,29 +3589,29 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListtransactionsTransactionsInputs { - pub txid: String, pub index: u32, pub sequence: u32, + pub txid: String, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListtransactionsTransactionsOutputs { - pub index: u32, - pub amount_msat: Amount, #[serde(rename = "scriptPubKey")] pub script_pub_key: String, + pub amount_msat: Amount, + pub index: u32, } #[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 blockheight: u32, pub txindex: u32, - pub locktime: u32, pub version: u32, - pub inputs: Vec, - pub outputs: Vec, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -3623,10 +3635,10 @@ pub mod responses { pub enum PayStatus { #[serde(rename = "complete")] COMPLETE = 0, - #[serde(rename = "pending")] - PENDING = 1, #[serde(rename = "failed")] FAILED = 2, + #[serde(rename = "pending")] + PENDING = 1, } impl TryFrom for PayStatus { @@ -3634,8 +3646,8 @@ pub mod responses { fn try_from(c: i32) -> Result { match c { 0 => Ok(PayStatus::COMPLETE), - 1 => Ok(PayStatus::PENDING), 2 => Ok(PayStatus::FAILED), + 1 => Ok(PayStatus::PENDING), o => Err(anyhow::anyhow!("Unknown variant {} for enum PayStatus", o)), } } @@ -3645,26 +3657,26 @@ pub mod responses { fn to_string(&self) -> String { match self { PayStatus::COMPLETE => "COMPLETE", - PayStatus::PENDING => "PENDING", PayStatus::FAILED => "FAILED", + PayStatus::PENDING => "PENDING", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct PayResponse { - pub payment_preimage: Secret, #[serde(skip_serializing_if = "Option::is_none")] pub destination: Option, - pub payment_hash: Sha256, - pub created_at: f64, - pub parts: u32, - pub amount_msat: Amount, - pub amount_sent_msat: Amount, #[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 { @@ -3678,6 +3690,16 @@ pub mod responses { } } + #[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 { @@ -3721,27 +3743,29 @@ pub mod responses { #[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, - #[serde(skip_serializing_if = "Option::is_none")] - pub address: Option, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListnodesNodes { - pub nodeid: PublicKey, - #[serde(skip_serializing_if = "Option::is_none")] - pub last_timestamp: Option, #[serde(skip_serializing_if = "Option::is_none")] pub alias: Option, #[serde(skip_serializing_if = "Option::is_none")] pub color: Option, #[serde(skip_serializing_if = "Option::is_none")] pub features: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub last_timestamp: 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)] @@ -3760,21 +3784,29 @@ pub mod responses { } } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct WaitanyinvoicePaid_outpoint { + #[serde(skip_serializing_if = "Option::is_none")] + pub outnum: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub txid: Option, + } + /// ["Whether it's paid or expired."] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum WaitanyinvoiceStatus { - #[serde(rename = "paid")] - PAID = 0, #[serde(rename = "expired")] EXPIRED = 1, + #[serde(rename = "paid")] + PAID = 0, } impl TryFrom for WaitanyinvoiceStatus { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(WaitanyinvoiceStatus::PAID), 1 => Ok(WaitanyinvoiceStatus::EXPIRED), + 0 => Ok(WaitanyinvoiceStatus::PAID), o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitanyinvoiceStatus", o)), } } @@ -3783,48 +3815,40 @@ pub mod responses { impl ToString for WaitanyinvoiceStatus { fn to_string(&self) -> String { match self { - WaitanyinvoiceStatus::PAID => "PAID", WaitanyinvoiceStatus::EXPIRED => "EXPIRED", + WaitanyinvoiceStatus::PAID => "PAID", }.to_string() } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct WaitanyinvoicePaid_outpoint { - #[serde(skip_serializing_if = "Option::is_none")] - pub txid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub outnum: Option, - } - #[derive(Clone, Debug, Deserialize, Serialize)] pub struct WaitanyinvoiceResponse { - pub label: String, - pub description: String, - pub payment_hash: Sha256, - // Path `WaitAnyInvoice.status` - pub status: WaitanyinvoiceStatus, - pub expires_at: u64, #[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 updated_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub pay_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_received_msat: 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 `WaitAnyInvoice.status` + pub status: WaitanyinvoiceStatus, + pub description: String, + pub expires_at: u64, + pub label: String, + pub payment_hash: Sha256, } impl TryFrom for WaitanyinvoiceResponse { @@ -3838,21 +3862,29 @@ pub mod responses { } } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct WaitinvoicePaid_outpoint { + #[serde(skip_serializing_if = "Option::is_none")] + pub outnum: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub txid: Option, + } + /// ["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, + #[serde(rename = "paid")] + PAID = 0, } impl TryFrom for WaitinvoiceStatus { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(WaitinvoiceStatus::PAID), 1 => Ok(WaitinvoiceStatus::EXPIRED), + 0 => Ok(WaitinvoiceStatus::PAID), o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitinvoiceStatus", o)), } } @@ -3861,48 +3893,40 @@ pub mod responses { impl ToString for WaitinvoiceStatus { fn to_string(&self) -> String { match self { - WaitinvoiceStatus::PAID => "PAID", WaitinvoiceStatus::EXPIRED => "EXPIRED", + WaitinvoiceStatus::PAID => "PAID", }.to_string() } } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct WaitinvoicePaid_outpoint { - #[serde(skip_serializing_if = "Option::is_none")] - pub txid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub outnum: Option, - } - #[derive(Clone, Debug, Deserialize, Serialize)] pub struct WaitinvoiceResponse { - pub label: String, - pub description: String, - pub payment_hash: Sha256, - // Path `WaitInvoice.status` - pub status: WaitinvoiceStatus, - pub expires_at: u64, #[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 updated_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub pay_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub amount_received_msat: 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 description: String, + pub expires_at: u64, + pub label: String, + pub payment_hash: Sha256, } impl TryFrom for WaitinvoiceResponse { @@ -3943,34 +3967,34 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct WaitsendpayResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub created_index: Option, - pub id: u64, - #[serde(skip_serializing_if = "Option::is_none")] - pub groupid: Option, - pub payment_hash: Sha256, - // Path `WaitSendPay.status` - pub status: WaitsendpayStatus, #[serde(skip_serializing_if = "Option::is_none")] pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, - pub created_at: u64, + pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub updated_index: Option, + pub bolt12: Option, #[serde(skip_serializing_if = "Option::is_none")] pub completed_at: Option, - pub amount_sent_msat: Amount, #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, + pub created_index: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub partid: Option, + pub destination: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub bolt11: Option, + pub groupid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub bolt12: Option, + 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 `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 { @@ -3986,10 +4010,10 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct NewaddrResponse { - #[serde(skip_serializing_if = "Option::is_none")] - pub p2tr: Option, #[serde(skip_serializing_if = "Option::is_none")] pub bech32: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub p2tr: Option, } impl TryFrom for NewaddrResponse { @@ -4005,9 +4029,9 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct WithdrawResponse { + pub psbt: String, pub tx: String, pub txid: String, - pub psbt: String, } impl TryFrom for WithdrawResponse { @@ -4048,18 +4072,18 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct KeysendResponse { - pub payment_preimage: Secret, #[serde(skip_serializing_if = "Option::is_none")] pub destination: Option, - pub payment_hash: Sha256, - pub created_at: f64, - pub parts: u32, - pub amount_msat: Amount, - pub amount_sent_msat: Amount, #[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, } impl TryFrom for KeysendResponse { @@ -4075,23 +4099,23 @@ pub mod responses { #[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, - pub reserved: bool, - pub reserved_to_block: u32, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct FundpsbtResponse { - pub psbt: String, - pub feerate_per_kw: u32, - pub estimated_final_weight: u32, - pub excess_msat: Amount, #[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 { @@ -4140,23 +4164,23 @@ pub mod responses { #[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, - pub reserved: bool, - pub reserved_to_block: u32, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct UtxopsbtResponse { - pub psbt: String, - pub feerate_per_kw: u32, - pub estimated_final_weight: u32, - pub excess_msat: Amount, #[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 { @@ -4172,8 +4196,8 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct TxdiscardResponse { - pub unsigned_tx: String, pub txid: String, + pub unsigned_tx: String, } impl TryFrom for TxdiscardResponse { @@ -4190,8 +4214,8 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct TxprepareResponse { pub psbt: String, - pub unsigned_tx: String, pub txid: String, + pub unsigned_tx: String, } impl TryFrom for TxprepareResponse { @@ -4223,57 +4247,87 @@ pub mod responses { } } + #[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, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListpeerchannelsChannelsFeerate { + #[serde(skip_serializing_if = "Option::is_none")] + pub perkb: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub perkw: Option, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListpeerchannelsChannelsFunding { + #[serde(skip_serializing_if = "Option::is_none")] + pub fee_paid_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub fee_rcvd_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub local_funds_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub pushed_msat: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub remote_funds_msat: Option, + } + /// ['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 = "AWAITING_UNILATERAL")] + AWAITING_UNILATERAL = 6, #[serde(rename = "CHANNELD_AWAITING_LOCKIN")] CHANNELD_AWAITING_LOCKIN = 1, + #[serde(rename = "CHANNELD_AWAITING_SPLICE")] + CHANNELD_AWAITING_SPLICE = 11, #[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 = "CLOSINGD_SIGEXCHANGE")] + CLOSINGD_SIGEXCHANGE = 4, #[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, + #[serde(rename = "DUALOPEND_OPEN_INIT")] + DUALOPEND_OPEN_INIT = 9, + #[serde(rename = "FUNDING_SPEND_SEEN")] + FUNDING_SPEND_SEEN = 7, + #[serde(rename = "ONCHAIN")] + ONCHAIN = 8, + #[serde(rename = "OPENINGD")] + OPENINGD = 0, } impl TryFrom for ListpeerchannelsChannelsState { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListpeerchannelsChannelsState::OPENINGD), + 6 => Ok(ListpeerchannelsChannelsState::AWAITING_UNILATERAL), 1 => Ok(ListpeerchannelsChannelsState::CHANNELD_AWAITING_LOCKIN), + 11 => Ok(ListpeerchannelsChannelsState::CHANNELD_AWAITING_SPLICE), 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), + 4 => Ok(ListpeerchannelsChannelsState::CLOSINGD_SIGEXCHANGE), 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), + 9 => Ok(ListpeerchannelsChannelsState::DUALOPEND_OPEN_INIT), + 7 => Ok(ListpeerchannelsChannelsState::FUNDING_SPEND_SEEN), + 8 => Ok(ListpeerchannelsChannelsState::ONCHAIN), + 0 => Ok(ListpeerchannelsChannelsState::OPENINGD), o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpeerchannelsChannelsState", o)), } } @@ -4282,50 +4336,50 @@ pub mod responses { impl ToString for ListpeerchannelsChannelsState { fn to_string(&self) -> String { match self { - ListpeerchannelsChannelsState::OPENINGD => "OPENINGD", + ListpeerchannelsChannelsState::AWAITING_UNILATERAL => "AWAITING_UNILATERAL", ListpeerchannelsChannelsState::CHANNELD_AWAITING_LOCKIN => "CHANNELD_AWAITING_LOCKIN", + ListpeerchannelsChannelsState::CHANNELD_AWAITING_SPLICE => "CHANNELD_AWAITING_SPLICE", 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::CLOSINGD_SIGEXCHANGE => "CLOSINGD_SIGEXCHANGE", 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", + ListpeerchannelsChannelsState::DUALOPEND_OPEN_INIT => "DUALOPEND_OPEN_INIT", + ListpeerchannelsChannelsState::FUNDING_SPEND_SEEN => "FUNDING_SPEND_SEEN", + ListpeerchannelsChannelsState::ONCHAIN => "ONCHAIN", + ListpeerchannelsChannelsState::OPENINGD => "OPENINGD", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListpeerchannelsChannelsUpdatesLocal { - #[serde(skip_serializing_if = "Option::is_none")] - pub htlc_minimum_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub htlc_maximum_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] pub cltv_expiry_delta: 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, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListpeerchannelsChannelsUpdatesRemote { - #[serde(skip_serializing_if = "Option::is_none")] - pub htlc_minimum_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub htlc_maximum_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] pub cltv_expiry_delta: 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, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -4336,54 +4390,6 @@ pub mod responses { pub remote: Option, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannelsFeerate { - #[serde(skip_serializing_if = "Option::is_none")] - pub perkw: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub perkb: Option, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannelsInflight { - #[serde(skip_serializing_if = "Option::is_none")] - pub funding_txid: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub funding_outnum: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub feerate: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub total_funding_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub splice_amount: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub our_funding_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub scratch_txid: Option, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannelsFunding { - #[serde(skip_serializing_if = "Option::is_none")] - pub pushed_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub local_funds_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub remote_funds_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub fee_paid_msat: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub fee_rcvd_msat: Option, - } - - #[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, - } - /// ['Whether it came from peer, or is going to peer.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum ListpeerchannelsChannelsHtlcsDirection { @@ -4415,136 +4421,158 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListpeerchannelsChannelsHtlcs { - #[serde(skip_serializing_if = "Option::is_none")] - pub direction: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub id: Option, #[serde(skip_serializing_if = "Option::is_none")] pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub direction: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub expiry: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_hash: Option, + pub id: Option, #[serde(skip_serializing_if = "Option::is_none")] pub local_trimmed: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub status: Option, + pub payment_hash: Option, #[serde(skip_serializing_if = "Option::is_none")] pub state: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub status: Option, } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct ListpeerchannelsChannels { + pub struct ListpeerchannelsChannelsInflight { #[serde(skip_serializing_if = "Option::is_none")] - pub peer_id: Option, + pub feerate: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub peer_connected: Option, + pub funding_outnum: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub reestablished: Option, + pub funding_txid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub state: Option, + pub our_funding_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] pub scratch_txid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub updates: Option, + pub splice_amount: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub ignore_fee_limits: Option, + pub total_funding_msat: Option, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct ListpeerchannelsChannels { #[serde(skip_serializing_if = "Option::is_none")] - pub lost_state: Option, + pub alias: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub feerate: Option, + pub channel_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub owner: Option, + pub close_to: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub short_channel_id: Option, + pub close_to_addr: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub channel_id: Option, + pub closer: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub funding_txid: Option, + pub direction: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub funding_outnum: Option, + pub dust_limit_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub initial_feerate: Option, + pub fee_base_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub last_feerate: Option, + pub fee_proportional_millionths: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub next_feerate: Option, + pub feerate: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub next_fee_step: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub inflight: Option>, + pub funding: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub close_to: Option, + pub funding_outnum: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub private: Option, + pub funding_txid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub opener: Option, + pub ignore_fee_limits: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub closer: Option, + pub in_fulfilled_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub funding: Option, + pub in_offered_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub to_us_msat: Option, + pub in_payments_fulfilled: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub min_to_us_msat: Option, + pub in_payments_offered: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub max_to_us_msat: Option, + pub initial_feerate: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub total_msat: Option, + pub last_feerate: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub fee_base_msat: Option, + pub last_stable_connection: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub fee_proportional_millionths: Option, + pub last_tx_fee_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub dust_limit_msat: Option, + pub lost_state: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub max_total_htlc_in_msat: Option, + pub max_accepted_htlcs: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub their_reserve_msat: Option, + pub max_to_us_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub our_reserve_msat: Option, + pub max_total_htlc_in_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub spendable_msat: Option, + pub maximum_htlc_out_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub receivable_msat: Option, + 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 maximum_htlc_out_msat: Option, + pub next_fee_step: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub their_to_self_delay: Option, + pub next_feerate: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub opener: 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 max_accepted_htlcs: Option, + pub out_fulfilled_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub alias: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub status: Option>, + pub out_offered_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub in_payments_offered: Option, + pub out_payments_fulfilled: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub in_offered_msat: Option, + pub out_payments_offered: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub in_payments_fulfilled: Option, + pub owner: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub in_fulfilled_msat: Option, + pub peer_connected: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub out_payments_offered: Option, + pub peer_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub out_offered_msat: Option, + pub private: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub out_payments_fulfilled: Option, + pub receivable_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub out_fulfilled_msat: Option, + pub reestablished: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub last_stable_connection: Option, + 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 state: 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 = "Option::is_none")] - pub close_to_addr: 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>, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -4575,30 +4603,30 @@ pub mod responses { /// ['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, + #[serde(rename = "protocol")] + PROTOCOL = 4, + #[serde(rename = "remote")] + REMOTE = 3, + #[serde(rename = "unknown")] + UNKNOWN = 0, + #[serde(rename = "user")] + USER = 2, } 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), + 4 => Ok(ListclosedchannelsClosedchannelsClose_cause::PROTOCOL), + 3 => Ok(ListclosedchannelsClosedchannelsClose_cause::REMOTE), + 0 => Ok(ListclosedchannelsClosedchannelsClose_cause::UNKNOWN), + 2 => Ok(ListclosedchannelsClosedchannelsClose_cause::USER), o => Err(anyhow::anyhow!("Unknown variant {} for enum ListclosedchannelsClosedchannelsClose_cause", o)), } } @@ -4607,54 +4635,54 @@ pub mod responses { impl ToString for ListclosedchannelsClosedchannelsClose_cause { 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", + ListclosedchannelsClosedchannelsClose_cause::PROTOCOL => "PROTOCOL", + ListclosedchannelsClosedchannelsClose_cause::REMOTE => "REMOTE", + ListclosedchannelsClosedchannelsClose_cause::UNKNOWN => "UNKNOWN", + ListclosedchannelsClosedchannelsClose_cause::USER => "USER", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListclosedchannelsClosedchannels { - #[serde(skip_serializing_if = "Option::is_none")] - pub peer_id: Option, - pub channel_id: Sha256, - #[serde(skip_serializing_if = "Option::is_none")] - pub short_channel_id: Option, #[serde(skip_serializing_if = "Option::is_none")] pub alias: Option, - // Path `ListClosedChannels.closedchannels[].opener` - pub opener: ChannelSide, #[serde(skip_serializing_if = "Option::is_none")] pub closer: Option, - pub private: bool, - pub total_local_commitments: u64, - pub total_remote_commitments: u64, - pub total_htlcs_sent: u64, - pub funding_txid: String, - pub funding_outnum: u32, - pub leased: bool, #[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, - pub total_msat: Amount, - pub final_to_us_msat: Amount, - pub min_to_us_msat: Amount, - pub max_to_us_msat: Amount, + #[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_commitment_fee_msat: Option, + 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, - #[serde(skip_serializing_if = "Option::is_none")] - pub last_stable_connection: Option, + // 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)] @@ -4673,6 +4701,12 @@ pub mod responses { } } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DecodepayExtra { + pub data: String, + pub tag: String, + } + /// ['The address type (if known).'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum DecodepayFallbacksType { @@ -4680,12 +4714,12 @@ pub mod responses { P2PKH = 0, #[serde(rename = "P2SH")] P2SH = 1, + #[serde(rename = "P2TR")] + P2TR = 4, #[serde(rename = "P2WPKH")] P2WPKH = 2, #[serde(rename = "P2WSH")] P2WSH = 3, - #[serde(rename = "P2TR")] - P2TR = 4, } impl TryFrom for DecodepayFallbacksType { @@ -4694,9 +4728,9 @@ pub mod responses { match c { 0 => Ok(DecodepayFallbacksType::P2PKH), 1 => Ok(DecodepayFallbacksType::P2SH), + 4 => Ok(DecodepayFallbacksType::P2TR), 2 => Ok(DecodepayFallbacksType::P2WPKH), 3 => Ok(DecodepayFallbacksType::P2WSH), - 4 => Ok(DecodepayFallbacksType::P2TR), o => Err(anyhow::anyhow!("Unknown variant {} for enum DecodepayFallbacksType", o)), } } @@ -4707,54 +4741,48 @@ pub mod responses { match self { DecodepayFallbacksType::P2PKH => "P2PKH", DecodepayFallbacksType::P2SH => "P2SH", + DecodepayFallbacksType::P2TR => "P2TR", DecodepayFallbacksType::P2WPKH => "P2WPKH", DecodepayFallbacksType::P2WSH => "P2WSH", - DecodepayFallbacksType::P2TR => "P2TR", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DecodepayFallbacks { + #[serde(skip_serializing_if = "Option::is_none")] + pub addr: Option, // Path `DecodePay.fallbacks[].type` #[serde(rename = "type")] pub item_type: DecodepayFallbacksType, - #[serde(skip_serializing_if = "Option::is_none")] - pub addr: Option, pub hex: String, } - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodepayExtra { - pub tag: String, - pub data: String, - } - #[derive(Clone, Debug, Deserialize, Serialize)] pub struct DecodepayResponse { - pub currency: String, - pub created_at: u64, - pub expiry: u64, - pub payee: PublicKey, #[serde(skip_serializing_if = "Option::is_none")] pub amount_msat: Option, - pub payment_hash: Sha256, - pub signature: String, #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] pub description_hash: Option, - pub min_final_cltv_expiry: u32, - #[serde(skip_serializing_if = "Option::is_none")] - pub payment_secret: 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 = "crate::is_none_or_empty")] - pub fallbacks: Option>, + #[serde(skip_serializing_if = "Option::is_none")] + pub payment_secret: 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 DecodepayResponse { @@ -4768,33 +4796,112 @@ pub mod responses { } } + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DecodeExtra { + pub data: String, + pub tag: String, + } + + /// ['The address type (if known).'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum DecodeFallbacksType { + #[serde(rename = "P2PKH")] + P2PKH = 0, + #[serde(rename = "P2SH")] + P2SH = 1, + #[serde(rename = "P2TR")] + P2TR = 4, + #[serde(rename = "P2WPKH")] + P2WPKH = 2, + #[serde(rename = "P2WSH")] + P2WSH = 3, + } + + impl TryFrom for DecodeFallbacksType { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 0 => Ok(DecodeFallbacksType::P2PKH), + 1 => Ok(DecodeFallbacksType::P2SH), + 4 => Ok(DecodeFallbacksType::P2TR), + 2 => Ok(DecodeFallbacksType::P2WPKH), + 3 => Ok(DecodeFallbacksType::P2WSH), + o => Err(anyhow::anyhow!("Unknown variant {} for enum DecodeFallbacksType", o)), + } + } + } + + impl ToString for DecodeFallbacksType { + fn to_string(&self) -> String { + match self { + DecodeFallbacksType::P2PKH => "P2PKH", + DecodeFallbacksType::P2SH => "P2SH", + DecodeFallbacksType::P2TR => "P2TR", + DecodeFallbacksType::P2WPKH => "P2WPKH", + DecodeFallbacksType::P2WSH => "P2WSH", + }.to_string() + } + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DecodeFallbacks { + #[serde(skip_serializing_if = "Option::is_none")] + pub addr: 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 { + #[serde(skip_serializing_if = "Option::is_none")] + pub address: Option, + pub hex: String, + pub version: u8, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DecodeOffer_paths { + pub blinding: PublicKey, + pub first_node_id: PublicKey, + } + + #[derive(Clone, Debug, Deserialize, Serialize)] + pub struct DecodeRestrictions { + pub alternatives: Vec, + pub summary: String, + } + /// ['What kind of object it decoded to.'] #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub enum DecodeType { - #[serde(rename = "bolt12 offer")] - BOLT12_OFFER = 0, + #[serde(rename = "bolt11 invoice")] + BOLT11_INVOICE = 3, #[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 = "bolt12 offer")] + BOLT12_OFFER = 0, #[serde(rename = "emergency recover")] EMERGENCY_RECOVER = 5, + #[serde(rename = "rune")] + RUNE = 4, } impl TryFrom for DecodeType { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(DecodeType::BOLT12_OFFER), + 3 => Ok(DecodeType::BOLT11_INVOICE), 1 => Ok(DecodeType::BOLT12_INVOICE), 2 => Ok(DecodeType::BOLT12_INVOICE_REQUEST), - 3 => Ok(DecodeType::BOLT11_INVOICE), - 4 => Ok(DecodeType::RUNE), + 0 => Ok(DecodeType::BOLT12_OFFER), 5 => Ok(DecodeType::EMERGENCY_RECOVER), + 4 => Ok(DecodeType::RUNE), o => Err(anyhow::anyhow!("Unknown variant {} for enum DecodeType", o)), } } @@ -4803,190 +4910,168 @@ pub mod responses { impl ToString for DecodeType { fn to_string(&self) -> String { match self { - DecodeType::BOLT12_OFFER => "BOLT12_OFFER", + DecodeType::BOLT11_INVOICE => "BOLT11_INVOICE", DecodeType::BOLT12_INVOICE => "BOLT12_INVOICE", DecodeType::BOLT12_INVOICE_REQUEST => "BOLT12_INVOICE_REQUEST", - DecodeType::BOLT11_INVOICE => "BOLT11_INVOICE", - DecodeType::RUNE => "RUNE", + DecodeType::BOLT12_OFFER => "BOLT12_OFFER", DecodeType::EMERGENCY_RECOVER => "EMERGENCY_RECOVER", + DecodeType::RUNE => "RUNE", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeOffer_paths { - pub first_node_id: PublicKey, - pub blinding: PublicKey, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeInvoice_fallbacks { - pub version: u8, - pub hex: String, + pub struct DecodeResponse { #[serde(skip_serializing_if = "Option::is_none")] - pub address: Option, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeFallbacks { + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invoice_fallbacks_version_invalid: Option, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeExtra { - pub tag: String, - pub data: String, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeRestrictions { - pub alternatives: Vec, - pub summary: String, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct DecodeResponse { - // Path `Decode.type` - #[serde(rename = "type")] - pub item_type: DecodeType, - pub valid: bool, + pub created_at: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_id: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub offer_chains: Option>, + pub currency: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_metadata: Option, + pub currency_minor_unit: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_currency: Option, + pub decrypted: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_unknown_offer_currency: Option, + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub currency_minor_unit: Option, + pub description_hash: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_amount: Option, + pub expiry: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_amount_msat: Option, + pub features: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_description: Option, + pub hex: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_issuer: Option, + pub invoice_amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_features: Option, + pub invoice_created_at: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_absolute_expiry: Option, + pub invoice_features: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_quantity_max: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub offer_paths: Option>, + pub invoice_node_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub offer_node_id: Option, + pub invoice_payment_hash: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_offer_node_id: Option, + pub invoice_recurrence_basetime: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invalid_offer_description: Option, + pub invoice_relative_expiry: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_offer_description: Option, + pub invreq_amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invalid_offer_currency: Option, + pub invreq_chain: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invalid_offer_issuer: Option, + 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_chain: Option, + 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 invreq_amount_msat: Option, + pub offer_issuer: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_features: Option, + pub offer_metadata: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_quantity: Option, + pub offer_node_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_payer_note: Option, + pub offer_quantity_max: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_recurrence_counter: Option, + pub payee: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invreq_recurrence_start: Option, + pub payment_hash: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invreq_metadata: Option, + pub payment_metadata: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invreq_payer_id: Option, + pub payment_secret: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invalid_invreq_payer_note: Option, + pub signature: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_request_signature: Option, + pub string: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_invalid_invoice_request_signature: Option, + pub unique_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_created_at: Option, + pub version: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_relative_expiry: Option, + pub warning_invalid_invoice_request_signature: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_payment_hash: Option, + pub warning_invalid_invoice_signature: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_amount_msat: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub invoice_fallbacks: Option>, + pub warning_invalid_invreq_payer_note: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_features: Option, + pub warning_invalid_offer_currency: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_node_id: Option, + pub warning_invalid_offer_description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub invoice_recurrence_basetime: Option, + pub warning_invalid_offer_issuer: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_paths: Option, + 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_payment_hash: Option, + pub warning_missing_invoice_node_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub warning_missing_invoice_amount: Option, + 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_node_id: Option, + 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_invalid_invoice_signature: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub fallbacks: Option>, - #[serde(skip_serializing_if = "Option::is_none")] - pub created_at: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub expiry: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub payee: Option, + pub warning_missing_invreq_metadata: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_hash: Option, + pub warning_missing_invreq_payer_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description_hash: Option, + pub warning_missing_offer_description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub min_final_cltv_expiry: Option, + pub warning_missing_offer_node_id: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_secret: Option, + pub warning_rune_invalid_utf8: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub payment_metadata: Option, + pub warning_unknown_offer_currency: Option, #[serde(skip_serializing_if = "crate::is_none_or_empty")] pub extra: 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 string: 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 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>, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_rune_invalid_utf8: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub hex: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub decrypted: Option, + // Path `Decode.type` + #[serde(rename = "type")] + pub item_type: DecodeType, + pub valid: bool, } impl TryFrom for DecodeResponse { @@ -5015,6 +5100,17 @@ pub mod responses { } } + #[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, + } + #[derive(Clone, Debug, Deserialize, Serialize)] pub struct FeeratesPerkbEstimates { #[serde(skip_serializing_if = "Option::is_none")] @@ -5027,20 +5123,6 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct FeeratesPerkb { - pub min_acceptable: u32, - pub max_acceptable: u32, - #[serde(skip_serializing_if = "Option::is_none")] - pub floor: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub estimates: Option>, - #[serde(skip_serializing_if = "Option::is_none")] - pub opening: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub mutual_close: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub unilateral_close: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub unilateral_anchor_close: Option, #[deprecated] #[serde(skip_serializing_if = "Option::is_none")] pub delayed_to_us: Option, @@ -5048,7 +5130,21 @@ pub mod responses { #[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)] @@ -5063,20 +5159,6 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct FeeratesPerkw { - pub min_acceptable: u32, - pub max_acceptable: u32, - #[serde(skip_serializing_if = "Option::is_none")] - pub floor: Option, - #[serde(skip_serializing_if = "crate::is_none_or_empty")] - pub estimates: Option>, - #[serde(skip_serializing_if = "Option::is_none")] - pub opening: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub mutual_close: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub unilateral_close: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub unilateral_anchor_close: Option, #[deprecated] #[serde(skip_serializing_if = "Option::is_none")] pub delayed_to_us: Option, @@ -5084,30 +5166,33 @@ pub mod responses { #[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, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FeeratesOnchain_fee_estimates { - pub opening_channel_satoshis: u64, - pub mutual_close_satoshis: u64, - pub unilateral_close_satoshis: u64, #[serde(skip_serializing_if = "Option::is_none")] - pub unilateral_close_nonanchor_satoshis: Option, - pub htlc_timeout_satoshis: u64, - pub htlc_success_satoshis: u64, + 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 warning_missing_feerates: Option, + 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 onchain_fee_estimates: Option, + pub warning_missing_feerates: Option, } impl TryFrom for FeeratesResponse { @@ -5121,35 +5206,35 @@ pub mod responses { } } + #[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 description_appended: Option, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub vendor_removed: Option, + pub description_appended: Option, #[serde(skip_serializing_if = "Option::is_none")] pub vendor: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, - } - - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct FetchinvoiceNext_period { - pub counter: u64, - pub starttime: u64, - pub endtime: u64, - pub paywindow_start: u64, - pub paywindow_end: u64, + pub vendor_removed: Option, } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct FetchinvoiceResponse { - pub invoice: String, - pub changes: FetchinvoiceChanges, #[serde(skip_serializing_if = "Option::is_none")] pub next_period: Option, + pub changes: FetchinvoiceChanges, + pub invoice: String, } impl TryFrom for FetchinvoiceResponse { @@ -5173,16 +5258,16 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct FundchannelResponse { - pub tx: String, - pub txid: String, - pub outnum: u32, - pub channel_id: Sha256, #[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 FundchannelResponse { @@ -5223,13 +5308,13 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct GetrouteRoute { - pub id: PublicKey, - pub channel: ShortChannelId, - pub direction: u32, - pub amount_msat: Amount, - pub delay: u32, // Path `GetRoute.route[].style` pub style: GetrouteRouteStyle, + pub amount_msat: Amount, + pub channel: ShortChannelId, + pub delay: u32, + pub direction: u32, + pub id: PublicKey, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -5237,51 +5322,14 @@ pub mod responses { pub route: Vec, } - impl TryFrom for GetrouteResponse { - type Error = super::TryFromResponseError; - - fn try_from(response: Response) -> Result { - match response { - Response::GetRoute(response) => Ok(response), - _ => Err(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, - } - - 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 TryFrom for GetrouteResponse { + type Error = super::TryFromResponseError; - 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() + fn try_from(response: Response) -> Result { + match response { + Response::GetRoute(response) => Ok(response), + _ => Err(TryFromResponseError) + } } } @@ -5314,29 +5362,72 @@ pub mod responses { } } + /// ['Still ongoing, completed, failed locally, or failed after forwarding.'] + #[derive(Copy, Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] + pub enum ListforwardsForwardsStatus { + #[serde(rename = "failed")] + FAILED = 3, + #[serde(rename = "local_failed")] + LOCAL_FAILED = 2, + #[serde(rename = "offered")] + OFFERED = 0, + #[serde(rename = "settled")] + SETTLED = 1, + } + + impl TryFrom for ListforwardsForwardsStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 3 => Ok(ListforwardsForwardsStatus::FAILED), + 2 => Ok(ListforwardsForwardsStatus::LOCAL_FAILED), + 0 => Ok(ListforwardsForwardsStatus::OFFERED), + 1 => Ok(ListforwardsForwardsStatus::SETTLED), + o => Err(anyhow::anyhow!("Unknown variant {} for enum ListforwardsForwardsStatus", o)), + } + } + } + + impl ToString for ListforwardsForwardsStatus { + fn to_string(&self) -> String { + match self { + ListforwardsForwardsStatus::FAILED => "FAILED", + ListforwardsForwardsStatus::LOCAL_FAILED => "LOCAL_FAILED", + ListforwardsForwardsStatus::OFFERED => "OFFERED", + ListforwardsForwardsStatus::SETTLED => "SETTLED", + }.to_string() + } + } + #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListforwardsForwards { #[serde(skip_serializing_if = "Option::is_none")] pub created_index: Option, - pub in_channel: ShortChannelId, + #[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, - pub in_msat: Amount, - // Path `ListForwards.forwards[].status` - pub status: ListforwardsForwardsStatus, - pub received_time: f64, #[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 updated_index: Option, + pub out_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub style: Option, + pub resolved_time: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub fee_msat: Option, + pub style: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub out_msat: Option, + 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)] @@ -5357,13 +5448,13 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListoffersOffers { - pub offer_id: Sha256, + #[serde(skip_serializing_if = "Option::is_none")] + pub label: Option, pub active: bool, - pub single_use: bool, pub bolt12: String, + pub offer_id: Sha256, + pub single_use: bool, pub used: bool, - #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -5385,21 +5476,21 @@ pub mod responses { /// ['Status of the payment.'] #[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, + #[serde(rename = "failed")] + FAILED = 1, + #[serde(rename = "pending")] + PENDING = 0, } impl TryFrom for ListpaysPaysStatus { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListpaysPaysStatus::PENDING), - 1 => Ok(ListpaysPaysStatus::FAILED), 2 => Ok(ListpaysPaysStatus::COMPLETE), + 1 => Ok(ListpaysPaysStatus::FAILED), + 0 => Ok(ListpaysPaysStatus::PENDING), o => Err(anyhow::anyhow!("Unknown variant {} for enum ListpaysPaysStatus", o)), } } @@ -5408,41 +5499,41 @@ pub mod responses { impl ToString for ListpaysPaysStatus { fn to_string(&self) -> String { match self { - ListpaysPaysStatus::PENDING => "PENDING", - ListpaysPaysStatus::FAILED => "FAILED", ListpaysPaysStatus::COMPLETE => "COMPLETE", + ListpaysPaysStatus::FAILED => "FAILED", + ListpaysPaysStatus::PENDING => "PENDING", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListpaysPays { - pub payment_hash: Sha256, - // Path `ListPays.pays[].status` - pub status: ListpaysPaysStatus, #[serde(skip_serializing_if = "Option::is_none")] - pub destination: Option, - pub created_at: u64, - #[serde(skip_serializing_if = "Option::is_none")] - pub completed_at: Option, + pub amount_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, + pub amount_sent_msat: Option, #[serde(skip_serializing_if = "Option::is_none")] pub bolt11: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub description: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub bolt12: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub amount_msat: Option, + pub completed_at: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub amount_sent_msat: Option, + pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub preimage: Option, + 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 number_of_parts: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub erroronion: Option, + pub preimage: Option, + // Path `ListPays.pays[].status` + pub status: ListpaysPaysStatus, + pub created_at: u64, + pub payment_hash: Sha256, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -5464,18 +5555,18 @@ pub mod responses { /// ['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, + #[serde(rename = "out")] + OUT = 0, } impl TryFrom for ListhtlcsHtlcsDirection { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(ListhtlcsHtlcsDirection::OUT), 1 => Ok(ListhtlcsHtlcsDirection::IN), + 0 => Ok(ListhtlcsHtlcsDirection::OUT), o => Err(anyhow::anyhow!("Unknown variant {} for enum ListhtlcsHtlcsDirection", o)), } } @@ -5484,23 +5575,23 @@ pub mod responses { impl ToString for ListhtlcsHtlcsDirection { fn to_string(&self) -> String { match self { - ListhtlcsHtlcsDirection::OUT => "OUT", ListhtlcsHtlcsDirection::IN => "IN", + ListhtlcsHtlcsDirection::OUT => "OUT", }.to_string() } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ListhtlcsHtlcs { - pub short_channel_id: ShortChannelId, - pub id: u64, - pub expiry: u32, - pub amount_msat: Amount, // Path `ListHtlcs.htlcs[].direction` pub direction: ListhtlcsHtlcsDirection, - pub payment_hash: Sha256, // 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, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -5521,14 +5612,14 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct OfferResponse { - pub offer_id: Sha256, + #[serde(skip_serializing_if = "Option::is_none")] + pub label: Option, pub active: bool, - pub single_use: bool, pub bolt12: String, - pub used: bool, pub created: bool, - #[serde(skip_serializing_if = "Option::is_none")] - pub label: Option, + pub offer_id: Sha256, + pub single_use: bool, + pub used: bool, } impl TryFrom for OfferResponse { @@ -5576,20 +5667,20 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SetchannelChannels { - pub peer_id: PublicKey, - pub channel_id: Sha256, + #[serde(skip_serializing_if = "Option::is_none")] + pub ignore_fee_limits: Option, #[serde(skip_serializing_if = "Option::is_none")] pub short_channel_id: Option, - pub fee_base_msat: Amount, - pub fee_proportional_millionths: u32, #[serde(skip_serializing_if = "Option::is_none")] - pub ignore_fee_limits: Option, - pub minimum_htlc_out_msat: Amount, + 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, - #[serde(skip_serializing_if = "Option::is_none")] - pub warning_htlcmax_too_high: Option, + pub minimum_htlc_out_msat: Amount, + pub peer_id: PublicKey, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -5626,8 +5717,8 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct SignmessageResponse { - pub signature: String, pub recid: String, + pub signature: String, pub zbase: String, } @@ -5658,12 +5749,97 @@ pub mod responses { } } + /// ['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 = "complete")] + COMPLETE = 5, + #[serde(rename = "expired")] + EXPIRED = 2, + #[serde(rename = "failed")] + FAILED = 4, + #[serde(rename = "local_failed")] + LOCAL_FAILED = 8, + #[serde(rename = "offered")] + OFFERED = 6, + #[serde(rename = "paid")] + PAID = 1, + #[serde(rename = "pending")] + PENDING = 3, + #[serde(rename = "settled")] + SETTLED = 7, + #[serde(rename = "unpaid")] + UNPAID = 0, + } + + impl TryFrom for WaitDetailsStatus { + type Error = anyhow::Error; + fn try_from(c: i32) -> Result { + match c { + 5 => Ok(WaitDetailsStatus::COMPLETE), + 2 => Ok(WaitDetailsStatus::EXPIRED), + 4 => Ok(WaitDetailsStatus::FAILED), + 8 => Ok(WaitDetailsStatus::LOCAL_FAILED), + 6 => Ok(WaitDetailsStatus::OFFERED), + 1 => Ok(WaitDetailsStatus::PAID), + 3 => Ok(WaitDetailsStatus::PENDING), + 7 => Ok(WaitDetailsStatus::SETTLED), + 0 => Ok(WaitDetailsStatus::UNPAID), + 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 bolt11: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub bolt12: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub description: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub groupid: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub in_channel: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub in_htlc_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub in_msat: 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, + #[serde(skip_serializing_if = "Option::is_none")] + 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 = "invoices")] + INVOICES = 0, #[serde(rename = "sendpays")] SENDPAYS = 2, } @@ -5672,8 +5848,8 @@ pub mod responses { type Error = anyhow::Error; fn try_from(c: i32) -> Result { match c { - 0 => Ok(WaitSubsystem::INVOICES), 1 => Ok(WaitSubsystem::FORWARDS), + 0 => Ok(WaitSubsystem::INVOICES), 2 => Ok(WaitSubsystem::SENDPAYS), o => Err(anyhow::anyhow!("Unknown variant {} for enum WaitSubsystem", o)), } @@ -5683,8 +5859,8 @@ pub mod responses { impl ToString for WaitSubsystem { fn to_string(&self) -> String { match self { - WaitSubsystem::INVOICES => "INVOICES", WaitSubsystem::FORWARDS => "FORWARDS", + WaitSubsystem::INVOICES => "INVOICES", WaitSubsystem::SENDPAYS => "SENDPAYS", }.to_string() } @@ -5692,14 +5868,16 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct WaitResponse { - // Path `Wait.subsystem` - pub subsystem: WaitSubsystem, #[serde(skip_serializing_if = "Option::is_none")] pub created: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub updated: 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 { @@ -5802,20 +5980,20 @@ pub mod responses { #[derive(Clone, Debug, Deserialize, Serialize)] pub struct BkprlistincomeIncome_events { - pub account: String, - pub tag: String, - pub credit_msat: Amount, - pub debit_msat: Amount, - pub currency: String, - pub timestamp: u32, #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, #[serde(skip_serializing_if = "Option::is_none")] pub outpoint: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub txid: Option, - #[serde(skip_serializing_if = "Option::is_none")] pub payment_id: 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, } #[derive(Clone, Debug, Deserialize, Serialize)] diff --git a/contrib/msggen/msggen/gen/grpc.py b/contrib/msggen/msggen/gen/grpc.py index 6f7857db35f7..beb0d5dfdb5b 100644 --- a/contrib/msggen/msggen/gen/grpc.py +++ b/contrib/msggen/msggen/gen/grpc.py @@ -34,7 +34,7 @@ "feerate": "Feerate", "outputdesc": "OutputDesc", "secret": "bytes", - "bip340sig": "bytes", + "bip340sig": "string", "hash": "bytes", } @@ -95,8 +95,10 @@ def field2number(self, message_name: TypeName, field): def enumerate_fields(self, message_name, fields): """Use the meta map to identify which number this field will get. """ - for f in fields: - yield (self.field2number(message_name, f), f) + enumerated_values = [(self.field2number(message_name, f), f) for f in fields] + sorted_enumerated_values = sorted(enumerated_values, key=lambda x: x[0]) + for i, v in sorted_enumerated_values: + yield (i, v) def enumvar2number(self, typename: TypeName, variant): """Find an existing variant number of generate a new one. @@ -122,8 +124,10 @@ def enumvar2number(self, typename: TypeName, variant): return m[typename][variant] def enumerate_enum(self, typename, variants): - for v in variants: - yield (self.enumvar2number(typename, v), v) + enumerated_values = [(self.enumvar2number(typename, v), v) for v in variants] + sorted_enumerated_values = sorted(enumerated_values, key=lambda x: x[0]) + for i, v in sorted_enumerated_values: + yield (i, v) def gather_types(self, service): """Gather all types that might need to be defined. @@ -249,6 +253,8 @@ def generate_composite(self, prefix, field: CompositeField): if field.omit(): return + field.sort() + # First pass: generate any sub-fields before we generate the # top-level field itself. for f in field.fields: @@ -325,7 +331,6 @@ def generate_composite(self, prefix, field: CompositeField): 'hash?': f'c.{name}.map(|v| >::as_ref(&v).to_vec())', 'secret': f'c.{name}.to_vec()', 'secret?': f'c.{name}.map(|v| v.to_vec())', - 'msat_or_any': f'Some(c.{name}.into())', 'msat_or_all': f'Some(c.{name}.into())', 'msat_or_all?': f'c.{name}.map(|o|o.into())', diff --git a/contrib/msggen/msggen/gen/grpc2py.py b/contrib/msggen/msggen/gen/grpc2py.py index b90494154989..475dd58ae5c3 100644 --- a/contrib/msggen/msggen/gen/grpc2py.py +++ b/contrib/msggen/msggen/gen/grpc2py.py @@ -97,6 +97,7 @@ def generate_enum(self, prefix, field: EnumField): self.converters[field.path] = "str(m.{{name}})" def generate_composite(self, prefix, field: CompositeField): + field.sort() if override.get(field.path, "") is None: return name = field.name.normalized() diff --git a/contrib/msggen/msggen/gen/rust.py b/contrib/msggen/msggen/gen/rust.py index 767b3de6cca8..f60a326753d1 100644 --- a/contrib/msggen/msggen/gen/rust.py +++ b/contrib/msggen/msggen/gen/rust.py @@ -35,7 +35,7 @@ 'outputdesc': 'OutputDesc', 'hash': 'Sha256', 'secret': 'Secret', - 'bip340sig': 'Secret', + 'bip340sig': 'String', 'integer': 'i64', } @@ -110,7 +110,7 @@ def gen_enum(e, meta): complete_variants = False if m != {} and complete_variants: - for v in e.variants: + for v in sorted(e.variants): if v is None: continue norm = v.normalized() @@ -128,12 +128,12 @@ def gen_enum(e, meta): """) if m != {} and complete_variants: - for v in e.variants: + for v in sorted(e.variants): norm = v.normalized() # decl += f" #[serde(rename = \"{v}\")]\n" decl += f" {m[str(v)]} => Ok({e.typename}::{norm}),\n" else: - for i, v in enumerate(e.variants): + for i, v in enumerate(sorted(e.variants)): norm = v.normalized() # decl += f" #[serde(rename = \"{v}\")]\n" decl += f" {i} => Ok({e.typename}::{norm}),\n" @@ -153,7 +153,7 @@ def gen_enum(e, meta): fn to_string(&self) -> String {{ match self {{ """) - for v in e.variants: + for v in sorted(e.variants): norm = v.normalized() decl += f" {e.typename}::{norm} => \"{norm}\",\n" decl += dedent(f"""\ @@ -241,6 +241,7 @@ def gen_composite(c, meta) -> Tuple[str, str]: fields = [] for f in c.fields: fields.append(gen_field(f, meta)) + fields = sorted(fields) r = "".join([f[1] for f in fields]) diff --git a/contrib/msggen/msggen/model.py b/contrib/msggen/msggen/model.py index 7a6ea0343507..6170a4089c1a 100644 --- a/contrib/msggen/msggen/model.py +++ b/contrib/msggen/msggen/model.py @@ -78,6 +78,15 @@ def __init__( self.type_override: Optional[str] = None + def __lt__(self, other): + return self.path < other.path + + def __eq__(self, other): + return self.path == other.path + + def __iter__(self): + yield self.path + @property def name(self): return FieldName(self.path.split(".")[-1]) @@ -199,20 +208,45 @@ def from_js(cls, js, path): 'else': {'properties': js.get('else', {}).get('properties', [])}, } # Yes, this is ugly, but walking nested dicts always is. + + def merge_dicts(dict1, dict2): + merged_dict = {} + for key in set(dict1.keys()) | set(dict2.keys()): + if key in dict1 and key in dict2: + if isinstance(dict1[key], dict) and isinstance(dict2[key], dict): + merged_dict[key] = merge_dicts(dict1[key], dict2[key]) + else: + if isinstance(dict1[key], list) and isinstance(dict2[key], list): + merged_dict[key] = sorted(list(set(dict1[key]).union(set(dict2[key])))) + elif key in dict1: + merged_dict[key] = dict1[key] + else: + merged_dict[key] = dict2[key] + elif key in dict1: + merged_dict[key] = dict1[key] + else: + merged_dict[key] = dict2[key] + return merged_dict + for a in [top] + js.get('allOf', []): var = a.get('then', {}) - props = var.get('properties', None) + props = var.get('properties', {}) if isinstance(props, dict): for k, v in props.items(): - if k not in properties: - properties[k] = v + if properties != {}: + if k in properties: + properties[k] = merge_dicts(properties[k], v) + else: + properties[k] = v var = a.get('else', {}) - props = var.get('properties', None) + props = var.get('properties', {}) if isinstance(props, dict): for k, v in props.items(): - if k not in properties: - properties[k] = v - + if properties != {}: + if k in properties: + properties[k] = merge_dicts(properties[k], v) + else: + properties[k] = v # Identify required fields required = js.get("required", []) fields = [] @@ -262,6 +296,9 @@ def from_js(cls, js, path): typename, fields, path, js["description"] if "description" in js else "", added=js.get('added', None), deprecated=js.get('deprecated', None) ) + def sort(self): + self.fields = sorted(self.fields) + def __str__(self): fieldnames = ",".join([f.path.split(".")[-1] for f in self.fields]) return f"CompositeField[name={self.path}, fields=[{fieldnames}]]" @@ -276,6 +313,12 @@ def __init__(self, variant: Optional[str]): def __str__(self): return self.variant + def __lt__(self, other): + return self.variant < other.variant + + def __eq__(self, other): + return self.variant == other.variant + def normalized(self): return self.variant.replace(' ', '_').replace('-', '_').replace("/", "_").upper() diff --git a/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py b/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py index eb2772ca98c4..6996c79aba3c 100644 --- a/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py +++ b/contrib/pyln-grpc-proto/pyln/grpc/node_pb2.py @@ -14,7 +14,7 @@ from pyln.grpc import primitives_pb2 as primitives__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nnode.proto\x12\x03\x63ln\x1a\x10primitives.proto\"\x10\n\x0eGetinfoRequest\"\xc1\x04\n\x0fGetinfoResponse\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x12\n\x05\x61lias\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x63olor\x18\x03 \x01(\x0c\x12\x11\n\tnum_peers\x18\x04 \x01(\r\x12\x1c\n\x14num_pending_channels\x18\x05 \x01(\r\x12\x1b\n\x13num_active_channels\x18\x06 \x01(\r\x12\x1d\n\x15num_inactive_channels\x18\x07 \x01(\r\x12\x0f\n\x07version\x18\x08 \x01(\t\x12\x15\n\rlightning_dir\x18\t \x01(\t\x12\x33\n\x0cour_features\x18\n \x01(\x0b\x32\x18.cln.GetinfoOur_featuresH\x01\x88\x01\x01\x12\x13\n\x0b\x62lockheight\x18\x0b \x01(\r\x12\x0f\n\x07network\x18\x0c \x01(\t\x12(\n\x13\x66\x65\x65s_collected_msat\x18\r \x01(\x0b\x32\x0b.cln.Amount\x12$\n\x07\x61\x64\x64ress\x18\x0e \x03(\x0b\x32\x13.cln.GetinfoAddress\x12$\n\x07\x62inding\x18\x0f \x03(\x0b\x32\x13.cln.GetinfoBinding\x12\"\n\x15warning_bitcoind_sync\x18\x10 \x01(\tH\x02\x88\x01\x01\x12$\n\x17warning_lightningd_sync\x18\x11 \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_aliasB\x0f\n\r_our_featuresB\x18\n\x16_warning_bitcoind_syncB\x1a\n\x18_warning_lightningd_sync\"S\n\x13GetinfoOur_features\x12\x0c\n\x04init\x18\x01 \x01(\x0c\x12\x0c\n\x04node\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\x0c\x12\x0f\n\x07invoice\x18\x04 \x01(\x0c\"\xc4\x01\n\x0eGetinfoAddress\x12\x39\n\titem_type\x18\x01 \x01(\x0e\x32&.cln.GetinfoAddress.GetinfoAddressType\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x00\x88\x01\x01\"G\n\x12GetinfoAddressType\x12\x07\n\x03\x44NS\x10\x00\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\n\n\x08_address\"\x8a\x02\n\x0eGetinfoBinding\x12\x39\n\titem_type\x18\x01 \x01(\x0e\x32&.cln.GetinfoBinding.GetinfoBindingType\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04port\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06socket\x18\x04 \x01(\tH\x02\x88\x01\x01\"_\n\x12GetinfoBindingType\x12\x10\n\x0cLOCAL_SOCKET\x10\x00\x12\r\n\tWEBSOCKET\x10\x05\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\n\n\x08_addressB\x07\n\x05_portB\t\n\x07_socket\"\xaa\x01\n\x10ListpeersRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x38\n\x05level\x18\x02 \x01(\x0e\x32$.cln.ListpeersRequest.ListpeersLevelH\x01\x88\x01\x01\":\n\x0eListpeersLevel\x12\x06\n\x02IO\x10\x00\x12\t\n\x05\x44\x45\x42UG\x10\x01\x12\x08\n\x04INFO\x10\x02\x12\x0b\n\x07UNUSUAL\x10\x03\x42\x05\n\x03_idB\x08\n\x06_level\"7\n\x11ListpeersResponse\x12\"\n\x05peers\x18\x01 \x03(\x0b\x32\x13.cln.ListpeersPeers\"\xdf\x01\n\x0eListpeersPeers\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x11\n\tconnected\x18\x02 \x01(\x08\x12\x19\n\x0cnum_channels\x18\x08 \x01(\rH\x00\x88\x01\x01\x12#\n\x03log\x18\x03 \x03(\x0b\x32\x16.cln.ListpeersPeersLog\x12\x0f\n\x07netaddr\x18\x05 \x03(\t\x12\x18\n\x0bremote_addr\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18\x06 \x01(\x0cH\x02\x88\x01\x01\x42\x0f\n\r_num_channelsB\x0e\n\x0c_remote_addrB\x0b\n\t_features\"\xfd\x02\n\x11ListpeersPeersLog\x12?\n\titem_type\x18\x01 \x01(\x0e\x32,.cln.ListpeersPeersLog.ListpeersPeersLogType\x12\x18\n\x0bnum_skipped\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04time\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06source\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x03log\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07node_id\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x11\n\x04\x64\x61ta\x18\x07 \x01(\x0cH\x05\x88\x01\x01\"i\n\x15ListpeersPeersLogType\x12\x0b\n\x07SKIPPED\x10\x00\x12\n\n\x06\x42ROKEN\x10\x01\x12\x0b\n\x07UNUSUAL\x10\x02\x12\x08\n\x04INFO\x10\x03\x12\t\n\x05\x44\x45\x42UG\x10\x04\x12\t\n\x05IO_IN\x10\x05\x12\n\n\x06IO_OUT\x10\x06\x42\x0e\n\x0c_num_skippedB\x07\n\x05_timeB\t\n\x07_sourceB\x06\n\x04_logB\n\n\x08_node_idB\x07\n\x05_data\"0\n\x10ListfundsRequest\x12\x12\n\x05spent\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x08\n\x06_spent\"e\n\x11ListfundsResponse\x12&\n\x07outputs\x18\x01 \x03(\x0b\x32\x15.cln.ListfundsOutputs\x12(\n\x08\x63hannels\x18\x02 \x03(\x0b\x32\x16.cln.ListfundsChannels\"\x83\x03\n\x10ListfundsOutputs\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06output\x18\x02 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0cscriptpubkey\x18\x04 \x01(\x0c\x12\x14\n\x07\x61\x64\x64ress\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0credeemscript\x18\x06 \x01(\x0cH\x01\x88\x01\x01\x12<\n\x06status\x18\x07 \x01(\x0e\x32,.cln.ListfundsOutputs.ListfundsOutputsStatus\x12\x10\n\x08reserved\x18\t \x01(\x08\x12\x18\n\x0b\x62lockheight\x18\x08 \x01(\rH\x02\x88\x01\x01\"Q\n\x16ListfundsOutputsStatus\x12\x0f\n\x0bUNCONFIRMED\x10\x00\x12\r\n\tCONFIRMED\x10\x01\x12\t\n\x05SPENT\x10\x02\x12\x0c\n\x08IMMATURE\x10\x03\x42\n\n\x08_addressB\x0f\n\r_redeemscriptB\x0e\n\x0c_blockheight\"\xab\x02\n\x11ListfundsChannels\x12\x0f\n\x07peer_id\x18\x01 \x01(\x0c\x12$\n\x0four_amount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12 \n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0c\x66unding_txid\x18\x04 \x01(\x0c\x12\x16\n\x0e\x66unding_output\x18\x05 \x01(\r\x12\x11\n\tconnected\x18\x06 \x01(\x08\x12 \n\x05state\x18\x07 \x01(\x0e\x32\x11.cln.ChannelState\x12\x17\n\nchannel_id\x18\t \x01(\x0cH\x00\x88\x01\x01\x12\x1d\n\x10short_channel_id\x18\x08 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_channel_idB\x13\n\x11_short_channel_id\"\xbb\x03\n\x0eSendpayRequest\x12 \n\x05route\x18\x01 \x03(\x0b\x32\x11.cln.SendpayRoute\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\x12\n\x05label\x18\x03 \x01(\tH\x00\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0epayment_secret\x18\x06 \x01(\x0cH\x03\x88\x01\x01\x12\x13\n\x06partid\x18\x07 \x01(\x04H\x04\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\x0b \x01(\x0cH\x05\x88\x01\x01\x12\x14\n\x07groupid\x18\t \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10payment_metadata\x18\x0c \x01(\x0cH\x07\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\r \x01(\tH\x08\x88\x01\x01\x42\x08\n\x06_labelB\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\x11\n\x0f_payment_secretB\t\n\x07_partidB\x10\n\x0e_localinvreqidB\n\n\x08_groupidB\x13\n\x11_payment_metadataB\x0e\n\x0c_description\"\xad\x05\n\x0fSendpayResponse\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x00\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x01\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x07groupid\x18\x02 \x01(\x04H\x02\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x32\n\x06status\x18\x04 \x01(\x0e\x32\".cln.SendpayResponse.SendpayStatus\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x12\n\ncreated_at\x18\x07 \x01(\x04\x12\x19\n\x0c\x63ompleted_at\x18\x0f \x01(\x04H\x05\x88\x01\x01\x12%\n\x10\x61mount_sent_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\t \x01(\tH\x06\x88\x01\x01\x12\x13\n\x06partid\x18\n \x01(\x04H\x07\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0b \x01(\tH\x08\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0c \x01(\tH\t\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\n\x88\x01\x01\x12\x14\n\x07message\x18\x0e \x01(\tH\x0b\x88\x01\x01\"*\n\rSendpayStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x42\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x0f\n\r_completed_atB\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimageB\n\n\x08_message\"\\\n\x0cSendpayRoute\x12\n\n\x02id\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63hannel\x18\x04 \x01(\t\x12\r\n\x05\x64\x65lay\x18\x03 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\"\x93\x01\n\x13ListchannelsRequest\x12\x1d\n\x10short_channel_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06source\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x42\x13\n\x11_short_channel_idB\t\n\x07_sourceB\x0e\n\x0c_destination\"C\n\x14ListchannelsResponse\x12+\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x19.cln.ListchannelsChannels\"\xb3\x03\n\x14ListchannelsChannels\x12\x0e\n\x06source\x18\x01 \x01(\x0c\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\x0c\x12\x18\n\x10short_channel_id\x18\x03 \x01(\t\x12\x11\n\tdirection\x18\x10 \x01(\r\x12\x0e\n\x06public\x18\x04 \x01(\x08\x12 \n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.Amount\x12\x15\n\rmessage_flags\x18\x06 \x01(\r\x12\x15\n\rchannel_flags\x18\x07 \x01(\r\x12\x0e\n\x06\x61\x63tive\x18\x08 \x01(\x08\x12\x13\n\x0blast_update\x18\t \x01(\r\x12\x1d\n\x15\x62\x61se_fee_millisatoshi\x18\n \x01(\r\x12\x19\n\x11\x66\x65\x65_per_millionth\x18\x0b \x01(\r\x12\r\n\x05\x64\x65lay\x18\x0c \x01(\r\x12&\n\x11htlc_minimum_msat\x18\r \x01(\x0b\x32\x0b.cln.Amount\x12+\n\x11htlc_maximum_msat\x18\x0e \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x10\n\x08\x66\x65\x61tures\x18\x0f \x01(\x0c\x42\x14\n\x12_htlc_maximum_msat\"#\n\x10\x41\x64\x64gossipRequest\x12\x0f\n\x07message\x18\x01 \x01(\x0c\"\x13\n\x11\x41\x64\x64gossipResponse\"o\n\x17\x41utocleaninvoiceRequest\x12\x17\n\nexpired_by\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x1a\n\rcycle_seconds\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\r\n\x0b_expired_byB\x10\n\x0e_cycle_seconds\"\x81\x01\n\x18\x41utocleaninvoiceResponse\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x17\n\nexpired_by\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x1a\n\rcycle_seconds\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\r\n\x0b_expired_byB\x10\n\x0e_cycle_seconds\"U\n\x13\x43heckmessageRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\r\n\x05zbase\x18\x02 \x01(\t\x12\x13\n\x06pubkey\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x42\t\n\x07_pubkey\"8\n\x14\x43heckmessageResponse\x12\x10\n\x08verified\x18\x01 \x01(\x08\x12\x0e\n\x06pubkey\x18\x02 \x01(\x0c\"\xcb\x02\n\x0c\x43loseRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1e\n\x11unilateraltimeout\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x03 \x01(\tH\x01\x88\x01\x01\x12!\n\x14\x66\x65\x65_negotiation_step\x18\x04 \x01(\tH\x02\x88\x01\x01\x12)\n\rwrong_funding\x18\x05 \x01(\x0b\x32\r.cln.OutpointH\x03\x88\x01\x01\x12\x1f\n\x12\x66orce_lease_closed\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1e\n\x08\x66\x65\x65range\x18\x07 \x03(\x0b\x32\x0c.cln.FeerateB\x14\n\x12_unilateraltimeoutB\x0e\n\x0c_destinationB\x17\n\x15_fee_negotiation_stepB\x10\n\x0e_wrong_fundingB\x15\n\x13_force_lease_closed\"\xab\x01\n\rCloseResponse\x12/\n\titem_type\x18\x01 \x01(\x0e\x32\x1c.cln.CloseResponse.CloseType\x12\x0f\n\x02tx\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x11\n\x04txid\x18\x03 \x01(\x0cH\x01\x88\x01\x01\"5\n\tCloseType\x12\n\n\x06MUTUAL\x10\x00\x12\x0e\n\nUNILATERAL\x10\x01\x12\x0c\n\x08UNOPENED\x10\x02\x42\x05\n\x03_txB\x07\n\x05_txid\"T\n\x0e\x43onnectRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x04host\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04port\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_hostB\x07\n\x05_port\"\xb4\x01\n\x0f\x43onnectResponse\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x10\n\x08\x66\x65\x61tures\x18\x02 \x01(\x0c\x12\x38\n\tdirection\x18\x03 \x01(\x0e\x32%.cln.ConnectResponse.ConnectDirection\x12$\n\x07\x61\x64\x64ress\x18\x04 \x01(\x0b\x32\x13.cln.ConnectAddress\"#\n\x10\x43onnectDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\"\xfb\x01\n\x0e\x43onnectAddress\x12\x39\n\titem_type\x18\x01 \x01(\x0e\x32&.cln.ConnectAddress.ConnectAddressType\x12\x13\n\x06socket\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04port\x18\x04 \x01(\rH\x02\x88\x01\x01\"P\n\x12\x43onnectAddressType\x12\x10\n\x0cLOCAL_SOCKET\x10\x00\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\t\n\x07_socketB\n\n\x08_addressB\x07\n\x05_port\"J\n\x14\x43reateinvoiceRequest\x12\x11\n\tinvstring\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x10\n\x08preimage\x18\x03 \x01(\x0c\"\xfe\x05\n\x15\x43reateinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x06\x62olt11\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12>\n\x06status\x18\x06 \x01(\x0e\x32..cln.CreateinvoiceResponse.CreateinvoiceStatus\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x12\n\nexpires_at\x18\x08 \x01(\x04\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tpay_index\x18\t \x01(\x04H\x04\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0b \x01(\x04H\x06\x88\x01\x01\x12;\n\rpaid_outpoint\x18\x11 \x01(\x0b\x32\x1f.cln.CreateinvoicePaid_outpointH\x07\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\x08\x88\x01\x01\x12\x1b\n\x0elocal_offer_id\x18\r \x01(\x0cH\t\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0f \x01(\tH\n\x88\x01\x01\"8\n\x13\x43reateinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x12\n\n\x06UNPAID\x10\x02\x42\t\n\x07_bolt11B\t\n\x07_bolt12B\x0e\n\x0c_amount_msatB\x10\n\x0e_created_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimageB\x11\n\x0f_local_offer_idB\x14\n\x12_invreq_payer_note\"X\n\x1a\x43reateinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\xb4\x02\n\x10\x44\x61tastoreRequest\x12\x0b\n\x03key\x18\x05 \x03(\t\x12\x13\n\x06string\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x36\n\x04mode\x18\x03 \x01(\x0e\x32#.cln.DatastoreRequest.DatastoreModeH\x02\x88\x01\x01\x12\x17\n\ngeneration\x18\x04 \x01(\x04H\x03\x88\x01\x01\"p\n\rDatastoreMode\x12\x0f\n\x0bMUST_CREATE\x10\x00\x12\x10\n\x0cMUST_REPLACE\x10\x01\x12\x15\n\x11\x43REATE_OR_REPLACE\x10\x02\x12\x0f\n\x0bMUST_APPEND\x10\x03\x12\x14\n\x10\x43REATE_OR_APPEND\x10\x04\x42\t\n\x07_stringB\x06\n\x04_hexB\x07\n\x05_modeB\r\n\x0b_generation\"\x82\x01\n\x11\x44\x61tastoreResponse\x12\x0b\n\x03key\x18\x05 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x13\n\x06string\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"$\n\x15\x44\x61tastoreusageRequest\x12\x0b\n\x03key\x18\x01 \x03(\t\"k\n\x16\x44\x61tastoreusageResponse\x12>\n\x0e\x64\x61tastoreusage\x18\x01 \x01(\x0b\x32!.cln.DatastoreusageDatastoreusageH\x00\x88\x01\x01\x42\x11\n\x0f_datastoreusage\"b\n\x1c\x44\x61tastoreusageDatastoreusage\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0btotal_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x06\n\x04_keyB\x0e\n\x0c_total_bytes\"\x9d\x01\n\x12\x43reateonionRequest\x12\"\n\x04hops\x18\x01 \x03(\x0b\x32\x14.cln.CreateonionHops\x12\x11\n\tassocdata\x18\x02 \x01(\x0c\x12\x18\n\x0bsession_key\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x17\n\nonion_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x42\x0e\n\x0c_session_keyB\r\n\x0b_onion_size\"<\n\x13\x43reateonionResponse\x12\r\n\x05onion\x18\x01 \x01(\x0c\x12\x16\n\x0eshared_secrets\x18\x02 \x03(\x0c\"2\n\x0f\x43reateonionHops\x12\x0e\n\x06pubkey\x18\x01 \x01(\x0c\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\"J\n\x13\x44\x65ldatastoreRequest\x12\x0b\n\x03key\x18\x03 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x42\r\n\x0b_generation\"\x85\x01\n\x14\x44\x65ldatastoreResponse\x12\x0b\n\x03key\x18\x05 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x13\n\x06string\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"\xb6\x01\n\x11\x44\x65linvoiceRequest\x12\r\n\x05label\x18\x01 \x01(\t\x12\x37\n\x06status\x18\x02 \x01(\x0e\x32\'.cln.DelinvoiceRequest.DelinvoiceStatus\x12\x15\n\x08\x64\x65sconly\x18\x03 \x01(\x08H\x00\x88\x01\x01\"5\n\x10\x44\x65linvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x12\n\n\x06UNPAID\x10\x02\x42\x0b\n\t_desconly\"\xa1\x04\n\x12\x44\x65linvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x06\x62olt11\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x03 \x01(\tH\x01\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x06 \x01(\x0c\x12\x1a\n\rcreated_index\x18\x0c \x01(\x04H\x04\x88\x01\x01\x12\x1a\n\rupdated_index\x18\r \x01(\x04H\x05\x88\x01\x01\x12\x38\n\x06status\x18\x07 \x01(\x0e\x32(.cln.DelinvoiceResponse.DelinvoiceStatus\x12\x12\n\nexpires_at\x18\x08 \x01(\x04\x12\x1b\n\x0elocal_offer_id\x18\t \x01(\x0cH\x06\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0b \x01(\tH\x07\x88\x01\x01\"5\n\x10\x44\x65linvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x12\n\n\x06UNPAID\x10\x02\x42\t\n\x07_bolt11B\t\n\x07_bolt12B\x0e\n\x0c_amount_msatB\x0e\n\x0c_descriptionB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x11\n\x0f_local_offer_idB\x14\n\x12_invreq_payer_note\"\xfa\x01\n\x0eInvoiceRequest\x12%\n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x10.cln.AmountOrAny\x12\r\n\x05label\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x13\n\x06\x65xpiry\x18\x07 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\tfallbacks\x18\x04 \x03(\t\x12\x15\n\x08preimage\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x11\n\x04\x63ltv\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0c\x64\x65schashonly\x18\t \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_expiryB\x0b\n\t_preimageB\x07\n\x05_cltvB\x0f\n\r_deschashonly\"\x95\x03\n\x0fInvoiceResponse\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\x16\n\x0epayment_secret\x18\x03 \x01(\x0c\x12\x12\n\nexpires_at\x18\x04 \x01(\x04\x12\x1a\n\rcreated_index\x18\n \x01(\x04H\x00\x88\x01\x01\x12\x1d\n\x10warning_capacity\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0fwarning_offline\x18\x06 \x01(\tH\x02\x88\x01\x01\x12\x1d\n\x10warning_deadends\x18\x07 \x01(\tH\x03\x88\x01\x01\x12#\n\x16warning_private_unused\x18\x08 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0bwarning_mpp\x18\t \x01(\tH\x05\x88\x01\x01\x42\x10\n\x0e_created_indexB\x13\n\x11_warning_capacityB\x12\n\x10_warning_offlineB\x13\n\x11_warning_deadendsB\x19\n\x17_warning_private_unusedB\x0e\n\x0c_warning_mpp\"#\n\x14ListdatastoreRequest\x12\x0b\n\x03key\x18\x02 \x03(\t\"G\n\x15ListdatastoreResponse\x12.\n\tdatastore\x18\x01 \x03(\x0b\x32\x1b.cln.ListdatastoreDatastore\"\x87\x01\n\x16ListdatastoreDatastore\x12\x0b\n\x03key\x18\x01 \x03(\t\x12\x17\n\ngeneration\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x03 \x01(\x0cH\x01\x88\x01\x01\x12\x13\n\x06string\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\r\n\x0b_generationB\x06\n\x04_hexB\t\n\x07_string\"\xde\x02\n\x13ListinvoicesRequest\x12\x12\n\x05label\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tinvstring\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x03 \x01(\x0cH\x02\x88\x01\x01\x12\x15\n\x08offer_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12>\n\x05index\x18\x05 \x01(\x0e\x32*.cln.ListinvoicesRequest.ListinvoicesIndexH\x04\x88\x01\x01\x12\x12\n\x05start\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x12\n\x05limit\x18\x07 \x01(\rH\x06\x88\x01\x01\"-\n\x11ListinvoicesIndex\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x42\x08\n\x06_labelB\x0c\n\n_invstringB\x0f\n\r_payment_hashB\x0b\n\t_offer_idB\x08\n\x06_indexB\x08\n\x06_startB\x08\n\x06_limit\"C\n\x14ListinvoicesResponse\x12+\n\x08invoices\x18\x01 \x03(\x0b\x32\x19.cln.ListinvoicesInvoices\"\xd4\x06\n\x14ListinvoicesInvoices\x12\r\n\x05label\x18\x01 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x44\n\x06status\x18\x04 \x01(\x0e\x32\x34.cln.ListinvoicesInvoices.ListinvoicesInvoicesStatus\x12\x12\n\nexpires_at\x18\x05 \x01(\x04\x12%\n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0elocal_offer_id\x18\t \x01(\x0cH\x04\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x0f \x01(\tH\x05\x88\x01\x01\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x07\x88\x01\x01\x12\x16\n\tpay_index\x18\x0b \x01(\x04H\x08\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\t\x88\x01\x01\x12\x14\n\x07paid_at\x18\r \x01(\x04H\n\x88\x01\x01\x12\x42\n\rpaid_outpoint\x18\x12 \x01(\x0b\x32&.cln.ListinvoicesInvoicesPaid_outpointH\x0b\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0e \x01(\x0cH\x0c\x88\x01\x01\"?\n\x1aListinvoicesInvoicesStatus\x12\n\n\x06UNPAID\x10\x00\x12\x08\n\x04PAID\x10\x01\x12\x0b\n\x07\x45XPIRED\x10\x02\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x11\n\x0f_local_offer_idB\x14\n\x12_invreq_payer_noteB\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimage\"_\n!ListinvoicesInvoicesPaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\xb4\x03\n\x10SendonionRequest\x12\r\n\x05onion\x18\x01 \x01(\x0c\x12*\n\tfirst_hop\x18\x02 \x01(\x0b\x32\x17.cln.SendonionFirst_hop\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x12\n\x05label\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0eshared_secrets\x18\x05 \x03(\x0c\x12\x13\n\x06partid\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x02\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x0c \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\t \x01(\x0cH\x04\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\r \x01(\x0cH\x05\x88\x01\x01\x12\x14\n\x07groupid\x18\x0b \x01(\x04H\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0e \x01(\tH\x07\x88\x01\x01\x42\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x10\n\x0e_localinvreqidB\n\n\x08_groupidB\x0e\n\x0c_description\"\xe7\x04\n\x11SendonionResponse\x12\x1a\n\rcreated_index\x18\x0e \x01(\x04H\x00\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\x36\n\x06status\x18\x03 \x01(\x0e\x32&.cln.SendonionResponse.SendonionStatus\x12%\n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x05 \x01(\x0cH\x02\x88\x01\x01\x12\x12\n\ncreated_at\x18\x06 \x01(\x04\x12%\n\x10\x61mount_sent_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\t \x01(\tH\x04\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\n \x01(\tH\x05\x88\x01\x01\x12\x13\n\x06partid\x18\r \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0f \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0b \x01(\x0cH\x08\x88\x01\x01\x12\x14\n\x07message\x18\x0c \x01(\tH\t\x88\x01\x01\",\n\x0fSendonionStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x42\x10\n\x0e_created_indexB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_bolt11B\t\n\x07_bolt12B\t\n\x07_partidB\x10\n\x0e_updated_indexB\x13\n\x11_payment_preimageB\n\n\x08_message\"Q\n\x12SendonionFirst_hop\x12\n\n\x02id\x18\x01 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\r\n\x05\x64\x65lay\x18\x03 \x01(\r\"\xa0\x03\n\x13ListsendpaysRequest\x12\x13\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12@\n\x06status\x18\x03 \x01(\x0e\x32+.cln.ListsendpaysRequest.ListsendpaysStatusH\x02\x88\x01\x01\x12>\n\x05index\x18\x04 \x01(\x0e\x32*.cln.ListsendpaysRequest.ListsendpaysIndexH\x03\x88\x01\x01\x12\x12\n\x05start\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x06 \x01(\rH\x05\x88\x01\x01\";\n\x12ListsendpaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"-\n\x11ListsendpaysIndex\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x42\t\n\x07_bolt11B\x0f\n\r_payment_hashB\t\n\x07_statusB\x08\n\x06_indexB\x08\n\x06_startB\x08\n\x06_limit\"C\n\x14ListsendpaysResponse\x12+\n\x08payments\x18\x01 \x03(\x0b\x32\x19.cln.ListsendpaysPayments\"\xfc\x05\n\x14ListsendpaysPayments\x12\x1a\n\rcreated_index\x18\x10 \x01(\x04H\x00\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x0f\n\x07groupid\x18\x02 \x01(\x04\x12\x13\n\x06partid\x18\x0f \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x1a\n\rupdated_index\x18\x11 \x01(\x04H\x02\x88\x01\x01\x12\x44\n\x06status\x18\x04 \x01(\x0e\x32\x34.cln.ListsendpaysPayments.ListsendpaysPaymentsStatus\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x12\n\ncreated_at\x18\x07 \x01(\x04\x12%\n\x10\x61mount_sent_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\t \x01(\tH\x05\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\n \x01(\tH\x06\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0e \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0b \x01(\tH\x08\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x12 \x01(\x04H\t\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\n\x88\x01\x01\x12\x17\n\nerroronion\x18\r \x01(\x0cH\x0b\x88\x01\x01\"C\n\x1aListsendpaysPaymentsStatus\x12\x0b\n\x07PENDING\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x12\x0c\n\x08\x43OMPLETE\x10\x02\x42\x10\n\x0e_created_indexB\t\n\x07_partidB\x10\n\x0e_updated_indexB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x08\n\x06_labelB\t\n\x07_bolt11B\x0e\n\x0c_descriptionB\t\n\x07_bolt12B\x0f\n\r_completed_atB\x13\n\x11_payment_preimageB\r\n\x0b_erroronion\"\x19\n\x17ListtransactionsRequest\"S\n\x18ListtransactionsResponse\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.cln.ListtransactionsTransactions\"\xf8\x01\n\x1cListtransactionsTransactions\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\r\n\x05rawtx\x18\x02 \x01(\x0c\x12\x13\n\x0b\x62lockheight\x18\x03 \x01(\r\x12\x0f\n\x07txindex\x18\x04 \x01(\r\x12\x10\n\x08locktime\x18\x07 \x01(\r\x12\x0f\n\x07version\x18\x08 \x01(\r\x12\x37\n\x06inputs\x18\t \x03(\x0b\x32\'.cln.ListtransactionsTransactionsInputs\x12\x39\n\x07outputs\x18\n \x03(\x0b\x32(.cln.ListtransactionsTransactionsOutputs\"S\n\"ListtransactionsTransactionsInputs\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\r\n\x05index\x18\x02 \x01(\r\x12\x10\n\x08sequence\x18\x03 \x01(\r\"l\n#ListtransactionsTransactionsOutputs\x12\r\n\x05index\x18\x01 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12\x14\n\x0cscriptPubKey\x18\x03 \x01(\x0c\"\x93\x04\n\nPayRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12%\n\x0b\x61mount_msat\x18\r \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x17\n\nriskfactor\x18\x08 \x01(\x01H\x02\x88\x01\x01\x12\x1a\n\rmaxfeepercent\x18\x04 \x01(\x01H\x03\x88\x01\x01\x12\x16\n\tretry_for\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x15\n\x08maxdelay\x18\x06 \x01(\rH\x05\x88\x01\x01\x12#\n\texemptfee\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x1a\n\rlocalinvreqid\x18\x0e \x01(\x0cH\x07\x88\x01\x01\x12\x0f\n\x07\x65xclude\x18\n \x03(\t\x12 \n\x06maxfee\x18\x0b \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0c \x01(\tH\t\x88\x01\x01\x12&\n\x0cpartial_msat\x18\x0f \x01(\x0b\x32\x0b.cln.AmountH\n\x88\x01\x01\x42\x0e\n\x0c_amount_msatB\x08\n\x06_labelB\r\n\x0b_riskfactorB\x10\n\x0e_maxfeepercentB\x0c\n\n_retry_forB\x0b\n\t_maxdelayB\x0c\n\n_exemptfeeB\x10\n\x0e_localinvreqidB\t\n\x07_maxfeeB\x0e\n\x0c_descriptionB\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\"\xe1\x01\n\x0eListnodesNodes\x12\x0e\n\x06nodeid\x18\x01 \x01(\x0c\x12\x1b\n\x0elast_timestamp\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x61lias\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x04 \x01(\x0cH\x02\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18\x05 \x01(\x0cH\x03\x88\x01\x01\x12/\n\taddresses\x18\x06 \x03(\x0b\x32\x1c.cln.ListnodesNodesAddressesB\x11\n\x0f_last_timestampB\x08\n\x06_aliasB\x08\n\x06_colorB\x0b\n\t_features\"\xe8\x01\n\x17ListnodesNodesAddresses\x12K\n\titem_type\x18\x01 \x01(\x0e\x32\x38.cln.ListnodesNodesAddresses.ListnodesNodesAddressesType\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x00\x88\x01\x01\"P\n\x1bListnodesNodesAddressesType\x12\x07\n\x03\x44NS\x10\x00\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\n\n\x08_address\"g\n\x15WaitanyinvoiceRequest\x12\x1a\n\rlastpay_index\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x10\n\x0e_lastpay_indexB\n\n\x08_timeout\"\xbf\x05\n\x16WaitanyinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12@\n\x06status\x18\x04 \x01(\x0e\x32\x30.cln.WaitanyinvoiceResponse.WaitanyinvoiceStatus\x12\x12\n\nexpires_at\x18\x05 \x01(\x04\x12%\n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rcreated_index\x18\r \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tpay_index\x18\t \x01(\x04H\x05\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0b \x01(\x04H\x07\x88\x01\x01\x12<\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32 .cln.WaitanyinvoicePaid_outpointH\x08\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\t\x88\x01\x01\"-\n\x14WaitanyinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimage\"Y\n\x1bWaitanyinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"#\n\x12WaitinvoiceRequest\x12\r\n\x05label\x18\x01 \x01(\t\"\xb0\x05\n\x13WaitinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12:\n\x06status\x18\x04 \x01(\x0e\x32*.cln.WaitinvoiceResponse.WaitinvoiceStatus\x12\x12\n\nexpires_at\x18\x05 \x01(\x04\x12%\n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rcreated_index\x18\r \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tpay_index\x18\t \x01(\x04H\x05\x88\x01\x01\x12.\n\x14\x61mount_received_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x14\n\x07paid_at\x18\x0b \x01(\x04H\x07\x88\x01\x01\x12\x39\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32\x1d.cln.WaitinvoicePaid_outpointH\x08\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\x0c \x01(\x0cH\t\x88\x01\x01\"*\n\x11WaitinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\x10\n\x0e_created_indexB\x10\n\x0e_updated_indexB\x0c\n\n_pay_indexB\x17\n\x15_amount_received_msatB\n\n\x08_paid_atB\x10\n\x0e_paid_outpointB\x13\n\x11_payment_preimage\"V\n\x18WaitinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\x8e\x01\n\x12WaitsendpayRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x14\n\x07timeout\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06partid\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07groupid\x18\x04 \x01(\x04H\x02\x88\x01\x01\x42\n\n\x08_timeoutB\t\n\x07_partidB\n\n\x08_groupid\"\x8e\x05\n\x13WaitsendpayResponse\x12\x1a\n\rcreated_index\x18\x0f \x01(\x04H\x00\x88\x01\x01\x12\n\n\x02id\x18\x01 \x01(\x04\x12\x14\n\x07groupid\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12:\n\x06status\x18\x04 \x01(\x0e\x32*.cln.WaitsendpayResponse.WaitsendpayStatus\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x06 \x01(\x0cH\x03\x88\x01\x01\x12\x12\n\ncreated_at\x18\x07 \x01(\x04\x12\x1a\n\rupdated_index\x18\x10 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0c\x63ompleted_at\x18\x0e \x01(\x01H\x05\x88\x01\x01\x12%\n\x10\x61mount_sent_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\t \x01(\tH\x06\x88\x01\x01\x12\x13\n\x06partid\x18\n \x01(\x04H\x07\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x0b \x01(\tH\x08\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x0c \x01(\tH\t\x88\x01\x01\x12\x1d\n\x10payment_preimage\x18\r \x01(\x0cH\n\x88\x01\x01\"!\n\x11WaitsendpayStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x42\x10\n\x0e_created_indexB\n\n\x08_groupidB\x0e\n\x0c_amount_msatB\x0e\n\x0c_destinationB\x10\n\x0e_updated_indexB\x0f\n\r_completed_atB\x08\n\x06_labelB\t\n\x07_partidB\t\n\x07_bolt11B\t\n\x07_bolt12B\x13\n\x11_payment_preimage\"\x97\x01\n\x0eNewaddrRequest\x12@\n\x0b\x61\x64\x64resstype\x18\x01 \x01(\x0e\x32&.cln.NewaddrRequest.NewaddrAddresstypeH\x00\x88\x01\x01\"3\n\x12NewaddrAddresstype\x12\n\n\x06\x42\x45\x43H32\x10\x00\x12\x08\n\x04P2TR\x10\x03\x12\x07\n\x03\x41LL\x10\x02\x42\x0e\n\x0c_addresstype\"M\n\x0fNewaddrResponse\x12\x11\n\x04p2tr\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62\x65\x63h32\x18\x01 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_p2trB\t\n\x07_bech32\"\xb9\x01\n\x0fWithdrawRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12!\n\x07satoshi\x18\x02 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\"\n\x07\x66\x65\x65rate\x18\x05 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x14\n\x07minconf\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.OutpointB\n\n\x08_feerateB\n\n\x08_minconf\":\n\x10WithdrawResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\x12\x0c\n\x04psbt\x18\x03 \x01(\t\"\x82\x03\n\x0eKeysendRequest\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\n \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\x05label\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rmaxfeepercent\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12\x16\n\tretry_for\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x15\n\x08maxdelay\x18\x06 \x01(\rH\x03\x88\x01\x01\x12#\n\texemptfee\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12+\n\nroutehints\x18\x08 \x01(\x0b\x32\x12.cln.RoutehintListH\x05\x88\x01\x01\x12&\n\textratlvs\x18\t \x01(\x0b\x32\x0e.cln.TlvStreamH\x06\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_maxfeepercentB\x0c\n\n_retry_forB\x0b\n\t_maxdelayB\x0c\n\n_exemptfeeB\r\n\x0b_routehintsB\x0c\n\n_extratlvs\"\xf2\x02\n\x0fKeysendResponse\x12\x18\n\x10payment_preimage\x18\x01 \x01(\x0c\x12\x18\n\x0b\x64\x65stination\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x12\n\ncreated_at\x18\x04 \x01(\x01\x12\r\n\x05parts\x18\x05 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x61mount_sent_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12\'\n\x1awarning_partial_completion\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x32\n\x06status\x18\t \x01(\x0e\x32\".cln.KeysendResponse.KeysendStatus\"\x1d\n\rKeysendStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x42\x0e\n\x0c_destinationB\x1d\n\x1b_warning_partial_completion\"\xa4\x03\n\x0f\x46undpsbtRequest\x12!\n\x07satoshi\x18\x01 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\x1d\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.Feerate\x12\x13\n\x0bstartweight\x18\x03 \x01(\r\x12\x14\n\x07minconf\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07reserve\x18\x05 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08locktime\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12min_witness_weight\x18\x07 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10\x65xcess_as_change\x18\x08 \x01(\x08H\x04\x88\x01\x01\x12\x17\n\nnonwrapped\x18\t \x01(\x08H\x05\x88\x01\x01\x12#\n\x16opening_anchor_channel\x18\n \x01(\x08H\x06\x88\x01\x01\x42\n\n\x08_minconfB\n\n\x08_reserveB\x0b\n\t_locktimeB\x15\n\x13_min_witness_weightB\x13\n\x11_excess_as_changeB\r\n\x0b_nonwrappedB\x19\n\x17_opening_anchor_channel\"\xd9\x01\n\x10\x46undpsbtResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x16\n\x0e\x66\x65\x65rate_per_kw\x18\x02 \x01(\r\x12\x1e\n\x16\x65stimated_final_weight\x18\x03 \x01(\r\x12 \n\x0b\x65xcess_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x1a\n\rchange_outnum\x18\x05 \x01(\rH\x00\x88\x01\x01\x12/\n\x0creservations\x18\x06 \x03(\x0b\x32\x19.cln.FundpsbtReservationsB\x10\n\x0e_change_outnum\"u\n\x14\x46undpsbtReservations\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0c\n\x04vout\x18\x02 \x01(\r\x12\x14\n\x0cwas_reserved\x18\x03 \x01(\x08\x12\x10\n\x08reserved\x18\x04 \x01(\x08\x12\x19\n\x11reserved_to_block\x18\x05 \x01(\r\"A\n\x0fSendpsbtRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x14\n\x07reserve\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_reserve\",\n\x10SendpsbtResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\"1\n\x0fSignpsbtRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x10\n\x08signonly\x18\x02 \x03(\r\"\'\n\x10SignpsbtResponse\x12\x13\n\x0bsigned_psbt\x18\x01 \x01(\t\"\xa0\x03\n\x0fUtxopsbtRequest\x12!\n\x07satoshi\x18\x01 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\x1d\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.Feerate\x12\x13\n\x0bstartweight\x18\x03 \x01(\r\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.Outpoint\x12\x14\n\x07reserve\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nreservedok\x18\x08 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08locktime\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12min_witness_weight\x18\x07 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10\x65xcess_as_change\x18\t \x01(\x08H\x04\x88\x01\x01\x12#\n\x16opening_anchor_channel\x18\n \x01(\x08H\x05\x88\x01\x01\x42\n\n\x08_reserveB\r\n\x0b_reservedokB\x0b\n\t_locktimeB\x15\n\x13_min_witness_weightB\x13\n\x11_excess_as_changeB\x19\n\x17_opening_anchor_channel\"\xd9\x01\n\x10UtxopsbtResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x16\n\x0e\x66\x65\x65rate_per_kw\x18\x02 \x01(\r\x12\x1e\n\x16\x65stimated_final_weight\x18\x03 \x01(\r\x12 \n\x0b\x65xcess_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x1a\n\rchange_outnum\x18\x05 \x01(\rH\x00\x88\x01\x01\x12/\n\x0creservations\x18\x06 \x03(\x0b\x32\x19.cln.UtxopsbtReservationsB\x10\n\x0e_change_outnum\"u\n\x14UtxopsbtReservations\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0c\n\x04vout\x18\x02 \x01(\r\x12\x14\n\x0cwas_reserved\x18\x03 \x01(\x08\x12\x10\n\x08reserved\x18\x04 \x01(\x08\x12\x19\n\x11reserved_to_block\x18\x05 \x01(\r\" \n\x10TxdiscardRequest\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\"6\n\x11TxdiscardResponse\x12\x13\n\x0bunsigned_tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\"\xa4\x01\n\x10TxprepareRequest\x12 \n\x07outputs\x18\x05 \x03(\x0b\x32\x0f.cln.OutputDesc\x12\"\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x14\n\x07minconf\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.OutpointB\n\n\x08_feerateB\n\n\x08_minconf\"D\n\x11TxprepareResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x13\n\x0bunsigned_tx\x18\x02 \x01(\x0c\x12\x0c\n\x04txid\x18\x03 \x01(\x0c\"\x1d\n\rTxsendRequest\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\"8\n\x0eTxsendResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\n\n\x02tx\x18\x02 \x01(\x0c\x12\x0c\n\x04txid\x18\x03 \x01(\x0c\"1\n\x17ListpeerchannelsRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x05\n\x03_id\"K\n\x18ListpeerchannelsResponse\x12/\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1d.cln.ListpeerchannelsChannels\"\xb8\x1b\n\x18ListpeerchannelsChannels\x12\x14\n\x07peer_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x1b\n\x0epeer_connected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1a\n\rreestablished\x18: \x01(\x08H\x02\x88\x01\x01\x12O\n\x05state\x18\x03 \x01(\x0e\x32;.cln.ListpeerchannelsChannels.ListpeerchannelsChannelsStateH\x03\x88\x01\x01\x12\x19\n\x0cscratch_txid\x18\x04 \x01(\x0cH\x04\x88\x01\x01\x12:\n\x07updates\x18\x37 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsUpdatesH\x05\x88\x01\x01\x12\x1e\n\x11ignore_fee_limits\x18\x36 \x01(\x08H\x06\x88\x01\x01\x12\x17\n\nlost_state\x18\x39 \x01(\x08H\x07\x88\x01\x01\x12:\n\x07\x66\x65\x65rate\x18\x06 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFeerateH\x08\x88\x01\x01\x12\x12\n\x05owner\x18\x07 \x01(\tH\t\x88\x01\x01\x12\x1d\n\x10short_channel_id\x18\x08 \x01(\tH\n\x88\x01\x01\x12\x17\n\nchannel_id\x18\t \x01(\x0cH\x0b\x88\x01\x01\x12\x19\n\x0c\x66unding_txid\x18\n \x01(\x0cH\x0c\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x0b \x01(\rH\r\x88\x01\x01\x12\x1c\n\x0finitial_feerate\x18\x0c \x01(\tH\x0e\x88\x01\x01\x12\x19\n\x0clast_feerate\x18\r \x01(\tH\x0f\x88\x01\x01\x12\x19\n\x0cnext_feerate\x18\x0e \x01(\tH\x10\x88\x01\x01\x12\x1a\n\rnext_fee_step\x18\x0f \x01(\rH\x11\x88\x01\x01\x12\x37\n\x08inflight\x18\x10 \x03(\x0b\x32%.cln.ListpeerchannelsChannelsInflight\x12\x15\n\x08\x63lose_to\x18\x11 \x01(\x0cH\x12\x88\x01\x01\x12\x14\n\x07private\x18\x12 \x01(\x08H\x13\x88\x01\x01\x12%\n\x06opener\x18\x13 \x01(\x0e\x32\x10.cln.ChannelSideH\x14\x88\x01\x01\x12%\n\x06\x63loser\x18\x14 \x01(\x0e\x32\x10.cln.ChannelSideH\x15\x88\x01\x01\x12:\n\x07\x66unding\x18\x16 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFundingH\x16\x88\x01\x01\x12$\n\nto_us_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x17\x88\x01\x01\x12(\n\x0emin_to_us_msat\x18\x18 \x01(\x0b\x32\x0b.cln.AmountH\x18\x88\x01\x01\x12(\n\x0emax_to_us_msat\x18\x19 \x01(\x0b\x32\x0b.cln.AmountH\x19\x88\x01\x01\x12$\n\ntotal_msat\x18\x1a \x01(\x0b\x32\x0b.cln.AmountH\x1a\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x1b \x01(\x0b\x32\x0b.cln.AmountH\x1b\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x1c \x01(\rH\x1c\x88\x01\x01\x12)\n\x0f\x64ust_limit_msat\x18\x1d \x01(\x0b\x32\x0b.cln.AmountH\x1d\x88\x01\x01\x12\x30\n\x16max_total_htlc_in_msat\x18\x1e \x01(\x0b\x32\x0b.cln.AmountH\x1e\x88\x01\x01\x12,\n\x12their_reserve_msat\x18\x1f \x01(\x0b\x32\x0b.cln.AmountH\x1f\x88\x01\x01\x12*\n\x10our_reserve_msat\x18 \x01(\x0b\x32\x0b.cln.AmountH \x88\x01\x01\x12(\n\x0espendable_msat\x18! \x01(\x0b\x32\x0b.cln.AmountH!\x88\x01\x01\x12)\n\x0freceivable_msat\x18\" \x01(\x0b\x32\x0b.cln.AmountH\"\x88\x01\x01\x12.\n\x14minimum_htlc_in_msat\x18# \x01(\x0b\x32\x0b.cln.AmountH#\x88\x01\x01\x12/\n\x15minimum_htlc_out_msat\x18$ \x01(\x0b\x32\x0b.cln.AmountH$\x88\x01\x01\x12/\n\x15maximum_htlc_out_msat\x18% \x01(\x0b\x32\x0b.cln.AmountH%\x88\x01\x01\x12 \n\x13their_to_self_delay\x18& \x01(\rH&\x88\x01\x01\x12\x1e\n\x11our_to_self_delay\x18\' \x01(\rH\'\x88\x01\x01\x12\x1f\n\x12max_accepted_htlcs\x18( \x01(\rH(\x88\x01\x01\x12\x36\n\x05\x61lias\x18) \x01(\x0b\x32\".cln.ListpeerchannelsChannelsAliasH)\x88\x01\x01\x12\x0e\n\x06status\x18+ \x03(\t\x12 \n\x13in_payments_offered\x18, \x01(\x04H*\x88\x01\x01\x12)\n\x0fin_offered_msat\x18- \x01(\x0b\x32\x0b.cln.AmountH+\x88\x01\x01\x12\"\n\x15in_payments_fulfilled\x18. \x01(\x04H,\x88\x01\x01\x12+\n\x11in_fulfilled_msat\x18/ \x01(\x0b\x32\x0b.cln.AmountH-\x88\x01\x01\x12!\n\x14out_payments_offered\x18\x30 \x01(\x04H.\x88\x01\x01\x12*\n\x10out_offered_msat\x18\x31 \x01(\x0b\x32\x0b.cln.AmountH/\x88\x01\x01\x12#\n\x16out_payments_fulfilled\x18\x32 \x01(\x04H0\x88\x01\x01\x12,\n\x12out_fulfilled_msat\x18\x33 \x01(\x0b\x32\x0b.cln.AmountH1\x88\x01\x01\x12#\n\x16last_stable_connection\x18\x38 \x01(\x04H2\x88\x01\x01\x12\x31\n\x05htlcs\x18\x34 \x03(\x0b\x32\".cln.ListpeerchannelsChannelsHtlcs\x12\x1a\n\rclose_to_addr\x18\x35 \x01(\tH3\x88\x01\x01\"\x80\x03\n\x1dListpeerchannelsChannelsState\x12\x0c\n\x08OPENINGD\x10\x00\x12\x1c\n\x18\x43HANNELD_AWAITING_LOCKIN\x10\x01\x12\x13\n\x0f\x43HANNELD_NORMAL\x10\x02\x12\x1a\n\x16\x43HANNELD_SHUTTING_DOWN\x10\x03\x12\x18\n\x14\x43LOSINGD_SIGEXCHANGE\x10\x04\x12\x15\n\x11\x43LOSINGD_COMPLETE\x10\x05\x12\x17\n\x13\x41WAITING_UNILATERAL\x10\x06\x12\x16\n\x12\x46UNDING_SPEND_SEEN\x10\x07\x12\x0b\n\x07ONCHAIN\x10\x08\x12\x17\n\x13\x44UALOPEND_OPEN_INIT\x10\t\x12\x1d\n\x19\x44UALOPEND_AWAITING_LOCKIN\x10\n\x12\x1c\n\x18\x43HANNELD_AWAITING_SPLICE\x10\x0b\x12\x1c\n\x18\x44UALOPEND_OPEN_COMMITTED\x10\x0c\x12\x1f\n\x1b\x44UALOPEND_OPEN_COMMIT_READY\x10\rB\n\n\x08_peer_idB\x11\n\x0f_peer_connectedB\x10\n\x0e_reestablishedB\x08\n\x06_stateB\x0f\n\r_scratch_txidB\n\n\x08_updatesB\x14\n\x12_ignore_fee_limitsB\r\n\x0b_lost_stateB\n\n\x08_feerateB\x08\n\x06_ownerB\x13\n\x11_short_channel_idB\r\n\x0b_channel_idB\x0f\n\r_funding_txidB\x11\n\x0f_funding_outnumB\x12\n\x10_initial_feerateB\x0f\n\r_last_feerateB\x0f\n\r_next_feerateB\x10\n\x0e_next_fee_stepB\x0b\n\t_close_toB\n\n\x08_privateB\t\n\x07_openerB\t\n\x07_closerB\n\n\x08_fundingB\r\n\x0b_to_us_msatB\x11\n\x0f_min_to_us_msatB\x11\n\x0f_max_to_us_msatB\r\n\x0b_total_msatB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionthsB\x12\n\x10_dust_limit_msatB\x19\n\x17_max_total_htlc_in_msatB\x15\n\x13_their_reserve_msatB\x13\n\x11_our_reserve_msatB\x11\n\x0f_spendable_msatB\x12\n\x10_receivable_msatB\x17\n\x15_minimum_htlc_in_msatB\x18\n\x16_minimum_htlc_out_msatB\x18\n\x16_maximum_htlc_out_msatB\x16\n\x14_their_to_self_delayB\x14\n\x12_our_to_self_delayB\x15\n\x13_max_accepted_htlcsB\x08\n\x06_aliasB\x16\n\x14_in_payments_offeredB\x12\n\x10_in_offered_msatB\x18\n\x16_in_payments_fulfilledB\x14\n\x12_in_fulfilled_msatB\x17\n\x15_out_payments_offeredB\x13\n\x11_out_offered_msatB\x19\n\x17_out_payments_fulfilledB\x15\n\x13_out_fulfilled_msatB\x19\n\x17_last_stable_connectionB\x10\n\x0e_close_to_addr\"\xb6\x01\n\x1fListpeerchannelsChannelsUpdates\x12=\n\x05local\x18\x01 \x01(\x0b\x32).cln.ListpeerchannelsChannelsUpdatesLocalH\x00\x88\x01\x01\x12?\n\x06remote\x18\x02 \x01(\x0b\x32*.cln.ListpeerchannelsChannelsUpdatesRemoteH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"\xe7\x02\n$ListpeerchannelsChannelsUpdatesLocal\x12+\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x1e\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x14\n\x12_cltv_expiry_deltaB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionths\"\xe8\x02\n%ListpeerchannelsChannelsUpdatesRemote\x12+\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x1e\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x14\n\x12_cltv_expiry_deltaB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionths\"]\n\x1fListpeerchannelsChannelsFeerate\x12\x12\n\x05perkw\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05perkb\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_perkwB\x08\n\x06_perkb\"\x80\x03\n ListpeerchannelsChannelsInflight\x12\x19\n\x0c\x66unding_txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x03 \x01(\tH\x02\x88\x01\x01\x12,\n\x12total_funding_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x1a\n\rsplice_amount\x18\x07 \x01(\x12H\x04\x88\x01\x01\x12*\n\x10our_funding_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x19\n\x0cscratch_txid\x18\x06 \x01(\x0cH\x06\x88\x01\x01\x42\x0f\n\r_funding_txidB\x11\n\x0f_funding_outnumB\n\n\x08_feerateB\x15\n\x13_total_funding_msatB\x10\n\x0e_splice_amountB\x13\n\x11_our_funding_msatB\x0f\n\r_scratch_txid\"\xd2\x02\n\x1fListpeerchannelsChannelsFunding\x12%\n\x0bpushed_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12*\n\x10local_funds_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12+\n\x11remote_funds_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\'\n\rfee_paid_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\'\n\rfee_rcvd_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x42\x0e\n\x0c_pushed_msatB\x13\n\x11_local_funds_msatB\x14\n\x12_remote_funds_msatB\x10\n\x0e_fee_paid_msatB\x10\n\x0e_fee_rcvd_msat\"]\n\x1dListpeerchannelsChannelsAlias\x12\x12\n\x05local\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06remote\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"\xe2\x03\n\x1dListpeerchannelsChannelsHtlcs\x12\x61\n\tdirection\x18\x01 \x01(\x0e\x32I.cln.ListpeerchannelsChannelsHtlcs.ListpeerchannelsChannelsHtlcsDirectionH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x13\n\x06\x65xpiry\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x05 \x01(\x0cH\x04\x88\x01\x01\x12\x1a\n\rlocal_trimmed\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06status\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\"\n\x05state\x18\x08 \x01(\x0e\x32\x0e.cln.HtlcStateH\x07\x88\x01\x01\"9\n&ListpeerchannelsChannelsHtlcsDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\x42\x0c\n\n_directionB\x05\n\x03_idB\x0e\n\x0c_amount_msatB\t\n\x07_expiryB\x0f\n\r_payment_hashB\x10\n\x0e_local_trimmedB\t\n\x07_statusB\x08\n\x06_state\"3\n\x19ListclosedchannelsRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x05\n\x03_id\"[\n\x1aListclosedchannelsResponse\x12=\n\x0e\x63losedchannels\x18\x01 \x03(\x0b\x32%.cln.ListclosedchannelsClosedchannels\"\xf2\t\n ListclosedchannelsClosedchannels\x12\x14\n\x07peer_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\nchannel_id\x18\x02 \x01(\x0c\x12\x1d\n\x10short_channel_id\x18\x03 \x01(\tH\x01\x88\x01\x01\x12>\n\x05\x61lias\x18\x04 \x01(\x0b\x32*.cln.ListclosedchannelsClosedchannelsAliasH\x02\x88\x01\x01\x12 \n\x06opener\x18\x05 \x01(\x0e\x32\x10.cln.ChannelSide\x12%\n\x06\x63loser\x18\x06 \x01(\x0e\x32\x10.cln.ChannelSideH\x03\x88\x01\x01\x12\x0f\n\x07private\x18\x07 \x01(\x08\x12\x1f\n\x17total_local_commitments\x18\t \x01(\x04\x12 \n\x18total_remote_commitments\x18\n \x01(\x04\x12\x18\n\x10total_htlcs_sent\x18\x0b \x01(\x04\x12\x14\n\x0c\x66unding_txid\x18\x0c \x01(\x0c\x12\x16\n\x0e\x66unding_outnum\x18\r \x01(\r\x12\x0e\n\x06leased\x18\x0e \x01(\x08\x12/\n\x15\x66unding_fee_paid_msat\x18\x0f \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12/\n\x15\x66unding_fee_rcvd_msat\x18\x10 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12-\n\x13\x66unding_pushed_msat\x18\x11 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x1f\n\ntotal_msat\x18\x12 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x66inal_to_us_msat\x18\x13 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0emin_to_us_msat\x18\x14 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0emax_to_us_msat\x18\x15 \x01(\x0b\x32\x0b.cln.Amount\x12!\n\x14last_commitment_txid\x18\x16 \x01(\x0cH\x07\x88\x01\x01\x12\x32\n\x18last_commitment_fee_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x66\n\x0b\x63lose_cause\x18\x18 \x01(\x0e\x32Q.cln.ListclosedchannelsClosedchannels.ListclosedchannelsClosedchannelsClose_cause\x12#\n\x16last_stable_connection\x18\x19 \x01(\x04H\t\x88\x01\x01\"v\n+ListclosedchannelsClosedchannelsClose_cause\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05LOCAL\x10\x01\x12\x08\n\x04USER\x10\x02\x12\n\n\x06REMOTE\x10\x03\x12\x0c\n\x08PROTOCOL\x10\x04\x12\x0b\n\x07ONCHAIN\x10\x05\x42\n\n\x08_peer_idB\x13\n\x11_short_channel_idB\x08\n\x06_aliasB\t\n\x07_closerB\x18\n\x16_funding_fee_paid_msatB\x18\n\x16_funding_fee_rcvd_msatB\x16\n\x14_funding_pushed_msatB\x17\n\x15_last_commitment_txidB\x1b\n\x19_last_commitment_fee_msatB\x19\n\x17_last_stable_connection\"e\n%ListclosedchannelsClosedchannelsAlias\x12\x12\n\x05local\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06remote\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"L\n\x10\x44\x65\x63odepayRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\x8d\x04\n\x11\x44\x65\x63odepayResponse\x12\x10\n\x08\x63urrency\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x04\x12\x0e\n\x06\x65xpiry\x18\x03 \x01(\x04\x12\r\n\x05payee\x18\x04 \x01(\x0c\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x06 \x01(\x0c\x12\x11\n\tsignature\x18\x07 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10\x64\x65scription_hash\x18\t \x01(\x0cH\x02\x88\x01\x01\x12\x1d\n\x15min_final_cltv_expiry\x18\n \x01(\r\x12\x1b\n\x0epayment_secret\x18\x0b \x01(\x0cH\x03\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18\x0c \x01(\x0cH\x04\x88\x01\x01\x12\x1d\n\x10payment_metadata\x18\r \x01(\x0cH\x05\x88\x01\x01\x12*\n\tfallbacks\x18\x0e \x03(\x0b\x32\x17.cln.DecodepayFallbacks\x12\"\n\x05\x65xtra\x18\x10 \x03(\x0b\x32\x13.cln.DecodepayExtraB\x0e\n\x0c_amount_msatB\x0e\n\x0c_descriptionB\x13\n\x11_description_hashB\x11\n\x0f_payment_secretB\x0b\n\t_featuresB\x13\n\x11_payment_metadata\"\xd0\x01\n\x12\x44\x65\x63odepayFallbacks\x12\x41\n\titem_type\x18\x01 \x01(\x0e\x32..cln.DecodepayFallbacks.DecodepayFallbacksType\x12\x11\n\x04\x61\x64\x64r\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0b\n\x03hex\x18\x03 \x01(\x0c\"N\n\x16\x44\x65\x63odepayFallbacksType\x12\t\n\x05P2PKH\x10\x00\x12\x08\n\x04P2SH\x10\x01\x12\n\n\x06P2WPKH\x10\x02\x12\t\n\x05P2WSH\x10\x03\x12\x08\n\x04P2TR\x10\x04\x42\x07\n\x05_addr\"+\n\x0e\x44\x65\x63odepayExtra\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"\x1f\n\rDecodeRequest\x12\x0e\n\x06string\x18\x01 \x01(\t\"\xe8!\n\x0e\x44\x65\x63odeResponse\x12\x31\n\titem_type\x18\x01 \x01(\x0e\x32\x1e.cln.DecodeResponse.DecodeType\x12\r\n\x05valid\x18\x02 \x01(\x08\x12\x15\n\x08offer_id\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x0coffer_chains\x18\x04 \x03(\x0c\x12\x1b\n\x0eoffer_metadata\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x1b\n\x0eoffer_currency\x18\x06 \x01(\tH\x02\x88\x01\x01\x12+\n\x1ewarning_unknown_offer_currency\x18\x07 \x01(\tH\x03\x88\x01\x01\x12 \n\x13\x63urrency_minor_unit\x18\x08 \x01(\rH\x04\x88\x01\x01\x12\x19\n\x0coffer_amount\x18\t \x01(\x04H\x05\x88\x01\x01\x12+\n\x11offer_amount_msat\x18\n \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x1e\n\x11offer_description\x18\x0b \x01(\tH\x07\x88\x01\x01\x12\x19\n\x0coffer_issuer\x18\x0c \x01(\tH\x08\x88\x01\x01\x12\x1b\n\x0eoffer_features\x18\r \x01(\x0cH\t\x88\x01\x01\x12\"\n\x15offer_absolute_expiry\x18\x0e \x01(\x04H\n\x88\x01\x01\x12\x1f\n\x12offer_quantity_max\x18\x0f \x01(\x04H\x0b\x88\x01\x01\x12+\n\x0boffer_paths\x18\x10 \x03(\x0b\x32\x16.cln.DecodeOffer_paths\x12\x1a\n\roffer_node_id\x18\x11 \x01(\x0cH\x0c\x88\x01\x01\x12*\n\x1dwarning_missing_offer_node_id\x18\x14 \x01(\tH\r\x88\x01\x01\x12.\n!warning_invalid_offer_description\x18\x15 \x01(\tH\x0e\x88\x01\x01\x12.\n!warning_missing_offer_description\x18\x16 \x01(\tH\x0f\x88\x01\x01\x12+\n\x1ewarning_invalid_offer_currency\x18\x17 \x01(\tH\x10\x88\x01\x01\x12)\n\x1cwarning_invalid_offer_issuer\x18\x18 \x01(\tH\x11\x88\x01\x01\x12\x1c\n\x0finvreq_metadata\x18\x19 \x01(\x0cH\x12\x88\x01\x01\x12\x1c\n\x0finvreq_payer_id\x18\x1a \x01(\x0cH\x13\x88\x01\x01\x12\x19\n\x0cinvreq_chain\x18\x1b \x01(\x0cH\x14\x88\x01\x01\x12,\n\x12invreq_amount_msat\x18\x1c \x01(\x0b\x32\x0b.cln.AmountH\x15\x88\x01\x01\x12\x1c\n\x0finvreq_features\x18\x1d \x01(\x0cH\x16\x88\x01\x01\x12\x1c\n\x0finvreq_quantity\x18\x1e \x01(\x04H\x17\x88\x01\x01\x12\x1e\n\x11invreq_payer_note\x18\x1f \x01(\tH\x18\x88\x01\x01\x12&\n\x19invreq_recurrence_counter\x18 \x01(\rH\x19\x88\x01\x01\x12$\n\x17invreq_recurrence_start\x18! \x01(\rH\x1a\x88\x01\x01\x12,\n\x1fwarning_missing_invreq_metadata\x18# \x01(\tH\x1b\x88\x01\x01\x12,\n\x1fwarning_missing_invreq_payer_id\x18$ \x01(\tH\x1c\x88\x01\x01\x12.\n!warning_invalid_invreq_payer_note\x18% \x01(\tH\x1d\x88\x01\x01\x12\x36\n)warning_missing_invoice_request_signature\x18& \x01(\tH\x1e\x88\x01\x01\x12\x36\n)warning_invalid_invoice_request_signature\x18\' \x01(\tH\x1f\x88\x01\x01\x12\x1f\n\x12invoice_created_at\x18) \x01(\x04H \x88\x01\x01\x12$\n\x17invoice_relative_expiry\x18* \x01(\rH!\x88\x01\x01\x12!\n\x14invoice_payment_hash\x18+ \x01(\x0cH\"\x88\x01\x01\x12-\n\x13invoice_amount_msat\x18, \x01(\x0b\x32\x0b.cln.AmountH#\x88\x01\x01\x12\x37\n\x11invoice_fallbacks\x18- \x03(\x0b\x32\x1c.cln.DecodeInvoice_fallbacks\x12\x1d\n\x10invoice_features\x18. \x01(\x0cH$\x88\x01\x01\x12\x1c\n\x0finvoice_node_id\x18/ \x01(\x0cH%\x88\x01\x01\x12(\n\x1binvoice_recurrence_basetime\x18\x30 \x01(\x04H&\x88\x01\x01\x12*\n\x1dwarning_missing_invoice_paths\x18\x32 \x01(\tH\'\x88\x01\x01\x12/\n\"warning_missing_invoice_blindedpay\x18\x33 \x01(\tH(\x88\x01\x01\x12/\n\"warning_missing_invoice_created_at\x18\x34 \x01(\tH)\x88\x01\x01\x12\x31\n$warning_missing_invoice_payment_hash\x18\x35 \x01(\tH*\x88\x01\x01\x12+\n\x1ewarning_missing_invoice_amount\x18\x36 \x01(\tH+\x88\x01\x01\x12\x38\n+warning_missing_invoice_recurrence_basetime\x18\x37 \x01(\tH,\x88\x01\x01\x12,\n\x1fwarning_missing_invoice_node_id\x18\x38 \x01(\tH-\x88\x01\x01\x12.\n!warning_missing_invoice_signature\x18\x39 \x01(\tH.\x88\x01\x01\x12.\n!warning_invalid_invoice_signature\x18: \x01(\tH/\x88\x01\x01\x12\'\n\tfallbacks\x18; \x03(\x0b\x32\x14.cln.DecodeFallbacks\x12\x17\n\ncreated_at\x18< \x01(\x04H0\x88\x01\x01\x12\x13\n\x06\x65xpiry\x18= \x01(\x04H1\x88\x01\x01\x12\x12\n\x05payee\x18> \x01(\x0cH2\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18? \x01(\x0cH3\x88\x01\x01\x12\x1d\n\x10\x64\x65scription_hash\x18@ \x01(\x0cH4\x88\x01\x01\x12\"\n\x15min_final_cltv_expiry\x18\x41 \x01(\rH5\x88\x01\x01\x12\x1b\n\x0epayment_secret\x18\x42 \x01(\x0cH6\x88\x01\x01\x12\x1d\n\x10payment_metadata\x18\x43 \x01(\x0cH7\x88\x01\x01\x12\x1f\n\x05\x65xtra\x18\x45 \x03(\x0b\x32\x10.cln.DecodeExtra\x12\x16\n\tunique_id\x18\x46 \x01(\tH8\x88\x01\x01\x12\x14\n\x07version\x18G \x01(\tH9\x88\x01\x01\x12\x13\n\x06string\x18H \x01(\tH:\x88\x01\x01\x12-\n\x0crestrictions\x18I \x03(\x0b\x32\x17.cln.DecodeRestrictions\x12&\n\x19warning_rune_invalid_utf8\x18J \x01(\tH;\x88\x01\x01\x12\x10\n\x03hex\x18K \x01(\x0cH<\x88\x01\x01\x12\x16\n\tdecrypted\x18L \x01(\x0cH=\x88\x01\x01\"\x83\x01\n\nDecodeType\x12\x10\n\x0c\x42OLT12_OFFER\x10\x00\x12\x12\n\x0e\x42OLT12_INVOICE\x10\x01\x12\x1a\n\x16\x42OLT12_INVOICE_REQUEST\x10\x02\x12\x12\n\x0e\x42OLT11_INVOICE\x10\x03\x12\x08\n\x04RUNE\x10\x04\x12\x15\n\x11\x45MERGENCY_RECOVER\x10\x05\x42\x0b\n\t_offer_idB\x11\n\x0f_offer_metadataB\x11\n\x0f_offer_currencyB!\n\x1f_warning_unknown_offer_currencyB\x16\n\x14_currency_minor_unitB\x0f\n\r_offer_amountB\x14\n\x12_offer_amount_msatB\x14\n\x12_offer_descriptionB\x0f\n\r_offer_issuerB\x11\n\x0f_offer_featuresB\x18\n\x16_offer_absolute_expiryB\x15\n\x13_offer_quantity_maxB\x10\n\x0e_offer_node_idB \n\x1e_warning_missing_offer_node_idB$\n\"_warning_invalid_offer_descriptionB$\n\"_warning_missing_offer_descriptionB!\n\x1f_warning_invalid_offer_currencyB\x1f\n\x1d_warning_invalid_offer_issuerB\x12\n\x10_invreq_metadataB\x12\n\x10_invreq_payer_idB\x0f\n\r_invreq_chainB\x15\n\x13_invreq_amount_msatB\x12\n\x10_invreq_featuresB\x12\n\x10_invreq_quantityB\x14\n\x12_invreq_payer_noteB\x1c\n\x1a_invreq_recurrence_counterB\x1a\n\x18_invreq_recurrence_startB\"\n _warning_missing_invreq_metadataB\"\n _warning_missing_invreq_payer_idB$\n\"_warning_invalid_invreq_payer_noteB,\n*_warning_missing_invoice_request_signatureB,\n*_warning_invalid_invoice_request_signatureB\x15\n\x13_invoice_created_atB\x1a\n\x18_invoice_relative_expiryB\x17\n\x15_invoice_payment_hashB\x16\n\x14_invoice_amount_msatB\x13\n\x11_invoice_featuresB\x12\n\x10_invoice_node_idB\x1e\n\x1c_invoice_recurrence_basetimeB \n\x1e_warning_missing_invoice_pathsB%\n#_warning_missing_invoice_blindedpayB%\n#_warning_missing_invoice_created_atB\'\n%_warning_missing_invoice_payment_hashB!\n\x1f_warning_missing_invoice_amountB.\n,_warning_missing_invoice_recurrence_basetimeB\"\n _warning_missing_invoice_node_idB$\n\"_warning_missing_invoice_signatureB$\n\"_warning_invalid_invoice_signatureB\r\n\x0b_created_atB\t\n\x07_expiryB\x08\n\x06_payeeB\x0f\n\r_payment_hashB\x13\n\x11_description_hashB\x18\n\x16_min_final_cltv_expiryB\x11\n\x0f_payment_secretB\x13\n\x11_payment_metadataB\x0c\n\n_unique_idB\n\n\x08_versionB\t\n\x07_stringB\x1c\n\x1a_warning_rune_invalid_utf8B\x06\n\x04_hexB\x0c\n\n_decrypted\"<\n\x11\x44\x65\x63odeOffer_paths\x12\x15\n\rfirst_node_id\x18\x01 \x01(\x0c\x12\x10\n\x08\x62linding\x18\x02 \x01(\x0c\"\x8a\x01\n\x1f\x44\x65\x63odeOffer_recurrencePaywindow\x12\x16\n\x0eseconds_before\x18\x01 \x01(\r\x12\x15\n\rseconds_after\x18\x02 \x01(\r\x12 \n\x13proportional_amount\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_proportional_amount\"T\n\x17\x44\x65\x63odeInvoice_pathsPath\x12\x17\n\x0f\x62linded_node_id\x18\x01 \x01(\x0c\x12 \n\x18\x65ncrypted_recipient_data\x18\x02 \x01(\x0c\"Y\n\x17\x44\x65\x63odeInvoice_fallbacks\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x0b\n\x03hex\x18\x02 \x01(\x0c\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"w\n\x0f\x44\x65\x63odeFallbacks\x12\x36\n)warning_invoice_fallbacks_version_invalid\x18\x01 \x01(\tH\x00\x88\x01\x01\x42,\n*_warning_invoice_fallbacks_version_invalid\"(\n\x0b\x44\x65\x63odeExtra\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\";\n\x12\x44\x65\x63odeRestrictions\x12\x14\n\x0c\x61lternatives\x18\x01 \x03(\t\x12\x0f\n\x07summary\x18\x02 \x01(\t\"=\n\x11\x44isconnectRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x12\n\x05\x66orce\x18\x02 \x01(\x08H\x00\x88\x01\x01\x42\x08\n\x06_force\"\x14\n\x12\x44isconnectResponse\"k\n\x0f\x46\x65\x65ratesRequest\x12\x31\n\x05style\x18\x01 \x01(\x0e\x32\".cln.FeeratesRequest.FeeratesStyle\"%\n\rFeeratesStyle\x12\t\n\x05PERKB\x10\x00\x12\t\n\x05PERKW\x10\x01\"\x9c\x02\n\x10\x46\x65\x65ratesResponse\x12%\n\x18warning_missing_feerates\x18\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x05perkb\x18\x02 \x01(\x0b\x32\x12.cln.FeeratesPerkbH\x01\x88\x01\x01\x12&\n\x05perkw\x18\x03 \x01(\x0b\x32\x12.cln.FeeratesPerkwH\x02\x88\x01\x01\x12\x46\n\x15onchain_fee_estimates\x18\x04 \x01(\x0b\x32\".cln.FeeratesOnchain_fee_estimatesH\x03\x88\x01\x01\x42\x1b\n\x19_warning_missing_feeratesB\x08\n\x06_perkbB\x08\n\x06_perkwB\x18\n\x16_onchain_fee_estimates\"\xd3\x03\n\rFeeratesPerkb\x12\x16\n\x0emin_acceptable\x18\x01 \x01(\r\x12\x16\n\x0emax_acceptable\x18\x02 \x01(\r\x12\x12\n\x05\x66loor\x18\n \x01(\rH\x00\x88\x01\x01\x12.\n\testimates\x18\t \x03(\x0b\x32\x1b.cln.FeeratesPerkbEstimates\x12\x14\n\x07opening\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmutual_close\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10unilateral_close\x18\x05 \x01(\rH\x03\x88\x01\x01\x12$\n\x17unilateral_anchor_close\x18\x0b \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rdelayed_to_us\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1c\n\x0fhtlc_resolution\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x14\n\x07penalty\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x08\n\x06_floorB\n\n\x08_openingB\x0f\n\r_mutual_closeB\x13\n\x11_unilateral_closeB\x1a\n\x18_unilateral_anchor_closeB\x10\n\x0e_delayed_to_usB\x12\n\x10_htlc_resolutionB\n\n\x08_penalty\"\x96\x01\n\x16\x46\x65\x65ratesPerkbEstimates\x12\x17\n\nblockcount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10smoothed_feerate\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\r\n\x0b_blockcountB\n\n\x08_feerateB\x13\n\x11_smoothed_feerate\"\xd3\x03\n\rFeeratesPerkw\x12\x16\n\x0emin_acceptable\x18\x01 \x01(\r\x12\x16\n\x0emax_acceptable\x18\x02 \x01(\r\x12\x12\n\x05\x66loor\x18\n \x01(\rH\x00\x88\x01\x01\x12.\n\testimates\x18\t \x03(\x0b\x32\x1b.cln.FeeratesPerkwEstimates\x12\x14\n\x07opening\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmutual_close\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10unilateral_close\x18\x05 \x01(\rH\x03\x88\x01\x01\x12$\n\x17unilateral_anchor_close\x18\x0b \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rdelayed_to_us\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1c\n\x0fhtlc_resolution\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x14\n\x07penalty\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x08\n\x06_floorB\n\n\x08_openingB\x0f\n\r_mutual_closeB\x13\n\x11_unilateral_closeB\x1a\n\x18_unilateral_anchor_closeB\x10\n\x0e_delayed_to_usB\x12\n\x10_htlc_resolutionB\n\n\x08_penalty\"\x96\x01\n\x16\x46\x65\x65ratesPerkwEstimates\x12\x17\n\nblockcount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10smoothed_feerate\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\r\n\x0b_blockcountB\n\n\x08_feerateB\x13\n\x11_smoothed_feerate\"\x9b\x02\n\x1d\x46\x65\x65ratesOnchain_fee_estimates\x12 \n\x18opening_channel_satoshis\x18\x01 \x01(\x04\x12\x1d\n\x15mutual_close_satoshis\x18\x02 \x01(\x04\x12!\n\x19unilateral_close_satoshis\x18\x03 \x01(\x04\x12\x30\n#unilateral_close_nonanchor_satoshis\x18\x06 \x01(\x04H\x00\x88\x01\x01\x12\x1d\n\x15htlc_timeout_satoshis\x18\x04 \x01(\x04\x12\x1d\n\x15htlc_success_satoshis\x18\x05 \x01(\x04\x42&\n$_unilateral_close_nonanchor_satoshis\"\xe9\x02\n\x13\x46\x65tchinvoiceRequest\x12\r\n\x05offer\x18\x01 \x01(\t\x12%\n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x15\n\x08quantity\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x1f\n\x12recurrence_counter\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x1d\n\x10recurrence_start\x18\x05 \x01(\x01H\x03\x88\x01\x01\x12\x1d\n\x10recurrence_label\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\x07 \x01(\x01H\x05\x88\x01\x01\x12\x17\n\npayer_note\x18\x08 \x01(\tH\x06\x88\x01\x01\x42\x0e\n\x0c_amount_msatB\x0b\n\t_quantityB\x15\n\x13_recurrence_counterB\x13\n\x11_recurrence_startB\x13\n\x11_recurrence_labelB\n\n\x08_timeoutB\r\n\x0b_payer_note\"\x9a\x01\n\x14\x46\x65tchinvoiceResponse\x12\x0f\n\x07invoice\x18\x01 \x01(\t\x12)\n\x07\x63hanges\x18\x02 \x01(\x0b\x32\x18.cln.FetchinvoiceChanges\x12\x36\n\x0bnext_period\x18\x03 \x01(\x0b\x32\x1c.cln.FetchinvoiceNext_periodH\x00\x88\x01\x01\x42\x0e\n\x0c_next_period\"\x82\x02\n\x13\x46\x65tchinvoiceChanges\x12!\n\x14\x64\x65scription_appended\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0evendor_removed\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06vendor\x18\x04 \x01(\tH\x03\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x42\x17\n\x15_description_appendedB\x0e\n\x0c_descriptionB\x11\n\x0f_vendor_removedB\t\n\x07_vendorB\x0e\n\x0c_amount_msat\"~\n\x17\x46\x65tchinvoiceNext_period\x12\x0f\n\x07\x63ounter\x18\x01 \x01(\x04\x12\x11\n\tstarttime\x18\x02 \x01(\x04\x12\x0f\n\x07\x65ndtime\x18\x03 \x01(\x04\x12\x17\n\x0fpaywindow_start\x18\x04 \x01(\x04\x12\x15\n\rpaywindow_end\x18\x05 \x01(\x04\"\xfb\x03\n\x12\x46undchannelRequest\x12\n\n\x02id\x18\t \x01(\x0c\x12 \n\x06\x61mount\x18\x01 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\"\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.FeerateH\x00\x88\x01\x01\x12\x15\n\x08\x61nnounce\x18\x03 \x01(\x08H\x01\x88\x01\x01\x12\x14\n\x07minconf\x18\n \x01(\rH\x02\x88\x01\x01\x12#\n\tpush_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x06 \x01(\tH\x04\x88\x01\x01\x12%\n\x0brequest_amt\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12\x1a\n\rcompact_lease\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x1c\n\x05utxos\x18\x0b \x03(\x0b\x32\r.cln.Outpoint\x12\x15\n\x08mindepth\x18\x0c \x01(\rH\x07\x88\x01\x01\x12!\n\x07reserve\x18\r \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x14\n\x0c\x63hannel_type\x18\x0e \x03(\rB\n\n\x08_feerateB\x0b\n\t_announceB\n\n\x08_minconfB\x0c\n\n_push_msatB\x0b\n\t_close_toB\x0e\n\x0c_request_amtB\x10\n\x0e_compact_leaseB\x0b\n\t_mindepthB\n\n\x08_reserve\"\xe5\x01\n\x13\x46undchannelResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\x12\x0e\n\x06outnum\x18\x03 \x01(\r\x12\x12\n\nchannel_id\x18\x04 \x01(\x0c\x12\x37\n\x0c\x63hannel_type\x18\x07 \x01(\x0b\x32\x1c.cln.FundchannelChannel_typeH\x00\x88\x01\x01\x12\x15\n\x08\x63lose_to\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x15\n\x08mindepth\x18\x06 \x01(\rH\x02\x88\x01\x01\x42\x0f\n\r_channel_typeB\x0b\n\t_close_toB\x0b\n\t_mindepth\"L\n\x17\x46undchannelChannel_type\x12\x0c\n\x04\x62its\x18\x01 \x03(\r\x12#\n\x05names\x18\x02 \x03(\x0e\x32\x14.cln.ChannelTypeName\"\xec\x01\n\x0fGetrouteRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12 \n\x0b\x61mount_msat\x18\t \x01(\x0b\x32\x0b.cln.Amount\x12\x12\n\nriskfactor\x18\x03 \x01(\x04\x12\x11\n\x04\x63ltv\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06\x66romid\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x12\x18\n\x0b\x66uzzpercent\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x0f\n\x07\x65xclude\x18\x07 \x03(\t\x12\x14\n\x07maxhops\x18\x08 \x01(\rH\x03\x88\x01\x01\x42\x07\n\x05_cltvB\t\n\x07_fromidB\x0e\n\x0c_fuzzpercentB\n\n\x08_maxhops\"5\n\x10GetrouteResponse\x12!\n\x05route\x18\x01 \x03(\x0b\x32\x12.cln.GetrouteRoute\"\xc5\x01\n\rGetrouteRoute\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63hannel\x18\x02 \x01(\t\x12\x11\n\tdirection\x18\x03 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\r\n\x05\x64\x65lay\x18\x05 \x01(\r\x12\x34\n\x05style\x18\x06 \x01(\x0e\x32%.cln.GetrouteRoute.GetrouteRouteStyle\"\x1d\n\x12GetrouteRouteStyle\x12\x07\n\x03TLV\x10\x00\"\xb7\x03\n\x13ListforwardsRequest\x12@\n\x06status\x18\x01 \x01(\x0e\x32+.cln.ListforwardsRequest.ListforwardsStatusH\x00\x88\x01\x01\x12\x17\n\nin_channel\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0bout_channel\x18\x03 \x01(\tH\x02\x88\x01\x01\x12>\n\x05index\x18\x04 \x01(\x0e\x32*.cln.ListforwardsRequest.ListforwardsIndexH\x03\x88\x01\x01\x12\x12\n\x05start\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x12\n\x05limit\x18\x06 \x01(\rH\x05\x88\x01\x01\"L\n\x12ListforwardsStatus\x12\x0b\n\x07OFFERED\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x10\n\x0cLOCAL_FAILED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\"-\n\x11ListforwardsIndex\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x42\t\n\x07_statusB\r\n\x0b_in_channelB\x0e\n\x0c_out_channelB\x08\n\x06_indexB\x08\n\x06_startB\x08\n\x06_limit\"C\n\x14ListforwardsResponse\x12+\n\x08\x66orwards\x18\x01 \x03(\x0b\x32\x19.cln.ListforwardsForwards\"\xba\x05\n\x14ListforwardsForwards\x12\x1a\n\rcreated_index\x18\x0c \x01(\x04H\x00\x88\x01\x01\x12\x12\n\nin_channel\x18\x01 \x01(\t\x12\x17\n\nin_htlc_id\x18\n \x01(\x04H\x01\x88\x01\x01\x12\x1c\n\x07in_msat\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\x12\x44\n\x06status\x18\x03 \x01(\x0e\x32\x34.cln.ListforwardsForwards.ListforwardsForwardsStatus\x12\x15\n\rreceived_time\x18\x04 \x01(\x01\x12\x18\n\x0bout_channel\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0bout_htlc_id\x18\x0b \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\rupdated_index\x18\r \x01(\x04H\x04\x88\x01\x01\x12G\n\x05style\x18\t \x01(\x0e\x32\x33.cln.ListforwardsForwards.ListforwardsForwardsStyleH\x05\x88\x01\x01\x12\"\n\x08\x66\x65\x65_msat\x18\x07 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\"\n\x08out_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x07\x88\x01\x01\"T\n\x1aListforwardsForwardsStatus\x12\x0b\n\x07OFFERED\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x10\n\x0cLOCAL_FAILED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\"0\n\x19ListforwardsForwardsStyle\x12\n\n\x06LEGACY\x10\x00\x12\x07\n\x03TLV\x10\x01\x42\x10\n\x0e_created_indexB\r\n\x0b_in_htlc_idB\x0e\n\x0c_out_channelB\x0e\n\x0c_out_htlc_idB\x10\n\x0e_updated_indexB\x08\n\x06_styleB\x0b\n\t_fee_msatB\x0b\n\t_out_msat\"a\n\x11ListoffersRequest\x12\x15\n\x08offer_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x18\n\x0b\x61\x63tive_only\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x0b\n\t_offer_idB\x0e\n\x0c_active_only\";\n\x12ListoffersResponse\x12%\n\x06offers\x18\x01 \x03(\x0b\x32\x15.cln.ListoffersOffers\"\x84\x01\n\x10ListoffersOffers\x12\x10\n\x08offer_id\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61\x63tive\x18\x02 \x01(\x08\x12\x12\n\nsingle_use\x18\x03 \x01(\x08\x12\x0e\n\x06\x62olt12\x18\x04 \x01(\t\x12\x0c\n\x04used\x18\x05 \x01(\x08\x12\x12\n\x05label\x18\x06 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_label\"\xdb\x01\n\x0fListpaysRequest\x12\x13\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x38\n\x06status\x18\x03 \x01(\x0e\x32#.cln.ListpaysRequest.ListpaysStatusH\x02\x88\x01\x01\"7\n\x0eListpaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x42\t\n\x07_bolt11B\x0f\n\r_payment_hashB\t\n\x07_status\"3\n\x10ListpaysResponse\x12\x1f\n\x04pays\x18\x01 \x03(\x0b\x32\x11.cln.ListpaysPays\"\xff\x04\n\x0cListpaysPays\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x34\n\x06status\x18\x02 \x01(\x0e\x32$.cln.ListpaysPays.ListpaysPaysStatus\x12\x18\n\x0b\x64\x65stination\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\ncreated_at\x18\x04 \x01(\x04\x12\x19\n\x0c\x63ompleted_at\x18\x0c \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05label\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x0b \x01(\tH\x04\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x07 \x01(\tH\x05\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x08 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12*\n\x10\x61mount_sent_msat\x18\t \x01(\x0b\x32\x0b.cln.AmountH\x07\x88\x01\x01\x12\x15\n\x08preimage\x18\r \x01(\x0cH\x08\x88\x01\x01\x12\x1c\n\x0fnumber_of_parts\x18\x0e \x01(\x04H\t\x88\x01\x01\x12\x17\n\nerroronion\x18\n \x01(\x0cH\n\x88\x01\x01\";\n\x12ListpaysPaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\n\n\x06\x46\x41ILED\x10\x01\x12\x0c\n\x08\x43OMPLETE\x10\x02\x42\x0e\n\x0c_destinationB\x0f\n\r_completed_atB\x08\n\x06_labelB\t\n\x07_bolt11B\x0e\n\x0c_descriptionB\t\n\x07_bolt12B\x0e\n\x0c_amount_msatB\x13\n\x11_amount_sent_msatB\x0b\n\t_preimageB\x12\n\x10_number_of_partsB\r\n\x0b_erroronion\"*\n\x10ListhtlcsRequest\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x05\n\x03_id\"7\n\x11ListhtlcsResponse\x12\"\n\x05htlcs\x18\x01 \x03(\x0b\x32\x13.cln.ListhtlcsHtlcs\"\x89\x02\n\x0eListhtlcsHtlcs\x12\x18\n\x10short_channel_id\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x04\x12\x0e\n\x06\x65xpiry\x18\x03 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12>\n\tdirection\x18\x05 \x01(\x0e\x32+.cln.ListhtlcsHtlcs.ListhtlcsHtlcsDirection\x12\x14\n\x0cpayment_hash\x18\x06 \x01(\x0c\x12\x1d\n\x05state\x18\x07 \x01(\x0e\x32\x0e.cln.HtlcState\"*\n\x17ListhtlcsHtlcsDirection\x12\x07\n\x03OUT\x10\x00\x12\x06\n\x02IN\x10\x01\"\xc1\x03\n\x0cOfferRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x13\n\x06issuer\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cquantity_max\x18\x05 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x61\x62solute_expiry\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12\x17\n\nrecurrence\x18\x07 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0frecurrence_base\x18\x08 \x01(\tH\x05\x88\x01\x01\x12!\n\x14recurrence_paywindow\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x10recurrence_limit\x18\n \x01(\rH\x07\x88\x01\x01\x12\x17\n\nsingle_use\x18\x0b \x01(\x08H\x08\x88\x01\x01\x42\t\n\x07_issuerB\x08\n\x06_labelB\x0f\n\r_quantity_maxB\x12\n\x10_absolute_expiryB\r\n\x0b_recurrenceB\x12\n\x10_recurrence_baseB\x17\n\x15_recurrence_paywindowB\x13\n\x11_recurrence_limitB\r\n\x0b_single_use\"\x92\x01\n\rOfferResponse\x12\x10\n\x08offer_id\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61\x63tive\x18\x02 \x01(\x08\x12\x12\n\nsingle_use\x18\x03 \x01(\x08\x12\x0e\n\x06\x62olt12\x18\x04 \x01(\t\x12\x0c\n\x04used\x18\x05 \x01(\x08\x12\x0f\n\x07\x63reated\x18\x06 \x01(\x08\x12\x12\n\x05label\x18\x07 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_label\"Y\n\x0bPingRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x10\n\x03len\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tpongbytes\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_lenB\x0c\n\n_pongbytes\"\x1e\n\x0cPingResponse\x12\x0e\n\x06totlen\x18\x01 \x01(\r\"4\n\x14SendcustommsgRequest\x12\x0f\n\x07node_id\x18\x01 \x01(\x0c\x12\x0b\n\x03msg\x18\x02 \x01(\x0c\"\'\n\x15SendcustommsgResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"\xaa\x02\n\x11SetchannelRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x07\x66\x65\x65\x62\x61se\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x66\x65\x65ppm\x18\x03 \x01(\rH\x01\x88\x01\x01\x12!\n\x07htlcmin\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12!\n\x07htlcmax\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x19\n\x0c\x65nforcedelay\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1c\n\x0fignorefeelimits\x18\x07 \x01(\x08H\x05\x88\x01\x01\x42\n\n\x08_feebaseB\t\n\x07_feeppmB\n\n\x08_htlcminB\n\n\x08_htlcmaxB\x0f\n\r_enforcedelayB\x12\n\x10_ignorefeelimits\"?\n\x12SetchannelResponse\x12)\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x17.cln.SetchannelChannels\"\xca\x03\n\x12SetchannelChannels\x12\x0f\n\x07peer_id\x18\x01 \x01(\x0c\x12\x12\n\nchannel_id\x18\x02 \x01(\x0c\x12\x1d\n\x10short_channel_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\"\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\r\x12\x1e\n\x11ignore_fee_limits\x18\n \x01(\x08H\x01\x88\x01\x01\x12*\n\x15minimum_htlc_out_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12$\n\x17warning_htlcmin_too_low\x18\x07 \x01(\tH\x02\x88\x01\x01\x12*\n\x15maximum_htlc_out_msat\x18\x08 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x18warning_htlcmax_too_high\x18\t \x01(\tH\x03\x88\x01\x01\x42\x13\n\x11_short_channel_idB\x14\n\x12_ignore_fee_limitsB\x1a\n\x18_warning_htlcmin_too_lowB\x1b\n\x19_warning_htlcmax_too_high\"\'\n\x12SigninvoiceRequest\x12\x11\n\tinvstring\x18\x01 \x01(\t\"%\n\x13SigninvoiceResponse\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\"%\n\x12SignmessageRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\"F\n\x13SignmessageResponse\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\r\n\x05recid\x18\x02 \x01(\x0c\x12\r\n\x05zbase\x18\x03 \x01(\t\"O\n\x16WaitblockheightRequest\x12\x13\n\x0b\x62lockheight\x18\x01 \x01(\r\x12\x14\n\x07timeout\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_timeout\".\n\x17WaitblockheightResponse\x12\x13\n\x0b\x62lockheight\x18\x01 \x01(\r\"\xf9\x01\n\x0bWaitRequest\x12\x31\n\tsubsystem\x18\x01 \x01(\x0e\x32\x1e.cln.WaitRequest.WaitSubsystem\x12\x31\n\tindexname\x18\x02 \x01(\x0e\x32\x1e.cln.WaitRequest.WaitIndexname\x12\x11\n\tnextvalue\x18\x03 \x01(\x04\"9\n\rWaitSubsystem\x12\x0c\n\x08INVOICES\x10\x00\x12\x0c\n\x08\x46ORWARDS\x10\x01\x12\x0c\n\x08SENDPAYS\x10\x02\"6\n\rWaitIndexname\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\"\xe3\x01\n\x0cWaitResponse\x12\x32\n\tsubsystem\x18\x01 \x01(\x0e\x32\x1f.cln.WaitResponse.WaitSubsystem\x12\x14\n\x07\x63reated\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07updated\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07\x64\x65leted\x18\x04 \x01(\x04H\x02\x88\x01\x01\"9\n\rWaitSubsystem\x12\x0c\n\x08INVOICES\x10\x00\x12\x0c\n\x08\x46ORWARDS\x10\x01\x12\x0c\n\x08SENDPAYS\x10\x02\x42\n\n\x08_createdB\n\n\x08_updatedB\n\n\x08_deleted\"\r\n\x0bStopRequest\"q\n\x0cStopResponse\x12\x31\n\x06result\x18\x01 \x01(\x0e\x32\x1c.cln.StopResponse.StopResultH\x00\x88\x01\x01\"#\n\nStopResult\x12\x15\n\x11SHUTDOWN_COMPLETE\x10\x00\x42\t\n\x07_result\"\xa7\x01\n\x18PreapprovekeysendRequest\x12\x18\n\x0b\x64\x65stination\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x42\x0e\n\x0c_destinationB\x0f\n\r_payment_hashB\x0e\n\x0c_amount_msat\"\x1b\n\x19PreapprovekeysendResponse\":\n\x18PreapproveinvoiceRequest\x12\x13\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_bolt11\"\x1b\n\x19PreapproveinvoiceResponse\"\x15\n\x13StaticbackupRequest\"#\n\x14StaticbackupResponse\x12\x0b\n\x03scb\x18\x01 \x03(\x0c\"\x97\x01\n\x15\x42kprlistincomeRequest\x12\x1d\n\x10\x63onsolidate_fees\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x17\n\nstart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x13\n\x11_consolidate_feesB\r\n\x0b_start_timeB\x0b\n\t_end_time\"Q\n\x16\x42kprlistincomeResponse\x12\x37\n\rincome_events\x18\x01 \x03(\x0b\x32 .cln.BkprlistincomeIncome_events\"\xb5\x02\n\x1b\x42kprlistincomeIncome_events\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12 \n\x0b\x63redit_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x1f\n\ndebit_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x10\n\x08\x63urrency\x18\x05 \x01(\t\x12\x11\n\ttimestamp\x18\x06 \x01(\r\x12\x18\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08outpoint\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04txid\x18\t \x01(\x0cH\x02\x88\x01\x01\x12\x17\n\npayment_id\x18\n \x01(\x0cH\x03\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_outpointB\x07\n\x05_txidB\r\n\x0b_payment_id2\x8c \n\x04Node\x12\x36\n\x07Getinfo\x12\x13.cln.GetinfoRequest\x1a\x14.cln.GetinfoResponse\"\x00\x12<\n\tListPeers\x12\x15.cln.ListpeersRequest\x1a\x16.cln.ListpeersResponse\"\x00\x12<\n\tListFunds\x12\x15.cln.ListfundsRequest\x1a\x16.cln.ListfundsResponse\"\x00\x12\x36\n\x07SendPay\x12\x13.cln.SendpayRequest\x1a\x14.cln.SendpayResponse\"\x00\x12\x45\n\x0cListChannels\x12\x18.cln.ListchannelsRequest\x1a\x19.cln.ListchannelsResponse\"\x00\x12<\n\tAddGossip\x12\x15.cln.AddgossipRequest\x1a\x16.cln.AddgossipResponse\"\x00\x12Q\n\x10\x41utoCleanInvoice\x12\x1c.cln.AutocleaninvoiceRequest\x1a\x1d.cln.AutocleaninvoiceResponse\"\x00\x12\x45\n\x0c\x43heckMessage\x12\x18.cln.CheckmessageRequest\x1a\x19.cln.CheckmessageResponse\"\x00\x12\x30\n\x05\x43lose\x12\x11.cln.CloseRequest\x1a\x12.cln.CloseResponse\"\x00\x12:\n\x0b\x43onnectPeer\x12\x13.cln.ConnectRequest\x1a\x14.cln.ConnectResponse\"\x00\x12H\n\rCreateInvoice\x12\x19.cln.CreateinvoiceRequest\x1a\x1a.cln.CreateinvoiceResponse\"\x00\x12<\n\tDatastore\x12\x15.cln.DatastoreRequest\x1a\x16.cln.DatastoreResponse\"\x00\x12K\n\x0e\x44\x61tastoreUsage\x12\x1a.cln.DatastoreusageRequest\x1a\x1b.cln.DatastoreusageResponse\"\x00\x12\x42\n\x0b\x43reateOnion\x12\x17.cln.CreateonionRequest\x1a\x18.cln.CreateonionResponse\"\x00\x12\x45\n\x0c\x44\x65lDatastore\x12\x18.cln.DeldatastoreRequest\x1a\x19.cln.DeldatastoreResponse\"\x00\x12?\n\nDelInvoice\x12\x16.cln.DelinvoiceRequest\x1a\x17.cln.DelinvoiceResponse\"\x00\x12\x36\n\x07Invoice\x12\x13.cln.InvoiceRequest\x1a\x14.cln.InvoiceResponse\"\x00\x12H\n\rListDatastore\x12\x19.cln.ListdatastoreRequest\x1a\x1a.cln.ListdatastoreResponse\"\x00\x12\x45\n\x0cListInvoices\x12\x18.cln.ListinvoicesRequest\x1a\x19.cln.ListinvoicesResponse\"\x00\x12<\n\tSendOnion\x12\x15.cln.SendonionRequest\x1a\x16.cln.SendonionResponse\"\x00\x12\x45\n\x0cListSendPays\x12\x18.cln.ListsendpaysRequest\x1a\x19.cln.ListsendpaysResponse\"\x00\x12Q\n\x10ListTransactions\x12\x1c.cln.ListtransactionsRequest\x1a\x1d.cln.ListtransactionsResponse\"\x00\x12*\n\x03Pay\x12\x0f.cln.PayRequest\x1a\x10.cln.PayResponse\"\x00\x12<\n\tListNodes\x12\x15.cln.ListnodesRequest\x1a\x16.cln.ListnodesResponse\"\x00\x12K\n\x0eWaitAnyInvoice\x12\x1a.cln.WaitanyinvoiceRequest\x1a\x1b.cln.WaitanyinvoiceResponse\"\x00\x12\x42\n\x0bWaitInvoice\x12\x17.cln.WaitinvoiceRequest\x1a\x18.cln.WaitinvoiceResponse\"\x00\x12\x42\n\x0bWaitSendPay\x12\x17.cln.WaitsendpayRequest\x1a\x18.cln.WaitsendpayResponse\"\x00\x12\x36\n\x07NewAddr\x12\x13.cln.NewaddrRequest\x1a\x14.cln.NewaddrResponse\"\x00\x12\x39\n\x08Withdraw\x12\x14.cln.WithdrawRequest\x1a\x15.cln.WithdrawResponse\"\x00\x12\x36\n\x07KeySend\x12\x13.cln.KeysendRequest\x1a\x14.cln.KeysendResponse\"\x00\x12\x39\n\x08\x46undPsbt\x12\x14.cln.FundpsbtRequest\x1a\x15.cln.FundpsbtResponse\"\x00\x12\x39\n\x08SendPsbt\x12\x14.cln.SendpsbtRequest\x1a\x15.cln.SendpsbtResponse\"\x00\x12\x39\n\x08SignPsbt\x12\x14.cln.SignpsbtRequest\x1a\x15.cln.SignpsbtResponse\"\x00\x12\x39\n\x08UtxoPsbt\x12\x14.cln.UtxopsbtRequest\x1a\x15.cln.UtxopsbtResponse\"\x00\x12<\n\tTxDiscard\x12\x15.cln.TxdiscardRequest\x1a\x16.cln.TxdiscardResponse\"\x00\x12<\n\tTxPrepare\x12\x15.cln.TxprepareRequest\x1a\x16.cln.TxprepareResponse\"\x00\x12\x33\n\x06TxSend\x12\x12.cln.TxsendRequest\x1a\x13.cln.TxsendResponse\"\x00\x12Q\n\x10ListPeerChannels\x12\x1c.cln.ListpeerchannelsRequest\x1a\x1d.cln.ListpeerchannelsResponse\"\x00\x12W\n\x12ListClosedChannels\x12\x1e.cln.ListclosedchannelsRequest\x1a\x1f.cln.ListclosedchannelsResponse\"\x00\x12<\n\tDecodePay\x12\x15.cln.DecodepayRequest\x1a\x16.cln.DecodepayResponse\"\x00\x12\x33\n\x06\x44\x65\x63ode\x12\x12.cln.DecodeRequest\x1a\x13.cln.DecodeResponse\"\x00\x12?\n\nDisconnect\x12\x16.cln.DisconnectRequest\x1a\x17.cln.DisconnectResponse\"\x00\x12\x39\n\x08\x46\x65\x65rates\x12\x14.cln.FeeratesRequest\x1a\x15.cln.FeeratesResponse\"\x00\x12\x45\n\x0c\x46\x65tchInvoice\x12\x18.cln.FetchinvoiceRequest\x1a\x19.cln.FetchinvoiceResponse\"\x00\x12\x42\n\x0b\x46undChannel\x12\x17.cln.FundchannelRequest\x1a\x18.cln.FundchannelResponse\"\x00\x12\x39\n\x08GetRoute\x12\x14.cln.GetrouteRequest\x1a\x15.cln.GetrouteResponse\"\x00\x12\x45\n\x0cListForwards\x12\x18.cln.ListforwardsRequest\x1a\x19.cln.ListforwardsResponse\"\x00\x12?\n\nListOffers\x12\x16.cln.ListoffersRequest\x1a\x17.cln.ListoffersResponse\"\x00\x12\x39\n\x08ListPays\x12\x14.cln.ListpaysRequest\x1a\x15.cln.ListpaysResponse\"\x00\x12<\n\tListHtlcs\x12\x15.cln.ListhtlcsRequest\x1a\x16.cln.ListhtlcsResponse\"\x00\x12\x30\n\x05Offer\x12\x11.cln.OfferRequest\x1a\x12.cln.OfferResponse\"\x00\x12-\n\x04Ping\x12\x10.cln.PingRequest\x1a\x11.cln.PingResponse\"\x00\x12H\n\rSendCustomMsg\x12\x19.cln.SendcustommsgRequest\x1a\x1a.cln.SendcustommsgResponse\"\x00\x12?\n\nSetChannel\x12\x16.cln.SetchannelRequest\x1a\x17.cln.SetchannelResponse\"\x00\x12\x42\n\x0bSignInvoice\x12\x17.cln.SigninvoiceRequest\x1a\x18.cln.SigninvoiceResponse\"\x00\x12\x42\n\x0bSignMessage\x12\x17.cln.SignmessageRequest\x1a\x18.cln.SignmessageResponse\"\x00\x12N\n\x0fWaitBlockHeight\x12\x1b.cln.WaitblockheightRequest\x1a\x1c.cln.WaitblockheightResponse\"\x00\x12-\n\x04Wait\x12\x10.cln.WaitRequest\x1a\x11.cln.WaitResponse\"\x00\x12-\n\x04Stop\x12\x10.cln.StopRequest\x1a\x11.cln.StopResponse\"\x00\x12T\n\x11PreApproveKeysend\x12\x1d.cln.PreapprovekeysendRequest\x1a\x1e.cln.PreapprovekeysendResponse\"\x00\x12T\n\x11PreApproveInvoice\x12\x1d.cln.PreapproveinvoiceRequest\x1a\x1e.cln.PreapproveinvoiceResponse\"\x00\x12\x45\n\x0cStaticBackup\x12\x18.cln.StaticbackupRequest\x1a\x19.cln.StaticbackupResponse\"\x00\x12K\n\x0e\x42kprListIncome\x12\x1a.cln.BkprlistincomeRequest\x1a\x1b.cln.BkprlistincomeResponse\"\x00\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nnode.proto\x12\x03\x63ln\x1a\x10primitives.proto\"\x10\n\x0eGetinfoRequest\"\xc1\x04\n\x0fGetinfoResponse\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x12\n\x05\x61lias\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x63olor\x18\x03 \x01(\x0c\x12\x11\n\tnum_peers\x18\x04 \x01(\r\x12\x1c\n\x14num_pending_channels\x18\x05 \x01(\r\x12\x1b\n\x13num_active_channels\x18\x06 \x01(\r\x12\x1d\n\x15num_inactive_channels\x18\x07 \x01(\r\x12\x0f\n\x07version\x18\x08 \x01(\t\x12\x15\n\rlightning_dir\x18\t \x01(\t\x12\x33\n\x0cour_features\x18\n \x01(\x0b\x32\x18.cln.GetinfoOur_featuresH\x01\x88\x01\x01\x12\x13\n\x0b\x62lockheight\x18\x0b \x01(\r\x12\x0f\n\x07network\x18\x0c \x01(\t\x12(\n\x13\x66\x65\x65s_collected_msat\x18\r \x01(\x0b\x32\x0b.cln.Amount\x12$\n\x07\x61\x64\x64ress\x18\x0e \x03(\x0b\x32\x13.cln.GetinfoAddress\x12$\n\x07\x62inding\x18\x0f \x03(\x0b\x32\x13.cln.GetinfoBinding\x12\"\n\x15warning_bitcoind_sync\x18\x10 \x01(\tH\x02\x88\x01\x01\x12$\n\x17warning_lightningd_sync\x18\x11 \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_aliasB\x0f\n\r_our_featuresB\x18\n\x16_warning_bitcoind_syncB\x1a\n\x18_warning_lightningd_sync\"S\n\x13GetinfoOur_features\x12\x0c\n\x04init\x18\x01 \x01(\x0c\x12\x0c\n\x04node\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\x0c\x12\x0f\n\x07invoice\x18\x04 \x01(\x0c\"\xc4\x01\n\x0eGetinfoAddress\x12\x39\n\titem_type\x18\x01 \x01(\x0e\x32&.cln.GetinfoAddress.GetinfoAddressType\x12\x0c\n\x04port\x18\x02 \x01(\r\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x00\x88\x01\x01\"G\n\x12GetinfoAddressType\x12\x07\n\x03\x44NS\x10\x00\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\n\n\x08_address\"\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\"\xaa\x01\n\x10ListpeersRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x38\n\x05level\x18\x02 \x01(\x0e\x32$.cln.ListpeersRequest.ListpeersLevelH\x01\x88\x01\x01\":\n\x0eListpeersLevel\x12\x06\n\x02IO\x10\x00\x12\t\n\x05\x44\x45\x42UG\x10\x01\x12\x08\n\x04INFO\x10\x02\x12\x0b\n\x07UNUSUAL\x10\x03\x42\x05\n\x03_idB\x08\n\x06_level\"7\n\x11ListpeersResponse\x12\"\n\x05peers\x18\x01 \x03(\x0b\x32\x13.cln.ListpeersPeers\"\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\"\xfd\x02\n\x11ListpeersPeersLog\x12?\n\titem_type\x18\x01 \x01(\x0e\x32,.cln.ListpeersPeersLog.ListpeersPeersLogType\x12\x18\n\x0bnum_skipped\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04time\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06source\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x10\n\x03log\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07node_id\x18\x06 \x01(\x0cH\x04\x88\x01\x01\x12\x11\n\x04\x64\x61ta\x18\x07 \x01(\x0cH\x05\x88\x01\x01\"i\n\x15ListpeersPeersLogType\x12\x0b\n\x07SKIPPED\x10\x00\x12\n\n\x06\x42ROKEN\x10\x01\x12\x0b\n\x07UNUSUAL\x10\x02\x12\x08\n\x04INFO\x10\x03\x12\t\n\x05\x44\x45\x42UG\x10\x04\x12\t\n\x05IO_IN\x10\x05\x12\n\n\x06IO_OUT\x10\x06\x42\x0e\n\x0c_num_skippedB\x07\n\x05_timeB\t\n\x07_sourceB\x06\n\x04_logB\n\n\x08_node_idB\x07\n\x05_data\"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\"o\n\x17\x41utocleaninvoiceRequest\x12\x17\n\nexpired_by\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x1a\n\rcycle_seconds\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\r\n\x0b_expired_byB\x10\n\x0e_cycle_seconds\"\x81\x01\n\x18\x41utocleaninvoiceResponse\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x17\n\nexpired_by\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x1a\n\rcycle_seconds\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\r\n\x0b_expired_byB\x10\n\x0e_cycle_seconds\"U\n\x13\x43heckmessageRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\r\n\x05zbase\x18\x02 \x01(\t\x12\x13\n\x06pubkey\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x42\t\n\x07_pubkey\"8\n\x14\x43heckmessageResponse\x12\x10\n\x08verified\x18\x01 \x01(\x08\x12\x0e\n\x06pubkey\x18\x02 \x01(\x0c\"\xcb\x02\n\x0c\x43loseRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1e\n\x11unilateraltimeout\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65stination\x18\x03 \x01(\tH\x01\x88\x01\x01\x12!\n\x14\x66\x65\x65_negotiation_step\x18\x04 \x01(\tH\x02\x88\x01\x01\x12)\n\rwrong_funding\x18\x05 \x01(\x0b\x32\r.cln.OutpointH\x03\x88\x01\x01\x12\x1f\n\x12\x66orce_lease_closed\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1e\n\x08\x66\x65\x65range\x18\x07 \x03(\x0b\x32\x0c.cln.FeerateB\x14\n\x12_unilateraltimeoutB\x0e\n\x0c_destinationB\x17\n\x15_fee_negotiation_stepB\x10\n\x0e_wrong_fundingB\x15\n\x13_force_lease_closed\"\xab\x01\n\rCloseResponse\x12/\n\titem_type\x18\x01 \x01(\x0e\x32\x1c.cln.CloseResponse.CloseType\x12\x0f\n\x02tx\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x11\n\x04txid\x18\x03 \x01(\x0cH\x01\x88\x01\x01\"5\n\tCloseType\x12\n\n\x06MUTUAL\x10\x00\x12\x0e\n\nUNILATERAL\x10\x01\x12\x0c\n\x08UNOPENED\x10\x02\x42\x05\n\x03_txB\x07\n\x05_txid\"T\n\x0e\x43onnectRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x04host\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04port\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_hostB\x07\n\x05_port\"\xb4\x01\n\x0f\x43onnectResponse\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x10\n\x08\x66\x65\x61tures\x18\x02 \x01(\x0c\x12\x38\n\tdirection\x18\x03 \x01(\x0e\x32%.cln.ConnectResponse.ConnectDirection\x12$\n\x07\x61\x64\x64ress\x18\x04 \x01(\x0b\x32\x13.cln.ConnectAddress\"#\n\x10\x43onnectDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\"\xfb\x01\n\x0e\x43onnectAddress\x12\x39\n\titem_type\x18\x01 \x01(\x0e\x32&.cln.ConnectAddress.ConnectAddressType\x12\x13\n\x06socket\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04port\x18\x04 \x01(\rH\x02\x88\x01\x01\"P\n\x12\x43onnectAddressType\x12\x10\n\x0cLOCAL_SOCKET\x10\x00\x12\x08\n\x04IPV4\x10\x01\x12\x08\n\x04IPV6\x10\x02\x12\t\n\x05TORV2\x10\x03\x12\t\n\x05TORV3\x10\x04\x42\t\n\x07_socketB\n\n\x08_addressB\x07\n\x05_port\"J\n\x14\x43reateinvoiceRequest\x12\x11\n\tinvstring\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x10\n\x08preimage\x18\x03 \x01(\x0c\"\xfe\x05\n\x15\x43reateinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x06\x62olt11\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12>\n\x06status\x18\x06 \x01(\x0e\x32..cln.CreateinvoiceResponse.CreateinvoiceStatus\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x12\n\nexpires_at\x18\x08 \x01(\x04\x12\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\"X\n\x1a\x43reateinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\xb4\x02\n\x10\x44\x61tastoreRequest\x12\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\"k\n\x16\x44\x61tastoreusageResponse\x12>\n\x0e\x64\x61tastoreusage\x18\x01 \x01(\x0b\x32!.cln.DatastoreusageDatastoreusageH\x00\x88\x01\x01\x42\x11\n\x0f_datastoreusage\"b\n\x1c\x44\x61tastoreusageDatastoreusage\x12\x10\n\x03key\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0btotal_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x42\x06\n\x04_keyB\x0e\n\x0c_total_bytes\"\x9d\x01\n\x12\x43reateonionRequest\x12\"\n\x04hops\x18\x01 \x03(\x0b\x32\x14.cln.CreateonionHops\x12\x11\n\tassocdata\x18\x02 \x01(\x0c\x12\x18\n\x0bsession_key\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x17\n\nonion_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x42\x0e\n\x0c_session_keyB\r\n\x0b_onion_size\"<\n\x13\x43reateonionResponse\x12\r\n\x05onion\x18\x01 \x01(\x0c\x12\x16\n\x0eshared_secrets\x18\x02 \x03(\x0c\"2\n\x0f\x43reateonionHops\x12\x0e\n\x06pubkey\x18\x01 \x01(\x0c\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\"J\n\x13\x44\x65ldatastoreRequest\x12\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\"\xfa\x01\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\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\"#\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\"_\n!ListinvoicesInvoicesPaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\xb4\x03\n\x10SendonionRequest\x12\r\n\x05onion\x18\x01 \x01(\x0c\x12*\n\tfirst_hop\x18\x02 \x01(\x0b\x32\x17.cln.SendonionFirst_hop\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x12\n\x05label\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0eshared_secrets\x18\x05 \x03(\x0c\x12\x13\n\x06partid\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\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\"\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\"\xbf\x05\n\x16WaitanyinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12@\n\x06status\x18\x04 \x01(\x0e\x32\x30.cln.WaitanyinvoiceResponse.WaitanyinvoiceStatus\x12\x12\n\nexpires_at\x18\x05 \x01(\x04\x12%\n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\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\x1a\n\rcreated_index\x18\r \x01(\x04H\x07\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\x08\x88\x01\x01\x12<\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32 .cln.WaitanyinvoicePaid_outpointH\t\x88\x01\x01\"-\n\x14WaitanyinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\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\"Y\n\x1bWaitanyinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"#\n\x12WaitinvoiceRequest\x12\r\n\x05label\x18\x01 \x01(\t\"\xb0\x05\n\x13WaitinvoiceResponse\x12\r\n\x05label\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12:\n\x06status\x18\x04 \x01(\x0e\x32*.cln.WaitinvoiceResponse.WaitinvoiceStatus\x12\x12\n\nexpires_at\x18\x05 \x01(\x04\x12%\n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x62olt11\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x62olt12\x18\x08 \x01(\tH\x02\x88\x01\x01\x12\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\x1a\n\rcreated_index\x18\r \x01(\x04H\x07\x88\x01\x01\x12\x1a\n\rupdated_index\x18\x0e \x01(\x04H\x08\x88\x01\x01\x12\x39\n\rpaid_outpoint\x18\x0f \x01(\x0b\x32\x1d.cln.WaitinvoicePaid_outpointH\t\x88\x01\x01\"*\n\x11WaitinvoiceStatus\x12\x08\n\x04PAID\x10\x00\x12\x0b\n\x07\x45XPIRED\x10\x01\x42\x0e\n\x0c_amount_msatB\t\n\x07_bolt11B\t\n\x07_bolt12B\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\"V\n\x18WaitinvoicePaid_outpoint\x12\x11\n\x04txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x13\n\x06outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_txidB\t\n\x07_outnum\"\x8e\x01\n\x12WaitsendpayRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\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\"\x82\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.AmountB\x08\n\x06_labelB\x10\n\x0e_maxfeepercentB\x0c\n\n_retry_forB\x0b\n\t_maxdelayB\x0c\n\n_exemptfeeB\r\n\x0b_routehintsB\x0c\n\n_extratlvs\"\xf2\x02\n\x0fKeysendResponse\x12\x18\n\x10payment_preimage\x18\x01 \x01(\x0c\x12\x18\n\x0b\x64\x65stination\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x12\n\ncreated_at\x18\x04 \x01(\x01\x12\r\n\x05parts\x18\x05 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x06 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x61mount_sent_msat\x18\x07 \x01(\x0b\x32\x0b.cln.Amount\x12\'\n\x1awarning_partial_completion\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x32\n\x06status\x18\t \x01(\x0e\x32\".cln.KeysendResponse.KeysendStatus\"\x1d\n\rKeysendStatus\x12\x0c\n\x08\x43OMPLETE\x10\x00\x42\x0e\n\x0c_destinationB\x1d\n\x1b_warning_partial_completion\"\xa4\x03\n\x0f\x46undpsbtRequest\x12!\n\x07satoshi\x18\x01 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\x1d\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.Feerate\x12\x13\n\x0bstartweight\x18\x03 \x01(\r\x12\x14\n\x07minconf\x18\x04 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07reserve\x18\x05 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08locktime\x18\x06 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12min_witness_weight\x18\x07 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10\x65xcess_as_change\x18\x08 \x01(\x08H\x04\x88\x01\x01\x12\x17\n\nnonwrapped\x18\t \x01(\x08H\x05\x88\x01\x01\x12#\n\x16opening_anchor_channel\x18\n \x01(\x08H\x06\x88\x01\x01\x42\n\n\x08_minconfB\n\n\x08_reserveB\x0b\n\t_locktimeB\x15\n\x13_min_witness_weightB\x13\n\x11_excess_as_changeB\r\n\x0b_nonwrappedB\x19\n\x17_opening_anchor_channel\"\xd9\x01\n\x10\x46undpsbtResponse\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x16\n\x0e\x66\x65\x65rate_per_kw\x18\x02 \x01(\r\x12\x1e\n\x16\x65stimated_final_weight\x18\x03 \x01(\r\x12 \n\x0b\x65xcess_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x1a\n\rchange_outnum\x18\x05 \x01(\rH\x00\x88\x01\x01\x12/\n\x0creservations\x18\x06 \x03(\x0b\x32\x19.cln.FundpsbtReservationsB\x10\n\x0e_change_outnum\"u\n\x14\x46undpsbtReservations\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0c\n\x04vout\x18\x02 \x01(\r\x12\x14\n\x0cwas_reserved\x18\x03 \x01(\x08\x12\x10\n\x08reserved\x18\x04 \x01(\x08\x12\x19\n\x11reserved_to_block\x18\x05 \x01(\r\"A\n\x0fSendpsbtRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x14\n\x07reserve\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_reserve\",\n\x10SendpsbtResponse\x12\n\n\x02tx\x18\x01 \x01(\x0c\x12\x0c\n\x04txid\x18\x02 \x01(\x0c\"1\n\x0fSignpsbtRequest\x12\x0c\n\x04psbt\x18\x01 \x01(\t\x12\x10\n\x08signonly\x18\x02 \x03(\r\"\'\n\x10SignpsbtResponse\x12\x13\n\x0bsigned_psbt\x18\x01 \x01(\t\"\xa0\x03\n\x0fUtxopsbtRequest\x12!\n\x07satoshi\x18\x01 \x01(\x0b\x32\x10.cln.AmountOrAll\x12\x1d\n\x07\x66\x65\x65rate\x18\x02 \x01(\x0b\x32\x0c.cln.Feerate\x12\x13\n\x0bstartweight\x18\x03 \x01(\r\x12\x1c\n\x05utxos\x18\x04 \x03(\x0b\x32\r.cln.Outpoint\x12\x14\n\x07reserve\x18\x05 \x01(\rH\x00\x88\x01\x01\x12\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\"\x9f\x1c\n\x18ListpeerchannelsChannels\x12\x14\n\x07peer_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x1b\n\x0epeer_connected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12O\n\x05state\x18\x03 \x01(\x0e\x32;.cln.ListpeerchannelsChannels.ListpeerchannelsChannelsStateH\x02\x88\x01\x01\x12\x19\n\x0cscratch_txid\x18\x04 \x01(\x0cH\x03\x88\x01\x01\x12:\n\x07\x66\x65\x65rate\x18\x06 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFeerateH\x04\x88\x01\x01\x12\x12\n\x05owner\x18\x07 \x01(\tH\x05\x88\x01\x01\x12\x1d\n\x10short_channel_id\x18\x08 \x01(\tH\x06\x88\x01\x01\x12\x17\n\nchannel_id\x18\t \x01(\x0cH\x07\x88\x01\x01\x12\x19\n\x0c\x66unding_txid\x18\n \x01(\x0cH\x08\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x0b \x01(\rH\t\x88\x01\x01\x12\x1c\n\x0finitial_feerate\x18\x0c \x01(\tH\n\x88\x01\x01\x12\x19\n\x0clast_feerate\x18\r \x01(\tH\x0b\x88\x01\x01\x12\x19\n\x0cnext_feerate\x18\x0e \x01(\tH\x0c\x88\x01\x01\x12\x1a\n\rnext_fee_step\x18\x0f \x01(\rH\r\x88\x01\x01\x12\x37\n\x08inflight\x18\x10 \x03(\x0b\x32%.cln.ListpeerchannelsChannelsInflight\x12\x15\n\x08\x63lose_to\x18\x11 \x01(\x0cH\x0e\x88\x01\x01\x12\x14\n\x07private\x18\x12 \x01(\x08H\x0f\x88\x01\x01\x12%\n\x06opener\x18\x13 \x01(\x0e\x32\x10.cln.ChannelSideH\x10\x88\x01\x01\x12%\n\x06\x63loser\x18\x14 \x01(\x0e\x32\x10.cln.ChannelSideH\x11\x88\x01\x01\x12:\n\x07\x66unding\x18\x16 \x01(\x0b\x32$.cln.ListpeerchannelsChannelsFundingH\x12\x88\x01\x01\x12$\n\nto_us_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x13\x88\x01\x01\x12(\n\x0emin_to_us_msat\x18\x18 \x01(\x0b\x32\x0b.cln.AmountH\x14\x88\x01\x01\x12(\n\x0emax_to_us_msat\x18\x19 \x01(\x0b\x32\x0b.cln.AmountH\x15\x88\x01\x01\x12$\n\ntotal_msat\x18\x1a \x01(\x0b\x32\x0b.cln.AmountH\x16\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x1b \x01(\x0b\x32\x0b.cln.AmountH\x17\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x1c \x01(\rH\x18\x88\x01\x01\x12)\n\x0f\x64ust_limit_msat\x18\x1d \x01(\x0b\x32\x0b.cln.AmountH\x19\x88\x01\x01\x12\x30\n\x16max_total_htlc_in_msat\x18\x1e \x01(\x0b\x32\x0b.cln.AmountH\x1a\x88\x01\x01\x12,\n\x12their_reserve_msat\x18\x1f \x01(\x0b\x32\x0b.cln.AmountH\x1b\x88\x01\x01\x12*\n\x10our_reserve_msat\x18 \x01(\x0b\x32\x0b.cln.AmountH\x1c\x88\x01\x01\x12(\n\x0espendable_msat\x18! \x01(\x0b\x32\x0b.cln.AmountH\x1d\x88\x01\x01\x12)\n\x0freceivable_msat\x18\" \x01(\x0b\x32\x0b.cln.AmountH\x1e\x88\x01\x01\x12.\n\x14minimum_htlc_in_msat\x18# \x01(\x0b\x32\x0b.cln.AmountH\x1f\x88\x01\x01\x12/\n\x15minimum_htlc_out_msat\x18$ \x01(\x0b\x32\x0b.cln.AmountH \x88\x01\x01\x12/\n\x15maximum_htlc_out_msat\x18% \x01(\x0b\x32\x0b.cln.AmountH!\x88\x01\x01\x12 \n\x13their_to_self_delay\x18& \x01(\rH\"\x88\x01\x01\x12\x1e\n\x11our_to_self_delay\x18\' \x01(\rH#\x88\x01\x01\x12\x1f\n\x12max_accepted_htlcs\x18( \x01(\rH$\x88\x01\x01\x12\x36\n\x05\x61lias\x18) \x01(\x0b\x32\".cln.ListpeerchannelsChannelsAliasH%\x88\x01\x01\x12\x0e\n\x06status\x18+ \x03(\t\x12 \n\x13in_payments_offered\x18, \x01(\x04H&\x88\x01\x01\x12)\n\x0fin_offered_msat\x18- \x01(\x0b\x32\x0b.cln.AmountH\'\x88\x01\x01\x12\"\n\x15in_payments_fulfilled\x18. \x01(\x04H(\x88\x01\x01\x12+\n\x11in_fulfilled_msat\x18/ \x01(\x0b\x32\x0b.cln.AmountH)\x88\x01\x01\x12!\n\x14out_payments_offered\x18\x30 \x01(\x04H*\x88\x01\x01\x12*\n\x10out_offered_msat\x18\x31 \x01(\x0b\x32\x0b.cln.AmountH+\x88\x01\x01\x12#\n\x16out_payments_fulfilled\x18\x32 \x01(\x04H,\x88\x01\x01\x12,\n\x12out_fulfilled_msat\x18\x33 \x01(\x0b\x32\x0b.cln.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.ListpeerchannelsChannelsUpdatesH0\x88\x01\x01\x12#\n\x16last_stable_connection\x18\x38 \x01(\x04H1\x88\x01\x01\x12\x17\n\nlost_state\x18\x39 \x01(\x08H2\x88\x01\x01\x12\x1a\n\rreestablished\x18: \x01(\x08H3\x88\x01\x01\x12*\n\x10last_tx_fee_msat\x18; \x01(\x0b\x32\x0b.cln.AmountH4\x88\x01\x01\x12\x16\n\tdirection\x18< \x01(\rH5\x88\x01\x01\"\x80\x03\n\x1dListpeerchannelsChannelsState\x12\x0c\n\x08OPENINGD\x10\x00\x12\x1c\n\x18\x43HANNELD_AWAITING_LOCKIN\x10\x01\x12\x13\n\x0f\x43HANNELD_NORMAL\x10\x02\x12\x1a\n\x16\x43HANNELD_SHUTTING_DOWN\x10\x03\x12\x18\n\x14\x43LOSINGD_SIGEXCHANGE\x10\x04\x12\x15\n\x11\x43LOSINGD_COMPLETE\x10\x05\x12\x17\n\x13\x41WAITING_UNILATERAL\x10\x06\x12\x16\n\x12\x46UNDING_SPEND_SEEN\x10\x07\x12\x0b\n\x07ONCHAIN\x10\x08\x12\x17\n\x13\x44UALOPEND_OPEN_INIT\x10\t\x12\x1d\n\x19\x44UALOPEND_AWAITING_LOCKIN\x10\n\x12\x1c\n\x18\x43HANNELD_AWAITING_SPLICE\x10\x0b\x12\x1c\n\x18\x44UALOPEND_OPEN_COMMITTED\x10\x0c\x12\x1f\n\x1b\x44UALOPEND_OPEN_COMMIT_READY\x10\rB\n\n\x08_peer_idB\x11\n\x0f_peer_connectedB\x08\n\x06_stateB\x0f\n\r_scratch_txidB\n\n\x08_feerateB\x08\n\x06_ownerB\x13\n\x11_short_channel_idB\r\n\x0b_channel_idB\x0f\n\r_funding_txidB\x11\n\x0f_funding_outnumB\x12\n\x10_initial_feerateB\x0f\n\r_last_feerateB\x0f\n\r_next_feerateB\x10\n\x0e_next_fee_stepB\x0b\n\t_close_toB\n\n\x08_privateB\t\n\x07_openerB\t\n\x07_closerB\n\n\x08_fundingB\r\n\x0b_to_us_msatB\x11\n\x0f_min_to_us_msatB\x11\n\x0f_max_to_us_msatB\r\n\x0b_total_msatB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionthsB\x12\n\x10_dust_limit_msatB\x19\n\x17_max_total_htlc_in_msatB\x15\n\x13_their_reserve_msatB\x13\n\x11_our_reserve_msatB\x11\n\x0f_spendable_msatB\x12\n\x10_receivable_msatB\x17\n\x15_minimum_htlc_in_msatB\x18\n\x16_minimum_htlc_out_msatB\x18\n\x16_maximum_htlc_out_msatB\x16\n\x14_their_to_self_delayB\x14\n\x12_our_to_self_delayB\x15\n\x13_max_accepted_htlcsB\x08\n\x06_aliasB\x16\n\x14_in_payments_offeredB\x12\n\x10_in_offered_msatB\x18\n\x16_in_payments_fulfilledB\x14\n\x12_in_fulfilled_msatB\x17\n\x15_out_payments_offeredB\x13\n\x11_out_offered_msatB\x19\n\x17_out_payments_fulfilledB\x15\n\x13_out_fulfilled_msatB\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\"\xb6\x01\n\x1fListpeerchannelsChannelsUpdates\x12=\n\x05local\x18\x01 \x01(\x0b\x32).cln.ListpeerchannelsChannelsUpdatesLocalH\x00\x88\x01\x01\x12?\n\x06remote\x18\x02 \x01(\x0b\x32*.cln.ListpeerchannelsChannelsUpdatesRemoteH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"\xe7\x02\n$ListpeerchannelsChannelsUpdatesLocal\x12+\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x1e\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x14\n\x12_cltv_expiry_deltaB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionths\"\xe8\x02\n%ListpeerchannelsChannelsUpdatesRemote\x12+\n\x11htlc_minimum_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12+\n\x11htlc_maximum_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12\x1e\n\x11\x63ltv_expiry_delta\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\'\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12(\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_htlc_minimum_msatB\x14\n\x12_htlc_maximum_msatB\x14\n\x12_cltv_expiry_deltaB\x10\n\x0e_fee_base_msatB\x1e\n\x1c_fee_proportional_millionths\"]\n\x1fListpeerchannelsChannelsFeerate\x12\x12\n\x05perkw\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05perkb\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_perkwB\x08\n\x06_perkb\"\x80\x03\n ListpeerchannelsChannelsInflight\x12\x19\n\x0c\x66unding_txid\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x1b\n\x0e\x66unding_outnum\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x03 \x01(\tH\x02\x88\x01\x01\x12,\n\x12total_funding_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12*\n\x10our_funding_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12\x19\n\x0cscratch_txid\x18\x06 \x01(\x0cH\x05\x88\x01\x01\x12\x1a\n\rsplice_amount\x18\x07 \x01(\x12H\x06\x88\x01\x01\x42\x0f\n\r_funding_txidB\x11\n\x0f_funding_outnumB\n\n\x08_feerateB\x15\n\x13_total_funding_msatB\x13\n\x11_our_funding_msatB\x0f\n\r_scratch_txidB\x10\n\x0e_splice_amount\"\xd2\x02\n\x1fListpeerchannelsChannelsFunding\x12%\n\x0bpushed_msat\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12*\n\x10local_funds_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x01\x88\x01\x01\x12+\n\x11remote_funds_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\'\n\rfee_paid_msat\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\'\n\rfee_rcvd_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x42\x0e\n\x0c_pushed_msatB\x13\n\x11_local_funds_msatB\x14\n\x12_remote_funds_msatB\x10\n\x0e_fee_paid_msatB\x10\n\x0e_fee_rcvd_msat\"]\n\x1dListpeerchannelsChannelsAlias\x12\x12\n\x05local\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06remote\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"\xe2\x03\n\x1dListpeerchannelsChannelsHtlcs\x12\x61\n\tdirection\x18\x01 \x01(\x0e\x32I.cln.ListpeerchannelsChannelsHtlcs.ListpeerchannelsChannelsHtlcsDirectionH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12\x13\n\x06\x65xpiry\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x05 \x01(\x0cH\x04\x88\x01\x01\x12\x1a\n\rlocal_trimmed\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06status\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\"\n\x05state\x18\x08 \x01(\x0e\x32\x0e.cln.HtlcStateH\x07\x88\x01\x01\"9\n&ListpeerchannelsChannelsHtlcsDirection\x12\x06\n\x02IN\x10\x00\x12\x07\n\x03OUT\x10\x01\x42\x0c\n\n_directionB\x05\n\x03_idB\x0e\n\x0c_amount_msatB\t\n\x07_expiryB\x0f\n\r_payment_hashB\x10\n\x0e_local_trimmedB\t\n\x07_statusB\x08\n\x06_state\"3\n\x19ListclosedchannelsRequest\x12\x0f\n\x02id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x42\x05\n\x03_id\"[\n\x1aListclosedchannelsResponse\x12=\n\x0e\x63losedchannels\x18\x01 \x03(\x0b\x32%.cln.ListclosedchannelsClosedchannels\"\xf2\t\n ListclosedchannelsClosedchannels\x12\x14\n\x07peer_id\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\nchannel_id\x18\x02 \x01(\x0c\x12\x1d\n\x10short_channel_id\x18\x03 \x01(\tH\x01\x88\x01\x01\x12>\n\x05\x61lias\x18\x04 \x01(\x0b\x32*.cln.ListclosedchannelsClosedchannelsAliasH\x02\x88\x01\x01\x12 \n\x06opener\x18\x05 \x01(\x0e\x32\x10.cln.ChannelSide\x12%\n\x06\x63loser\x18\x06 \x01(\x0e\x32\x10.cln.ChannelSideH\x03\x88\x01\x01\x12\x0f\n\x07private\x18\x07 \x01(\x08\x12\x1f\n\x17total_local_commitments\x18\t \x01(\x04\x12 \n\x18total_remote_commitments\x18\n \x01(\x04\x12\x18\n\x10total_htlcs_sent\x18\x0b \x01(\x04\x12\x14\n\x0c\x66unding_txid\x18\x0c \x01(\x0c\x12\x16\n\x0e\x66unding_outnum\x18\r \x01(\r\x12\x0e\n\x06leased\x18\x0e \x01(\x08\x12/\n\x15\x66unding_fee_paid_msat\x18\x0f \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x12/\n\x15\x66unding_fee_rcvd_msat\x18\x10 \x01(\x0b\x32\x0b.cln.AmountH\x05\x88\x01\x01\x12-\n\x13\x66unding_pushed_msat\x18\x11 \x01(\x0b\x32\x0b.cln.AmountH\x06\x88\x01\x01\x12\x1f\n\ntotal_msat\x18\x12 \x01(\x0b\x32\x0b.cln.Amount\x12%\n\x10\x66inal_to_us_msat\x18\x13 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0emin_to_us_msat\x18\x14 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x0emax_to_us_msat\x18\x15 \x01(\x0b\x32\x0b.cln.Amount\x12!\n\x14last_commitment_txid\x18\x16 \x01(\x0cH\x07\x88\x01\x01\x12\x32\n\x18last_commitment_fee_msat\x18\x17 \x01(\x0b\x32\x0b.cln.AmountH\x08\x88\x01\x01\x12\x66\n\x0b\x63lose_cause\x18\x18 \x01(\x0e\x32Q.cln.ListclosedchannelsClosedchannels.ListclosedchannelsClosedchannelsClose_cause\x12#\n\x16last_stable_connection\x18\x19 \x01(\x04H\t\x88\x01\x01\"v\n+ListclosedchannelsClosedchannelsClose_cause\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05LOCAL\x10\x01\x12\x08\n\x04USER\x10\x02\x12\n\n\x06REMOTE\x10\x03\x12\x0c\n\x08PROTOCOL\x10\x04\x12\x0b\n\x07ONCHAIN\x10\x05\x42\n\n\x08_peer_idB\x13\n\x11_short_channel_idB\x08\n\x06_aliasB\t\n\x07_closerB\x18\n\x16_funding_fee_paid_msatB\x18\n\x16_funding_fee_rcvd_msatB\x16\n\x14_funding_pushed_msatB\x17\n\x15_last_commitment_txidB\x1b\n\x19_last_commitment_fee_msatB\x19\n\x17_last_stable_connection\"e\n%ListclosedchannelsClosedchannelsAlias\x12\x12\n\x05local\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06remote\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_localB\t\n\x07_remote\"L\n\x10\x44\x65\x63odepayRequest\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_description\"\x8d\x04\n\x11\x44\x65\x63odepayResponse\x12\x10\n\x08\x63urrency\x18\x01 \x01(\t\x12\x12\n\ncreated_at\x18\x02 \x01(\x04\x12\x0e\n\x06\x65xpiry\x18\x03 \x01(\x04\x12\r\n\x05payee\x18\x04 \x01(\x0c\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x14\n\x0cpayment_hash\x18\x06 \x01(\x0c\x12\x11\n\tsignature\x18\x07 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x1d\n\x10\x64\x65scription_hash\x18\t \x01(\x0cH\x02\x88\x01\x01\x12\x1d\n\x15min_final_cltv_expiry\x18\n \x01(\r\x12\x1b\n\x0epayment_secret\x18\x0b \x01(\x0cH\x03\x88\x01\x01\x12\x15\n\x08\x66\x65\x61tures\x18\x0c \x01(\x0cH\x04\x88\x01\x01\x12\x1d\n\x10payment_metadata\x18\r \x01(\x0cH\x05\x88\x01\x01\x12*\n\tfallbacks\x18\x0e \x03(\x0b\x32\x17.cln.DecodepayFallbacks\x12\"\n\x05\x65xtra\x18\x10 \x03(\x0b\x32\x13.cln.DecodepayExtraB\x0e\n\x0c_amount_msatB\x0e\n\x0c_descriptionB\x13\n\x11_description_hashB\x11\n\x0f_payment_secretB\x0b\n\t_featuresB\x13\n\x11_payment_metadata\"\xd0\x01\n\x12\x44\x65\x63odepayFallbacks\x12\x41\n\titem_type\x18\x01 \x01(\x0e\x32..cln.DecodepayFallbacks.DecodepayFallbacksType\x12\x11\n\x04\x61\x64\x64r\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0b\n\x03hex\x18\x03 \x01(\x0c\"N\n\x16\x44\x65\x63odepayFallbacksType\x12\t\n\x05P2PKH\x10\x00\x12\x08\n\x04P2SH\x10\x01\x12\n\n\x06P2WPKH\x10\x02\x12\t\n\x05P2WSH\x10\x03\x12\x08\n\x04P2TR\x10\x04\x42\x07\n\x05_addr\"+\n\x0e\x44\x65\x63odepayExtra\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"\x1f\n\rDecodeRequest\x12\x0e\n\x06string\x18\x01 \x01(\t\"\xb7#\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\"\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_features\"<\n\x11\x44\x65\x63odeOffer_paths\x12\x15\n\rfirst_node_id\x18\x01 \x01(\x0c\x12\x10\n\x08\x62linding\x18\x02 \x01(\x0c\"\x8a\x01\n\x1f\x44\x65\x63odeOffer_recurrencePaywindow\x12\x16\n\x0eseconds_before\x18\x01 \x01(\r\x12\x15\n\rseconds_after\x18\x02 \x01(\r\x12 \n\x13proportional_amount\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_proportional_amount\"T\n\x17\x44\x65\x63odeInvoice_pathsPath\x12\x17\n\x0f\x62linded_node_id\x18\x01 \x01(\x0c\x12 \n\x18\x65ncrypted_recipient_data\x18\x02 \x01(\x0c\"Y\n\x17\x44\x65\x63odeInvoice_fallbacks\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x0b\n\x03hex\x18\x02 \x01(\x0c\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\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\"=\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\"\x96\x01\n\x16\x46\x65\x65ratesPerkbEstimates\x12\x17\n\nblockcount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10smoothed_feerate\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\r\n\x0b_blockcountB\n\n\x08_feerateB\x13\n\x11_smoothed_feerate\"\xd3\x03\n\rFeeratesPerkw\x12\x16\n\x0emin_acceptable\x18\x01 \x01(\r\x12\x16\n\x0emax_acceptable\x18\x02 \x01(\r\x12\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\"\x96\x01\n\x16\x46\x65\x65ratesPerkwEstimates\x12\x17\n\nblockcount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07\x66\x65\x65rate\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10smoothed_feerate\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\r\n\x0b_blockcountB\n\n\x08_feerateB\x13\n\x11_smoothed_feerate\"\x9b\x02\n\x1d\x46\x65\x65ratesOnchain_fee_estimates\x12 \n\x18opening_channel_satoshis\x18\x01 \x01(\x04\x12\x1d\n\x15mutual_close_satoshis\x18\x02 \x01(\x04\x12!\n\x19unilateral_close_satoshis\x18\x03 \x01(\x04\x12\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\"\xe9\x02\n\x13\x46\x65tchinvoiceRequest\x12\r\n\x05offer\x18\x01 \x01(\t\x12%\n\x0b\x61mount_msat\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x15\n\x08quantity\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x1f\n\x12recurrence_counter\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x1d\n\x10recurrence_start\x18\x05 \x01(\x01H\x03\x88\x01\x01\x12\x1d\n\x10recurrence_label\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x07timeout\x18\x07 \x01(\x01H\x05\x88\x01\x01\x12\x17\n\npayer_note\x18\x08 \x01(\tH\x06\x88\x01\x01\x42\x0e\n\x0c_amount_msatB\x0b\n\t_quantityB\x15\n\x13_recurrence_counterB\x13\n\x11_recurrence_startB\x13\n\x11_recurrence_labelB\n\n\x08_timeoutB\r\n\x0b_payer_note\"\x9a\x01\n\x14\x46\x65tchinvoiceResponse\x12\x0f\n\x07invoice\x18\x01 \x01(\t\x12)\n\x07\x63hanges\x18\x02 \x01(\x0b\x32\x18.cln.FetchinvoiceChanges\x12\x36\n\x0bnext_period\x18\x03 \x01(\x0b\x32\x1c.cln.FetchinvoiceNext_periodH\x00\x88\x01\x01\x42\x0e\n\x0c_next_period\"\x82\x02\n\x13\x46\x65tchinvoiceChanges\x12!\n\x14\x64\x65scription_appended\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0evendor_removed\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06vendor\x18\x04 \x01(\tH\x03\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x04\x88\x01\x01\x42\x17\n\x15_description_appendedB\x0e\n\x0c_descriptionB\x11\n\x0f_vendor_removedB\t\n\x07_vendorB\x0e\n\x0c_amount_msat\"~\n\x17\x46\x65tchinvoiceNext_period\x12\x0f\n\x07\x63ounter\x18\x01 \x01(\x04\x12\x11\n\tstarttime\x18\x02 \x01(\x04\x12\x0f\n\x07\x65ndtime\x18\x03 \x01(\x04\x12\x17\n\x0fpaywindow_start\x18\x04 \x01(\x04\x12\x15\n\rpaywindow_end\x18\x05 \x01(\x04\"\xfb\x03\n\x12\x46undchannelRequest\x12 \n\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\"\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\"\xdb\x01\n\x0fListpaysRequest\x12\x13\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12\x38\n\x06status\x18\x03 \x01(\x0e\x32#.cln.ListpaysRequest.ListpaysStatusH\x02\x88\x01\x01\"7\n\x0eListpaysStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0c\n\x08\x43OMPLETE\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x42\t\n\x07_bolt11B\x0f\n\r_payment_hashB\t\n\x07_status\"3\n\x10ListpaysResponse\x12\x1f\n\x04pays\x18\x01 \x03(\x0b\x32\x11.cln.ListpaysPays\"\xff\x04\n\x0cListpaysPays\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x34\n\x06status\x18\x02 \x01(\x0e\x32$.cln.ListpaysPays.ListpaysPaysStatus\x12\x18\n\x0b\x64\x65stination\x18\x03 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\ncreated_at\x18\x04 \x01(\x04\x12\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\";\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_parts\"*\n\x10ListhtlcsRequest\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x05\n\x03_id\"7\n\x11ListhtlcsResponse\x12\"\n\x05htlcs\x18\x01 \x03(\x0b\x32\x13.cln.ListhtlcsHtlcs\"\x89\x02\n\x0eListhtlcsHtlcs\x12\x18\n\x10short_channel_id\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x04\x12\x0e\n\x06\x65xpiry\x18\x03 \x01(\r\x12 \n\x0b\x61mount_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12>\n\tdirection\x18\x05 \x01(\x0e\x32+.cln.ListhtlcsHtlcs.ListhtlcsHtlcsDirection\x12\x14\n\x0cpayment_hash\x18\x06 \x01(\x0c\x12\x1d\n\x05state\x18\x07 \x01(\x0e\x32\x0e.cln.HtlcState\"*\n\x17ListhtlcsHtlcsDirection\x12\x07\n\x03OUT\x10\x00\x12\x06\n\x02IN\x10\x01\"\xc1\x03\n\x0cOfferRequest\x12\x0e\n\x06\x61mount\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x13\n\x06issuer\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cquantity_max\x18\x05 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x61\x62solute_expiry\x18\x06 \x01(\x04H\x03\x88\x01\x01\x12\x17\n\nrecurrence\x18\x07 \x01(\tH\x04\x88\x01\x01\x12\x1c\n\x0frecurrence_base\x18\x08 \x01(\tH\x05\x88\x01\x01\x12!\n\x14recurrence_paywindow\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1d\n\x10recurrence_limit\x18\n \x01(\rH\x07\x88\x01\x01\x12\x17\n\nsingle_use\x18\x0b \x01(\x08H\x08\x88\x01\x01\x42\t\n\x07_issuerB\x08\n\x06_labelB\x0f\n\r_quantity_maxB\x12\n\x10_absolute_expiryB\r\n\x0b_recurrenceB\x12\n\x10_recurrence_baseB\x17\n\x15_recurrence_paywindowB\x13\n\x11_recurrence_limitB\r\n\x0b_single_use\"\x92\x01\n\rOfferResponse\x12\x10\n\x08offer_id\x18\x01 \x01(\x0c\x12\x0e\n\x06\x61\x63tive\x18\x02 \x01(\x08\x12\x12\n\nsingle_use\x18\x03 \x01(\x08\x12\x0e\n\x06\x62olt12\x18\x04 \x01(\t\x12\x0c\n\x04used\x18\x05 \x01(\x08\x12\x0f\n\x07\x63reated\x18\x06 \x01(\x08\x12\x12\n\x05label\x18\x07 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_label\"Y\n\x0bPingRequest\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x10\n\x03len\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tpongbytes\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_lenB\x0c\n\n_pongbytes\"\x1e\n\x0cPingResponse\x12\x0e\n\x06totlen\x18\x01 \x01(\r\"4\n\x14SendcustommsgRequest\x12\x0f\n\x07node_id\x18\x01 \x01(\x0c\x12\x0b\n\x03msg\x18\x02 \x01(\x0c\"\'\n\x15SendcustommsgResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"\xaa\x02\n\x11SetchannelRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12!\n\x07\x66\x65\x65\x62\x61se\x18\x02 \x01(\x0b\x32\x0b.cln.AmountH\x00\x88\x01\x01\x12\x13\n\x06\x66\x65\x65ppm\x18\x03 \x01(\rH\x01\x88\x01\x01\x12!\n\x07htlcmin\x18\x04 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x12!\n\x07htlcmax\x18\x05 \x01(\x0b\x32\x0b.cln.AmountH\x03\x88\x01\x01\x12\x19\n\x0c\x65nforcedelay\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1c\n\x0fignorefeelimits\x18\x07 \x01(\x08H\x05\x88\x01\x01\x42\n\n\x08_feebaseB\t\n\x07_feeppmB\n\n\x08_htlcminB\n\n\x08_htlcmaxB\x0f\n\r_enforcedelayB\x12\n\x10_ignorefeelimits\"?\n\x12SetchannelResponse\x12)\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x17.cln.SetchannelChannels\"\xca\x03\n\x12SetchannelChannels\x12\x0f\n\x07peer_id\x18\x01 \x01(\x0c\x12\x12\n\nchannel_id\x18\x02 \x01(\x0c\x12\x1d\n\x10short_channel_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\"\n\rfee_base_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x1b\x66\x65\x65_proportional_millionths\x18\x05 \x01(\r\x12*\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\x12SigninvoiceRequest\x12\x11\n\tinvstring\x18\x01 \x01(\t\"%\n\x13SigninvoiceResponse\x12\x0e\n\x06\x62olt11\x18\x01 \x01(\t\"%\n\x12SignmessageRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\"F\n\x13SignmessageResponse\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\r\n\x05recid\x18\x02 \x01(\x0c\x12\r\n\x05zbase\x18\x03 \x01(\t\"O\n\x16WaitblockheightRequest\x12\x13\n\x0b\x62lockheight\x18\x01 \x01(\r\x12\x14\n\x07timeout\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_timeout\".\n\x17WaitblockheightResponse\x12\x13\n\x0b\x62lockheight\x18\x01 \x01(\r\"\xf9\x01\n\x0bWaitRequest\x12\x31\n\tsubsystem\x18\x01 \x01(\x0e\x32\x1e.cln.WaitRequest.WaitSubsystem\x12\x31\n\tindexname\x18\x02 \x01(\x0e\x32\x1e.cln.WaitRequest.WaitIndexname\x12\x11\n\tnextvalue\x18\x03 \x01(\x04\"9\n\rWaitSubsystem\x12\x0c\n\x08INVOICES\x10\x00\x12\x0c\n\x08\x46ORWARDS\x10\x01\x12\x0c\n\x08SENDPAYS\x10\x02\"6\n\rWaitIndexname\x12\x0b\n\x07\x43REATED\x10\x00\x12\x0b\n\x07UPDATED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\"\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\"\r\n\x0bStopRequest\"q\n\x0cStopResponse\x12\x31\n\x06result\x18\x01 \x01(\x0e\x32\x1c.cln.StopResponse.StopResultH\x00\x88\x01\x01\"#\n\nStopResult\x12\x15\n\x11SHUTDOWN_COMPLETE\x10\x00\x42\t\n\x07_result\"\xa7\x01\n\x18PreapprovekeysendRequest\x12\x18\n\x0b\x64\x65stination\x18\x01 \x01(\x0cH\x00\x88\x01\x01\x12\x19\n\x0cpayment_hash\x18\x02 \x01(\x0cH\x01\x88\x01\x01\x12%\n\x0b\x61mount_msat\x18\x03 \x01(\x0b\x32\x0b.cln.AmountH\x02\x88\x01\x01\x42\x0e\n\x0c_destinationB\x0f\n\r_payment_hashB\x0e\n\x0c_amount_msat\"\x1b\n\x19PreapprovekeysendResponse\":\n\x18PreapproveinvoiceRequest\x12\x13\n\x06\x62olt11\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\t\n\x07_bolt11\"\x1b\n\x19PreapproveinvoiceResponse\"\x15\n\x13StaticbackupRequest\"#\n\x14StaticbackupResponse\x12\x0b\n\x03scb\x18\x01 \x03(\x0c\"\x97\x01\n\x15\x42kprlistincomeRequest\x12\x1d\n\x10\x63onsolidate_fees\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x17\n\nstart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x13\n\x11_consolidate_feesB\r\n\x0b_start_timeB\x0b\n\t_end_time\"Q\n\x16\x42kprlistincomeResponse\x12\x37\n\rincome_events\x18\x01 \x03(\x0b\x32 .cln.BkprlistincomeIncome_events\"\xb5\x02\n\x1b\x42kprlistincomeIncome_events\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x0b\n\x03tag\x18\x02 \x01(\t\x12 \n\x0b\x63redit_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x1f\n\ndebit_msat\x18\x04 \x01(\x0b\x32\x0b.cln.Amount\x12\x10\n\x08\x63urrency\x18\x05 \x01(\t\x12\x11\n\ttimestamp\x18\x06 \x01(\r\x12\x18\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08outpoint\x18\x08 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04txid\x18\t \x01(\x0cH\x02\x88\x01\x01\x12\x17\n\npayment_id\x18\n \x01(\x0cH\x03\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_outpointB\x07\n\x05_txidB\r\n\x0b_payment_id2\x8c \n\x04Node\x12\x36\n\x07Getinfo\x12\x13.cln.GetinfoRequest\x1a\x14.cln.GetinfoResponse\"\x00\x12<\n\tListPeers\x12\x15.cln.ListpeersRequest\x1a\x16.cln.ListpeersResponse\"\x00\x12<\n\tListFunds\x12\x15.cln.ListfundsRequest\x1a\x16.cln.ListfundsResponse\"\x00\x12\x36\n\x07SendPay\x12\x13.cln.SendpayRequest\x1a\x14.cln.SendpayResponse\"\x00\x12\x45\n\x0cListChannels\x12\x18.cln.ListchannelsRequest\x1a\x19.cln.ListchannelsResponse\"\x00\x12<\n\tAddGossip\x12\x15.cln.AddgossipRequest\x1a\x16.cln.AddgossipResponse\"\x00\x12Q\n\x10\x41utoCleanInvoice\x12\x1c.cln.AutocleaninvoiceRequest\x1a\x1d.cln.AutocleaninvoiceResponse\"\x00\x12\x45\n\x0c\x43heckMessage\x12\x18.cln.CheckmessageRequest\x1a\x19.cln.CheckmessageResponse\"\x00\x12\x30\n\x05\x43lose\x12\x11.cln.CloseRequest\x1a\x12.cln.CloseResponse\"\x00\x12:\n\x0b\x43onnectPeer\x12\x13.cln.ConnectRequest\x1a\x14.cln.ConnectResponse\"\x00\x12H\n\rCreateInvoice\x12\x19.cln.CreateinvoiceRequest\x1a\x1a.cln.CreateinvoiceResponse\"\x00\x12<\n\tDatastore\x12\x15.cln.DatastoreRequest\x1a\x16.cln.DatastoreResponse\"\x00\x12K\n\x0e\x44\x61tastoreUsage\x12\x1a.cln.DatastoreusageRequest\x1a\x1b.cln.DatastoreusageResponse\"\x00\x12\x42\n\x0b\x43reateOnion\x12\x17.cln.CreateonionRequest\x1a\x18.cln.CreateonionResponse\"\x00\x12\x45\n\x0c\x44\x65lDatastore\x12\x18.cln.DeldatastoreRequest\x1a\x19.cln.DeldatastoreResponse\"\x00\x12?\n\nDelInvoice\x12\x16.cln.DelinvoiceRequest\x1a\x17.cln.DelinvoiceResponse\"\x00\x12\x36\n\x07Invoice\x12\x13.cln.InvoiceRequest\x1a\x14.cln.InvoiceResponse\"\x00\x12H\n\rListDatastore\x12\x19.cln.ListdatastoreRequest\x1a\x1a.cln.ListdatastoreResponse\"\x00\x12\x45\n\x0cListInvoices\x12\x18.cln.ListinvoicesRequest\x1a\x19.cln.ListinvoicesResponse\"\x00\x12<\n\tSendOnion\x12\x15.cln.SendonionRequest\x1a\x16.cln.SendonionResponse\"\x00\x12\x45\n\x0cListSendPays\x12\x18.cln.ListsendpaysRequest\x1a\x19.cln.ListsendpaysResponse\"\x00\x12Q\n\x10ListTransactions\x12\x1c.cln.ListtransactionsRequest\x1a\x1d.cln.ListtransactionsResponse\"\x00\x12*\n\x03Pay\x12\x0f.cln.PayRequest\x1a\x10.cln.PayResponse\"\x00\x12<\n\tListNodes\x12\x15.cln.ListnodesRequest\x1a\x16.cln.ListnodesResponse\"\x00\x12K\n\x0eWaitAnyInvoice\x12\x1a.cln.WaitanyinvoiceRequest\x1a\x1b.cln.WaitanyinvoiceResponse\"\x00\x12\x42\n\x0bWaitInvoice\x12\x17.cln.WaitinvoiceRequest\x1a\x18.cln.WaitinvoiceResponse\"\x00\x12\x42\n\x0bWaitSendPay\x12\x17.cln.WaitsendpayRequest\x1a\x18.cln.WaitsendpayResponse\"\x00\x12\x36\n\x07NewAddr\x12\x13.cln.NewaddrRequest\x1a\x14.cln.NewaddrResponse\"\x00\x12\x39\n\x08Withdraw\x12\x14.cln.WithdrawRequest\x1a\x15.cln.WithdrawResponse\"\x00\x12\x36\n\x07KeySend\x12\x13.cln.KeysendRequest\x1a\x14.cln.KeysendResponse\"\x00\x12\x39\n\x08\x46undPsbt\x12\x14.cln.FundpsbtRequest\x1a\x15.cln.FundpsbtResponse\"\x00\x12\x39\n\x08SendPsbt\x12\x14.cln.SendpsbtRequest\x1a\x15.cln.SendpsbtResponse\"\x00\x12\x39\n\x08SignPsbt\x12\x14.cln.SignpsbtRequest\x1a\x15.cln.SignpsbtResponse\"\x00\x12\x39\n\x08UtxoPsbt\x12\x14.cln.UtxopsbtRequest\x1a\x15.cln.UtxopsbtResponse\"\x00\x12<\n\tTxDiscard\x12\x15.cln.TxdiscardRequest\x1a\x16.cln.TxdiscardResponse\"\x00\x12<\n\tTxPrepare\x12\x15.cln.TxprepareRequest\x1a\x16.cln.TxprepareResponse\"\x00\x12\x33\n\x06TxSend\x12\x12.cln.TxsendRequest\x1a\x13.cln.TxsendResponse\"\x00\x12Q\n\x10ListPeerChannels\x12\x1c.cln.ListpeerchannelsRequest\x1a\x1d.cln.ListpeerchannelsResponse\"\x00\x12W\n\x12ListClosedChannels\x12\x1e.cln.ListclosedchannelsRequest\x1a\x1f.cln.ListclosedchannelsResponse\"\x00\x12<\n\tDecodePay\x12\x15.cln.DecodepayRequest\x1a\x16.cln.DecodepayResponse\"\x00\x12\x33\n\x06\x44\x65\x63ode\x12\x12.cln.DecodeRequest\x1a\x13.cln.DecodeResponse\"\x00\x12?\n\nDisconnect\x12\x16.cln.DisconnectRequest\x1a\x17.cln.DisconnectResponse\"\x00\x12\x39\n\x08\x46\x65\x65rates\x12\x14.cln.FeeratesRequest\x1a\x15.cln.FeeratesResponse\"\x00\x12\x45\n\x0c\x46\x65tchInvoice\x12\x18.cln.FetchinvoiceRequest\x1a\x19.cln.FetchinvoiceResponse\"\x00\x12\x42\n\x0b\x46undChannel\x12\x17.cln.FundchannelRequest\x1a\x18.cln.FundchannelResponse\"\x00\x12\x39\n\x08GetRoute\x12\x14.cln.GetrouteRequest\x1a\x15.cln.GetrouteResponse\"\x00\x12\x45\n\x0cListForwards\x12\x18.cln.ListforwardsRequest\x1a\x19.cln.ListforwardsResponse\"\x00\x12?\n\nListOffers\x12\x16.cln.ListoffersRequest\x1a\x17.cln.ListoffersResponse\"\x00\x12\x39\n\x08ListPays\x12\x14.cln.ListpaysRequest\x1a\x15.cln.ListpaysResponse\"\x00\x12<\n\tListHtlcs\x12\x15.cln.ListhtlcsRequest\x1a\x16.cln.ListhtlcsResponse\"\x00\x12\x30\n\x05Offer\x12\x11.cln.OfferRequest\x1a\x12.cln.OfferResponse\"\x00\x12-\n\x04Ping\x12\x10.cln.PingRequest\x1a\x11.cln.PingResponse\"\x00\x12H\n\rSendCustomMsg\x12\x19.cln.SendcustommsgRequest\x1a\x1a.cln.SendcustommsgResponse\"\x00\x12?\n\nSetChannel\x12\x16.cln.SetchannelRequest\x1a\x17.cln.SetchannelResponse\"\x00\x12\x42\n\x0bSignInvoice\x12\x17.cln.SigninvoiceRequest\x1a\x18.cln.SigninvoiceResponse\"\x00\x12\x42\n\x0bSignMessage\x12\x17.cln.SignmessageRequest\x1a\x18.cln.SignmessageResponse\"\x00\x12N\n\x0fWaitBlockHeight\x12\x1b.cln.WaitblockheightRequest\x1a\x1c.cln.WaitblockheightResponse\"\x00\x12-\n\x04Wait\x12\x10.cln.WaitRequest\x1a\x11.cln.WaitResponse\"\x00\x12-\n\x04Stop\x12\x10.cln.StopRequest\x1a\x11.cln.StopResponse\"\x00\x12T\n\x11PreApproveKeysend\x12\x1d.cln.PreapprovekeysendRequest\x1a\x1e.cln.PreapprovekeysendResponse\"\x00\x12T\n\x11PreApproveInvoice\x12\x1d.cln.PreapproveinvoiceRequest\x1a\x1e.cln.PreapproveinvoiceResponse\"\x00\x12\x45\n\x0cStaticBackup\x12\x18.cln.StaticbackupRequest\x1a\x19.cln.StaticbackupResponse\"\x00\x12K\n\x0e\x42kprListIncome\x12\x1a.cln.BkprlistincomeRequest\x1a\x1b.cln.BkprlistincomeResponse\"\x00\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,459 +32,467 @@ _globals['_GETINFOADDRESS_GETINFOADDRESSTYPE']._serialized_start=834 _globals['_GETINFOADDRESS_GETINFOADDRESSTYPE']._serialized_end=905 _globals['_GETINFOBINDING']._serialized_start=920 - _globals['_GETINFOBINDING']._serialized_end=1186 - _globals['_GETINFOBINDING_GETINFOBINDINGTYPE']._serialized_start=1059 - _globals['_GETINFOBINDING_GETINFOBINDINGTYPE']._serialized_end=1154 - _globals['_LISTPEERSREQUEST']._serialized_start=1189 - _globals['_LISTPEERSREQUEST']._serialized_end=1359 - _globals['_LISTPEERSREQUEST_LISTPEERSLEVEL']._serialized_start=1284 - _globals['_LISTPEERSREQUEST_LISTPEERSLEVEL']._serialized_end=1342 - _globals['_LISTPEERSRESPONSE']._serialized_start=1361 - _globals['_LISTPEERSRESPONSE']._serialized_end=1416 - _globals['_LISTPEERSPEERS']._serialized_start=1419 - _globals['_LISTPEERSPEERS']._serialized_end=1642 - _globals['_LISTPEERSPEERSLOG']._serialized_start=1645 - _globals['_LISTPEERSPEERSLOG']._serialized_end=2026 - _globals['_LISTPEERSPEERSLOG_LISTPEERSPEERSLOGTYPE']._serialized_start=1856 - _globals['_LISTPEERSPEERSLOG_LISTPEERSPEERSLOGTYPE']._serialized_end=1961 - _globals['_LISTFUNDSREQUEST']._serialized_start=2028 - _globals['_LISTFUNDSREQUEST']._serialized_end=2076 - _globals['_LISTFUNDSRESPONSE']._serialized_start=2078 - _globals['_LISTFUNDSRESPONSE']._serialized_end=2179 - _globals['_LISTFUNDSOUTPUTS']._serialized_start=2182 - _globals['_LISTFUNDSOUTPUTS']._serialized_end=2569 - _globals['_LISTFUNDSOUTPUTS_LISTFUNDSOUTPUTSSTATUS']._serialized_start=2443 - _globals['_LISTFUNDSOUTPUTS_LISTFUNDSOUTPUTSSTATUS']._serialized_end=2524 - _globals['_LISTFUNDSCHANNELS']._serialized_start=2572 - _globals['_LISTFUNDSCHANNELS']._serialized_end=2871 - _globals['_SENDPAYREQUEST']._serialized_start=2874 - _globals['_SENDPAYREQUEST']._serialized_end=3317 - _globals['_SENDPAYRESPONSE']._serialized_start=3320 - _globals['_SENDPAYRESPONSE']._serialized_end=4005 - _globals['_SENDPAYRESPONSE_SENDPAYSTATUS']._serialized_start=3790 - _globals['_SENDPAYRESPONSE_SENDPAYSTATUS']._serialized_end=3832 - _globals['_SENDPAYROUTE']._serialized_start=4007 - _globals['_SENDPAYROUTE']._serialized_end=4099 - _globals['_LISTCHANNELSREQUEST']._serialized_start=4102 - _globals['_LISTCHANNELSREQUEST']._serialized_end=4249 - _globals['_LISTCHANNELSRESPONSE']._serialized_start=4251 - _globals['_LISTCHANNELSRESPONSE']._serialized_end=4318 - _globals['_LISTCHANNELSCHANNELS']._serialized_start=4321 - _globals['_LISTCHANNELSCHANNELS']._serialized_end=4756 - _globals['_ADDGOSSIPREQUEST']._serialized_start=4758 - _globals['_ADDGOSSIPREQUEST']._serialized_end=4793 - _globals['_ADDGOSSIPRESPONSE']._serialized_start=4795 - _globals['_ADDGOSSIPRESPONSE']._serialized_end=4814 - _globals['_AUTOCLEANINVOICEREQUEST']._serialized_start=4816 - _globals['_AUTOCLEANINVOICEREQUEST']._serialized_end=4927 - _globals['_AUTOCLEANINVOICERESPONSE']._serialized_start=4930 - _globals['_AUTOCLEANINVOICERESPONSE']._serialized_end=5059 - _globals['_CHECKMESSAGEREQUEST']._serialized_start=5061 - _globals['_CHECKMESSAGEREQUEST']._serialized_end=5146 - _globals['_CHECKMESSAGERESPONSE']._serialized_start=5148 - _globals['_CHECKMESSAGERESPONSE']._serialized_end=5204 - _globals['_CLOSEREQUEST']._serialized_start=5207 - _globals['_CLOSEREQUEST']._serialized_end=5538 - _globals['_CLOSERESPONSE']._serialized_start=5541 - _globals['_CLOSERESPONSE']._serialized_end=5712 - _globals['_CLOSERESPONSE_CLOSETYPE']._serialized_start=5643 - _globals['_CLOSERESPONSE_CLOSETYPE']._serialized_end=5696 - _globals['_CONNECTREQUEST']._serialized_start=5714 - _globals['_CONNECTREQUEST']._serialized_end=5798 - _globals['_CONNECTRESPONSE']._serialized_start=5801 - _globals['_CONNECTRESPONSE']._serialized_end=5981 - _globals['_CONNECTRESPONSE_CONNECTDIRECTION']._serialized_start=5946 - _globals['_CONNECTRESPONSE_CONNECTDIRECTION']._serialized_end=5981 - _globals['_CONNECTADDRESS']._serialized_start=5984 - _globals['_CONNECTADDRESS']._serialized_end=6235 - _globals['_CONNECTADDRESS_CONNECTADDRESSTYPE']._serialized_start=6123 - _globals['_CONNECTADDRESS_CONNECTADDRESSTYPE']._serialized_end=6203 - _globals['_CREATEINVOICEREQUEST']._serialized_start=6237 - _globals['_CREATEINVOICEREQUEST']._serialized_end=6311 - _globals['_CREATEINVOICERESPONSE']._serialized_start=6314 - _globals['_CREATEINVOICERESPONSE']._serialized_end=7080 - _globals['_CREATEINVOICERESPONSE_CREATEINVOICESTATUS']._serialized_start=6837 - _globals['_CREATEINVOICERESPONSE_CREATEINVOICESTATUS']._serialized_end=6893 - _globals['_CREATEINVOICEPAID_OUTPOINT']._serialized_start=7082 - _globals['_CREATEINVOICEPAID_OUTPOINT']._serialized_end=7170 - _globals['_DATASTOREREQUEST']._serialized_start=7173 - _globals['_DATASTOREREQUEST']._serialized_end=7481 - _globals['_DATASTOREREQUEST_DATASTOREMODE']._serialized_start=7326 - _globals['_DATASTOREREQUEST_DATASTOREMODE']._serialized_end=7438 - _globals['_DATASTORERESPONSE']._serialized_start=7484 - _globals['_DATASTORERESPONSE']._serialized_end=7614 - _globals['_DATASTOREUSAGEREQUEST']._serialized_start=7616 - _globals['_DATASTOREUSAGEREQUEST']._serialized_end=7652 - _globals['_DATASTOREUSAGERESPONSE']._serialized_start=7654 - _globals['_DATASTOREUSAGERESPONSE']._serialized_end=7761 - _globals['_DATASTOREUSAGEDATASTOREUSAGE']._serialized_start=7763 - _globals['_DATASTOREUSAGEDATASTOREUSAGE']._serialized_end=7861 - _globals['_CREATEONIONREQUEST']._serialized_start=7864 - _globals['_CREATEONIONREQUEST']._serialized_end=8021 - _globals['_CREATEONIONRESPONSE']._serialized_start=8023 - _globals['_CREATEONIONRESPONSE']._serialized_end=8083 - _globals['_CREATEONIONHOPS']._serialized_start=8085 - _globals['_CREATEONIONHOPS']._serialized_end=8135 - _globals['_DELDATASTOREREQUEST']._serialized_start=8137 - _globals['_DELDATASTOREREQUEST']._serialized_end=8211 - _globals['_DELDATASTORERESPONSE']._serialized_start=8214 - _globals['_DELDATASTORERESPONSE']._serialized_end=8347 - _globals['_DELINVOICEREQUEST']._serialized_start=8350 - _globals['_DELINVOICEREQUEST']._serialized_end=8532 - _globals['_DELINVOICEREQUEST_DELINVOICESTATUS']._serialized_start=8466 - _globals['_DELINVOICEREQUEST_DELINVOICESTATUS']._serialized_end=8519 - _globals['_DELINVOICERESPONSE']._serialized_start=8535 - _globals['_DELINVOICERESPONSE']._serialized_end=9080 - _globals['_DELINVOICERESPONSE_DELINVOICESTATUS']._serialized_start=8466 - _globals['_DELINVOICERESPONSE_DELINVOICESTATUS']._serialized_end=8519 - _globals['_INVOICEREQUEST']._serialized_start=9083 - _globals['_INVOICEREQUEST']._serialized_end=9333 - _globals['_INVOICERESPONSE']._serialized_start=9336 - _globals['_INVOICERESPONSE']._serialized_end=9741 - _globals['_LISTDATASTOREREQUEST']._serialized_start=9743 - _globals['_LISTDATASTOREREQUEST']._serialized_end=9778 - _globals['_LISTDATASTORERESPONSE']._serialized_start=9780 - _globals['_LISTDATASTORERESPONSE']._serialized_end=9851 - _globals['_LISTDATASTOREDATASTORE']._serialized_start=9854 - _globals['_LISTDATASTOREDATASTORE']._serialized_end=9989 - _globals['_LISTINVOICESREQUEST']._serialized_start=9992 - _globals['_LISTINVOICESREQUEST']._serialized_end=10342 - _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_start=10213 - _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_end=10258 - _globals['_LISTINVOICESRESPONSE']._serialized_start=10344 - _globals['_LISTINVOICESRESPONSE']._serialized_end=10411 - _globals['_LISTINVOICESINVOICES']._serialized_start=10414 - _globals['_LISTINVOICESINVOICES']._serialized_end=11266 - _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_start=10982 - _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_end=11045 - _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_start=11268 - _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_end=11363 - _globals['_SENDONIONREQUEST']._serialized_start=11366 - _globals['_SENDONIONREQUEST']._serialized_end=11802 - _globals['_SENDONIONRESPONSE']._serialized_start=11805 - _globals['_SENDONIONRESPONSE']._serialized_end=12420 - _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_start=12232 - _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_end=12276 - _globals['_SENDONIONFIRST_HOP']._serialized_start=12422 - _globals['_SENDONIONFIRST_HOP']._serialized_end=12503 - _globals['_LISTSENDPAYSREQUEST']._serialized_start=12506 - _globals['_LISTSENDPAYSREQUEST']._serialized_end=12922 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_start=12747 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_end=12806 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_start=12808 - _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_end=12853 - _globals['_LISTSENDPAYSRESPONSE']._serialized_start=12924 - _globals['_LISTSENDPAYSRESPONSE']._serialized_end=12991 - _globals['_LISTSENDPAYSPAYMENTS']._serialized_start=12994 - _globals['_LISTSENDPAYSPAYMENTS']._serialized_end=13758 - _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_start=13511 - _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_end=13578 - _globals['_LISTTRANSACTIONSREQUEST']._serialized_start=13760 - _globals['_LISTTRANSACTIONSREQUEST']._serialized_end=13785 - _globals['_LISTTRANSACTIONSRESPONSE']._serialized_start=13787 - _globals['_LISTTRANSACTIONSRESPONSE']._serialized_end=13870 - _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_start=13873 - _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_end=14121 - _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_start=14123 - _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_end=14206 - _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_start=14208 - _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_end=14316 - _globals['_PAYREQUEST']._serialized_start=14319 - _globals['_PAYREQUEST']._serialized_end=14850 - _globals['_PAYRESPONSE']._serialized_start=14853 - _globals['_PAYRESPONSE']._serialized_end=15232 - _globals['_PAYRESPONSE_PAYSTATUS']._serialized_start=15135 - _globals['_PAYRESPONSE_PAYSTATUS']._serialized_end=15185 - _globals['_LISTNODESREQUEST']._serialized_start=15234 - _globals['_LISTNODESREQUEST']._serialized_end=15276 - _globals['_LISTNODESRESPONSE']._serialized_start=15278 - _globals['_LISTNODESRESPONSE']._serialized_end=15333 - _globals['_LISTNODESNODES']._serialized_start=15336 - _globals['_LISTNODESNODES']._serialized_end=15561 - _globals['_LISTNODESNODESADDRESSES']._serialized_start=15564 - _globals['_LISTNODESNODESADDRESSES']._serialized_end=15796 - _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_start=15704 - _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_end=15784 - _globals['_WAITANYINVOICEREQUEST']._serialized_start=15798 - _globals['_WAITANYINVOICEREQUEST']._serialized_end=15901 - _globals['_WAITANYINVOICERESPONSE']._serialized_start=15904 - _globals['_WAITANYINVOICERESPONSE']._serialized_end=16607 - _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_start=16398 - _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_end=16443 - _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_start=16609 - _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_end=16698 - _globals['_WAITINVOICEREQUEST']._serialized_start=16700 - _globals['_WAITINVOICEREQUEST']._serialized_end=16735 - _globals['_WAITINVOICERESPONSE']._serialized_start=16738 - _globals['_WAITINVOICERESPONSE']._serialized_end=17426 - _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_start=17220 - _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_end=17262 - _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_start=17428 - _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_end=17514 - _globals['_WAITSENDPAYREQUEST']._serialized_start=17517 - _globals['_WAITSENDPAYREQUEST']._serialized_end=17659 - _globals['_WAITSENDPAYRESPONSE']._serialized_start=17662 - _globals['_WAITSENDPAYRESPONSE']._serialized_end=18316 - _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_start=18122 - _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_end=18155 - _globals['_NEWADDRREQUEST']._serialized_start=18319 - _globals['_NEWADDRREQUEST']._serialized_end=18470 - _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_start=18403 - _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_end=18454 - _globals['_NEWADDRRESPONSE']._serialized_start=18472 - _globals['_NEWADDRRESPONSE']._serialized_end=18549 - _globals['_WITHDRAWREQUEST']._serialized_start=18552 - _globals['_WITHDRAWREQUEST']._serialized_end=18737 - _globals['_WITHDRAWRESPONSE']._serialized_start=18739 - _globals['_WITHDRAWRESPONSE']._serialized_end=18797 - _globals['_KEYSENDREQUEST']._serialized_start=18800 - _globals['_KEYSENDREQUEST']._serialized_end=19186 - _globals['_KEYSENDRESPONSE']._serialized_start=19189 - _globals['_KEYSENDRESPONSE']._serialized_end=19559 - _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_start=19483 - _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_end=19512 - _globals['_FUNDPSBTREQUEST']._serialized_start=19562 - _globals['_FUNDPSBTREQUEST']._serialized_end=19982 - _globals['_FUNDPSBTRESPONSE']._serialized_start=19985 - _globals['_FUNDPSBTRESPONSE']._serialized_end=20202 - _globals['_FUNDPSBTRESERVATIONS']._serialized_start=20204 - _globals['_FUNDPSBTRESERVATIONS']._serialized_end=20321 - _globals['_SENDPSBTREQUEST']._serialized_start=20323 - _globals['_SENDPSBTREQUEST']._serialized_end=20388 - _globals['_SENDPSBTRESPONSE']._serialized_start=20390 - _globals['_SENDPSBTRESPONSE']._serialized_end=20434 - _globals['_SIGNPSBTREQUEST']._serialized_start=20436 - _globals['_SIGNPSBTREQUEST']._serialized_end=20485 - _globals['_SIGNPSBTRESPONSE']._serialized_start=20487 - _globals['_SIGNPSBTRESPONSE']._serialized_end=20526 - _globals['_UTXOPSBTREQUEST']._serialized_start=20529 - _globals['_UTXOPSBTREQUEST']._serialized_end=20945 - _globals['_UTXOPSBTRESPONSE']._serialized_start=20948 - _globals['_UTXOPSBTRESPONSE']._serialized_end=21165 - _globals['_UTXOPSBTRESERVATIONS']._serialized_start=21167 - _globals['_UTXOPSBTRESERVATIONS']._serialized_end=21284 - _globals['_TXDISCARDREQUEST']._serialized_start=21286 - _globals['_TXDISCARDREQUEST']._serialized_end=21318 - _globals['_TXDISCARDRESPONSE']._serialized_start=21320 - _globals['_TXDISCARDRESPONSE']._serialized_end=21374 - _globals['_TXPREPAREREQUEST']._serialized_start=21377 - _globals['_TXPREPAREREQUEST']._serialized_end=21541 - _globals['_TXPREPARERESPONSE']._serialized_start=21543 - _globals['_TXPREPARERESPONSE']._serialized_end=21611 - _globals['_TXSENDREQUEST']._serialized_start=21613 - _globals['_TXSENDREQUEST']._serialized_end=21642 - _globals['_TXSENDRESPONSE']._serialized_start=21644 - _globals['_TXSENDRESPONSE']._serialized_end=21700 - _globals['_LISTPEERCHANNELSREQUEST']._serialized_start=21702 - _globals['_LISTPEERCHANNELSREQUEST']._serialized_end=21751 - _globals['_LISTPEERCHANNELSRESPONSE']._serialized_start=21753 - _globals['_LISTPEERCHANNELSRESPONSE']._serialized_end=21828 - _globals['_LISTPEERCHANNELSCHANNELS']._serialized_start=21831 - _globals['_LISTPEERCHANNELSCHANNELS']._serialized_end=25343 - _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_start=23972 - _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_end=24356 - _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_start=25346 - _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_end=25528 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_start=25531 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_end=25890 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_start=25893 - _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_end=26253 - _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_start=26255 - _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_end=26348 - _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_start=26351 - _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_end=26735 - _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_start=26738 - _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_end=27076 - _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_start=27078 - _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_end=27171 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_start=27174 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_end=27656 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_start=27495 - _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_end=27552 - _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_start=27658 - _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_end=27709 - _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_start=27711 - _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_end=27802 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_start=27805 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_end=29071 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_start=28742 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_end=28860 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_start=29073 - _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_end=29174 - _globals['_DECODEPAYREQUEST']._serialized_start=29176 - _globals['_DECODEPAYREQUEST']._serialized_end=29252 - _globals['_DECODEPAYRESPONSE']._serialized_start=29255 - _globals['_DECODEPAYRESPONSE']._serialized_end=29780 - _globals['_DECODEPAYFALLBACKS']._serialized_start=29783 - _globals['_DECODEPAYFALLBACKS']._serialized_end=29991 - _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_start=29904 - _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_end=29982 - _globals['_DECODEPAYEXTRA']._serialized_start=29993 - _globals['_DECODEPAYEXTRA']._serialized_end=30036 - _globals['_DECODEREQUEST']._serialized_start=30038 - _globals['_DECODEREQUEST']._serialized_end=30069 - _globals['_DECODERESPONSE']._serialized_start=30072 - _globals['_DECODERESPONSE']._serialized_end=34400 - _globals['_DECODERESPONSE_DECODETYPE']._serialized_start=32665 - _globals['_DECODERESPONSE_DECODETYPE']._serialized_end=32796 - _globals['_DECODEOFFER_PATHS']._serialized_start=34402 - _globals['_DECODEOFFER_PATHS']._serialized_end=34462 - _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_start=34465 - _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_end=34603 - _globals['_DECODEINVOICE_PATHSPATH']._serialized_start=34605 - _globals['_DECODEINVOICE_PATHSPATH']._serialized_end=34689 - _globals['_DECODEINVOICE_FALLBACKS']._serialized_start=34691 - _globals['_DECODEINVOICE_FALLBACKS']._serialized_end=34780 - _globals['_DECODEFALLBACKS']._serialized_start=34782 - _globals['_DECODEFALLBACKS']._serialized_end=34901 - _globals['_DECODEEXTRA']._serialized_start=34903 - _globals['_DECODEEXTRA']._serialized_end=34943 - _globals['_DECODERESTRICTIONS']._serialized_start=34945 - _globals['_DECODERESTRICTIONS']._serialized_end=35004 - _globals['_DISCONNECTREQUEST']._serialized_start=35006 - _globals['_DISCONNECTREQUEST']._serialized_end=35067 - _globals['_DISCONNECTRESPONSE']._serialized_start=35069 - _globals['_DISCONNECTRESPONSE']._serialized_end=35089 - _globals['_FEERATESREQUEST']._serialized_start=35091 - _globals['_FEERATESREQUEST']._serialized_end=35198 - _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_start=35161 - _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_end=35198 - _globals['_FEERATESRESPONSE']._serialized_start=35201 - _globals['_FEERATESRESPONSE']._serialized_end=35485 - _globals['_FEERATESPERKB']._serialized_start=35488 - _globals['_FEERATESPERKB']._serialized_end=35955 - _globals['_FEERATESPERKBESTIMATES']._serialized_start=35958 - _globals['_FEERATESPERKBESTIMATES']._serialized_end=36108 - _globals['_FEERATESPERKW']._serialized_start=36111 - _globals['_FEERATESPERKW']._serialized_end=36578 - _globals['_FEERATESPERKWESTIMATES']._serialized_start=36581 - _globals['_FEERATESPERKWESTIMATES']._serialized_end=36731 - _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_start=36734 - _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_end=37017 - _globals['_FETCHINVOICEREQUEST']._serialized_start=37020 - _globals['_FETCHINVOICEREQUEST']._serialized_end=37381 - _globals['_FETCHINVOICERESPONSE']._serialized_start=37384 - _globals['_FETCHINVOICERESPONSE']._serialized_end=37538 - _globals['_FETCHINVOICECHANGES']._serialized_start=37541 - _globals['_FETCHINVOICECHANGES']._serialized_end=37799 - _globals['_FETCHINVOICENEXT_PERIOD']._serialized_start=37801 - _globals['_FETCHINVOICENEXT_PERIOD']._serialized_end=37927 - _globals['_FUNDCHANNELREQUEST']._serialized_start=37930 - _globals['_FUNDCHANNELREQUEST']._serialized_end=38437 - _globals['_FUNDCHANNELRESPONSE']._serialized_start=38440 - _globals['_FUNDCHANNELRESPONSE']._serialized_end=38669 - _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_start=38671 - _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_end=38747 - _globals['_GETROUTEREQUEST']._serialized_start=38750 - _globals['_GETROUTEREQUEST']._serialized_end=38986 - _globals['_GETROUTERESPONSE']._serialized_start=38988 - _globals['_GETROUTERESPONSE']._serialized_end=39041 - _globals['_GETROUTEROUTE']._serialized_start=39044 - _globals['_GETROUTEROUTE']._serialized_end=39241 - _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_start=39212 - _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_end=39241 - _globals['_LISTFORWARDSREQUEST']._serialized_start=39244 - _globals['_LISTFORWARDSREQUEST']._serialized_end=39683 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_start=39488 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_end=39564 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_start=39566 - _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_end=39611 - _globals['_LISTFORWARDSRESPONSE']._serialized_start=39685 - _globals['_LISTFORWARDSRESPONSE']._serialized_end=39752 - _globals['_LISTFORWARDSFORWARDS']._serialized_start=39755 - _globals['_LISTFORWARDSFORWARDS']._serialized_end=40453 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_start=40200 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_end=40284 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_start=40286 - _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_end=40334 - _globals['_LISTOFFERSREQUEST']._serialized_start=40455 - _globals['_LISTOFFERSREQUEST']._serialized_end=40552 - _globals['_LISTOFFERSRESPONSE']._serialized_start=40554 - _globals['_LISTOFFERSRESPONSE']._serialized_end=40613 - _globals['_LISTOFFERSOFFERS']._serialized_start=40616 - _globals['_LISTOFFERSOFFERS']._serialized_end=40748 - _globals['_LISTPAYSREQUEST']._serialized_start=40751 - _globals['_LISTPAYSREQUEST']._serialized_end=40970 - _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_start=40876 - _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_end=40931 - _globals['_LISTPAYSRESPONSE']._serialized_start=40972 - _globals['_LISTPAYSRESPONSE']._serialized_end=41023 - _globals['_LISTPAYSPAYS']._serialized_start=41026 - _globals['_LISTPAYSPAYS']._serialized_end=41665 - _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_start=41440 - _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_end=41499 - _globals['_LISTHTLCSREQUEST']._serialized_start=41667 - _globals['_LISTHTLCSREQUEST']._serialized_end=41709 - _globals['_LISTHTLCSRESPONSE']._serialized_start=41711 - _globals['_LISTHTLCSRESPONSE']._serialized_end=41766 - _globals['_LISTHTLCSHTLCS']._serialized_start=41769 - _globals['_LISTHTLCSHTLCS']._serialized_end=42034 - _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_start=41992 - _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_end=42034 - _globals['_OFFERREQUEST']._serialized_start=42037 - _globals['_OFFERREQUEST']._serialized_end=42486 - _globals['_OFFERRESPONSE']._serialized_start=42489 - _globals['_OFFERRESPONSE']._serialized_end=42635 - _globals['_PINGREQUEST']._serialized_start=42637 - _globals['_PINGREQUEST']._serialized_end=42726 - _globals['_PINGRESPONSE']._serialized_start=42728 - _globals['_PINGRESPONSE']._serialized_end=42758 - _globals['_SENDCUSTOMMSGREQUEST']._serialized_start=42760 - _globals['_SENDCUSTOMMSGREQUEST']._serialized_end=42812 - _globals['_SENDCUSTOMMSGRESPONSE']._serialized_start=42814 - _globals['_SENDCUSTOMMSGRESPONSE']._serialized_end=42853 - _globals['_SETCHANNELREQUEST']._serialized_start=42856 - _globals['_SETCHANNELREQUEST']._serialized_end=43154 - _globals['_SETCHANNELRESPONSE']._serialized_start=43156 - _globals['_SETCHANNELRESPONSE']._serialized_end=43219 - _globals['_SETCHANNELCHANNELS']._serialized_start=43222 - _globals['_SETCHANNELCHANNELS']._serialized_end=43680 - _globals['_SIGNINVOICEREQUEST']._serialized_start=43682 - _globals['_SIGNINVOICEREQUEST']._serialized_end=43721 - _globals['_SIGNINVOICERESPONSE']._serialized_start=43723 - _globals['_SIGNINVOICERESPONSE']._serialized_end=43760 - _globals['_SIGNMESSAGEREQUEST']._serialized_start=43762 - _globals['_SIGNMESSAGEREQUEST']._serialized_end=43799 - _globals['_SIGNMESSAGERESPONSE']._serialized_start=43801 - _globals['_SIGNMESSAGERESPONSE']._serialized_end=43871 - _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_start=43873 - _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_end=43952 - _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_start=43954 - _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_end=44000 - _globals['_WAITREQUEST']._serialized_start=44003 - _globals['_WAITREQUEST']._serialized_end=44252 - _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_start=44139 - _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_end=44196 - _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_start=44198 - _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_end=44252 - _globals['_WAITRESPONSE']._serialized_start=44255 - _globals['_WAITRESPONSE']._serialized_end=44482 - _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_start=44139 - _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_end=44196 - _globals['_STOPREQUEST']._serialized_start=44484 - _globals['_STOPREQUEST']._serialized_end=44497 - _globals['_STOPRESPONSE']._serialized_start=44499 - _globals['_STOPRESPONSE']._serialized_end=44612 - _globals['_STOPRESPONSE_STOPRESULT']._serialized_start=44566 - _globals['_STOPRESPONSE_STOPRESULT']._serialized_end=44601 - _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_start=44615 - _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_end=44782 - _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_start=44784 - _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_end=44811 - _globals['_PREAPPROVEINVOICEREQUEST']._serialized_start=44813 - _globals['_PREAPPROVEINVOICEREQUEST']._serialized_end=44871 - _globals['_PREAPPROVEINVOICERESPONSE']._serialized_start=44873 - _globals['_PREAPPROVEINVOICERESPONSE']._serialized_end=44900 - _globals['_STATICBACKUPREQUEST']._serialized_start=44902 - _globals['_STATICBACKUPREQUEST']._serialized_end=44923 - _globals['_STATICBACKUPRESPONSE']._serialized_start=44925 - _globals['_STATICBACKUPRESPONSE']._serialized_end=44960 - _globals['_BKPRLISTINCOMEREQUEST']._serialized_start=44963 - _globals['_BKPRLISTINCOMEREQUEST']._serialized_end=45114 - _globals['_BKPRLISTINCOMERESPONSE']._serialized_start=45116 - _globals['_BKPRLISTINCOMERESPONSE']._serialized_end=45197 - _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_start=45200 - _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_end=45509 - _globals['_NODE']._serialized_start=45512 - _globals['_NODE']._serialized_end=49620 + _globals['_GETINFOBINDING']._serialized_end=1220 + _globals['_GETINFOBINDING_GETINFOBINDINGTYPE']._serialized_start=1081 + _globals['_GETINFOBINDING_GETINFOBINDINGTYPE']._serialized_end=1176 + _globals['_LISTPEERSREQUEST']._serialized_start=1223 + _globals['_LISTPEERSREQUEST']._serialized_end=1393 + _globals['_LISTPEERSREQUEST_LISTPEERSLEVEL']._serialized_start=1318 + _globals['_LISTPEERSREQUEST_LISTPEERSLEVEL']._serialized_end=1376 + _globals['_LISTPEERSRESPONSE']._serialized_start=1395 + _globals['_LISTPEERSRESPONSE']._serialized_end=1450 + _globals['_LISTPEERSPEERS']._serialized_start=1453 + _globals['_LISTPEERSPEERS']._serialized_end=1676 + _globals['_LISTPEERSPEERSLOG']._serialized_start=1679 + _globals['_LISTPEERSPEERSLOG']._serialized_end=2060 + _globals['_LISTPEERSPEERSLOG_LISTPEERSPEERSLOGTYPE']._serialized_start=1890 + _globals['_LISTPEERSPEERSLOG_LISTPEERSPEERSLOGTYPE']._serialized_end=1995 + _globals['_LISTFUNDSREQUEST']._serialized_start=2062 + _globals['_LISTFUNDSREQUEST']._serialized_end=2110 + _globals['_LISTFUNDSRESPONSE']._serialized_start=2112 + _globals['_LISTFUNDSRESPONSE']._serialized_end=2213 + _globals['_LISTFUNDSOUTPUTS']._serialized_start=2216 + _globals['_LISTFUNDSOUTPUTS']._serialized_end=2657 + _globals['_LISTFUNDSOUTPUTS_LISTFUNDSOUTPUTSSTATUS']._serialized_start=2509 + _globals['_LISTFUNDSOUTPUTS_LISTFUNDSOUTPUTSSTATUS']._serialized_end=2590 + _globals['_LISTFUNDSCHANNELS']._serialized_start=2660 + _globals['_LISTFUNDSCHANNELS']._serialized_end=2959 + _globals['_SENDPAYREQUEST']._serialized_start=2962 + _globals['_SENDPAYREQUEST']._serialized_end=3405 + _globals['_SENDPAYRESPONSE']._serialized_start=3408 + _globals['_SENDPAYRESPONSE']._serialized_end=4093 + _globals['_SENDPAYRESPONSE_SENDPAYSTATUS']._serialized_start=3878 + _globals['_SENDPAYRESPONSE_SENDPAYSTATUS']._serialized_end=3920 + _globals['_SENDPAYROUTE']._serialized_start=4095 + _globals['_SENDPAYROUTE']._serialized_end=4187 + _globals['_LISTCHANNELSREQUEST']._serialized_start=4190 + _globals['_LISTCHANNELSREQUEST']._serialized_end=4337 + _globals['_LISTCHANNELSRESPONSE']._serialized_start=4339 + _globals['_LISTCHANNELSRESPONSE']._serialized_end=4406 + _globals['_LISTCHANNELSCHANNELS']._serialized_start=4409 + _globals['_LISTCHANNELSCHANNELS']._serialized_end=4844 + _globals['_ADDGOSSIPREQUEST']._serialized_start=4846 + _globals['_ADDGOSSIPREQUEST']._serialized_end=4881 + _globals['_ADDGOSSIPRESPONSE']._serialized_start=4883 + _globals['_ADDGOSSIPRESPONSE']._serialized_end=4902 + _globals['_AUTOCLEANINVOICEREQUEST']._serialized_start=4904 + _globals['_AUTOCLEANINVOICEREQUEST']._serialized_end=5015 + _globals['_AUTOCLEANINVOICERESPONSE']._serialized_start=5018 + _globals['_AUTOCLEANINVOICERESPONSE']._serialized_end=5147 + _globals['_CHECKMESSAGEREQUEST']._serialized_start=5149 + _globals['_CHECKMESSAGEREQUEST']._serialized_end=5234 + _globals['_CHECKMESSAGERESPONSE']._serialized_start=5236 + _globals['_CHECKMESSAGERESPONSE']._serialized_end=5292 + _globals['_CLOSEREQUEST']._serialized_start=5295 + _globals['_CLOSEREQUEST']._serialized_end=5626 + _globals['_CLOSERESPONSE']._serialized_start=5629 + _globals['_CLOSERESPONSE']._serialized_end=5800 + _globals['_CLOSERESPONSE_CLOSETYPE']._serialized_start=5731 + _globals['_CLOSERESPONSE_CLOSETYPE']._serialized_end=5784 + _globals['_CONNECTREQUEST']._serialized_start=5802 + _globals['_CONNECTREQUEST']._serialized_end=5886 + _globals['_CONNECTRESPONSE']._serialized_start=5889 + _globals['_CONNECTRESPONSE']._serialized_end=6069 + _globals['_CONNECTRESPONSE_CONNECTDIRECTION']._serialized_start=6034 + _globals['_CONNECTRESPONSE_CONNECTDIRECTION']._serialized_end=6069 + _globals['_CONNECTADDRESS']._serialized_start=6072 + _globals['_CONNECTADDRESS']._serialized_end=6323 + _globals['_CONNECTADDRESS_CONNECTADDRESSTYPE']._serialized_start=6211 + _globals['_CONNECTADDRESS_CONNECTADDRESSTYPE']._serialized_end=6291 + _globals['_CREATEINVOICEREQUEST']._serialized_start=6325 + _globals['_CREATEINVOICEREQUEST']._serialized_end=6399 + _globals['_CREATEINVOICERESPONSE']._serialized_start=6402 + _globals['_CREATEINVOICERESPONSE']._serialized_end=7168 + _globals['_CREATEINVOICERESPONSE_CREATEINVOICESTATUS']._serialized_start=6925 + _globals['_CREATEINVOICERESPONSE_CREATEINVOICESTATUS']._serialized_end=6981 + _globals['_CREATEINVOICEPAID_OUTPOINT']._serialized_start=7170 + _globals['_CREATEINVOICEPAID_OUTPOINT']._serialized_end=7258 + _globals['_DATASTOREREQUEST']._serialized_start=7261 + _globals['_DATASTOREREQUEST']._serialized_end=7569 + _globals['_DATASTOREREQUEST_DATASTOREMODE']._serialized_start=7414 + _globals['_DATASTOREREQUEST_DATASTOREMODE']._serialized_end=7526 + _globals['_DATASTORERESPONSE']._serialized_start=7572 + _globals['_DATASTORERESPONSE']._serialized_end=7702 + _globals['_DATASTOREUSAGEREQUEST']._serialized_start=7704 + _globals['_DATASTOREUSAGEREQUEST']._serialized_end=7740 + _globals['_DATASTOREUSAGERESPONSE']._serialized_start=7742 + _globals['_DATASTOREUSAGERESPONSE']._serialized_end=7849 + _globals['_DATASTOREUSAGEDATASTOREUSAGE']._serialized_start=7851 + _globals['_DATASTOREUSAGEDATASTOREUSAGE']._serialized_end=7949 + _globals['_CREATEONIONREQUEST']._serialized_start=7952 + _globals['_CREATEONIONREQUEST']._serialized_end=8109 + _globals['_CREATEONIONRESPONSE']._serialized_start=8111 + _globals['_CREATEONIONRESPONSE']._serialized_end=8171 + _globals['_CREATEONIONHOPS']._serialized_start=8173 + _globals['_CREATEONIONHOPS']._serialized_end=8223 + _globals['_DELDATASTOREREQUEST']._serialized_start=8225 + _globals['_DELDATASTOREREQUEST']._serialized_end=8299 + _globals['_DELDATASTORERESPONSE']._serialized_start=8302 + _globals['_DELDATASTORERESPONSE']._serialized_end=8435 + _globals['_DELINVOICEREQUEST']._serialized_start=8438 + _globals['_DELINVOICEREQUEST']._serialized_end=8620 + _globals['_DELINVOICEREQUEST_DELINVOICESTATUS']._serialized_start=8554 + _globals['_DELINVOICEREQUEST_DELINVOICESTATUS']._serialized_end=8607 + _globals['_DELINVOICERESPONSE']._serialized_start=8623 + _globals['_DELINVOICERESPONSE']._serialized_end=9365 + _globals['_DELINVOICERESPONSE_DELINVOICESTATUS']._serialized_start=8554 + _globals['_DELINVOICERESPONSE_DELINVOICESTATUS']._serialized_end=8607 + _globals['_INVOICEREQUEST']._serialized_start=9368 + _globals['_INVOICEREQUEST']._serialized_end=9618 + _globals['_INVOICERESPONSE']._serialized_start=9621 + _globals['_INVOICERESPONSE']._serialized_end=10026 + _globals['_LISTDATASTOREREQUEST']._serialized_start=10028 + _globals['_LISTDATASTOREREQUEST']._serialized_end=10063 + _globals['_LISTDATASTORERESPONSE']._serialized_start=10065 + _globals['_LISTDATASTORERESPONSE']._serialized_end=10136 + _globals['_LISTDATASTOREDATASTORE']._serialized_start=10139 + _globals['_LISTDATASTOREDATASTORE']._serialized_end=10274 + _globals['_LISTINVOICESREQUEST']._serialized_start=10277 + _globals['_LISTINVOICESREQUEST']._serialized_end=10627 + _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_start=10498 + _globals['_LISTINVOICESREQUEST_LISTINVOICESINDEX']._serialized_end=10543 + _globals['_LISTINVOICESRESPONSE']._serialized_start=10629 + _globals['_LISTINVOICESRESPONSE']._serialized_end=10696 + _globals['_LISTINVOICESINVOICES']._serialized_start=10699 + _globals['_LISTINVOICESINVOICES']._serialized_end=11551 + _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_start=11267 + _globals['_LISTINVOICESINVOICES_LISTINVOICESINVOICESSTATUS']._serialized_end=11330 + _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_start=11553 + _globals['_LISTINVOICESINVOICESPAID_OUTPOINT']._serialized_end=11648 + _globals['_SENDONIONREQUEST']._serialized_start=11651 + _globals['_SENDONIONREQUEST']._serialized_end=12087 + _globals['_SENDONIONRESPONSE']._serialized_start=12090 + _globals['_SENDONIONRESPONSE']._serialized_end=12705 + _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_start=12517 + _globals['_SENDONIONRESPONSE_SENDONIONSTATUS']._serialized_end=12561 + _globals['_SENDONIONFIRST_HOP']._serialized_start=12707 + _globals['_SENDONIONFIRST_HOP']._serialized_end=12788 + _globals['_LISTSENDPAYSREQUEST']._serialized_start=12791 + _globals['_LISTSENDPAYSREQUEST']._serialized_end=13207 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_start=13032 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSSTATUS']._serialized_end=13091 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_start=13093 + _globals['_LISTSENDPAYSREQUEST_LISTSENDPAYSINDEX']._serialized_end=13138 + _globals['_LISTSENDPAYSRESPONSE']._serialized_start=13209 + _globals['_LISTSENDPAYSRESPONSE']._serialized_end=13276 + _globals['_LISTSENDPAYSPAYMENTS']._serialized_start=13279 + _globals['_LISTSENDPAYSPAYMENTS']._serialized_end=14043 + _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_start=13796 + _globals['_LISTSENDPAYSPAYMENTS_LISTSENDPAYSPAYMENTSSTATUS']._serialized_end=13863 + _globals['_LISTTRANSACTIONSREQUEST']._serialized_start=14045 + _globals['_LISTTRANSACTIONSREQUEST']._serialized_end=14070 + _globals['_LISTTRANSACTIONSRESPONSE']._serialized_start=14072 + _globals['_LISTTRANSACTIONSRESPONSE']._serialized_end=14155 + _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_start=14158 + _globals['_LISTTRANSACTIONSTRANSACTIONS']._serialized_end=14406 + _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_start=14408 + _globals['_LISTTRANSACTIONSTRANSACTIONSINPUTS']._serialized_end=14491 + _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_start=14493 + _globals['_LISTTRANSACTIONSTRANSACTIONSOUTPUTS']._serialized_end=14601 + _globals['_PAYREQUEST']._serialized_start=14604 + _globals['_PAYREQUEST']._serialized_end=15135 + _globals['_PAYRESPONSE']._serialized_start=15138 + _globals['_PAYRESPONSE']._serialized_end=15517 + _globals['_PAYRESPONSE_PAYSTATUS']._serialized_start=15420 + _globals['_PAYRESPONSE_PAYSTATUS']._serialized_end=15470 + _globals['_LISTNODESREQUEST']._serialized_start=15519 + _globals['_LISTNODESREQUEST']._serialized_end=15561 + _globals['_LISTNODESRESPONSE']._serialized_start=15563 + _globals['_LISTNODESRESPONSE']._serialized_end=15618 + _globals['_LISTNODESNODES']._serialized_start=15621 + _globals['_LISTNODESNODES']._serialized_end=15935 + _globals['_LISTNODESNODESOPTION_WILL_FUND']._serialized_start=15938 + _globals['_LISTNODESNODESOPTION_WILL_FUND']._serialized_end=16182 + _globals['_LISTNODESNODESADDRESSES']._serialized_start=16185 + _globals['_LISTNODESNODESADDRESSES']._serialized_end=16417 + _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_start=16325 + _globals['_LISTNODESNODESADDRESSES_LISTNODESNODESADDRESSESTYPE']._serialized_end=16405 + _globals['_WAITANYINVOICEREQUEST']._serialized_start=16419 + _globals['_WAITANYINVOICEREQUEST']._serialized_end=16522 + _globals['_WAITANYINVOICERESPONSE']._serialized_start=16525 + _globals['_WAITANYINVOICERESPONSE']._serialized_end=17228 + _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_start=17019 + _globals['_WAITANYINVOICERESPONSE_WAITANYINVOICESTATUS']._serialized_end=17064 + _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_start=17230 + _globals['_WAITANYINVOICEPAID_OUTPOINT']._serialized_end=17319 + _globals['_WAITINVOICEREQUEST']._serialized_start=17321 + _globals['_WAITINVOICEREQUEST']._serialized_end=17356 + _globals['_WAITINVOICERESPONSE']._serialized_start=17359 + _globals['_WAITINVOICERESPONSE']._serialized_end=18047 + _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_start=17841 + _globals['_WAITINVOICERESPONSE_WAITINVOICESTATUS']._serialized_end=17883 + _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_start=18049 + _globals['_WAITINVOICEPAID_OUTPOINT']._serialized_end=18135 + _globals['_WAITSENDPAYREQUEST']._serialized_start=18138 + _globals['_WAITSENDPAYREQUEST']._serialized_end=18280 + _globals['_WAITSENDPAYRESPONSE']._serialized_start=18283 + _globals['_WAITSENDPAYRESPONSE']._serialized_end=18937 + _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_start=18743 + _globals['_WAITSENDPAYRESPONSE_WAITSENDPAYSTATUS']._serialized_end=18776 + _globals['_NEWADDRREQUEST']._serialized_start=18940 + _globals['_NEWADDRREQUEST']._serialized_end=19091 + _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_start=19024 + _globals['_NEWADDRREQUEST_NEWADDRADDRESSTYPE']._serialized_end=19075 + _globals['_NEWADDRRESPONSE']._serialized_start=19093 + _globals['_NEWADDRRESPONSE']._serialized_end=19170 + _globals['_WITHDRAWREQUEST']._serialized_start=19173 + _globals['_WITHDRAWREQUEST']._serialized_end=19358 + _globals['_WITHDRAWRESPONSE']._serialized_start=19360 + _globals['_WITHDRAWRESPONSE']._serialized_end=19418 + _globals['_KEYSENDREQUEST']._serialized_start=19421 + _globals['_KEYSENDREQUEST']._serialized_end=19807 + _globals['_KEYSENDRESPONSE']._serialized_start=19810 + _globals['_KEYSENDRESPONSE']._serialized_end=20180 + _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_start=20104 + _globals['_KEYSENDRESPONSE_KEYSENDSTATUS']._serialized_end=20133 + _globals['_FUNDPSBTREQUEST']._serialized_start=20183 + _globals['_FUNDPSBTREQUEST']._serialized_end=20603 + _globals['_FUNDPSBTRESPONSE']._serialized_start=20606 + _globals['_FUNDPSBTRESPONSE']._serialized_end=20823 + _globals['_FUNDPSBTRESERVATIONS']._serialized_start=20825 + _globals['_FUNDPSBTRESERVATIONS']._serialized_end=20942 + _globals['_SENDPSBTREQUEST']._serialized_start=20944 + _globals['_SENDPSBTREQUEST']._serialized_end=21009 + _globals['_SENDPSBTRESPONSE']._serialized_start=21011 + _globals['_SENDPSBTRESPONSE']._serialized_end=21055 + _globals['_SIGNPSBTREQUEST']._serialized_start=21057 + _globals['_SIGNPSBTREQUEST']._serialized_end=21106 + _globals['_SIGNPSBTRESPONSE']._serialized_start=21108 + _globals['_SIGNPSBTRESPONSE']._serialized_end=21147 + _globals['_UTXOPSBTREQUEST']._serialized_start=21150 + _globals['_UTXOPSBTREQUEST']._serialized_end=21566 + _globals['_UTXOPSBTRESPONSE']._serialized_start=21569 + _globals['_UTXOPSBTRESPONSE']._serialized_end=21786 + _globals['_UTXOPSBTRESERVATIONS']._serialized_start=21788 + _globals['_UTXOPSBTRESERVATIONS']._serialized_end=21905 + _globals['_TXDISCARDREQUEST']._serialized_start=21907 + _globals['_TXDISCARDREQUEST']._serialized_end=21939 + _globals['_TXDISCARDRESPONSE']._serialized_start=21941 + _globals['_TXDISCARDRESPONSE']._serialized_end=21995 + _globals['_TXPREPAREREQUEST']._serialized_start=21998 + _globals['_TXPREPAREREQUEST']._serialized_end=22162 + _globals['_TXPREPARERESPONSE']._serialized_start=22164 + _globals['_TXPREPARERESPONSE']._serialized_end=22232 + _globals['_TXSENDREQUEST']._serialized_start=22234 + _globals['_TXSENDREQUEST']._serialized_end=22263 + _globals['_TXSENDRESPONSE']._serialized_start=22265 + _globals['_TXSENDRESPONSE']._serialized_end=22321 + _globals['_LISTPEERCHANNELSREQUEST']._serialized_start=22323 + _globals['_LISTPEERCHANNELSREQUEST']._serialized_end=22372 + _globals['_LISTPEERCHANNELSRESPONSE']._serialized_start=22374 + _globals['_LISTPEERCHANNELSRESPONSE']._serialized_end=22449 + _globals['_LISTPEERCHANNELSCHANNELS']._serialized_start=22452 + _globals['_LISTPEERCHANNELSCHANNELS']._serialized_end=26067 + _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_start=24661 + _globals['_LISTPEERCHANNELSCHANNELS_LISTPEERCHANNELSCHANNELSSTATE']._serialized_end=25045 + _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_start=26070 + _globals['_LISTPEERCHANNELSCHANNELSUPDATES']._serialized_end=26252 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_start=26255 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESLOCAL']._serialized_end=26614 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_start=26617 + _globals['_LISTPEERCHANNELSCHANNELSUPDATESREMOTE']._serialized_end=26977 + _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_start=26979 + _globals['_LISTPEERCHANNELSCHANNELSFEERATE']._serialized_end=27072 + _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_start=27075 + _globals['_LISTPEERCHANNELSCHANNELSINFLIGHT']._serialized_end=27459 + _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_start=27462 + _globals['_LISTPEERCHANNELSCHANNELSFUNDING']._serialized_end=27800 + _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_start=27802 + _globals['_LISTPEERCHANNELSCHANNELSALIAS']._serialized_end=27895 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_start=27898 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS']._serialized_end=28380 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_start=28219 + _globals['_LISTPEERCHANNELSCHANNELSHTLCS_LISTPEERCHANNELSCHANNELSHTLCSDIRECTION']._serialized_end=28276 + _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_start=28382 + _globals['_LISTCLOSEDCHANNELSREQUEST']._serialized_end=28433 + _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_start=28435 + _globals['_LISTCLOSEDCHANNELSRESPONSE']._serialized_end=28526 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_start=28529 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS']._serialized_end=29795 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_start=29466 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELS_LISTCLOSEDCHANNELSCLOSEDCHANNELSCLOSE_CAUSE']._serialized_end=29584 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_start=29797 + _globals['_LISTCLOSEDCHANNELSCLOSEDCHANNELSALIAS']._serialized_end=29898 + _globals['_DECODEPAYREQUEST']._serialized_start=29900 + _globals['_DECODEPAYREQUEST']._serialized_end=29976 + _globals['_DECODEPAYRESPONSE']._serialized_start=29979 + _globals['_DECODEPAYRESPONSE']._serialized_end=30504 + _globals['_DECODEPAYFALLBACKS']._serialized_start=30507 + _globals['_DECODEPAYFALLBACKS']._serialized_end=30715 + _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_start=30628 + _globals['_DECODEPAYFALLBACKS_DECODEPAYFALLBACKSTYPE']._serialized_end=30706 + _globals['_DECODEPAYEXTRA']._serialized_start=30717 + _globals['_DECODEPAYEXTRA']._serialized_end=30760 + _globals['_DECODEREQUEST']._serialized_start=30762 + _globals['_DECODEREQUEST']._serialized_end=30793 + _globals['_DECODERESPONSE']._serialized_start=30796 + _globals['_DECODERESPONSE']._serialized_end=35331 + _globals['_DECODERESPONSE_DECODETYPE']._serialized_start=33524 + _globals['_DECODERESPONSE_DECODETYPE']._serialized_end=33655 + _globals['_DECODEOFFER_PATHS']._serialized_start=35333 + _globals['_DECODEOFFER_PATHS']._serialized_end=35393 + _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_start=35396 + _globals['_DECODEOFFER_RECURRENCEPAYWINDOW']._serialized_end=35534 + _globals['_DECODEINVOICE_PATHSPATH']._serialized_start=35536 + _globals['_DECODEINVOICE_PATHSPATH']._serialized_end=35620 + _globals['_DECODEINVOICE_FALLBACKS']._serialized_start=35622 + _globals['_DECODEINVOICE_FALLBACKS']._serialized_end=35711 + _globals['_DECODEFALLBACKS']._serialized_start=35714 + _globals['_DECODEFALLBACKS']._serialized_end=36012 + _globals['_DECODEFALLBACKS_DECODEFALLBACKSTYPE']._serialized_start=35882 + _globals['_DECODEFALLBACKS_DECODEFALLBACKSTYPE']._serialized_end=35957 + _globals['_DECODEEXTRA']._serialized_start=36014 + _globals['_DECODEEXTRA']._serialized_end=36054 + _globals['_DECODERESTRICTIONS']._serialized_start=36056 + _globals['_DECODERESTRICTIONS']._serialized_end=36115 + _globals['_DISCONNECTREQUEST']._serialized_start=36117 + _globals['_DISCONNECTREQUEST']._serialized_end=36178 + _globals['_DISCONNECTRESPONSE']._serialized_start=36180 + _globals['_DISCONNECTRESPONSE']._serialized_end=36200 + _globals['_FEERATESREQUEST']._serialized_start=36202 + _globals['_FEERATESREQUEST']._serialized_end=36309 + _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_start=36272 + _globals['_FEERATESREQUEST_FEERATESSTYLE']._serialized_end=36309 + _globals['_FEERATESRESPONSE']._serialized_start=36312 + _globals['_FEERATESRESPONSE']._serialized_end=36596 + _globals['_FEERATESPERKB']._serialized_start=36599 + _globals['_FEERATESPERKB']._serialized_end=37066 + _globals['_FEERATESPERKBESTIMATES']._serialized_start=37069 + _globals['_FEERATESPERKBESTIMATES']._serialized_end=37219 + _globals['_FEERATESPERKW']._serialized_start=37222 + _globals['_FEERATESPERKW']._serialized_end=37689 + _globals['_FEERATESPERKWESTIMATES']._serialized_start=37692 + _globals['_FEERATESPERKWESTIMATES']._serialized_end=37842 + _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_start=37845 + _globals['_FEERATESONCHAIN_FEE_ESTIMATES']._serialized_end=38128 + _globals['_FETCHINVOICEREQUEST']._serialized_start=38131 + _globals['_FETCHINVOICEREQUEST']._serialized_end=38492 + _globals['_FETCHINVOICERESPONSE']._serialized_start=38495 + _globals['_FETCHINVOICERESPONSE']._serialized_end=38649 + _globals['_FETCHINVOICECHANGES']._serialized_start=38652 + _globals['_FETCHINVOICECHANGES']._serialized_end=38910 + _globals['_FETCHINVOICENEXT_PERIOD']._serialized_start=38912 + _globals['_FETCHINVOICENEXT_PERIOD']._serialized_end=39038 + _globals['_FUNDCHANNELREQUEST']._serialized_start=39041 + _globals['_FUNDCHANNELREQUEST']._serialized_end=39548 + _globals['_FUNDCHANNELRESPONSE']._serialized_start=39551 + _globals['_FUNDCHANNELRESPONSE']._serialized_end=39780 + _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_start=39782 + _globals['_FUNDCHANNELCHANNEL_TYPE']._serialized_end=39858 + _globals['_GETROUTEREQUEST']._serialized_start=39861 + _globals['_GETROUTEREQUEST']._serialized_end=40097 + _globals['_GETROUTERESPONSE']._serialized_start=40099 + _globals['_GETROUTERESPONSE']._serialized_end=40152 + _globals['_GETROUTEROUTE']._serialized_start=40155 + _globals['_GETROUTEROUTE']._serialized_end=40352 + _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_start=40323 + _globals['_GETROUTEROUTE_GETROUTEROUTESTYLE']._serialized_end=40352 + _globals['_LISTFORWARDSREQUEST']._serialized_start=40355 + _globals['_LISTFORWARDSREQUEST']._serialized_end=40794 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_start=40599 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSSTATUS']._serialized_end=40675 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_start=40677 + _globals['_LISTFORWARDSREQUEST_LISTFORWARDSINDEX']._serialized_end=40722 + _globals['_LISTFORWARDSRESPONSE']._serialized_start=40796 + _globals['_LISTFORWARDSRESPONSE']._serialized_end=40863 + _globals['_LISTFORWARDSFORWARDS']._serialized_start=40866 + _globals['_LISTFORWARDSFORWARDS']._serialized_end=41686 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_start=41387 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTATUS']._serialized_end=41471 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_start=41473 + _globals['_LISTFORWARDSFORWARDS_LISTFORWARDSFORWARDSSTYLE']._serialized_end=41521 + _globals['_LISTOFFERSREQUEST']._serialized_start=41688 + _globals['_LISTOFFERSREQUEST']._serialized_end=41785 + _globals['_LISTOFFERSRESPONSE']._serialized_start=41787 + _globals['_LISTOFFERSRESPONSE']._serialized_end=41846 + _globals['_LISTOFFERSOFFERS']._serialized_start=41849 + _globals['_LISTOFFERSOFFERS']._serialized_end=41981 + _globals['_LISTPAYSREQUEST']._serialized_start=41984 + _globals['_LISTPAYSREQUEST']._serialized_end=42203 + _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_start=42109 + _globals['_LISTPAYSREQUEST_LISTPAYSSTATUS']._serialized_end=42164 + _globals['_LISTPAYSRESPONSE']._serialized_start=42205 + _globals['_LISTPAYSRESPONSE']._serialized_end=42256 + _globals['_LISTPAYSPAYS']._serialized_start=42259 + _globals['_LISTPAYSPAYS']._serialized_end=42898 + _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_start=42673 + _globals['_LISTPAYSPAYS_LISTPAYSPAYSSTATUS']._serialized_end=42732 + _globals['_LISTHTLCSREQUEST']._serialized_start=42900 + _globals['_LISTHTLCSREQUEST']._serialized_end=42942 + _globals['_LISTHTLCSRESPONSE']._serialized_start=42944 + _globals['_LISTHTLCSRESPONSE']._serialized_end=42999 + _globals['_LISTHTLCSHTLCS']._serialized_start=43002 + _globals['_LISTHTLCSHTLCS']._serialized_end=43267 + _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_start=43225 + _globals['_LISTHTLCSHTLCS_LISTHTLCSHTLCSDIRECTION']._serialized_end=43267 + _globals['_OFFERREQUEST']._serialized_start=43270 + _globals['_OFFERREQUEST']._serialized_end=43719 + _globals['_OFFERRESPONSE']._serialized_start=43722 + _globals['_OFFERRESPONSE']._serialized_end=43868 + _globals['_PINGREQUEST']._serialized_start=43870 + _globals['_PINGREQUEST']._serialized_end=43959 + _globals['_PINGRESPONSE']._serialized_start=43961 + _globals['_PINGRESPONSE']._serialized_end=43991 + _globals['_SENDCUSTOMMSGREQUEST']._serialized_start=43993 + _globals['_SENDCUSTOMMSGREQUEST']._serialized_end=44045 + _globals['_SENDCUSTOMMSGRESPONSE']._serialized_start=44047 + _globals['_SENDCUSTOMMSGRESPONSE']._serialized_end=44086 + _globals['_SETCHANNELREQUEST']._serialized_start=44089 + _globals['_SETCHANNELREQUEST']._serialized_end=44387 + _globals['_SETCHANNELRESPONSE']._serialized_start=44389 + _globals['_SETCHANNELRESPONSE']._serialized_end=44452 + _globals['_SETCHANNELCHANNELS']._serialized_start=44455 + _globals['_SETCHANNELCHANNELS']._serialized_end=44913 + _globals['_SIGNINVOICEREQUEST']._serialized_start=44915 + _globals['_SIGNINVOICEREQUEST']._serialized_end=44954 + _globals['_SIGNINVOICERESPONSE']._serialized_start=44956 + _globals['_SIGNINVOICERESPONSE']._serialized_end=44993 + _globals['_SIGNMESSAGEREQUEST']._serialized_start=44995 + _globals['_SIGNMESSAGEREQUEST']._serialized_end=45032 + _globals['_SIGNMESSAGERESPONSE']._serialized_start=45034 + _globals['_SIGNMESSAGERESPONSE']._serialized_end=45104 + _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_start=45106 + _globals['_WAITBLOCKHEIGHTREQUEST']._serialized_end=45185 + _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_start=45187 + _globals['_WAITBLOCKHEIGHTRESPONSE']._serialized_end=45233 + _globals['_WAITREQUEST']._serialized_start=45236 + _globals['_WAITREQUEST']._serialized_end=45485 + _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_start=45372 + _globals['_WAITREQUEST_WAITSUBSYSTEM']._serialized_end=45429 + _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_start=45431 + _globals['_WAITREQUEST_WAITINDEXNAME']._serialized_end=45485 + _globals['_WAITRESPONSE']._serialized_start=45488 + _globals['_WAITRESPONSE']._serialized_end=45767 + _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_start=45372 + _globals['_WAITRESPONSE_WAITSUBSYSTEM']._serialized_end=45429 + _globals['_WAITDETAILS']._serialized_start=45770 + _globals['_WAITDETAILS']._serialized_end=46406 + _globals['_WAITDETAILS_WAITDETAILSSTATUS']._serialized_start=46112 + _globals['_WAITDETAILS_WAITDETAILSSTATUS']._serialized_end=46249 + _globals['_STOPREQUEST']._serialized_start=46408 + _globals['_STOPREQUEST']._serialized_end=46421 + _globals['_STOPRESPONSE']._serialized_start=46423 + _globals['_STOPRESPONSE']._serialized_end=46536 + _globals['_STOPRESPONSE_STOPRESULT']._serialized_start=46490 + _globals['_STOPRESPONSE_STOPRESULT']._serialized_end=46525 + _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_start=46539 + _globals['_PREAPPROVEKEYSENDREQUEST']._serialized_end=46706 + _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_start=46708 + _globals['_PREAPPROVEKEYSENDRESPONSE']._serialized_end=46735 + _globals['_PREAPPROVEINVOICEREQUEST']._serialized_start=46737 + _globals['_PREAPPROVEINVOICEREQUEST']._serialized_end=46795 + _globals['_PREAPPROVEINVOICERESPONSE']._serialized_start=46797 + _globals['_PREAPPROVEINVOICERESPONSE']._serialized_end=46824 + _globals['_STATICBACKUPREQUEST']._serialized_start=46826 + _globals['_STATICBACKUPREQUEST']._serialized_end=46847 + _globals['_STATICBACKUPRESPONSE']._serialized_start=46849 + _globals['_STATICBACKUPRESPONSE']._serialized_end=46884 + _globals['_BKPRLISTINCOMEREQUEST']._serialized_start=46887 + _globals['_BKPRLISTINCOMEREQUEST']._serialized_end=47038 + _globals['_BKPRLISTINCOMERESPONSE']._serialized_start=47040 + _globals['_BKPRLISTINCOMERESPONSE']._serialized_end=47121 + _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_start=47124 + _globals['_BKPRLISTINCOMEINCOME_EVENTS']._serialized_end=47433 + _globals['_NODE']._serialized_start=47436 + _globals['_NODE']._serialized_end=51544 # @@protoc_insertion_point(module_scope) diff --git a/contrib/pyln-testing/pyln/testing/grpc2py.py b/contrib/pyln-testing/pyln/testing/grpc2py.py index 0027eda3043b..23122be6de0a 100644 --- a/contrib/pyln-testing/pyln/testing/grpc2py.py +++ b/contrib/pyln-testing/pyln/testing/grpc2py.py @@ -18,20 +18,11 @@ def remove_default(d): return {k: v for k, v in d.items() if v is not None and v != ""} -def getinfo_our_features2py(m): - return remove_default({ - "init": hexlify(m.init), # PrimitiveField in generate_composite - "node": hexlify(m.node), # PrimitiveField in generate_composite - "channel": hexlify(m.channel), # PrimitiveField in generate_composite - "invoice": hexlify(m.invoice), # PrimitiveField in generate_composite - }) - - def getinfo_address2py(m): return remove_default({ "type": str(m.item_type), # EnumField in generate_composite - "port": m.port, # PrimitiveField in generate_composite "address": m.address, # PrimitiveField in generate_composite + "port": m.port, # PrimitiveField in generate_composite }) @@ -41,25 +32,35 @@ def getinfo_binding2py(m): "address": m.address, # PrimitiveField in generate_composite "port": m.port, # PrimitiveField in generate_composite "socket": m.socket, # PrimitiveField in generate_composite + "subtype": m.subtype, # PrimitiveField in generate_composite + }) + + +def getinfo_our_features2py(m): + return remove_default({ + "channel": hexlify(m.channel), # PrimitiveField in generate_composite + "init": hexlify(m.init), # PrimitiveField in generate_composite + "invoice": hexlify(m.invoice), # PrimitiveField in generate_composite + "node": hexlify(m.node), # PrimitiveField in generate_composite }) def getinfo2py(m): return remove_default({ - "id": hexlify(m.id), # PrimitiveField in generate_composite + "address": [getinfo_address2py(i) for i in m.address], # ArrayField[composite] in generate_composite + "binding": [getinfo_binding2py(i) for i in m.binding], # ArrayField[composite] in generate_composite "alias": m.alias, # PrimitiveField in generate_composite + "blockheight": m.blockheight, # PrimitiveField in generate_composite "color": hexlify(m.color), # PrimitiveField in generate_composite - "num_peers": m.num_peers, # PrimitiveField in generate_composite - "num_pending_channels": m.num_pending_channels, # PrimitiveField in generate_composite + "fees_collected_msat": amount2msat(m.fees_collected_msat), # PrimitiveField in generate_composite + "id": hexlify(m.id), # PrimitiveField in generate_composite + "lightning_dir": m.lightning_dir, # PrimitiveField in generate_composite + "network": m.network, # PrimitiveField in generate_composite "num_active_channels": m.num_active_channels, # PrimitiveField in generate_composite "num_inactive_channels": m.num_inactive_channels, # PrimitiveField in generate_composite + "num_peers": m.num_peers, # PrimitiveField in generate_composite + "num_pending_channels": m.num_pending_channels, # PrimitiveField in generate_composite "version": m.version, # PrimitiveField in generate_composite - "lightning_dir": m.lightning_dir, # PrimitiveField in generate_composite - "blockheight": m.blockheight, # PrimitiveField in generate_composite - "network": m.network, # PrimitiveField in generate_composite - "fees_collected_msat": amount2msat(m.fees_collected_msat), # PrimitiveField in generate_composite - "address": [getinfo_address2py(i) for i in m.address], # ArrayField[composite] in generate_composite - "binding": [getinfo_binding2py(i) for i in m.binding], # ArrayField[composite] in generate_composite "warning_bitcoind_sync": m.warning_bitcoind_sync, # PrimitiveField in generate_composite "warning_lightningd_sync": m.warning_lightningd_sync, # PrimitiveField in generate_composite }) @@ -68,24 +69,24 @@ def getinfo2py(m): def listpeers_peers_log2py(m): return remove_default({ "type": str(m.item_type), # EnumField in generate_composite - "num_skipped": m.num_skipped, # PrimitiveField in generate_composite - "time": m.time, # PrimitiveField in generate_composite - "source": m.source, # PrimitiveField in generate_composite + "data": hexlify(m.data), # PrimitiveField in generate_composite "log": m.log, # PrimitiveField in generate_composite "node_id": hexlify(m.node_id), # PrimitiveField in generate_composite - "data": hexlify(m.data), # PrimitiveField in generate_composite + "num_skipped": m.num_skipped, # PrimitiveField in generate_composite + "source": m.source, # PrimitiveField in generate_composite + "time": m.time, # PrimitiveField in generate_composite }) def listpeers_peers2py(m): return remove_default({ - "id": hexlify(m.id), # PrimitiveField in generate_composite - "connected": m.connected, # PrimitiveField in generate_composite - "num_channels": m.num_channels, # PrimitiveField in generate_composite "log": [listpeers_peers_log2py(i) for i in m.log], # ArrayField[composite] in generate_composite "netaddr": [m.netaddr for i in m.netaddr], # ArrayField[primitive] in generate_composite - "remote_addr": m.remote_addr, # PrimitiveField in generate_composite + "connected": m.connected, # PrimitiveField in generate_composite "features": hexlify(m.features), # PrimitiveField in generate_composite + "id": hexlify(m.id), # PrimitiveField in generate_composite + "num_channels": m.num_channels, # PrimitiveField in generate_composite + "remote_addr": m.remote_addr, # PrimitiveField in generate_composite }) @@ -95,81 +96,82 @@ def listpeers2py(m): }) -def listfunds_outputs2py(m): +def listfunds_channels2py(m): return remove_default({ - "txid": hexlify(m.txid), # PrimitiveField in generate_composite - "output": m.output, # PrimitiveField in generate_composite + "state": str(m.state), # EnumField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite - "scriptpubkey": hexlify(m.scriptpubkey), # PrimitiveField in generate_composite - "address": m.address, # PrimitiveField in generate_composite - "redeemscript": hexlify(m.redeemscript), # PrimitiveField in generate_composite - "status": str(m.status), # EnumField in generate_composite - "reserved": m.reserved, # PrimitiveField in generate_composite - "blockheight": m.blockheight, # PrimitiveField in generate_composite + "channel_id": hexlify(m.channel_id), # PrimitiveField in generate_composite + "connected": m.connected, # PrimitiveField in generate_composite + "funding_output": m.funding_output, # PrimitiveField in generate_composite + "funding_txid": hexlify(m.funding_txid), # PrimitiveField in generate_composite + "our_amount_msat": amount2msat(m.our_amount_msat), # PrimitiveField in generate_composite + "peer_id": hexlify(m.peer_id), # PrimitiveField in generate_composite + "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite }) -def listfunds_channels2py(m): +def listfunds_outputs2py(m): return remove_default({ - "peer_id": hexlify(m.peer_id), # PrimitiveField in generate_composite - "our_amount_msat": amount2msat(m.our_amount_msat), # PrimitiveField in generate_composite + "status": str(m.status), # EnumField in generate_composite + "address": m.address, # PrimitiveField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite - "funding_txid": hexlify(m.funding_txid), # PrimitiveField in generate_composite - "funding_output": m.funding_output, # PrimitiveField in generate_composite - "connected": m.connected, # PrimitiveField in generate_composite - "state": str(m.state), # EnumField in generate_composite - "channel_id": hexlify(m.channel_id), # PrimitiveField in generate_composite - "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite + "blockheight": m.blockheight, # PrimitiveField in generate_composite + "output": m.output, # PrimitiveField in generate_composite + "redeemscript": hexlify(m.redeemscript), # PrimitiveField in generate_composite + "reserved": m.reserved, # PrimitiveField in generate_composite + "reserved_to_block": m.reserved_to_block, # PrimitiveField in generate_composite + "scriptpubkey": hexlify(m.scriptpubkey), # PrimitiveField in generate_composite + "txid": hexlify(m.txid), # PrimitiveField in generate_composite }) def listfunds2py(m): return remove_default({ - "outputs": [listfunds_outputs2py(i) for i in m.outputs], # ArrayField[composite] in generate_composite "channels": [listfunds_channels2py(i) for i in m.channels], # ArrayField[composite] in generate_composite + "outputs": [listfunds_outputs2py(i) for i in m.outputs], # ArrayField[composite] in generate_composite }) def sendpay2py(m): return remove_default({ - "created_index": m.created_index, # PrimitiveField in generate_composite - "updated_index": m.updated_index, # PrimitiveField in generate_composite - "id": m.id, # PrimitiveField in generate_composite - "groupid": m.groupid, # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "status": str(m.status), # EnumField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite - "destination": hexlify(m.destination), # PrimitiveField in generate_composite - "created_at": m.created_at, # PrimitiveField in generate_composite - "completed_at": m.completed_at, # PrimitiveField in generate_composite "amount_sent_msat": amount2msat(m.amount_sent_msat), # PrimitiveField in generate_composite - "label": m.label, # PrimitiveField in generate_composite - "partid": m.partid, # PrimitiveField in generate_composite "bolt11": m.bolt11, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite - "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite + "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 + "destination": hexlify(m.destination), # PrimitiveField in generate_composite + "groupid": m.groupid, # PrimitiveField in generate_composite + "id": m.id, # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite "message": m.message, # PrimitiveField in generate_composite + "partid": m.partid, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite + "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite + "updated_index": m.updated_index, # PrimitiveField in generate_composite }) def listchannels_channels2py(m): return remove_default({ - "source": hexlify(m.source), # PrimitiveField in generate_composite - "destination": hexlify(m.destination), # PrimitiveField in generate_composite - "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite - "direction": m.direction, # PrimitiveField in generate_composite - "public": m.public, # PrimitiveField in generate_composite - "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite - "message_flags": m.message_flags, # PrimitiveField in generate_composite - "channel_flags": m.channel_flags, # PrimitiveField in generate_composite "active": m.active, # PrimitiveField in generate_composite - "last_update": m.last_update, # PrimitiveField in generate_composite + "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite "base_fee_millisatoshi": m.base_fee_millisatoshi, # PrimitiveField in generate_composite - "fee_per_millionth": m.fee_per_millionth, # PrimitiveField in generate_composite + "channel_flags": m.channel_flags, # PrimitiveField in generate_composite "delay": m.delay, # PrimitiveField in generate_composite - "htlc_minimum_msat": amount2msat(m.htlc_minimum_msat), # PrimitiveField in generate_composite - "htlc_maximum_msat": amount2msat(m.htlc_maximum_msat), # PrimitiveField in generate_composite + "destination": hexlify(m.destination), # PrimitiveField in generate_composite + "direction": m.direction, # PrimitiveField in generate_composite "features": hexlify(m.features), # PrimitiveField in generate_composite + "fee_per_millionth": m.fee_per_millionth, # 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 + "last_update": m.last_update, # PrimitiveField in generate_composite + "message_flags": m.message_flags, # PrimitiveField in generate_composite + "public": m.public, # PrimitiveField in generate_composite + "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite + "source": hexlify(m.source), # PrimitiveField in generate_composite }) @@ -186,16 +188,16 @@ def addgossip2py(m): def autocleaninvoice2py(m): return remove_default({ + "cycle_seconds": m.cycle_seconds, # PrimitiveField in generate_composite "enabled": m.enabled, # PrimitiveField in generate_composite "expired_by": m.expired_by, # PrimitiveField in generate_composite - "cycle_seconds": m.cycle_seconds, # PrimitiveField in generate_composite }) def checkmessage2py(m): return remove_default({ - "verified": m.verified, # PrimitiveField in generate_composite "pubkey": hexlify(m.pubkey), # PrimitiveField in generate_composite + "verified": m.verified, # PrimitiveField in generate_composite }) @@ -210,44 +212,44 @@ def close2py(m): def connect_address2py(m): return remove_default({ "type": str(m.item_type), # EnumField in generate_composite - "socket": m.socket, # PrimitiveField in generate_composite "address": m.address, # PrimitiveField in generate_composite "port": m.port, # PrimitiveField in generate_composite + "socket": m.socket, # PrimitiveField in generate_composite }) def connect2py(m): return remove_default({ - "id": hexlify(m.id), # PrimitiveField in generate_composite - "features": hexlify(m.features), # PrimitiveField in generate_composite "direction": str(m.direction), # EnumField in generate_composite + "features": hexlify(m.features), # PrimitiveField in generate_composite + "id": hexlify(m.id), # PrimitiveField in generate_composite }) def createinvoice_paid_outpoint2py(m): return remove_default({ - "txid": hexlify(m.txid), # PrimitiveField in generate_composite "outnum": m.outnum, # PrimitiveField in generate_composite + "txid": hexlify(m.txid), # PrimitiveField in generate_composite }) def createinvoice2py(m): return remove_default({ - "label": m.label, # PrimitiveField in generate_composite + "status": str(m.status), # EnumField in generate_composite + "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "amount_received_msat": amount2msat(m.amount_received_msat), # PrimitiveField in generate_composite "bolt11": m.bolt11, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite - "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite - "status": str(m.status), # EnumField in generate_composite + "created_index": m.created_index, # PrimitiveField in generate_composite "description": m.description, # PrimitiveField in generate_composite "expires_at": m.expires_at, # PrimitiveField in generate_composite - "created_index": m.created_index, # PrimitiveField in generate_composite - "pay_index": m.pay_index, # PrimitiveField in generate_composite - "amount_received_msat": amount2msat(m.amount_received_msat), # PrimitiveField in generate_composite + "invreq_payer_note": m.invreq_payer_note, # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite + "local_offer_id": hexlify(m.local_offer_id), # PrimitiveField in generate_composite "paid_at": m.paid_at, # PrimitiveField in generate_composite + "pay_index": m.pay_index, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite - "local_offer_id": hexlify(m.local_offer_id), # PrimitiveField in generate_composite - "invreq_payer_note": m.invreq_payer_note, # PrimitiveField in generate_composite }) @@ -274,8 +276,8 @@ def datastoreusage2py(m): def createonion2py(m): return remove_default({ - "onion": hexlify(m.onion), # PrimitiveField in generate_composite "shared_secrets": [hexlify(m.shared_secrets) for i in hexlify(m.shared_secrets)], # ArrayField[primitive] in generate_composite + "onion": hexlify(m.onion), # PrimitiveField in generate_composite }) @@ -290,33 +292,37 @@ def deldatastore2py(m): def delinvoice2py(m): return remove_default({ - "label": m.label, # PrimitiveField in generate_composite + "status": str(m.status), # EnumField in generate_composite + "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "amount_received_msat": amount2msat(m.amount_received_msat), # PrimitiveField in generate_composite "bolt11": m.bolt11, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite - "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite - "description": m.description, # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "created_index": m.created_index, # PrimitiveField in generate_composite - "updated_index": m.updated_index, # PrimitiveField in generate_composite - "status": str(m.status), # EnumField in generate_composite + "description": m.description, # PrimitiveField in generate_composite "expires_at": m.expires_at, # PrimitiveField in generate_composite - "local_offer_id": hexlify(m.local_offer_id), # PrimitiveField in generate_composite "invreq_payer_note": m.invreq_payer_note, # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite + "local_offer_id": hexlify(m.local_offer_id), # PrimitiveField in generate_composite + "paid_at": m.paid_at, # PrimitiveField in generate_composite + "pay_index": m.pay_index, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite + "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite + "updated_index": m.updated_index, # PrimitiveField in generate_composite }) def invoice2py(m): return remove_default({ "bolt11": m.bolt11, # PrimitiveField in generate_composite + "created_index": m.created_index, # PrimitiveField in generate_composite + "expires_at": m.expires_at, # PrimitiveField in generate_composite "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "payment_secret": hexlify(m.payment_secret), # PrimitiveField in generate_composite - "expires_at": m.expires_at, # PrimitiveField in generate_composite - "created_index": m.created_index, # PrimitiveField in generate_composite "warning_capacity": m.warning_capacity, # PrimitiveField in generate_composite - "warning_offline": m.warning_offline, # PrimitiveField in generate_composite "warning_deadends": m.warning_deadends, # PrimitiveField in generate_composite - "warning_private_unused": m.warning_private_unused, # PrimitiveField in generate_composite "warning_mpp": m.warning_mpp, # PrimitiveField in generate_composite + "warning_offline": m.warning_offline, # PrimitiveField in generate_composite + "warning_private_unused": m.warning_private_unused, # PrimitiveField in generate_composite }) @@ -337,29 +343,29 @@ def listdatastore2py(m): def listinvoices_invoices_paid_outpoint2py(m): return remove_default({ - "txid": hexlify(m.txid), # PrimitiveField in generate_composite "outnum": m.outnum, # PrimitiveField in generate_composite + "txid": hexlify(m.txid), # PrimitiveField in generate_composite }) def listinvoices_invoices2py(m): return remove_default({ - "label": m.label, # PrimitiveField in generate_composite - "description": m.description, # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "status": str(m.status), # EnumField in generate_composite - "expires_at": m.expires_at, # PrimitiveField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "amount_received_msat": amount2msat(m.amount_received_msat), # PrimitiveField in generate_composite "bolt11": m.bolt11, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite - "local_offer_id": hexlify(m.local_offer_id), # PrimitiveField in generate_composite - "invreq_payer_note": m.invreq_payer_note, # PrimitiveField in generate_composite "created_index": m.created_index, # PrimitiveField in generate_composite - "updated_index": m.updated_index, # PrimitiveField in generate_composite - "pay_index": m.pay_index, # PrimitiveField in generate_composite - "amount_received_msat": amount2msat(m.amount_received_msat), # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "expires_at": m.expires_at, # PrimitiveField in generate_composite + "invreq_payer_note": m.invreq_payer_note, # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite + "local_offer_id": hexlify(m.local_offer_id), # PrimitiveField in generate_composite "paid_at": m.paid_at, # PrimitiveField in generate_composite + "pay_index": m.pay_index, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite + "updated_index": m.updated_index, # PrimitiveField in generate_composite }) @@ -371,44 +377,44 @@ def listinvoices2py(m): def sendonion2py(m): return remove_default({ - "created_index": m.created_index, # PrimitiveField in generate_composite - "id": m.id, # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "status": str(m.status), # EnumField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite - "destination": hexlify(m.destination), # PrimitiveField in generate_composite - "created_at": m.created_at, # PrimitiveField in generate_composite "amount_sent_msat": amount2msat(m.amount_sent_msat), # PrimitiveField in generate_composite - "label": m.label, # PrimitiveField in generate_composite "bolt11": m.bolt11, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite + "created_at": m.created_at, # PrimitiveField in generate_composite + "created_index": m.created_index, # PrimitiveField in generate_composite + "destination": hexlify(m.destination), # PrimitiveField in generate_composite + "id": m.id, # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite + "message": m.message, # PrimitiveField in generate_composite "partid": m.partid, # PrimitiveField in generate_composite - "updated_index": m.updated_index, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite - "message": m.message, # PrimitiveField in generate_composite + "updated_index": m.updated_index, # PrimitiveField in generate_composite }) def listsendpays_payments2py(m): return remove_default({ - "created_index": m.created_index, # PrimitiveField in generate_composite - "id": m.id, # PrimitiveField in generate_composite - "groupid": m.groupid, # PrimitiveField in generate_composite - "partid": m.partid, # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite - "updated_index": m.updated_index, # PrimitiveField in generate_composite "status": str(m.status), # EnumField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite - "destination": hexlify(m.destination), # PrimitiveField in generate_composite - "created_at": m.created_at, # PrimitiveField in generate_composite "amount_sent_msat": amount2msat(m.amount_sent_msat), # PrimitiveField in generate_composite - "label": m.label, # PrimitiveField in generate_composite "bolt11": m.bolt11, # PrimitiveField in generate_composite - "description": m.description, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite "completed_at": m.completed_at, # PrimitiveField in generate_composite - "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite + "created_at": m.created_at, # PrimitiveField in generate_composite + "created_index": m.created_index, # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "destination": hexlify(m.destination), # PrimitiveField in generate_composite "erroronion": hexlify(m.erroronion), # PrimitiveField in generate_composite + "groupid": m.groupid, # PrimitiveField in generate_composite + "id": m.id, # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite + "partid": m.partid, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite + "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite + "updated_index": m.updated_index, # PrimitiveField in generate_composite }) @@ -420,30 +426,30 @@ def listsendpays2py(m): def listtransactions_transactions_inputs2py(m): return remove_default({ - "txid": hexlify(m.txid), # PrimitiveField in generate_composite "index": m.index, # PrimitiveField in generate_composite "sequence": m.sequence, # PrimitiveField in generate_composite + "txid": hexlify(m.txid), # PrimitiveField in generate_composite }) def listtransactions_transactions_outputs2py(m): return remove_default({ - "index": m.index, # PrimitiveField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "index": m.index, # PrimitiveField in generate_composite "script_pub_key": hexlify(m.script_pub_key), # PrimitiveField in generate_composite }) def listtransactions_transactions2py(m): return remove_default({ + "inputs": [listtransactions_transactions_inputs2py(i) for i in m.inputs], # ArrayField[composite] in generate_composite + "outputs": [listtransactions_transactions_outputs2py(i) for i in m.outputs], # ArrayField[composite] in generate_composite + "blockheight": m.blockheight, # PrimitiveField in generate_composite "hash": hexlify(m.hash), # PrimitiveField in generate_composite + "locktime": m.locktime, # PrimitiveField in generate_composite "rawtx": hexlify(m.rawtx), # PrimitiveField in generate_composite - "blockheight": m.blockheight, # PrimitiveField in generate_composite "txindex": m.txindex, # PrimitiveField in generate_composite - "locktime": m.locktime, # PrimitiveField in generate_composite "version": m.version, # PrimitiveField in generate_composite - "inputs": [listtransactions_transactions_inputs2py(i) for i in m.inputs], # ArrayField[composite] in generate_composite - "outputs": [listtransactions_transactions_outputs2py(i) for i in m.outputs], # ArrayField[composite] in generate_composite }) @@ -455,34 +461,45 @@ def listtransactions2py(m): def pay2py(m): return remove_default({ - "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite - "destination": hexlify(m.destination), # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite - "created_at": m.created_at, # PrimitiveField in generate_composite - "parts": m.parts, # PrimitiveField in generate_composite + "status": str(m.status), # EnumField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite "amount_sent_msat": amount2msat(m.amount_sent_msat), # PrimitiveField in generate_composite + "created_at": m.created_at, # PrimitiveField in generate_composite + "destination": hexlify(m.destination), # PrimitiveField in generate_composite + "parts": m.parts, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite + "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite "warning_partial_completion": m.warning_partial_completion, # PrimitiveField in generate_composite - "status": str(m.status), # EnumField in generate_composite }) def listnodes_nodes_addresses2py(m): return remove_default({ "type": str(m.item_type), # EnumField in generate_composite - "port": m.port, # PrimitiveField in generate_composite "address": m.address, # PrimitiveField in generate_composite + "port": m.port, # PrimitiveField in generate_composite + }) + + +def listnodes_nodes_option_will_fund2py(m): + return remove_default({ + "channel_fee_max_base_msat": amount2msat(m.channel_fee_max_base_msat), # PrimitiveField in generate_composite + "channel_fee_max_proportional_thousandths": m.channel_fee_max_proportional_thousandths, # PrimitiveField in generate_composite + "compact_lease": hexlify(m.compact_lease), # PrimitiveField in generate_composite + "funding_weight": m.funding_weight, # PrimitiveField in generate_composite + "lease_fee_base_msat": amount2msat(m.lease_fee_base_msat), # PrimitiveField in generate_composite + "lease_fee_basis": m.lease_fee_basis, # PrimitiveField in generate_composite }) def listnodes_nodes2py(m): return remove_default({ - "nodeid": hexlify(m.nodeid), # PrimitiveField in generate_composite - "last_timestamp": m.last_timestamp, # PrimitiveField in generate_composite + "addresses": [listnodes_nodes_addresses2py(i) for i in m.addresses], # ArrayField[composite] in generate_composite "alias": m.alias, # PrimitiveField in generate_composite "color": hexlify(m.color), # PrimitiveField in generate_composite "features": hexlify(m.features), # PrimitiveField in generate_composite - "addresses": [listnodes_nodes_addresses2py(i) for i in m.addresses], # ArrayField[composite] in generate_composite + "last_timestamp": m.last_timestamp, # PrimitiveField in generate_composite + "nodeid": hexlify(m.nodeid), # PrimitiveField in generate_composite }) @@ -494,124 +511,124 @@ def listnodes2py(m): def waitanyinvoice_paid_outpoint2py(m): return remove_default({ - "txid": hexlify(m.txid), # PrimitiveField in generate_composite "outnum": m.outnum, # PrimitiveField in generate_composite + "txid": hexlify(m.txid), # PrimitiveField in generate_composite }) def waitanyinvoice2py(m): return remove_default({ - "label": m.label, # PrimitiveField in generate_composite - "description": m.description, # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "status": str(m.status), # EnumField in generate_composite - "expires_at": m.expires_at, # PrimitiveField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "amount_received_msat": amount2msat(m.amount_received_msat), # PrimitiveField in generate_composite "bolt11": m.bolt11, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite "created_index": m.created_index, # PrimitiveField in generate_composite - "updated_index": m.updated_index, # PrimitiveField in generate_composite - "pay_index": m.pay_index, # PrimitiveField in generate_composite - "amount_received_msat": amount2msat(m.amount_received_msat), # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "expires_at": m.expires_at, # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite "paid_at": m.paid_at, # PrimitiveField in generate_composite + "pay_index": m.pay_index, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite + "updated_index": m.updated_index, # PrimitiveField in generate_composite }) def waitinvoice_paid_outpoint2py(m): return remove_default({ - "txid": hexlify(m.txid), # PrimitiveField in generate_composite "outnum": m.outnum, # PrimitiveField in generate_composite + "txid": hexlify(m.txid), # PrimitiveField in generate_composite }) def waitinvoice2py(m): return remove_default({ - "label": m.label, # PrimitiveField in generate_composite - "description": m.description, # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "status": str(m.status), # EnumField in generate_composite - "expires_at": m.expires_at, # PrimitiveField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "amount_received_msat": amount2msat(m.amount_received_msat), # PrimitiveField in generate_composite "bolt11": m.bolt11, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite "created_index": m.created_index, # PrimitiveField in generate_composite - "updated_index": m.updated_index, # PrimitiveField in generate_composite - "pay_index": m.pay_index, # PrimitiveField in generate_composite - "amount_received_msat": amount2msat(m.amount_received_msat), # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "expires_at": m.expires_at, # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite "paid_at": m.paid_at, # PrimitiveField in generate_composite + "pay_index": m.pay_index, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite + "updated_index": m.updated_index, # PrimitiveField in generate_composite }) def waitsendpay2py(m): return remove_default({ - "created_index": m.created_index, # PrimitiveField in generate_composite - "id": m.id, # PrimitiveField in generate_composite - "groupid": m.groupid, # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "status": str(m.status), # EnumField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite - "destination": hexlify(m.destination), # PrimitiveField in generate_composite - "created_at": m.created_at, # PrimitiveField in generate_composite - "updated_index": m.updated_index, # PrimitiveField in generate_composite - "completed_at": m.completed_at, # PrimitiveField in generate_composite "amount_sent_msat": amount2msat(m.amount_sent_msat), # PrimitiveField in generate_composite - "label": m.label, # PrimitiveField in generate_composite - "partid": m.partid, # PrimitiveField in generate_composite "bolt11": m.bolt11, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite + "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 + "destination": hexlify(m.destination), # PrimitiveField in generate_composite + "groupid": m.groupid, # PrimitiveField in generate_composite + "id": m.id, # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite + "partid": m.partid, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite + "updated_index": m.updated_index, # PrimitiveField in generate_composite }) def newaddr2py(m): return remove_default({ - "p2tr": m.p2tr, # PrimitiveField in generate_composite "bech32": m.bech32, # PrimitiveField in generate_composite + "p2tr": m.p2tr, # PrimitiveField in generate_composite }) def withdraw2py(m): return remove_default({ + "psbt": m.psbt, # PrimitiveField in generate_composite "tx": hexlify(m.tx), # PrimitiveField in generate_composite "txid": hexlify(m.txid), # PrimitiveField in generate_composite - "psbt": m.psbt, # PrimitiveField in generate_composite }) def keysend2py(m): return remove_default({ - "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite - "destination": hexlify(m.destination), # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite - "created_at": m.created_at, # PrimitiveField in generate_composite - "parts": m.parts, # PrimitiveField in generate_composite + "status": str(m.status), # EnumField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite "amount_sent_msat": amount2msat(m.amount_sent_msat), # PrimitiveField in generate_composite + "created_at": m.created_at, # PrimitiveField in generate_composite + "destination": hexlify(m.destination), # PrimitiveField in generate_composite + "parts": m.parts, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite + "payment_preimage": hexlify(m.payment_preimage), # PrimitiveField in generate_composite "warning_partial_completion": m.warning_partial_completion, # PrimitiveField in generate_composite - "status": str(m.status), # EnumField in generate_composite }) def fundpsbt_reservations2py(m): return remove_default({ + "reserved": m.reserved, # PrimitiveField in generate_composite + "reserved_to_block": m.reserved_to_block, # PrimitiveField in generate_composite "txid": hexlify(m.txid), # PrimitiveField in generate_composite "vout": m.vout, # PrimitiveField in generate_composite "was_reserved": m.was_reserved, # PrimitiveField in generate_composite - "reserved": m.reserved, # PrimitiveField in generate_composite - "reserved_to_block": m.reserved_to_block, # PrimitiveField in generate_composite }) def fundpsbt2py(m): return remove_default({ - "psbt": m.psbt, # PrimitiveField in generate_composite - "feerate_per_kw": m.feerate_per_kw, # PrimitiveField in generate_composite + "reservations": [fundpsbt_reservations2py(i) for i in m.reservations], # ArrayField[composite] in generate_composite + "change_outnum": m.change_outnum, # PrimitiveField in generate_composite "estimated_final_weight": m.estimated_final_weight, # PrimitiveField in generate_composite "excess_msat": amount2msat(m.excess_msat), # PrimitiveField in generate_composite - "change_outnum": m.change_outnum, # PrimitiveField in generate_composite - "reservations": [fundpsbt_reservations2py(i) for i in m.reservations], # ArrayField[composite] in generate_composite + "feerate_per_kw": m.feerate_per_kw, # PrimitiveField in generate_composite + "psbt": m.psbt, # PrimitiveField in generate_composite }) @@ -630,37 +647,37 @@ def signpsbt2py(m): def utxopsbt_reservations2py(m): return remove_default({ + "reserved": m.reserved, # PrimitiveField in generate_composite + "reserved_to_block": m.reserved_to_block, # PrimitiveField in generate_composite "txid": hexlify(m.txid), # PrimitiveField in generate_composite "vout": m.vout, # PrimitiveField in generate_composite "was_reserved": m.was_reserved, # PrimitiveField in generate_composite - "reserved": m.reserved, # PrimitiveField in generate_composite - "reserved_to_block": m.reserved_to_block, # PrimitiveField in generate_composite }) def utxopsbt2py(m): return remove_default({ - "psbt": m.psbt, # PrimitiveField in generate_composite - "feerate_per_kw": m.feerate_per_kw, # PrimitiveField in generate_composite + "reservations": [utxopsbt_reservations2py(i) for i in m.reservations], # ArrayField[composite] in generate_composite + "change_outnum": m.change_outnum, # PrimitiveField in generate_composite "estimated_final_weight": m.estimated_final_weight, # PrimitiveField in generate_composite "excess_msat": amount2msat(m.excess_msat), # PrimitiveField in generate_composite - "change_outnum": m.change_outnum, # PrimitiveField in generate_composite - "reservations": [utxopsbt_reservations2py(i) for i in m.reservations], # ArrayField[composite] in generate_composite + "feerate_per_kw": m.feerate_per_kw, # PrimitiveField in generate_composite + "psbt": m.psbt, # PrimitiveField in generate_composite }) def txdiscard2py(m): return remove_default({ - "unsigned_tx": hexlify(m.unsigned_tx), # PrimitiveField in generate_composite "txid": hexlify(m.txid), # PrimitiveField in generate_composite + "unsigned_tx": hexlify(m.unsigned_tx), # PrimitiveField in generate_composite }) def txprepare2py(m): return remove_default({ "psbt": m.psbt, # PrimitiveField in generate_composite - "unsigned_tx": hexlify(m.unsigned_tx), # PrimitiveField in generate_composite "txid": hexlify(m.txid), # PrimitiveField in generate_composite + "unsigned_tx": hexlify(m.unsigned_tx), # PrimitiveField in generate_composite }) @@ -672,152 +689,154 @@ def txsend2py(m): }) -def listpeerchannels_channels_channel_type2py(m): +def listpeerchannels_channels_alias2py(m): return remove_default({ - "bits": [m.bits for i in m.bits], # ArrayField[primitive] in generate_composite - "names": [str(i) for i in m.names], # ArrayField[composite] in generate_composite + "local": m.local, # PrimitiveField in generate_composite + "remote": m.remote, # PrimitiveField in generate_composite }) -def listpeerchannels_channels_updates_local2py(m): +def listpeerchannels_channels_channel_type2py(m): return remove_default({ - "htlc_minimum_msat": amount2msat(m.htlc_minimum_msat), # PrimitiveField in generate_composite - "htlc_maximum_msat": amount2msat(m.htlc_maximum_msat), # PrimitiveField in generate_composite - "cltv_expiry_delta": m.cltv_expiry_delta, # 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 + "bits": [m.bits for i in m.bits], # ArrayField[primitive] in generate_composite + "names": [str(i) for i in m.names], # ArrayField[composite] in generate_composite }) -def listpeerchannels_channels_updates_remote2py(m): +def listpeerchannels_channels_feerate2py(m): return remove_default({ - "htlc_minimum_msat": amount2msat(m.htlc_minimum_msat), # PrimitiveField in generate_composite - "htlc_maximum_msat": amount2msat(m.htlc_maximum_msat), # PrimitiveField in generate_composite - "cltv_expiry_delta": m.cltv_expiry_delta, # 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 + "perkb": m.perkb, # PrimitiveField in generate_composite + "perkw": m.perkw, # PrimitiveField in generate_composite }) -def listpeerchannels_channels_updates2py(m): +def listpeerchannels_channels_funding2py(m): return remove_default({ + "fee_paid_msat": amount2msat(m.fee_paid_msat), # PrimitiveField in generate_composite + "fee_rcvd_msat": amount2msat(m.fee_rcvd_msat), # PrimitiveField in generate_composite + "local_funds_msat": amount2msat(m.local_funds_msat), # PrimitiveField in generate_composite + "pushed_msat": amount2msat(m.pushed_msat), # PrimitiveField in generate_composite + "remote_funds_msat": amount2msat(m.remote_funds_msat), # PrimitiveField in generate_composite }) -def listpeerchannels_channels_feerate2py(m): +def listpeerchannels_channels_htlcs2py(m): return remove_default({ - "perkw": m.perkw, # PrimitiveField in generate_composite - "perkb": m.perkb, # PrimitiveField in generate_composite + "direction": str(m.direction), # EnumField in generate_composite + "state": str(m.state), # EnumField in generate_composite + "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "expiry": m.expiry, # PrimitiveField in generate_composite + "id": m.id, # PrimitiveField in generate_composite + "local_trimmed": m.local_trimmed, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite + "status": m.status, # PrimitiveField in generate_composite }) def listpeerchannels_channels_inflight2py(m): return remove_default({ - "funding_txid": hexlify(m.funding_txid), # PrimitiveField in generate_composite - "funding_outnum": m.funding_outnum, # PrimitiveField in generate_composite "feerate": m.feerate, # PrimitiveField in generate_composite - "total_funding_msat": amount2msat(m.total_funding_msat), # PrimitiveField in generate_composite - "splice_amount": m.splice_amount, # PrimitiveField in generate_composite + "funding_outnum": m.funding_outnum, # PrimitiveField in generate_composite + "funding_txid": hexlify(m.funding_txid), # PrimitiveField in generate_composite "our_funding_msat": amount2msat(m.our_funding_msat), # PrimitiveField in generate_composite "scratch_txid": hexlify(m.scratch_txid), # PrimitiveField in generate_composite + "splice_amount": m.splice_amount, # PrimitiveField in generate_composite + "total_funding_msat": amount2msat(m.total_funding_msat), # PrimitiveField in generate_composite }) -def listpeerchannels_channels_funding2py(m): +def listpeerchannels_channels_state_changes2py(m): return remove_default({ - "pushed_msat": amount2msat(m.pushed_msat), # PrimitiveField in generate_composite - "local_funds_msat": amount2msat(m.local_funds_msat), # PrimitiveField in generate_composite - "remote_funds_msat": amount2msat(m.remote_funds_msat), # PrimitiveField in generate_composite - "fee_paid_msat": amount2msat(m.fee_paid_msat), # PrimitiveField in generate_composite - "fee_rcvd_msat": amount2msat(m.fee_rcvd_msat), # PrimitiveField in generate_composite + "cause": str(m.cause), # EnumField in generate_composite + "message": m.message, # PrimitiveField in generate_composite + "new_state": str(m.new_state), # EnumField in generate_composite + "old_state": str(m.old_state), # EnumField in generate_composite + "timestamp": m.timestamp, # PrimitiveField in generate_composite }) -def listpeerchannels_channels_alias2py(m): +def listpeerchannels_channels_updates_local2py(m): return remove_default({ - "local": m.local, # PrimitiveField in generate_composite - "remote": m.remote, # PrimitiveField in generate_composite + "cltv_expiry_delta": m.cltv_expiry_delta, # 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 listpeerchannels_channels_state_changes2py(m): +def listpeerchannels_channels_updates_remote2py(m): return remove_default({ - "timestamp": m.timestamp, # PrimitiveField in generate_composite - "old_state": str(m.old_state), # EnumField in generate_composite - "new_state": str(m.new_state), # EnumField in generate_composite - "cause": str(m.cause), # EnumField in generate_composite - "message": m.message, # PrimitiveField in generate_composite + "cltv_expiry_delta": m.cltv_expiry_delta, # 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 listpeerchannels_channels_htlcs2py(m): +def listpeerchannels_channels_updates2py(m): return remove_default({ - "direction": str(m.direction), # EnumField in generate_composite - "id": m.id, # PrimitiveField in generate_composite - "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite - "expiry": m.expiry, # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite - "local_trimmed": m.local_trimmed, # PrimitiveField in generate_composite - "status": m.status, # PrimitiveField in generate_composite - "state": str(m.state), # EnumField in generate_composite }) def listpeerchannels_channels2py(m): return remove_default({ - "peer_id": hexlify(m.peer_id), # PrimitiveField in generate_composite - "peer_connected": m.peer_connected, # PrimitiveField in generate_composite - "reestablished": m.reestablished, # PrimitiveField in generate_composite + "closer": str(m.closer), # EnumField in generate_composite + "features": [str(i) for i in m.features], # ArrayField[composite] in generate_composite + "htlcs": [listpeerchannels_channels_htlcs2py(i) for i in m.htlcs], # ArrayField[composite] in generate_composite + "inflight": [listpeerchannels_channels_inflight2py(i) for i in m.inflight], # ArrayField[composite] in generate_composite + "opener": str(m.opener), # EnumField in generate_composite "state": str(m.state), # EnumField in generate_composite - "scratch_txid": hexlify(m.scratch_txid), # PrimitiveField in generate_composite - "ignore_fee_limits": m.ignore_fee_limits, # PrimitiveField in generate_composite - "lost_state": m.lost_state, # PrimitiveField in generate_composite - "owner": m.owner, # PrimitiveField in generate_composite - "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite + "state_changes": [listpeerchannels_channels_state_changes2py(i) for i in m.state_changes], # ArrayField[composite] in generate_composite + "status": [m.status for i in m.status], # ArrayField[primitive] in generate_composite "channel_id": hexlify(m.channel_id), # PrimitiveField in generate_composite - "funding_txid": hexlify(m.funding_txid), # PrimitiveField in generate_composite + "close_to": hexlify(m.close_to), # PrimitiveField in generate_composite + "close_to_addr": m.close_to_addr, # PrimitiveField in generate_composite + "direction": m.direction, # PrimitiveField in generate_composite + "dust_limit_msat": amount2msat(m.dust_limit_msat), # 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 "funding_outnum": m.funding_outnum, # PrimitiveField in generate_composite + "funding_txid": hexlify(m.funding_txid), # PrimitiveField in generate_composite + "ignore_fee_limits": m.ignore_fee_limits, # PrimitiveField in generate_composite + "in_fulfilled_msat": amount2msat(m.in_fulfilled_msat), # PrimitiveField in generate_composite + "in_offered_msat": amount2msat(m.in_offered_msat), # PrimitiveField in generate_composite + "in_payments_fulfilled": m.in_payments_fulfilled, # PrimitiveField in generate_composite + "in_payments_offered": m.in_payments_offered, # PrimitiveField in generate_composite "initial_feerate": m.initial_feerate, # PrimitiveField in generate_composite "last_feerate": m.last_feerate, # PrimitiveField in generate_composite - "next_feerate": m.next_feerate, # PrimitiveField in generate_composite - "next_fee_step": m.next_fee_step, # PrimitiveField in generate_composite - "inflight": [listpeerchannels_channels_inflight2py(i) for i in m.inflight], # ArrayField[composite] in generate_composite - "close_to": hexlify(m.close_to), # PrimitiveField in generate_composite - "private": m.private, # PrimitiveField in generate_composite - "opener": str(m.opener), # EnumField in generate_composite - "closer": str(m.closer), # EnumField in generate_composite - "features": [str(i) for i in m.features], # ArrayField[composite] in generate_composite - "to_us_msat": amount2msat(m.to_us_msat), # PrimitiveField in generate_composite - "min_to_us_msat": amount2msat(m.min_to_us_msat), # PrimitiveField in generate_composite + "last_stable_connection": m.last_stable_connection, # PrimitiveField in generate_composite + "last_tx_fee_msat": amount2msat(m.last_tx_fee_msat), # PrimitiveField in generate_composite + "lost_state": m.lost_state, # PrimitiveField in generate_composite + "max_accepted_htlcs": m.max_accepted_htlcs, # PrimitiveField in generate_composite "max_to_us_msat": amount2msat(m.max_to_us_msat), # PrimitiveField in generate_composite - "total_msat": amount2msat(m.total_msat), # 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 - "dust_limit_msat": amount2msat(m.dust_limit_msat), # PrimitiveField in generate_composite "max_total_htlc_in_msat": amount2msat(m.max_total_htlc_in_msat), # PrimitiveField in generate_composite - "their_reserve_msat": amount2msat(m.their_reserve_msat), # PrimitiveField in generate_composite - "our_reserve_msat": amount2msat(m.our_reserve_msat), # PrimitiveField in generate_composite - "spendable_msat": amount2msat(m.spendable_msat), # PrimitiveField in generate_composite - "receivable_msat": amount2msat(m.receivable_msat), # PrimitiveField in generate_composite + "maximum_htlc_out_msat": amount2msat(m.maximum_htlc_out_msat), # PrimitiveField in generate_composite + "min_to_us_msat": amount2msat(m.min_to_us_msat), # PrimitiveField in generate_composite "minimum_htlc_in_msat": amount2msat(m.minimum_htlc_in_msat), # PrimitiveField in generate_composite "minimum_htlc_out_msat": amount2msat(m.minimum_htlc_out_msat), # PrimitiveField in generate_composite - "maximum_htlc_out_msat": amount2msat(m.maximum_htlc_out_msat), # PrimitiveField in generate_composite - "their_to_self_delay": m.their_to_self_delay, # PrimitiveField in generate_composite + "next_fee_step": m.next_fee_step, # PrimitiveField in generate_composite + "next_feerate": m.next_feerate, # PrimitiveField in generate_composite + "our_reserve_msat": amount2msat(m.our_reserve_msat), # PrimitiveField in generate_composite "our_to_self_delay": m.our_to_self_delay, # PrimitiveField in generate_composite - "max_accepted_htlcs": m.max_accepted_htlcs, # PrimitiveField in generate_composite - "state_changes": [listpeerchannels_channels_state_changes2py(i) for i in m.state_changes], # ArrayField[composite] in generate_composite - "status": [m.status for i in m.status], # ArrayField[primitive] in generate_composite - "in_payments_offered": m.in_payments_offered, # PrimitiveField in generate_composite - "in_offered_msat": amount2msat(m.in_offered_msat), # PrimitiveField in generate_composite - "in_payments_fulfilled": m.in_payments_fulfilled, # PrimitiveField in generate_composite - "in_fulfilled_msat": amount2msat(m.in_fulfilled_msat), # PrimitiveField in generate_composite - "out_payments_offered": m.out_payments_offered, # PrimitiveField in generate_composite + "out_fulfilled_msat": amount2msat(m.out_fulfilled_msat), # PrimitiveField in generate_composite "out_offered_msat": amount2msat(m.out_offered_msat), # PrimitiveField in generate_composite "out_payments_fulfilled": m.out_payments_fulfilled, # PrimitiveField in generate_composite - "out_fulfilled_msat": amount2msat(m.out_fulfilled_msat), # PrimitiveField in generate_composite - "last_stable_connection": m.last_stable_connection, # PrimitiveField in generate_composite - "htlcs": [listpeerchannels_channels_htlcs2py(i) for i in m.htlcs], # ArrayField[composite] in generate_composite - "close_to_addr": m.close_to_addr, # PrimitiveField in generate_composite + "out_payments_offered": m.out_payments_offered, # PrimitiveField in generate_composite + "owner": m.owner, # PrimitiveField in generate_composite + "peer_connected": m.peer_connected, # PrimitiveField in generate_composite + "peer_id": hexlify(m.peer_id), # PrimitiveField in generate_composite + "private": m.private, # PrimitiveField in generate_composite + "receivable_msat": amount2msat(m.receivable_msat), # PrimitiveField in generate_composite + "reestablished": m.reestablished, # PrimitiveField in generate_composite + "scratch_txid": hexlify(m.scratch_txid), # PrimitiveField in generate_composite + "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite + "spendable_msat": amount2msat(m.spendable_msat), # PrimitiveField in generate_composite + "their_reserve_msat": amount2msat(m.their_reserve_msat), # PrimitiveField in generate_composite + "their_to_self_delay": m.their_to_self_delay, # PrimitiveField in generate_composite + "to_us_msat": amount2msat(m.to_us_msat), # PrimitiveField in generate_composite + "total_msat": amount2msat(m.total_msat), # PrimitiveField in generate_composite }) @@ -843,29 +862,29 @@ def listclosedchannels_closedchannels_channel_type2py(m): def listclosedchannels_closedchannels2py(m): return remove_default({ - "peer_id": hexlify(m.peer_id), # PrimitiveField in generate_composite - "channel_id": hexlify(m.channel_id), # PrimitiveField in generate_composite - "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite - "opener": str(m.opener), # EnumField in generate_composite + "close_cause": str(m.close_cause), # EnumField in generate_composite "closer": str(m.closer), # EnumField in generate_composite - "private": m.private, # PrimitiveField in generate_composite - "total_local_commitments": m.total_local_commitments, # PrimitiveField in generate_composite - "total_remote_commitments": m.total_remote_commitments, # PrimitiveField in generate_composite - "total_htlcs_sent": m.total_htlcs_sent, # PrimitiveField in generate_composite - "funding_txid": hexlify(m.funding_txid), # PrimitiveField in generate_composite - "funding_outnum": m.funding_outnum, # PrimitiveField in generate_composite - "leased": m.leased, # PrimitiveField in generate_composite + "opener": str(m.opener), # EnumField in generate_composite + "channel_id": hexlify(m.channel_id), # PrimitiveField in generate_composite + "final_to_us_msat": amount2msat(m.final_to_us_msat), # PrimitiveField in generate_composite "funding_fee_paid_msat": amount2msat(m.funding_fee_paid_msat), # PrimitiveField in generate_composite "funding_fee_rcvd_msat": amount2msat(m.funding_fee_rcvd_msat), # PrimitiveField in generate_composite + "funding_outnum": m.funding_outnum, # PrimitiveField in generate_composite "funding_pushed_msat": amount2msat(m.funding_pushed_msat), # PrimitiveField in generate_composite - "total_msat": amount2msat(m.total_msat), # PrimitiveField in generate_composite - "final_to_us_msat": amount2msat(m.final_to_us_msat), # PrimitiveField in generate_composite - "min_to_us_msat": amount2msat(m.min_to_us_msat), # PrimitiveField in generate_composite - "max_to_us_msat": amount2msat(m.max_to_us_msat), # PrimitiveField in generate_composite - "last_commitment_txid": hexlify(m.last_commitment_txid), # PrimitiveField in generate_composite + "funding_txid": hexlify(m.funding_txid), # PrimitiveField in generate_composite "last_commitment_fee_msat": amount2msat(m.last_commitment_fee_msat), # PrimitiveField in generate_composite - "close_cause": str(m.close_cause), # EnumField in generate_composite + "last_commitment_txid": hexlify(m.last_commitment_txid), # PrimitiveField in generate_composite "last_stable_connection": m.last_stable_connection, # PrimitiveField in generate_composite + "leased": m.leased, # PrimitiveField in generate_composite + "max_to_us_msat": amount2msat(m.max_to_us_msat), # PrimitiveField in generate_composite + "min_to_us_msat": amount2msat(m.min_to_us_msat), # PrimitiveField in generate_composite + "peer_id": hexlify(m.peer_id), # PrimitiveField in generate_composite + "private": m.private, # PrimitiveField in generate_composite + "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite + "total_htlcs_sent": m.total_htlcs_sent, # PrimitiveField in generate_composite + "total_local_commitments": m.total_local_commitments, # PrimitiveField in generate_composite + "total_msat": amount2msat(m.total_msat), # PrimitiveField in generate_composite + "total_remote_commitments": m.total_remote_commitments, # PrimitiveField in generate_composite }) @@ -875,6 +894,13 @@ def listclosedchannels2py(m): }) +def decodepay_extra2py(m): + return remove_default({ + "data": m.data, # PrimitiveField in generate_composite + "tag": m.tag, # PrimitiveField in generate_composite + }) + + def decodepay_fallbacks2py(m): return remove_default({ "type": str(m.item_type), # EnumField in generate_composite @@ -885,239 +911,240 @@ def decodepay_fallbacks2py(m): def decodepay_routes2py(m): return remove_default({ - "pubkey": hexlify(m.pubkey), # PrimitiveField in generate_composite - "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite + "cltv_expiry_delta": m.cltv_expiry_delta, # 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 - "cltv_expiry_delta": m.cltv_expiry_delta, # PrimitiveField in generate_composite - }) - - -def decodepay_extra2py(m): - return remove_default({ - "tag": m.tag, # PrimitiveField in generate_composite - "data": m.data, # PrimitiveField in generate_composite + "pubkey": hexlify(m.pubkey), # PrimitiveField in generate_composite + "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite }) def decodepay2py(m): return remove_default({ - "currency": m.currency, # PrimitiveField in generate_composite - "created_at": m.created_at, # PrimitiveField in generate_composite - "expiry": m.expiry, # PrimitiveField in generate_composite - "payee": hexlify(m.payee), # PrimitiveField in generate_composite + "extra": [decodepay_extra2py(i) for i in m.extra], # ArrayField[composite] in generate_composite + "fallbacks": [decodepay_fallbacks2py(i) for i in m.fallbacks], # ArrayField[composite] in generate_composite + "routes": [decodepay_routes2py(i) for i in m.routes], # ArrayField[composite] in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite - "signature": hexlify(m.signature), # PrimitiveField in generate_composite + "created_at": m.created_at, # PrimitiveField in generate_composite + "currency": m.currency, # PrimitiveField in generate_composite "description": m.description, # PrimitiveField in generate_composite "description_hash": hexlify(m.description_hash), # PrimitiveField in generate_composite - "min_final_cltv_expiry": m.min_final_cltv_expiry, # PrimitiveField in generate_composite - "payment_secret": hexlify(m.payment_secret), # PrimitiveField in generate_composite + "expiry": m.expiry, # PrimitiveField in generate_composite "features": hexlify(m.features), # PrimitiveField in generate_composite + "min_final_cltv_expiry": m.min_final_cltv_expiry, # PrimitiveField in generate_composite + "payee": hexlify(m.payee), # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "payment_metadata": hexlify(m.payment_metadata), # PrimitiveField in generate_composite - "fallbacks": [decodepay_fallbacks2py(i) for i in m.fallbacks], # ArrayField[composite] in generate_composite - "routes": [decodepay_routes2py(i) for i in m.routes], # ArrayField[composite] in generate_composite - "extra": [decodepay_extra2py(i) for i in m.extra], # ArrayField[composite] in generate_composite - }) - - -def decode_offer_paths_path2py(m): - return remove_default({ - "blinded_node_id": hexlify(m.blinded_node_id), # PrimitiveField in generate_composite - "encrypted_recipient_data": hexlify(m.encrypted_recipient_data), # PrimitiveField in generate_composite + "payment_secret": hexlify(m.payment_secret), # PrimitiveField in generate_composite + "signature": hexlify(m.signature), # PrimitiveField in generate_composite }) -def decode_offer_paths2py(m): +def decode_extra2py(m): return remove_default({ - "first_node_id": hexlify(m.first_node_id), # PrimitiveField in generate_composite - "blinding": hexlify(m.blinding), # PrimitiveField in generate_composite - "path": [decode_offer_paths_path2py(i) for i in m.path], # ArrayField[composite] in generate_composite + "data": m.data, # PrimitiveField in generate_composite + "tag": m.tag, # PrimitiveField in generate_composite }) -def decode_offer_recurrence_paywindow2py(m): +def decode_fallbacks2py(m): return remove_default({ - "seconds_before": m.seconds_before, # PrimitiveField in generate_composite - "seconds_after": m.seconds_after, # PrimitiveField in generate_composite - "proportional_amount": m.proportional_amount, # PrimitiveField in generate_composite + "type": str(m.item_type), # EnumField in generate_composite + "addr": m.addr, # PrimitiveField in generate_composite + "hex": hexlify(m.hex), # PrimitiveField in generate_composite + "warning_invoice_fallbacks_version_invalid": m.warning_invoice_fallbacks_version_invalid, # PrimitiveField in generate_composite }) -def decode_offer_recurrence2py(m): +def decode_invoice_fallbacks2py(m): return remove_default({ - "time_unit": m.time_unit, # PrimitiveField in generate_composite - "time_unit_name": m.time_unit_name, # PrimitiveField in generate_composite - "period": m.period, # PrimitiveField in generate_composite - "basetime": m.basetime, # PrimitiveField in generate_composite - "start_any_period": m.start_any_period, # PrimitiveField in generate_composite - "limit": m.limit, # PrimitiveField in generate_composite + "address": m.address, # PrimitiveField in generate_composite + "hex": hexlify(m.hex), # PrimitiveField in generate_composite + "version": m.version, # PrimitiveField in generate_composite }) -def decode_unknown_offer_tlvs2py(m): +def decode_invoice_paths_path2py(m): return remove_default({ - "item_type": m.type, # PrimitiveField in generate_composite - "length": m.length, # PrimitiveField in generate_composite - "value": hexlify(m.value), # PrimitiveField in generate_composite + "blinded_node_id": hexlify(m.blinded_node_id), # PrimitiveField in generate_composite + "encrypted_recipient_data": hexlify(m.encrypted_recipient_data), # PrimitiveField in generate_composite }) -def decode_unknown_invoice_request_tlvs2py(m): +def decode_invoice_paths_payinfo2py(m): return remove_default({ - "item_type": m.type, # PrimitiveField in generate_composite - "length": m.length, # PrimitiveField in generate_composite - "value": hexlify(m.value), # PrimitiveField in generate_composite + "cltv_expiry_delta": m.cltv_expiry_delta, # PrimitiveField in generate_composite + "features": hexlify(m.features), # 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 }) -def decode_invoice_paths_payinfo2py(m): +def decode_invoice_paths2py(m): return remove_default({ - "fee_base_msat": amount2msat(m.fee_base_msat), # PrimitiveField in generate_composite - "fee_proportional_millionths": m.fee_proportional_millionths, # PrimitiveField in generate_composite - "cltv_expiry_delta": m.cltv_expiry_delta, # PrimitiveField in generate_composite - "features": hexlify(m.features), # PrimitiveField in generate_composite + "blinding": hexlify(m.blinding), # PrimitiveField in generate_composite + "first_node_id": hexlify(m.first_node_id), # PrimitiveField in generate_composite + "path": [decode_invoice_paths_path2py(i) for i in m.path], # ArrayField[composite] in generate_composite }) -def decode_invoice_paths_path2py(m): +def decode_offer_paths_path2py(m): return remove_default({ "blinded_node_id": hexlify(m.blinded_node_id), # PrimitiveField in generate_composite "encrypted_recipient_data": hexlify(m.encrypted_recipient_data), # PrimitiveField in generate_composite }) -def decode_invoice_paths2py(m): +def decode_offer_paths2py(m): return remove_default({ - "first_node_id": hexlify(m.first_node_id), # PrimitiveField in generate_composite + "path": [decode_offer_paths_path2py(i) for i in m.path], # ArrayField[composite] in generate_composite "blinding": hexlify(m.blinding), # PrimitiveField in generate_composite - "path": [decode_invoice_paths_path2py(i) for i in m.path], # ArrayField[composite] in generate_composite + "first_node_id": hexlify(m.first_node_id), # PrimitiveField in generate_composite }) -def decode_invoice_fallbacks2py(m): +def decode_offer_recurrence_paywindow2py(m): return remove_default({ - "version": m.version, # PrimitiveField in generate_composite - "hex": hexlify(m.hex), # PrimitiveField in generate_composite - "address": m.address, # PrimitiveField in generate_composite + "proportional_amount": m.proportional_amount, # PrimitiveField in generate_composite + "seconds_after": m.seconds_after, # PrimitiveField in generate_composite + "seconds_before": m.seconds_before, # PrimitiveField in generate_composite }) -def decode_unknown_invoice_tlvs2py(m): +def decode_offer_recurrence2py(m): return remove_default({ - "item_type": m.type, # PrimitiveField in generate_composite - "length": m.length, # PrimitiveField in generate_composite - "value": hexlify(m.value), # PrimitiveField in generate_composite + "basetime": m.basetime, # PrimitiveField in generate_composite + "limit": m.limit, # PrimitiveField in generate_composite + "period": m.period, # PrimitiveField in generate_composite + "start_any_period": m.start_any_period, # PrimitiveField in generate_composite + "time_unit": m.time_unit, # PrimitiveField in generate_composite + "time_unit_name": m.time_unit_name, # PrimitiveField in generate_composite }) -def decode_fallbacks2py(m): +def decode_restrictions2py(m): return remove_default({ - "warning_invoice_fallbacks_version_invalid": m.warning_invoice_fallbacks_version_invalid, # PrimitiveField in generate_composite + "alternatives": [m.alternatives for i in m.alternatives], # ArrayField[primitive] in generate_composite + "summary": m.summary, # PrimitiveField in generate_composite }) def decode_routes2py(m): return remove_default({ - "pubkey": hexlify(m.pubkey), # PrimitiveField in generate_composite - "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite + "cltv_expiry_delta": m.cltv_expiry_delta, # 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 - "cltv_expiry_delta": m.cltv_expiry_delta, # PrimitiveField in generate_composite + "pubkey": hexlify(m.pubkey), # PrimitiveField in generate_composite + "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite }) -def decode_extra2py(m): +def decode_unknown_invoice_request_tlvs2py(m): return remove_default({ - "tag": m.tag, # PrimitiveField in generate_composite - "data": m.data, # PrimitiveField in generate_composite + "length": m.length, # PrimitiveField in generate_composite + "item_type": m.type, # PrimitiveField in generate_composite + "value": hexlify(m.value), # PrimitiveField in generate_composite }) -def decode_restrictions2py(m): +def decode_unknown_invoice_tlvs2py(m): return remove_default({ - "alternatives": [m.alternatives for i in m.alternatives], # ArrayField[primitive] in generate_composite - "summary": m.summary, # PrimitiveField in generate_composite + "length": m.length, # PrimitiveField in generate_composite + "item_type": m.type, # PrimitiveField in generate_composite + "value": hexlify(m.value), # PrimitiveField in generate_composite + }) + + +def decode_unknown_offer_tlvs2py(m): + return remove_default({ + "length": m.length, # PrimitiveField in generate_composite + "item_type": m.type, # PrimitiveField in generate_composite + "value": hexlify(m.value), # PrimitiveField in generate_composite }) def decode2py(m): return remove_default({ - "type": str(m.item_type), # EnumField in generate_composite - "valid": m.valid, # PrimitiveField in generate_composite - "offer_id": hexlify(m.offer_id), # PrimitiveField in generate_composite + "extra": [decode_extra2py(i) for i in m.extra], # ArrayField[composite] in generate_composite + "fallbacks": [decode_fallbacks2py(i) for i in m.fallbacks], # ArrayField[composite] in generate_composite + "invoice_fallbacks": [decode_invoice_fallbacks2py(i) for i in m.invoice_fallbacks], # ArrayField[composite] in generate_composite + "invoice_paths": [decode_invoice_paths2py(i) for i in m.invoice_paths], # ArrayField[composite] in generate_composite "offer_chains": [hexlify(m.offer_chains) for i in hexlify(m.offer_chains)], # ArrayField[primitive] in generate_composite - "offer_metadata": hexlify(m.offer_metadata), # PrimitiveField in generate_composite - "offer_currency": m.offer_currency, # PrimitiveField in generate_composite - "warning_unknown_offer_currency": m.warning_unknown_offer_currency, # PrimitiveField in generate_composite + "offer_paths": [decode_offer_paths2py(i) for i in m.offer_paths], # ArrayField[composite] in generate_composite + "restrictions": [decode_restrictions2py(i) for i in m.restrictions], # ArrayField[composite] in generate_composite + "routes": [decode_routes2py(i) for i in m.routes], # ArrayField[composite] in generate_composite + "type": str(m.item_type), # EnumField in generate_composite + "unknown_invoice_request_tlvs": [decode_unknown_invoice_request_tlvs2py(i) for i in m.unknown_invoice_request_tlvs], # ArrayField[composite] in generate_composite + "unknown_invoice_tlvs": [decode_unknown_invoice_tlvs2py(i) for i in m.unknown_invoice_tlvs], # ArrayField[composite] in generate_composite + "unknown_offer_tlvs": [decode_unknown_offer_tlvs2py(i) for i in m.unknown_offer_tlvs], # ArrayField[composite] in generate_composite + "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "created_at": m.created_at, # PrimitiveField in generate_composite + "currency": m.currency, # PrimitiveField in generate_composite "currency_minor_unit": m.currency_minor_unit, # PrimitiveField in generate_composite + "decrypted": hexlify(m.decrypted), # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "description_hash": hexlify(m.description_hash), # PrimitiveField in generate_composite + "expiry": m.expiry, # PrimitiveField in generate_composite + "features": hexlify(m.features), # PrimitiveField in generate_composite + "hex": hexlify(m.hex), # PrimitiveField in generate_composite + "invoice_amount_msat": amount2msat(m.invoice_amount_msat), # PrimitiveField in generate_composite + "invoice_created_at": m.invoice_created_at, # PrimitiveField in generate_composite + "invoice_features": hexlify(m.invoice_features), # PrimitiveField in generate_composite + "invoice_node_id": hexlify(m.invoice_node_id), # PrimitiveField in generate_composite + "invoice_payment_hash": hexlify(m.invoice_payment_hash), # PrimitiveField in generate_composite + "invoice_recurrence_basetime": m.invoice_recurrence_basetime, # PrimitiveField in generate_composite + "invoice_relative_expiry": m.invoice_relative_expiry, # PrimitiveField in generate_composite + "invreq_amount_msat": amount2msat(m.invreq_amount_msat), # PrimitiveField in generate_composite + "invreq_chain": hexlify(m.invreq_chain), # PrimitiveField in generate_composite + "invreq_features": hexlify(m.invreq_features), # PrimitiveField in generate_composite + "invreq_metadata": hexlify(m.invreq_metadata), # PrimitiveField in generate_composite + "invreq_payer_id": hexlify(m.invreq_payer_id), # PrimitiveField in generate_composite + "invreq_payer_note": m.invreq_payer_note, # PrimitiveField in generate_composite + "invreq_quantity": m.invreq_quantity, # PrimitiveField in generate_composite + "invreq_recurrence_counter": m.invreq_recurrence_counter, # PrimitiveField in generate_composite + "invreq_recurrence_start": m.invreq_recurrence_start, # PrimitiveField in generate_composite + "min_final_cltv_expiry": m.min_final_cltv_expiry, # PrimitiveField in generate_composite + "offer_absolute_expiry": m.offer_absolute_expiry, # PrimitiveField in generate_composite "offer_amount": m.offer_amount, # PrimitiveField in generate_composite "offer_amount_msat": amount2msat(m.offer_amount_msat), # PrimitiveField in generate_composite + "offer_currency": m.offer_currency, # PrimitiveField in generate_composite "offer_description": m.offer_description, # PrimitiveField in generate_composite - "offer_issuer": m.offer_issuer, # PrimitiveField in generate_composite "offer_features": hexlify(m.offer_features), # PrimitiveField in generate_composite - "offer_absolute_expiry": m.offer_absolute_expiry, # PrimitiveField in generate_composite - "offer_quantity_max": m.offer_quantity_max, # PrimitiveField in generate_composite - "offer_paths": [decode_offer_paths2py(i) for i in m.offer_paths], # ArrayField[composite] in generate_composite + "offer_id": hexlify(m.offer_id), # PrimitiveField in generate_composite + "offer_issuer": m.offer_issuer, # PrimitiveField in generate_composite + "offer_metadata": hexlify(m.offer_metadata), # PrimitiveField in generate_composite "offer_node_id": hexlify(m.offer_node_id), # PrimitiveField in generate_composite - "unknown_offer_tlvs": [decode_unknown_offer_tlvs2py(i) for i in m.unknown_offer_tlvs], # ArrayField[composite] in generate_composite - "warning_missing_offer_node_id": m.warning_missing_offer_node_id, # PrimitiveField in generate_composite - "warning_invalid_offer_description": m.warning_invalid_offer_description, # PrimitiveField in generate_composite - "warning_missing_offer_description": m.warning_missing_offer_description, # PrimitiveField in generate_composite + "offer_quantity_max": m.offer_quantity_max, # PrimitiveField in generate_composite + "payee": hexlify(m.payee), # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite + "payment_metadata": hexlify(m.payment_metadata), # PrimitiveField in generate_composite + "payment_secret": hexlify(m.payment_secret), # PrimitiveField in generate_composite + "signature": hexlify(m.signature), # PrimitiveField in generate_composite + "string": m.string, # PrimitiveField in generate_composite + "unique_id": m.unique_id, # PrimitiveField in generate_composite + "valid": m.valid, # PrimitiveField in generate_composite + "version": m.version, # PrimitiveField in generate_composite + "warning_invalid_invoice_request_signature": m.warning_invalid_invoice_request_signature, # PrimitiveField in generate_composite + "warning_invalid_invoice_signature": m.warning_invalid_invoice_signature, # PrimitiveField in generate_composite + "warning_invalid_invreq_payer_note": m.warning_invalid_invreq_payer_note, # PrimitiveField in generate_composite "warning_invalid_offer_currency": m.warning_invalid_offer_currency, # PrimitiveField in generate_composite + "warning_invalid_offer_description": m.warning_invalid_offer_description, # PrimitiveField in generate_composite "warning_invalid_offer_issuer": m.warning_invalid_offer_issuer, # PrimitiveField in generate_composite - "invreq_metadata": hexlify(m.invreq_metadata), # PrimitiveField in generate_composite - "invreq_payer_id": hexlify(m.invreq_payer_id), # PrimitiveField in generate_composite - "invreq_chain": hexlify(m.invreq_chain), # PrimitiveField in generate_composite - "invreq_amount_msat": amount2msat(m.invreq_amount_msat), # PrimitiveField in generate_composite - "invreq_features": hexlify(m.invreq_features), # PrimitiveField in generate_composite - "invreq_quantity": m.invreq_quantity, # PrimitiveField in generate_composite - "invreq_payer_note": m.invreq_payer_note, # PrimitiveField in generate_composite - "invreq_recurrence_counter": m.invreq_recurrence_counter, # PrimitiveField in generate_composite - "invreq_recurrence_start": m.invreq_recurrence_start, # PrimitiveField in generate_composite - "unknown_invoice_request_tlvs": [decode_unknown_invoice_request_tlvs2py(i) for i in m.unknown_invoice_request_tlvs], # ArrayField[composite] in generate_composite - "warning_missing_invreq_metadata": m.warning_missing_invreq_metadata, # PrimitiveField in generate_composite - "warning_missing_invreq_payer_id": m.warning_missing_invreq_payer_id, # PrimitiveField in generate_composite - "warning_invalid_invreq_payer_note": m.warning_invalid_invreq_payer_note, # PrimitiveField in generate_composite - "warning_missing_invoice_request_signature": m.warning_missing_invoice_request_signature, # PrimitiveField in generate_composite - "warning_invalid_invoice_request_signature": m.warning_invalid_invoice_request_signature, # PrimitiveField in generate_composite - "invoice_paths": [decode_invoice_paths2py(i) for i in m.invoice_paths], # ArrayField[composite] in generate_composite - "invoice_created_at": m.invoice_created_at, # PrimitiveField in generate_composite - "invoice_relative_expiry": m.invoice_relative_expiry, # PrimitiveField in generate_composite - "invoice_payment_hash": hexlify(m.invoice_payment_hash), # PrimitiveField in generate_composite - "invoice_amount_msat": amount2msat(m.invoice_amount_msat), # PrimitiveField in generate_composite - "invoice_fallbacks": [decode_invoice_fallbacks2py(i) for i in m.invoice_fallbacks], # ArrayField[composite] in generate_composite - "invoice_features": hexlify(m.invoice_features), # PrimitiveField in generate_composite - "invoice_node_id": hexlify(m.invoice_node_id), # PrimitiveField in generate_composite - "invoice_recurrence_basetime": m.invoice_recurrence_basetime, # PrimitiveField in generate_composite - "unknown_invoice_tlvs": [decode_unknown_invoice_tlvs2py(i) for i in m.unknown_invoice_tlvs], # ArrayField[composite] in generate_composite - "warning_missing_invoice_paths": m.warning_missing_invoice_paths, # PrimitiveField in generate_composite + "warning_missing_invoice_amount": m.warning_missing_invoice_amount, # PrimitiveField in generate_composite "warning_missing_invoice_blindedpay": m.warning_missing_invoice_blindedpay, # PrimitiveField in generate_composite "warning_missing_invoice_created_at": m.warning_missing_invoice_created_at, # PrimitiveField in generate_composite + "warning_missing_invoice_node_id": m.warning_missing_invoice_node_id, # PrimitiveField in generate_composite + "warning_missing_invoice_paths": m.warning_missing_invoice_paths, # PrimitiveField in generate_composite "warning_missing_invoice_payment_hash": m.warning_missing_invoice_payment_hash, # PrimitiveField in generate_composite - "warning_missing_invoice_amount": m.warning_missing_invoice_amount, # PrimitiveField in generate_composite "warning_missing_invoice_recurrence_basetime": m.warning_missing_invoice_recurrence_basetime, # PrimitiveField in generate_composite - "warning_missing_invoice_node_id": m.warning_missing_invoice_node_id, # PrimitiveField in generate_composite + "warning_missing_invoice_request_signature": m.warning_missing_invoice_request_signature, # PrimitiveField in generate_composite "warning_missing_invoice_signature": m.warning_missing_invoice_signature, # PrimitiveField in generate_composite - "warning_invalid_invoice_signature": m.warning_invalid_invoice_signature, # PrimitiveField in generate_composite - "fallbacks": [decode_fallbacks2py(i) for i in m.fallbacks], # ArrayField[composite] in generate_composite - "created_at": m.created_at, # PrimitiveField in generate_composite - "expiry": m.expiry, # PrimitiveField in generate_composite - "payee": hexlify(m.payee), # PrimitiveField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite - "description_hash": hexlify(m.description_hash), # PrimitiveField in generate_composite - "min_final_cltv_expiry": m.min_final_cltv_expiry, # PrimitiveField in generate_composite - "payment_secret": hexlify(m.payment_secret), # PrimitiveField in generate_composite - "payment_metadata": hexlify(m.payment_metadata), # PrimitiveField in generate_composite - "routes": [decode_routes2py(i) for i in m.routes], # ArrayField[composite] in generate_composite - "extra": [decode_extra2py(i) for i in m.extra], # ArrayField[composite] in generate_composite - "unique_id": m.unique_id, # PrimitiveField in generate_composite - "version": m.version, # PrimitiveField in generate_composite - "string": m.string, # PrimitiveField in generate_composite - "restrictions": [decode_restrictions2py(i) for i in m.restrictions], # ArrayField[composite] in generate_composite + "warning_missing_invreq_metadata": m.warning_missing_invreq_metadata, # PrimitiveField in generate_composite + "warning_missing_invreq_payer_id": m.warning_missing_invreq_payer_id, # PrimitiveField in generate_composite + "warning_missing_offer_description": m.warning_missing_offer_description, # PrimitiveField in generate_composite + "warning_missing_offer_node_id": m.warning_missing_offer_node_id, # PrimitiveField in generate_composite "warning_rune_invalid_utf8": m.warning_rune_invalid_utf8, # PrimitiveField in generate_composite - "hex": hexlify(m.hex), # PrimitiveField in generate_composite - "decrypted": hexlify(m.decrypted), # PrimitiveField in generate_composite + "warning_unknown_offer_currency": m.warning_unknown_offer_currency, # PrimitiveField in generate_composite }) @@ -1126,6 +1153,17 @@ def disconnect2py(m): }) +def feerates_onchain_fee_estimates2py(m): + return remove_default({ + "htlc_success_satoshis": m.htlc_success_satoshis, # PrimitiveField in generate_composite + "htlc_timeout_satoshis": m.htlc_timeout_satoshis, # PrimitiveField in generate_composite + "mutual_close_satoshis": m.mutual_close_satoshis, # PrimitiveField in generate_composite + "opening_channel_satoshis": m.opening_channel_satoshis, # PrimitiveField in generate_composite + "unilateral_close_nonanchor_satoshis": m.unilateral_close_nonanchor_satoshis, # PrimitiveField in generate_composite + "unilateral_close_satoshis": m.unilateral_close_satoshis, # PrimitiveField in generate_composite + }) + + def feerates_perkb_estimates2py(m): return remove_default({ "blockcount": m.blockcount, # PrimitiveField in generate_composite @@ -1136,17 +1174,17 @@ def feerates_perkb_estimates2py(m): def feerates_perkb2py(m): return remove_default({ - "min_acceptable": m.min_acceptable, # PrimitiveField in generate_composite - "max_acceptable": m.max_acceptable, # PrimitiveField in generate_composite - "floor": m.floor, # PrimitiveField in generate_composite "estimates": [feerates_perkb_estimates2py(i) for i in m.estimates], # ArrayField[composite] in generate_composite - "opening": m.opening, # PrimitiveField in generate_composite - "mutual_close": m.mutual_close, # PrimitiveField in generate_composite - "unilateral_close": m.unilateral_close, # PrimitiveField in generate_composite - "unilateral_anchor_close": m.unilateral_anchor_close, # PrimitiveField in generate_composite "delayed_to_us": m.delayed_to_us, # PrimitiveField in generate_composite + "floor": m.floor, # PrimitiveField in generate_composite "htlc_resolution": m.htlc_resolution, # PrimitiveField in generate_composite + "max_acceptable": m.max_acceptable, # PrimitiveField in generate_composite + "min_acceptable": m.min_acceptable, # PrimitiveField in generate_composite + "mutual_close": m.mutual_close, # PrimitiveField in generate_composite + "opening": m.opening, # PrimitiveField in generate_composite "penalty": m.penalty, # PrimitiveField in generate_composite + "unilateral_anchor_close": m.unilateral_anchor_close, # PrimitiveField in generate_composite + "unilateral_close": m.unilateral_close, # PrimitiveField in generate_composite }) @@ -1160,28 +1198,17 @@ def feerates_perkw_estimates2py(m): def feerates_perkw2py(m): return remove_default({ - "min_acceptable": m.min_acceptable, # PrimitiveField in generate_composite - "max_acceptable": m.max_acceptable, # PrimitiveField in generate_composite - "floor": m.floor, # PrimitiveField in generate_composite "estimates": [feerates_perkw_estimates2py(i) for i in m.estimates], # ArrayField[composite] in generate_composite - "opening": m.opening, # PrimitiveField in generate_composite - "mutual_close": m.mutual_close, # PrimitiveField in generate_composite - "unilateral_close": m.unilateral_close, # PrimitiveField in generate_composite - "unilateral_anchor_close": m.unilateral_anchor_close, # PrimitiveField in generate_composite "delayed_to_us": m.delayed_to_us, # PrimitiveField in generate_composite + "floor": m.floor, # PrimitiveField in generate_composite "htlc_resolution": m.htlc_resolution, # PrimitiveField in generate_composite + "max_acceptable": m.max_acceptable, # PrimitiveField in generate_composite + "min_acceptable": m.min_acceptable, # PrimitiveField in generate_composite + "mutual_close": m.mutual_close, # PrimitiveField in generate_composite + "opening": m.opening, # PrimitiveField in generate_composite "penalty": m.penalty, # PrimitiveField in generate_composite - }) - - -def feerates_onchain_fee_estimates2py(m): - return remove_default({ - "opening_channel_satoshis": m.opening_channel_satoshis, # PrimitiveField in generate_composite - "mutual_close_satoshis": m.mutual_close_satoshis, # PrimitiveField in generate_composite - "unilateral_close_satoshis": m.unilateral_close_satoshis, # PrimitiveField in generate_composite - "unilateral_close_nonanchor_satoshis": m.unilateral_close_nonanchor_satoshis, # PrimitiveField in generate_composite - "htlc_timeout_satoshis": m.htlc_timeout_satoshis, # PrimitiveField in generate_composite - "htlc_success_satoshis": m.htlc_success_satoshis, # PrimitiveField in generate_composite + "unilateral_anchor_close": m.unilateral_anchor_close, # PrimitiveField in generate_composite + "unilateral_close": m.unilateral_close, # PrimitiveField in generate_composite }) @@ -1193,21 +1220,21 @@ def feerates2py(m): def fetchinvoice_changes2py(m): return remove_default({ - "description_appended": m.description_appended, # PrimitiveField in generate_composite + "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite "description": m.description, # PrimitiveField in generate_composite - "vendor_removed": m.vendor_removed, # PrimitiveField in generate_composite + "description_appended": m.description_appended, # PrimitiveField in generate_composite "vendor": m.vendor, # PrimitiveField in generate_composite - "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "vendor_removed": m.vendor_removed, # PrimitiveField in generate_composite }) def fetchinvoice_next_period2py(m): return remove_default({ "counter": m.counter, # PrimitiveField in generate_composite - "starttime": m.starttime, # PrimitiveField in generate_composite "endtime": m.endtime, # PrimitiveField in generate_composite - "paywindow_start": m.paywindow_start, # PrimitiveField in generate_composite "paywindow_end": m.paywindow_end, # PrimitiveField in generate_composite + "paywindow_start": m.paywindow_start, # PrimitiveField in generate_composite + "starttime": m.starttime, # PrimitiveField in generate_composite }) @@ -1226,23 +1253,23 @@ def fundchannel_channel_type2py(m): def fundchannel2py(m): return remove_default({ - "tx": hexlify(m.tx), # PrimitiveField in generate_composite - "txid": hexlify(m.txid), # PrimitiveField in generate_composite - "outnum": m.outnum, # PrimitiveField in generate_composite "channel_id": hexlify(m.channel_id), # PrimitiveField in generate_composite "close_to": hexlify(m.close_to), # PrimitiveField in generate_composite "mindepth": m.mindepth, # PrimitiveField in generate_composite + "outnum": m.outnum, # PrimitiveField in generate_composite + "tx": hexlify(m.tx), # PrimitiveField in generate_composite + "txid": hexlify(m.txid), # PrimitiveField in generate_composite }) def getroute_route2py(m): return remove_default({ - "id": hexlify(m.id), # PrimitiveField in generate_composite - "channel": m.channel, # PrimitiveField in generate_composite - "direction": m.direction, # PrimitiveField in generate_composite + "style": str(m.style), # EnumField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "channel": m.channel, # PrimitiveField in generate_composite "delay": m.delay, # PrimitiveField in generate_composite - "style": str(m.style), # EnumField in generate_composite + "direction": m.direction, # PrimitiveField in generate_composite + "id": hexlify(m.id), # PrimitiveField in generate_composite }) @@ -1254,18 +1281,21 @@ def getroute2py(m): def listforwards_forwards2py(m): return remove_default({ + "status": str(m.status), # EnumField in generate_composite + "style": str(m.style), # EnumField in generate_composite "created_index": m.created_index, # PrimitiveField in generate_composite + "failcode": m.failcode, # PrimitiveField in generate_composite + "failreason": m.failreason, # PrimitiveField in generate_composite + "fee_msat": amount2msat(m.fee_msat), # PrimitiveField in generate_composite "in_channel": m.in_channel, # PrimitiveField in generate_composite "in_htlc_id": m.in_htlc_id, # PrimitiveField in generate_composite "in_msat": amount2msat(m.in_msat), # PrimitiveField in generate_composite - "status": str(m.status), # EnumField in generate_composite - "received_time": m.received_time, # PrimitiveField in generate_composite "out_channel": m.out_channel, # PrimitiveField in generate_composite "out_htlc_id": m.out_htlc_id, # PrimitiveField in generate_composite - "updated_index": m.updated_index, # PrimitiveField in generate_composite - "style": str(m.style), # EnumField in generate_composite - "fee_msat": amount2msat(m.fee_msat), # PrimitiveField in generate_composite "out_msat": amount2msat(m.out_msat), # PrimitiveField in generate_composite + "received_time": m.received_time, # PrimitiveField in generate_composite + "resolved_time": m.resolved_time, # PrimitiveField in generate_composite + "updated_index": m.updated_index, # PrimitiveField in generate_composite }) @@ -1277,12 +1307,12 @@ def listforwards2py(m): def listoffers_offers2py(m): return remove_default({ - "offer_id": hexlify(m.offer_id), # PrimitiveField in generate_composite "active": m.active, # PrimitiveField in generate_composite - "single_use": m.single_use, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite - "used": m.used, # 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 }) @@ -1294,20 +1324,20 @@ def listoffers2py(m): def listpays_pays2py(m): return remove_default({ - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "status": str(m.status), # EnumField in generate_composite - "destination": hexlify(m.destination), # PrimitiveField in generate_composite - "created_at": m.created_at, # PrimitiveField in generate_composite - "completed_at": m.completed_at, # PrimitiveField in generate_composite - "label": m.label, # PrimitiveField in generate_composite - "bolt11": m.bolt11, # PrimitiveField in generate_composite - "description": m.description, # PrimitiveField in generate_composite - "bolt12": m.bolt12, # PrimitiveField in generate_composite "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite "amount_sent_msat": amount2msat(m.amount_sent_msat), # PrimitiveField in generate_composite - "preimage": hexlify(m.preimage), # PrimitiveField in generate_composite - "number_of_parts": m.number_of_parts, # PrimitiveField in generate_composite + "bolt11": m.bolt11, # PrimitiveField in generate_composite + "bolt12": m.bolt12, # PrimitiveField in generate_composite + "completed_at": m.completed_at, # PrimitiveField in generate_composite + "created_at": m.created_at, # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "destination": hexlify(m.destination), # PrimitiveField in generate_composite "erroronion": hexlify(m.erroronion), # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite + "number_of_parts": m.number_of_parts, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite + "preimage": hexlify(m.preimage), # PrimitiveField in generate_composite }) @@ -1319,13 +1349,13 @@ def listpays2py(m): def listhtlcs_htlcs2py(m): return remove_default({ - "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite - "id": m.id, # PrimitiveField in generate_composite - "expiry": m.expiry, # PrimitiveField in generate_composite - "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite "direction": str(m.direction), # EnumField in generate_composite - "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite "state": str(m.state), # EnumField in generate_composite + "amount_msat": amount2msat(m.amount_msat), # PrimitiveField in generate_composite + "expiry": m.expiry, # PrimitiveField in generate_composite + "id": m.id, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite + "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite }) @@ -1337,13 +1367,13 @@ def listhtlcs2py(m): def offer2py(m): return remove_default({ - "offer_id": hexlify(m.offer_id), # PrimitiveField in generate_composite "active": m.active, # PrimitiveField in generate_composite - "single_use": m.single_use, # PrimitiveField in generate_composite "bolt12": m.bolt12, # PrimitiveField in generate_composite - "used": m.used, # PrimitiveField in generate_composite "created": m.created, # 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 }) @@ -1361,16 +1391,16 @@ def sendcustommsg2py(m): def setchannel_channels2py(m): return remove_default({ - "peer_id": hexlify(m.peer_id), # PrimitiveField in generate_composite "channel_id": hexlify(m.channel_id), # PrimitiveField in generate_composite - "short_channel_id": m.short_channel_id, # 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 "ignore_fee_limits": m.ignore_fee_limits, # PrimitiveField in generate_composite - "minimum_htlc_out_msat": amount2msat(m.minimum_htlc_out_msat), # PrimitiveField in generate_composite - "warning_htlcmin_too_low": m.warning_htlcmin_too_low, # PrimitiveField in generate_composite "maximum_htlc_out_msat": amount2msat(m.maximum_htlc_out_msat), # PrimitiveField in generate_composite + "minimum_htlc_out_msat": amount2msat(m.minimum_htlc_out_msat), # PrimitiveField in generate_composite + "peer_id": hexlify(m.peer_id), # PrimitiveField in generate_composite + "short_channel_id": m.short_channel_id, # PrimitiveField in generate_composite "warning_htlcmax_too_high": m.warning_htlcmax_too_high, # PrimitiveField in generate_composite + "warning_htlcmin_too_low": m.warning_htlcmin_too_low, # PrimitiveField in generate_composite }) @@ -1388,8 +1418,8 @@ def signinvoice2py(m): def signmessage2py(m): return remove_default({ - "signature": hexlify(m.signature), # PrimitiveField in generate_composite "recid": hexlify(m.recid), # PrimitiveField in generate_composite + "signature": hexlify(m.signature), # PrimitiveField in generate_composite "zbase": m.zbase, # PrimitiveField in generate_composite }) @@ -1400,12 +1430,29 @@ def waitblockheight2py(m): }) +def wait_details2py(m): + return remove_default({ + "status": str(m.status), # EnumField in generate_composite + "bolt11": m.bolt11, # PrimitiveField in generate_composite + "bolt12": m.bolt12, # PrimitiveField in generate_composite + "description": m.description, # PrimitiveField in generate_composite + "groupid": m.groupid, # PrimitiveField in generate_composite + "in_channel": m.in_channel, # PrimitiveField in generate_composite + "in_htlc_id": m.in_htlc_id, # PrimitiveField in generate_composite + "in_msat": amount2msat(m.in_msat), # PrimitiveField in generate_composite + "label": m.label, # PrimitiveField in generate_composite + "out_channel": m.out_channel, # PrimitiveField in generate_composite + "partid": m.partid, # PrimitiveField in generate_composite + "payment_hash": hexlify(m.payment_hash), # PrimitiveField in generate_composite + }) + + def wait2py(m): return remove_default({ "subsystem": str(m.subsystem), # EnumField in generate_composite "created": m.created, # PrimitiveField in generate_composite - "updated": m.updated, # PrimitiveField in generate_composite "deleted": m.deleted, # PrimitiveField in generate_composite + "updated": m.updated, # PrimitiveField in generate_composite }) @@ -1434,15 +1481,15 @@ def staticbackup2py(m): def bkpr_listincome_income_events2py(m): return remove_default({ "account": m.account, # PrimitiveField in generate_composite - "tag": m.tag, # PrimitiveField in generate_composite "credit_msat": amount2msat(m.credit_msat), # PrimitiveField in generate_composite - "debit_msat": amount2msat(m.debit_msat), # PrimitiveField in generate_composite "currency": m.currency, # PrimitiveField in generate_composite - "timestamp": m.timestamp, # PrimitiveField in generate_composite + "debit_msat": amount2msat(m.debit_msat), # PrimitiveField in generate_composite "description": m.description, # PrimitiveField in generate_composite "outpoint": m.outpoint, # PrimitiveField in generate_composite - "txid": hexlify(m.txid), # 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 })