diff --git a/lnbits/wallets/lnd_grpc_files/invoices_pb2.py b/lnbits/wallets/lnd_grpc_files/invoices_pb2.py index bdd55cd1..886b843c 100644 --- a/lnbits/wallets/lnd_grpc_files/invoices_pb2.py +++ b/lnbits/wallets/lnd_grpc_files/invoices_pb2.py @@ -2,7 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # NO CHECKED-IN PROTOBUF GENCODE # source: invoices.proto -# Protobuf Python Version: 5.28.1 +# Protobuf Python Version: 5.29.0 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -12,8 +12,8 @@ from google.protobuf.internal import builder as _builder _runtime_version.ValidateProtobufRuntimeVersion( _runtime_version.Domain.PUBLIC, 5, - 28, - 1, + 29, + 0, '', 'invoices.proto' ) @@ -24,6 +24,7 @@ _sym_db = _symbol_database.Default() import lnbits.wallets.lnd_grpc_files.lightning_pb2 as lightning__pb2 + DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0einvoices.proto\x12\x0binvoicesrpc\x1a\x0flightning.proto\"(\n\x10\x43\x61ncelInvoiceMsg\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\"\x13\n\x11\x43\x61ncelInvoiceResp\"\xe4\x01\n\x15\x41\x64\x64HoldInvoiceRequest\x12\x0c\n\x04memo\x18\x01 \x01(\t\x12\x0c\n\x04hash\x18\x02 \x01(\x0c\x12\r\n\x05value\x18\x03 \x01(\x03\x12\x12\n\nvalue_msat\x18\n \x01(\x03\x12\x18\n\x10\x64\x65scription_hash\x18\x04 \x01(\x0c\x12\x0e\n\x06\x65xpiry\x18\x05 \x01(\x03\x12\x15\n\rfallback_addr\x18\x06 \x01(\t\x12\x13\n\x0b\x63ltv_expiry\x18\x07 \x01(\x04\x12%\n\x0broute_hints\x18\x08 \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x0f\n\x07private\x18\t \x01(\x08\"V\n\x12\x41\x64\x64HoldInvoiceResp\x12\x17\n\x0fpayment_request\x18\x01 \x01(\t\x12\x11\n\tadd_index\x18\x02 \x01(\x04\x12\x14\n\x0cpayment_addr\x18\x03 \x01(\x0c\"$\n\x10SettleInvoiceMsg\x12\x10\n\x08preimage\x18\x01 \x01(\x0c\"\x13\n\x11SettleInvoiceResp\"5\n\x1dSubscribeSingleInvoiceRequest\x12\x0e\n\x06r_hash\x18\x02 \x01(\x0cJ\x04\x08\x01\x10\x02\"\x99\x01\n\x10LookupInvoiceMsg\x12\x16\n\x0cpayment_hash\x18\x01 \x01(\x0cH\x00\x12\x16\n\x0cpayment_addr\x18\x02 \x01(\x0cH\x00\x12\x10\n\x06set_id\x18\x03 \x01(\x0cH\x00\x12\x34\n\x0flookup_modifier\x18\x04 \x01(\x0e\x32\x1b.invoicesrpc.LookupModifierB\r\n\x0binvoice_ref\".\n\nCircuitKey\x12\x0f\n\x07\x63han_id\x18\x01 \x01(\x04\x12\x0f\n\x07htlc_id\x18\x02 \x01(\x04\"\xdd\x02\n\x11HtlcModifyRequest\x12\x1f\n\x07invoice\x18\x01 \x01(\x0b\x32\x0e.lnrpc.Invoice\x12\x36\n\x15\x65xit_htlc_circuit_key\x18\x02 \x01(\x0b\x32\x17.invoicesrpc.CircuitKey\x12\x15\n\rexit_htlc_amt\x18\x03 \x01(\x04\x12\x18\n\x10\x65xit_htlc_expiry\x18\x04 \x01(\r\x12\x16\n\x0e\x63urrent_height\x18\x05 \x01(\r\x12\x64\n\x1d\x65xit_htlc_wire_custom_records\x18\x06 \x03(\x0b\x32=.invoicesrpc.HtlcModifyRequest.ExitHtlcWireCustomRecordsEntry\x1a@\n\x1e\x45xitHtlcWireCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"z\n\x12HtlcModifyResponse\x12,\n\x0b\x63ircuit_key\x18\x01 \x01(\x0b\x32\x17.invoicesrpc.CircuitKey\x12\x15\n\x08\x61mt_paid\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x12\n\ncancel_set\x18\x03 \x01(\x08\x42\x0b\n\t_amt_paid*D\n\x0eLookupModifier\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x11\n\rHTLC_SET_ONLY\x10\x01\x12\x12\n\x0eHTLC_SET_BLANK\x10\x02\x32\xf0\x03\n\x08Invoices\x12V\n\x16SubscribeSingleInvoice\x12*.invoicesrpc.SubscribeSingleInvoiceRequest\x1a\x0e.lnrpc.Invoice0\x01\x12N\n\rCancelInvoice\x12\x1d.invoicesrpc.CancelInvoiceMsg\x1a\x1e.invoicesrpc.CancelInvoiceResp\x12U\n\x0e\x41\x64\x64HoldInvoice\x12\".invoicesrpc.AddHoldInvoiceRequest\x1a\x1f.invoicesrpc.AddHoldInvoiceResp\x12N\n\rSettleInvoice\x12\x1d.invoicesrpc.SettleInvoiceMsg\x1a\x1e.invoicesrpc.SettleInvoiceResp\x12@\n\x0fLookupInvoiceV2\x12\x1d.invoicesrpc.LookupInvoiceMsg\x1a\x0e.lnrpc.Invoice\x12S\n\x0cHtlcModifier\x12\x1f.invoicesrpc.HtlcModifyResponse\x1a\x1e.invoicesrpc.HtlcModifyRequest(\x01\x30\x01\x42\x33Z1github.com/lightningnetwork/lnd/lnrpc/invoicesrpcb\x06proto3') _globals = globals() diff --git a/lnbits/wallets/lnd_grpc_files/invoices_pb2.pyi b/lnbits/wallets/lnd_grpc_files/invoices_pb2.pyi new file mode 100644 index 00000000..fefbbd94 --- /dev/null +++ b/lnbits/wallets/lnd_grpc_files/invoices_pb2.pyi @@ -0,0 +1,130 @@ +import lnbits.wallets.lnd_grpc_files.lightning_pb2 as _lightning_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class LookupModifier(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + DEFAULT: _ClassVar[LookupModifier] + HTLC_SET_ONLY: _ClassVar[LookupModifier] + HTLC_SET_BLANK: _ClassVar[LookupModifier] +DEFAULT: LookupModifier +HTLC_SET_ONLY: LookupModifier +HTLC_SET_BLANK: LookupModifier + +class CancelInvoiceMsg(_message.Message): + __slots__ = ("payment_hash",) + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + payment_hash: bytes + def __init__(self, payment_hash: _Optional[bytes] = ...) -> None: ... + +class CancelInvoiceResp(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class AddHoldInvoiceRequest(_message.Message): + __slots__ = ("memo", "hash", "value", "value_msat", "description_hash", "expiry", "fallback_addr", "cltv_expiry", "route_hints", "private") + MEMO_FIELD_NUMBER: _ClassVar[int] + HASH_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + VALUE_MSAT_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_HASH_FIELD_NUMBER: _ClassVar[int] + EXPIRY_FIELD_NUMBER: _ClassVar[int] + FALLBACK_ADDR_FIELD_NUMBER: _ClassVar[int] + CLTV_EXPIRY_FIELD_NUMBER: _ClassVar[int] + ROUTE_HINTS_FIELD_NUMBER: _ClassVar[int] + PRIVATE_FIELD_NUMBER: _ClassVar[int] + memo: str + hash: bytes + value: int + value_msat: int + description_hash: bytes + expiry: int + fallback_addr: str + cltv_expiry: int + route_hints: _containers.RepeatedCompositeFieldContainer[_lightning_pb2.RouteHint] + private: bool + def __init__(self, memo: _Optional[str] = ..., hash: _Optional[bytes] = ..., value: _Optional[int] = ..., value_msat: _Optional[int] = ..., description_hash: _Optional[bytes] = ..., expiry: _Optional[int] = ..., fallback_addr: _Optional[str] = ..., cltv_expiry: _Optional[int] = ..., route_hints: _Optional[_Iterable[_Union[_lightning_pb2.RouteHint, _Mapping]]] = ..., private: bool = ...) -> None: ... + +class AddHoldInvoiceResp(_message.Message): + __slots__ = ("payment_request", "add_index", "payment_addr") + PAYMENT_REQUEST_FIELD_NUMBER: _ClassVar[int] + ADD_INDEX_FIELD_NUMBER: _ClassVar[int] + PAYMENT_ADDR_FIELD_NUMBER: _ClassVar[int] + payment_request: str + add_index: int + payment_addr: bytes + def __init__(self, payment_request: _Optional[str] = ..., add_index: _Optional[int] = ..., payment_addr: _Optional[bytes] = ...) -> None: ... + +class SettleInvoiceMsg(_message.Message): + __slots__ = ("preimage",) + PREIMAGE_FIELD_NUMBER: _ClassVar[int] + preimage: bytes + def __init__(self, preimage: _Optional[bytes] = ...) -> None: ... + +class SettleInvoiceResp(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class SubscribeSingleInvoiceRequest(_message.Message): + __slots__ = ("r_hash",) + R_HASH_FIELD_NUMBER: _ClassVar[int] + r_hash: bytes + def __init__(self, r_hash: _Optional[bytes] = ...) -> None: ... + +class LookupInvoiceMsg(_message.Message): + __slots__ = ("payment_hash", "payment_addr", "set_id", "lookup_modifier") + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + PAYMENT_ADDR_FIELD_NUMBER: _ClassVar[int] + SET_ID_FIELD_NUMBER: _ClassVar[int] + LOOKUP_MODIFIER_FIELD_NUMBER: _ClassVar[int] + payment_hash: bytes + payment_addr: bytes + set_id: bytes + lookup_modifier: LookupModifier + def __init__(self, payment_hash: _Optional[bytes] = ..., payment_addr: _Optional[bytes] = ..., set_id: _Optional[bytes] = ..., lookup_modifier: _Optional[_Union[LookupModifier, str]] = ...) -> None: ... + +class CircuitKey(_message.Message): + __slots__ = ("chan_id", "htlc_id") + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + HTLC_ID_FIELD_NUMBER: _ClassVar[int] + chan_id: int + htlc_id: int + def __init__(self, chan_id: _Optional[int] = ..., htlc_id: _Optional[int] = ...) -> None: ... + +class HtlcModifyRequest(_message.Message): + __slots__ = ("invoice", "exit_htlc_circuit_key", "exit_htlc_amt", "exit_htlc_expiry", "current_height", "exit_htlc_wire_custom_records") + class ExitHtlcWireCustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + INVOICE_FIELD_NUMBER: _ClassVar[int] + EXIT_HTLC_CIRCUIT_KEY_FIELD_NUMBER: _ClassVar[int] + EXIT_HTLC_AMT_FIELD_NUMBER: _ClassVar[int] + EXIT_HTLC_EXPIRY_FIELD_NUMBER: _ClassVar[int] + CURRENT_HEIGHT_FIELD_NUMBER: _ClassVar[int] + EXIT_HTLC_WIRE_CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + invoice: _lightning_pb2.Invoice + exit_htlc_circuit_key: CircuitKey + exit_htlc_amt: int + exit_htlc_expiry: int + current_height: int + exit_htlc_wire_custom_records: _containers.ScalarMap[int, bytes] + def __init__(self, invoice: _Optional[_Union[_lightning_pb2.Invoice, _Mapping]] = ..., exit_htlc_circuit_key: _Optional[_Union[CircuitKey, _Mapping]] = ..., exit_htlc_amt: _Optional[int] = ..., exit_htlc_expiry: _Optional[int] = ..., current_height: _Optional[int] = ..., exit_htlc_wire_custom_records: _Optional[_Mapping[int, bytes]] = ...) -> None: ... + +class HtlcModifyResponse(_message.Message): + __slots__ = ("circuit_key", "amt_paid", "cancel_set") + CIRCUIT_KEY_FIELD_NUMBER: _ClassVar[int] + AMT_PAID_FIELD_NUMBER: _ClassVar[int] + CANCEL_SET_FIELD_NUMBER: _ClassVar[int] + circuit_key: CircuitKey + amt_paid: int + cancel_set: bool + def __init__(self, circuit_key: _Optional[_Union[CircuitKey, _Mapping]] = ..., amt_paid: _Optional[int] = ..., cancel_set: bool = ...) -> None: ... diff --git a/lnbits/wallets/lnd_grpc_files/invoices_pb2_grpc.py b/lnbits/wallets/lnd_grpc_files/invoices_pb2_grpc.py index 041644ae..480b4bab 100644 --- a/lnbits/wallets/lnd_grpc_files/invoices_pb2_grpc.py +++ b/lnbits/wallets/lnd_grpc_files/invoices_pb2_grpc.py @@ -6,7 +6,7 @@ import warnings import lnbits.wallets.lnd_grpc_files.invoices_pb2 as invoices__pb2 import lnbits.wallets.lnd_grpc_files.lightning_pb2 as lightning__pb2 -GRPC_GENERATED_VERSION = '1.68.1' +GRPC_GENERATED_VERSION = '1.69.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False diff --git a/lnbits/wallets/lnd_grpc_files/lightning_pb2.py b/lnbits/wallets/lnd_grpc_files/lightning_pb2.py index f360a7df..375d6573 100644 --- a/lnbits/wallets/lnd_grpc_files/lightning_pb2.py +++ b/lnbits/wallets/lnd_grpc_files/lightning_pb2.py @@ -2,7 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # NO CHECKED-IN PROTOBUF GENCODE # source: lightning.proto -# Protobuf Python Version: 5.28.1 +# Protobuf Python Version: 5.29.0 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -12,8 +12,8 @@ from google.protobuf.internal import builder as _builder _runtime_version.ValidateProtobufRuntimeVersion( _runtime_version.Domain.PUBLIC, 5, - 28, - 1, + 29, + 0, '', 'lightning.proto' ) @@ -24,7 +24,7 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0flightning.proto\x12\x05lnrpc\"B\n\x1bLookupHtlcResolutionRequest\x12\x0f\n\x07\x63han_id\x18\x01 \x01(\x04\x12\x12\n\nhtlc_index\x18\x02 \x01(\x04\"A\n\x1cLookupHtlcResolutionResponse\x12\x0f\n\x07settled\x18\x01 \x01(\x08\x12\x10\n\x08offchain\x18\x02 \x01(\x08\" \n\x1eSubscribeCustomMessagesRequest\"9\n\rCustomMessage\x12\x0c\n\x04peer\x18\x01 \x01(\x0c\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"D\n\x18SendCustomMessageRequest\x12\x0c\n\x04peer\x18\x01 \x01(\x0c\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"\x1b\n\x19SendCustomMessageResponse\"\xa2\x01\n\x04Utxo\x12(\n\x0c\x61\x64\x64ress_type\x18\x01 \x01(\x0e\x32\x12.lnrpc.AddressType\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x12\n\namount_sat\x18\x03 \x01(\x03\x12\x11\n\tpk_script\x18\x04 \x01(\t\x12!\n\x08outpoint\x18\x05 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12\x15\n\rconfirmations\x18\x06 \x01(\x03\"\x9e\x01\n\x0cOutputDetail\x12,\n\x0boutput_type\x18\x01 \x01(\x0e\x32\x17.lnrpc.OutputScriptType\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x11\n\tpk_script\x18\x03 \x01(\t\x12\x14\n\x0coutput_index\x18\x04 \x01(\x03\x12\x0e\n\x06\x61mount\x18\x05 \x01(\x03\x12\x16\n\x0eis_our_address\x18\x06 \x01(\x08\"\xbc\x02\n\x0bTransaction\x12\x0f\n\x07tx_hash\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x19\n\x11num_confirmations\x18\x03 \x01(\x05\x12\x12\n\nblock_hash\x18\x04 \x01(\t\x12\x14\n\x0c\x62lock_height\x18\x05 \x01(\x05\x12\x12\n\ntime_stamp\x18\x06 \x01(\x03\x12\x12\n\ntotal_fees\x18\x07 \x01(\x03\x12\x1a\n\x0e\x64\x65st_addresses\x18\x08 \x03(\tB\x02\x18\x01\x12+\n\x0eoutput_details\x18\x0b \x03(\x0b\x32\x13.lnrpc.OutputDetail\x12\x12\n\nraw_tx_hex\x18\t \x01(\t\x12\r\n\x05label\x18\n \x01(\t\x12\x33\n\x12previous_outpoints\x18\x0c \x03(\x0b\x32\x17.lnrpc.PreviousOutPoint\"S\n\x16GetTransactionsRequest\x12\x14\n\x0cstart_height\x18\x01 \x01(\x05\x12\x12\n\nend_height\x18\x02 \x01(\x05\x12\x0f\n\x07\x61\x63\x63ount\x18\x03 \x01(\t\">\n\x12TransactionDetails\x12(\n\x0ctransactions\x18\x01 \x03(\x0b\x32\x12.lnrpc.Transaction\"M\n\x08\x46\x65\x65Limit\x12\x0f\n\x05\x66ixed\x18\x01 \x01(\x03H\x00\x12\x14\n\nfixed_msat\x18\x03 \x01(\x03H\x00\x12\x11\n\x07percent\x18\x02 \x01(\x03H\x00\x42\x07\n\x05limit\"\x8a\x04\n\x0bSendRequest\x12\x0c\n\x04\x64\x65st\x18\x01 \x01(\x0c\x12\x17\n\x0b\x64\x65st_string\x18\x02 \x01(\tB\x02\x18\x01\x12\x0b\n\x03\x61mt\x18\x03 \x01(\x03\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\x12\x1f\n\x13payment_hash_string\x18\x05 \x01(\tB\x02\x18\x01\x12\x17\n\x0fpayment_request\x18\x06 \x01(\t\x12\x18\n\x10\x66inal_cltv_delta\x18\x07 \x01(\x05\x12\"\n\tfee_limit\x18\x08 \x01(\x0b\x32\x0f.lnrpc.FeeLimit\x12\x1c\n\x10outgoing_chan_id\x18\t \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0flast_hop_pubkey\x18\r \x01(\x0c\x12\x12\n\ncltv_limit\x18\n \x01(\r\x12\x46\n\x13\x64\x65st_custom_records\x18\x0b \x03(\x0b\x32).lnrpc.SendRequest.DestCustomRecordsEntry\x12\x1a\n\x12\x61llow_self_payment\x18\x0e \x01(\x08\x12(\n\rdest_features\x18\x0f \x03(\x0e\x32\x11.lnrpc.FeatureBit\x12\x14\n\x0cpayment_addr\x18\x10 \x01(\x0c\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"z\n\x0cSendResponse\x12\x15\n\rpayment_error\x18\x01 \x01(\t\x12\x18\n\x10payment_preimage\x18\x02 \x01(\x0c\x12#\n\rpayment_route\x18\x03 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\"n\n\x12SendToRouteRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x1f\n\x13payment_hash_string\x18\x02 \x01(\tB\x02\x18\x01\x12\x1b\n\x05route\x18\x04 \x01(\x0b\x32\x0c.lnrpc.RouteJ\x04\x08\x03\x10\x04\"\x98\x03\n\x14\x43hannelAcceptRequest\x12\x13\n\x0bnode_pubkey\x18\x01 \x01(\x0c\x12\x12\n\nchain_hash\x18\x02 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x03 \x01(\x0c\x12\x13\n\x0b\x66unding_amt\x18\x04 \x01(\x04\x12\x10\n\x08push_amt\x18\x05 \x01(\x04\x12\x12\n\ndust_limit\x18\x06 \x01(\x04\x12\x1b\n\x13max_value_in_flight\x18\x07 \x01(\x04\x12\x17\n\x0f\x63hannel_reserve\x18\x08 \x01(\x04\x12\x10\n\x08min_htlc\x18\t \x01(\x04\x12\x12\n\nfee_per_kw\x18\n \x01(\x04\x12\x11\n\tcsv_delay\x18\x0b \x01(\r\x12\x1a\n\x12max_accepted_htlcs\x18\x0c \x01(\r\x12\x15\n\rchannel_flags\x18\r \x01(\r\x12.\n\x0f\x63ommitment_type\x18\x0e \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x17\n\x0fwants_zero_conf\x18\x0f \x01(\x08\x12\x18\n\x10wants_scid_alias\x18\x10 \x01(\x08\"\x87\x02\n\x15\x43hannelAcceptResponse\x12\x0e\n\x06\x61\x63\x63\x65pt\x18\x01 \x01(\x08\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12\x18\n\x10upfront_shutdown\x18\x04 \x01(\t\x12\x11\n\tcsv_delay\x18\x05 \x01(\r\x12\x13\n\x0breserve_sat\x18\x06 \x01(\x04\x12\x1a\n\x12in_flight_max_msat\x18\x07 \x01(\x04\x12\x16\n\x0emax_htlc_count\x18\x08 \x01(\r\x12\x13\n\x0bmin_htlc_in\x18\t \x01(\x04\x12\x18\n\x10min_accept_depth\x18\n \x01(\r\x12\x11\n\tzero_conf\x18\x0b \x01(\x08\"n\n\x0c\x43hannelPoint\x12\x1c\n\x12\x66unding_txid_bytes\x18\x01 \x01(\x0cH\x00\x12\x1a\n\x10\x66unding_txid_str\x18\x02 \x01(\tH\x00\x12\x14\n\x0coutput_index\x18\x03 \x01(\rB\x0e\n\x0c\x66unding_txid\"F\n\x08OutPoint\x12\x12\n\ntxid_bytes\x18\x01 \x01(\x0c\x12\x10\n\x08txid_str\x18\x02 \x01(\t\x12\x14\n\x0coutput_index\x18\x03 \x01(\r\";\n\x10PreviousOutPoint\x12\x10\n\x08outpoint\x18\x01 \x01(\t\x12\x15\n\ris_our_output\x18\x02 \x01(\x08\"0\n\x10LightningAddress\x12\x0e\n\x06pubkey\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\"\x8e\x02\n\x12\x45stimateFeeRequest\x12\x41\n\x0c\x41\x64\x64rToAmount\x18\x01 \x03(\x0b\x32+.lnrpc.EstimateFeeRequest.AddrToAmountEntry\x12\x13\n\x0btarget_conf\x18\x02 \x01(\x05\x12\x11\n\tmin_confs\x18\x03 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x04 \x01(\x08\x12=\n\x17\x63oin_selection_strategy\x18\x05 \x01(\x0e\x32\x1c.lnrpc.CoinSelectionStrategy\x1a\x33\n\x11\x41\x64\x64rToAmountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\"_\n\x13\x45stimateFeeResponse\x12\x0f\n\x07\x66\x65\x65_sat\x18\x01 \x01(\x03\x12 \n\x14\x66\x65\x65rate_sat_per_byte\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x15\n\rsat_per_vbyte\x18\x03 \x01(\x04\"\xc8\x02\n\x0fSendManyRequest\x12>\n\x0c\x41\x64\x64rToAmount\x18\x01 \x03(\x0b\x32(.lnrpc.SendManyRequest.AddrToAmountEntry\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x04 \x01(\x04\x12\x18\n\x0csat_per_byte\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\r\n\x05label\x18\x06 \x01(\t\x12\x11\n\tmin_confs\x18\x07 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x08 \x01(\x08\x12=\n\x17\x63oin_selection_strategy\x18\t \x01(\x0e\x32\x1c.lnrpc.CoinSelectionStrategy\x1a\x33\n\x11\x41\x64\x64rToAmountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\" \n\x10SendManyResponse\x12\x0c\n\x04txid\x18\x01 \x01(\t\"\xa8\x02\n\x10SendCoinsRequest\x12\x0c\n\x04\x61\x64\x64r\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x04 \x01(\x04\x12\x18\n\x0csat_per_byte\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x10\n\x08send_all\x18\x06 \x01(\x08\x12\r\n\x05label\x18\x07 \x01(\t\x12\x11\n\tmin_confs\x18\x08 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\t \x01(\x08\x12=\n\x17\x63oin_selection_strategy\x18\n \x01(\x0e\x32\x1c.lnrpc.CoinSelectionStrategy\x12\"\n\toutpoints\x18\x0b \x03(\x0b\x32\x0f.lnrpc.OutPoint\"!\n\x11SendCoinsResponse\x12\x0c\n\x04txid\x18\x01 \x01(\t\"K\n\x12ListUnspentRequest\x12\x11\n\tmin_confs\x18\x01 \x01(\x05\x12\x11\n\tmax_confs\x18\x02 \x01(\x05\x12\x0f\n\x07\x61\x63\x63ount\x18\x03 \x01(\t\"1\n\x13ListUnspentResponse\x12\x1a\n\x05utxos\x18\x01 \x03(\x0b\x32\x0b.lnrpc.Utxo\"F\n\x11NewAddressRequest\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.lnrpc.AddressType\x12\x0f\n\x07\x61\x63\x63ount\x18\x02 \x01(\t\"%\n\x12NewAddressResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"6\n\x12SignMessageRequest\x12\x0b\n\x03msg\x18\x01 \x01(\x0c\x12\x13\n\x0bsingle_hash\x18\x02 \x01(\x08\"(\n\x13SignMessageResponse\x12\x11\n\tsignature\x18\x01 \x01(\t\"6\n\x14VerifyMessageRequest\x12\x0b\n\x03msg\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\t\"6\n\x15VerifyMessageResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\x12\x0e\n\x06pubkey\x18\x02 \x01(\t\"Z\n\x12\x43onnectPeerRequest\x12%\n\x04\x61\x64\x64r\x18\x01 \x01(\x0b\x32\x17.lnrpc.LightningAddress\x12\x0c\n\x04perm\x18\x02 \x01(\x08\x12\x0f\n\x07timeout\x18\x03 \x01(\x04\"\x15\n\x13\x43onnectPeerResponse\"(\n\x15\x44isconnectPeerRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\"\x18\n\x16\x44isconnectPeerResponse\"\xa5\x01\n\x04HTLC\x12\x10\n\x08incoming\x18\x01 \x01(\x08\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x11\n\thash_lock\x18\x03 \x01(\x0c\x12\x19\n\x11\x65xpiration_height\x18\x04 \x01(\r\x12\x12\n\nhtlc_index\x18\x05 \x01(\x04\x12\x1a\n\x12\x66orwarding_channel\x18\x06 \x01(\x04\x12\x1d\n\x15\x66orwarding_htlc_index\x18\x07 \x01(\x04\"\xaa\x01\n\x12\x43hannelConstraints\x12\x11\n\tcsv_delay\x18\x01 \x01(\r\x12\x18\n\x10\x63han_reserve_sat\x18\x02 \x01(\x04\x12\x16\n\x0e\x64ust_limit_sat\x18\x03 \x01(\x04\x12\x1c\n\x14max_pending_amt_msat\x18\x04 \x01(\x04\x12\x15\n\rmin_htlc_msat\x18\x05 \x01(\x04\x12\x1a\n\x12max_accepted_htlcs\x18\x06 \x01(\r\"\xd6\x07\n\x07\x43hannel\x12\x0e\n\x06\x61\x63tive\x18\x01 \x01(\x08\x12\x15\n\rremote_pubkey\x18\x02 \x01(\t\x12\x15\n\rchannel_point\x18\x03 \x01(\t\x12\x13\n\x07\x63han_id\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x10\n\x08\x63\x61pacity\x18\x05 \x01(\x03\x12\x15\n\rlocal_balance\x18\x06 \x01(\x03\x12\x16\n\x0eremote_balance\x18\x07 \x01(\x03\x12\x12\n\ncommit_fee\x18\x08 \x01(\x03\x12\x15\n\rcommit_weight\x18\t \x01(\x03\x12\x12\n\nfee_per_kw\x18\n \x01(\x03\x12\x19\n\x11unsettled_balance\x18\x0b \x01(\x03\x12\x1b\n\x13total_satoshis_sent\x18\x0c \x01(\x03\x12\x1f\n\x17total_satoshis_received\x18\r \x01(\x03\x12\x13\n\x0bnum_updates\x18\x0e \x01(\x04\x12\"\n\rpending_htlcs\x18\x0f \x03(\x0b\x32\x0b.lnrpc.HTLC\x12\x15\n\tcsv_delay\x18\x10 \x01(\rB\x02\x18\x01\x12\x0f\n\x07private\x18\x11 \x01(\x08\x12\x11\n\tinitiator\x18\x12 \x01(\x08\x12\x19\n\x11\x63han_status_flags\x18\x13 \x01(\t\x12\"\n\x16local_chan_reserve_sat\x18\x14 \x01(\x03\x42\x02\x18\x01\x12#\n\x17remote_chan_reserve_sat\x18\x15 \x01(\x03\x42\x02\x18\x01\x12\x1d\n\x11static_remote_key\x18\x16 \x01(\x08\x42\x02\x18\x01\x12.\n\x0f\x63ommitment_type\x18\x1a \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x10\n\x08lifetime\x18\x17 \x01(\x03\x12\x0e\n\x06uptime\x18\x18 \x01(\x03\x12\x15\n\rclose_address\x18\x19 \x01(\t\x12\x17\n\x0fpush_amount_sat\x18\x1b \x01(\x04\x12\x13\n\x0bthaw_height\x18\x1c \x01(\r\x12\x34\n\x11local_constraints\x18\x1d \x01(\x0b\x32\x19.lnrpc.ChannelConstraints\x12\x35\n\x12remote_constraints\x18\x1e \x01(\x0b\x32\x19.lnrpc.ChannelConstraints\x12\x13\n\x0b\x61lias_scids\x18\x1f \x03(\x04\x12\x11\n\tzero_conf\x18 \x01(\x08\x12 \n\x18zero_conf_confirmed_scid\x18! \x01(\x04\x12\x12\n\npeer_alias\x18\" \x01(\t\x12\x1b\n\x0fpeer_scid_alias\x18# \x01(\x04\x42\x02\x30\x01\x12\x0c\n\x04memo\x18$ \x01(\t\x12\x1b\n\x13\x63ustom_channel_data\x18% \x01(\x0c\"\x95\x01\n\x13ListChannelsRequest\x12\x13\n\x0b\x61\x63tive_only\x18\x01 \x01(\x08\x12\x15\n\rinactive_only\x18\x02 \x01(\x08\x12\x13\n\x0bpublic_only\x18\x03 \x01(\x08\x12\x14\n\x0cprivate_only\x18\x04 \x01(\x08\x12\x0c\n\x04peer\x18\x05 \x01(\x0c\x12\x19\n\x11peer_alias_lookup\x18\x06 \x01(\x08\"8\n\x14ListChannelsResponse\x12 \n\x08\x63hannels\x18\x0b \x03(\x0b\x32\x0e.lnrpc.Channel\".\n\x08\x41liasMap\x12\x11\n\tbase_scid\x18\x01 \x01(\x04\x12\x0f\n\x07\x61liases\x18\x02 \x03(\x04\"\x14\n\x12ListAliasesRequest\":\n\x13ListAliasesResponse\x12#\n\nalias_maps\x18\x01 \x03(\x0b\x32\x0f.lnrpc.AliasMap\"\xe4\x04\n\x13\x43hannelCloseSummary\x12\x15\n\rchannel_point\x18\x01 \x01(\t\x12\x13\n\x07\x63han_id\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchain_hash\x18\x03 \x01(\t\x12\x17\n\x0f\x63losing_tx_hash\x18\x04 \x01(\t\x12\x15\n\rremote_pubkey\x18\x05 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x06 \x01(\x03\x12\x14\n\x0c\x63lose_height\x18\x07 \x01(\r\x12\x17\n\x0fsettled_balance\x18\x08 \x01(\x03\x12\x1b\n\x13time_locked_balance\x18\t \x01(\x03\x12:\n\nclose_type\x18\n \x01(\x0e\x32&.lnrpc.ChannelCloseSummary.ClosureType\x12(\n\x0eopen_initiator\x18\x0b \x01(\x0e\x32\x10.lnrpc.Initiator\x12)\n\x0f\x63lose_initiator\x18\x0c \x01(\x0e\x32\x10.lnrpc.Initiator\x12&\n\x0bresolutions\x18\r \x03(\x0b\x32\x11.lnrpc.Resolution\x12\x13\n\x0b\x61lias_scids\x18\x0e \x03(\x04\x12$\n\x18zero_conf_confirmed_scid\x18\x0f \x01(\x04\x42\x02\x30\x01\"\x8a\x01\n\x0b\x43losureType\x12\x15\n\x11\x43OOPERATIVE_CLOSE\x10\x00\x12\x15\n\x11LOCAL_FORCE_CLOSE\x10\x01\x12\x16\n\x12REMOTE_FORCE_CLOSE\x10\x02\x12\x10\n\x0c\x42REACH_CLOSE\x10\x03\x12\x14\n\x10\x46UNDING_CANCELED\x10\x04\x12\r\n\tABANDONED\x10\x05\"\xb2\x01\n\nResolution\x12.\n\x0fresolution_type\x18\x01 \x01(\x0e\x32\x15.lnrpc.ResolutionType\x12)\n\x07outcome\x18\x02 \x01(\x0e\x32\x18.lnrpc.ResolutionOutcome\x12!\n\x08outpoint\x18\x03 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12\x12\n\namount_sat\x18\x04 \x01(\x04\x12\x12\n\nsweep_txid\x18\x05 \x01(\t\"\x94\x01\n\x15\x43losedChannelsRequest\x12\x13\n\x0b\x63ooperative\x18\x01 \x01(\x08\x12\x13\n\x0blocal_force\x18\x02 \x01(\x08\x12\x14\n\x0cremote_force\x18\x03 \x01(\x08\x12\x0e\n\x06\x62reach\x18\x04 \x01(\x08\x12\x18\n\x10\x66unding_canceled\x18\x05 \x01(\x08\x12\x11\n\tabandoned\x18\x06 \x01(\x08\"F\n\x16\x43losedChannelsResponse\x12,\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1a.lnrpc.ChannelCloseSummary\"\xef\x03\n\x04Peer\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x12\n\nbytes_sent\x18\x04 \x01(\x04\x12\x12\n\nbytes_recv\x18\x05 \x01(\x04\x12\x10\n\x08sat_sent\x18\x06 \x01(\x03\x12\x10\n\x08sat_recv\x18\x07 \x01(\x03\x12\x0f\n\x07inbound\x18\x08 \x01(\x08\x12\x11\n\tping_time\x18\t \x01(\x03\x12\'\n\tsync_type\x18\n \x01(\x0e\x32\x14.lnrpc.Peer.SyncType\x12+\n\x08\x66\x65\x61tures\x18\x0b \x03(\x0b\x32\x19.lnrpc.Peer.FeaturesEntry\x12\'\n\x06\x65rrors\x18\x0c \x03(\x0b\x32\x17.lnrpc.TimestampedError\x12\x12\n\nflap_count\x18\r \x01(\x05\x12\x14\n\x0clast_flap_ns\x18\x0e \x01(\x03\x12\x19\n\x11last_ping_payload\x18\x0f \x01(\x0c\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\"P\n\x08SyncType\x12\x10\n\x0cUNKNOWN_SYNC\x10\x00\x12\x0f\n\x0b\x41\x43TIVE_SYNC\x10\x01\x12\x10\n\x0cPASSIVE_SYNC\x10\x02\x12\x0f\n\x0bPINNED_SYNC\x10\x03\"4\n\x10TimestampedError\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"(\n\x10ListPeersRequest\x12\x14\n\x0clatest_error\x18\x01 \x01(\x08\"/\n\x11ListPeersResponse\x12\x1a\n\x05peers\x18\x01 \x03(\x0b\x32\x0b.lnrpc.Peer\"\x17\n\x15PeerEventSubscription\"v\n\tPeerEvent\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12(\n\x04type\x18\x02 \x01(\x0e\x32\x1a.lnrpc.PeerEvent.EventType\".\n\tEventType\x12\x0f\n\x0bPEER_ONLINE\x10\x00\x12\x10\n\x0cPEER_OFFLINE\x10\x01\"\x10\n\x0eGetInfoRequest\"\xde\x04\n\x0fGetInfoResponse\x12\x0f\n\x07version\x18\x0e \x01(\t\x12\x13\n\x0b\x63ommit_hash\x18\x14 \x01(\t\x12\x17\n\x0fidentity_pubkey\x18\x01 \x01(\t\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\r\n\x05\x63olor\x18\x11 \x01(\t\x12\x1c\n\x14num_pending_channels\x18\x03 \x01(\r\x12\x1b\n\x13num_active_channels\x18\x04 \x01(\r\x12\x1d\n\x15num_inactive_channels\x18\x0f \x01(\r\x12\x11\n\tnum_peers\x18\x05 \x01(\r\x12\x14\n\x0c\x62lock_height\x18\x06 \x01(\r\x12\x12\n\nblock_hash\x18\x08 \x01(\t\x12\x1d\n\x15\x62\x65st_header_timestamp\x18\r \x01(\x03\x12\x17\n\x0fsynced_to_chain\x18\t \x01(\x08\x12\x17\n\x0fsynced_to_graph\x18\x12 \x01(\x08\x12\x13\n\x07testnet\x18\n \x01(\x08\x42\x02\x18\x01\x12\x1c\n\x06\x63hains\x18\x10 \x03(\x0b\x32\x0c.lnrpc.Chain\x12\x0c\n\x04uris\x18\x0c \x03(\t\x12\x36\n\x08\x66\x65\x61tures\x18\x13 \x03(\x0b\x32$.lnrpc.GetInfoResponse.FeaturesEntry\x12 \n\x18require_htlc_interceptor\x18\x15 \x01(\x08\x12$\n\x1cstore_final_htlc_resolutions\x18\x16 \x01(\x08\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01J\x04\x08\x0b\x10\x0c\"\x15\n\x13GetDebugInfoRequest\"\x8b\x01\n\x14GetDebugInfoResponse\x12\x37\n\x06\x63onfig\x18\x01 \x03(\x0b\x32\'.lnrpc.GetDebugInfoResponse.ConfigEntry\x12\x0b\n\x03log\x18\x02 \x03(\t\x1a-\n\x0b\x43onfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x18\n\x16GetRecoveryInfoRequest\"]\n\x17GetRecoveryInfoResponse\x12\x15\n\rrecovery_mode\x18\x01 \x01(\x08\x12\x19\n\x11recovery_finished\x18\x02 \x01(\x08\x12\x10\n\x08progress\x18\x03 \x01(\x01\"+\n\x05\x43hain\x12\x11\n\x05\x63hain\x18\x01 \x01(\tB\x02\x18\x01\x12\x0f\n\x07network\x18\x02 \x01(\t\"U\n\x12\x43onfirmationUpdate\x12\x11\n\tblock_sha\x18\x01 \x01(\x0c\x12\x14\n\x0c\x62lock_height\x18\x02 \x01(\x05\x12\x16\n\x0enum_confs_left\x18\x03 \x01(\r\"?\n\x11\x43hannelOpenUpdate\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\"c\n\x0b\x43loseOutput\x12\x12\n\namount_sat\x18\x01 \x01(\x03\x12\x11\n\tpk_script\x18\x02 \x01(\x0c\x12\x10\n\x08is_local\x18\x03 \x01(\x08\x12\x1b\n\x13\x63ustom_channel_data\x18\x04 \x01(\x0c\"\xcc\x01\n\x12\x43hannelCloseUpdate\x12\x14\n\x0c\x63losing_txid\x18\x01 \x01(\x0c\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12.\n\x12local_close_output\x18\x03 \x01(\x0b\x32\x12.lnrpc.CloseOutput\x12/\n\x13remote_close_output\x18\x04 \x01(\x0b\x32\x12.lnrpc.CloseOutput\x12.\n\x12\x61\x64\x64itional_outputs\x18\x05 \x03(\x0b\x32\x12.lnrpc.CloseOutput\"\xdc\x01\n\x13\x43loseChannelRequest\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x18\n\x0csat_per_byte\x18\x04 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x10\x64\x65livery_address\x18\x05 \x01(\t\x12\x15\n\rsat_per_vbyte\x18\x06 \x01(\x04\x12\x19\n\x11max_fee_per_vbyte\x18\x07 \x01(\x04\x12\x0f\n\x07no_wait\x18\x08 \x01(\x08\"\xac\x01\n\x11\x43loseStatusUpdate\x12-\n\rclose_pending\x18\x01 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12/\n\nchan_close\x18\x03 \x01(\x0b\x32\x19.lnrpc.ChannelCloseUpdateH\x00\x12-\n\rclose_instant\x18\x04 \x01(\x0b\x32\x14.lnrpc.InstantUpdateH\x00\x42\x08\n\x06update\"3\n\rPendingUpdate\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x14\n\x0coutput_index\x18\x02 \x01(\r\"\x0f\n\rInstantUpdate\"T\n\x13ReadyForPsbtFunding\x12\x17\n\x0f\x66unding_address\x18\x01 \x01(\t\x12\x16\n\x0e\x66unding_amount\x18\x02 \x01(\x03\x12\x0c\n\x04psbt\x18\x03 \x01(\x0c\"\xec\x01\n\x17\x42\x61tchOpenChannelRequest\x12)\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x17.lnrpc.BatchOpenChannel\x12\x13\n\x0btarget_conf\x18\x02 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x03 \x01(\x03\x12\x11\n\tmin_confs\x18\x04 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x05 \x01(\x08\x12\r\n\x05label\x18\x06 \x01(\t\x12=\n\x17\x63oin_selection_strategy\x18\x07 \x01(\x0e\x32\x1c.lnrpc.CoinSelectionStrategy\"\xf9\x03\n\x10\x42\x61tchOpenChannel\x12\x13\n\x0bnode_pubkey\x18\x01 \x01(\x0c\x12\x1c\n\x14local_funding_amount\x18\x02 \x01(\x03\x12\x10\n\x08push_sat\x18\x03 \x01(\x03\x12\x0f\n\x07private\x18\x04 \x01(\x08\x12\x15\n\rmin_htlc_msat\x18\x05 \x01(\x03\x12\x18\n\x10remote_csv_delay\x18\x06 \x01(\r\x12\x15\n\rclose_address\x18\x07 \x01(\t\x12\x17\n\x0fpending_chan_id\x18\x08 \x01(\x0c\x12.\n\x0f\x63ommitment_type\x18\t \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\'\n\x1fremote_max_value_in_flight_msat\x18\n \x01(\x04\x12\x18\n\x10remote_max_htlcs\x18\x0b \x01(\r\x12\x15\n\rmax_local_csv\x18\x0c \x01(\r\x12\x11\n\tzero_conf\x18\r \x01(\x08\x12\x12\n\nscid_alias\x18\x0e \x01(\x08\x12\x10\n\x08\x62\x61se_fee\x18\x0f \x01(\x04\x12\x10\n\x08\x66\x65\x65_rate\x18\x10 \x01(\x04\x12\x14\n\x0cuse_base_fee\x18\x11 \x01(\x08\x12\x14\n\x0cuse_fee_rate\x18\x12 \x01(\x08\x12\x1f\n\x17remote_chan_reserve_sat\x18\x13 \x01(\x04\x12\x0c\n\x04memo\x18\x14 \x01(\t\"J\n\x18\x42\x61tchOpenChannelResponse\x12.\n\x10pending_channels\x18\x01 \x03(\x0b\x32\x14.lnrpc.PendingUpdate\"\xd6\x05\n\x12OpenChannelRequest\x12\x15\n\rsat_per_vbyte\x18\x01 \x01(\x04\x12\x13\n\x0bnode_pubkey\x18\x02 \x01(\x0c\x12\x1e\n\x12node_pubkey_string\x18\x03 \x01(\tB\x02\x18\x01\x12\x1c\n\x14local_funding_amount\x18\x04 \x01(\x03\x12\x10\n\x08push_sat\x18\x05 \x01(\x03\x12\x13\n\x0btarget_conf\x18\x06 \x01(\x05\x12\x18\n\x0csat_per_byte\x18\x07 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x07private\x18\x08 \x01(\x08\x12\x15\n\rmin_htlc_msat\x18\t \x01(\x03\x12\x18\n\x10remote_csv_delay\x18\n \x01(\r\x12\x11\n\tmin_confs\x18\x0b \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x0c \x01(\x08\x12\x15\n\rclose_address\x18\r \x01(\t\x12(\n\x0c\x66unding_shim\x18\x0e \x01(\x0b\x32\x12.lnrpc.FundingShim\x12\'\n\x1fremote_max_value_in_flight_msat\x18\x0f \x01(\x04\x12\x18\n\x10remote_max_htlcs\x18\x10 \x01(\r\x12\x15\n\rmax_local_csv\x18\x11 \x01(\r\x12.\n\x0f\x63ommitment_type\x18\x12 \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x11\n\tzero_conf\x18\x13 \x01(\x08\x12\x12\n\nscid_alias\x18\x14 \x01(\x08\x12\x10\n\x08\x62\x61se_fee\x18\x15 \x01(\x04\x12\x10\n\x08\x66\x65\x65_rate\x18\x16 \x01(\x04\x12\x14\n\x0cuse_base_fee\x18\x17 \x01(\x08\x12\x14\n\x0cuse_fee_rate\x18\x18 \x01(\x08\x12\x1f\n\x17remote_chan_reserve_sat\x18\x19 \x01(\x04\x12\x10\n\x08\x66und_max\x18\x1a \x01(\x08\x12\x0c\n\x04memo\x18\x1b \x01(\t\x12\"\n\toutpoints\x18\x1c \x03(\x0b\x32\x0f.lnrpc.OutPoint\"\xc3\x01\n\x10OpenStatusUpdate\x12,\n\x0c\x63han_pending\x18\x01 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12-\n\tchan_open\x18\x03 \x01(\x0b\x32\x18.lnrpc.ChannelOpenUpdateH\x00\x12/\n\tpsbt_fund\x18\x05 \x01(\x0b\x32\x1a.lnrpc.ReadyForPsbtFundingH\x00\x12\x17\n\x0fpending_chan_id\x18\x04 \x01(\x0c\x42\x08\n\x06update\"3\n\nKeyLocator\x12\x12\n\nkey_family\x18\x01 \x01(\x05\x12\x11\n\tkey_index\x18\x02 \x01(\x05\"J\n\rKeyDescriptor\x12\x15\n\rraw_key_bytes\x18\x01 \x01(\x0c\x12\"\n\x07key_loc\x18\x02 \x01(\x0b\x32\x11.lnrpc.KeyLocator\"\xc0\x01\n\rChanPointShim\x12\x0b\n\x03\x61mt\x18\x01 \x01(\x03\x12\'\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\'\n\tlocal_key\x18\x03 \x01(\x0b\x32\x14.lnrpc.KeyDescriptor\x12\x12\n\nremote_key\x18\x04 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x05 \x01(\x0c\x12\x13\n\x0bthaw_height\x18\x06 \x01(\r\x12\x0e\n\x06musig2\x18\x07 \x01(\x08\"J\n\x08PsbtShim\x12\x17\n\x0fpending_chan_id\x18\x01 \x01(\x0c\x12\x11\n\tbase_psbt\x18\x02 \x01(\x0c\x12\x12\n\nno_publish\x18\x03 \x01(\x08\"l\n\x0b\x46undingShim\x12/\n\x0f\x63han_point_shim\x18\x01 \x01(\x0b\x32\x14.lnrpc.ChanPointShimH\x00\x12$\n\tpsbt_shim\x18\x02 \x01(\x0b\x32\x0f.lnrpc.PsbtShimH\x00\x42\x06\n\x04shim\",\n\x11\x46undingShimCancel\x12\x17\n\x0fpending_chan_id\x18\x01 \x01(\x0c\"X\n\x11\x46undingPsbtVerify\x12\x13\n\x0b\x66unded_psbt\x18\x01 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\x15\n\rskip_finalize\x18\x03 \x01(\x08\"Y\n\x13\x46undingPsbtFinalize\x12\x13\n\x0bsigned_psbt\x18\x01 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\x14\n\x0c\x66inal_raw_tx\x18\x03 \x01(\x0c\"\xe5\x01\n\x14\x46undingTransitionMsg\x12+\n\rshim_register\x18\x01 \x01(\x0b\x32\x12.lnrpc.FundingShimH\x00\x12/\n\x0bshim_cancel\x18\x02 \x01(\x0b\x32\x18.lnrpc.FundingShimCancelH\x00\x12/\n\x0bpsbt_verify\x18\x03 \x01(\x0b\x32\x18.lnrpc.FundingPsbtVerifyH\x00\x12\x33\n\rpsbt_finalize\x18\x04 \x01(\x0b\x32\x1a.lnrpc.FundingPsbtFinalizeH\x00\x42\t\n\x07trigger\"\x16\n\x14\x46undingStateStepResp\"\x86\x01\n\x0bPendingHTLC\x12\x10\n\x08incoming\x18\x01 \x01(\x08\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x10\n\x08outpoint\x18\x03 \x01(\t\x12\x17\n\x0fmaturity_height\x18\x04 \x01(\r\x12\x1b\n\x13\x62locks_til_maturity\x18\x05 \x01(\x05\x12\r\n\x05stage\x18\x06 \x01(\r\"0\n\x16PendingChannelsRequest\x12\x16\n\x0einclude_raw_tx\x18\x01 \x01(\x08\"\xd9\x0e\n\x17PendingChannelsResponse\x12\x1b\n\x13total_limbo_balance\x18\x01 \x01(\x03\x12P\n\x15pending_open_channels\x18\x02 \x03(\x0b\x32\x31.lnrpc.PendingChannelsResponse.PendingOpenChannel\x12R\n\x18pending_closing_channels\x18\x03 \x03(\x0b\x32,.lnrpc.PendingChannelsResponse.ClosedChannelB\x02\x18\x01\x12Y\n\x1epending_force_closing_channels\x18\x04 \x03(\x0b\x32\x31.lnrpc.PendingChannelsResponse.ForceClosedChannel\x12R\n\x16waiting_close_channels\x18\x05 \x03(\x0b\x32\x32.lnrpc.PendingChannelsResponse.WaitingCloseChannel\x1a\x8f\x03\n\x0ePendingChannel\x12\x17\n\x0fremote_node_pub\x18\x01 \x01(\t\x12\x15\n\rchannel_point\x18\x02 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\x03\x12\x15\n\rlocal_balance\x18\x04 \x01(\x03\x12\x16\n\x0eremote_balance\x18\x05 \x01(\x03\x12\x1e\n\x16local_chan_reserve_sat\x18\x06 \x01(\x03\x12\x1f\n\x17remote_chan_reserve_sat\x18\x07 \x01(\x03\x12#\n\tinitiator\x18\x08 \x01(\x0e\x32\x10.lnrpc.Initiator\x12.\n\x0f\x63ommitment_type\x18\t \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x1f\n\x17num_forwarding_packages\x18\n \x01(\x03\x12\x19\n\x11\x63han_status_flags\x18\x0b \x01(\t\x12\x0f\n\x07private\x18\x0c \x01(\x08\x12\x0c\n\x04memo\x18\r \x01(\t\x12\x1b\n\x13\x63ustom_channel_data\x18\" \x01(\x0c\x1a\xb8\x01\n\x12PendingOpenChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x12\n\ncommit_fee\x18\x04 \x01(\x03\x12\x15\n\rcommit_weight\x18\x05 \x01(\x03\x12\x12\n\nfee_per_kw\x18\x06 \x01(\x03\x12\x1d\n\x15\x66unding_expiry_blocks\x18\x03 \x01(\x05J\x04\x08\x02\x10\x03\x1a\xdb\x01\n\x13WaitingCloseChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x15\n\rlimbo_balance\x18\x02 \x01(\x03\x12?\n\x0b\x63ommitments\x18\x03 \x01(\x0b\x32*.lnrpc.PendingChannelsResponse.Commitments\x12\x14\n\x0c\x63losing_txid\x18\x04 \x01(\t\x12\x16\n\x0e\x63losing_tx_hex\x18\x05 \x01(\t\x1a\xb7\x01\n\x0b\x43ommitments\x12\x12\n\nlocal_txid\x18\x01 \x01(\t\x12\x13\n\x0bremote_txid\x18\x02 \x01(\t\x12\x1b\n\x13remote_pending_txid\x18\x03 \x01(\t\x12\x1c\n\x14local_commit_fee_sat\x18\x04 \x01(\x04\x12\x1d\n\x15remote_commit_fee_sat\x18\x05 \x01(\x04\x12%\n\x1dremote_pending_commit_fee_sat\x18\x06 \x01(\x04\x1a\x65\n\rClosedChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x14\n\x0c\x63losing_txid\x18\x02 \x01(\t\x1a\xff\x02\n\x12\x46orceClosedChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x14\n\x0c\x63losing_txid\x18\x02 \x01(\t\x12\x15\n\rlimbo_balance\x18\x03 \x01(\x03\x12\x17\n\x0fmaturity_height\x18\x04 \x01(\r\x12\x1b\n\x13\x62locks_til_maturity\x18\x05 \x01(\x05\x12\x19\n\x11recovered_balance\x18\x06 \x01(\x03\x12)\n\rpending_htlcs\x18\x08 \x03(\x0b\x32\x12.lnrpc.PendingHTLC\x12M\n\x06\x61nchor\x18\t \x01(\x0e\x32=.lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState\"1\n\x0b\x41nchorState\x12\t\n\x05LIMBO\x10\x00\x12\r\n\tRECOVERED\x10\x01\x12\x08\n\x04LOST\x10\x02\"\x1a\n\x18\x43hannelEventSubscription\"\x93\x04\n\x12\x43hannelEventUpdate\x12&\n\x0copen_channel\x18\x01 \x01(\x0b\x32\x0e.lnrpc.ChannelH\x00\x12\x34\n\x0e\x63losed_channel\x18\x02 \x01(\x0b\x32\x1a.lnrpc.ChannelCloseSummaryH\x00\x12-\n\x0e\x61\x63tive_channel\x18\x03 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12/\n\x10inactive_channel\x18\x04 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x34\n\x14pending_open_channel\x18\x06 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12\x35\n\x16\x66ully_resolved_channel\x18\x07 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x32\n\x04type\x18\x05 \x01(\x0e\x32$.lnrpc.ChannelEventUpdate.UpdateType\"\x92\x01\n\nUpdateType\x12\x10\n\x0cOPEN_CHANNEL\x10\x00\x12\x12\n\x0e\x43LOSED_CHANNEL\x10\x01\x12\x12\n\x0e\x41\x43TIVE_CHANNEL\x10\x02\x12\x14\n\x10INACTIVE_CHANNEL\x10\x03\x12\x18\n\x14PENDING_OPEN_CHANNEL\x10\x04\x12\x1a\n\x16\x46ULLY_RESOLVED_CHANNEL\x10\x05\x42\t\n\x07\x63hannel\"N\n\x14WalletAccountBalance\x12\x19\n\x11\x63onfirmed_balance\x18\x01 \x01(\x03\x12\x1b\n\x13unconfirmed_balance\x18\x02 \x01(\x03\":\n\x14WalletBalanceRequest\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x11\n\tmin_confs\x18\x02 \x01(\x05\"\xc3\x02\n\x15WalletBalanceResponse\x12\x15\n\rtotal_balance\x18\x01 \x01(\x03\x12\x19\n\x11\x63onfirmed_balance\x18\x02 \x01(\x03\x12\x1b\n\x13unconfirmed_balance\x18\x03 \x01(\x03\x12\x16\n\x0elocked_balance\x18\x05 \x01(\x03\x12$\n\x1creserved_balance_anchor_chan\x18\x06 \x01(\x03\x12I\n\x0f\x61\x63\x63ount_balance\x18\x04 \x03(\x0b\x32\x30.lnrpc.WalletBalanceResponse.AccountBalanceEntry\x1aR\n\x13\x41\x63\x63ountBalanceEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.lnrpc.WalletAccountBalance:\x02\x38\x01\"#\n\x06\x41mount\x12\x0b\n\x03sat\x18\x01 \x01(\x04\x12\x0c\n\x04msat\x18\x02 \x01(\x04\"\x17\n\x15\x43hannelBalanceRequest\"\x81\x03\n\x16\x43hannelBalanceResponse\x12\x13\n\x07\x62\x61lance\x18\x01 \x01(\x03\x42\x02\x18\x01\x12 \n\x14pending_open_balance\x18\x02 \x01(\x03\x42\x02\x18\x01\x12$\n\rlocal_balance\x18\x03 \x01(\x0b\x32\r.lnrpc.Amount\x12%\n\x0eremote_balance\x18\x04 \x01(\x0b\x32\r.lnrpc.Amount\x12.\n\x17unsettled_local_balance\x18\x05 \x01(\x0b\x32\r.lnrpc.Amount\x12/\n\x18unsettled_remote_balance\x18\x06 \x01(\x0b\x32\r.lnrpc.Amount\x12\x31\n\x1apending_open_local_balance\x18\x07 \x01(\x0b\x32\r.lnrpc.Amount\x12\x32\n\x1bpending_open_remote_balance\x18\x08 \x01(\x0b\x32\r.lnrpc.Amount\x12\x1b\n\x13\x63ustom_channel_data\x18\t \x01(\x0c\"\x9d\x05\n\x12QueryRoutesRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x0b\n\x03\x61mt\x18\x02 \x01(\x03\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x18\n\x10\x66inal_cltv_delta\x18\x04 \x01(\x05\x12\"\n\tfee_limit\x18\x05 \x01(\x0b\x32\x0f.lnrpc.FeeLimit\x12\x15\n\rignored_nodes\x18\x06 \x03(\x0c\x12-\n\rignored_edges\x18\x07 \x03(\x0b\x32\x12.lnrpc.EdgeLocatorB\x02\x18\x01\x12\x16\n\x0esource_pub_key\x18\x08 \x01(\t\x12\x1b\n\x13use_mission_control\x18\t \x01(\x08\x12&\n\rignored_pairs\x18\n \x03(\x0b\x32\x0f.lnrpc.NodePair\x12\x12\n\ncltv_limit\x18\x0b \x01(\r\x12M\n\x13\x64\x65st_custom_records\x18\r \x03(\x0b\x32\x30.lnrpc.QueryRoutesRequest.DestCustomRecordsEntry\x12\x1c\n\x10outgoing_chan_id\x18\x0e \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0flast_hop_pubkey\x18\x0f \x01(\x0c\x12%\n\x0broute_hints\x18\x10 \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x38\n\x15\x62linded_payment_paths\x18\x13 \x03(\x0b\x32\x19.lnrpc.BlindedPaymentPath\x12(\n\rdest_features\x18\x11 \x03(\x0e\x32\x11.lnrpc.FeatureBit\x12\x11\n\ttime_pref\x18\x12 \x01(\x01\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01J\x04\x08\x03\x10\x04\"$\n\x08NodePair\x12\x0c\n\x04\x66rom\x18\x01 \x01(\x0c\x12\n\n\x02to\x18\x02 \x01(\x0c\"@\n\x0b\x45\x64geLocator\x12\x16\n\nchannel_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x19\n\x11\x64irection_reverse\x18\x02 \x01(\x08\"I\n\x13QueryRoutesResponse\x12\x1c\n\x06routes\x18\x01 \x03(\x0b\x32\x0c.lnrpc.Route\x12\x14\n\x0csuccess_prob\x18\x02 \x01(\x01\"\xde\x03\n\x03Hop\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x19\n\rchan_capacity\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x1a\n\x0e\x61mt_to_forward\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x03\x66\x65\x65\x18\x04 \x01(\x03\x42\x02\x18\x01\x12\x0e\n\x06\x65xpiry\x18\x05 \x01(\r\x12\x1b\n\x13\x61mt_to_forward_msat\x18\x06 \x01(\x03\x12\x10\n\x08\x66\x65\x65_msat\x18\x07 \x01(\x03\x12\x0f\n\x07pub_key\x18\x08 \x01(\t\x12\x17\n\x0btlv_payload\x18\t \x01(\x08\x42\x02\x18\x01\x12$\n\nmpp_record\x18\n \x01(\x0b\x32\x10.lnrpc.MPPRecord\x12$\n\namp_record\x18\x0c \x01(\x0b\x32\x10.lnrpc.AMPRecord\x12\x35\n\x0e\x63ustom_records\x18\x0b \x03(\x0b\x32\x1d.lnrpc.Hop.CustomRecordsEntry\x12\x10\n\x08metadata\x18\r \x01(\x0c\x12\x16\n\x0e\x62linding_point\x18\x0e \x01(\x0c\x12\x16\n\x0e\x65ncrypted_data\x18\x0f \x01(\x0c\x12\x16\n\x0etotal_amt_msat\x18\x10 \x01(\x04\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"9\n\tMPPRecord\x12\x14\n\x0cpayment_addr\x18\x0b \x01(\x0c\x12\x16\n\x0etotal_amt_msat\x18\n \x01(\x03\"D\n\tAMPRecord\x12\x12\n\nroot_share\x18\x01 \x01(\x0c\x12\x0e\n\x06set_id\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hild_index\x18\x03 \x01(\r\"\xd6\x01\n\x05Route\x12\x17\n\x0ftotal_time_lock\x18\x01 \x01(\r\x12\x16\n\ntotal_fees\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x15\n\ttotal_amt\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x04hops\x18\x04 \x03(\x0b\x32\n.lnrpc.Hop\x12\x17\n\x0ftotal_fees_msat\x18\x05 \x01(\x03\x12\x16\n\x0etotal_amt_msat\x18\x06 \x01(\x03\x12\x1d\n\x15\x66irst_hop_amount_msat\x18\x07 \x01(\x03\x12\x1b\n\x13\x63ustom_channel_data\x18\x08 \x01(\x0c\"<\n\x0fNodeInfoRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x18\n\x10include_channels\x18\x02 \x01(\x08\"\x82\x01\n\x08NodeInfo\x12\"\n\x04node\x18\x01 \x01(\x0b\x32\x14.lnrpc.LightningNode\x12\x14\n\x0cnum_channels\x18\x02 \x01(\r\x12\x16\n\x0etotal_capacity\x18\x03 \x01(\x03\x12$\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x12.lnrpc.ChannelEdge\"\xe8\x02\n\rLightningNode\x12\x13\n\x0blast_update\x18\x01 \x01(\r\x12\x0f\n\x07pub_key\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\x12%\n\taddresses\x18\x04 \x03(\x0b\x32\x12.lnrpc.NodeAddress\x12\r\n\x05\x63olor\x18\x05 \x01(\t\x12\x34\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32\".lnrpc.LightningNode.FeaturesEntry\x12?\n\x0e\x63ustom_records\x18\x07 \x03(\x0b\x32\'.lnrpc.LightningNode.CustomRecordsEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\",\n\x0bNodeAddress\x12\x0f\n\x07network\x18\x01 \x01(\t\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\t\"\xe7\x02\n\rRoutingPolicy\x12\x17\n\x0ftime_lock_delta\x18\x01 \x01(\r\x12\x10\n\x08min_htlc\x18\x02 \x01(\x03\x12\x15\n\rfee_base_msat\x18\x03 \x01(\x03\x12\x1b\n\x13\x66\x65\x65_rate_milli_msat\x18\x04 \x01(\x03\x12\x10\n\x08\x64isabled\x18\x05 \x01(\x08\x12\x15\n\rmax_htlc_msat\x18\x06 \x01(\x04\x12\x13\n\x0blast_update\x18\x07 \x01(\r\x12?\n\x0e\x63ustom_records\x18\x08 \x03(\x0b\x32\'.lnrpc.RoutingPolicy.CustomRecordsEntry\x12\x1d\n\x15inbound_fee_base_msat\x18\t \x01(\x05\x12#\n\x1binbound_fee_rate_milli_msat\x18\n \x01(\x05\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\xd7\x02\n\x0b\x43hannelEdge\x12\x16\n\nchannel_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchan_point\x18\x02 \x01(\t\x12\x17\n\x0blast_update\x18\x03 \x01(\rB\x02\x18\x01\x12\x11\n\tnode1_pub\x18\x04 \x01(\t\x12\x11\n\tnode2_pub\x18\x05 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x06 \x01(\x03\x12*\n\x0cnode1_policy\x18\x07 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12*\n\x0cnode2_policy\x18\x08 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12=\n\x0e\x63ustom_records\x18\t \x03(\x0b\x32%.lnrpc.ChannelEdge.CustomRecordsEntry\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"2\n\x13\x43hannelGraphRequest\x12\x1b\n\x13include_unannounced\x18\x01 \x01(\x08\"V\n\x0c\x43hannelGraph\x12#\n\x05nodes\x18\x01 \x03(\x0b\x32\x14.lnrpc.LightningNode\x12!\n\x05\x65\x64ges\x18\x02 \x03(\x0b\x32\x12.lnrpc.ChannelEdge\":\n\x12NodeMetricsRequest\x12$\n\x05types\x18\x01 \x03(\x0e\x32\x15.lnrpc.NodeMetricType\"\xbe\x01\n\x13NodeMetricsResponse\x12U\n\x16\x62\x65tweenness_centrality\x18\x01 \x03(\x0b\x32\x35.lnrpc.NodeMetricsResponse.BetweennessCentralityEntry\x1aP\n\x1a\x42\x65tweennessCentralityEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.lnrpc.FloatMetric:\x02\x38\x01\"6\n\x0b\x46loatMetric\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x18\n\x10normalized_value\x18\x02 \x01(\x01\":\n\x0f\x43hanInfoRequest\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchan_point\x18\x02 \x01(\t\"\x14\n\x12NetworkInfoRequest\"\xa7\x02\n\x0bNetworkInfo\x12\x16\n\x0egraph_diameter\x18\x01 \x01(\r\x12\x16\n\x0e\x61vg_out_degree\x18\x02 \x01(\x01\x12\x16\n\x0emax_out_degree\x18\x03 \x01(\r\x12\x11\n\tnum_nodes\x18\x04 \x01(\r\x12\x14\n\x0cnum_channels\x18\x05 \x01(\r\x12\x1e\n\x16total_network_capacity\x18\x06 \x01(\x03\x12\x18\n\x10\x61vg_channel_size\x18\x07 \x01(\x01\x12\x18\n\x10min_channel_size\x18\x08 \x01(\x03\x12\x18\n\x10max_channel_size\x18\t \x01(\x03\x12\x1f\n\x17median_channel_size_sat\x18\n \x01(\x03\x12\x18\n\x10num_zombie_chans\x18\x0b \x01(\x04\"\r\n\x0bStopRequest\"\x0e\n\x0cStopResponse\"\x1b\n\x19GraphTopologySubscription\"\xa3\x01\n\x13GraphTopologyUpdate\x12\'\n\x0cnode_updates\x18\x01 \x03(\x0b\x32\x11.lnrpc.NodeUpdate\x12\x31\n\x0f\x63hannel_updates\x18\x02 \x03(\x0b\x32\x18.lnrpc.ChannelEdgeUpdate\x12\x30\n\x0c\x63losed_chans\x18\x03 \x03(\x0b\x32\x1a.lnrpc.ClosedChannelUpdate\"\x94\x02\n\nNodeUpdate\x12\x15\n\taddresses\x18\x01 \x03(\tB\x02\x18\x01\x12\x14\n\x0cidentity_key\x18\x02 \x01(\t\x12\x1b\n\x0fglobal_features\x18\x03 \x01(\x0c\x42\x02\x18\x01\x12\r\n\x05\x61lias\x18\x04 \x01(\t\x12\r\n\x05\x63olor\x18\x05 \x01(\t\x12*\n\x0enode_addresses\x18\x07 \x03(\x0b\x32\x12.lnrpc.NodeAddress\x12\x31\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32\x1f.lnrpc.NodeUpdate.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\"\xc4\x01\n\x11\x43hannelEdgeUpdate\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\'\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\x03\x12,\n\x0erouting_policy\x18\x04 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12\x18\n\x10\x61\x64vertising_node\x18\x05 \x01(\t\x12\x17\n\x0f\x63onnecting_node\x18\x06 \x01(\t\"|\n\x13\x43losedChannelUpdate\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x10\n\x08\x63\x61pacity\x18\x02 \x01(\x03\x12\x15\n\rclosed_height\x18\x03 \x01(\r\x12\'\n\nchan_point\x18\x04 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\"\x86\x01\n\x07HopHint\x12\x0f\n\x07node_id\x18\x01 \x01(\t\x12\x13\n\x07\x63han_id\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rfee_base_msat\x18\x03 \x01(\r\x12#\n\x1b\x66\x65\x65_proportional_millionths\x18\x04 \x01(\r\x12\x19\n\x11\x63ltv_expiry_delta\x18\x05 \x01(\r\"\x17\n\x05SetID\x12\x0e\n\x06set_id\x18\x01 \x01(\x0c\".\n\tRouteHint\x12!\n\thop_hints\x18\x01 \x03(\x0b\x32\x0e.lnrpc.HopHint\"\xe1\x01\n\x12\x42lindedPaymentPath\x12(\n\x0c\x62linded_path\x18\x01 \x01(\x0b\x32\x12.lnrpc.BlindedPath\x12\x15\n\rbase_fee_msat\x18\x02 \x01(\x04\x12\x1d\n\x15proportional_fee_rate\x18\x03 \x01(\r\x12\x18\n\x10total_cltv_delta\x18\x04 \x01(\r\x12\x15\n\rhtlc_min_msat\x18\x05 \x01(\x04\x12\x15\n\rhtlc_max_msat\x18\x06 \x01(\x04\x12#\n\x08\x66\x65\x61tures\x18\x07 \x03(\x0e\x32\x11.lnrpc.FeatureBit\"i\n\x0b\x42lindedPath\x12\x19\n\x11introduction_node\x18\x01 \x01(\x0c\x12\x16\n\x0e\x62linding_point\x18\x02 \x01(\x0c\x12\'\n\x0c\x62linded_hops\x18\x03 \x03(\x0b\x32\x11.lnrpc.BlindedHop\":\n\nBlindedHop\x12\x14\n\x0c\x62linded_node\x18\x01 \x01(\x0c\x12\x16\n\x0e\x65ncrypted_data\x18\x02 \x01(\x0c\"{\n\x0f\x41MPInvoiceState\x12&\n\x05state\x18\x01 \x01(\x0e\x32\x17.lnrpc.InvoiceHTLCState\x12\x14\n\x0csettle_index\x18\x02 \x01(\x04\x12\x13\n\x0bsettle_time\x18\x03 \x01(\x03\x12\x15\n\ramt_paid_msat\x18\x05 \x01(\x03\"\xd0\x07\n\x07Invoice\x12\x0c\n\x04memo\x18\x01 \x01(\t\x12\x12\n\nr_preimage\x18\x03 \x01(\x0c\x12\x0e\n\x06r_hash\x18\x04 \x01(\x0c\x12\r\n\x05value\x18\x05 \x01(\x03\x12\x12\n\nvalue_msat\x18\x17 \x01(\x03\x12\x13\n\x07settled\x18\x06 \x01(\x08\x42\x02\x18\x01\x12\x15\n\rcreation_date\x18\x07 \x01(\x03\x12\x13\n\x0bsettle_date\x18\x08 \x01(\x03\x12\x17\n\x0fpayment_request\x18\t \x01(\t\x12\x18\n\x10\x64\x65scription_hash\x18\n \x01(\x0c\x12\x0e\n\x06\x65xpiry\x18\x0b \x01(\x03\x12\x15\n\rfallback_addr\x18\x0c \x01(\t\x12\x13\n\x0b\x63ltv_expiry\x18\r \x01(\x04\x12%\n\x0broute_hints\x18\x0e \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x0f\n\x07private\x18\x0f \x01(\x08\x12\x11\n\tadd_index\x18\x10 \x01(\x04\x12\x14\n\x0csettle_index\x18\x11 \x01(\x04\x12\x14\n\x08\x61mt_paid\x18\x12 \x01(\x03\x42\x02\x18\x01\x12\x14\n\x0c\x61mt_paid_sat\x18\x13 \x01(\x03\x12\x15\n\ramt_paid_msat\x18\x14 \x01(\x03\x12*\n\x05state\x18\x15 \x01(\x0e\x32\x1b.lnrpc.Invoice.InvoiceState\x12!\n\x05htlcs\x18\x16 \x03(\x0b\x32\x12.lnrpc.InvoiceHTLC\x12.\n\x08\x66\x65\x61tures\x18\x18 \x03(\x0b\x32\x1c.lnrpc.Invoice.FeaturesEntry\x12\x12\n\nis_keysend\x18\x19 \x01(\x08\x12\x14\n\x0cpayment_addr\x18\x1a \x01(\x0c\x12\x0e\n\x06is_amp\x18\x1b \x01(\x08\x12>\n\x11\x61mp_invoice_state\x18\x1c \x03(\x0b\x32#.lnrpc.Invoice.AmpInvoiceStateEntry\x12\x12\n\nis_blinded\x18\x1d \x01(\x08\x12\x35\n\x13\x62linded_path_config\x18\x1e \x01(\x0b\x32\x18.lnrpc.BlindedPathConfig\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\x1aN\n\x14\x41mpInvoiceStateEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.lnrpc.AMPInvoiceState:\x02\x38\x01\"A\n\x0cInvoiceState\x12\x08\n\x04OPEN\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x0c\n\x08\x43\x41NCELED\x10\x02\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x03J\x04\x08\x02\x10\x03\"\xb7\x01\n\x11\x42lindedPathConfig\x12\x1e\n\x11min_num_real_hops\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x15\n\x08num_hops\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rmax_num_paths\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1a\n\x12node_omission_list\x18\x04 \x03(\x0c\x42\x14\n\x12_min_num_real_hopsB\x0b\n\t_num_hopsB\x10\n\x0e_max_num_paths\"\x90\x03\n\x0bInvoiceHTLC\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nhtlc_index\x18\x02 \x01(\x04\x12\x10\n\x08\x61mt_msat\x18\x03 \x01(\x04\x12\x15\n\raccept_height\x18\x04 \x01(\x05\x12\x13\n\x0b\x61\x63\x63\x65pt_time\x18\x05 \x01(\x03\x12\x14\n\x0cresolve_time\x18\x06 \x01(\x03\x12\x15\n\rexpiry_height\x18\x07 \x01(\x05\x12&\n\x05state\x18\x08 \x01(\x0e\x32\x17.lnrpc.InvoiceHTLCState\x12=\n\x0e\x63ustom_records\x18\t \x03(\x0b\x32%.lnrpc.InvoiceHTLC.CustomRecordsEntry\x12\x1a\n\x12mpp_total_amt_msat\x18\n \x01(\x04\x12\x17\n\x03\x61mp\x18\x0b \x01(\x0b\x32\n.lnrpc.AMP\x12\x1b\n\x13\x63ustom_channel_data\x18\x0c \x01(\x0c\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"^\n\x03\x41MP\x12\x12\n\nroot_share\x18\x01 \x01(\x0c\x12\x0e\n\x06set_id\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hild_index\x18\x03 \x01(\r\x12\x0c\n\x04hash\x18\x04 \x01(\x0c\x12\x10\n\x08preimage\x18\x05 \x01(\x0c\"f\n\x12\x41\x64\x64InvoiceResponse\x12\x0e\n\x06r_hash\x18\x01 \x01(\x0c\x12\x17\n\x0fpayment_request\x18\x02 \x01(\t\x12\x11\n\tadd_index\x18\x10 \x01(\x04\x12\x14\n\x0cpayment_addr\x18\x11 \x01(\x0c\"5\n\x0bPaymentHash\x12\x16\n\nr_hash_str\x18\x01 \x01(\tB\x02\x18\x01\x12\x0e\n\x06r_hash\x18\x02 \x01(\x0c\"\xa4\x01\n\x12ListInvoiceRequest\x12\x14\n\x0cpending_only\x18\x01 \x01(\x08\x12\x14\n\x0cindex_offset\x18\x04 \x01(\x04\x12\x18\n\x10num_max_invoices\x18\x05 \x01(\x04\x12\x10\n\x08reversed\x18\x06 \x01(\x08\x12\x1b\n\x13\x63reation_date_start\x18\x07 \x01(\x04\x12\x19\n\x11\x63reation_date_end\x18\x08 \x01(\x04\"n\n\x13ListInvoiceResponse\x12 \n\x08invoices\x18\x01 \x03(\x0b\x32\x0e.lnrpc.Invoice\x12\x19\n\x11last_index_offset\x18\x02 \x01(\x04\x12\x1a\n\x12\x66irst_index_offset\x18\x03 \x01(\x04\">\n\x13InvoiceSubscription\x12\x11\n\tadd_index\x18\x01 \x01(\x04\x12\x14\n\x0csettle_index\x18\x02 \x01(\x04\"\xfe\x04\n\x07Payment\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\t\x12\x11\n\x05value\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x19\n\rcreation_date\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x03\x66\x65\x65\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x10payment_preimage\x18\x06 \x01(\t\x12\x11\n\tvalue_sat\x18\x07 \x01(\x03\x12\x12\n\nvalue_msat\x18\x08 \x01(\x03\x12\x17\n\x0fpayment_request\x18\t \x01(\t\x12,\n\x06status\x18\n \x01(\x0e\x32\x1c.lnrpc.Payment.PaymentStatus\x12\x0f\n\x07\x66\x65\x65_sat\x18\x0b \x01(\x03\x12\x10\n\x08\x66\x65\x65_msat\x18\x0c \x01(\x03\x12\x18\n\x10\x63reation_time_ns\x18\r \x01(\x03\x12!\n\x05htlcs\x18\x0e \x03(\x0b\x32\x12.lnrpc.HTLCAttempt\x12\x15\n\rpayment_index\x18\x0f \x01(\x04\x12\x33\n\x0e\x66\x61ilure_reason\x18\x10 \x01(\x0e\x32\x1b.lnrpc.PaymentFailureReason\x12K\n\x18\x66irst_hop_custom_records\x18\x11 \x03(\x0b\x32).lnrpc.Payment.FirstHopCustomRecordsEntry\x1a<\n\x1a\x46irstHopCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"Y\n\rPaymentStatus\x12\x0f\n\x07UNKNOWN\x10\x00\x1a\x02\x08\x01\x12\r\n\tIN_FLIGHT\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\r\n\tINITIATED\x10\x04J\x04\x08\x04\x10\x05\"\x8a\x02\n\x0bHTLCAttempt\x12\x12\n\nattempt_id\x18\x07 \x01(\x04\x12-\n\x06status\x18\x01 \x01(\x0e\x32\x1d.lnrpc.HTLCAttempt.HTLCStatus\x12\x1b\n\x05route\x18\x02 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x17\n\x0f\x61ttempt_time_ns\x18\x03 \x01(\x03\x12\x17\n\x0fresolve_time_ns\x18\x04 \x01(\x03\x12\x1f\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32\x0e.lnrpc.Failure\x12\x10\n\x08preimage\x18\x06 \x01(\x0c\"6\n\nHTLCStatus\x12\r\n\tIN_FLIGHT\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"\xc5\x01\n\x13ListPaymentsRequest\x12\x1a\n\x12include_incomplete\x18\x01 \x01(\x08\x12\x14\n\x0cindex_offset\x18\x02 \x01(\x04\x12\x14\n\x0cmax_payments\x18\x03 \x01(\x04\x12\x10\n\x08reversed\x18\x04 \x01(\x08\x12\x1c\n\x14\x63ount_total_payments\x18\x05 \x01(\x08\x12\x1b\n\x13\x63reation_date_start\x18\x06 \x01(\x04\x12\x19\n\x11\x63reation_date_end\x18\x07 \x01(\x04\"\x8b\x01\n\x14ListPaymentsResponse\x12 \n\x08payments\x18\x01 \x03(\x0b\x32\x0e.lnrpc.Payment\x12\x1a\n\x12\x66irst_index_offset\x18\x02 \x01(\x04\x12\x19\n\x11last_index_offset\x18\x03 \x01(\x04\x12\x1a\n\x12total_num_payments\x18\x04 \x01(\x04\"G\n\x14\x44\x65letePaymentRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x19\n\x11\x66\x61iled_htlcs_only\x18\x02 \x01(\x08\"i\n\x18\x44\x65leteAllPaymentsRequest\x12\x1c\n\x14\x66\x61iled_payments_only\x18\x01 \x01(\x08\x12\x19\n\x11\x66\x61iled_htlcs_only\x18\x02 \x01(\x08\x12\x14\n\x0c\x61ll_payments\x18\x03 \x01(\x08\"\x17\n\x15\x44\x65letePaymentResponse\"\x1b\n\x19\x44\x65leteAllPaymentsResponse\"\x86\x01\n\x15\x41\x62\x61ndonChannelRequest\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12!\n\x19pending_funding_shim_only\x18\x02 \x01(\x08\x12\x1e\n\x16i_know_what_i_am_doing\x18\x03 \x01(\x08\"\x18\n\x16\x41\x62\x61ndonChannelResponse\"5\n\x11\x44\x65\x62ugLevelRequest\x12\x0c\n\x04show\x18\x01 \x01(\x08\x12\x12\n\nlevel_spec\x18\x02 \x01(\t\")\n\x12\x44\x65\x62ugLevelResponse\x12\x13\n\x0bsub_systems\x18\x01 \x01(\t\"\x1f\n\x0cPayReqString\x12\x0f\n\x07pay_req\x18\x01 \x01(\t\"\xb8\x03\n\x06PayReq\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\t\x12\x14\n\x0cnum_satoshis\x18\x03 \x01(\x03\x12\x11\n\ttimestamp\x18\x04 \x01(\x03\x12\x0e\n\x06\x65xpiry\x18\x05 \x01(\x03\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x18\n\x10\x64\x65scription_hash\x18\x07 \x01(\t\x12\x15\n\rfallback_addr\x18\x08 \x01(\t\x12\x13\n\x0b\x63ltv_expiry\x18\t \x01(\x03\x12%\n\x0broute_hints\x18\n \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x14\n\x0cpayment_addr\x18\x0b \x01(\x0c\x12\x10\n\x08num_msat\x18\x0c \x01(\x03\x12-\n\x08\x66\x65\x61tures\x18\r \x03(\x0b\x32\x1b.lnrpc.PayReq.FeaturesEntry\x12\x30\n\rblinded_paths\x18\x0e \x03(\x0b\x32\x19.lnrpc.BlindedPaymentPath\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\">\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0bis_required\x18\x03 \x01(\x08\x12\x10\n\x08is_known\x18\x04 \x01(\x08\"\x12\n\x10\x46\x65\x65ReportRequest\"\xb8\x01\n\x10\x43hannelFeeReport\x12\x13\n\x07\x63han_id\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rchannel_point\x18\x01 \x01(\t\x12\x15\n\rbase_fee_msat\x18\x02 \x01(\x03\x12\x13\n\x0b\x66\x65\x65_per_mil\x18\x03 \x01(\x03\x12\x10\n\x08\x66\x65\x65_rate\x18\x04 \x01(\x01\x12\x1d\n\x15inbound_base_fee_msat\x18\x06 \x01(\x05\x12\x1b\n\x13inbound_fee_per_mil\x18\x07 \x01(\x05\"\x84\x01\n\x11\x46\x65\x65ReportResponse\x12-\n\x0c\x63hannel_fees\x18\x01 \x03(\x0b\x32\x17.lnrpc.ChannelFeeReport\x12\x13\n\x0b\x64\x61y_fee_sum\x18\x02 \x01(\x04\x12\x14\n\x0cweek_fee_sum\x18\x03 \x01(\x04\x12\x15\n\rmonth_fee_sum\x18\x04 \x01(\x04\"9\n\nInboundFee\x12\x15\n\rbase_fee_msat\x18\x01 \x01(\x05\x12\x14\n\x0c\x66\x65\x65_rate_ppm\x18\x02 \x01(\x05\"\xaa\x02\n\x13PolicyUpdateRequest\x12\x10\n\x06global\x18\x01 \x01(\x08H\x00\x12)\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x15\n\rbase_fee_msat\x18\x03 \x01(\x03\x12\x10\n\x08\x66\x65\x65_rate\x18\x04 \x01(\x01\x12\x14\n\x0c\x66\x65\x65_rate_ppm\x18\t \x01(\r\x12\x17\n\x0ftime_lock_delta\x18\x05 \x01(\r\x12\x15\n\rmax_htlc_msat\x18\x06 \x01(\x04\x12\x15\n\rmin_htlc_msat\x18\x07 \x01(\x04\x12\x1f\n\x17min_htlc_msat_specified\x18\x08 \x01(\x08\x12&\n\x0binbound_fee\x18\n \x01(\x0b\x32\x11.lnrpc.InboundFeeB\x07\n\x05scope\"m\n\x0c\x46\x61iledUpdate\x12!\n\x08outpoint\x18\x01 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12$\n\x06reason\x18\x02 \x01(\x0e\x32\x14.lnrpc.UpdateFailure\x12\x14\n\x0cupdate_error\x18\x03 \x01(\t\"C\n\x14PolicyUpdateResponse\x12+\n\x0e\x66\x61iled_updates\x18\x01 \x03(\x0b\x32\x13.lnrpc.FailedUpdate\"\x89\x01\n\x18\x46orwardingHistoryRequest\x12\x12\n\nstart_time\x18\x01 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x02 \x01(\x04\x12\x14\n\x0cindex_offset\x18\x03 \x01(\r\x12\x16\n\x0enum_max_events\x18\x04 \x01(\r\x12\x19\n\x11peer_alias_lookup\x18\x05 \x01(\x08\"\x89\x02\n\x0f\x46orwardingEvent\x12\x15\n\ttimestamp\x18\x01 \x01(\x04\x42\x02\x18\x01\x12\x16\n\nchan_id_in\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0b\x63han_id_out\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x0e\n\x06\x61mt_in\x18\x05 \x01(\x04\x12\x0f\n\x07\x61mt_out\x18\x06 \x01(\x04\x12\x0b\n\x03\x66\x65\x65\x18\x07 \x01(\x04\x12\x10\n\x08\x66\x65\x65_msat\x18\x08 \x01(\x04\x12\x13\n\x0b\x61mt_in_msat\x18\t \x01(\x04\x12\x14\n\x0c\x61mt_out_msat\x18\n \x01(\x04\x12\x14\n\x0ctimestamp_ns\x18\x0b \x01(\x04\x12\x15\n\rpeer_alias_in\x18\x0c \x01(\t\x12\x16\n\x0epeer_alias_out\x18\r \x01(\t\"i\n\x19\x46orwardingHistoryResponse\x12\x31\n\x11\x66orwarding_events\x18\x01 \x03(\x0b\x32\x16.lnrpc.ForwardingEvent\x12\x19\n\x11last_offset_index\x18\x02 \x01(\r\"E\n\x1a\x45xportChannelBackupRequest\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\"M\n\rChannelBackup\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x13\n\x0b\x63han_backup\x18\x02 \x01(\x0c\"V\n\x0fMultiChanBackup\x12(\n\x0b\x63han_points\x18\x01 \x03(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x19\n\x11multi_chan_backup\x18\x02 \x01(\x0c\"\x19\n\x17\x43hanBackupExportRequest\"{\n\x12\x43hanBackupSnapshot\x12\x32\n\x13single_chan_backups\x18\x01 \x01(\x0b\x32\x15.lnrpc.ChannelBackups\x12\x31\n\x11multi_chan_backup\x18\x02 \x01(\x0b\x32\x16.lnrpc.MultiChanBackup\"<\n\x0e\x43hannelBackups\x12*\n\x0c\x63han_backups\x18\x01 \x03(\x0b\x32\x14.lnrpc.ChannelBackup\"p\n\x18RestoreChanBackupRequest\x12-\n\x0c\x63han_backups\x18\x01 \x01(\x0b\x32\x15.lnrpc.ChannelBackupsH\x00\x12\x1b\n\x11multi_chan_backup\x18\x02 \x01(\x0cH\x00\x42\x08\n\x06\x62\x61\x63kup\"\x17\n\x15RestoreBackupResponse\"\x1b\n\x19\x43hannelBackupSubscription\"\x1a\n\x18VerifyChanBackupResponse\"4\n\x12MacaroonPermission\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\t\"~\n\x13\x42\x61keMacaroonRequest\x12.\n\x0bpermissions\x18\x01 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\x12\x13\n\x0broot_key_id\x18\x02 \x01(\x04\x12\"\n\x1a\x61llow_external_permissions\x18\x03 \x01(\x08\"(\n\x14\x42\x61keMacaroonResponse\x12\x10\n\x08macaroon\x18\x01 \x01(\t\"\x18\n\x16ListMacaroonIDsRequest\"/\n\x17ListMacaroonIDsResponse\x12\x14\n\x0croot_key_ids\x18\x01 \x03(\x04\".\n\x17\x44\x65leteMacaroonIDRequest\x12\x13\n\x0broot_key_id\x18\x01 \x01(\x04\"+\n\x18\x44\x65leteMacaroonIDResponse\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\"H\n\x16MacaroonPermissionList\x12.\n\x0bpermissions\x18\x01 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\"\x18\n\x16ListPermissionsRequest\"\xc5\x01\n\x17ListPermissionsResponse\x12Q\n\x12method_permissions\x18\x01 \x03(\x0b\x32\x35.lnrpc.ListPermissionsResponse.MethodPermissionsEntry\x1aW\n\x16MethodPermissionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.lnrpc.MacaroonPermissionList:\x02\x38\x01\"\xf1\x07\n\x07\x46\x61ilure\x12(\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1a.lnrpc.Failure.FailureCode\x12,\n\x0e\x63hannel_update\x18\x03 \x01(\x0b\x32\x14.lnrpc.ChannelUpdate\x12\x11\n\thtlc_msat\x18\x04 \x01(\x04\x12\x15\n\ronion_sha_256\x18\x05 \x01(\x0c\x12\x13\n\x0b\x63ltv_expiry\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\x12\x1c\n\x14\x66\x61ilure_source_index\x18\x08 \x01(\r\x12\x0e\n\x06height\x18\t \x01(\r\"\x8b\x06\n\x0b\x46\x61ilureCode\x12\x0c\n\x08RESERVED\x10\x00\x12(\n$INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS\x10\x01\x12\x1c\n\x18INCORRECT_PAYMENT_AMOUNT\x10\x02\x12\x1f\n\x1b\x46INAL_INCORRECT_CLTV_EXPIRY\x10\x03\x12\x1f\n\x1b\x46INAL_INCORRECT_HTLC_AMOUNT\x10\x04\x12\x19\n\x15\x46INAL_EXPIRY_TOO_SOON\x10\x05\x12\x11\n\rINVALID_REALM\x10\x06\x12\x13\n\x0f\x45XPIRY_TOO_SOON\x10\x07\x12\x19\n\x15INVALID_ONION_VERSION\x10\x08\x12\x16\n\x12INVALID_ONION_HMAC\x10\t\x12\x15\n\x11INVALID_ONION_KEY\x10\n\x12\x18\n\x14\x41MOUNT_BELOW_MINIMUM\x10\x0b\x12\x14\n\x10\x46\x45\x45_INSUFFICIENT\x10\x0c\x12\x19\n\x15INCORRECT_CLTV_EXPIRY\x10\r\x12\x14\n\x10\x43HANNEL_DISABLED\x10\x0e\x12\x1d\n\x19TEMPORARY_CHANNEL_FAILURE\x10\x0f\x12!\n\x1dREQUIRED_NODE_FEATURE_MISSING\x10\x10\x12$\n REQUIRED_CHANNEL_FEATURE_MISSING\x10\x11\x12\x15\n\x11UNKNOWN_NEXT_PEER\x10\x12\x12\x1a\n\x16TEMPORARY_NODE_FAILURE\x10\x13\x12\x1a\n\x16PERMANENT_NODE_FAILURE\x10\x14\x12\x1d\n\x19PERMANENT_CHANNEL_FAILURE\x10\x15\x12\x12\n\x0e\x45XPIRY_TOO_FAR\x10\x16\x12\x0f\n\x0bMPP_TIMEOUT\x10\x17\x12\x19\n\x15INVALID_ONION_PAYLOAD\x10\x18\x12\x1a\n\x16INVALID_ONION_BLINDING\x10\x19\x12\x15\n\x10INTERNAL_FAILURE\x10\xe5\x07\x12\x14\n\x0fUNKNOWN_FAILURE\x10\xe6\x07\x12\x17\n\x12UNREADABLE_FAILURE\x10\xe7\x07J\x04\x08\x02\x10\x03\"\x9a\x02\n\rChannelUpdate\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x12\n\nchain_hash\x18\x02 \x01(\x0c\x12\x13\n\x07\x63han_id\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x11\n\ttimestamp\x18\x04 \x01(\r\x12\x15\n\rmessage_flags\x18\n \x01(\r\x12\x15\n\rchannel_flags\x18\x05 \x01(\r\x12\x17\n\x0ftime_lock_delta\x18\x06 \x01(\r\x12\x19\n\x11htlc_minimum_msat\x18\x07 \x01(\x04\x12\x10\n\x08\x62\x61se_fee\x18\x08 \x01(\r\x12\x10\n\x08\x66\x65\x65_rate\x18\t \x01(\r\x12\x19\n\x11htlc_maximum_msat\x18\x0b \x01(\x04\x12\x19\n\x11\x65xtra_opaque_data\x18\x0c \x01(\x0c\"F\n\nMacaroonId\x12\r\n\x05nonce\x18\x01 \x01(\x0c\x12\x11\n\tstorageId\x18\x02 \x01(\x0c\x12\x16\n\x03ops\x18\x03 \x03(\x0b\x32\t.lnrpc.Op\"%\n\x02Op\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63tions\x18\x02 \x03(\t\"k\n\x13\x43heckMacPermRequest\x12\x10\n\x08macaroon\x18\x01 \x01(\x0c\x12.\n\x0bpermissions\x18\x02 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\x12\x12\n\nfullMethod\x18\x03 \x01(\t\"%\n\x14\x43heckMacPermResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\"\x92\x02\n\x14RPCMiddlewareRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\x04\x12\x14\n\x0craw_macaroon\x18\x02 \x01(\x0c\x12\x1f\n\x17\x63ustom_caveat_condition\x18\x03 \x01(\t\x12(\n\x0bstream_auth\x18\x04 \x01(\x0b\x32\x11.lnrpc.StreamAuthH\x00\x12$\n\x07request\x18\x05 \x01(\x0b\x32\x11.lnrpc.RPCMessageH\x00\x12%\n\x08response\x18\x06 \x01(\x0b\x32\x11.lnrpc.RPCMessageH\x00\x12\x16\n\x0creg_complete\x18\x08 \x01(\x08H\x00\x12\x0e\n\x06msg_id\x18\x07 \x01(\x04\x42\x10\n\x0eintercept_type\"%\n\nStreamAuth\x12\x17\n\x0fmethod_full_uri\x18\x01 \x01(\t\"r\n\nRPCMessage\x12\x17\n\x0fmethod_full_uri\x18\x01 \x01(\t\x12\x12\n\nstream_rpc\x18\x02 \x01(\x08\x12\x11\n\ttype_name\x18\x03 \x01(\t\x12\x12\n\nserialized\x18\x04 \x01(\x0c\x12\x10\n\x08is_error\x18\x05 \x01(\x08\"\xa2\x01\n\x15RPCMiddlewareResponse\x12\x12\n\nref_msg_id\x18\x01 \x01(\x04\x12\x31\n\x08register\x18\x02 \x01(\x0b\x32\x1d.lnrpc.MiddlewareRegistrationH\x00\x12,\n\x08\x66\x65\x65\x64\x62\x61\x63k\x18\x03 \x01(\x0b\x32\x18.lnrpc.InterceptFeedbackH\x00\x42\x14\n\x12middleware_message\"n\n\x16MiddlewareRegistration\x12\x17\n\x0fmiddleware_name\x18\x01 \x01(\t\x12#\n\x1b\x63ustom_macaroon_caveat_name\x18\x02 \x01(\t\x12\x16\n\x0eread_only_mode\x18\x03 \x01(\x08\"\\\n\x11InterceptFeedback\x12\r\n\x05\x65rror\x18\x01 \x01(\t\x12\x18\n\x10replace_response\x18\x02 \x01(\x08\x12\x1e\n\x16replacement_serialized\x18\x03 \x01(\x0c*\xcb\x02\n\x10OutputScriptType\x12\x1b\n\x17SCRIPT_TYPE_PUBKEY_HASH\x10\x00\x12\x1b\n\x17SCRIPT_TYPE_SCRIPT_HASH\x10\x01\x12&\n\"SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH\x10\x02\x12&\n\"SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH\x10\x03\x12\x16\n\x12SCRIPT_TYPE_PUBKEY\x10\x04\x12\x18\n\x14SCRIPT_TYPE_MULTISIG\x10\x05\x12\x18\n\x14SCRIPT_TYPE_NULLDATA\x10\x06\x12\x1c\n\x18SCRIPT_TYPE_NON_STANDARD\x10\x07\x12\x1f\n\x1bSCRIPT_TYPE_WITNESS_UNKNOWN\x10\x08\x12\"\n\x1eSCRIPT_TYPE_WITNESS_V1_TAPROOT\x10\t*b\n\x15\x43oinSelectionStrategy\x12\x1e\n\x1aSTRATEGY_USE_GLOBAL_CONFIG\x10\x00\x12\x14\n\x10STRATEGY_LARGEST\x10\x01\x12\x13\n\x0fSTRATEGY_RANDOM\x10\x02*\xac\x01\n\x0b\x41\x64\x64ressType\x12\x17\n\x13WITNESS_PUBKEY_HASH\x10\x00\x12\x16\n\x12NESTED_PUBKEY_HASH\x10\x01\x12\x1e\n\x1aUNUSED_WITNESS_PUBKEY_HASH\x10\x02\x12\x1d\n\x19UNUSED_NESTED_PUBKEY_HASH\x10\x03\x12\x12\n\x0eTAPROOT_PUBKEY\x10\x04\x12\x19\n\x15UNUSED_TAPROOT_PUBKEY\x10\x05*\xa8\x01\n\x0e\x43ommitmentType\x12\x1b\n\x17UNKNOWN_COMMITMENT_TYPE\x10\x00\x12\n\n\x06LEGACY\x10\x01\x12\x15\n\x11STATIC_REMOTE_KEY\x10\x02\x12\x0b\n\x07\x41NCHORS\x10\x03\x12\x19\n\x15SCRIPT_ENFORCED_LEASE\x10\x04\x12\x12\n\x0eSIMPLE_TAPROOT\x10\x05\x12\x1a\n\x16SIMPLE_TAPROOT_OVERLAY\x10\x06*a\n\tInitiator\x12\x15\n\x11INITIATOR_UNKNOWN\x10\x00\x12\x13\n\x0fINITIATOR_LOCAL\x10\x01\x12\x14\n\x10INITIATOR_REMOTE\x10\x02\x12\x12\n\x0eINITIATOR_BOTH\x10\x03*`\n\x0eResolutionType\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\n\n\x06\x41NCHOR\x10\x01\x12\x11\n\rINCOMING_HTLC\x10\x02\x12\x11\n\rOUTGOING_HTLC\x10\x03\x12\n\n\x06\x43OMMIT\x10\x04*q\n\x11ResolutionOutcome\x12\x13\n\x0fOUTCOME_UNKNOWN\x10\x00\x12\x0b\n\x07\x43LAIMED\x10\x01\x12\r\n\tUNCLAIMED\x10\x02\x12\r\n\tABANDONED\x10\x03\x12\x0f\n\x0b\x46IRST_STAGE\x10\x04\x12\x0b\n\x07TIMEOUT\x10\x05*9\n\x0eNodeMetricType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x1a\n\x16\x42\x45TWEENNESS_CENTRALITY\x10\x01*;\n\x10InvoiceHTLCState\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x0c\n\x08\x43\x41NCELED\x10\x02*\xf6\x01\n\x14PaymentFailureReason\x12\x17\n\x13\x46\x41ILURE_REASON_NONE\x10\x00\x12\x1a\n\x16\x46\x41ILURE_REASON_TIMEOUT\x10\x01\x12\x1b\n\x17\x46\x41ILURE_REASON_NO_ROUTE\x10\x02\x12\x18\n\x14\x46\x41ILURE_REASON_ERROR\x10\x03\x12,\n(FAILURE_REASON_INCORRECT_PAYMENT_DETAILS\x10\x04\x12\'\n#FAILURE_REASON_INSUFFICIENT_BALANCE\x10\x05\x12\x1b\n\x17\x46\x41ILURE_REASON_CANCELED\x10\x06*\x89\x05\n\nFeatureBit\x12\x18\n\x14\x44\x41TALOSS_PROTECT_REQ\x10\x00\x12\x18\n\x14\x44\x41TALOSS_PROTECT_OPT\x10\x01\x12\x17\n\x13INITIAL_ROUING_SYNC\x10\x03\x12\x1f\n\x1bUPFRONT_SHUTDOWN_SCRIPT_REQ\x10\x04\x12\x1f\n\x1bUPFRONT_SHUTDOWN_SCRIPT_OPT\x10\x05\x12\x16\n\x12GOSSIP_QUERIES_REQ\x10\x06\x12\x16\n\x12GOSSIP_QUERIES_OPT\x10\x07\x12\x11\n\rTLV_ONION_REQ\x10\x08\x12\x11\n\rTLV_ONION_OPT\x10\t\x12\x1a\n\x16\x45XT_GOSSIP_QUERIES_REQ\x10\n\x12\x1a\n\x16\x45XT_GOSSIP_QUERIES_OPT\x10\x0b\x12\x19\n\x15STATIC_REMOTE_KEY_REQ\x10\x0c\x12\x19\n\x15STATIC_REMOTE_KEY_OPT\x10\r\x12\x14\n\x10PAYMENT_ADDR_REQ\x10\x0e\x12\x14\n\x10PAYMENT_ADDR_OPT\x10\x0f\x12\x0b\n\x07MPP_REQ\x10\x10\x12\x0b\n\x07MPP_OPT\x10\x11\x12\x16\n\x12WUMBO_CHANNELS_REQ\x10\x12\x12\x16\n\x12WUMBO_CHANNELS_OPT\x10\x13\x12\x0f\n\x0b\x41NCHORS_REQ\x10\x14\x12\x0f\n\x0b\x41NCHORS_OPT\x10\x15\x12\x1d\n\x19\x41NCHORS_ZERO_FEE_HTLC_REQ\x10\x16\x12\x1d\n\x19\x41NCHORS_ZERO_FEE_HTLC_OPT\x10\x17\x12\x1b\n\x17ROUTE_BLINDING_REQUIRED\x10\x18\x12\x1b\n\x17ROUTE_BLINDING_OPTIONAL\x10\x19\x12\x0b\n\x07\x41MP_REQ\x10\x1e\x12\x0b\n\x07\x41MP_OPT\x10\x1f*\xac\x01\n\rUpdateFailure\x12\x1a\n\x16UPDATE_FAILURE_UNKNOWN\x10\x00\x12\x1a\n\x16UPDATE_FAILURE_PENDING\x10\x01\x12\x1c\n\x18UPDATE_FAILURE_NOT_FOUND\x10\x02\x12\x1f\n\x1bUPDATE_FAILURE_INTERNAL_ERR\x10\x03\x12$\n UPDATE_FAILURE_INVALID_PARAMETER\x10\x04\x32\xb9\'\n\tLightning\x12J\n\rWalletBalance\x12\x1b.lnrpc.WalletBalanceRequest\x1a\x1c.lnrpc.WalletBalanceResponse\x12M\n\x0e\x43hannelBalance\x12\x1c.lnrpc.ChannelBalanceRequest\x1a\x1d.lnrpc.ChannelBalanceResponse\x12K\n\x0fGetTransactions\x12\x1d.lnrpc.GetTransactionsRequest\x1a\x19.lnrpc.TransactionDetails\x12\x44\n\x0b\x45stimateFee\x12\x19.lnrpc.EstimateFeeRequest\x1a\x1a.lnrpc.EstimateFeeResponse\x12>\n\tSendCoins\x12\x17.lnrpc.SendCoinsRequest\x1a\x18.lnrpc.SendCoinsResponse\x12\x44\n\x0bListUnspent\x12\x19.lnrpc.ListUnspentRequest\x1a\x1a.lnrpc.ListUnspentResponse\x12L\n\x15SubscribeTransactions\x12\x1d.lnrpc.GetTransactionsRequest\x1a\x12.lnrpc.Transaction0\x01\x12;\n\x08SendMany\x12\x16.lnrpc.SendManyRequest\x1a\x17.lnrpc.SendManyResponse\x12\x41\n\nNewAddress\x12\x18.lnrpc.NewAddressRequest\x1a\x19.lnrpc.NewAddressResponse\x12\x44\n\x0bSignMessage\x12\x19.lnrpc.SignMessageRequest\x1a\x1a.lnrpc.SignMessageResponse\x12J\n\rVerifyMessage\x12\x1b.lnrpc.VerifyMessageRequest\x1a\x1c.lnrpc.VerifyMessageResponse\x12\x44\n\x0b\x43onnectPeer\x12\x19.lnrpc.ConnectPeerRequest\x1a\x1a.lnrpc.ConnectPeerResponse\x12M\n\x0e\x44isconnectPeer\x12\x1c.lnrpc.DisconnectPeerRequest\x1a\x1d.lnrpc.DisconnectPeerResponse\x12>\n\tListPeers\x12\x17.lnrpc.ListPeersRequest\x1a\x18.lnrpc.ListPeersResponse\x12G\n\x13SubscribePeerEvents\x12\x1c.lnrpc.PeerEventSubscription\x1a\x10.lnrpc.PeerEvent0\x01\x12\x38\n\x07GetInfo\x12\x15.lnrpc.GetInfoRequest\x1a\x16.lnrpc.GetInfoResponse\x12G\n\x0cGetDebugInfo\x12\x1a.lnrpc.GetDebugInfoRequest\x1a\x1b.lnrpc.GetDebugInfoResponse\x12P\n\x0fGetRecoveryInfo\x12\x1d.lnrpc.GetRecoveryInfoRequest\x1a\x1e.lnrpc.GetRecoveryInfoResponse\x12P\n\x0fPendingChannels\x12\x1d.lnrpc.PendingChannelsRequest\x1a\x1e.lnrpc.PendingChannelsResponse\x12G\n\x0cListChannels\x12\x1a.lnrpc.ListChannelsRequest\x1a\x1b.lnrpc.ListChannelsResponse\x12V\n\x16SubscribeChannelEvents\x12\x1f.lnrpc.ChannelEventSubscription\x1a\x19.lnrpc.ChannelEventUpdate0\x01\x12M\n\x0e\x43losedChannels\x12\x1c.lnrpc.ClosedChannelsRequest\x1a\x1d.lnrpc.ClosedChannelsResponse\x12\x41\n\x0fOpenChannelSync\x12\x19.lnrpc.OpenChannelRequest\x1a\x13.lnrpc.ChannelPoint\x12\x43\n\x0bOpenChannel\x12\x19.lnrpc.OpenChannelRequest\x1a\x17.lnrpc.OpenStatusUpdate0\x01\x12S\n\x10\x42\x61tchOpenChannel\x12\x1e.lnrpc.BatchOpenChannelRequest\x1a\x1f.lnrpc.BatchOpenChannelResponse\x12L\n\x10\x46undingStateStep\x12\x1b.lnrpc.FundingTransitionMsg\x1a\x1b.lnrpc.FundingStateStepResp\x12P\n\x0f\x43hannelAcceptor\x12\x1c.lnrpc.ChannelAcceptResponse\x1a\x1b.lnrpc.ChannelAcceptRequest(\x01\x30\x01\x12\x46\n\x0c\x43loseChannel\x12\x1a.lnrpc.CloseChannelRequest\x1a\x18.lnrpc.CloseStatusUpdate0\x01\x12M\n\x0e\x41\x62\x61ndonChannel\x12\x1c.lnrpc.AbandonChannelRequest\x1a\x1d.lnrpc.AbandonChannelResponse\x12?\n\x0bSendPayment\x12\x12.lnrpc.SendRequest\x1a\x13.lnrpc.SendResponse\"\x03\x88\x02\x01(\x01\x30\x01\x12:\n\x0fSendPaymentSync\x12\x12.lnrpc.SendRequest\x1a\x13.lnrpc.SendResponse\x12\x46\n\x0bSendToRoute\x12\x19.lnrpc.SendToRouteRequest\x1a\x13.lnrpc.SendResponse\"\x03\x88\x02\x01(\x01\x30\x01\x12\x41\n\x0fSendToRouteSync\x12\x19.lnrpc.SendToRouteRequest\x1a\x13.lnrpc.SendResponse\x12\x37\n\nAddInvoice\x12\x0e.lnrpc.Invoice\x1a\x19.lnrpc.AddInvoiceResponse\x12\x45\n\x0cListInvoices\x12\x19.lnrpc.ListInvoiceRequest\x1a\x1a.lnrpc.ListInvoiceResponse\x12\x33\n\rLookupInvoice\x12\x12.lnrpc.PaymentHash\x1a\x0e.lnrpc.Invoice\x12\x41\n\x11SubscribeInvoices\x12\x1a.lnrpc.InvoiceSubscription\x1a\x0e.lnrpc.Invoice0\x01\x12\x32\n\x0c\x44\x65\x63odePayReq\x12\x13.lnrpc.PayReqString\x1a\r.lnrpc.PayReq\x12G\n\x0cListPayments\x12\x1a.lnrpc.ListPaymentsRequest\x1a\x1b.lnrpc.ListPaymentsResponse\x12J\n\rDeletePayment\x12\x1b.lnrpc.DeletePaymentRequest\x1a\x1c.lnrpc.DeletePaymentResponse\x12V\n\x11\x44\x65leteAllPayments\x12\x1f.lnrpc.DeleteAllPaymentsRequest\x1a .lnrpc.DeleteAllPaymentsResponse\x12@\n\rDescribeGraph\x12\x1a.lnrpc.ChannelGraphRequest\x1a\x13.lnrpc.ChannelGraph\x12G\n\x0eGetNodeMetrics\x12\x19.lnrpc.NodeMetricsRequest\x1a\x1a.lnrpc.NodeMetricsResponse\x12\x39\n\x0bGetChanInfo\x12\x16.lnrpc.ChanInfoRequest\x1a\x12.lnrpc.ChannelEdge\x12\x36\n\x0bGetNodeInfo\x12\x16.lnrpc.NodeInfoRequest\x1a\x0f.lnrpc.NodeInfo\x12\x44\n\x0bQueryRoutes\x12\x19.lnrpc.QueryRoutesRequest\x1a\x1a.lnrpc.QueryRoutesResponse\x12?\n\x0eGetNetworkInfo\x12\x19.lnrpc.NetworkInfoRequest\x1a\x12.lnrpc.NetworkInfo\x12\x35\n\nStopDaemon\x12\x12.lnrpc.StopRequest\x1a\x13.lnrpc.StopResponse\x12W\n\x15SubscribeChannelGraph\x12 .lnrpc.GraphTopologySubscription\x1a\x1a.lnrpc.GraphTopologyUpdate0\x01\x12\x41\n\nDebugLevel\x12\x18.lnrpc.DebugLevelRequest\x1a\x19.lnrpc.DebugLevelResponse\x12>\n\tFeeReport\x12\x17.lnrpc.FeeReportRequest\x1a\x18.lnrpc.FeeReportResponse\x12N\n\x13UpdateChannelPolicy\x12\x1a.lnrpc.PolicyUpdateRequest\x1a\x1b.lnrpc.PolicyUpdateResponse\x12V\n\x11\x46orwardingHistory\x12\x1f.lnrpc.ForwardingHistoryRequest\x1a .lnrpc.ForwardingHistoryResponse\x12N\n\x13\x45xportChannelBackup\x12!.lnrpc.ExportChannelBackupRequest\x1a\x14.lnrpc.ChannelBackup\x12T\n\x17\x45xportAllChannelBackups\x12\x1e.lnrpc.ChanBackupExportRequest\x1a\x19.lnrpc.ChanBackupSnapshot\x12N\n\x10VerifyChanBackup\x12\x19.lnrpc.ChanBackupSnapshot\x1a\x1f.lnrpc.VerifyChanBackupResponse\x12V\n\x15RestoreChannelBackups\x12\x1f.lnrpc.RestoreChanBackupRequest\x1a\x1c.lnrpc.RestoreBackupResponse\x12X\n\x17SubscribeChannelBackups\x12 .lnrpc.ChannelBackupSubscription\x1a\x19.lnrpc.ChanBackupSnapshot0\x01\x12G\n\x0c\x42\x61keMacaroon\x12\x1a.lnrpc.BakeMacaroonRequest\x1a\x1b.lnrpc.BakeMacaroonResponse\x12P\n\x0fListMacaroonIDs\x12\x1d.lnrpc.ListMacaroonIDsRequest\x1a\x1e.lnrpc.ListMacaroonIDsResponse\x12S\n\x10\x44\x65leteMacaroonID\x12\x1e.lnrpc.DeleteMacaroonIDRequest\x1a\x1f.lnrpc.DeleteMacaroonIDResponse\x12P\n\x0fListPermissions\x12\x1d.lnrpc.ListPermissionsRequest\x1a\x1e.lnrpc.ListPermissionsResponse\x12S\n\x18\x43heckMacaroonPermissions\x12\x1a.lnrpc.CheckMacPermRequest\x1a\x1b.lnrpc.CheckMacPermResponse\x12V\n\x15RegisterRPCMiddleware\x12\x1c.lnrpc.RPCMiddlewareResponse\x1a\x1b.lnrpc.RPCMiddlewareRequest(\x01\x30\x01\x12V\n\x11SendCustomMessage\x12\x1f.lnrpc.SendCustomMessageRequest\x1a .lnrpc.SendCustomMessageResponse\x12X\n\x17SubscribeCustomMessages\x12%.lnrpc.SubscribeCustomMessagesRequest\x1a\x14.lnrpc.CustomMessage0\x01\x12\x44\n\x0bListAliases\x12\x19.lnrpc.ListAliasesRequest\x1a\x1a.lnrpc.ListAliasesResponse\x12_\n\x14LookupHtlcResolution\x12\".lnrpc.LookupHtlcResolutionRequest\x1a#.lnrpc.LookupHtlcResolutionResponseB\'Z%github.com/lightningnetwork/lnd/lnrpcb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0flightning.proto\x12\x05lnrpc\"B\n\x1bLookupHtlcResolutionRequest\x12\x0f\n\x07\x63han_id\x18\x01 \x01(\x04\x12\x12\n\nhtlc_index\x18\x02 \x01(\x04\"A\n\x1cLookupHtlcResolutionResponse\x12\x0f\n\x07settled\x18\x01 \x01(\x08\x12\x10\n\x08offchain\x18\x02 \x01(\x08\" \n\x1eSubscribeCustomMessagesRequest\"9\n\rCustomMessage\x12\x0c\n\x04peer\x18\x01 \x01(\x0c\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"D\n\x18SendCustomMessageRequest\x12\x0c\n\x04peer\x18\x01 \x01(\x0c\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"+\n\x19SendCustomMessageResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"\xa2\x01\n\x04Utxo\x12(\n\x0c\x61\x64\x64ress_type\x18\x01 \x01(\x0e\x32\x12.lnrpc.AddressType\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x12\n\namount_sat\x18\x03 \x01(\x03\x12\x11\n\tpk_script\x18\x04 \x01(\t\x12!\n\x08outpoint\x18\x05 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12\x15\n\rconfirmations\x18\x06 \x01(\x03\"\x9e\x01\n\x0cOutputDetail\x12,\n\x0boutput_type\x18\x01 \x01(\x0e\x32\x17.lnrpc.OutputScriptType\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x11\n\tpk_script\x18\x03 \x01(\t\x12\x14\n\x0coutput_index\x18\x04 \x01(\x03\x12\x0e\n\x06\x61mount\x18\x05 \x01(\x03\x12\x16\n\x0eis_our_address\x18\x06 \x01(\x08\"\xbc\x02\n\x0bTransaction\x12\x0f\n\x07tx_hash\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x19\n\x11num_confirmations\x18\x03 \x01(\x05\x12\x12\n\nblock_hash\x18\x04 \x01(\t\x12\x14\n\x0c\x62lock_height\x18\x05 \x01(\x05\x12\x12\n\ntime_stamp\x18\x06 \x01(\x03\x12\x12\n\ntotal_fees\x18\x07 \x01(\x03\x12\x1a\n\x0e\x64\x65st_addresses\x18\x08 \x03(\tB\x02\x18\x01\x12+\n\x0eoutput_details\x18\x0b \x03(\x0b\x32\x13.lnrpc.OutputDetail\x12\x12\n\nraw_tx_hex\x18\t \x01(\t\x12\r\n\x05label\x18\n \x01(\t\x12\x33\n\x12previous_outpoints\x18\x0c \x03(\x0b\x32\x17.lnrpc.PreviousOutPoint\"\x83\x01\n\x16GetTransactionsRequest\x12\x14\n\x0cstart_height\x18\x01 \x01(\x05\x12\x12\n\nend_height\x18\x02 \x01(\x05\x12\x0f\n\x07\x61\x63\x63ount\x18\x03 \x01(\t\x12\x14\n\x0cindex_offset\x18\x04 \x01(\r\x12\x18\n\x10max_transactions\x18\x05 \x01(\r\"g\n\x12TransactionDetails\x12(\n\x0ctransactions\x18\x01 \x03(\x0b\x32\x12.lnrpc.Transaction\x12\x12\n\nlast_index\x18\x02 \x01(\x04\x12\x13\n\x0b\x66irst_index\x18\x03 \x01(\x04\"M\n\x08\x46\x65\x65Limit\x12\x0f\n\x05\x66ixed\x18\x01 \x01(\x03H\x00\x12\x14\n\nfixed_msat\x18\x03 \x01(\x03H\x00\x12\x11\n\x07percent\x18\x02 \x01(\x03H\x00\x42\x07\n\x05limit\"\x8a\x04\n\x0bSendRequest\x12\x0c\n\x04\x64\x65st\x18\x01 \x01(\x0c\x12\x17\n\x0b\x64\x65st_string\x18\x02 \x01(\tB\x02\x18\x01\x12\x0b\n\x03\x61mt\x18\x03 \x01(\x03\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\x12\x1f\n\x13payment_hash_string\x18\x05 \x01(\tB\x02\x18\x01\x12\x17\n\x0fpayment_request\x18\x06 \x01(\t\x12\x18\n\x10\x66inal_cltv_delta\x18\x07 \x01(\x05\x12\"\n\tfee_limit\x18\x08 \x01(\x0b\x32\x0f.lnrpc.FeeLimit\x12\x1c\n\x10outgoing_chan_id\x18\t \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0flast_hop_pubkey\x18\r \x01(\x0c\x12\x12\n\ncltv_limit\x18\n \x01(\r\x12\x46\n\x13\x64\x65st_custom_records\x18\x0b \x03(\x0b\x32).lnrpc.SendRequest.DestCustomRecordsEntry\x12\x1a\n\x12\x61llow_self_payment\x18\x0e \x01(\x08\x12(\n\rdest_features\x18\x0f \x03(\x0e\x32\x11.lnrpc.FeatureBit\x12\x14\n\x0cpayment_addr\x18\x10 \x01(\x0c\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"z\n\x0cSendResponse\x12\x15\n\rpayment_error\x18\x01 \x01(\t\x12\x18\n\x10payment_preimage\x18\x02 \x01(\x0c\x12#\n\rpayment_route\x18\x03 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\"n\n\x12SendToRouteRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x1f\n\x13payment_hash_string\x18\x02 \x01(\tB\x02\x18\x01\x12\x1b\n\x05route\x18\x04 \x01(\x0b\x32\x0c.lnrpc.RouteJ\x04\x08\x03\x10\x04\"\x98\x03\n\x14\x43hannelAcceptRequest\x12\x13\n\x0bnode_pubkey\x18\x01 \x01(\x0c\x12\x12\n\nchain_hash\x18\x02 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x03 \x01(\x0c\x12\x13\n\x0b\x66unding_amt\x18\x04 \x01(\x04\x12\x10\n\x08push_amt\x18\x05 \x01(\x04\x12\x12\n\ndust_limit\x18\x06 \x01(\x04\x12\x1b\n\x13max_value_in_flight\x18\x07 \x01(\x04\x12\x17\n\x0f\x63hannel_reserve\x18\x08 \x01(\x04\x12\x10\n\x08min_htlc\x18\t \x01(\x04\x12\x12\n\nfee_per_kw\x18\n \x01(\x04\x12\x11\n\tcsv_delay\x18\x0b \x01(\r\x12\x1a\n\x12max_accepted_htlcs\x18\x0c \x01(\r\x12\x15\n\rchannel_flags\x18\r \x01(\r\x12.\n\x0f\x63ommitment_type\x18\x0e \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x17\n\x0fwants_zero_conf\x18\x0f \x01(\x08\x12\x18\n\x10wants_scid_alias\x18\x10 \x01(\x08\"\x87\x02\n\x15\x43hannelAcceptResponse\x12\x0e\n\x06\x61\x63\x63\x65pt\x18\x01 \x01(\x08\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12\x18\n\x10upfront_shutdown\x18\x04 \x01(\t\x12\x11\n\tcsv_delay\x18\x05 \x01(\r\x12\x13\n\x0breserve_sat\x18\x06 \x01(\x04\x12\x1a\n\x12in_flight_max_msat\x18\x07 \x01(\x04\x12\x16\n\x0emax_htlc_count\x18\x08 \x01(\r\x12\x13\n\x0bmin_htlc_in\x18\t \x01(\x04\x12\x18\n\x10min_accept_depth\x18\n \x01(\r\x12\x11\n\tzero_conf\x18\x0b \x01(\x08\"n\n\x0c\x43hannelPoint\x12\x1c\n\x12\x66unding_txid_bytes\x18\x01 \x01(\x0cH\x00\x12\x1a\n\x10\x66unding_txid_str\x18\x02 \x01(\tH\x00\x12\x14\n\x0coutput_index\x18\x03 \x01(\rB\x0e\n\x0c\x66unding_txid\"F\n\x08OutPoint\x12\x12\n\ntxid_bytes\x18\x01 \x01(\x0c\x12\x10\n\x08txid_str\x18\x02 \x01(\t\x12\x14\n\x0coutput_index\x18\x03 \x01(\r\";\n\x10PreviousOutPoint\x12\x10\n\x08outpoint\x18\x01 \x01(\t\x12\x15\n\ris_our_output\x18\x02 \x01(\x08\"0\n\x10LightningAddress\x12\x0e\n\x06pubkey\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\"\x8e\x02\n\x12\x45stimateFeeRequest\x12\x41\n\x0c\x41\x64\x64rToAmount\x18\x01 \x03(\x0b\x32+.lnrpc.EstimateFeeRequest.AddrToAmountEntry\x12\x13\n\x0btarget_conf\x18\x02 \x01(\x05\x12\x11\n\tmin_confs\x18\x03 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x04 \x01(\x08\x12=\n\x17\x63oin_selection_strategy\x18\x05 \x01(\x0e\x32\x1c.lnrpc.CoinSelectionStrategy\x1a\x33\n\x11\x41\x64\x64rToAmountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\"_\n\x13\x45stimateFeeResponse\x12\x0f\n\x07\x66\x65\x65_sat\x18\x01 \x01(\x03\x12 \n\x14\x66\x65\x65rate_sat_per_byte\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x15\n\rsat_per_vbyte\x18\x03 \x01(\x04\"\xc8\x02\n\x0fSendManyRequest\x12>\n\x0c\x41\x64\x64rToAmount\x18\x01 \x03(\x0b\x32(.lnrpc.SendManyRequest.AddrToAmountEntry\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x04 \x01(\x04\x12\x18\n\x0csat_per_byte\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\r\n\x05label\x18\x06 \x01(\t\x12\x11\n\tmin_confs\x18\x07 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x08 \x01(\x08\x12=\n\x17\x63oin_selection_strategy\x18\t \x01(\x0e\x32\x1c.lnrpc.CoinSelectionStrategy\x1a\x33\n\x11\x41\x64\x64rToAmountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\" \n\x10SendManyResponse\x12\x0c\n\x04txid\x18\x01 \x01(\t\"\xa8\x02\n\x10SendCoinsRequest\x12\x0c\n\x04\x61\x64\x64r\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x04 \x01(\x04\x12\x18\n\x0csat_per_byte\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x10\n\x08send_all\x18\x06 \x01(\x08\x12\r\n\x05label\x18\x07 \x01(\t\x12\x11\n\tmin_confs\x18\x08 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\t \x01(\x08\x12=\n\x17\x63oin_selection_strategy\x18\n \x01(\x0e\x32\x1c.lnrpc.CoinSelectionStrategy\x12\"\n\toutpoints\x18\x0b \x03(\x0b\x32\x0f.lnrpc.OutPoint\"!\n\x11SendCoinsResponse\x12\x0c\n\x04txid\x18\x01 \x01(\t\"K\n\x12ListUnspentRequest\x12\x11\n\tmin_confs\x18\x01 \x01(\x05\x12\x11\n\tmax_confs\x18\x02 \x01(\x05\x12\x0f\n\x07\x61\x63\x63ount\x18\x03 \x01(\t\"1\n\x13ListUnspentResponse\x12\x1a\n\x05utxos\x18\x01 \x03(\x0b\x32\x0b.lnrpc.Utxo\"F\n\x11NewAddressRequest\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.lnrpc.AddressType\x12\x0f\n\x07\x61\x63\x63ount\x18\x02 \x01(\t\"%\n\x12NewAddressResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\"6\n\x12SignMessageRequest\x12\x0b\n\x03msg\x18\x01 \x01(\x0c\x12\x13\n\x0bsingle_hash\x18\x02 \x01(\x08\"(\n\x13SignMessageResponse\x12\x11\n\tsignature\x18\x01 \x01(\t\"6\n\x14VerifyMessageRequest\x12\x0b\n\x03msg\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\t\"6\n\x15VerifyMessageResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\x12\x0e\n\x06pubkey\x18\x02 \x01(\t\"Z\n\x12\x43onnectPeerRequest\x12%\n\x04\x61\x64\x64r\x18\x01 \x01(\x0b\x32\x17.lnrpc.LightningAddress\x12\x0c\n\x04perm\x18\x02 \x01(\x08\x12\x0f\n\x07timeout\x18\x03 \x01(\x04\"%\n\x13\x43onnectPeerResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"(\n\x15\x44isconnectPeerRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\"(\n\x16\x44isconnectPeerResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"\xb8\x01\n\x04HTLC\x12\x10\n\x08incoming\x18\x01 \x01(\x08\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x11\n\thash_lock\x18\x03 \x01(\x0c\x12\x19\n\x11\x65xpiration_height\x18\x04 \x01(\r\x12\x12\n\nhtlc_index\x18\x05 \x01(\x04\x12\x1a\n\x12\x66orwarding_channel\x18\x06 \x01(\x04\x12\x1d\n\x15\x66orwarding_htlc_index\x18\x07 \x01(\x04\x12\x11\n\tlocked_in\x18\x08 \x01(\x08\"\xaa\x01\n\x12\x43hannelConstraints\x12\x11\n\tcsv_delay\x18\x01 \x01(\r\x12\x18\n\x10\x63han_reserve_sat\x18\x02 \x01(\x04\x12\x16\n\x0e\x64ust_limit_sat\x18\x03 \x01(\x04\x12\x1c\n\x14max_pending_amt_msat\x18\x04 \x01(\x04\x12\x15\n\rmin_htlc_msat\x18\x05 \x01(\x04\x12\x1a\n\x12max_accepted_htlcs\x18\x06 \x01(\r\"\xd6\x07\n\x07\x43hannel\x12\x0e\n\x06\x61\x63tive\x18\x01 \x01(\x08\x12\x15\n\rremote_pubkey\x18\x02 \x01(\t\x12\x15\n\rchannel_point\x18\x03 \x01(\t\x12\x13\n\x07\x63han_id\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x10\n\x08\x63\x61pacity\x18\x05 \x01(\x03\x12\x15\n\rlocal_balance\x18\x06 \x01(\x03\x12\x16\n\x0eremote_balance\x18\x07 \x01(\x03\x12\x12\n\ncommit_fee\x18\x08 \x01(\x03\x12\x15\n\rcommit_weight\x18\t \x01(\x03\x12\x12\n\nfee_per_kw\x18\n \x01(\x03\x12\x19\n\x11unsettled_balance\x18\x0b \x01(\x03\x12\x1b\n\x13total_satoshis_sent\x18\x0c \x01(\x03\x12\x1f\n\x17total_satoshis_received\x18\r \x01(\x03\x12\x13\n\x0bnum_updates\x18\x0e \x01(\x04\x12\"\n\rpending_htlcs\x18\x0f \x03(\x0b\x32\x0b.lnrpc.HTLC\x12\x15\n\tcsv_delay\x18\x10 \x01(\rB\x02\x18\x01\x12\x0f\n\x07private\x18\x11 \x01(\x08\x12\x11\n\tinitiator\x18\x12 \x01(\x08\x12\x19\n\x11\x63han_status_flags\x18\x13 \x01(\t\x12\"\n\x16local_chan_reserve_sat\x18\x14 \x01(\x03\x42\x02\x18\x01\x12#\n\x17remote_chan_reserve_sat\x18\x15 \x01(\x03\x42\x02\x18\x01\x12\x1d\n\x11static_remote_key\x18\x16 \x01(\x08\x42\x02\x18\x01\x12.\n\x0f\x63ommitment_type\x18\x1a \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x10\n\x08lifetime\x18\x17 \x01(\x03\x12\x0e\n\x06uptime\x18\x18 \x01(\x03\x12\x15\n\rclose_address\x18\x19 \x01(\t\x12\x17\n\x0fpush_amount_sat\x18\x1b \x01(\x04\x12\x13\n\x0bthaw_height\x18\x1c \x01(\r\x12\x34\n\x11local_constraints\x18\x1d \x01(\x0b\x32\x19.lnrpc.ChannelConstraints\x12\x35\n\x12remote_constraints\x18\x1e \x01(\x0b\x32\x19.lnrpc.ChannelConstraints\x12\x13\n\x0b\x61lias_scids\x18\x1f \x03(\x04\x12\x11\n\tzero_conf\x18 \x01(\x08\x12 \n\x18zero_conf_confirmed_scid\x18! \x01(\x04\x12\x12\n\npeer_alias\x18\" \x01(\t\x12\x1b\n\x0fpeer_scid_alias\x18# \x01(\x04\x42\x02\x30\x01\x12\x0c\n\x04memo\x18$ \x01(\t\x12\x1b\n\x13\x63ustom_channel_data\x18% \x01(\x0c\"\x95\x01\n\x13ListChannelsRequest\x12\x13\n\x0b\x61\x63tive_only\x18\x01 \x01(\x08\x12\x15\n\rinactive_only\x18\x02 \x01(\x08\x12\x13\n\x0bpublic_only\x18\x03 \x01(\x08\x12\x14\n\x0cprivate_only\x18\x04 \x01(\x08\x12\x0c\n\x04peer\x18\x05 \x01(\x0c\x12\x19\n\x11peer_alias_lookup\x18\x06 \x01(\x08\"8\n\x14ListChannelsResponse\x12 \n\x08\x63hannels\x18\x0b \x03(\x0b\x32\x0e.lnrpc.Channel\".\n\x08\x41liasMap\x12\x11\n\tbase_scid\x18\x01 \x01(\x04\x12\x0f\n\x07\x61liases\x18\x02 \x03(\x04\"\x14\n\x12ListAliasesRequest\":\n\x13ListAliasesResponse\x12#\n\nalias_maps\x18\x01 \x03(\x0b\x32\x0f.lnrpc.AliasMap\"\x81\x05\n\x13\x43hannelCloseSummary\x12\x15\n\rchannel_point\x18\x01 \x01(\t\x12\x13\n\x07\x63han_id\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchain_hash\x18\x03 \x01(\t\x12\x17\n\x0f\x63losing_tx_hash\x18\x04 \x01(\t\x12\x15\n\rremote_pubkey\x18\x05 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x06 \x01(\x03\x12\x14\n\x0c\x63lose_height\x18\x07 \x01(\r\x12\x17\n\x0fsettled_balance\x18\x08 \x01(\x03\x12\x1b\n\x13time_locked_balance\x18\t \x01(\x03\x12:\n\nclose_type\x18\n \x01(\x0e\x32&.lnrpc.ChannelCloseSummary.ClosureType\x12(\n\x0eopen_initiator\x18\x0b \x01(\x0e\x32\x10.lnrpc.Initiator\x12)\n\x0f\x63lose_initiator\x18\x0c \x01(\x0e\x32\x10.lnrpc.Initiator\x12&\n\x0bresolutions\x18\r \x03(\x0b\x32\x11.lnrpc.Resolution\x12\x13\n\x0b\x61lias_scids\x18\x0e \x03(\x04\x12$\n\x18zero_conf_confirmed_scid\x18\x0f \x01(\x04\x42\x02\x30\x01\x12\x1b\n\x13\x63ustom_channel_data\x18\x10 \x01(\x0c\"\x8a\x01\n\x0b\x43losureType\x12\x15\n\x11\x43OOPERATIVE_CLOSE\x10\x00\x12\x15\n\x11LOCAL_FORCE_CLOSE\x10\x01\x12\x16\n\x12REMOTE_FORCE_CLOSE\x10\x02\x12\x10\n\x0c\x42REACH_CLOSE\x10\x03\x12\x14\n\x10\x46UNDING_CANCELED\x10\x04\x12\r\n\tABANDONED\x10\x05\"\xb2\x01\n\nResolution\x12.\n\x0fresolution_type\x18\x01 \x01(\x0e\x32\x15.lnrpc.ResolutionType\x12)\n\x07outcome\x18\x02 \x01(\x0e\x32\x18.lnrpc.ResolutionOutcome\x12!\n\x08outpoint\x18\x03 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12\x12\n\namount_sat\x18\x04 \x01(\x04\x12\x12\n\nsweep_txid\x18\x05 \x01(\t\"\x94\x01\n\x15\x43losedChannelsRequest\x12\x13\n\x0b\x63ooperative\x18\x01 \x01(\x08\x12\x13\n\x0blocal_force\x18\x02 \x01(\x08\x12\x14\n\x0cremote_force\x18\x03 \x01(\x08\x12\x0e\n\x06\x62reach\x18\x04 \x01(\x08\x12\x18\n\x10\x66unding_canceled\x18\x05 \x01(\x08\x12\x11\n\tabandoned\x18\x06 \x01(\x08\"F\n\x16\x43losedChannelsResponse\x12,\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1a.lnrpc.ChannelCloseSummary\"\xef\x03\n\x04Peer\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x12\n\nbytes_sent\x18\x04 \x01(\x04\x12\x12\n\nbytes_recv\x18\x05 \x01(\x04\x12\x10\n\x08sat_sent\x18\x06 \x01(\x03\x12\x10\n\x08sat_recv\x18\x07 \x01(\x03\x12\x0f\n\x07inbound\x18\x08 \x01(\x08\x12\x11\n\tping_time\x18\t \x01(\x03\x12\'\n\tsync_type\x18\n \x01(\x0e\x32\x14.lnrpc.Peer.SyncType\x12+\n\x08\x66\x65\x61tures\x18\x0b \x03(\x0b\x32\x19.lnrpc.Peer.FeaturesEntry\x12\'\n\x06\x65rrors\x18\x0c \x03(\x0b\x32\x17.lnrpc.TimestampedError\x12\x12\n\nflap_count\x18\r \x01(\x05\x12\x14\n\x0clast_flap_ns\x18\x0e \x01(\x03\x12\x19\n\x11last_ping_payload\x18\x0f \x01(\x0c\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\"P\n\x08SyncType\x12\x10\n\x0cUNKNOWN_SYNC\x10\x00\x12\x0f\n\x0b\x41\x43TIVE_SYNC\x10\x01\x12\x10\n\x0cPASSIVE_SYNC\x10\x02\x12\x0f\n\x0bPINNED_SYNC\x10\x03\"4\n\x10TimestampedError\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"(\n\x10ListPeersRequest\x12\x14\n\x0clatest_error\x18\x01 \x01(\x08\"/\n\x11ListPeersResponse\x12\x1a\n\x05peers\x18\x01 \x03(\x0b\x32\x0b.lnrpc.Peer\"\x17\n\x15PeerEventSubscription\"v\n\tPeerEvent\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12(\n\x04type\x18\x02 \x01(\x0e\x32\x1a.lnrpc.PeerEvent.EventType\".\n\tEventType\x12\x0f\n\x0bPEER_ONLINE\x10\x00\x12\x10\n\x0cPEER_OFFLINE\x10\x01\"\x10\n\x0eGetInfoRequest\"\xde\x04\n\x0fGetInfoResponse\x12\x0f\n\x07version\x18\x0e \x01(\t\x12\x13\n\x0b\x63ommit_hash\x18\x14 \x01(\t\x12\x17\n\x0fidentity_pubkey\x18\x01 \x01(\t\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\r\n\x05\x63olor\x18\x11 \x01(\t\x12\x1c\n\x14num_pending_channels\x18\x03 \x01(\r\x12\x1b\n\x13num_active_channels\x18\x04 \x01(\r\x12\x1d\n\x15num_inactive_channels\x18\x0f \x01(\r\x12\x11\n\tnum_peers\x18\x05 \x01(\r\x12\x14\n\x0c\x62lock_height\x18\x06 \x01(\r\x12\x12\n\nblock_hash\x18\x08 \x01(\t\x12\x1d\n\x15\x62\x65st_header_timestamp\x18\r \x01(\x03\x12\x17\n\x0fsynced_to_chain\x18\t \x01(\x08\x12\x17\n\x0fsynced_to_graph\x18\x12 \x01(\x08\x12\x13\n\x07testnet\x18\n \x01(\x08\x42\x02\x18\x01\x12\x1c\n\x06\x63hains\x18\x10 \x03(\x0b\x32\x0c.lnrpc.Chain\x12\x0c\n\x04uris\x18\x0c \x03(\t\x12\x36\n\x08\x66\x65\x61tures\x18\x13 \x03(\x0b\x32$.lnrpc.GetInfoResponse.FeaturesEntry\x12 \n\x18require_htlc_interceptor\x18\x15 \x01(\x08\x12$\n\x1cstore_final_htlc_resolutions\x18\x16 \x01(\x08\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01J\x04\x08\x0b\x10\x0c\"\x15\n\x13GetDebugInfoRequest\"\x8b\x01\n\x14GetDebugInfoResponse\x12\x37\n\x06\x63onfig\x18\x01 \x03(\x0b\x32\'.lnrpc.GetDebugInfoResponse.ConfigEntry\x12\x0b\n\x03log\x18\x02 \x03(\t\x1a-\n\x0b\x43onfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x18\n\x16GetRecoveryInfoRequest\"]\n\x17GetRecoveryInfoResponse\x12\x15\n\rrecovery_mode\x18\x01 \x01(\x08\x12\x19\n\x11recovery_finished\x18\x02 \x01(\x08\x12\x10\n\x08progress\x18\x03 \x01(\x01\"+\n\x05\x43hain\x12\x11\n\x05\x63hain\x18\x01 \x01(\tB\x02\x18\x01\x12\x0f\n\x07network\x18\x02 \x01(\t\"?\n\x11\x43hannelOpenUpdate\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\"c\n\x0b\x43loseOutput\x12\x12\n\namount_sat\x18\x01 \x01(\x03\x12\x11\n\tpk_script\x18\x02 \x01(\x0c\x12\x10\n\x08is_local\x18\x03 \x01(\x08\x12\x1b\n\x13\x63ustom_channel_data\x18\x04 \x01(\x0c\"\xcc\x01\n\x12\x43hannelCloseUpdate\x12\x14\n\x0c\x63losing_txid\x18\x01 \x01(\x0c\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12.\n\x12local_close_output\x18\x03 \x01(\x0b\x32\x12.lnrpc.CloseOutput\x12/\n\x13remote_close_output\x18\x04 \x01(\x0b\x32\x12.lnrpc.CloseOutput\x12.\n\x12\x61\x64\x64itional_outputs\x18\x05 \x03(\x0b\x32\x12.lnrpc.CloseOutput\"\xdc\x01\n\x13\x43loseChannelRequest\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x18\n\x0csat_per_byte\x18\x04 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x10\x64\x65livery_address\x18\x05 \x01(\t\x12\x15\n\rsat_per_vbyte\x18\x06 \x01(\x04\x12\x19\n\x11max_fee_per_vbyte\x18\x07 \x01(\x04\x12\x0f\n\x07no_wait\x18\x08 \x01(\x08\"\xac\x01\n\x11\x43loseStatusUpdate\x12-\n\rclose_pending\x18\x01 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12/\n\nchan_close\x18\x03 \x01(\x0b\x32\x19.lnrpc.ChannelCloseUpdateH\x00\x12-\n\rclose_instant\x18\x04 \x01(\x0b\x32\x14.lnrpc.InstantUpdateH\x00\x42\x08\n\x06update\"b\n\rPendingUpdate\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x14\n\x0coutput_index\x18\x02 \x01(\r\x12\x15\n\rfee_per_vbyte\x18\x03 \x01(\x03\x12\x16\n\x0elocal_close_tx\x18\x04 \x01(\x08\"*\n\rInstantUpdate\x12\x19\n\x11num_pending_htlcs\x18\x01 \x01(\x05\"T\n\x13ReadyForPsbtFunding\x12\x17\n\x0f\x66unding_address\x18\x01 \x01(\t\x12\x16\n\x0e\x66unding_amount\x18\x02 \x01(\x03\x12\x0c\n\x04psbt\x18\x03 \x01(\x0c\"\xec\x01\n\x17\x42\x61tchOpenChannelRequest\x12)\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x17.lnrpc.BatchOpenChannel\x12\x13\n\x0btarget_conf\x18\x02 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x03 \x01(\x03\x12\x11\n\tmin_confs\x18\x04 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x05 \x01(\x08\x12\r\n\x05label\x18\x06 \x01(\t\x12=\n\x17\x63oin_selection_strategy\x18\x07 \x01(\x0e\x32\x1c.lnrpc.CoinSelectionStrategy\"\xf9\x03\n\x10\x42\x61tchOpenChannel\x12\x13\n\x0bnode_pubkey\x18\x01 \x01(\x0c\x12\x1c\n\x14local_funding_amount\x18\x02 \x01(\x03\x12\x10\n\x08push_sat\x18\x03 \x01(\x03\x12\x0f\n\x07private\x18\x04 \x01(\x08\x12\x15\n\rmin_htlc_msat\x18\x05 \x01(\x03\x12\x18\n\x10remote_csv_delay\x18\x06 \x01(\r\x12\x15\n\rclose_address\x18\x07 \x01(\t\x12\x17\n\x0fpending_chan_id\x18\x08 \x01(\x0c\x12.\n\x0f\x63ommitment_type\x18\t \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\'\n\x1fremote_max_value_in_flight_msat\x18\n \x01(\x04\x12\x18\n\x10remote_max_htlcs\x18\x0b \x01(\r\x12\x15\n\rmax_local_csv\x18\x0c \x01(\r\x12\x11\n\tzero_conf\x18\r \x01(\x08\x12\x12\n\nscid_alias\x18\x0e \x01(\x08\x12\x10\n\x08\x62\x61se_fee\x18\x0f \x01(\x04\x12\x10\n\x08\x66\x65\x65_rate\x18\x10 \x01(\x04\x12\x14\n\x0cuse_base_fee\x18\x11 \x01(\x08\x12\x14\n\x0cuse_fee_rate\x18\x12 \x01(\x08\x12\x1f\n\x17remote_chan_reserve_sat\x18\x13 \x01(\x04\x12\x0c\n\x04memo\x18\x14 \x01(\t\"J\n\x18\x42\x61tchOpenChannelResponse\x12.\n\x10pending_channels\x18\x01 \x03(\x0b\x32\x14.lnrpc.PendingUpdate\"\xd6\x05\n\x12OpenChannelRequest\x12\x15\n\rsat_per_vbyte\x18\x01 \x01(\x04\x12\x13\n\x0bnode_pubkey\x18\x02 \x01(\x0c\x12\x1e\n\x12node_pubkey_string\x18\x03 \x01(\tB\x02\x18\x01\x12\x1c\n\x14local_funding_amount\x18\x04 \x01(\x03\x12\x10\n\x08push_sat\x18\x05 \x01(\x03\x12\x13\n\x0btarget_conf\x18\x06 \x01(\x05\x12\x18\n\x0csat_per_byte\x18\x07 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x07private\x18\x08 \x01(\x08\x12\x15\n\rmin_htlc_msat\x18\t \x01(\x03\x12\x18\n\x10remote_csv_delay\x18\n \x01(\r\x12\x11\n\tmin_confs\x18\x0b \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x0c \x01(\x08\x12\x15\n\rclose_address\x18\r \x01(\t\x12(\n\x0c\x66unding_shim\x18\x0e \x01(\x0b\x32\x12.lnrpc.FundingShim\x12\'\n\x1fremote_max_value_in_flight_msat\x18\x0f \x01(\x04\x12\x18\n\x10remote_max_htlcs\x18\x10 \x01(\r\x12\x15\n\rmax_local_csv\x18\x11 \x01(\r\x12.\n\x0f\x63ommitment_type\x18\x12 \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x11\n\tzero_conf\x18\x13 \x01(\x08\x12\x12\n\nscid_alias\x18\x14 \x01(\x08\x12\x10\n\x08\x62\x61se_fee\x18\x15 \x01(\x04\x12\x10\n\x08\x66\x65\x65_rate\x18\x16 \x01(\x04\x12\x14\n\x0cuse_base_fee\x18\x17 \x01(\x08\x12\x14\n\x0cuse_fee_rate\x18\x18 \x01(\x08\x12\x1f\n\x17remote_chan_reserve_sat\x18\x19 \x01(\x04\x12\x10\n\x08\x66und_max\x18\x1a \x01(\x08\x12\x0c\n\x04memo\x18\x1b \x01(\t\x12\"\n\toutpoints\x18\x1c \x03(\x0b\x32\x0f.lnrpc.OutPoint\"\xc3\x01\n\x10OpenStatusUpdate\x12,\n\x0c\x63han_pending\x18\x01 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12-\n\tchan_open\x18\x03 \x01(\x0b\x32\x18.lnrpc.ChannelOpenUpdateH\x00\x12/\n\tpsbt_fund\x18\x05 \x01(\x0b\x32\x1a.lnrpc.ReadyForPsbtFundingH\x00\x12\x17\n\x0fpending_chan_id\x18\x04 \x01(\x0c\x42\x08\n\x06update\"3\n\nKeyLocator\x12\x12\n\nkey_family\x18\x01 \x01(\x05\x12\x11\n\tkey_index\x18\x02 \x01(\x05\"J\n\rKeyDescriptor\x12\x15\n\rraw_key_bytes\x18\x01 \x01(\x0c\x12\"\n\x07key_loc\x18\x02 \x01(\x0b\x32\x11.lnrpc.KeyLocator\"\xc0\x01\n\rChanPointShim\x12\x0b\n\x03\x61mt\x18\x01 \x01(\x03\x12\'\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\'\n\tlocal_key\x18\x03 \x01(\x0b\x32\x14.lnrpc.KeyDescriptor\x12\x12\n\nremote_key\x18\x04 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x05 \x01(\x0c\x12\x13\n\x0bthaw_height\x18\x06 \x01(\r\x12\x0e\n\x06musig2\x18\x07 \x01(\x08\"J\n\x08PsbtShim\x12\x17\n\x0fpending_chan_id\x18\x01 \x01(\x0c\x12\x11\n\tbase_psbt\x18\x02 \x01(\x0c\x12\x12\n\nno_publish\x18\x03 \x01(\x08\"l\n\x0b\x46undingShim\x12/\n\x0f\x63han_point_shim\x18\x01 \x01(\x0b\x32\x14.lnrpc.ChanPointShimH\x00\x12$\n\tpsbt_shim\x18\x02 \x01(\x0b\x32\x0f.lnrpc.PsbtShimH\x00\x42\x06\n\x04shim\",\n\x11\x46undingShimCancel\x12\x17\n\x0fpending_chan_id\x18\x01 \x01(\x0c\"X\n\x11\x46undingPsbtVerify\x12\x13\n\x0b\x66unded_psbt\x18\x01 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\x15\n\rskip_finalize\x18\x03 \x01(\x08\"Y\n\x13\x46undingPsbtFinalize\x12\x13\n\x0bsigned_psbt\x18\x01 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\x14\n\x0c\x66inal_raw_tx\x18\x03 \x01(\x0c\"\xe5\x01\n\x14\x46undingTransitionMsg\x12+\n\rshim_register\x18\x01 \x01(\x0b\x32\x12.lnrpc.FundingShimH\x00\x12/\n\x0bshim_cancel\x18\x02 \x01(\x0b\x32\x18.lnrpc.FundingShimCancelH\x00\x12/\n\x0bpsbt_verify\x18\x03 \x01(\x0b\x32\x18.lnrpc.FundingPsbtVerifyH\x00\x12\x33\n\rpsbt_finalize\x18\x04 \x01(\x0b\x32\x1a.lnrpc.FundingPsbtFinalizeH\x00\x42\t\n\x07trigger\"\x16\n\x14\x46undingStateStepResp\"\x86\x01\n\x0bPendingHTLC\x12\x10\n\x08incoming\x18\x01 \x01(\x08\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x10\n\x08outpoint\x18\x03 \x01(\t\x12\x17\n\x0fmaturity_height\x18\x04 \x01(\r\x12\x1b\n\x13\x62locks_til_maturity\x18\x05 \x01(\x05\x12\r\n\x05stage\x18\x06 \x01(\r\"0\n\x16PendingChannelsRequest\x12\x16\n\x0einclude_raw_tx\x18\x01 \x01(\x08\"\x9a\x0f\n\x17PendingChannelsResponse\x12\x1b\n\x13total_limbo_balance\x18\x01 \x01(\x03\x12P\n\x15pending_open_channels\x18\x02 \x03(\x0b\x32\x31.lnrpc.PendingChannelsResponse.PendingOpenChannel\x12R\n\x18pending_closing_channels\x18\x03 \x03(\x0b\x32,.lnrpc.PendingChannelsResponse.ClosedChannelB\x02\x18\x01\x12Y\n\x1epending_force_closing_channels\x18\x04 \x03(\x0b\x32\x31.lnrpc.PendingChannelsResponse.ForceClosedChannel\x12R\n\x16waiting_close_channels\x18\x05 \x03(\x0b\x32\x32.lnrpc.PendingChannelsResponse.WaitingCloseChannel\x1a\x8f\x03\n\x0ePendingChannel\x12\x17\n\x0fremote_node_pub\x18\x01 \x01(\t\x12\x15\n\rchannel_point\x18\x02 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\x03\x12\x15\n\rlocal_balance\x18\x04 \x01(\x03\x12\x16\n\x0eremote_balance\x18\x05 \x01(\x03\x12\x1e\n\x16local_chan_reserve_sat\x18\x06 \x01(\x03\x12\x1f\n\x17remote_chan_reserve_sat\x18\x07 \x01(\x03\x12#\n\tinitiator\x18\x08 \x01(\x0e\x32\x10.lnrpc.Initiator\x12.\n\x0f\x63ommitment_type\x18\t \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x1f\n\x17num_forwarding_packages\x18\n \x01(\x03\x12\x19\n\x11\x63han_status_flags\x18\x0b \x01(\t\x12\x0f\n\x07private\x18\x0c \x01(\x08\x12\x0c\n\x04memo\x18\r \x01(\t\x12\x1b\n\x13\x63ustom_channel_data\x18\" \x01(\x0c\x1a\xf9\x01\n\x12PendingOpenChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x12\n\ncommit_fee\x18\x04 \x01(\x03\x12\x15\n\rcommit_weight\x18\x05 \x01(\x03\x12\x12\n\nfee_per_kw\x18\x06 \x01(\x03\x12\x1d\n\x15\x66unding_expiry_blocks\x18\x03 \x01(\x05\x12\"\n\x1a\x63onfirmations_until_active\x18\x07 \x01(\r\x12\x1b\n\x13\x63onfirmation_height\x18\x08 \x01(\rJ\x04\x08\x02\x10\x03\x1a\xdb\x01\n\x13WaitingCloseChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x15\n\rlimbo_balance\x18\x02 \x01(\x03\x12?\n\x0b\x63ommitments\x18\x03 \x01(\x0b\x32*.lnrpc.PendingChannelsResponse.Commitments\x12\x14\n\x0c\x63losing_txid\x18\x04 \x01(\t\x12\x16\n\x0e\x63losing_tx_hex\x18\x05 \x01(\t\x1a\xb7\x01\n\x0b\x43ommitments\x12\x12\n\nlocal_txid\x18\x01 \x01(\t\x12\x13\n\x0bremote_txid\x18\x02 \x01(\t\x12\x1b\n\x13remote_pending_txid\x18\x03 \x01(\t\x12\x1c\n\x14local_commit_fee_sat\x18\x04 \x01(\x04\x12\x1d\n\x15remote_commit_fee_sat\x18\x05 \x01(\x04\x12%\n\x1dremote_pending_commit_fee_sat\x18\x06 \x01(\x04\x1a\x65\n\rClosedChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x14\n\x0c\x63losing_txid\x18\x02 \x01(\t\x1a\xff\x02\n\x12\x46orceClosedChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x14\n\x0c\x63losing_txid\x18\x02 \x01(\t\x12\x15\n\rlimbo_balance\x18\x03 \x01(\x03\x12\x17\n\x0fmaturity_height\x18\x04 \x01(\r\x12\x1b\n\x13\x62locks_til_maturity\x18\x05 \x01(\x05\x12\x19\n\x11recovered_balance\x18\x06 \x01(\x03\x12)\n\rpending_htlcs\x18\x08 \x03(\x0b\x32\x12.lnrpc.PendingHTLC\x12M\n\x06\x61nchor\x18\t \x01(\x0e\x32=.lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState\"1\n\x0b\x41nchorState\x12\t\n\x05LIMBO\x10\x00\x12\r\n\tRECOVERED\x10\x01\x12\x08\n\x04LOST\x10\x02\"\x1a\n\x18\x43hannelEventSubscription\"\xe8\x04\n\x12\x43hannelEventUpdate\x12&\n\x0copen_channel\x18\x01 \x01(\x0b\x32\x0e.lnrpc.ChannelH\x00\x12\x34\n\x0e\x63losed_channel\x18\x02 \x01(\x0b\x32\x1a.lnrpc.ChannelCloseSummaryH\x00\x12-\n\x0e\x61\x63tive_channel\x18\x03 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12/\n\x10inactive_channel\x18\x04 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x34\n\x14pending_open_channel\x18\x06 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12\x35\n\x16\x66ully_resolved_channel\x18\x07 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x36\n\x17\x63hannel_funding_timeout\x18\x08 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x32\n\x04type\x18\x05 \x01(\x0e\x32$.lnrpc.ChannelEventUpdate.UpdateType\"\xaf\x01\n\nUpdateType\x12\x10\n\x0cOPEN_CHANNEL\x10\x00\x12\x12\n\x0e\x43LOSED_CHANNEL\x10\x01\x12\x12\n\x0e\x41\x43TIVE_CHANNEL\x10\x02\x12\x14\n\x10INACTIVE_CHANNEL\x10\x03\x12\x18\n\x14PENDING_OPEN_CHANNEL\x10\x04\x12\x1a\n\x16\x46ULLY_RESOLVED_CHANNEL\x10\x05\x12\x1b\n\x17\x43HANNEL_FUNDING_TIMEOUT\x10\x06\x42\t\n\x07\x63hannel\"N\n\x14WalletAccountBalance\x12\x19\n\x11\x63onfirmed_balance\x18\x01 \x01(\x03\x12\x1b\n\x13unconfirmed_balance\x18\x02 \x01(\x03\":\n\x14WalletBalanceRequest\x12\x0f\n\x07\x61\x63\x63ount\x18\x01 \x01(\t\x12\x11\n\tmin_confs\x18\x02 \x01(\x05\"\xc3\x02\n\x15WalletBalanceResponse\x12\x15\n\rtotal_balance\x18\x01 \x01(\x03\x12\x19\n\x11\x63onfirmed_balance\x18\x02 \x01(\x03\x12\x1b\n\x13unconfirmed_balance\x18\x03 \x01(\x03\x12\x16\n\x0elocked_balance\x18\x05 \x01(\x03\x12$\n\x1creserved_balance_anchor_chan\x18\x06 \x01(\x03\x12I\n\x0f\x61\x63\x63ount_balance\x18\x04 \x03(\x0b\x32\x30.lnrpc.WalletBalanceResponse.AccountBalanceEntry\x1aR\n\x13\x41\x63\x63ountBalanceEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.lnrpc.WalletAccountBalance:\x02\x38\x01\"#\n\x06\x41mount\x12\x0b\n\x03sat\x18\x01 \x01(\x04\x12\x0c\n\x04msat\x18\x02 \x01(\x04\"\x17\n\x15\x43hannelBalanceRequest\"\x81\x03\n\x16\x43hannelBalanceResponse\x12\x13\n\x07\x62\x61lance\x18\x01 \x01(\x03\x42\x02\x18\x01\x12 \n\x14pending_open_balance\x18\x02 \x01(\x03\x42\x02\x18\x01\x12$\n\rlocal_balance\x18\x03 \x01(\x0b\x32\r.lnrpc.Amount\x12%\n\x0eremote_balance\x18\x04 \x01(\x0b\x32\r.lnrpc.Amount\x12.\n\x17unsettled_local_balance\x18\x05 \x01(\x0b\x32\r.lnrpc.Amount\x12/\n\x18unsettled_remote_balance\x18\x06 \x01(\x0b\x32\r.lnrpc.Amount\x12\x31\n\x1apending_open_local_balance\x18\x07 \x01(\x0b\x32\r.lnrpc.Amount\x12\x32\n\x1bpending_open_remote_balance\x18\x08 \x01(\x0b\x32\r.lnrpc.Amount\x12\x1b\n\x13\x63ustom_channel_data\x18\t \x01(\x0c\"\xba\x05\n\x12QueryRoutesRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x0b\n\x03\x61mt\x18\x02 \x01(\x03\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x18\n\x10\x66inal_cltv_delta\x18\x04 \x01(\x05\x12\"\n\tfee_limit\x18\x05 \x01(\x0b\x32\x0f.lnrpc.FeeLimit\x12\x15\n\rignored_nodes\x18\x06 \x03(\x0c\x12-\n\rignored_edges\x18\x07 \x03(\x0b\x32\x12.lnrpc.EdgeLocatorB\x02\x18\x01\x12\x16\n\x0esource_pub_key\x18\x08 \x01(\t\x12\x1b\n\x13use_mission_control\x18\t \x01(\x08\x12&\n\rignored_pairs\x18\n \x03(\x0b\x32\x0f.lnrpc.NodePair\x12\x12\n\ncltv_limit\x18\x0b \x01(\r\x12M\n\x13\x64\x65st_custom_records\x18\r \x03(\x0b\x32\x30.lnrpc.QueryRoutesRequest.DestCustomRecordsEntry\x12\x1e\n\x10outgoing_chan_id\x18\x0e \x01(\x04\x42\x04\x18\x01\x30\x01\x12\x17\n\x0flast_hop_pubkey\x18\x0f \x01(\x0c\x12%\n\x0broute_hints\x18\x10 \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x38\n\x15\x62linded_payment_paths\x18\x13 \x03(\x0b\x32\x19.lnrpc.BlindedPaymentPath\x12(\n\rdest_features\x18\x11 \x03(\x0e\x32\x11.lnrpc.FeatureBit\x12\x11\n\ttime_pref\x18\x12 \x01(\x01\x12\x19\n\x11outgoing_chan_ids\x18\x14 \x03(\x04\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01J\x04\x08\x03\x10\x04\"$\n\x08NodePair\x12\x0c\n\x04\x66rom\x18\x01 \x01(\x0c\x12\n\n\x02to\x18\x02 \x01(\x0c\"@\n\x0b\x45\x64geLocator\x12\x16\n\nchannel_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x19\n\x11\x64irection_reverse\x18\x02 \x01(\x08\"I\n\x13QueryRoutesResponse\x12\x1c\n\x06routes\x18\x01 \x03(\x0b\x32\x0c.lnrpc.Route\x12\x14\n\x0csuccess_prob\x18\x02 \x01(\x01\"\xde\x03\n\x03Hop\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x19\n\rchan_capacity\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x1a\n\x0e\x61mt_to_forward\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x03\x66\x65\x65\x18\x04 \x01(\x03\x42\x02\x18\x01\x12\x0e\n\x06\x65xpiry\x18\x05 \x01(\r\x12\x1b\n\x13\x61mt_to_forward_msat\x18\x06 \x01(\x03\x12\x10\n\x08\x66\x65\x65_msat\x18\x07 \x01(\x03\x12\x0f\n\x07pub_key\x18\x08 \x01(\t\x12\x17\n\x0btlv_payload\x18\t \x01(\x08\x42\x02\x18\x01\x12$\n\nmpp_record\x18\n \x01(\x0b\x32\x10.lnrpc.MPPRecord\x12$\n\namp_record\x18\x0c \x01(\x0b\x32\x10.lnrpc.AMPRecord\x12\x35\n\x0e\x63ustom_records\x18\x0b \x03(\x0b\x32\x1d.lnrpc.Hop.CustomRecordsEntry\x12\x10\n\x08metadata\x18\r \x01(\x0c\x12\x16\n\x0e\x62linding_point\x18\x0e \x01(\x0c\x12\x16\n\x0e\x65ncrypted_data\x18\x0f \x01(\x0c\x12\x16\n\x0etotal_amt_msat\x18\x10 \x01(\x04\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"9\n\tMPPRecord\x12\x14\n\x0cpayment_addr\x18\x0b \x01(\x0c\x12\x16\n\x0etotal_amt_msat\x18\n \x01(\x03\"D\n\tAMPRecord\x12\x12\n\nroot_share\x18\x01 \x01(\x0c\x12\x0e\n\x06set_id\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hild_index\x18\x03 \x01(\r\"\xd6\x01\n\x05Route\x12\x17\n\x0ftotal_time_lock\x18\x01 \x01(\r\x12\x16\n\ntotal_fees\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x15\n\ttotal_amt\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x04hops\x18\x04 \x03(\x0b\x32\n.lnrpc.Hop\x12\x17\n\x0ftotal_fees_msat\x18\x05 \x01(\x03\x12\x16\n\x0etotal_amt_msat\x18\x06 \x01(\x03\x12\x1d\n\x15\x66irst_hop_amount_msat\x18\x07 \x01(\x03\x12\x1b\n\x13\x63ustom_channel_data\x18\x08 \x01(\x0c\"X\n\x0fNodeInfoRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x18\n\x10include_channels\x18\x02 \x01(\x08\x12\x1a\n\x12include_auth_proof\x18\x03 \x01(\x08\"\x82\x01\n\x08NodeInfo\x12\"\n\x04node\x18\x01 \x01(\x0b\x32\x14.lnrpc.LightningNode\x12\x14\n\x0cnum_channels\x18\x02 \x01(\r\x12\x16\n\x0etotal_capacity\x18\x03 \x01(\x03\x12$\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x12.lnrpc.ChannelEdge\"\xe8\x02\n\rLightningNode\x12\x13\n\x0blast_update\x18\x01 \x01(\r\x12\x0f\n\x07pub_key\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\x12%\n\taddresses\x18\x04 \x03(\x0b\x32\x12.lnrpc.NodeAddress\x12\r\n\x05\x63olor\x18\x05 \x01(\t\x12\x34\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32\".lnrpc.LightningNode.FeaturesEntry\x12?\n\x0e\x63ustom_records\x18\x07 \x03(\x0b\x32\'.lnrpc.LightningNode.CustomRecordsEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\",\n\x0bNodeAddress\x12\x0f\n\x07network\x18\x01 \x01(\t\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\t\"\xe7\x02\n\rRoutingPolicy\x12\x17\n\x0ftime_lock_delta\x18\x01 \x01(\r\x12\x10\n\x08min_htlc\x18\x02 \x01(\x03\x12\x15\n\rfee_base_msat\x18\x03 \x01(\x03\x12\x1b\n\x13\x66\x65\x65_rate_milli_msat\x18\x04 \x01(\x03\x12\x10\n\x08\x64isabled\x18\x05 \x01(\x08\x12\x15\n\rmax_htlc_msat\x18\x06 \x01(\x04\x12\x13\n\x0blast_update\x18\x07 \x01(\r\x12?\n\x0e\x63ustom_records\x18\x08 \x03(\x0b\x32\'.lnrpc.RoutingPolicy.CustomRecordsEntry\x12\x1d\n\x15inbound_fee_base_msat\x18\t \x01(\x05\x12#\n\x1binbound_fee_rate_milli_msat\x18\n \x01(\x05\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"d\n\x10\x43hannelAuthProof\x12\x11\n\tnode_sig1\x18\x01 \x01(\x0c\x12\x14\n\x0c\x62itcoin_sig1\x18\x02 \x01(\x0c\x12\x11\n\tnode_sig2\x18\x03 \x01(\x0c\x12\x14\n\x0c\x62itcoin_sig2\x18\x04 \x01(\x0c\"\x84\x03\n\x0b\x43hannelEdge\x12\x16\n\nchannel_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchan_point\x18\x02 \x01(\t\x12\x17\n\x0blast_update\x18\x03 \x01(\rB\x02\x18\x01\x12\x11\n\tnode1_pub\x18\x04 \x01(\t\x12\x11\n\tnode2_pub\x18\x05 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x06 \x01(\x03\x12*\n\x0cnode1_policy\x18\x07 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12*\n\x0cnode2_policy\x18\x08 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12=\n\x0e\x63ustom_records\x18\t \x03(\x0b\x32%.lnrpc.ChannelEdge.CustomRecordsEntry\x12+\n\nauth_proof\x18\n \x01(\x0b\x32\x17.lnrpc.ChannelAuthProof\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"N\n\x13\x43hannelGraphRequest\x12\x1b\n\x13include_unannounced\x18\x01 \x01(\x08\x12\x1a\n\x12include_auth_proof\x18\x02 \x01(\x08\"V\n\x0c\x43hannelGraph\x12#\n\x05nodes\x18\x01 \x03(\x0b\x32\x14.lnrpc.LightningNode\x12!\n\x05\x65\x64ges\x18\x02 \x03(\x0b\x32\x12.lnrpc.ChannelEdge\":\n\x12NodeMetricsRequest\x12$\n\x05types\x18\x01 \x03(\x0e\x32\x15.lnrpc.NodeMetricType\"\xbe\x01\n\x13NodeMetricsResponse\x12U\n\x16\x62\x65tweenness_centrality\x18\x01 \x03(\x0b\x32\x35.lnrpc.NodeMetricsResponse.BetweennessCentralityEntry\x1aP\n\x1a\x42\x65tweennessCentralityEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.lnrpc.FloatMetric:\x02\x38\x01\"6\n\x0b\x46loatMetric\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x18\n\x10normalized_value\x18\x02 \x01(\x01\"V\n\x0f\x43hanInfoRequest\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchan_point\x18\x02 \x01(\t\x12\x1a\n\x12include_auth_proof\x18\x03 \x01(\x08\"\x14\n\x12NetworkInfoRequest\"\xa7\x02\n\x0bNetworkInfo\x12\x16\n\x0egraph_diameter\x18\x01 \x01(\r\x12\x16\n\x0e\x61vg_out_degree\x18\x02 \x01(\x01\x12\x16\n\x0emax_out_degree\x18\x03 \x01(\r\x12\x11\n\tnum_nodes\x18\x04 \x01(\r\x12\x14\n\x0cnum_channels\x18\x05 \x01(\r\x12\x1e\n\x16total_network_capacity\x18\x06 \x01(\x03\x12\x18\n\x10\x61vg_channel_size\x18\x07 \x01(\x01\x12\x18\n\x10min_channel_size\x18\x08 \x01(\x03\x12\x18\n\x10max_channel_size\x18\t \x01(\x03\x12\x1f\n\x17median_channel_size_sat\x18\n \x01(\x03\x12\x18\n\x10num_zombie_chans\x18\x0b \x01(\x04\"\r\n\x0bStopRequest\"\x1e\n\x0cStopResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"\x1b\n\x19GraphTopologySubscription\"\xa3\x01\n\x13GraphTopologyUpdate\x12\'\n\x0cnode_updates\x18\x01 \x03(\x0b\x32\x11.lnrpc.NodeUpdate\x12\x31\n\x0f\x63hannel_updates\x18\x02 \x03(\x0b\x32\x18.lnrpc.ChannelEdgeUpdate\x12\x30\n\x0c\x63losed_chans\x18\x03 \x03(\x0b\x32\x1a.lnrpc.ClosedChannelUpdate\"\x94\x02\n\nNodeUpdate\x12\x15\n\taddresses\x18\x01 \x03(\tB\x02\x18\x01\x12\x14\n\x0cidentity_key\x18\x02 \x01(\t\x12\x1b\n\x0fglobal_features\x18\x03 \x01(\x0c\x42\x02\x18\x01\x12\r\n\x05\x61lias\x18\x04 \x01(\t\x12\r\n\x05\x63olor\x18\x05 \x01(\t\x12*\n\x0enode_addresses\x18\x07 \x03(\x0b\x32\x12.lnrpc.NodeAddress\x12\x31\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32\x1f.lnrpc.NodeUpdate.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\"\xc4\x01\n\x11\x43hannelEdgeUpdate\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\'\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\x03\x12,\n\x0erouting_policy\x18\x04 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12\x18\n\x10\x61\x64vertising_node\x18\x05 \x01(\t\x12\x17\n\x0f\x63onnecting_node\x18\x06 \x01(\t\"|\n\x13\x43losedChannelUpdate\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x10\n\x08\x63\x61pacity\x18\x02 \x01(\x03\x12\x15\n\rclosed_height\x18\x03 \x01(\r\x12\'\n\nchan_point\x18\x04 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\"\x86\x01\n\x07HopHint\x12\x0f\n\x07node_id\x18\x01 \x01(\t\x12\x13\n\x07\x63han_id\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rfee_base_msat\x18\x03 \x01(\r\x12#\n\x1b\x66\x65\x65_proportional_millionths\x18\x04 \x01(\r\x12\x19\n\x11\x63ltv_expiry_delta\x18\x05 \x01(\r\"\x17\n\x05SetID\x12\x0e\n\x06set_id\x18\x01 \x01(\x0c\".\n\tRouteHint\x12!\n\thop_hints\x18\x01 \x03(\x0b\x32\x0e.lnrpc.HopHint\"\xe1\x01\n\x12\x42lindedPaymentPath\x12(\n\x0c\x62linded_path\x18\x01 \x01(\x0b\x32\x12.lnrpc.BlindedPath\x12\x15\n\rbase_fee_msat\x18\x02 \x01(\x04\x12\x1d\n\x15proportional_fee_rate\x18\x03 \x01(\r\x12\x18\n\x10total_cltv_delta\x18\x04 \x01(\r\x12\x15\n\rhtlc_min_msat\x18\x05 \x01(\x04\x12\x15\n\rhtlc_max_msat\x18\x06 \x01(\x04\x12#\n\x08\x66\x65\x61tures\x18\x07 \x03(\x0e\x32\x11.lnrpc.FeatureBit\"i\n\x0b\x42lindedPath\x12\x19\n\x11introduction_node\x18\x01 \x01(\x0c\x12\x16\n\x0e\x62linding_point\x18\x02 \x01(\x0c\x12\'\n\x0c\x62linded_hops\x18\x03 \x03(\x0b\x32\x11.lnrpc.BlindedHop\":\n\nBlindedHop\x12\x14\n\x0c\x62linded_node\x18\x01 \x01(\x0c\x12\x16\n\x0e\x65ncrypted_data\x18\x02 \x01(\x0c\"{\n\x0f\x41MPInvoiceState\x12&\n\x05state\x18\x01 \x01(\x0e\x32\x17.lnrpc.InvoiceHTLCState\x12\x14\n\x0csettle_index\x18\x02 \x01(\x04\x12\x13\n\x0bsettle_time\x18\x03 \x01(\x03\x12\x15\n\ramt_paid_msat\x18\x05 \x01(\x03\"\xd0\x07\n\x07Invoice\x12\x0c\n\x04memo\x18\x01 \x01(\t\x12\x12\n\nr_preimage\x18\x03 \x01(\x0c\x12\x0e\n\x06r_hash\x18\x04 \x01(\x0c\x12\r\n\x05value\x18\x05 \x01(\x03\x12\x12\n\nvalue_msat\x18\x17 \x01(\x03\x12\x13\n\x07settled\x18\x06 \x01(\x08\x42\x02\x18\x01\x12\x15\n\rcreation_date\x18\x07 \x01(\x03\x12\x13\n\x0bsettle_date\x18\x08 \x01(\x03\x12\x17\n\x0fpayment_request\x18\t \x01(\t\x12\x18\n\x10\x64\x65scription_hash\x18\n \x01(\x0c\x12\x0e\n\x06\x65xpiry\x18\x0b \x01(\x03\x12\x15\n\rfallback_addr\x18\x0c \x01(\t\x12\x13\n\x0b\x63ltv_expiry\x18\r \x01(\x04\x12%\n\x0broute_hints\x18\x0e \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x0f\n\x07private\x18\x0f \x01(\x08\x12\x11\n\tadd_index\x18\x10 \x01(\x04\x12\x14\n\x0csettle_index\x18\x11 \x01(\x04\x12\x14\n\x08\x61mt_paid\x18\x12 \x01(\x03\x42\x02\x18\x01\x12\x14\n\x0c\x61mt_paid_sat\x18\x13 \x01(\x03\x12\x15\n\ramt_paid_msat\x18\x14 \x01(\x03\x12*\n\x05state\x18\x15 \x01(\x0e\x32\x1b.lnrpc.Invoice.InvoiceState\x12!\n\x05htlcs\x18\x16 \x03(\x0b\x32\x12.lnrpc.InvoiceHTLC\x12.\n\x08\x66\x65\x61tures\x18\x18 \x03(\x0b\x32\x1c.lnrpc.Invoice.FeaturesEntry\x12\x12\n\nis_keysend\x18\x19 \x01(\x08\x12\x14\n\x0cpayment_addr\x18\x1a \x01(\x0c\x12\x0e\n\x06is_amp\x18\x1b \x01(\x08\x12>\n\x11\x61mp_invoice_state\x18\x1c \x03(\x0b\x32#.lnrpc.Invoice.AmpInvoiceStateEntry\x12\x12\n\nis_blinded\x18\x1d \x01(\x08\x12\x35\n\x13\x62linded_path_config\x18\x1e \x01(\x0b\x32\x18.lnrpc.BlindedPathConfig\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\x1aN\n\x14\x41mpInvoiceStateEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.lnrpc.AMPInvoiceState:\x02\x38\x01\"A\n\x0cInvoiceState\x12\x08\n\x04OPEN\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x0c\n\x08\x43\x41NCELED\x10\x02\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x03J\x04\x08\x02\x10\x03\"\xd6\x01\n\x11\x42lindedPathConfig\x12\x1e\n\x11min_num_real_hops\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x15\n\x08num_hops\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rmax_num_paths\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1a\n\x12node_omission_list\x18\x04 \x03(\x0c\x12\x1d\n\x15incoming_channel_list\x18\x05 \x03(\x04\x42\x14\n\x12_min_num_real_hopsB\x0b\n\t_num_hopsB\x10\n\x0e_max_num_paths\"\x90\x03\n\x0bInvoiceHTLC\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nhtlc_index\x18\x02 \x01(\x04\x12\x10\n\x08\x61mt_msat\x18\x03 \x01(\x04\x12\x15\n\raccept_height\x18\x04 \x01(\x05\x12\x13\n\x0b\x61\x63\x63\x65pt_time\x18\x05 \x01(\x03\x12\x14\n\x0cresolve_time\x18\x06 \x01(\x03\x12\x15\n\rexpiry_height\x18\x07 \x01(\x05\x12&\n\x05state\x18\x08 \x01(\x0e\x32\x17.lnrpc.InvoiceHTLCState\x12=\n\x0e\x63ustom_records\x18\t \x03(\x0b\x32%.lnrpc.InvoiceHTLC.CustomRecordsEntry\x12\x1a\n\x12mpp_total_amt_msat\x18\n \x01(\x04\x12\x17\n\x03\x61mp\x18\x0b \x01(\x0b\x32\n.lnrpc.AMP\x12\x1b\n\x13\x63ustom_channel_data\x18\x0c \x01(\x0c\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"^\n\x03\x41MP\x12\x12\n\nroot_share\x18\x01 \x01(\x0c\x12\x0e\n\x06set_id\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hild_index\x18\x03 \x01(\r\x12\x0c\n\x04hash\x18\x04 \x01(\x0c\x12\x10\n\x08preimage\x18\x05 \x01(\x0c\"f\n\x12\x41\x64\x64InvoiceResponse\x12\x0e\n\x06r_hash\x18\x01 \x01(\x0c\x12\x17\n\x0fpayment_request\x18\x02 \x01(\t\x12\x11\n\tadd_index\x18\x10 \x01(\x04\x12\x14\n\x0cpayment_addr\x18\x11 \x01(\x0c\"5\n\x0bPaymentHash\x12\x16\n\nr_hash_str\x18\x01 \x01(\tB\x02\x18\x01\x12\x0e\n\x06r_hash\x18\x02 \x01(\x0c\"\xa4\x01\n\x12ListInvoiceRequest\x12\x14\n\x0cpending_only\x18\x01 \x01(\x08\x12\x14\n\x0cindex_offset\x18\x04 \x01(\x04\x12\x18\n\x10num_max_invoices\x18\x05 \x01(\x04\x12\x10\n\x08reversed\x18\x06 \x01(\x08\x12\x1b\n\x13\x63reation_date_start\x18\x07 \x01(\x04\x12\x19\n\x11\x63reation_date_end\x18\x08 \x01(\x04\"n\n\x13ListInvoiceResponse\x12 \n\x08invoices\x18\x01 \x03(\x0b\x32\x0e.lnrpc.Invoice\x12\x19\n\x11last_index_offset\x18\x02 \x01(\x04\x12\x1a\n\x12\x66irst_index_offset\x18\x03 \x01(\x04\">\n\x13InvoiceSubscription\x12\x11\n\tadd_index\x18\x01 \x01(\x04\x12\x14\n\x0csettle_index\x18\x02 \x01(\x04\"-\n\x15\x44\x65lCanceledInvoiceReq\x12\x14\n\x0cinvoice_hash\x18\x01 \x01(\t\"(\n\x16\x44\x65lCanceledInvoiceResp\x12\x0e\n\x06status\x18\x01 \x01(\t\"\xfe\x04\n\x07Payment\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\t\x12\x11\n\x05value\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x19\n\rcreation_date\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x03\x66\x65\x65\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x10payment_preimage\x18\x06 \x01(\t\x12\x11\n\tvalue_sat\x18\x07 \x01(\x03\x12\x12\n\nvalue_msat\x18\x08 \x01(\x03\x12\x17\n\x0fpayment_request\x18\t \x01(\t\x12,\n\x06status\x18\n \x01(\x0e\x32\x1c.lnrpc.Payment.PaymentStatus\x12\x0f\n\x07\x66\x65\x65_sat\x18\x0b \x01(\x03\x12\x10\n\x08\x66\x65\x65_msat\x18\x0c \x01(\x03\x12\x18\n\x10\x63reation_time_ns\x18\r \x01(\x03\x12!\n\x05htlcs\x18\x0e \x03(\x0b\x32\x12.lnrpc.HTLCAttempt\x12\x15\n\rpayment_index\x18\x0f \x01(\x04\x12\x33\n\x0e\x66\x61ilure_reason\x18\x10 \x01(\x0e\x32\x1b.lnrpc.PaymentFailureReason\x12K\n\x18\x66irst_hop_custom_records\x18\x11 \x03(\x0b\x32).lnrpc.Payment.FirstHopCustomRecordsEntry\x1a<\n\x1a\x46irstHopCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"Y\n\rPaymentStatus\x12\x0f\n\x07UNKNOWN\x10\x00\x1a\x02\x08\x01\x12\r\n\tIN_FLIGHT\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\r\n\tINITIATED\x10\x04J\x04\x08\x04\x10\x05\"\x8a\x02\n\x0bHTLCAttempt\x12\x12\n\nattempt_id\x18\x07 \x01(\x04\x12-\n\x06status\x18\x01 \x01(\x0e\x32\x1d.lnrpc.HTLCAttempt.HTLCStatus\x12\x1b\n\x05route\x18\x02 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x17\n\x0f\x61ttempt_time_ns\x18\x03 \x01(\x03\x12\x17\n\x0fresolve_time_ns\x18\x04 \x01(\x03\x12\x1f\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32\x0e.lnrpc.Failure\x12\x10\n\x08preimage\x18\x06 \x01(\x0c\"6\n\nHTLCStatus\x12\r\n\tIN_FLIGHT\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"\xc5\x01\n\x13ListPaymentsRequest\x12\x1a\n\x12include_incomplete\x18\x01 \x01(\x08\x12\x14\n\x0cindex_offset\x18\x02 \x01(\x04\x12\x14\n\x0cmax_payments\x18\x03 \x01(\x04\x12\x10\n\x08reversed\x18\x04 \x01(\x08\x12\x1c\n\x14\x63ount_total_payments\x18\x05 \x01(\x08\x12\x1b\n\x13\x63reation_date_start\x18\x06 \x01(\x04\x12\x19\n\x11\x63reation_date_end\x18\x07 \x01(\x04\"\x8b\x01\n\x14ListPaymentsResponse\x12 \n\x08payments\x18\x01 \x03(\x0b\x32\x0e.lnrpc.Payment\x12\x1a\n\x12\x66irst_index_offset\x18\x02 \x01(\x04\x12\x19\n\x11last_index_offset\x18\x03 \x01(\x04\x12\x1a\n\x12total_num_payments\x18\x04 \x01(\x04\"G\n\x14\x44\x65letePaymentRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x19\n\x11\x66\x61iled_htlcs_only\x18\x02 \x01(\x08\"i\n\x18\x44\x65leteAllPaymentsRequest\x12\x1c\n\x14\x66\x61iled_payments_only\x18\x01 \x01(\x08\x12\x19\n\x11\x66\x61iled_htlcs_only\x18\x02 \x01(\x08\x12\x14\n\x0c\x61ll_payments\x18\x03 \x01(\x08\"\'\n\x15\x44\x65letePaymentResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"+\n\x19\x44\x65leteAllPaymentsResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"\x86\x01\n\x15\x41\x62\x61ndonChannelRequest\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12!\n\x19pending_funding_shim_only\x18\x02 \x01(\x08\x12\x1e\n\x16i_know_what_i_am_doing\x18\x03 \x01(\x08\"(\n\x16\x41\x62\x61ndonChannelResponse\x12\x0e\n\x06status\x18\x01 \x01(\t\"5\n\x11\x44\x65\x62ugLevelRequest\x12\x0c\n\x04show\x18\x01 \x01(\x08\x12\x12\n\nlevel_spec\x18\x02 \x01(\t\")\n\x12\x44\x65\x62ugLevelResponse\x12\x13\n\x0bsub_systems\x18\x01 \x01(\t\"\x1f\n\x0cPayReqString\x12\x0f\n\x07pay_req\x18\x01 \x01(\t\"\xb8\x03\n\x06PayReq\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\t\x12\x14\n\x0cnum_satoshis\x18\x03 \x01(\x03\x12\x11\n\ttimestamp\x18\x04 \x01(\x03\x12\x0e\n\x06\x65xpiry\x18\x05 \x01(\x03\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x18\n\x10\x64\x65scription_hash\x18\x07 \x01(\t\x12\x15\n\rfallback_addr\x18\x08 \x01(\t\x12\x13\n\x0b\x63ltv_expiry\x18\t \x01(\x03\x12%\n\x0broute_hints\x18\n \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x14\n\x0cpayment_addr\x18\x0b \x01(\x0c\x12\x10\n\x08num_msat\x18\x0c \x01(\x03\x12-\n\x08\x66\x65\x61tures\x18\r \x03(\x0b\x32\x1b.lnrpc.PayReq.FeaturesEntry\x12\x30\n\rblinded_paths\x18\x0e \x03(\x0b\x32\x19.lnrpc.BlindedPaymentPath\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\">\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0bis_required\x18\x03 \x01(\x08\x12\x10\n\x08is_known\x18\x04 \x01(\x08\"\x12\n\x10\x46\x65\x65ReportRequest\"\xb8\x01\n\x10\x43hannelFeeReport\x12\x13\n\x07\x63han_id\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rchannel_point\x18\x01 \x01(\t\x12\x15\n\rbase_fee_msat\x18\x02 \x01(\x03\x12\x13\n\x0b\x66\x65\x65_per_mil\x18\x03 \x01(\x03\x12\x10\n\x08\x66\x65\x65_rate\x18\x04 \x01(\x01\x12\x1d\n\x15inbound_base_fee_msat\x18\x06 \x01(\x05\x12\x1b\n\x13inbound_fee_per_mil\x18\x07 \x01(\x05\"\x84\x01\n\x11\x46\x65\x65ReportResponse\x12-\n\x0c\x63hannel_fees\x18\x01 \x03(\x0b\x32\x17.lnrpc.ChannelFeeReport\x12\x13\n\x0b\x64\x61y_fee_sum\x18\x02 \x01(\x04\x12\x14\n\x0cweek_fee_sum\x18\x03 \x01(\x04\x12\x15\n\rmonth_fee_sum\x18\x04 \x01(\x04\"9\n\nInboundFee\x12\x15\n\rbase_fee_msat\x18\x01 \x01(\x05\x12\x14\n\x0c\x66\x65\x65_rate_ppm\x18\x02 \x01(\x05\"\xc7\x02\n\x13PolicyUpdateRequest\x12\x10\n\x06global\x18\x01 \x01(\x08H\x00\x12)\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x15\n\rbase_fee_msat\x18\x03 \x01(\x03\x12\x10\n\x08\x66\x65\x65_rate\x18\x04 \x01(\x01\x12\x14\n\x0c\x66\x65\x65_rate_ppm\x18\t \x01(\r\x12\x17\n\x0ftime_lock_delta\x18\x05 \x01(\r\x12\x15\n\rmax_htlc_msat\x18\x06 \x01(\x04\x12\x15\n\rmin_htlc_msat\x18\x07 \x01(\x04\x12\x1f\n\x17min_htlc_msat_specified\x18\x08 \x01(\x08\x12&\n\x0binbound_fee\x18\n \x01(\x0b\x32\x11.lnrpc.InboundFee\x12\x1b\n\x13\x63reate_missing_edge\x18\x0b \x01(\x08\x42\x07\n\x05scope\"m\n\x0c\x46\x61iledUpdate\x12!\n\x08outpoint\x18\x01 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12$\n\x06reason\x18\x02 \x01(\x0e\x32\x14.lnrpc.UpdateFailure\x12\x14\n\x0cupdate_error\x18\x03 \x01(\t\"C\n\x14PolicyUpdateResponse\x12+\n\x0e\x66\x61iled_updates\x18\x01 \x03(\x0b\x32\x13.lnrpc.FailedUpdate\"\xbf\x01\n\x18\x46orwardingHistoryRequest\x12\x12\n\nstart_time\x18\x01 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x02 \x01(\x04\x12\x14\n\x0cindex_offset\x18\x03 \x01(\r\x12\x16\n\x0enum_max_events\x18\x04 \x01(\r\x12\x19\n\x11peer_alias_lookup\x18\x05 \x01(\x08\x12\x19\n\x11incoming_chan_ids\x18\x06 \x03(\x04\x12\x19\n\x11outgoing_chan_ids\x18\x07 \x03(\x04\"\xf1\x02\n\x0f\x46orwardingEvent\x12\x15\n\ttimestamp\x18\x01 \x01(\x04\x42\x02\x18\x01\x12\x16\n\nchan_id_in\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0b\x63han_id_out\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x0e\n\x06\x61mt_in\x18\x05 \x01(\x04\x12\x0f\n\x07\x61mt_out\x18\x06 \x01(\x04\x12\x0b\n\x03\x66\x65\x65\x18\x07 \x01(\x04\x12\x10\n\x08\x66\x65\x65_msat\x18\x08 \x01(\x04\x12\x13\n\x0b\x61mt_in_msat\x18\t \x01(\x04\x12\x14\n\x0c\x61mt_out_msat\x18\n \x01(\x04\x12\x14\n\x0ctimestamp_ns\x18\x0b \x01(\x04\x12\x15\n\rpeer_alias_in\x18\x0c \x01(\t\x12\x16\n\x0epeer_alias_out\x18\r \x01(\t\x12\x1d\n\x10incoming_htlc_id\x18\x0e \x01(\x04H\x00\x88\x01\x01\x12\x1d\n\x10outgoing_htlc_id\x18\x0f \x01(\x04H\x01\x88\x01\x01\x42\x13\n\x11_incoming_htlc_idB\x13\n\x11_outgoing_htlc_id\"i\n\x19\x46orwardingHistoryResponse\x12\x31\n\x11\x66orwarding_events\x18\x01 \x03(\x0b\x32\x16.lnrpc.ForwardingEvent\x12\x19\n\x11last_offset_index\x18\x02 \x01(\r\"E\n\x1a\x45xportChannelBackupRequest\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\"M\n\rChannelBackup\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x13\n\x0b\x63han_backup\x18\x02 \x01(\x0c\"V\n\x0fMultiChanBackup\x12(\n\x0b\x63han_points\x18\x01 \x03(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x19\n\x11multi_chan_backup\x18\x02 \x01(\x0c\"\x19\n\x17\x43hanBackupExportRequest\"{\n\x12\x43hanBackupSnapshot\x12\x32\n\x13single_chan_backups\x18\x01 \x01(\x0b\x32\x15.lnrpc.ChannelBackups\x12\x31\n\x11multi_chan_backup\x18\x02 \x01(\x0b\x32\x16.lnrpc.MultiChanBackup\"<\n\x0e\x43hannelBackups\x12*\n\x0c\x63han_backups\x18\x01 \x03(\x0b\x32\x14.lnrpc.ChannelBackup\"p\n\x18RestoreChanBackupRequest\x12-\n\x0c\x63han_backups\x18\x01 \x01(\x0b\x32\x15.lnrpc.ChannelBackupsH\x00\x12\x1b\n\x11multi_chan_backup\x18\x02 \x01(\x0cH\x00\x42\x08\n\x06\x62\x61\x63kup\"-\n\x15RestoreBackupResponse\x12\x14\n\x0cnum_restored\x18\x01 \x01(\r\"\x1b\n\x19\x43hannelBackupSubscription\"/\n\x18VerifyChanBackupResponse\x12\x13\n\x0b\x63han_points\x18\x01 \x03(\t\"4\n\x12MacaroonPermission\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\t\"~\n\x13\x42\x61keMacaroonRequest\x12.\n\x0bpermissions\x18\x01 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\x12\x13\n\x0broot_key_id\x18\x02 \x01(\x04\x12\"\n\x1a\x61llow_external_permissions\x18\x03 \x01(\x08\"(\n\x14\x42\x61keMacaroonResponse\x12\x10\n\x08macaroon\x18\x01 \x01(\t\"\x18\n\x16ListMacaroonIDsRequest\"/\n\x17ListMacaroonIDsResponse\x12\x14\n\x0croot_key_ids\x18\x01 \x03(\x04\".\n\x17\x44\x65leteMacaroonIDRequest\x12\x13\n\x0broot_key_id\x18\x01 \x01(\x04\"+\n\x18\x44\x65leteMacaroonIDResponse\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\"H\n\x16MacaroonPermissionList\x12.\n\x0bpermissions\x18\x01 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\"\x18\n\x16ListPermissionsRequest\"\xc5\x01\n\x17ListPermissionsResponse\x12Q\n\x12method_permissions\x18\x01 \x03(\x0b\x32\x35.lnrpc.ListPermissionsResponse.MethodPermissionsEntry\x1aW\n\x16MethodPermissionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.lnrpc.MacaroonPermissionList:\x02\x38\x01\"\xf1\x07\n\x07\x46\x61ilure\x12(\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1a.lnrpc.Failure.FailureCode\x12,\n\x0e\x63hannel_update\x18\x03 \x01(\x0b\x32\x14.lnrpc.ChannelUpdate\x12\x11\n\thtlc_msat\x18\x04 \x01(\x04\x12\x15\n\ronion_sha_256\x18\x05 \x01(\x0c\x12\x13\n\x0b\x63ltv_expiry\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\x12\x1c\n\x14\x66\x61ilure_source_index\x18\x08 \x01(\r\x12\x0e\n\x06height\x18\t \x01(\r\"\x8b\x06\n\x0b\x46\x61ilureCode\x12\x0c\n\x08RESERVED\x10\x00\x12(\n$INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS\x10\x01\x12\x1c\n\x18INCORRECT_PAYMENT_AMOUNT\x10\x02\x12\x1f\n\x1b\x46INAL_INCORRECT_CLTV_EXPIRY\x10\x03\x12\x1f\n\x1b\x46INAL_INCORRECT_HTLC_AMOUNT\x10\x04\x12\x19\n\x15\x46INAL_EXPIRY_TOO_SOON\x10\x05\x12\x11\n\rINVALID_REALM\x10\x06\x12\x13\n\x0f\x45XPIRY_TOO_SOON\x10\x07\x12\x19\n\x15INVALID_ONION_VERSION\x10\x08\x12\x16\n\x12INVALID_ONION_HMAC\x10\t\x12\x15\n\x11INVALID_ONION_KEY\x10\n\x12\x18\n\x14\x41MOUNT_BELOW_MINIMUM\x10\x0b\x12\x14\n\x10\x46\x45\x45_INSUFFICIENT\x10\x0c\x12\x19\n\x15INCORRECT_CLTV_EXPIRY\x10\r\x12\x14\n\x10\x43HANNEL_DISABLED\x10\x0e\x12\x1d\n\x19TEMPORARY_CHANNEL_FAILURE\x10\x0f\x12!\n\x1dREQUIRED_NODE_FEATURE_MISSING\x10\x10\x12$\n REQUIRED_CHANNEL_FEATURE_MISSING\x10\x11\x12\x15\n\x11UNKNOWN_NEXT_PEER\x10\x12\x12\x1a\n\x16TEMPORARY_NODE_FAILURE\x10\x13\x12\x1a\n\x16PERMANENT_NODE_FAILURE\x10\x14\x12\x1d\n\x19PERMANENT_CHANNEL_FAILURE\x10\x15\x12\x12\n\x0e\x45XPIRY_TOO_FAR\x10\x16\x12\x0f\n\x0bMPP_TIMEOUT\x10\x17\x12\x19\n\x15INVALID_ONION_PAYLOAD\x10\x18\x12\x1a\n\x16INVALID_ONION_BLINDING\x10\x19\x12\x15\n\x10INTERNAL_FAILURE\x10\xe5\x07\x12\x14\n\x0fUNKNOWN_FAILURE\x10\xe6\x07\x12\x17\n\x12UNREADABLE_FAILURE\x10\xe7\x07J\x04\x08\x02\x10\x03\"\x9a\x02\n\rChannelUpdate\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x12\n\nchain_hash\x18\x02 \x01(\x0c\x12\x13\n\x07\x63han_id\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x11\n\ttimestamp\x18\x04 \x01(\r\x12\x15\n\rmessage_flags\x18\n \x01(\r\x12\x15\n\rchannel_flags\x18\x05 \x01(\r\x12\x17\n\x0ftime_lock_delta\x18\x06 \x01(\r\x12\x19\n\x11htlc_minimum_msat\x18\x07 \x01(\x04\x12\x10\n\x08\x62\x61se_fee\x18\x08 \x01(\r\x12\x10\n\x08\x66\x65\x65_rate\x18\t \x01(\r\x12\x19\n\x11htlc_maximum_msat\x18\x0b \x01(\x04\x12\x19\n\x11\x65xtra_opaque_data\x18\x0c \x01(\x0c\"F\n\nMacaroonId\x12\r\n\x05nonce\x18\x01 \x01(\x0c\x12\x11\n\tstorageId\x18\x02 \x01(\x0c\x12\x16\n\x03ops\x18\x03 \x03(\x0b\x32\t.lnrpc.Op\"%\n\x02Op\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63tions\x18\x02 \x03(\t\"\x99\x01\n\x13\x43heckMacPermRequest\x12\x10\n\x08macaroon\x18\x01 \x01(\x0c\x12.\n\x0bpermissions\x18\x02 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\x12\x12\n\nfullMethod\x18\x03 \x01(\t\x12,\n$check_default_perms_from_full_method\x18\x04 \x01(\x08\"%\n\x14\x43heckMacPermResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\"\xa7\x03\n\x14RPCMiddlewareRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\x04\x12\x14\n\x0craw_macaroon\x18\x02 \x01(\x0c\x12\x1f\n\x17\x63ustom_caveat_condition\x18\x03 \x01(\t\x12(\n\x0bstream_auth\x18\x04 \x01(\x0b\x32\x11.lnrpc.StreamAuthH\x00\x12$\n\x07request\x18\x05 \x01(\x0b\x32\x11.lnrpc.RPCMessageH\x00\x12%\n\x08response\x18\x06 \x01(\x0b\x32\x11.lnrpc.RPCMessageH\x00\x12\x16\n\x0creg_complete\x18\x08 \x01(\x08H\x00\x12\x0e\n\x06msg_id\x18\x07 \x01(\x04\x12\x46\n\x0emetadata_pairs\x18\t \x03(\x0b\x32..lnrpc.RPCMiddlewareRequest.MetadataPairsEntry\x1aK\n\x12MetadataPairsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.lnrpc.MetadataValues:\x02\x38\x01\x42\x10\n\x0eintercept_type\" \n\x0eMetadataValues\x12\x0e\n\x06values\x18\x01 \x03(\t\"%\n\nStreamAuth\x12\x17\n\x0fmethod_full_uri\x18\x01 \x01(\t\"r\n\nRPCMessage\x12\x17\n\x0fmethod_full_uri\x18\x01 \x01(\t\x12\x12\n\nstream_rpc\x18\x02 \x01(\x08\x12\x11\n\ttype_name\x18\x03 \x01(\t\x12\x12\n\nserialized\x18\x04 \x01(\x0c\x12\x10\n\x08is_error\x18\x05 \x01(\x08\"\xa2\x01\n\x15RPCMiddlewareResponse\x12\x12\n\nref_msg_id\x18\x01 \x01(\x04\x12\x31\n\x08register\x18\x02 \x01(\x0b\x32\x1d.lnrpc.MiddlewareRegistrationH\x00\x12,\n\x08\x66\x65\x65\x64\x62\x61\x63k\x18\x03 \x01(\x0b\x32\x18.lnrpc.InterceptFeedbackH\x00\x42\x14\n\x12middleware_message\"n\n\x16MiddlewareRegistration\x12\x17\n\x0fmiddleware_name\x18\x01 \x01(\t\x12#\n\x1b\x63ustom_macaroon_caveat_name\x18\x02 \x01(\t\x12\x16\n\x0eread_only_mode\x18\x03 \x01(\x08\"\\\n\x11InterceptFeedback\x12\r\n\x05\x65rror\x18\x01 \x01(\t\x12\x18\n\x10replace_response\x18\x02 \x01(\x08\x12\x1e\n\x16replacement_serialized\x18\x03 \x01(\x0c*\xcb\x02\n\x10OutputScriptType\x12\x1b\n\x17SCRIPT_TYPE_PUBKEY_HASH\x10\x00\x12\x1b\n\x17SCRIPT_TYPE_SCRIPT_HASH\x10\x01\x12&\n\"SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH\x10\x02\x12&\n\"SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH\x10\x03\x12\x16\n\x12SCRIPT_TYPE_PUBKEY\x10\x04\x12\x18\n\x14SCRIPT_TYPE_MULTISIG\x10\x05\x12\x18\n\x14SCRIPT_TYPE_NULLDATA\x10\x06\x12\x1c\n\x18SCRIPT_TYPE_NON_STANDARD\x10\x07\x12\x1f\n\x1bSCRIPT_TYPE_WITNESS_UNKNOWN\x10\x08\x12\"\n\x1eSCRIPT_TYPE_WITNESS_V1_TAPROOT\x10\t*b\n\x15\x43oinSelectionStrategy\x12\x1e\n\x1aSTRATEGY_USE_GLOBAL_CONFIG\x10\x00\x12\x14\n\x10STRATEGY_LARGEST\x10\x01\x12\x13\n\x0fSTRATEGY_RANDOM\x10\x02*\xac\x01\n\x0b\x41\x64\x64ressType\x12\x17\n\x13WITNESS_PUBKEY_HASH\x10\x00\x12\x16\n\x12NESTED_PUBKEY_HASH\x10\x01\x12\x1e\n\x1aUNUSED_WITNESS_PUBKEY_HASH\x10\x02\x12\x1d\n\x19UNUSED_NESTED_PUBKEY_HASH\x10\x03\x12\x12\n\x0eTAPROOT_PUBKEY\x10\x04\x12\x19\n\x15UNUSED_TAPROOT_PUBKEY\x10\x05*\xa8\x01\n\x0e\x43ommitmentType\x12\x1b\n\x17UNKNOWN_COMMITMENT_TYPE\x10\x00\x12\n\n\x06LEGACY\x10\x01\x12\x15\n\x11STATIC_REMOTE_KEY\x10\x02\x12\x0b\n\x07\x41NCHORS\x10\x03\x12\x19\n\x15SCRIPT_ENFORCED_LEASE\x10\x04\x12\x12\n\x0eSIMPLE_TAPROOT\x10\x05\x12\x1a\n\x16SIMPLE_TAPROOT_OVERLAY\x10\x06*a\n\tInitiator\x12\x15\n\x11INITIATOR_UNKNOWN\x10\x00\x12\x13\n\x0fINITIATOR_LOCAL\x10\x01\x12\x14\n\x10INITIATOR_REMOTE\x10\x02\x12\x12\n\x0eINITIATOR_BOTH\x10\x03*`\n\x0eResolutionType\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\n\n\x06\x41NCHOR\x10\x01\x12\x11\n\rINCOMING_HTLC\x10\x02\x12\x11\n\rOUTGOING_HTLC\x10\x03\x12\n\n\x06\x43OMMIT\x10\x04*q\n\x11ResolutionOutcome\x12\x13\n\x0fOUTCOME_UNKNOWN\x10\x00\x12\x0b\n\x07\x43LAIMED\x10\x01\x12\r\n\tUNCLAIMED\x10\x02\x12\r\n\tABANDONED\x10\x03\x12\x0f\n\x0b\x46IRST_STAGE\x10\x04\x12\x0b\n\x07TIMEOUT\x10\x05*9\n\x0eNodeMetricType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x1a\n\x16\x42\x45TWEENNESS_CENTRALITY\x10\x01*;\n\x10InvoiceHTLCState\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x0c\n\x08\x43\x41NCELED\x10\x02*\xf6\x01\n\x14PaymentFailureReason\x12\x17\n\x13\x46\x41ILURE_REASON_NONE\x10\x00\x12\x1a\n\x16\x46\x41ILURE_REASON_TIMEOUT\x10\x01\x12\x1b\n\x17\x46\x41ILURE_REASON_NO_ROUTE\x10\x02\x12\x18\n\x14\x46\x41ILURE_REASON_ERROR\x10\x03\x12,\n(FAILURE_REASON_INCORRECT_PAYMENT_DETAILS\x10\x04\x12\'\n#FAILURE_REASON_INSUFFICIENT_BALANCE\x10\x05\x12\x1b\n\x17\x46\x41ILURE_REASON_CANCELED\x10\x06*\x89\x05\n\nFeatureBit\x12\x18\n\x14\x44\x41TALOSS_PROTECT_REQ\x10\x00\x12\x18\n\x14\x44\x41TALOSS_PROTECT_OPT\x10\x01\x12\x17\n\x13INITIAL_ROUING_SYNC\x10\x03\x12\x1f\n\x1bUPFRONT_SHUTDOWN_SCRIPT_REQ\x10\x04\x12\x1f\n\x1bUPFRONT_SHUTDOWN_SCRIPT_OPT\x10\x05\x12\x16\n\x12GOSSIP_QUERIES_REQ\x10\x06\x12\x16\n\x12GOSSIP_QUERIES_OPT\x10\x07\x12\x11\n\rTLV_ONION_REQ\x10\x08\x12\x11\n\rTLV_ONION_OPT\x10\t\x12\x1a\n\x16\x45XT_GOSSIP_QUERIES_REQ\x10\n\x12\x1a\n\x16\x45XT_GOSSIP_QUERIES_OPT\x10\x0b\x12\x19\n\x15STATIC_REMOTE_KEY_REQ\x10\x0c\x12\x19\n\x15STATIC_REMOTE_KEY_OPT\x10\r\x12\x14\n\x10PAYMENT_ADDR_REQ\x10\x0e\x12\x14\n\x10PAYMENT_ADDR_OPT\x10\x0f\x12\x0b\n\x07MPP_REQ\x10\x10\x12\x0b\n\x07MPP_OPT\x10\x11\x12\x16\n\x12WUMBO_CHANNELS_REQ\x10\x12\x12\x16\n\x12WUMBO_CHANNELS_OPT\x10\x13\x12\x0f\n\x0b\x41NCHORS_REQ\x10\x14\x12\x0f\n\x0b\x41NCHORS_OPT\x10\x15\x12\x1d\n\x19\x41NCHORS_ZERO_FEE_HTLC_REQ\x10\x16\x12\x1d\n\x19\x41NCHORS_ZERO_FEE_HTLC_OPT\x10\x17\x12\x1b\n\x17ROUTE_BLINDING_REQUIRED\x10\x18\x12\x1b\n\x17ROUTE_BLINDING_OPTIONAL\x10\x19\x12\x0b\n\x07\x41MP_REQ\x10\x1e\x12\x0b\n\x07\x41MP_OPT\x10\x1f*\xac\x01\n\rUpdateFailure\x12\x1a\n\x16UPDATE_FAILURE_UNKNOWN\x10\x00\x12\x1a\n\x16UPDATE_FAILURE_PENDING\x10\x01\x12\x1c\n\x18UPDATE_FAILURE_NOT_FOUND\x10\x02\x12\x1f\n\x1bUPDATE_FAILURE_INTERNAL_ERR\x10\x03\x12$\n UPDATE_FAILURE_INVALID_PARAMETER\x10\x04\x32\x99(\n\tLightning\x12J\n\rWalletBalance\x12\x1b.lnrpc.WalletBalanceRequest\x1a\x1c.lnrpc.WalletBalanceResponse\x12M\n\x0e\x43hannelBalance\x12\x1c.lnrpc.ChannelBalanceRequest\x1a\x1d.lnrpc.ChannelBalanceResponse\x12K\n\x0fGetTransactions\x12\x1d.lnrpc.GetTransactionsRequest\x1a\x19.lnrpc.TransactionDetails\x12\x44\n\x0b\x45stimateFee\x12\x19.lnrpc.EstimateFeeRequest\x1a\x1a.lnrpc.EstimateFeeResponse\x12>\n\tSendCoins\x12\x17.lnrpc.SendCoinsRequest\x1a\x18.lnrpc.SendCoinsResponse\x12\x44\n\x0bListUnspent\x12\x19.lnrpc.ListUnspentRequest\x1a\x1a.lnrpc.ListUnspentResponse\x12L\n\x15SubscribeTransactions\x12\x1d.lnrpc.GetTransactionsRequest\x1a\x12.lnrpc.Transaction0\x01\x12;\n\x08SendMany\x12\x16.lnrpc.SendManyRequest\x1a\x17.lnrpc.SendManyResponse\x12\x41\n\nNewAddress\x12\x18.lnrpc.NewAddressRequest\x1a\x19.lnrpc.NewAddressResponse\x12\x44\n\x0bSignMessage\x12\x19.lnrpc.SignMessageRequest\x1a\x1a.lnrpc.SignMessageResponse\x12J\n\rVerifyMessage\x12\x1b.lnrpc.VerifyMessageRequest\x1a\x1c.lnrpc.VerifyMessageResponse\x12\x44\n\x0b\x43onnectPeer\x12\x19.lnrpc.ConnectPeerRequest\x1a\x1a.lnrpc.ConnectPeerResponse\x12M\n\x0e\x44isconnectPeer\x12\x1c.lnrpc.DisconnectPeerRequest\x1a\x1d.lnrpc.DisconnectPeerResponse\x12>\n\tListPeers\x12\x17.lnrpc.ListPeersRequest\x1a\x18.lnrpc.ListPeersResponse\x12G\n\x13SubscribePeerEvents\x12\x1c.lnrpc.PeerEventSubscription\x1a\x10.lnrpc.PeerEvent0\x01\x12\x38\n\x07GetInfo\x12\x15.lnrpc.GetInfoRequest\x1a\x16.lnrpc.GetInfoResponse\x12G\n\x0cGetDebugInfo\x12\x1a.lnrpc.GetDebugInfoRequest\x1a\x1b.lnrpc.GetDebugInfoResponse\x12P\n\x0fGetRecoveryInfo\x12\x1d.lnrpc.GetRecoveryInfoRequest\x1a\x1e.lnrpc.GetRecoveryInfoResponse\x12P\n\x0fPendingChannels\x12\x1d.lnrpc.PendingChannelsRequest\x1a\x1e.lnrpc.PendingChannelsResponse\x12G\n\x0cListChannels\x12\x1a.lnrpc.ListChannelsRequest\x1a\x1b.lnrpc.ListChannelsResponse\x12V\n\x16SubscribeChannelEvents\x12\x1f.lnrpc.ChannelEventSubscription\x1a\x19.lnrpc.ChannelEventUpdate0\x01\x12M\n\x0e\x43losedChannels\x12\x1c.lnrpc.ClosedChannelsRequest\x1a\x1d.lnrpc.ClosedChannelsResponse\x12\x41\n\x0fOpenChannelSync\x12\x19.lnrpc.OpenChannelRequest\x1a\x13.lnrpc.ChannelPoint\x12\x43\n\x0bOpenChannel\x12\x19.lnrpc.OpenChannelRequest\x1a\x17.lnrpc.OpenStatusUpdate0\x01\x12S\n\x10\x42\x61tchOpenChannel\x12\x1e.lnrpc.BatchOpenChannelRequest\x1a\x1f.lnrpc.BatchOpenChannelResponse\x12L\n\x10\x46undingStateStep\x12\x1b.lnrpc.FundingTransitionMsg\x1a\x1b.lnrpc.FundingStateStepResp\x12P\n\x0f\x43hannelAcceptor\x12\x1c.lnrpc.ChannelAcceptResponse\x1a\x1b.lnrpc.ChannelAcceptRequest(\x01\x30\x01\x12\x46\n\x0c\x43loseChannel\x12\x1a.lnrpc.CloseChannelRequest\x1a\x18.lnrpc.CloseStatusUpdate0\x01\x12M\n\x0e\x41\x62\x61ndonChannel\x12\x1c.lnrpc.AbandonChannelRequest\x1a\x1d.lnrpc.AbandonChannelResponse\x12?\n\x0bSendPayment\x12\x12.lnrpc.SendRequest\x1a\x13.lnrpc.SendResponse\"\x03\x88\x02\x01(\x01\x30\x01\x12?\n\x0fSendPaymentSync\x12\x12.lnrpc.SendRequest\x1a\x13.lnrpc.SendResponse\"\x03\x88\x02\x01\x12\x46\n\x0bSendToRoute\x12\x19.lnrpc.SendToRouteRequest\x1a\x13.lnrpc.SendResponse\"\x03\x88\x02\x01(\x01\x30\x01\x12\x46\n\x0fSendToRouteSync\x12\x19.lnrpc.SendToRouteRequest\x1a\x13.lnrpc.SendResponse\"\x03\x88\x02\x01\x12\x37\n\nAddInvoice\x12\x0e.lnrpc.Invoice\x1a\x19.lnrpc.AddInvoiceResponse\x12\x45\n\x0cListInvoices\x12\x19.lnrpc.ListInvoiceRequest\x1a\x1a.lnrpc.ListInvoiceResponse\x12\x33\n\rLookupInvoice\x12\x12.lnrpc.PaymentHash\x1a\x0e.lnrpc.Invoice\x12\x41\n\x11SubscribeInvoices\x12\x1a.lnrpc.InvoiceSubscription\x1a\x0e.lnrpc.Invoice0\x01\x12T\n\x15\x44\x65leteCanceledInvoice\x12\x1c.lnrpc.DelCanceledInvoiceReq\x1a\x1d.lnrpc.DelCanceledInvoiceResp\x12\x32\n\x0c\x44\x65\x63odePayReq\x12\x13.lnrpc.PayReqString\x1a\r.lnrpc.PayReq\x12G\n\x0cListPayments\x12\x1a.lnrpc.ListPaymentsRequest\x1a\x1b.lnrpc.ListPaymentsResponse\x12J\n\rDeletePayment\x12\x1b.lnrpc.DeletePaymentRequest\x1a\x1c.lnrpc.DeletePaymentResponse\x12V\n\x11\x44\x65leteAllPayments\x12\x1f.lnrpc.DeleteAllPaymentsRequest\x1a .lnrpc.DeleteAllPaymentsResponse\x12@\n\rDescribeGraph\x12\x1a.lnrpc.ChannelGraphRequest\x1a\x13.lnrpc.ChannelGraph\x12G\n\x0eGetNodeMetrics\x12\x19.lnrpc.NodeMetricsRequest\x1a\x1a.lnrpc.NodeMetricsResponse\x12\x39\n\x0bGetChanInfo\x12\x16.lnrpc.ChanInfoRequest\x1a\x12.lnrpc.ChannelEdge\x12\x36\n\x0bGetNodeInfo\x12\x16.lnrpc.NodeInfoRequest\x1a\x0f.lnrpc.NodeInfo\x12\x44\n\x0bQueryRoutes\x12\x19.lnrpc.QueryRoutesRequest\x1a\x1a.lnrpc.QueryRoutesResponse\x12?\n\x0eGetNetworkInfo\x12\x19.lnrpc.NetworkInfoRequest\x1a\x12.lnrpc.NetworkInfo\x12\x35\n\nStopDaemon\x12\x12.lnrpc.StopRequest\x1a\x13.lnrpc.StopResponse\x12W\n\x15SubscribeChannelGraph\x12 .lnrpc.GraphTopologySubscription\x1a\x1a.lnrpc.GraphTopologyUpdate0\x01\x12\x41\n\nDebugLevel\x12\x18.lnrpc.DebugLevelRequest\x1a\x19.lnrpc.DebugLevelResponse\x12>\n\tFeeReport\x12\x17.lnrpc.FeeReportRequest\x1a\x18.lnrpc.FeeReportResponse\x12N\n\x13UpdateChannelPolicy\x12\x1a.lnrpc.PolicyUpdateRequest\x1a\x1b.lnrpc.PolicyUpdateResponse\x12V\n\x11\x46orwardingHistory\x12\x1f.lnrpc.ForwardingHistoryRequest\x1a .lnrpc.ForwardingHistoryResponse\x12N\n\x13\x45xportChannelBackup\x12!.lnrpc.ExportChannelBackupRequest\x1a\x14.lnrpc.ChannelBackup\x12T\n\x17\x45xportAllChannelBackups\x12\x1e.lnrpc.ChanBackupExportRequest\x1a\x19.lnrpc.ChanBackupSnapshot\x12N\n\x10VerifyChanBackup\x12\x19.lnrpc.ChanBackupSnapshot\x1a\x1f.lnrpc.VerifyChanBackupResponse\x12V\n\x15RestoreChannelBackups\x12\x1f.lnrpc.RestoreChanBackupRequest\x1a\x1c.lnrpc.RestoreBackupResponse\x12X\n\x17SubscribeChannelBackups\x12 .lnrpc.ChannelBackupSubscription\x1a\x19.lnrpc.ChanBackupSnapshot0\x01\x12G\n\x0c\x42\x61keMacaroon\x12\x1a.lnrpc.BakeMacaroonRequest\x1a\x1b.lnrpc.BakeMacaroonResponse\x12P\n\x0fListMacaroonIDs\x12\x1d.lnrpc.ListMacaroonIDsRequest\x1a\x1e.lnrpc.ListMacaroonIDsResponse\x12S\n\x10\x44\x65leteMacaroonID\x12\x1e.lnrpc.DeleteMacaroonIDRequest\x1a\x1f.lnrpc.DeleteMacaroonIDResponse\x12P\n\x0fListPermissions\x12\x1d.lnrpc.ListPermissionsRequest\x1a\x1e.lnrpc.ListPermissionsResponse\x12S\n\x18\x43heckMacaroonPermissions\x12\x1a.lnrpc.CheckMacPermRequest\x1a\x1b.lnrpc.CheckMacPermResponse\x12V\n\x15RegisterRPCMiddleware\x12\x1c.lnrpc.RPCMiddlewareResponse\x1a\x1b.lnrpc.RPCMiddlewareRequest(\x01\x30\x01\x12V\n\x11SendCustomMessage\x12\x1f.lnrpc.SendCustomMessageRequest\x1a .lnrpc.SendCustomMessageResponse\x12X\n\x17SubscribeCustomMessages\x12%.lnrpc.SubscribeCustomMessagesRequest\x1a\x14.lnrpc.CustomMessage0\x01\x12\x44\n\x0bListAliases\x12\x19.lnrpc.ListAliasesRequest\x1a\x1a.lnrpc.ListAliasesResponse\x12_\n\x14LookupHtlcResolution\x12\".lnrpc.LookupHtlcResolutionRequest\x1a#.lnrpc.LookupHtlcResolutionResponseB\'Z%github.com/lightningnetwork/lnd/lnrpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -99,7 +99,7 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['_QUERYROUTESREQUEST'].fields_by_name['ignored_edges']._loaded_options = None _globals['_QUERYROUTESREQUEST'].fields_by_name['ignored_edges']._serialized_options = b'\030\001' _globals['_QUERYROUTESREQUEST'].fields_by_name['outgoing_chan_id']._loaded_options = None - _globals['_QUERYROUTESREQUEST'].fields_by_name['outgoing_chan_id']._serialized_options = b'0\001' + _globals['_QUERYROUTESREQUEST'].fields_by_name['outgoing_chan_id']._serialized_options = b'\030\0010\001' _globals['_EDGELOCATOR'].fields_by_name['channel_id']._loaded_options = None _globals['_EDGELOCATOR'].fields_by_name['channel_id']._serialized_options = b'0\001' _globals['_HOP_CUSTOMRECORDSENTRY']._loaded_options = None @@ -184,34 +184,40 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['_LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY']._serialized_options = b'8\001' _globals['_CHANNELUPDATE'].fields_by_name['chan_id']._loaded_options = None _globals['_CHANNELUPDATE'].fields_by_name['chan_id']._serialized_options = b'0\001' + _globals['_RPCMIDDLEWAREREQUEST_METADATAPAIRSENTRY']._loaded_options = None + _globals['_RPCMIDDLEWAREREQUEST_METADATAPAIRSENTRY']._serialized_options = b'8\001' _globals['_LIGHTNING'].methods_by_name['SendPayment']._loaded_options = None _globals['_LIGHTNING'].methods_by_name['SendPayment']._serialized_options = b'\210\002\001' + _globals['_LIGHTNING'].methods_by_name['SendPaymentSync']._loaded_options = None + _globals['_LIGHTNING'].methods_by_name['SendPaymentSync']._serialized_options = b'\210\002\001' _globals['_LIGHTNING'].methods_by_name['SendToRoute']._loaded_options = None _globals['_LIGHTNING'].methods_by_name['SendToRoute']._serialized_options = b'\210\002\001' - _globals['_OUTPUTSCRIPTTYPE']._serialized_start=31326 - _globals['_OUTPUTSCRIPTTYPE']._serialized_end=31657 - _globals['_COINSELECTIONSTRATEGY']._serialized_start=31659 - _globals['_COINSELECTIONSTRATEGY']._serialized_end=31757 - _globals['_ADDRESSTYPE']._serialized_start=31760 - _globals['_ADDRESSTYPE']._serialized_end=31932 - _globals['_COMMITMENTTYPE']._serialized_start=31935 - _globals['_COMMITMENTTYPE']._serialized_end=32103 - _globals['_INITIATOR']._serialized_start=32105 - _globals['_INITIATOR']._serialized_end=32202 - _globals['_RESOLUTIONTYPE']._serialized_start=32204 - _globals['_RESOLUTIONTYPE']._serialized_end=32300 - _globals['_RESOLUTIONOUTCOME']._serialized_start=32302 - _globals['_RESOLUTIONOUTCOME']._serialized_end=32415 - _globals['_NODEMETRICTYPE']._serialized_start=32417 - _globals['_NODEMETRICTYPE']._serialized_end=32474 - _globals['_INVOICEHTLCSTATE']._serialized_start=32476 - _globals['_INVOICEHTLCSTATE']._serialized_end=32535 - _globals['_PAYMENTFAILUREREASON']._serialized_start=32538 - _globals['_PAYMENTFAILUREREASON']._serialized_end=32784 - _globals['_FEATUREBIT']._serialized_start=32787 - _globals['_FEATUREBIT']._serialized_end=33436 - _globals['_UPDATEFAILURE']._serialized_start=33439 - _globals['_UPDATEFAILURE']._serialized_end=33611 + _globals['_LIGHTNING'].methods_by_name['SendToRouteSync']._loaded_options = None + _globals['_LIGHTNING'].methods_by_name['SendToRouteSync']._serialized_options = b'\210\002\001' + _globals['_OUTPUTSCRIPTTYPE']._serialized_start=32553 + _globals['_OUTPUTSCRIPTTYPE']._serialized_end=32884 + _globals['_COINSELECTIONSTRATEGY']._serialized_start=32886 + _globals['_COINSELECTIONSTRATEGY']._serialized_end=32984 + _globals['_ADDRESSTYPE']._serialized_start=32987 + _globals['_ADDRESSTYPE']._serialized_end=33159 + _globals['_COMMITMENTTYPE']._serialized_start=33162 + _globals['_COMMITMENTTYPE']._serialized_end=33330 + _globals['_INITIATOR']._serialized_start=33332 + _globals['_INITIATOR']._serialized_end=33429 + _globals['_RESOLUTIONTYPE']._serialized_start=33431 + _globals['_RESOLUTIONTYPE']._serialized_end=33527 + _globals['_RESOLUTIONOUTCOME']._serialized_start=33529 + _globals['_RESOLUTIONOUTCOME']._serialized_end=33642 + _globals['_NODEMETRICTYPE']._serialized_start=33644 + _globals['_NODEMETRICTYPE']._serialized_end=33701 + _globals['_INVOICEHTLCSTATE']._serialized_start=33703 + _globals['_INVOICEHTLCSTATE']._serialized_end=33762 + _globals['_PAYMENTFAILUREREASON']._serialized_start=33765 + _globals['_PAYMENTFAILUREREASON']._serialized_end=34011 + _globals['_FEATUREBIT']._serialized_start=34014 + _globals['_FEATUREBIT']._serialized_end=34663 + _globals['_UPDATEFAILURE']._serialized_start=34666 + _globals['_UPDATEFAILURE']._serialized_end=34838 _globals['_LOOKUPHTLCRESOLUTIONREQUEST']._serialized_start=26 _globals['_LOOKUPHTLCRESOLUTIONREQUEST']._serialized_end=92 _globals['_LOOKUPHTLCRESOLUTIONRESPONSE']._serialized_start=94 @@ -223,469 +229,477 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['_SENDCUSTOMMESSAGEREQUEST']._serialized_start=254 _globals['_SENDCUSTOMMESSAGEREQUEST']._serialized_end=322 _globals['_SENDCUSTOMMESSAGERESPONSE']._serialized_start=324 - _globals['_SENDCUSTOMMESSAGERESPONSE']._serialized_end=351 - _globals['_UTXO']._serialized_start=354 - _globals['_UTXO']._serialized_end=516 - _globals['_OUTPUTDETAIL']._serialized_start=519 - _globals['_OUTPUTDETAIL']._serialized_end=677 - _globals['_TRANSACTION']._serialized_start=680 - _globals['_TRANSACTION']._serialized_end=996 - _globals['_GETTRANSACTIONSREQUEST']._serialized_start=998 - _globals['_GETTRANSACTIONSREQUEST']._serialized_end=1081 - _globals['_TRANSACTIONDETAILS']._serialized_start=1083 - _globals['_TRANSACTIONDETAILS']._serialized_end=1145 - _globals['_FEELIMIT']._serialized_start=1147 - _globals['_FEELIMIT']._serialized_end=1224 - _globals['_SENDREQUEST']._serialized_start=1227 - _globals['_SENDREQUEST']._serialized_end=1749 - _globals['_SENDREQUEST_DESTCUSTOMRECORDSENTRY']._serialized_start=1693 - _globals['_SENDREQUEST_DESTCUSTOMRECORDSENTRY']._serialized_end=1749 - _globals['_SENDRESPONSE']._serialized_start=1751 - _globals['_SENDRESPONSE']._serialized_end=1873 - _globals['_SENDTOROUTEREQUEST']._serialized_start=1875 - _globals['_SENDTOROUTEREQUEST']._serialized_end=1985 - _globals['_CHANNELACCEPTREQUEST']._serialized_start=1988 - _globals['_CHANNELACCEPTREQUEST']._serialized_end=2396 - _globals['_CHANNELACCEPTRESPONSE']._serialized_start=2399 - _globals['_CHANNELACCEPTRESPONSE']._serialized_end=2662 - _globals['_CHANNELPOINT']._serialized_start=2664 - _globals['_CHANNELPOINT']._serialized_end=2774 - _globals['_OUTPOINT']._serialized_start=2776 - _globals['_OUTPOINT']._serialized_end=2846 - _globals['_PREVIOUSOUTPOINT']._serialized_start=2848 - _globals['_PREVIOUSOUTPOINT']._serialized_end=2907 - _globals['_LIGHTNINGADDRESS']._serialized_start=2909 - _globals['_LIGHTNINGADDRESS']._serialized_end=2957 - _globals['_ESTIMATEFEEREQUEST']._serialized_start=2960 - _globals['_ESTIMATEFEEREQUEST']._serialized_end=3230 - _globals['_ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY']._serialized_start=3179 - _globals['_ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY']._serialized_end=3230 - _globals['_ESTIMATEFEERESPONSE']._serialized_start=3232 - _globals['_ESTIMATEFEERESPONSE']._serialized_end=3327 - _globals['_SENDMANYREQUEST']._serialized_start=3330 - _globals['_SENDMANYREQUEST']._serialized_end=3658 - _globals['_SENDMANYREQUEST_ADDRTOAMOUNTENTRY']._serialized_start=3179 - _globals['_SENDMANYREQUEST_ADDRTOAMOUNTENTRY']._serialized_end=3230 - _globals['_SENDMANYRESPONSE']._serialized_start=3660 - _globals['_SENDMANYRESPONSE']._serialized_end=3692 - _globals['_SENDCOINSREQUEST']._serialized_start=3695 - _globals['_SENDCOINSREQUEST']._serialized_end=3991 - _globals['_SENDCOINSRESPONSE']._serialized_start=3993 - _globals['_SENDCOINSRESPONSE']._serialized_end=4026 - _globals['_LISTUNSPENTREQUEST']._serialized_start=4028 - _globals['_LISTUNSPENTREQUEST']._serialized_end=4103 - _globals['_LISTUNSPENTRESPONSE']._serialized_start=4105 - _globals['_LISTUNSPENTRESPONSE']._serialized_end=4154 - _globals['_NEWADDRESSREQUEST']._serialized_start=4156 - _globals['_NEWADDRESSREQUEST']._serialized_end=4226 - _globals['_NEWADDRESSRESPONSE']._serialized_start=4228 - _globals['_NEWADDRESSRESPONSE']._serialized_end=4265 - _globals['_SIGNMESSAGEREQUEST']._serialized_start=4267 - _globals['_SIGNMESSAGEREQUEST']._serialized_end=4321 - _globals['_SIGNMESSAGERESPONSE']._serialized_start=4323 - _globals['_SIGNMESSAGERESPONSE']._serialized_end=4363 - _globals['_VERIFYMESSAGEREQUEST']._serialized_start=4365 - _globals['_VERIFYMESSAGEREQUEST']._serialized_end=4419 - _globals['_VERIFYMESSAGERESPONSE']._serialized_start=4421 - _globals['_VERIFYMESSAGERESPONSE']._serialized_end=4475 - _globals['_CONNECTPEERREQUEST']._serialized_start=4477 - _globals['_CONNECTPEERREQUEST']._serialized_end=4567 - _globals['_CONNECTPEERRESPONSE']._serialized_start=4569 - _globals['_CONNECTPEERRESPONSE']._serialized_end=4590 - _globals['_DISCONNECTPEERREQUEST']._serialized_start=4592 - _globals['_DISCONNECTPEERREQUEST']._serialized_end=4632 - _globals['_DISCONNECTPEERRESPONSE']._serialized_start=4634 - _globals['_DISCONNECTPEERRESPONSE']._serialized_end=4658 - _globals['_HTLC']._serialized_start=4661 - _globals['_HTLC']._serialized_end=4826 - _globals['_CHANNELCONSTRAINTS']._serialized_start=4829 - _globals['_CHANNELCONSTRAINTS']._serialized_end=4999 - _globals['_CHANNEL']._serialized_start=5002 - _globals['_CHANNEL']._serialized_end=5984 - _globals['_LISTCHANNELSREQUEST']._serialized_start=5987 - _globals['_LISTCHANNELSREQUEST']._serialized_end=6136 - _globals['_LISTCHANNELSRESPONSE']._serialized_start=6138 - _globals['_LISTCHANNELSRESPONSE']._serialized_end=6194 - _globals['_ALIASMAP']._serialized_start=6196 - _globals['_ALIASMAP']._serialized_end=6242 - _globals['_LISTALIASESREQUEST']._serialized_start=6244 - _globals['_LISTALIASESREQUEST']._serialized_end=6264 - _globals['_LISTALIASESRESPONSE']._serialized_start=6266 - _globals['_LISTALIASESRESPONSE']._serialized_end=6324 - _globals['_CHANNELCLOSESUMMARY']._serialized_start=6327 - _globals['_CHANNELCLOSESUMMARY']._serialized_end=6939 - _globals['_CHANNELCLOSESUMMARY_CLOSURETYPE']._serialized_start=6801 - _globals['_CHANNELCLOSESUMMARY_CLOSURETYPE']._serialized_end=6939 - _globals['_RESOLUTION']._serialized_start=6942 - _globals['_RESOLUTION']._serialized_end=7120 - _globals['_CLOSEDCHANNELSREQUEST']._serialized_start=7123 - _globals['_CLOSEDCHANNELSREQUEST']._serialized_end=7271 - _globals['_CLOSEDCHANNELSRESPONSE']._serialized_start=7273 - _globals['_CLOSEDCHANNELSRESPONSE']._serialized_end=7343 - _globals['_PEER']._serialized_start=7346 - _globals['_PEER']._serialized_end=7841 - _globals['_PEER_FEATURESENTRY']._serialized_start=7696 - _globals['_PEER_FEATURESENTRY']._serialized_end=7759 - _globals['_PEER_SYNCTYPE']._serialized_start=7761 - _globals['_PEER_SYNCTYPE']._serialized_end=7841 - _globals['_TIMESTAMPEDERROR']._serialized_start=7843 - _globals['_TIMESTAMPEDERROR']._serialized_end=7895 - _globals['_LISTPEERSREQUEST']._serialized_start=7897 - _globals['_LISTPEERSREQUEST']._serialized_end=7937 - _globals['_LISTPEERSRESPONSE']._serialized_start=7939 - _globals['_LISTPEERSRESPONSE']._serialized_end=7986 - _globals['_PEEREVENTSUBSCRIPTION']._serialized_start=7988 - _globals['_PEEREVENTSUBSCRIPTION']._serialized_end=8011 - _globals['_PEEREVENT']._serialized_start=8013 - _globals['_PEEREVENT']._serialized_end=8131 - _globals['_PEEREVENT_EVENTTYPE']._serialized_start=8085 - _globals['_PEEREVENT_EVENTTYPE']._serialized_end=8131 - _globals['_GETINFOREQUEST']._serialized_start=8133 - _globals['_GETINFOREQUEST']._serialized_end=8149 - _globals['_GETINFORESPONSE']._serialized_start=8152 - _globals['_GETINFORESPONSE']._serialized_end=8758 - _globals['_GETINFORESPONSE_FEATURESENTRY']._serialized_start=7696 - _globals['_GETINFORESPONSE_FEATURESENTRY']._serialized_end=7759 - _globals['_GETDEBUGINFOREQUEST']._serialized_start=8760 - _globals['_GETDEBUGINFOREQUEST']._serialized_end=8781 - _globals['_GETDEBUGINFORESPONSE']._serialized_start=8784 - _globals['_GETDEBUGINFORESPONSE']._serialized_end=8923 - _globals['_GETDEBUGINFORESPONSE_CONFIGENTRY']._serialized_start=8878 - _globals['_GETDEBUGINFORESPONSE_CONFIGENTRY']._serialized_end=8923 - _globals['_GETRECOVERYINFOREQUEST']._serialized_start=8925 - _globals['_GETRECOVERYINFOREQUEST']._serialized_end=8949 - _globals['_GETRECOVERYINFORESPONSE']._serialized_start=8951 - _globals['_GETRECOVERYINFORESPONSE']._serialized_end=9044 - _globals['_CHAIN']._serialized_start=9046 - _globals['_CHAIN']._serialized_end=9089 - _globals['_CONFIRMATIONUPDATE']._serialized_start=9091 - _globals['_CONFIRMATIONUPDATE']._serialized_end=9176 - _globals['_CHANNELOPENUPDATE']._serialized_start=9178 - _globals['_CHANNELOPENUPDATE']._serialized_end=9241 - _globals['_CLOSEOUTPUT']._serialized_start=9243 - _globals['_CLOSEOUTPUT']._serialized_end=9342 - _globals['_CHANNELCLOSEUPDATE']._serialized_start=9345 - _globals['_CHANNELCLOSEUPDATE']._serialized_end=9549 - _globals['_CLOSECHANNELREQUEST']._serialized_start=9552 - _globals['_CLOSECHANNELREQUEST']._serialized_end=9772 - _globals['_CLOSESTATUSUPDATE']._serialized_start=9775 - _globals['_CLOSESTATUSUPDATE']._serialized_end=9947 - _globals['_PENDINGUPDATE']._serialized_start=9949 - _globals['_PENDINGUPDATE']._serialized_end=10000 - _globals['_INSTANTUPDATE']._serialized_start=10002 - _globals['_INSTANTUPDATE']._serialized_end=10017 - _globals['_READYFORPSBTFUNDING']._serialized_start=10019 - _globals['_READYFORPSBTFUNDING']._serialized_end=10103 - _globals['_BATCHOPENCHANNELREQUEST']._serialized_start=10106 - _globals['_BATCHOPENCHANNELREQUEST']._serialized_end=10342 - _globals['_BATCHOPENCHANNEL']._serialized_start=10345 - _globals['_BATCHOPENCHANNEL']._serialized_end=10850 - _globals['_BATCHOPENCHANNELRESPONSE']._serialized_start=10852 - _globals['_BATCHOPENCHANNELRESPONSE']._serialized_end=10926 - _globals['_OPENCHANNELREQUEST']._serialized_start=10929 - _globals['_OPENCHANNELREQUEST']._serialized_end=11655 - _globals['_OPENSTATUSUPDATE']._serialized_start=11658 - _globals['_OPENSTATUSUPDATE']._serialized_end=11853 - _globals['_KEYLOCATOR']._serialized_start=11855 - _globals['_KEYLOCATOR']._serialized_end=11906 - _globals['_KEYDESCRIPTOR']._serialized_start=11908 - _globals['_KEYDESCRIPTOR']._serialized_end=11982 - _globals['_CHANPOINTSHIM']._serialized_start=11985 - _globals['_CHANPOINTSHIM']._serialized_end=12177 - _globals['_PSBTSHIM']._serialized_start=12179 - _globals['_PSBTSHIM']._serialized_end=12253 - _globals['_FUNDINGSHIM']._serialized_start=12255 - _globals['_FUNDINGSHIM']._serialized_end=12363 - _globals['_FUNDINGSHIMCANCEL']._serialized_start=12365 - _globals['_FUNDINGSHIMCANCEL']._serialized_end=12409 - _globals['_FUNDINGPSBTVERIFY']._serialized_start=12411 - _globals['_FUNDINGPSBTVERIFY']._serialized_end=12499 - _globals['_FUNDINGPSBTFINALIZE']._serialized_start=12501 - _globals['_FUNDINGPSBTFINALIZE']._serialized_end=12590 - _globals['_FUNDINGTRANSITIONMSG']._serialized_start=12593 - _globals['_FUNDINGTRANSITIONMSG']._serialized_end=12822 - _globals['_FUNDINGSTATESTEPRESP']._serialized_start=12824 - _globals['_FUNDINGSTATESTEPRESP']._serialized_end=12846 - _globals['_PENDINGHTLC']._serialized_start=12849 - _globals['_PENDINGHTLC']._serialized_end=12983 - _globals['_PENDINGCHANNELSREQUEST']._serialized_start=12985 - _globals['_PENDINGCHANNELSREQUEST']._serialized_end=13033 - _globals['_PENDINGCHANNELSRESPONSE']._serialized_start=13036 - _globals['_PENDINGCHANNELSRESPONSE']._serialized_end=14917 - _globals['_PENDINGCHANNELSRESPONSE_PENDINGCHANNEL']._serialized_start=13434 - _globals['_PENDINGCHANNELSRESPONSE_PENDINGCHANNEL']._serialized_end=13833 - _globals['_PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL']._serialized_start=13836 - _globals['_PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL']._serialized_end=14020 - _globals['_PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL']._serialized_start=14023 - _globals['_PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL']._serialized_end=14242 - _globals['_PENDINGCHANNELSRESPONSE_COMMITMENTS']._serialized_start=14245 - _globals['_PENDINGCHANNELSRESPONSE_COMMITMENTS']._serialized_end=14428 - _globals['_PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL']._serialized_start=14430 - _globals['_PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL']._serialized_end=14531 - _globals['_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL']._serialized_start=14534 - _globals['_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL']._serialized_end=14917 - _globals['_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE']._serialized_start=14868 - _globals['_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE']._serialized_end=14917 - _globals['_CHANNELEVENTSUBSCRIPTION']._serialized_start=14919 - _globals['_CHANNELEVENTSUBSCRIPTION']._serialized_end=14945 - _globals['_CHANNELEVENTUPDATE']._serialized_start=14948 - _globals['_CHANNELEVENTUPDATE']._serialized_end=15479 - _globals['_CHANNELEVENTUPDATE_UPDATETYPE']._serialized_start=15322 - _globals['_CHANNELEVENTUPDATE_UPDATETYPE']._serialized_end=15468 - _globals['_WALLETACCOUNTBALANCE']._serialized_start=15481 - _globals['_WALLETACCOUNTBALANCE']._serialized_end=15559 - _globals['_WALLETBALANCEREQUEST']._serialized_start=15561 - _globals['_WALLETBALANCEREQUEST']._serialized_end=15619 - _globals['_WALLETBALANCERESPONSE']._serialized_start=15622 - _globals['_WALLETBALANCERESPONSE']._serialized_end=15945 - _globals['_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY']._serialized_start=15863 - _globals['_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY']._serialized_end=15945 - _globals['_AMOUNT']._serialized_start=15947 - _globals['_AMOUNT']._serialized_end=15982 - _globals['_CHANNELBALANCEREQUEST']._serialized_start=15984 - _globals['_CHANNELBALANCEREQUEST']._serialized_end=16007 - _globals['_CHANNELBALANCERESPONSE']._serialized_start=16010 - _globals['_CHANNELBALANCERESPONSE']._serialized_end=16395 - _globals['_QUERYROUTESREQUEST']._serialized_start=16398 - _globals['_QUERYROUTESREQUEST']._serialized_end=17067 - _globals['_QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY']._serialized_start=1693 - _globals['_QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY']._serialized_end=1749 - _globals['_NODEPAIR']._serialized_start=17069 - _globals['_NODEPAIR']._serialized_end=17105 - _globals['_EDGELOCATOR']._serialized_start=17107 - _globals['_EDGELOCATOR']._serialized_end=17171 - _globals['_QUERYROUTESRESPONSE']._serialized_start=17173 - _globals['_QUERYROUTESRESPONSE']._serialized_end=17246 - _globals['_HOP']._serialized_start=17249 - _globals['_HOP']._serialized_end=17727 - _globals['_HOP_CUSTOMRECORDSENTRY']._serialized_start=17675 - _globals['_HOP_CUSTOMRECORDSENTRY']._serialized_end=17727 - _globals['_MPPRECORD']._serialized_start=17729 - _globals['_MPPRECORD']._serialized_end=17786 - _globals['_AMPRECORD']._serialized_start=17788 - _globals['_AMPRECORD']._serialized_end=17856 - _globals['_ROUTE']._serialized_start=17859 - _globals['_ROUTE']._serialized_end=18073 - _globals['_NODEINFOREQUEST']._serialized_start=18075 - _globals['_NODEINFOREQUEST']._serialized_end=18135 - _globals['_NODEINFO']._serialized_start=18138 - _globals['_NODEINFO']._serialized_end=18268 - _globals['_LIGHTNINGNODE']._serialized_start=18271 - _globals['_LIGHTNINGNODE']._serialized_end=18631 - _globals['_LIGHTNINGNODE_FEATURESENTRY']._serialized_start=7696 - _globals['_LIGHTNINGNODE_FEATURESENTRY']._serialized_end=7759 - _globals['_LIGHTNINGNODE_CUSTOMRECORDSENTRY']._serialized_start=17675 - _globals['_LIGHTNINGNODE_CUSTOMRECORDSENTRY']._serialized_end=17727 - _globals['_NODEADDRESS']._serialized_start=18633 - _globals['_NODEADDRESS']._serialized_end=18677 - _globals['_ROUTINGPOLICY']._serialized_start=18680 - _globals['_ROUTINGPOLICY']._serialized_end=19039 - _globals['_ROUTINGPOLICY_CUSTOMRECORDSENTRY']._serialized_start=17675 - _globals['_ROUTINGPOLICY_CUSTOMRECORDSENTRY']._serialized_end=17727 - _globals['_CHANNELEDGE']._serialized_start=19042 - _globals['_CHANNELEDGE']._serialized_end=19385 - _globals['_CHANNELEDGE_CUSTOMRECORDSENTRY']._serialized_start=17675 - _globals['_CHANNELEDGE_CUSTOMRECORDSENTRY']._serialized_end=17727 - _globals['_CHANNELGRAPHREQUEST']._serialized_start=19387 - _globals['_CHANNELGRAPHREQUEST']._serialized_end=19437 - _globals['_CHANNELGRAPH']._serialized_start=19439 - _globals['_CHANNELGRAPH']._serialized_end=19525 - _globals['_NODEMETRICSREQUEST']._serialized_start=19527 - _globals['_NODEMETRICSREQUEST']._serialized_end=19585 - _globals['_NODEMETRICSRESPONSE']._serialized_start=19588 - _globals['_NODEMETRICSRESPONSE']._serialized_end=19778 - _globals['_NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY']._serialized_start=19698 - _globals['_NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY']._serialized_end=19778 - _globals['_FLOATMETRIC']._serialized_start=19780 - _globals['_FLOATMETRIC']._serialized_end=19834 - _globals['_CHANINFOREQUEST']._serialized_start=19836 - _globals['_CHANINFOREQUEST']._serialized_end=19894 - _globals['_NETWORKINFOREQUEST']._serialized_start=19896 - _globals['_NETWORKINFOREQUEST']._serialized_end=19916 - _globals['_NETWORKINFO']._serialized_start=19919 - _globals['_NETWORKINFO']._serialized_end=20214 - _globals['_STOPREQUEST']._serialized_start=20216 - _globals['_STOPREQUEST']._serialized_end=20229 - _globals['_STOPRESPONSE']._serialized_start=20231 - _globals['_STOPRESPONSE']._serialized_end=20245 - _globals['_GRAPHTOPOLOGYSUBSCRIPTION']._serialized_start=20247 - _globals['_GRAPHTOPOLOGYSUBSCRIPTION']._serialized_end=20274 - _globals['_GRAPHTOPOLOGYUPDATE']._serialized_start=20277 - _globals['_GRAPHTOPOLOGYUPDATE']._serialized_end=20440 - _globals['_NODEUPDATE']._serialized_start=20443 - _globals['_NODEUPDATE']._serialized_end=20719 - _globals['_NODEUPDATE_FEATURESENTRY']._serialized_start=7696 - _globals['_NODEUPDATE_FEATURESENTRY']._serialized_end=7759 - _globals['_CHANNELEDGEUPDATE']._serialized_start=20722 - _globals['_CHANNELEDGEUPDATE']._serialized_end=20918 - _globals['_CLOSEDCHANNELUPDATE']._serialized_start=20920 - _globals['_CLOSEDCHANNELUPDATE']._serialized_end=21044 - _globals['_HOPHINT']._serialized_start=21047 - _globals['_HOPHINT']._serialized_end=21181 - _globals['_SETID']._serialized_start=21183 - _globals['_SETID']._serialized_end=21206 - _globals['_ROUTEHINT']._serialized_start=21208 - _globals['_ROUTEHINT']._serialized_end=21254 - _globals['_BLINDEDPAYMENTPATH']._serialized_start=21257 - _globals['_BLINDEDPAYMENTPATH']._serialized_end=21482 - _globals['_BLINDEDPATH']._serialized_start=21484 - _globals['_BLINDEDPATH']._serialized_end=21589 - _globals['_BLINDEDHOP']._serialized_start=21591 - _globals['_BLINDEDHOP']._serialized_end=21649 - _globals['_AMPINVOICESTATE']._serialized_start=21651 - _globals['_AMPINVOICESTATE']._serialized_end=21774 - _globals['_INVOICE']._serialized_start=21777 - _globals['_INVOICE']._serialized_end=22753 - _globals['_INVOICE_FEATURESENTRY']._serialized_start=7696 - _globals['_INVOICE_FEATURESENTRY']._serialized_end=7759 - _globals['_INVOICE_AMPINVOICESTATEENTRY']._serialized_start=22602 - _globals['_INVOICE_AMPINVOICESTATEENTRY']._serialized_end=22680 - _globals['_INVOICE_INVOICESTATE']._serialized_start=22682 - _globals['_INVOICE_INVOICESTATE']._serialized_end=22747 - _globals['_BLINDEDPATHCONFIG']._serialized_start=22756 - _globals['_BLINDEDPATHCONFIG']._serialized_end=22939 - _globals['_INVOICEHTLC']._serialized_start=22942 - _globals['_INVOICEHTLC']._serialized_end=23342 - _globals['_INVOICEHTLC_CUSTOMRECORDSENTRY']._serialized_start=17675 - _globals['_INVOICEHTLC_CUSTOMRECORDSENTRY']._serialized_end=17727 - _globals['_AMP']._serialized_start=23344 - _globals['_AMP']._serialized_end=23438 - _globals['_ADDINVOICERESPONSE']._serialized_start=23440 - _globals['_ADDINVOICERESPONSE']._serialized_end=23542 - _globals['_PAYMENTHASH']._serialized_start=23544 - _globals['_PAYMENTHASH']._serialized_end=23597 - _globals['_LISTINVOICEREQUEST']._serialized_start=23600 - _globals['_LISTINVOICEREQUEST']._serialized_end=23764 - _globals['_LISTINVOICERESPONSE']._serialized_start=23766 - _globals['_LISTINVOICERESPONSE']._serialized_end=23876 - _globals['_INVOICESUBSCRIPTION']._serialized_start=23878 - _globals['_INVOICESUBSCRIPTION']._serialized_end=23940 - _globals['_PAYMENT']._serialized_start=23943 - _globals['_PAYMENT']._serialized_end=24581 - _globals['_PAYMENT_FIRSTHOPCUSTOMRECORDSENTRY']._serialized_start=24424 - _globals['_PAYMENT_FIRSTHOPCUSTOMRECORDSENTRY']._serialized_end=24484 - _globals['_PAYMENT_PAYMENTSTATUS']._serialized_start=24486 - _globals['_PAYMENT_PAYMENTSTATUS']._serialized_end=24575 - _globals['_HTLCATTEMPT']._serialized_start=24584 - _globals['_HTLCATTEMPT']._serialized_end=24850 - _globals['_HTLCATTEMPT_HTLCSTATUS']._serialized_start=24796 - _globals['_HTLCATTEMPT_HTLCSTATUS']._serialized_end=24850 - _globals['_LISTPAYMENTSREQUEST']._serialized_start=24853 - _globals['_LISTPAYMENTSREQUEST']._serialized_end=25050 - _globals['_LISTPAYMENTSRESPONSE']._serialized_start=25053 - _globals['_LISTPAYMENTSRESPONSE']._serialized_end=25192 - _globals['_DELETEPAYMENTREQUEST']._serialized_start=25194 - _globals['_DELETEPAYMENTREQUEST']._serialized_end=25265 - _globals['_DELETEALLPAYMENTSREQUEST']._serialized_start=25267 - _globals['_DELETEALLPAYMENTSREQUEST']._serialized_end=25372 - _globals['_DELETEPAYMENTRESPONSE']._serialized_start=25374 - _globals['_DELETEPAYMENTRESPONSE']._serialized_end=25397 - _globals['_DELETEALLPAYMENTSRESPONSE']._serialized_start=25399 - _globals['_DELETEALLPAYMENTSRESPONSE']._serialized_end=25426 - _globals['_ABANDONCHANNELREQUEST']._serialized_start=25429 - _globals['_ABANDONCHANNELREQUEST']._serialized_end=25563 - _globals['_ABANDONCHANNELRESPONSE']._serialized_start=25565 - _globals['_ABANDONCHANNELRESPONSE']._serialized_end=25589 - _globals['_DEBUGLEVELREQUEST']._serialized_start=25591 - _globals['_DEBUGLEVELREQUEST']._serialized_end=25644 - _globals['_DEBUGLEVELRESPONSE']._serialized_start=25646 - _globals['_DEBUGLEVELRESPONSE']._serialized_end=25687 - _globals['_PAYREQSTRING']._serialized_start=25689 - _globals['_PAYREQSTRING']._serialized_end=25720 - _globals['_PAYREQ']._serialized_start=25723 - _globals['_PAYREQ']._serialized_end=26163 - _globals['_PAYREQ_FEATURESENTRY']._serialized_start=7696 - _globals['_PAYREQ_FEATURESENTRY']._serialized_end=7759 - _globals['_FEATURE']._serialized_start=26165 - _globals['_FEATURE']._serialized_end=26227 - _globals['_FEEREPORTREQUEST']._serialized_start=26229 - _globals['_FEEREPORTREQUEST']._serialized_end=26247 - _globals['_CHANNELFEEREPORT']._serialized_start=26250 - _globals['_CHANNELFEEREPORT']._serialized_end=26434 - _globals['_FEEREPORTRESPONSE']._serialized_start=26437 - _globals['_FEEREPORTRESPONSE']._serialized_end=26569 - _globals['_INBOUNDFEE']._serialized_start=26571 - _globals['_INBOUNDFEE']._serialized_end=26628 - _globals['_POLICYUPDATEREQUEST']._serialized_start=26631 - _globals['_POLICYUPDATEREQUEST']._serialized_end=26929 - _globals['_FAILEDUPDATE']._serialized_start=26931 - _globals['_FAILEDUPDATE']._serialized_end=27040 - _globals['_POLICYUPDATERESPONSE']._serialized_start=27042 - _globals['_POLICYUPDATERESPONSE']._serialized_end=27109 - _globals['_FORWARDINGHISTORYREQUEST']._serialized_start=27112 - _globals['_FORWARDINGHISTORYREQUEST']._serialized_end=27249 - _globals['_FORWARDINGEVENT']._serialized_start=27252 - _globals['_FORWARDINGEVENT']._serialized_end=27517 - _globals['_FORWARDINGHISTORYRESPONSE']._serialized_start=27519 - _globals['_FORWARDINGHISTORYRESPONSE']._serialized_end=27624 - _globals['_EXPORTCHANNELBACKUPREQUEST']._serialized_start=27626 - _globals['_EXPORTCHANNELBACKUPREQUEST']._serialized_end=27695 - _globals['_CHANNELBACKUP']._serialized_start=27697 - _globals['_CHANNELBACKUP']._serialized_end=27774 - _globals['_MULTICHANBACKUP']._serialized_start=27776 - _globals['_MULTICHANBACKUP']._serialized_end=27862 - _globals['_CHANBACKUPEXPORTREQUEST']._serialized_start=27864 - _globals['_CHANBACKUPEXPORTREQUEST']._serialized_end=27889 - _globals['_CHANBACKUPSNAPSHOT']._serialized_start=27891 - _globals['_CHANBACKUPSNAPSHOT']._serialized_end=28014 - _globals['_CHANNELBACKUPS']._serialized_start=28016 - _globals['_CHANNELBACKUPS']._serialized_end=28076 - _globals['_RESTORECHANBACKUPREQUEST']._serialized_start=28078 - _globals['_RESTORECHANBACKUPREQUEST']._serialized_end=28190 - _globals['_RESTOREBACKUPRESPONSE']._serialized_start=28192 - _globals['_RESTOREBACKUPRESPONSE']._serialized_end=28215 - _globals['_CHANNELBACKUPSUBSCRIPTION']._serialized_start=28217 - _globals['_CHANNELBACKUPSUBSCRIPTION']._serialized_end=28244 - _globals['_VERIFYCHANBACKUPRESPONSE']._serialized_start=28246 - _globals['_VERIFYCHANBACKUPRESPONSE']._serialized_end=28272 - _globals['_MACAROONPERMISSION']._serialized_start=28274 - _globals['_MACAROONPERMISSION']._serialized_end=28326 - _globals['_BAKEMACAROONREQUEST']._serialized_start=28328 - _globals['_BAKEMACAROONREQUEST']._serialized_end=28454 - _globals['_BAKEMACAROONRESPONSE']._serialized_start=28456 - _globals['_BAKEMACAROONRESPONSE']._serialized_end=28496 - _globals['_LISTMACAROONIDSREQUEST']._serialized_start=28498 - _globals['_LISTMACAROONIDSREQUEST']._serialized_end=28522 - _globals['_LISTMACAROONIDSRESPONSE']._serialized_start=28524 - _globals['_LISTMACAROONIDSRESPONSE']._serialized_end=28571 - _globals['_DELETEMACAROONIDREQUEST']._serialized_start=28573 - _globals['_DELETEMACAROONIDREQUEST']._serialized_end=28619 - _globals['_DELETEMACAROONIDRESPONSE']._serialized_start=28621 - _globals['_DELETEMACAROONIDRESPONSE']._serialized_end=28664 - _globals['_MACAROONPERMISSIONLIST']._serialized_start=28666 - _globals['_MACAROONPERMISSIONLIST']._serialized_end=28738 - _globals['_LISTPERMISSIONSREQUEST']._serialized_start=28740 - _globals['_LISTPERMISSIONSREQUEST']._serialized_end=28764 - _globals['_LISTPERMISSIONSRESPONSE']._serialized_start=28767 - _globals['_LISTPERMISSIONSRESPONSE']._serialized_end=28964 - _globals['_LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY']._serialized_start=28877 - _globals['_LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY']._serialized_end=28964 - _globals['_FAILURE']._serialized_start=28967 - _globals['_FAILURE']._serialized_end=29976 - _globals['_FAILURE_FAILURECODE']._serialized_start=29191 - _globals['_FAILURE_FAILURECODE']._serialized_end=29970 - _globals['_CHANNELUPDATE']._serialized_start=29979 - _globals['_CHANNELUPDATE']._serialized_end=30261 - _globals['_MACAROONID']._serialized_start=30263 - _globals['_MACAROONID']._serialized_end=30333 - _globals['_OP']._serialized_start=30335 - _globals['_OP']._serialized_end=30372 - _globals['_CHECKMACPERMREQUEST']._serialized_start=30374 - _globals['_CHECKMACPERMREQUEST']._serialized_end=30481 - _globals['_CHECKMACPERMRESPONSE']._serialized_start=30483 - _globals['_CHECKMACPERMRESPONSE']._serialized_end=30520 - _globals['_RPCMIDDLEWAREREQUEST']._serialized_start=30523 - _globals['_RPCMIDDLEWAREREQUEST']._serialized_end=30797 - _globals['_STREAMAUTH']._serialized_start=30799 - _globals['_STREAMAUTH']._serialized_end=30836 - _globals['_RPCMESSAGE']._serialized_start=30838 - _globals['_RPCMESSAGE']._serialized_end=30952 - _globals['_RPCMIDDLEWARERESPONSE']._serialized_start=30955 - _globals['_RPCMIDDLEWARERESPONSE']._serialized_end=31117 - _globals['_MIDDLEWAREREGISTRATION']._serialized_start=31119 - _globals['_MIDDLEWAREREGISTRATION']._serialized_end=31229 - _globals['_INTERCEPTFEEDBACK']._serialized_start=31231 - _globals['_INTERCEPTFEEDBACK']._serialized_end=31323 - _globals['_LIGHTNING']._serialized_start=33614 - _globals['_LIGHTNING']._serialized_end=38663 + _globals['_SENDCUSTOMMESSAGERESPONSE']._serialized_end=367 + _globals['_UTXO']._serialized_start=370 + _globals['_UTXO']._serialized_end=532 + _globals['_OUTPUTDETAIL']._serialized_start=535 + _globals['_OUTPUTDETAIL']._serialized_end=693 + _globals['_TRANSACTION']._serialized_start=696 + _globals['_TRANSACTION']._serialized_end=1012 + _globals['_GETTRANSACTIONSREQUEST']._serialized_start=1015 + _globals['_GETTRANSACTIONSREQUEST']._serialized_end=1146 + _globals['_TRANSACTIONDETAILS']._serialized_start=1148 + _globals['_TRANSACTIONDETAILS']._serialized_end=1251 + _globals['_FEELIMIT']._serialized_start=1253 + _globals['_FEELIMIT']._serialized_end=1330 + _globals['_SENDREQUEST']._serialized_start=1333 + _globals['_SENDREQUEST']._serialized_end=1855 + _globals['_SENDREQUEST_DESTCUSTOMRECORDSENTRY']._serialized_start=1799 + _globals['_SENDREQUEST_DESTCUSTOMRECORDSENTRY']._serialized_end=1855 + _globals['_SENDRESPONSE']._serialized_start=1857 + _globals['_SENDRESPONSE']._serialized_end=1979 + _globals['_SENDTOROUTEREQUEST']._serialized_start=1981 + _globals['_SENDTOROUTEREQUEST']._serialized_end=2091 + _globals['_CHANNELACCEPTREQUEST']._serialized_start=2094 + _globals['_CHANNELACCEPTREQUEST']._serialized_end=2502 + _globals['_CHANNELACCEPTRESPONSE']._serialized_start=2505 + _globals['_CHANNELACCEPTRESPONSE']._serialized_end=2768 + _globals['_CHANNELPOINT']._serialized_start=2770 + _globals['_CHANNELPOINT']._serialized_end=2880 + _globals['_OUTPOINT']._serialized_start=2882 + _globals['_OUTPOINT']._serialized_end=2952 + _globals['_PREVIOUSOUTPOINT']._serialized_start=2954 + _globals['_PREVIOUSOUTPOINT']._serialized_end=3013 + _globals['_LIGHTNINGADDRESS']._serialized_start=3015 + _globals['_LIGHTNINGADDRESS']._serialized_end=3063 + _globals['_ESTIMATEFEEREQUEST']._serialized_start=3066 + _globals['_ESTIMATEFEEREQUEST']._serialized_end=3336 + _globals['_ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY']._serialized_start=3285 + _globals['_ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY']._serialized_end=3336 + _globals['_ESTIMATEFEERESPONSE']._serialized_start=3338 + _globals['_ESTIMATEFEERESPONSE']._serialized_end=3433 + _globals['_SENDMANYREQUEST']._serialized_start=3436 + _globals['_SENDMANYREQUEST']._serialized_end=3764 + _globals['_SENDMANYREQUEST_ADDRTOAMOUNTENTRY']._serialized_start=3285 + _globals['_SENDMANYREQUEST_ADDRTOAMOUNTENTRY']._serialized_end=3336 + _globals['_SENDMANYRESPONSE']._serialized_start=3766 + _globals['_SENDMANYRESPONSE']._serialized_end=3798 + _globals['_SENDCOINSREQUEST']._serialized_start=3801 + _globals['_SENDCOINSREQUEST']._serialized_end=4097 + _globals['_SENDCOINSRESPONSE']._serialized_start=4099 + _globals['_SENDCOINSRESPONSE']._serialized_end=4132 + _globals['_LISTUNSPENTREQUEST']._serialized_start=4134 + _globals['_LISTUNSPENTREQUEST']._serialized_end=4209 + _globals['_LISTUNSPENTRESPONSE']._serialized_start=4211 + _globals['_LISTUNSPENTRESPONSE']._serialized_end=4260 + _globals['_NEWADDRESSREQUEST']._serialized_start=4262 + _globals['_NEWADDRESSREQUEST']._serialized_end=4332 + _globals['_NEWADDRESSRESPONSE']._serialized_start=4334 + _globals['_NEWADDRESSRESPONSE']._serialized_end=4371 + _globals['_SIGNMESSAGEREQUEST']._serialized_start=4373 + _globals['_SIGNMESSAGEREQUEST']._serialized_end=4427 + _globals['_SIGNMESSAGERESPONSE']._serialized_start=4429 + _globals['_SIGNMESSAGERESPONSE']._serialized_end=4469 + _globals['_VERIFYMESSAGEREQUEST']._serialized_start=4471 + _globals['_VERIFYMESSAGEREQUEST']._serialized_end=4525 + _globals['_VERIFYMESSAGERESPONSE']._serialized_start=4527 + _globals['_VERIFYMESSAGERESPONSE']._serialized_end=4581 + _globals['_CONNECTPEERREQUEST']._serialized_start=4583 + _globals['_CONNECTPEERREQUEST']._serialized_end=4673 + _globals['_CONNECTPEERRESPONSE']._serialized_start=4675 + _globals['_CONNECTPEERRESPONSE']._serialized_end=4712 + _globals['_DISCONNECTPEERREQUEST']._serialized_start=4714 + _globals['_DISCONNECTPEERREQUEST']._serialized_end=4754 + _globals['_DISCONNECTPEERRESPONSE']._serialized_start=4756 + _globals['_DISCONNECTPEERRESPONSE']._serialized_end=4796 + _globals['_HTLC']._serialized_start=4799 + _globals['_HTLC']._serialized_end=4983 + _globals['_CHANNELCONSTRAINTS']._serialized_start=4986 + _globals['_CHANNELCONSTRAINTS']._serialized_end=5156 + _globals['_CHANNEL']._serialized_start=5159 + _globals['_CHANNEL']._serialized_end=6141 + _globals['_LISTCHANNELSREQUEST']._serialized_start=6144 + _globals['_LISTCHANNELSREQUEST']._serialized_end=6293 + _globals['_LISTCHANNELSRESPONSE']._serialized_start=6295 + _globals['_LISTCHANNELSRESPONSE']._serialized_end=6351 + _globals['_ALIASMAP']._serialized_start=6353 + _globals['_ALIASMAP']._serialized_end=6399 + _globals['_LISTALIASESREQUEST']._serialized_start=6401 + _globals['_LISTALIASESREQUEST']._serialized_end=6421 + _globals['_LISTALIASESRESPONSE']._serialized_start=6423 + _globals['_LISTALIASESRESPONSE']._serialized_end=6481 + _globals['_CHANNELCLOSESUMMARY']._serialized_start=6484 + _globals['_CHANNELCLOSESUMMARY']._serialized_end=7125 + _globals['_CHANNELCLOSESUMMARY_CLOSURETYPE']._serialized_start=6987 + _globals['_CHANNELCLOSESUMMARY_CLOSURETYPE']._serialized_end=7125 + _globals['_RESOLUTION']._serialized_start=7128 + _globals['_RESOLUTION']._serialized_end=7306 + _globals['_CLOSEDCHANNELSREQUEST']._serialized_start=7309 + _globals['_CLOSEDCHANNELSREQUEST']._serialized_end=7457 + _globals['_CLOSEDCHANNELSRESPONSE']._serialized_start=7459 + _globals['_CLOSEDCHANNELSRESPONSE']._serialized_end=7529 + _globals['_PEER']._serialized_start=7532 + _globals['_PEER']._serialized_end=8027 + _globals['_PEER_FEATURESENTRY']._serialized_start=7882 + _globals['_PEER_FEATURESENTRY']._serialized_end=7945 + _globals['_PEER_SYNCTYPE']._serialized_start=7947 + _globals['_PEER_SYNCTYPE']._serialized_end=8027 + _globals['_TIMESTAMPEDERROR']._serialized_start=8029 + _globals['_TIMESTAMPEDERROR']._serialized_end=8081 + _globals['_LISTPEERSREQUEST']._serialized_start=8083 + _globals['_LISTPEERSREQUEST']._serialized_end=8123 + _globals['_LISTPEERSRESPONSE']._serialized_start=8125 + _globals['_LISTPEERSRESPONSE']._serialized_end=8172 + _globals['_PEEREVENTSUBSCRIPTION']._serialized_start=8174 + _globals['_PEEREVENTSUBSCRIPTION']._serialized_end=8197 + _globals['_PEEREVENT']._serialized_start=8199 + _globals['_PEEREVENT']._serialized_end=8317 + _globals['_PEEREVENT_EVENTTYPE']._serialized_start=8271 + _globals['_PEEREVENT_EVENTTYPE']._serialized_end=8317 + _globals['_GETINFOREQUEST']._serialized_start=8319 + _globals['_GETINFOREQUEST']._serialized_end=8335 + _globals['_GETINFORESPONSE']._serialized_start=8338 + _globals['_GETINFORESPONSE']._serialized_end=8944 + _globals['_GETINFORESPONSE_FEATURESENTRY']._serialized_start=7882 + _globals['_GETINFORESPONSE_FEATURESENTRY']._serialized_end=7945 + _globals['_GETDEBUGINFOREQUEST']._serialized_start=8946 + _globals['_GETDEBUGINFOREQUEST']._serialized_end=8967 + _globals['_GETDEBUGINFORESPONSE']._serialized_start=8970 + _globals['_GETDEBUGINFORESPONSE']._serialized_end=9109 + _globals['_GETDEBUGINFORESPONSE_CONFIGENTRY']._serialized_start=9064 + _globals['_GETDEBUGINFORESPONSE_CONFIGENTRY']._serialized_end=9109 + _globals['_GETRECOVERYINFOREQUEST']._serialized_start=9111 + _globals['_GETRECOVERYINFOREQUEST']._serialized_end=9135 + _globals['_GETRECOVERYINFORESPONSE']._serialized_start=9137 + _globals['_GETRECOVERYINFORESPONSE']._serialized_end=9230 + _globals['_CHAIN']._serialized_start=9232 + _globals['_CHAIN']._serialized_end=9275 + _globals['_CHANNELOPENUPDATE']._serialized_start=9277 + _globals['_CHANNELOPENUPDATE']._serialized_end=9340 + _globals['_CLOSEOUTPUT']._serialized_start=9342 + _globals['_CLOSEOUTPUT']._serialized_end=9441 + _globals['_CHANNELCLOSEUPDATE']._serialized_start=9444 + _globals['_CHANNELCLOSEUPDATE']._serialized_end=9648 + _globals['_CLOSECHANNELREQUEST']._serialized_start=9651 + _globals['_CLOSECHANNELREQUEST']._serialized_end=9871 + _globals['_CLOSESTATUSUPDATE']._serialized_start=9874 + _globals['_CLOSESTATUSUPDATE']._serialized_end=10046 + _globals['_PENDINGUPDATE']._serialized_start=10048 + _globals['_PENDINGUPDATE']._serialized_end=10146 + _globals['_INSTANTUPDATE']._serialized_start=10148 + _globals['_INSTANTUPDATE']._serialized_end=10190 + _globals['_READYFORPSBTFUNDING']._serialized_start=10192 + _globals['_READYFORPSBTFUNDING']._serialized_end=10276 + _globals['_BATCHOPENCHANNELREQUEST']._serialized_start=10279 + _globals['_BATCHOPENCHANNELREQUEST']._serialized_end=10515 + _globals['_BATCHOPENCHANNEL']._serialized_start=10518 + _globals['_BATCHOPENCHANNEL']._serialized_end=11023 + _globals['_BATCHOPENCHANNELRESPONSE']._serialized_start=11025 + _globals['_BATCHOPENCHANNELRESPONSE']._serialized_end=11099 + _globals['_OPENCHANNELREQUEST']._serialized_start=11102 + _globals['_OPENCHANNELREQUEST']._serialized_end=11828 + _globals['_OPENSTATUSUPDATE']._serialized_start=11831 + _globals['_OPENSTATUSUPDATE']._serialized_end=12026 + _globals['_KEYLOCATOR']._serialized_start=12028 + _globals['_KEYLOCATOR']._serialized_end=12079 + _globals['_KEYDESCRIPTOR']._serialized_start=12081 + _globals['_KEYDESCRIPTOR']._serialized_end=12155 + _globals['_CHANPOINTSHIM']._serialized_start=12158 + _globals['_CHANPOINTSHIM']._serialized_end=12350 + _globals['_PSBTSHIM']._serialized_start=12352 + _globals['_PSBTSHIM']._serialized_end=12426 + _globals['_FUNDINGSHIM']._serialized_start=12428 + _globals['_FUNDINGSHIM']._serialized_end=12536 + _globals['_FUNDINGSHIMCANCEL']._serialized_start=12538 + _globals['_FUNDINGSHIMCANCEL']._serialized_end=12582 + _globals['_FUNDINGPSBTVERIFY']._serialized_start=12584 + _globals['_FUNDINGPSBTVERIFY']._serialized_end=12672 + _globals['_FUNDINGPSBTFINALIZE']._serialized_start=12674 + _globals['_FUNDINGPSBTFINALIZE']._serialized_end=12763 + _globals['_FUNDINGTRANSITIONMSG']._serialized_start=12766 + _globals['_FUNDINGTRANSITIONMSG']._serialized_end=12995 + _globals['_FUNDINGSTATESTEPRESP']._serialized_start=12997 + _globals['_FUNDINGSTATESTEPRESP']._serialized_end=13019 + _globals['_PENDINGHTLC']._serialized_start=13022 + _globals['_PENDINGHTLC']._serialized_end=13156 + _globals['_PENDINGCHANNELSREQUEST']._serialized_start=13158 + _globals['_PENDINGCHANNELSREQUEST']._serialized_end=13206 + _globals['_PENDINGCHANNELSRESPONSE']._serialized_start=13209 + _globals['_PENDINGCHANNELSRESPONSE']._serialized_end=15155 + _globals['_PENDINGCHANNELSRESPONSE_PENDINGCHANNEL']._serialized_start=13607 + _globals['_PENDINGCHANNELSRESPONSE_PENDINGCHANNEL']._serialized_end=14006 + _globals['_PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL']._serialized_start=14009 + _globals['_PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL']._serialized_end=14258 + _globals['_PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL']._serialized_start=14261 + _globals['_PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL']._serialized_end=14480 + _globals['_PENDINGCHANNELSRESPONSE_COMMITMENTS']._serialized_start=14483 + _globals['_PENDINGCHANNELSRESPONSE_COMMITMENTS']._serialized_end=14666 + _globals['_PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL']._serialized_start=14668 + _globals['_PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL']._serialized_end=14769 + _globals['_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL']._serialized_start=14772 + _globals['_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL']._serialized_end=15155 + _globals['_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE']._serialized_start=15106 + _globals['_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE']._serialized_end=15155 + _globals['_CHANNELEVENTSUBSCRIPTION']._serialized_start=15157 + _globals['_CHANNELEVENTSUBSCRIPTION']._serialized_end=15183 + _globals['_CHANNELEVENTUPDATE']._serialized_start=15186 + _globals['_CHANNELEVENTUPDATE']._serialized_end=15802 + _globals['_CHANNELEVENTUPDATE_UPDATETYPE']._serialized_start=15616 + _globals['_CHANNELEVENTUPDATE_UPDATETYPE']._serialized_end=15791 + _globals['_WALLETACCOUNTBALANCE']._serialized_start=15804 + _globals['_WALLETACCOUNTBALANCE']._serialized_end=15882 + _globals['_WALLETBALANCEREQUEST']._serialized_start=15884 + _globals['_WALLETBALANCEREQUEST']._serialized_end=15942 + _globals['_WALLETBALANCERESPONSE']._serialized_start=15945 + _globals['_WALLETBALANCERESPONSE']._serialized_end=16268 + _globals['_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY']._serialized_start=16186 + _globals['_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY']._serialized_end=16268 + _globals['_AMOUNT']._serialized_start=16270 + _globals['_AMOUNT']._serialized_end=16305 + _globals['_CHANNELBALANCEREQUEST']._serialized_start=16307 + _globals['_CHANNELBALANCEREQUEST']._serialized_end=16330 + _globals['_CHANNELBALANCERESPONSE']._serialized_start=16333 + _globals['_CHANNELBALANCERESPONSE']._serialized_end=16718 + _globals['_QUERYROUTESREQUEST']._serialized_start=16721 + _globals['_QUERYROUTESREQUEST']._serialized_end=17419 + _globals['_QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY']._serialized_start=1799 + _globals['_QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY']._serialized_end=1855 + _globals['_NODEPAIR']._serialized_start=17421 + _globals['_NODEPAIR']._serialized_end=17457 + _globals['_EDGELOCATOR']._serialized_start=17459 + _globals['_EDGELOCATOR']._serialized_end=17523 + _globals['_QUERYROUTESRESPONSE']._serialized_start=17525 + _globals['_QUERYROUTESRESPONSE']._serialized_end=17598 + _globals['_HOP']._serialized_start=17601 + _globals['_HOP']._serialized_end=18079 + _globals['_HOP_CUSTOMRECORDSENTRY']._serialized_start=18027 + _globals['_HOP_CUSTOMRECORDSENTRY']._serialized_end=18079 + _globals['_MPPRECORD']._serialized_start=18081 + _globals['_MPPRECORD']._serialized_end=18138 + _globals['_AMPRECORD']._serialized_start=18140 + _globals['_AMPRECORD']._serialized_end=18208 + _globals['_ROUTE']._serialized_start=18211 + _globals['_ROUTE']._serialized_end=18425 + _globals['_NODEINFOREQUEST']._serialized_start=18427 + _globals['_NODEINFOREQUEST']._serialized_end=18515 + _globals['_NODEINFO']._serialized_start=18518 + _globals['_NODEINFO']._serialized_end=18648 + _globals['_LIGHTNINGNODE']._serialized_start=18651 + _globals['_LIGHTNINGNODE']._serialized_end=19011 + _globals['_LIGHTNINGNODE_FEATURESENTRY']._serialized_start=7882 + _globals['_LIGHTNINGNODE_FEATURESENTRY']._serialized_end=7945 + _globals['_LIGHTNINGNODE_CUSTOMRECORDSENTRY']._serialized_start=18027 + _globals['_LIGHTNINGNODE_CUSTOMRECORDSENTRY']._serialized_end=18079 + _globals['_NODEADDRESS']._serialized_start=19013 + _globals['_NODEADDRESS']._serialized_end=19057 + _globals['_ROUTINGPOLICY']._serialized_start=19060 + _globals['_ROUTINGPOLICY']._serialized_end=19419 + _globals['_ROUTINGPOLICY_CUSTOMRECORDSENTRY']._serialized_start=18027 + _globals['_ROUTINGPOLICY_CUSTOMRECORDSENTRY']._serialized_end=18079 + _globals['_CHANNELAUTHPROOF']._serialized_start=19421 + _globals['_CHANNELAUTHPROOF']._serialized_end=19521 + _globals['_CHANNELEDGE']._serialized_start=19524 + _globals['_CHANNELEDGE']._serialized_end=19912 + _globals['_CHANNELEDGE_CUSTOMRECORDSENTRY']._serialized_start=18027 + _globals['_CHANNELEDGE_CUSTOMRECORDSENTRY']._serialized_end=18079 + _globals['_CHANNELGRAPHREQUEST']._serialized_start=19914 + _globals['_CHANNELGRAPHREQUEST']._serialized_end=19992 + _globals['_CHANNELGRAPH']._serialized_start=19994 + _globals['_CHANNELGRAPH']._serialized_end=20080 + _globals['_NODEMETRICSREQUEST']._serialized_start=20082 + _globals['_NODEMETRICSREQUEST']._serialized_end=20140 + _globals['_NODEMETRICSRESPONSE']._serialized_start=20143 + _globals['_NODEMETRICSRESPONSE']._serialized_end=20333 + _globals['_NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY']._serialized_start=20253 + _globals['_NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY']._serialized_end=20333 + _globals['_FLOATMETRIC']._serialized_start=20335 + _globals['_FLOATMETRIC']._serialized_end=20389 + _globals['_CHANINFOREQUEST']._serialized_start=20391 + _globals['_CHANINFOREQUEST']._serialized_end=20477 + _globals['_NETWORKINFOREQUEST']._serialized_start=20479 + _globals['_NETWORKINFOREQUEST']._serialized_end=20499 + _globals['_NETWORKINFO']._serialized_start=20502 + _globals['_NETWORKINFO']._serialized_end=20797 + _globals['_STOPREQUEST']._serialized_start=20799 + _globals['_STOPREQUEST']._serialized_end=20812 + _globals['_STOPRESPONSE']._serialized_start=20814 + _globals['_STOPRESPONSE']._serialized_end=20844 + _globals['_GRAPHTOPOLOGYSUBSCRIPTION']._serialized_start=20846 + _globals['_GRAPHTOPOLOGYSUBSCRIPTION']._serialized_end=20873 + _globals['_GRAPHTOPOLOGYUPDATE']._serialized_start=20876 + _globals['_GRAPHTOPOLOGYUPDATE']._serialized_end=21039 + _globals['_NODEUPDATE']._serialized_start=21042 + _globals['_NODEUPDATE']._serialized_end=21318 + _globals['_NODEUPDATE_FEATURESENTRY']._serialized_start=7882 + _globals['_NODEUPDATE_FEATURESENTRY']._serialized_end=7945 + _globals['_CHANNELEDGEUPDATE']._serialized_start=21321 + _globals['_CHANNELEDGEUPDATE']._serialized_end=21517 + _globals['_CLOSEDCHANNELUPDATE']._serialized_start=21519 + _globals['_CLOSEDCHANNELUPDATE']._serialized_end=21643 + _globals['_HOPHINT']._serialized_start=21646 + _globals['_HOPHINT']._serialized_end=21780 + _globals['_SETID']._serialized_start=21782 + _globals['_SETID']._serialized_end=21805 + _globals['_ROUTEHINT']._serialized_start=21807 + _globals['_ROUTEHINT']._serialized_end=21853 + _globals['_BLINDEDPAYMENTPATH']._serialized_start=21856 + _globals['_BLINDEDPAYMENTPATH']._serialized_end=22081 + _globals['_BLINDEDPATH']._serialized_start=22083 + _globals['_BLINDEDPATH']._serialized_end=22188 + _globals['_BLINDEDHOP']._serialized_start=22190 + _globals['_BLINDEDHOP']._serialized_end=22248 + _globals['_AMPINVOICESTATE']._serialized_start=22250 + _globals['_AMPINVOICESTATE']._serialized_end=22373 + _globals['_INVOICE']._serialized_start=22376 + _globals['_INVOICE']._serialized_end=23352 + _globals['_INVOICE_FEATURESENTRY']._serialized_start=7882 + _globals['_INVOICE_FEATURESENTRY']._serialized_end=7945 + _globals['_INVOICE_AMPINVOICESTATEENTRY']._serialized_start=23201 + _globals['_INVOICE_AMPINVOICESTATEENTRY']._serialized_end=23279 + _globals['_INVOICE_INVOICESTATE']._serialized_start=23281 + _globals['_INVOICE_INVOICESTATE']._serialized_end=23346 + _globals['_BLINDEDPATHCONFIG']._serialized_start=23355 + _globals['_BLINDEDPATHCONFIG']._serialized_end=23569 + _globals['_INVOICEHTLC']._serialized_start=23572 + _globals['_INVOICEHTLC']._serialized_end=23972 + _globals['_INVOICEHTLC_CUSTOMRECORDSENTRY']._serialized_start=18027 + _globals['_INVOICEHTLC_CUSTOMRECORDSENTRY']._serialized_end=18079 + _globals['_AMP']._serialized_start=23974 + _globals['_AMP']._serialized_end=24068 + _globals['_ADDINVOICERESPONSE']._serialized_start=24070 + _globals['_ADDINVOICERESPONSE']._serialized_end=24172 + _globals['_PAYMENTHASH']._serialized_start=24174 + _globals['_PAYMENTHASH']._serialized_end=24227 + _globals['_LISTINVOICEREQUEST']._serialized_start=24230 + _globals['_LISTINVOICEREQUEST']._serialized_end=24394 + _globals['_LISTINVOICERESPONSE']._serialized_start=24396 + _globals['_LISTINVOICERESPONSE']._serialized_end=24506 + _globals['_INVOICESUBSCRIPTION']._serialized_start=24508 + _globals['_INVOICESUBSCRIPTION']._serialized_end=24570 + _globals['_DELCANCELEDINVOICEREQ']._serialized_start=24572 + _globals['_DELCANCELEDINVOICEREQ']._serialized_end=24617 + _globals['_DELCANCELEDINVOICERESP']._serialized_start=24619 + _globals['_DELCANCELEDINVOICERESP']._serialized_end=24659 + _globals['_PAYMENT']._serialized_start=24662 + _globals['_PAYMENT']._serialized_end=25300 + _globals['_PAYMENT_FIRSTHOPCUSTOMRECORDSENTRY']._serialized_start=25143 + _globals['_PAYMENT_FIRSTHOPCUSTOMRECORDSENTRY']._serialized_end=25203 + _globals['_PAYMENT_PAYMENTSTATUS']._serialized_start=25205 + _globals['_PAYMENT_PAYMENTSTATUS']._serialized_end=25294 + _globals['_HTLCATTEMPT']._serialized_start=25303 + _globals['_HTLCATTEMPT']._serialized_end=25569 + _globals['_HTLCATTEMPT_HTLCSTATUS']._serialized_start=25515 + _globals['_HTLCATTEMPT_HTLCSTATUS']._serialized_end=25569 + _globals['_LISTPAYMENTSREQUEST']._serialized_start=25572 + _globals['_LISTPAYMENTSREQUEST']._serialized_end=25769 + _globals['_LISTPAYMENTSRESPONSE']._serialized_start=25772 + _globals['_LISTPAYMENTSRESPONSE']._serialized_end=25911 + _globals['_DELETEPAYMENTREQUEST']._serialized_start=25913 + _globals['_DELETEPAYMENTREQUEST']._serialized_end=25984 + _globals['_DELETEALLPAYMENTSREQUEST']._serialized_start=25986 + _globals['_DELETEALLPAYMENTSREQUEST']._serialized_end=26091 + _globals['_DELETEPAYMENTRESPONSE']._serialized_start=26093 + _globals['_DELETEPAYMENTRESPONSE']._serialized_end=26132 + _globals['_DELETEALLPAYMENTSRESPONSE']._serialized_start=26134 + _globals['_DELETEALLPAYMENTSRESPONSE']._serialized_end=26177 + _globals['_ABANDONCHANNELREQUEST']._serialized_start=26180 + _globals['_ABANDONCHANNELREQUEST']._serialized_end=26314 + _globals['_ABANDONCHANNELRESPONSE']._serialized_start=26316 + _globals['_ABANDONCHANNELRESPONSE']._serialized_end=26356 + _globals['_DEBUGLEVELREQUEST']._serialized_start=26358 + _globals['_DEBUGLEVELREQUEST']._serialized_end=26411 + _globals['_DEBUGLEVELRESPONSE']._serialized_start=26413 + _globals['_DEBUGLEVELRESPONSE']._serialized_end=26454 + _globals['_PAYREQSTRING']._serialized_start=26456 + _globals['_PAYREQSTRING']._serialized_end=26487 + _globals['_PAYREQ']._serialized_start=26490 + _globals['_PAYREQ']._serialized_end=26930 + _globals['_PAYREQ_FEATURESENTRY']._serialized_start=7882 + _globals['_PAYREQ_FEATURESENTRY']._serialized_end=7945 + _globals['_FEATURE']._serialized_start=26932 + _globals['_FEATURE']._serialized_end=26994 + _globals['_FEEREPORTREQUEST']._serialized_start=26996 + _globals['_FEEREPORTREQUEST']._serialized_end=27014 + _globals['_CHANNELFEEREPORT']._serialized_start=27017 + _globals['_CHANNELFEEREPORT']._serialized_end=27201 + _globals['_FEEREPORTRESPONSE']._serialized_start=27204 + _globals['_FEEREPORTRESPONSE']._serialized_end=27336 + _globals['_INBOUNDFEE']._serialized_start=27338 + _globals['_INBOUNDFEE']._serialized_end=27395 + _globals['_POLICYUPDATEREQUEST']._serialized_start=27398 + _globals['_POLICYUPDATEREQUEST']._serialized_end=27725 + _globals['_FAILEDUPDATE']._serialized_start=27727 + _globals['_FAILEDUPDATE']._serialized_end=27836 + _globals['_POLICYUPDATERESPONSE']._serialized_start=27838 + _globals['_POLICYUPDATERESPONSE']._serialized_end=27905 + _globals['_FORWARDINGHISTORYREQUEST']._serialized_start=27908 + _globals['_FORWARDINGHISTORYREQUEST']._serialized_end=28099 + _globals['_FORWARDINGEVENT']._serialized_start=28102 + _globals['_FORWARDINGEVENT']._serialized_end=28471 + _globals['_FORWARDINGHISTORYRESPONSE']._serialized_start=28473 + _globals['_FORWARDINGHISTORYRESPONSE']._serialized_end=28578 + _globals['_EXPORTCHANNELBACKUPREQUEST']._serialized_start=28580 + _globals['_EXPORTCHANNELBACKUPREQUEST']._serialized_end=28649 + _globals['_CHANNELBACKUP']._serialized_start=28651 + _globals['_CHANNELBACKUP']._serialized_end=28728 + _globals['_MULTICHANBACKUP']._serialized_start=28730 + _globals['_MULTICHANBACKUP']._serialized_end=28816 + _globals['_CHANBACKUPEXPORTREQUEST']._serialized_start=28818 + _globals['_CHANBACKUPEXPORTREQUEST']._serialized_end=28843 + _globals['_CHANBACKUPSNAPSHOT']._serialized_start=28845 + _globals['_CHANBACKUPSNAPSHOT']._serialized_end=28968 + _globals['_CHANNELBACKUPS']._serialized_start=28970 + _globals['_CHANNELBACKUPS']._serialized_end=29030 + _globals['_RESTORECHANBACKUPREQUEST']._serialized_start=29032 + _globals['_RESTORECHANBACKUPREQUEST']._serialized_end=29144 + _globals['_RESTOREBACKUPRESPONSE']._serialized_start=29146 + _globals['_RESTOREBACKUPRESPONSE']._serialized_end=29191 + _globals['_CHANNELBACKUPSUBSCRIPTION']._serialized_start=29193 + _globals['_CHANNELBACKUPSUBSCRIPTION']._serialized_end=29220 + _globals['_VERIFYCHANBACKUPRESPONSE']._serialized_start=29222 + _globals['_VERIFYCHANBACKUPRESPONSE']._serialized_end=29269 + _globals['_MACAROONPERMISSION']._serialized_start=29271 + _globals['_MACAROONPERMISSION']._serialized_end=29323 + _globals['_BAKEMACAROONREQUEST']._serialized_start=29325 + _globals['_BAKEMACAROONREQUEST']._serialized_end=29451 + _globals['_BAKEMACAROONRESPONSE']._serialized_start=29453 + _globals['_BAKEMACAROONRESPONSE']._serialized_end=29493 + _globals['_LISTMACAROONIDSREQUEST']._serialized_start=29495 + _globals['_LISTMACAROONIDSREQUEST']._serialized_end=29519 + _globals['_LISTMACAROONIDSRESPONSE']._serialized_start=29521 + _globals['_LISTMACAROONIDSRESPONSE']._serialized_end=29568 + _globals['_DELETEMACAROONIDREQUEST']._serialized_start=29570 + _globals['_DELETEMACAROONIDREQUEST']._serialized_end=29616 + _globals['_DELETEMACAROONIDRESPONSE']._serialized_start=29618 + _globals['_DELETEMACAROONIDRESPONSE']._serialized_end=29661 + _globals['_MACAROONPERMISSIONLIST']._serialized_start=29663 + _globals['_MACAROONPERMISSIONLIST']._serialized_end=29735 + _globals['_LISTPERMISSIONSREQUEST']._serialized_start=29737 + _globals['_LISTPERMISSIONSREQUEST']._serialized_end=29761 + _globals['_LISTPERMISSIONSRESPONSE']._serialized_start=29764 + _globals['_LISTPERMISSIONSRESPONSE']._serialized_end=29961 + _globals['_LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY']._serialized_start=29874 + _globals['_LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY']._serialized_end=29961 + _globals['_FAILURE']._serialized_start=29964 + _globals['_FAILURE']._serialized_end=30973 + _globals['_FAILURE_FAILURECODE']._serialized_start=30188 + _globals['_FAILURE_FAILURECODE']._serialized_end=30967 + _globals['_CHANNELUPDATE']._serialized_start=30976 + _globals['_CHANNELUPDATE']._serialized_end=31258 + _globals['_MACAROONID']._serialized_start=31260 + _globals['_MACAROONID']._serialized_end=31330 + _globals['_OP']._serialized_start=31332 + _globals['_OP']._serialized_end=31369 + _globals['_CHECKMACPERMREQUEST']._serialized_start=31372 + _globals['_CHECKMACPERMREQUEST']._serialized_end=31525 + _globals['_CHECKMACPERMRESPONSE']._serialized_start=31527 + _globals['_CHECKMACPERMRESPONSE']._serialized_end=31564 + _globals['_RPCMIDDLEWAREREQUEST']._serialized_start=31567 + _globals['_RPCMIDDLEWAREREQUEST']._serialized_end=31990 + _globals['_RPCMIDDLEWAREREQUEST_METADATAPAIRSENTRY']._serialized_start=31897 + _globals['_RPCMIDDLEWAREREQUEST_METADATAPAIRSENTRY']._serialized_end=31972 + _globals['_METADATAVALUES']._serialized_start=31992 + _globals['_METADATAVALUES']._serialized_end=32024 + _globals['_STREAMAUTH']._serialized_start=32026 + _globals['_STREAMAUTH']._serialized_end=32063 + _globals['_RPCMESSAGE']._serialized_start=32065 + _globals['_RPCMESSAGE']._serialized_end=32179 + _globals['_RPCMIDDLEWARERESPONSE']._serialized_start=32182 + _globals['_RPCMIDDLEWARERESPONSE']._serialized_end=32344 + _globals['_MIDDLEWAREREGISTRATION']._serialized_start=32346 + _globals['_MIDDLEWAREREGISTRATION']._serialized_end=32456 + _globals['_INTERCEPTFEEDBACK']._serialized_start=32458 + _globals['_INTERCEPTFEEDBACK']._serialized_end=32550 + _globals['_LIGHTNING']._serialized_start=34841 + _globals['_LIGHTNING']._serialized_end=39986 # @@protoc_insertion_point(module_scope) diff --git a/lnbits/wallets/lnd_grpc_files/lightning_pb2.pyi b/lnbits/wallets/lnd_grpc_files/lightning_pb2.pyi new file mode 100644 index 00000000..e9a26609 --- /dev/null +++ b/lnbits/wallets/lnd_grpc_files/lightning_pb2.pyi @@ -0,0 +1,3173 @@ +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class OutputScriptType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SCRIPT_TYPE_PUBKEY_HASH: _ClassVar[OutputScriptType] + SCRIPT_TYPE_SCRIPT_HASH: _ClassVar[OutputScriptType] + SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH: _ClassVar[OutputScriptType] + SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH: _ClassVar[OutputScriptType] + SCRIPT_TYPE_PUBKEY: _ClassVar[OutputScriptType] + SCRIPT_TYPE_MULTISIG: _ClassVar[OutputScriptType] + SCRIPT_TYPE_NULLDATA: _ClassVar[OutputScriptType] + SCRIPT_TYPE_NON_STANDARD: _ClassVar[OutputScriptType] + SCRIPT_TYPE_WITNESS_UNKNOWN: _ClassVar[OutputScriptType] + SCRIPT_TYPE_WITNESS_V1_TAPROOT: _ClassVar[OutputScriptType] + +class CoinSelectionStrategy(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + STRATEGY_USE_GLOBAL_CONFIG: _ClassVar[CoinSelectionStrategy] + STRATEGY_LARGEST: _ClassVar[CoinSelectionStrategy] + STRATEGY_RANDOM: _ClassVar[CoinSelectionStrategy] + +class AddressType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + WITNESS_PUBKEY_HASH: _ClassVar[AddressType] + NESTED_PUBKEY_HASH: _ClassVar[AddressType] + UNUSED_WITNESS_PUBKEY_HASH: _ClassVar[AddressType] + UNUSED_NESTED_PUBKEY_HASH: _ClassVar[AddressType] + TAPROOT_PUBKEY: _ClassVar[AddressType] + UNUSED_TAPROOT_PUBKEY: _ClassVar[AddressType] + +class CommitmentType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + UNKNOWN_COMMITMENT_TYPE: _ClassVar[CommitmentType] + LEGACY: _ClassVar[CommitmentType] + STATIC_REMOTE_KEY: _ClassVar[CommitmentType] + ANCHORS: _ClassVar[CommitmentType] + SCRIPT_ENFORCED_LEASE: _ClassVar[CommitmentType] + SIMPLE_TAPROOT: _ClassVar[CommitmentType] + SIMPLE_TAPROOT_OVERLAY: _ClassVar[CommitmentType] + +class Initiator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + INITIATOR_UNKNOWN: _ClassVar[Initiator] + INITIATOR_LOCAL: _ClassVar[Initiator] + INITIATOR_REMOTE: _ClassVar[Initiator] + INITIATOR_BOTH: _ClassVar[Initiator] + +class ResolutionType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + TYPE_UNKNOWN: _ClassVar[ResolutionType] + ANCHOR: _ClassVar[ResolutionType] + INCOMING_HTLC: _ClassVar[ResolutionType] + OUTGOING_HTLC: _ClassVar[ResolutionType] + COMMIT: _ClassVar[ResolutionType] + +class ResolutionOutcome(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + OUTCOME_UNKNOWN: _ClassVar[ResolutionOutcome] + CLAIMED: _ClassVar[ResolutionOutcome] + UNCLAIMED: _ClassVar[ResolutionOutcome] + ABANDONED: _ClassVar[ResolutionOutcome] + FIRST_STAGE: _ClassVar[ResolutionOutcome] + TIMEOUT: _ClassVar[ResolutionOutcome] + +class NodeMetricType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + UNKNOWN: _ClassVar[NodeMetricType] + BETWEENNESS_CENTRALITY: _ClassVar[NodeMetricType] + +class InvoiceHTLCState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + ACCEPTED: _ClassVar[InvoiceHTLCState] + SETTLED: _ClassVar[InvoiceHTLCState] + CANCELED: _ClassVar[InvoiceHTLCState] + +class PaymentFailureReason(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + FAILURE_REASON_NONE: _ClassVar[PaymentFailureReason] + FAILURE_REASON_TIMEOUT: _ClassVar[PaymentFailureReason] + FAILURE_REASON_NO_ROUTE: _ClassVar[PaymentFailureReason] + FAILURE_REASON_ERROR: _ClassVar[PaymentFailureReason] + FAILURE_REASON_INCORRECT_PAYMENT_DETAILS: _ClassVar[PaymentFailureReason] + FAILURE_REASON_INSUFFICIENT_BALANCE: _ClassVar[PaymentFailureReason] + FAILURE_REASON_CANCELED: _ClassVar[PaymentFailureReason] + +class FeatureBit(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + DATALOSS_PROTECT_REQ: _ClassVar[FeatureBit] + DATALOSS_PROTECT_OPT: _ClassVar[FeatureBit] + INITIAL_ROUING_SYNC: _ClassVar[FeatureBit] + UPFRONT_SHUTDOWN_SCRIPT_REQ: _ClassVar[FeatureBit] + UPFRONT_SHUTDOWN_SCRIPT_OPT: _ClassVar[FeatureBit] + GOSSIP_QUERIES_REQ: _ClassVar[FeatureBit] + GOSSIP_QUERIES_OPT: _ClassVar[FeatureBit] + TLV_ONION_REQ: _ClassVar[FeatureBit] + TLV_ONION_OPT: _ClassVar[FeatureBit] + EXT_GOSSIP_QUERIES_REQ: _ClassVar[FeatureBit] + EXT_GOSSIP_QUERIES_OPT: _ClassVar[FeatureBit] + STATIC_REMOTE_KEY_REQ: _ClassVar[FeatureBit] + STATIC_REMOTE_KEY_OPT: _ClassVar[FeatureBit] + PAYMENT_ADDR_REQ: _ClassVar[FeatureBit] + PAYMENT_ADDR_OPT: _ClassVar[FeatureBit] + MPP_REQ: _ClassVar[FeatureBit] + MPP_OPT: _ClassVar[FeatureBit] + WUMBO_CHANNELS_REQ: _ClassVar[FeatureBit] + WUMBO_CHANNELS_OPT: _ClassVar[FeatureBit] + ANCHORS_REQ: _ClassVar[FeatureBit] + ANCHORS_OPT: _ClassVar[FeatureBit] + ANCHORS_ZERO_FEE_HTLC_REQ: _ClassVar[FeatureBit] + ANCHORS_ZERO_FEE_HTLC_OPT: _ClassVar[FeatureBit] + ROUTE_BLINDING_REQUIRED: _ClassVar[FeatureBit] + ROUTE_BLINDING_OPTIONAL: _ClassVar[FeatureBit] + AMP_REQ: _ClassVar[FeatureBit] + AMP_OPT: _ClassVar[FeatureBit] + +class UpdateFailure(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + UPDATE_FAILURE_UNKNOWN: _ClassVar[UpdateFailure] + UPDATE_FAILURE_PENDING: _ClassVar[UpdateFailure] + UPDATE_FAILURE_NOT_FOUND: _ClassVar[UpdateFailure] + UPDATE_FAILURE_INTERNAL_ERR: _ClassVar[UpdateFailure] + UPDATE_FAILURE_INVALID_PARAMETER: _ClassVar[UpdateFailure] +SCRIPT_TYPE_PUBKEY_HASH: OutputScriptType +SCRIPT_TYPE_SCRIPT_HASH: OutputScriptType +SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH: OutputScriptType +SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH: OutputScriptType +SCRIPT_TYPE_PUBKEY: OutputScriptType +SCRIPT_TYPE_MULTISIG: OutputScriptType +SCRIPT_TYPE_NULLDATA: OutputScriptType +SCRIPT_TYPE_NON_STANDARD: OutputScriptType +SCRIPT_TYPE_WITNESS_UNKNOWN: OutputScriptType +SCRIPT_TYPE_WITNESS_V1_TAPROOT: OutputScriptType +STRATEGY_USE_GLOBAL_CONFIG: CoinSelectionStrategy +STRATEGY_LARGEST: CoinSelectionStrategy +STRATEGY_RANDOM: CoinSelectionStrategy +WITNESS_PUBKEY_HASH: AddressType +NESTED_PUBKEY_HASH: AddressType +UNUSED_WITNESS_PUBKEY_HASH: AddressType +UNUSED_NESTED_PUBKEY_HASH: AddressType +TAPROOT_PUBKEY: AddressType +UNUSED_TAPROOT_PUBKEY: AddressType +UNKNOWN_COMMITMENT_TYPE: CommitmentType +LEGACY: CommitmentType +STATIC_REMOTE_KEY: CommitmentType +ANCHORS: CommitmentType +SCRIPT_ENFORCED_LEASE: CommitmentType +SIMPLE_TAPROOT: CommitmentType +SIMPLE_TAPROOT_OVERLAY: CommitmentType +INITIATOR_UNKNOWN: Initiator +INITIATOR_LOCAL: Initiator +INITIATOR_REMOTE: Initiator +INITIATOR_BOTH: Initiator +TYPE_UNKNOWN: ResolutionType +ANCHOR: ResolutionType +INCOMING_HTLC: ResolutionType +OUTGOING_HTLC: ResolutionType +COMMIT: ResolutionType +OUTCOME_UNKNOWN: ResolutionOutcome +CLAIMED: ResolutionOutcome +UNCLAIMED: ResolutionOutcome +ABANDONED: ResolutionOutcome +FIRST_STAGE: ResolutionOutcome +TIMEOUT: ResolutionOutcome +UNKNOWN: NodeMetricType +BETWEENNESS_CENTRALITY: NodeMetricType +ACCEPTED: InvoiceHTLCState +SETTLED: InvoiceHTLCState +CANCELED: InvoiceHTLCState +FAILURE_REASON_NONE: PaymentFailureReason +FAILURE_REASON_TIMEOUT: PaymentFailureReason +FAILURE_REASON_NO_ROUTE: PaymentFailureReason +FAILURE_REASON_ERROR: PaymentFailureReason +FAILURE_REASON_INCORRECT_PAYMENT_DETAILS: PaymentFailureReason +FAILURE_REASON_INSUFFICIENT_BALANCE: PaymentFailureReason +FAILURE_REASON_CANCELED: PaymentFailureReason +DATALOSS_PROTECT_REQ: FeatureBit +DATALOSS_PROTECT_OPT: FeatureBit +INITIAL_ROUING_SYNC: FeatureBit +UPFRONT_SHUTDOWN_SCRIPT_REQ: FeatureBit +UPFRONT_SHUTDOWN_SCRIPT_OPT: FeatureBit +GOSSIP_QUERIES_REQ: FeatureBit +GOSSIP_QUERIES_OPT: FeatureBit +TLV_ONION_REQ: FeatureBit +TLV_ONION_OPT: FeatureBit +EXT_GOSSIP_QUERIES_REQ: FeatureBit +EXT_GOSSIP_QUERIES_OPT: FeatureBit +STATIC_REMOTE_KEY_REQ: FeatureBit +STATIC_REMOTE_KEY_OPT: FeatureBit +PAYMENT_ADDR_REQ: FeatureBit +PAYMENT_ADDR_OPT: FeatureBit +MPP_REQ: FeatureBit +MPP_OPT: FeatureBit +WUMBO_CHANNELS_REQ: FeatureBit +WUMBO_CHANNELS_OPT: FeatureBit +ANCHORS_REQ: FeatureBit +ANCHORS_OPT: FeatureBit +ANCHORS_ZERO_FEE_HTLC_REQ: FeatureBit +ANCHORS_ZERO_FEE_HTLC_OPT: FeatureBit +ROUTE_BLINDING_REQUIRED: FeatureBit +ROUTE_BLINDING_OPTIONAL: FeatureBit +AMP_REQ: FeatureBit +AMP_OPT: FeatureBit +UPDATE_FAILURE_UNKNOWN: UpdateFailure +UPDATE_FAILURE_PENDING: UpdateFailure +UPDATE_FAILURE_NOT_FOUND: UpdateFailure +UPDATE_FAILURE_INTERNAL_ERR: UpdateFailure +UPDATE_FAILURE_INVALID_PARAMETER: UpdateFailure + +class LookupHtlcResolutionRequest(_message.Message): + __slots__ = ("chan_id", "htlc_index") + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + HTLC_INDEX_FIELD_NUMBER: _ClassVar[int] + chan_id: int + htlc_index: int + def __init__(self, chan_id: _Optional[int] = ..., htlc_index: _Optional[int] = ...) -> None: ... + +class LookupHtlcResolutionResponse(_message.Message): + __slots__ = ("settled", "offchain") + SETTLED_FIELD_NUMBER: _ClassVar[int] + OFFCHAIN_FIELD_NUMBER: _ClassVar[int] + settled: bool + offchain: bool + def __init__(self, settled: bool = ..., offchain: bool = ...) -> None: ... + +class SubscribeCustomMessagesRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class CustomMessage(_message.Message): + __slots__ = ("peer", "type", "data") + PEER_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + peer: bytes + type: int + data: bytes + def __init__(self, peer: _Optional[bytes] = ..., type: _Optional[int] = ..., data: _Optional[bytes] = ...) -> None: ... + +class SendCustomMessageRequest(_message.Message): + __slots__ = ("peer", "type", "data") + PEER_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + peer: bytes + type: int + data: bytes + def __init__(self, peer: _Optional[bytes] = ..., type: _Optional[int] = ..., data: _Optional[bytes] = ...) -> None: ... + +class SendCustomMessageResponse(_message.Message): + __slots__ = ("status",) + STATUS_FIELD_NUMBER: _ClassVar[int] + status: str + def __init__(self, status: _Optional[str] = ...) -> None: ... + +class Utxo(_message.Message): + __slots__ = ("address_type", "address", "amount_sat", "pk_script", "outpoint", "confirmations") + ADDRESS_TYPE_FIELD_NUMBER: _ClassVar[int] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + AMOUNT_SAT_FIELD_NUMBER: _ClassVar[int] + PK_SCRIPT_FIELD_NUMBER: _ClassVar[int] + OUTPOINT_FIELD_NUMBER: _ClassVar[int] + CONFIRMATIONS_FIELD_NUMBER: _ClassVar[int] + address_type: AddressType + address: str + amount_sat: int + pk_script: str + outpoint: OutPoint + confirmations: int + def __init__(self, address_type: _Optional[_Union[AddressType, str]] = ..., address: _Optional[str] = ..., amount_sat: _Optional[int] = ..., pk_script: _Optional[str] = ..., outpoint: _Optional[_Union[OutPoint, _Mapping]] = ..., confirmations: _Optional[int] = ...) -> None: ... + +class OutputDetail(_message.Message): + __slots__ = ("output_type", "address", "pk_script", "output_index", "amount", "is_our_address") + OUTPUT_TYPE_FIELD_NUMBER: _ClassVar[int] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + PK_SCRIPT_FIELD_NUMBER: _ClassVar[int] + OUTPUT_INDEX_FIELD_NUMBER: _ClassVar[int] + AMOUNT_FIELD_NUMBER: _ClassVar[int] + IS_OUR_ADDRESS_FIELD_NUMBER: _ClassVar[int] + output_type: OutputScriptType + address: str + pk_script: str + output_index: int + amount: int + is_our_address: bool + def __init__(self, output_type: _Optional[_Union[OutputScriptType, str]] = ..., address: _Optional[str] = ..., pk_script: _Optional[str] = ..., output_index: _Optional[int] = ..., amount: _Optional[int] = ..., is_our_address: bool = ...) -> None: ... + +class Transaction(_message.Message): + __slots__ = ("tx_hash", "amount", "num_confirmations", "block_hash", "block_height", "time_stamp", "total_fees", "dest_addresses", "output_details", "raw_tx_hex", "label", "previous_outpoints") + TX_HASH_FIELD_NUMBER: _ClassVar[int] + AMOUNT_FIELD_NUMBER: _ClassVar[int] + NUM_CONFIRMATIONS_FIELD_NUMBER: _ClassVar[int] + BLOCK_HASH_FIELD_NUMBER: _ClassVar[int] + BLOCK_HEIGHT_FIELD_NUMBER: _ClassVar[int] + TIME_STAMP_FIELD_NUMBER: _ClassVar[int] + TOTAL_FEES_FIELD_NUMBER: _ClassVar[int] + DEST_ADDRESSES_FIELD_NUMBER: _ClassVar[int] + OUTPUT_DETAILS_FIELD_NUMBER: _ClassVar[int] + RAW_TX_HEX_FIELD_NUMBER: _ClassVar[int] + LABEL_FIELD_NUMBER: _ClassVar[int] + PREVIOUS_OUTPOINTS_FIELD_NUMBER: _ClassVar[int] + tx_hash: str + amount: int + num_confirmations: int + block_hash: str + block_height: int + time_stamp: int + total_fees: int + dest_addresses: _containers.RepeatedScalarFieldContainer[str] + output_details: _containers.RepeatedCompositeFieldContainer[OutputDetail] + raw_tx_hex: str + label: str + previous_outpoints: _containers.RepeatedCompositeFieldContainer[PreviousOutPoint] + def __init__(self, tx_hash: _Optional[str] = ..., amount: _Optional[int] = ..., num_confirmations: _Optional[int] = ..., block_hash: _Optional[str] = ..., block_height: _Optional[int] = ..., time_stamp: _Optional[int] = ..., total_fees: _Optional[int] = ..., dest_addresses: _Optional[_Iterable[str]] = ..., output_details: _Optional[_Iterable[_Union[OutputDetail, _Mapping]]] = ..., raw_tx_hex: _Optional[str] = ..., label: _Optional[str] = ..., previous_outpoints: _Optional[_Iterable[_Union[PreviousOutPoint, _Mapping]]] = ...) -> None: ... + +class GetTransactionsRequest(_message.Message): + __slots__ = ("start_height", "end_height", "account", "index_offset", "max_transactions") + START_HEIGHT_FIELD_NUMBER: _ClassVar[int] + END_HEIGHT_FIELD_NUMBER: _ClassVar[int] + ACCOUNT_FIELD_NUMBER: _ClassVar[int] + INDEX_OFFSET_FIELD_NUMBER: _ClassVar[int] + MAX_TRANSACTIONS_FIELD_NUMBER: _ClassVar[int] + start_height: int + end_height: int + account: str + index_offset: int + max_transactions: int + def __init__(self, start_height: _Optional[int] = ..., end_height: _Optional[int] = ..., account: _Optional[str] = ..., index_offset: _Optional[int] = ..., max_transactions: _Optional[int] = ...) -> None: ... + +class TransactionDetails(_message.Message): + __slots__ = ("transactions", "last_index", "first_index") + TRANSACTIONS_FIELD_NUMBER: _ClassVar[int] + LAST_INDEX_FIELD_NUMBER: _ClassVar[int] + FIRST_INDEX_FIELD_NUMBER: _ClassVar[int] + transactions: _containers.RepeatedCompositeFieldContainer[Transaction] + last_index: int + first_index: int + def __init__(self, transactions: _Optional[_Iterable[_Union[Transaction, _Mapping]]] = ..., last_index: _Optional[int] = ..., first_index: _Optional[int] = ...) -> None: ... + +class FeeLimit(_message.Message): + __slots__ = ("fixed", "fixed_msat", "percent") + FIXED_FIELD_NUMBER: _ClassVar[int] + FIXED_MSAT_FIELD_NUMBER: _ClassVar[int] + PERCENT_FIELD_NUMBER: _ClassVar[int] + fixed: int + fixed_msat: int + percent: int + def __init__(self, fixed: _Optional[int] = ..., fixed_msat: _Optional[int] = ..., percent: _Optional[int] = ...) -> None: ... + +class SendRequest(_message.Message): + __slots__ = ("dest", "dest_string", "amt", "amt_msat", "payment_hash", "payment_hash_string", "payment_request", "final_cltv_delta", "fee_limit", "outgoing_chan_id", "last_hop_pubkey", "cltv_limit", "dest_custom_records", "allow_self_payment", "dest_features", "payment_addr") + class DestCustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + DEST_FIELD_NUMBER: _ClassVar[int] + DEST_STRING_FIELD_NUMBER: _ClassVar[int] + AMT_FIELD_NUMBER: _ClassVar[int] + AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + PAYMENT_HASH_STRING_FIELD_NUMBER: _ClassVar[int] + PAYMENT_REQUEST_FIELD_NUMBER: _ClassVar[int] + FINAL_CLTV_DELTA_FIELD_NUMBER: _ClassVar[int] + FEE_LIMIT_FIELD_NUMBER: _ClassVar[int] + OUTGOING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + LAST_HOP_PUBKEY_FIELD_NUMBER: _ClassVar[int] + CLTV_LIMIT_FIELD_NUMBER: _ClassVar[int] + DEST_CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + ALLOW_SELF_PAYMENT_FIELD_NUMBER: _ClassVar[int] + DEST_FEATURES_FIELD_NUMBER: _ClassVar[int] + PAYMENT_ADDR_FIELD_NUMBER: _ClassVar[int] + dest: bytes + dest_string: str + amt: int + amt_msat: int + payment_hash: bytes + payment_hash_string: str + payment_request: str + final_cltv_delta: int + fee_limit: FeeLimit + outgoing_chan_id: int + last_hop_pubkey: bytes + cltv_limit: int + dest_custom_records: _containers.ScalarMap[int, bytes] + allow_self_payment: bool + dest_features: _containers.RepeatedScalarFieldContainer[FeatureBit] + payment_addr: bytes + def __init__(self, dest: _Optional[bytes] = ..., dest_string: _Optional[str] = ..., amt: _Optional[int] = ..., amt_msat: _Optional[int] = ..., payment_hash: _Optional[bytes] = ..., payment_hash_string: _Optional[str] = ..., payment_request: _Optional[str] = ..., final_cltv_delta: _Optional[int] = ..., fee_limit: _Optional[_Union[FeeLimit, _Mapping]] = ..., outgoing_chan_id: _Optional[int] = ..., last_hop_pubkey: _Optional[bytes] = ..., cltv_limit: _Optional[int] = ..., dest_custom_records: _Optional[_Mapping[int, bytes]] = ..., allow_self_payment: bool = ..., dest_features: _Optional[_Iterable[_Union[FeatureBit, str]]] = ..., payment_addr: _Optional[bytes] = ...) -> None: ... + +class SendResponse(_message.Message): + __slots__ = ("payment_error", "payment_preimage", "payment_route", "payment_hash") + PAYMENT_ERROR_FIELD_NUMBER: _ClassVar[int] + PAYMENT_PREIMAGE_FIELD_NUMBER: _ClassVar[int] + PAYMENT_ROUTE_FIELD_NUMBER: _ClassVar[int] + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + payment_error: str + payment_preimage: bytes + payment_route: Route + payment_hash: bytes + def __init__(self, payment_error: _Optional[str] = ..., payment_preimage: _Optional[bytes] = ..., payment_route: _Optional[_Union[Route, _Mapping]] = ..., payment_hash: _Optional[bytes] = ...) -> None: ... + +class SendToRouteRequest(_message.Message): + __slots__ = ("payment_hash", "payment_hash_string", "route") + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + PAYMENT_HASH_STRING_FIELD_NUMBER: _ClassVar[int] + ROUTE_FIELD_NUMBER: _ClassVar[int] + payment_hash: bytes + payment_hash_string: str + route: Route + def __init__(self, payment_hash: _Optional[bytes] = ..., payment_hash_string: _Optional[str] = ..., route: _Optional[_Union[Route, _Mapping]] = ...) -> None: ... + +class ChannelAcceptRequest(_message.Message): + __slots__ = ("node_pubkey", "chain_hash", "pending_chan_id", "funding_amt", "push_amt", "dust_limit", "max_value_in_flight", "channel_reserve", "min_htlc", "fee_per_kw", "csv_delay", "max_accepted_htlcs", "channel_flags", "commitment_type", "wants_zero_conf", "wants_scid_alias") + NODE_PUBKEY_FIELD_NUMBER: _ClassVar[int] + CHAIN_HASH_FIELD_NUMBER: _ClassVar[int] + PENDING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + FUNDING_AMT_FIELD_NUMBER: _ClassVar[int] + PUSH_AMT_FIELD_NUMBER: _ClassVar[int] + DUST_LIMIT_FIELD_NUMBER: _ClassVar[int] + MAX_VALUE_IN_FLIGHT_FIELD_NUMBER: _ClassVar[int] + CHANNEL_RESERVE_FIELD_NUMBER: _ClassVar[int] + MIN_HTLC_FIELD_NUMBER: _ClassVar[int] + FEE_PER_KW_FIELD_NUMBER: _ClassVar[int] + CSV_DELAY_FIELD_NUMBER: _ClassVar[int] + MAX_ACCEPTED_HTLCS_FIELD_NUMBER: _ClassVar[int] + CHANNEL_FLAGS_FIELD_NUMBER: _ClassVar[int] + COMMITMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + WANTS_ZERO_CONF_FIELD_NUMBER: _ClassVar[int] + WANTS_SCID_ALIAS_FIELD_NUMBER: _ClassVar[int] + node_pubkey: bytes + chain_hash: bytes + pending_chan_id: bytes + funding_amt: int + push_amt: int + dust_limit: int + max_value_in_flight: int + channel_reserve: int + min_htlc: int + fee_per_kw: int + csv_delay: int + max_accepted_htlcs: int + channel_flags: int + commitment_type: CommitmentType + wants_zero_conf: bool + wants_scid_alias: bool + def __init__(self, node_pubkey: _Optional[bytes] = ..., chain_hash: _Optional[bytes] = ..., pending_chan_id: _Optional[bytes] = ..., funding_amt: _Optional[int] = ..., push_amt: _Optional[int] = ..., dust_limit: _Optional[int] = ..., max_value_in_flight: _Optional[int] = ..., channel_reserve: _Optional[int] = ..., min_htlc: _Optional[int] = ..., fee_per_kw: _Optional[int] = ..., csv_delay: _Optional[int] = ..., max_accepted_htlcs: _Optional[int] = ..., channel_flags: _Optional[int] = ..., commitment_type: _Optional[_Union[CommitmentType, str]] = ..., wants_zero_conf: bool = ..., wants_scid_alias: bool = ...) -> None: ... + +class ChannelAcceptResponse(_message.Message): + __slots__ = ("accept", "pending_chan_id", "error", "upfront_shutdown", "csv_delay", "reserve_sat", "in_flight_max_msat", "max_htlc_count", "min_htlc_in", "min_accept_depth", "zero_conf") + ACCEPT_FIELD_NUMBER: _ClassVar[int] + PENDING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + UPFRONT_SHUTDOWN_FIELD_NUMBER: _ClassVar[int] + CSV_DELAY_FIELD_NUMBER: _ClassVar[int] + RESERVE_SAT_FIELD_NUMBER: _ClassVar[int] + IN_FLIGHT_MAX_MSAT_FIELD_NUMBER: _ClassVar[int] + MAX_HTLC_COUNT_FIELD_NUMBER: _ClassVar[int] + MIN_HTLC_IN_FIELD_NUMBER: _ClassVar[int] + MIN_ACCEPT_DEPTH_FIELD_NUMBER: _ClassVar[int] + ZERO_CONF_FIELD_NUMBER: _ClassVar[int] + accept: bool + pending_chan_id: bytes + error: str + upfront_shutdown: str + csv_delay: int + reserve_sat: int + in_flight_max_msat: int + max_htlc_count: int + min_htlc_in: int + min_accept_depth: int + zero_conf: bool + def __init__(self, accept: bool = ..., pending_chan_id: _Optional[bytes] = ..., error: _Optional[str] = ..., upfront_shutdown: _Optional[str] = ..., csv_delay: _Optional[int] = ..., reserve_sat: _Optional[int] = ..., in_flight_max_msat: _Optional[int] = ..., max_htlc_count: _Optional[int] = ..., min_htlc_in: _Optional[int] = ..., min_accept_depth: _Optional[int] = ..., zero_conf: bool = ...) -> None: ... + +class ChannelPoint(_message.Message): + __slots__ = ("funding_txid_bytes", "funding_txid_str", "output_index") + FUNDING_TXID_BYTES_FIELD_NUMBER: _ClassVar[int] + FUNDING_TXID_STR_FIELD_NUMBER: _ClassVar[int] + OUTPUT_INDEX_FIELD_NUMBER: _ClassVar[int] + funding_txid_bytes: bytes + funding_txid_str: str + output_index: int + def __init__(self, funding_txid_bytes: _Optional[bytes] = ..., funding_txid_str: _Optional[str] = ..., output_index: _Optional[int] = ...) -> None: ... + +class OutPoint(_message.Message): + __slots__ = ("txid_bytes", "txid_str", "output_index") + TXID_BYTES_FIELD_NUMBER: _ClassVar[int] + TXID_STR_FIELD_NUMBER: _ClassVar[int] + OUTPUT_INDEX_FIELD_NUMBER: _ClassVar[int] + txid_bytes: bytes + txid_str: str + output_index: int + def __init__(self, txid_bytes: _Optional[bytes] = ..., txid_str: _Optional[str] = ..., output_index: _Optional[int] = ...) -> None: ... + +class PreviousOutPoint(_message.Message): + __slots__ = ("outpoint", "is_our_output") + OUTPOINT_FIELD_NUMBER: _ClassVar[int] + IS_OUR_OUTPUT_FIELD_NUMBER: _ClassVar[int] + outpoint: str + is_our_output: bool + def __init__(self, outpoint: _Optional[str] = ..., is_our_output: bool = ...) -> None: ... + +class LightningAddress(_message.Message): + __slots__ = ("pubkey", "host") + PUBKEY_FIELD_NUMBER: _ClassVar[int] + HOST_FIELD_NUMBER: _ClassVar[int] + pubkey: str + host: str + def __init__(self, pubkey: _Optional[str] = ..., host: _Optional[str] = ...) -> None: ... + +class EstimateFeeRequest(_message.Message): + __slots__ = ("AddrToAmount", "target_conf", "min_confs", "spend_unconfirmed", "coin_selection_strategy") + class AddrToAmountEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: int + def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ... + ADDRTOAMOUNT_FIELD_NUMBER: _ClassVar[int] + TARGET_CONF_FIELD_NUMBER: _ClassVar[int] + MIN_CONFS_FIELD_NUMBER: _ClassVar[int] + SPEND_UNCONFIRMED_FIELD_NUMBER: _ClassVar[int] + COIN_SELECTION_STRATEGY_FIELD_NUMBER: _ClassVar[int] + AddrToAmount: _containers.ScalarMap[str, int] + target_conf: int + min_confs: int + spend_unconfirmed: bool + coin_selection_strategy: CoinSelectionStrategy + def __init__(self, AddrToAmount: _Optional[_Mapping[str, int]] = ..., target_conf: _Optional[int] = ..., min_confs: _Optional[int] = ..., spend_unconfirmed: bool = ..., coin_selection_strategy: _Optional[_Union[CoinSelectionStrategy, str]] = ...) -> None: ... + +class EstimateFeeResponse(_message.Message): + __slots__ = ("fee_sat", "feerate_sat_per_byte", "sat_per_vbyte") + FEE_SAT_FIELD_NUMBER: _ClassVar[int] + FEERATE_SAT_PER_BYTE_FIELD_NUMBER: _ClassVar[int] + SAT_PER_VBYTE_FIELD_NUMBER: _ClassVar[int] + fee_sat: int + feerate_sat_per_byte: int + sat_per_vbyte: int + def __init__(self, fee_sat: _Optional[int] = ..., feerate_sat_per_byte: _Optional[int] = ..., sat_per_vbyte: _Optional[int] = ...) -> None: ... + +class SendManyRequest(_message.Message): + __slots__ = ("AddrToAmount", "target_conf", "sat_per_vbyte", "sat_per_byte", "label", "min_confs", "spend_unconfirmed", "coin_selection_strategy") + class AddrToAmountEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: int + def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ... + ADDRTOAMOUNT_FIELD_NUMBER: _ClassVar[int] + TARGET_CONF_FIELD_NUMBER: _ClassVar[int] + SAT_PER_VBYTE_FIELD_NUMBER: _ClassVar[int] + SAT_PER_BYTE_FIELD_NUMBER: _ClassVar[int] + LABEL_FIELD_NUMBER: _ClassVar[int] + MIN_CONFS_FIELD_NUMBER: _ClassVar[int] + SPEND_UNCONFIRMED_FIELD_NUMBER: _ClassVar[int] + COIN_SELECTION_STRATEGY_FIELD_NUMBER: _ClassVar[int] + AddrToAmount: _containers.ScalarMap[str, int] + target_conf: int + sat_per_vbyte: int + sat_per_byte: int + label: str + min_confs: int + spend_unconfirmed: bool + coin_selection_strategy: CoinSelectionStrategy + def __init__(self, AddrToAmount: _Optional[_Mapping[str, int]] = ..., target_conf: _Optional[int] = ..., sat_per_vbyte: _Optional[int] = ..., sat_per_byte: _Optional[int] = ..., label: _Optional[str] = ..., min_confs: _Optional[int] = ..., spend_unconfirmed: bool = ..., coin_selection_strategy: _Optional[_Union[CoinSelectionStrategy, str]] = ...) -> None: ... + +class SendManyResponse(_message.Message): + __slots__ = ("txid",) + TXID_FIELD_NUMBER: _ClassVar[int] + txid: str + def __init__(self, txid: _Optional[str] = ...) -> None: ... + +class SendCoinsRequest(_message.Message): + __slots__ = ("addr", "amount", "target_conf", "sat_per_vbyte", "sat_per_byte", "send_all", "label", "min_confs", "spend_unconfirmed", "coin_selection_strategy", "outpoints") + ADDR_FIELD_NUMBER: _ClassVar[int] + AMOUNT_FIELD_NUMBER: _ClassVar[int] + TARGET_CONF_FIELD_NUMBER: _ClassVar[int] + SAT_PER_VBYTE_FIELD_NUMBER: _ClassVar[int] + SAT_PER_BYTE_FIELD_NUMBER: _ClassVar[int] + SEND_ALL_FIELD_NUMBER: _ClassVar[int] + LABEL_FIELD_NUMBER: _ClassVar[int] + MIN_CONFS_FIELD_NUMBER: _ClassVar[int] + SPEND_UNCONFIRMED_FIELD_NUMBER: _ClassVar[int] + COIN_SELECTION_STRATEGY_FIELD_NUMBER: _ClassVar[int] + OUTPOINTS_FIELD_NUMBER: _ClassVar[int] + addr: str + amount: int + target_conf: int + sat_per_vbyte: int + sat_per_byte: int + send_all: bool + label: str + min_confs: int + spend_unconfirmed: bool + coin_selection_strategy: CoinSelectionStrategy + outpoints: _containers.RepeatedCompositeFieldContainer[OutPoint] + def __init__(self, addr: _Optional[str] = ..., amount: _Optional[int] = ..., target_conf: _Optional[int] = ..., sat_per_vbyte: _Optional[int] = ..., sat_per_byte: _Optional[int] = ..., send_all: bool = ..., label: _Optional[str] = ..., min_confs: _Optional[int] = ..., spend_unconfirmed: bool = ..., coin_selection_strategy: _Optional[_Union[CoinSelectionStrategy, str]] = ..., outpoints: _Optional[_Iterable[_Union[OutPoint, _Mapping]]] = ...) -> None: ... + +class SendCoinsResponse(_message.Message): + __slots__ = ("txid",) + TXID_FIELD_NUMBER: _ClassVar[int] + txid: str + def __init__(self, txid: _Optional[str] = ...) -> None: ... + +class ListUnspentRequest(_message.Message): + __slots__ = ("min_confs", "max_confs", "account") + MIN_CONFS_FIELD_NUMBER: _ClassVar[int] + MAX_CONFS_FIELD_NUMBER: _ClassVar[int] + ACCOUNT_FIELD_NUMBER: _ClassVar[int] + min_confs: int + max_confs: int + account: str + def __init__(self, min_confs: _Optional[int] = ..., max_confs: _Optional[int] = ..., account: _Optional[str] = ...) -> None: ... + +class ListUnspentResponse(_message.Message): + __slots__ = ("utxos",) + UTXOS_FIELD_NUMBER: _ClassVar[int] + utxos: _containers.RepeatedCompositeFieldContainer[Utxo] + def __init__(self, utxos: _Optional[_Iterable[_Union[Utxo, _Mapping]]] = ...) -> None: ... + +class NewAddressRequest(_message.Message): + __slots__ = ("type", "account") + TYPE_FIELD_NUMBER: _ClassVar[int] + ACCOUNT_FIELD_NUMBER: _ClassVar[int] + type: AddressType + account: str + def __init__(self, type: _Optional[_Union[AddressType, str]] = ..., account: _Optional[str] = ...) -> None: ... + +class NewAddressResponse(_message.Message): + __slots__ = ("address",) + ADDRESS_FIELD_NUMBER: _ClassVar[int] + address: str + def __init__(self, address: _Optional[str] = ...) -> None: ... + +class SignMessageRequest(_message.Message): + __slots__ = ("msg", "single_hash") + MSG_FIELD_NUMBER: _ClassVar[int] + SINGLE_HASH_FIELD_NUMBER: _ClassVar[int] + msg: bytes + single_hash: bool + def __init__(self, msg: _Optional[bytes] = ..., single_hash: bool = ...) -> None: ... + +class SignMessageResponse(_message.Message): + __slots__ = ("signature",) + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + signature: str + def __init__(self, signature: _Optional[str] = ...) -> None: ... + +class VerifyMessageRequest(_message.Message): + __slots__ = ("msg", "signature") + MSG_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + msg: bytes + signature: str + def __init__(self, msg: _Optional[bytes] = ..., signature: _Optional[str] = ...) -> None: ... + +class VerifyMessageResponse(_message.Message): + __slots__ = ("valid", "pubkey") + VALID_FIELD_NUMBER: _ClassVar[int] + PUBKEY_FIELD_NUMBER: _ClassVar[int] + valid: bool + pubkey: str + def __init__(self, valid: bool = ..., pubkey: _Optional[str] = ...) -> None: ... + +class ConnectPeerRequest(_message.Message): + __slots__ = ("addr", "perm", "timeout") + ADDR_FIELD_NUMBER: _ClassVar[int] + PERM_FIELD_NUMBER: _ClassVar[int] + TIMEOUT_FIELD_NUMBER: _ClassVar[int] + addr: LightningAddress + perm: bool + timeout: int + def __init__(self, addr: _Optional[_Union[LightningAddress, _Mapping]] = ..., perm: bool = ..., timeout: _Optional[int] = ...) -> None: ... + +class ConnectPeerResponse(_message.Message): + __slots__ = ("status",) + STATUS_FIELD_NUMBER: _ClassVar[int] + status: str + def __init__(self, status: _Optional[str] = ...) -> None: ... + +class DisconnectPeerRequest(_message.Message): + __slots__ = ("pub_key",) + PUB_KEY_FIELD_NUMBER: _ClassVar[int] + pub_key: str + def __init__(self, pub_key: _Optional[str] = ...) -> None: ... + +class DisconnectPeerResponse(_message.Message): + __slots__ = ("status",) + STATUS_FIELD_NUMBER: _ClassVar[int] + status: str + def __init__(self, status: _Optional[str] = ...) -> None: ... + +class HTLC(_message.Message): + __slots__ = ("incoming", "amount", "hash_lock", "expiration_height", "htlc_index", "forwarding_channel", "forwarding_htlc_index", "locked_in") + INCOMING_FIELD_NUMBER: _ClassVar[int] + AMOUNT_FIELD_NUMBER: _ClassVar[int] + HASH_LOCK_FIELD_NUMBER: _ClassVar[int] + EXPIRATION_HEIGHT_FIELD_NUMBER: _ClassVar[int] + HTLC_INDEX_FIELD_NUMBER: _ClassVar[int] + FORWARDING_CHANNEL_FIELD_NUMBER: _ClassVar[int] + FORWARDING_HTLC_INDEX_FIELD_NUMBER: _ClassVar[int] + LOCKED_IN_FIELD_NUMBER: _ClassVar[int] + incoming: bool + amount: int + hash_lock: bytes + expiration_height: int + htlc_index: int + forwarding_channel: int + forwarding_htlc_index: int + locked_in: bool + def __init__(self, incoming: bool = ..., amount: _Optional[int] = ..., hash_lock: _Optional[bytes] = ..., expiration_height: _Optional[int] = ..., htlc_index: _Optional[int] = ..., forwarding_channel: _Optional[int] = ..., forwarding_htlc_index: _Optional[int] = ..., locked_in: bool = ...) -> None: ... + +class ChannelConstraints(_message.Message): + __slots__ = ("csv_delay", "chan_reserve_sat", "dust_limit_sat", "max_pending_amt_msat", "min_htlc_msat", "max_accepted_htlcs") + CSV_DELAY_FIELD_NUMBER: _ClassVar[int] + CHAN_RESERVE_SAT_FIELD_NUMBER: _ClassVar[int] + DUST_LIMIT_SAT_FIELD_NUMBER: _ClassVar[int] + MAX_PENDING_AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + MIN_HTLC_MSAT_FIELD_NUMBER: _ClassVar[int] + MAX_ACCEPTED_HTLCS_FIELD_NUMBER: _ClassVar[int] + csv_delay: int + chan_reserve_sat: int + dust_limit_sat: int + max_pending_amt_msat: int + min_htlc_msat: int + max_accepted_htlcs: int + def __init__(self, csv_delay: _Optional[int] = ..., chan_reserve_sat: _Optional[int] = ..., dust_limit_sat: _Optional[int] = ..., max_pending_amt_msat: _Optional[int] = ..., min_htlc_msat: _Optional[int] = ..., max_accepted_htlcs: _Optional[int] = ...) -> None: ... + +class Channel(_message.Message): + __slots__ = ("active", "remote_pubkey", "channel_point", "chan_id", "capacity", "local_balance", "remote_balance", "commit_fee", "commit_weight", "fee_per_kw", "unsettled_balance", "total_satoshis_sent", "total_satoshis_received", "num_updates", "pending_htlcs", "csv_delay", "private", "initiator", "chan_status_flags", "local_chan_reserve_sat", "remote_chan_reserve_sat", "static_remote_key", "commitment_type", "lifetime", "uptime", "close_address", "push_amount_sat", "thaw_height", "local_constraints", "remote_constraints", "alias_scids", "zero_conf", "zero_conf_confirmed_scid", "peer_alias", "peer_scid_alias", "memo", "custom_channel_data") + ACTIVE_FIELD_NUMBER: _ClassVar[int] + REMOTE_PUBKEY_FIELD_NUMBER: _ClassVar[int] + CHANNEL_POINT_FIELD_NUMBER: _ClassVar[int] + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + CAPACITY_FIELD_NUMBER: _ClassVar[int] + LOCAL_BALANCE_FIELD_NUMBER: _ClassVar[int] + REMOTE_BALANCE_FIELD_NUMBER: _ClassVar[int] + COMMIT_FEE_FIELD_NUMBER: _ClassVar[int] + COMMIT_WEIGHT_FIELD_NUMBER: _ClassVar[int] + FEE_PER_KW_FIELD_NUMBER: _ClassVar[int] + UNSETTLED_BALANCE_FIELD_NUMBER: _ClassVar[int] + TOTAL_SATOSHIS_SENT_FIELD_NUMBER: _ClassVar[int] + TOTAL_SATOSHIS_RECEIVED_FIELD_NUMBER: _ClassVar[int] + NUM_UPDATES_FIELD_NUMBER: _ClassVar[int] + PENDING_HTLCS_FIELD_NUMBER: _ClassVar[int] + CSV_DELAY_FIELD_NUMBER: _ClassVar[int] + PRIVATE_FIELD_NUMBER: _ClassVar[int] + INITIATOR_FIELD_NUMBER: _ClassVar[int] + CHAN_STATUS_FLAGS_FIELD_NUMBER: _ClassVar[int] + LOCAL_CHAN_RESERVE_SAT_FIELD_NUMBER: _ClassVar[int] + REMOTE_CHAN_RESERVE_SAT_FIELD_NUMBER: _ClassVar[int] + STATIC_REMOTE_KEY_FIELD_NUMBER: _ClassVar[int] + COMMITMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + LIFETIME_FIELD_NUMBER: _ClassVar[int] + UPTIME_FIELD_NUMBER: _ClassVar[int] + CLOSE_ADDRESS_FIELD_NUMBER: _ClassVar[int] + PUSH_AMOUNT_SAT_FIELD_NUMBER: _ClassVar[int] + THAW_HEIGHT_FIELD_NUMBER: _ClassVar[int] + LOCAL_CONSTRAINTS_FIELD_NUMBER: _ClassVar[int] + REMOTE_CONSTRAINTS_FIELD_NUMBER: _ClassVar[int] + ALIAS_SCIDS_FIELD_NUMBER: _ClassVar[int] + ZERO_CONF_FIELD_NUMBER: _ClassVar[int] + ZERO_CONF_CONFIRMED_SCID_FIELD_NUMBER: _ClassVar[int] + PEER_ALIAS_FIELD_NUMBER: _ClassVar[int] + PEER_SCID_ALIAS_FIELD_NUMBER: _ClassVar[int] + MEMO_FIELD_NUMBER: _ClassVar[int] + CUSTOM_CHANNEL_DATA_FIELD_NUMBER: _ClassVar[int] + active: bool + remote_pubkey: str + channel_point: str + chan_id: int + capacity: int + local_balance: int + remote_balance: int + commit_fee: int + commit_weight: int + fee_per_kw: int + unsettled_balance: int + total_satoshis_sent: int + total_satoshis_received: int + num_updates: int + pending_htlcs: _containers.RepeatedCompositeFieldContainer[HTLC] + csv_delay: int + private: bool + initiator: bool + chan_status_flags: str + local_chan_reserve_sat: int + remote_chan_reserve_sat: int + static_remote_key: bool + commitment_type: CommitmentType + lifetime: int + uptime: int + close_address: str + push_amount_sat: int + thaw_height: int + local_constraints: ChannelConstraints + remote_constraints: ChannelConstraints + alias_scids: _containers.RepeatedScalarFieldContainer[int] + zero_conf: bool + zero_conf_confirmed_scid: int + peer_alias: str + peer_scid_alias: int + memo: str + custom_channel_data: bytes + def __init__(self, active: bool = ..., remote_pubkey: _Optional[str] = ..., channel_point: _Optional[str] = ..., chan_id: _Optional[int] = ..., capacity: _Optional[int] = ..., local_balance: _Optional[int] = ..., remote_balance: _Optional[int] = ..., commit_fee: _Optional[int] = ..., commit_weight: _Optional[int] = ..., fee_per_kw: _Optional[int] = ..., unsettled_balance: _Optional[int] = ..., total_satoshis_sent: _Optional[int] = ..., total_satoshis_received: _Optional[int] = ..., num_updates: _Optional[int] = ..., pending_htlcs: _Optional[_Iterable[_Union[HTLC, _Mapping]]] = ..., csv_delay: _Optional[int] = ..., private: bool = ..., initiator: bool = ..., chan_status_flags: _Optional[str] = ..., local_chan_reserve_sat: _Optional[int] = ..., remote_chan_reserve_sat: _Optional[int] = ..., static_remote_key: bool = ..., commitment_type: _Optional[_Union[CommitmentType, str]] = ..., lifetime: _Optional[int] = ..., uptime: _Optional[int] = ..., close_address: _Optional[str] = ..., push_amount_sat: _Optional[int] = ..., thaw_height: _Optional[int] = ..., local_constraints: _Optional[_Union[ChannelConstraints, _Mapping]] = ..., remote_constraints: _Optional[_Union[ChannelConstraints, _Mapping]] = ..., alias_scids: _Optional[_Iterable[int]] = ..., zero_conf: bool = ..., zero_conf_confirmed_scid: _Optional[int] = ..., peer_alias: _Optional[str] = ..., peer_scid_alias: _Optional[int] = ..., memo: _Optional[str] = ..., custom_channel_data: _Optional[bytes] = ...) -> None: ... + +class ListChannelsRequest(_message.Message): + __slots__ = ("active_only", "inactive_only", "public_only", "private_only", "peer", "peer_alias_lookup") + ACTIVE_ONLY_FIELD_NUMBER: _ClassVar[int] + INACTIVE_ONLY_FIELD_NUMBER: _ClassVar[int] + PUBLIC_ONLY_FIELD_NUMBER: _ClassVar[int] + PRIVATE_ONLY_FIELD_NUMBER: _ClassVar[int] + PEER_FIELD_NUMBER: _ClassVar[int] + PEER_ALIAS_LOOKUP_FIELD_NUMBER: _ClassVar[int] + active_only: bool + inactive_only: bool + public_only: bool + private_only: bool + peer: bytes + peer_alias_lookup: bool + def __init__(self, active_only: bool = ..., inactive_only: bool = ..., public_only: bool = ..., private_only: bool = ..., peer: _Optional[bytes] = ..., peer_alias_lookup: bool = ...) -> None: ... + +class ListChannelsResponse(_message.Message): + __slots__ = ("channels",) + CHANNELS_FIELD_NUMBER: _ClassVar[int] + channels: _containers.RepeatedCompositeFieldContainer[Channel] + def __init__(self, channels: _Optional[_Iterable[_Union[Channel, _Mapping]]] = ...) -> None: ... + +class AliasMap(_message.Message): + __slots__ = ("base_scid", "aliases") + BASE_SCID_FIELD_NUMBER: _ClassVar[int] + ALIASES_FIELD_NUMBER: _ClassVar[int] + base_scid: int + aliases: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, base_scid: _Optional[int] = ..., aliases: _Optional[_Iterable[int]] = ...) -> None: ... + +class ListAliasesRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class ListAliasesResponse(_message.Message): + __slots__ = ("alias_maps",) + ALIAS_MAPS_FIELD_NUMBER: _ClassVar[int] + alias_maps: _containers.RepeatedCompositeFieldContainer[AliasMap] + def __init__(self, alias_maps: _Optional[_Iterable[_Union[AliasMap, _Mapping]]] = ...) -> None: ... + +class ChannelCloseSummary(_message.Message): + __slots__ = ("channel_point", "chan_id", "chain_hash", "closing_tx_hash", "remote_pubkey", "capacity", "close_height", "settled_balance", "time_locked_balance", "close_type", "open_initiator", "close_initiator", "resolutions", "alias_scids", "zero_conf_confirmed_scid", "custom_channel_data") + class ClosureType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + COOPERATIVE_CLOSE: _ClassVar[ChannelCloseSummary.ClosureType] + LOCAL_FORCE_CLOSE: _ClassVar[ChannelCloseSummary.ClosureType] + REMOTE_FORCE_CLOSE: _ClassVar[ChannelCloseSummary.ClosureType] + BREACH_CLOSE: _ClassVar[ChannelCloseSummary.ClosureType] + FUNDING_CANCELED: _ClassVar[ChannelCloseSummary.ClosureType] + ABANDONED: _ClassVar[ChannelCloseSummary.ClosureType] + COOPERATIVE_CLOSE: ChannelCloseSummary.ClosureType + LOCAL_FORCE_CLOSE: ChannelCloseSummary.ClosureType + REMOTE_FORCE_CLOSE: ChannelCloseSummary.ClosureType + BREACH_CLOSE: ChannelCloseSummary.ClosureType + FUNDING_CANCELED: ChannelCloseSummary.ClosureType + ABANDONED: ChannelCloseSummary.ClosureType + CHANNEL_POINT_FIELD_NUMBER: _ClassVar[int] + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + CHAIN_HASH_FIELD_NUMBER: _ClassVar[int] + CLOSING_TX_HASH_FIELD_NUMBER: _ClassVar[int] + REMOTE_PUBKEY_FIELD_NUMBER: _ClassVar[int] + CAPACITY_FIELD_NUMBER: _ClassVar[int] + CLOSE_HEIGHT_FIELD_NUMBER: _ClassVar[int] + SETTLED_BALANCE_FIELD_NUMBER: _ClassVar[int] + TIME_LOCKED_BALANCE_FIELD_NUMBER: _ClassVar[int] + CLOSE_TYPE_FIELD_NUMBER: _ClassVar[int] + OPEN_INITIATOR_FIELD_NUMBER: _ClassVar[int] + CLOSE_INITIATOR_FIELD_NUMBER: _ClassVar[int] + RESOLUTIONS_FIELD_NUMBER: _ClassVar[int] + ALIAS_SCIDS_FIELD_NUMBER: _ClassVar[int] + ZERO_CONF_CONFIRMED_SCID_FIELD_NUMBER: _ClassVar[int] + CUSTOM_CHANNEL_DATA_FIELD_NUMBER: _ClassVar[int] + channel_point: str + chan_id: int + chain_hash: str + closing_tx_hash: str + remote_pubkey: str + capacity: int + close_height: int + settled_balance: int + time_locked_balance: int + close_type: ChannelCloseSummary.ClosureType + open_initiator: Initiator + close_initiator: Initiator + resolutions: _containers.RepeatedCompositeFieldContainer[Resolution] + alias_scids: _containers.RepeatedScalarFieldContainer[int] + zero_conf_confirmed_scid: int + custom_channel_data: bytes + def __init__(self, channel_point: _Optional[str] = ..., chan_id: _Optional[int] = ..., chain_hash: _Optional[str] = ..., closing_tx_hash: _Optional[str] = ..., remote_pubkey: _Optional[str] = ..., capacity: _Optional[int] = ..., close_height: _Optional[int] = ..., settled_balance: _Optional[int] = ..., time_locked_balance: _Optional[int] = ..., close_type: _Optional[_Union[ChannelCloseSummary.ClosureType, str]] = ..., open_initiator: _Optional[_Union[Initiator, str]] = ..., close_initiator: _Optional[_Union[Initiator, str]] = ..., resolutions: _Optional[_Iterable[_Union[Resolution, _Mapping]]] = ..., alias_scids: _Optional[_Iterable[int]] = ..., zero_conf_confirmed_scid: _Optional[int] = ..., custom_channel_data: _Optional[bytes] = ...) -> None: ... + +class Resolution(_message.Message): + __slots__ = ("resolution_type", "outcome", "outpoint", "amount_sat", "sweep_txid") + RESOLUTION_TYPE_FIELD_NUMBER: _ClassVar[int] + OUTCOME_FIELD_NUMBER: _ClassVar[int] + OUTPOINT_FIELD_NUMBER: _ClassVar[int] + AMOUNT_SAT_FIELD_NUMBER: _ClassVar[int] + SWEEP_TXID_FIELD_NUMBER: _ClassVar[int] + resolution_type: ResolutionType + outcome: ResolutionOutcome + outpoint: OutPoint + amount_sat: int + sweep_txid: str + def __init__(self, resolution_type: _Optional[_Union[ResolutionType, str]] = ..., outcome: _Optional[_Union[ResolutionOutcome, str]] = ..., outpoint: _Optional[_Union[OutPoint, _Mapping]] = ..., amount_sat: _Optional[int] = ..., sweep_txid: _Optional[str] = ...) -> None: ... + +class ClosedChannelsRequest(_message.Message): + __slots__ = ("cooperative", "local_force", "remote_force", "breach", "funding_canceled", "abandoned") + COOPERATIVE_FIELD_NUMBER: _ClassVar[int] + LOCAL_FORCE_FIELD_NUMBER: _ClassVar[int] + REMOTE_FORCE_FIELD_NUMBER: _ClassVar[int] + BREACH_FIELD_NUMBER: _ClassVar[int] + FUNDING_CANCELED_FIELD_NUMBER: _ClassVar[int] + ABANDONED_FIELD_NUMBER: _ClassVar[int] + cooperative: bool + local_force: bool + remote_force: bool + breach: bool + funding_canceled: bool + abandoned: bool + def __init__(self, cooperative: bool = ..., local_force: bool = ..., remote_force: bool = ..., breach: bool = ..., funding_canceled: bool = ..., abandoned: bool = ...) -> None: ... + +class ClosedChannelsResponse(_message.Message): + __slots__ = ("channels",) + CHANNELS_FIELD_NUMBER: _ClassVar[int] + channels: _containers.RepeatedCompositeFieldContainer[ChannelCloseSummary] + def __init__(self, channels: _Optional[_Iterable[_Union[ChannelCloseSummary, _Mapping]]] = ...) -> None: ... + +class Peer(_message.Message): + __slots__ = ("pub_key", "address", "bytes_sent", "bytes_recv", "sat_sent", "sat_recv", "inbound", "ping_time", "sync_type", "features", "errors", "flap_count", "last_flap_ns", "last_ping_payload") + class SyncType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + UNKNOWN_SYNC: _ClassVar[Peer.SyncType] + ACTIVE_SYNC: _ClassVar[Peer.SyncType] + PASSIVE_SYNC: _ClassVar[Peer.SyncType] + PINNED_SYNC: _ClassVar[Peer.SyncType] + UNKNOWN_SYNC: Peer.SyncType + ACTIVE_SYNC: Peer.SyncType + PASSIVE_SYNC: Peer.SyncType + PINNED_SYNC: Peer.SyncType + class FeaturesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: Feature + def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[Feature, _Mapping]] = ...) -> None: ... + PUB_KEY_FIELD_NUMBER: _ClassVar[int] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + BYTES_SENT_FIELD_NUMBER: _ClassVar[int] + BYTES_RECV_FIELD_NUMBER: _ClassVar[int] + SAT_SENT_FIELD_NUMBER: _ClassVar[int] + SAT_RECV_FIELD_NUMBER: _ClassVar[int] + INBOUND_FIELD_NUMBER: _ClassVar[int] + PING_TIME_FIELD_NUMBER: _ClassVar[int] + SYNC_TYPE_FIELD_NUMBER: _ClassVar[int] + FEATURES_FIELD_NUMBER: _ClassVar[int] + ERRORS_FIELD_NUMBER: _ClassVar[int] + FLAP_COUNT_FIELD_NUMBER: _ClassVar[int] + LAST_FLAP_NS_FIELD_NUMBER: _ClassVar[int] + LAST_PING_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + pub_key: str + address: str + bytes_sent: int + bytes_recv: int + sat_sent: int + sat_recv: int + inbound: bool + ping_time: int + sync_type: Peer.SyncType + features: _containers.MessageMap[int, Feature] + errors: _containers.RepeatedCompositeFieldContainer[TimestampedError] + flap_count: int + last_flap_ns: int + last_ping_payload: bytes + def __init__(self, pub_key: _Optional[str] = ..., address: _Optional[str] = ..., bytes_sent: _Optional[int] = ..., bytes_recv: _Optional[int] = ..., sat_sent: _Optional[int] = ..., sat_recv: _Optional[int] = ..., inbound: bool = ..., ping_time: _Optional[int] = ..., sync_type: _Optional[_Union[Peer.SyncType, str]] = ..., features: _Optional[_Mapping[int, Feature]] = ..., errors: _Optional[_Iterable[_Union[TimestampedError, _Mapping]]] = ..., flap_count: _Optional[int] = ..., last_flap_ns: _Optional[int] = ..., last_ping_payload: _Optional[bytes] = ...) -> None: ... + +class TimestampedError(_message.Message): + __slots__ = ("timestamp", "error") + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + timestamp: int + error: str + def __init__(self, timestamp: _Optional[int] = ..., error: _Optional[str] = ...) -> None: ... + +class ListPeersRequest(_message.Message): + __slots__ = ("latest_error",) + LATEST_ERROR_FIELD_NUMBER: _ClassVar[int] + latest_error: bool + def __init__(self, latest_error: bool = ...) -> None: ... + +class ListPeersResponse(_message.Message): + __slots__ = ("peers",) + PEERS_FIELD_NUMBER: _ClassVar[int] + peers: _containers.RepeatedCompositeFieldContainer[Peer] + def __init__(self, peers: _Optional[_Iterable[_Union[Peer, _Mapping]]] = ...) -> None: ... + +class PeerEventSubscription(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class PeerEvent(_message.Message): + __slots__ = ("pub_key", "type") + class EventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + PEER_ONLINE: _ClassVar[PeerEvent.EventType] + PEER_OFFLINE: _ClassVar[PeerEvent.EventType] + PEER_ONLINE: PeerEvent.EventType + PEER_OFFLINE: PeerEvent.EventType + PUB_KEY_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + pub_key: str + type: PeerEvent.EventType + def __init__(self, pub_key: _Optional[str] = ..., type: _Optional[_Union[PeerEvent.EventType, str]] = ...) -> None: ... + +class GetInfoRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class GetInfoResponse(_message.Message): + __slots__ = ("version", "commit_hash", "identity_pubkey", "alias", "color", "num_pending_channels", "num_active_channels", "num_inactive_channels", "num_peers", "block_height", "block_hash", "best_header_timestamp", "synced_to_chain", "synced_to_graph", "testnet", "chains", "uris", "features", "require_htlc_interceptor", "store_final_htlc_resolutions") + class FeaturesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: Feature + def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[Feature, _Mapping]] = ...) -> None: ... + VERSION_FIELD_NUMBER: _ClassVar[int] + COMMIT_HASH_FIELD_NUMBER: _ClassVar[int] + IDENTITY_PUBKEY_FIELD_NUMBER: _ClassVar[int] + ALIAS_FIELD_NUMBER: _ClassVar[int] + COLOR_FIELD_NUMBER: _ClassVar[int] + NUM_PENDING_CHANNELS_FIELD_NUMBER: _ClassVar[int] + NUM_ACTIVE_CHANNELS_FIELD_NUMBER: _ClassVar[int] + NUM_INACTIVE_CHANNELS_FIELD_NUMBER: _ClassVar[int] + NUM_PEERS_FIELD_NUMBER: _ClassVar[int] + BLOCK_HEIGHT_FIELD_NUMBER: _ClassVar[int] + BLOCK_HASH_FIELD_NUMBER: _ClassVar[int] + BEST_HEADER_TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + SYNCED_TO_CHAIN_FIELD_NUMBER: _ClassVar[int] + SYNCED_TO_GRAPH_FIELD_NUMBER: _ClassVar[int] + TESTNET_FIELD_NUMBER: _ClassVar[int] + CHAINS_FIELD_NUMBER: _ClassVar[int] + URIS_FIELD_NUMBER: _ClassVar[int] + FEATURES_FIELD_NUMBER: _ClassVar[int] + REQUIRE_HTLC_INTERCEPTOR_FIELD_NUMBER: _ClassVar[int] + STORE_FINAL_HTLC_RESOLUTIONS_FIELD_NUMBER: _ClassVar[int] + version: str + commit_hash: str + identity_pubkey: str + alias: str + color: str + num_pending_channels: int + num_active_channels: int + num_inactive_channels: int + num_peers: int + block_height: int + block_hash: str + best_header_timestamp: int + synced_to_chain: bool + synced_to_graph: bool + testnet: bool + chains: _containers.RepeatedCompositeFieldContainer[Chain] + uris: _containers.RepeatedScalarFieldContainer[str] + features: _containers.MessageMap[int, Feature] + require_htlc_interceptor: bool + store_final_htlc_resolutions: bool + def __init__(self, version: _Optional[str] = ..., commit_hash: _Optional[str] = ..., identity_pubkey: _Optional[str] = ..., alias: _Optional[str] = ..., color: _Optional[str] = ..., num_pending_channels: _Optional[int] = ..., num_active_channels: _Optional[int] = ..., num_inactive_channels: _Optional[int] = ..., num_peers: _Optional[int] = ..., block_height: _Optional[int] = ..., block_hash: _Optional[str] = ..., best_header_timestamp: _Optional[int] = ..., synced_to_chain: bool = ..., synced_to_graph: bool = ..., testnet: bool = ..., chains: _Optional[_Iterable[_Union[Chain, _Mapping]]] = ..., uris: _Optional[_Iterable[str]] = ..., features: _Optional[_Mapping[int, Feature]] = ..., require_htlc_interceptor: bool = ..., store_final_htlc_resolutions: bool = ...) -> None: ... + +class GetDebugInfoRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class GetDebugInfoResponse(_message.Message): + __slots__ = ("config", "log") + class ConfigEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + CONFIG_FIELD_NUMBER: _ClassVar[int] + LOG_FIELD_NUMBER: _ClassVar[int] + config: _containers.ScalarMap[str, str] + log: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, config: _Optional[_Mapping[str, str]] = ..., log: _Optional[_Iterable[str]] = ...) -> None: ... + +class GetRecoveryInfoRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class GetRecoveryInfoResponse(_message.Message): + __slots__ = ("recovery_mode", "recovery_finished", "progress") + RECOVERY_MODE_FIELD_NUMBER: _ClassVar[int] + RECOVERY_FINISHED_FIELD_NUMBER: _ClassVar[int] + PROGRESS_FIELD_NUMBER: _ClassVar[int] + recovery_mode: bool + recovery_finished: bool + progress: float + def __init__(self, recovery_mode: bool = ..., recovery_finished: bool = ..., progress: _Optional[float] = ...) -> None: ... + +class Chain(_message.Message): + __slots__ = ("chain", "network") + CHAIN_FIELD_NUMBER: _ClassVar[int] + NETWORK_FIELD_NUMBER: _ClassVar[int] + chain: str + network: str + def __init__(self, chain: _Optional[str] = ..., network: _Optional[str] = ...) -> None: ... + +class ChannelOpenUpdate(_message.Message): + __slots__ = ("channel_point",) + CHANNEL_POINT_FIELD_NUMBER: _ClassVar[int] + channel_point: ChannelPoint + def __init__(self, channel_point: _Optional[_Union[ChannelPoint, _Mapping]] = ...) -> None: ... + +class CloseOutput(_message.Message): + __slots__ = ("amount_sat", "pk_script", "is_local", "custom_channel_data") + AMOUNT_SAT_FIELD_NUMBER: _ClassVar[int] + PK_SCRIPT_FIELD_NUMBER: _ClassVar[int] + IS_LOCAL_FIELD_NUMBER: _ClassVar[int] + CUSTOM_CHANNEL_DATA_FIELD_NUMBER: _ClassVar[int] + amount_sat: int + pk_script: bytes + is_local: bool + custom_channel_data: bytes + def __init__(self, amount_sat: _Optional[int] = ..., pk_script: _Optional[bytes] = ..., is_local: bool = ..., custom_channel_data: _Optional[bytes] = ...) -> None: ... + +class ChannelCloseUpdate(_message.Message): + __slots__ = ("closing_txid", "success", "local_close_output", "remote_close_output", "additional_outputs") + CLOSING_TXID_FIELD_NUMBER: _ClassVar[int] + SUCCESS_FIELD_NUMBER: _ClassVar[int] + LOCAL_CLOSE_OUTPUT_FIELD_NUMBER: _ClassVar[int] + REMOTE_CLOSE_OUTPUT_FIELD_NUMBER: _ClassVar[int] + ADDITIONAL_OUTPUTS_FIELD_NUMBER: _ClassVar[int] + closing_txid: bytes + success: bool + local_close_output: CloseOutput + remote_close_output: CloseOutput + additional_outputs: _containers.RepeatedCompositeFieldContainer[CloseOutput] + def __init__(self, closing_txid: _Optional[bytes] = ..., success: bool = ..., local_close_output: _Optional[_Union[CloseOutput, _Mapping]] = ..., remote_close_output: _Optional[_Union[CloseOutput, _Mapping]] = ..., additional_outputs: _Optional[_Iterable[_Union[CloseOutput, _Mapping]]] = ...) -> None: ... + +class CloseChannelRequest(_message.Message): + __slots__ = ("channel_point", "force", "target_conf", "sat_per_byte", "delivery_address", "sat_per_vbyte", "max_fee_per_vbyte", "no_wait") + CHANNEL_POINT_FIELD_NUMBER: _ClassVar[int] + FORCE_FIELD_NUMBER: _ClassVar[int] + TARGET_CONF_FIELD_NUMBER: _ClassVar[int] + SAT_PER_BYTE_FIELD_NUMBER: _ClassVar[int] + DELIVERY_ADDRESS_FIELD_NUMBER: _ClassVar[int] + SAT_PER_VBYTE_FIELD_NUMBER: _ClassVar[int] + MAX_FEE_PER_VBYTE_FIELD_NUMBER: _ClassVar[int] + NO_WAIT_FIELD_NUMBER: _ClassVar[int] + channel_point: ChannelPoint + force: bool + target_conf: int + sat_per_byte: int + delivery_address: str + sat_per_vbyte: int + max_fee_per_vbyte: int + no_wait: bool + def __init__(self, channel_point: _Optional[_Union[ChannelPoint, _Mapping]] = ..., force: bool = ..., target_conf: _Optional[int] = ..., sat_per_byte: _Optional[int] = ..., delivery_address: _Optional[str] = ..., sat_per_vbyte: _Optional[int] = ..., max_fee_per_vbyte: _Optional[int] = ..., no_wait: bool = ...) -> None: ... + +class CloseStatusUpdate(_message.Message): + __slots__ = ("close_pending", "chan_close", "close_instant") + CLOSE_PENDING_FIELD_NUMBER: _ClassVar[int] + CHAN_CLOSE_FIELD_NUMBER: _ClassVar[int] + CLOSE_INSTANT_FIELD_NUMBER: _ClassVar[int] + close_pending: PendingUpdate + chan_close: ChannelCloseUpdate + close_instant: InstantUpdate + def __init__(self, close_pending: _Optional[_Union[PendingUpdate, _Mapping]] = ..., chan_close: _Optional[_Union[ChannelCloseUpdate, _Mapping]] = ..., close_instant: _Optional[_Union[InstantUpdate, _Mapping]] = ...) -> None: ... + +class PendingUpdate(_message.Message): + __slots__ = ("txid", "output_index", "fee_per_vbyte", "local_close_tx") + TXID_FIELD_NUMBER: _ClassVar[int] + OUTPUT_INDEX_FIELD_NUMBER: _ClassVar[int] + FEE_PER_VBYTE_FIELD_NUMBER: _ClassVar[int] + LOCAL_CLOSE_TX_FIELD_NUMBER: _ClassVar[int] + txid: bytes + output_index: int + fee_per_vbyte: int + local_close_tx: bool + def __init__(self, txid: _Optional[bytes] = ..., output_index: _Optional[int] = ..., fee_per_vbyte: _Optional[int] = ..., local_close_tx: bool = ...) -> None: ... + +class InstantUpdate(_message.Message): + __slots__ = ("num_pending_htlcs",) + NUM_PENDING_HTLCS_FIELD_NUMBER: _ClassVar[int] + num_pending_htlcs: int + def __init__(self, num_pending_htlcs: _Optional[int] = ...) -> None: ... + +class ReadyForPsbtFunding(_message.Message): + __slots__ = ("funding_address", "funding_amount", "psbt") + FUNDING_ADDRESS_FIELD_NUMBER: _ClassVar[int] + FUNDING_AMOUNT_FIELD_NUMBER: _ClassVar[int] + PSBT_FIELD_NUMBER: _ClassVar[int] + funding_address: str + funding_amount: int + psbt: bytes + def __init__(self, funding_address: _Optional[str] = ..., funding_amount: _Optional[int] = ..., psbt: _Optional[bytes] = ...) -> None: ... + +class BatchOpenChannelRequest(_message.Message): + __slots__ = ("channels", "target_conf", "sat_per_vbyte", "min_confs", "spend_unconfirmed", "label", "coin_selection_strategy") + CHANNELS_FIELD_NUMBER: _ClassVar[int] + TARGET_CONF_FIELD_NUMBER: _ClassVar[int] + SAT_PER_VBYTE_FIELD_NUMBER: _ClassVar[int] + MIN_CONFS_FIELD_NUMBER: _ClassVar[int] + SPEND_UNCONFIRMED_FIELD_NUMBER: _ClassVar[int] + LABEL_FIELD_NUMBER: _ClassVar[int] + COIN_SELECTION_STRATEGY_FIELD_NUMBER: _ClassVar[int] + channels: _containers.RepeatedCompositeFieldContainer[BatchOpenChannel] + target_conf: int + sat_per_vbyte: int + min_confs: int + spend_unconfirmed: bool + label: str + coin_selection_strategy: CoinSelectionStrategy + def __init__(self, channels: _Optional[_Iterable[_Union[BatchOpenChannel, _Mapping]]] = ..., target_conf: _Optional[int] = ..., sat_per_vbyte: _Optional[int] = ..., min_confs: _Optional[int] = ..., spend_unconfirmed: bool = ..., label: _Optional[str] = ..., coin_selection_strategy: _Optional[_Union[CoinSelectionStrategy, str]] = ...) -> None: ... + +class BatchOpenChannel(_message.Message): + __slots__ = ("node_pubkey", "local_funding_amount", "push_sat", "private", "min_htlc_msat", "remote_csv_delay", "close_address", "pending_chan_id", "commitment_type", "remote_max_value_in_flight_msat", "remote_max_htlcs", "max_local_csv", "zero_conf", "scid_alias", "base_fee", "fee_rate", "use_base_fee", "use_fee_rate", "remote_chan_reserve_sat", "memo") + NODE_PUBKEY_FIELD_NUMBER: _ClassVar[int] + LOCAL_FUNDING_AMOUNT_FIELD_NUMBER: _ClassVar[int] + PUSH_SAT_FIELD_NUMBER: _ClassVar[int] + PRIVATE_FIELD_NUMBER: _ClassVar[int] + MIN_HTLC_MSAT_FIELD_NUMBER: _ClassVar[int] + REMOTE_CSV_DELAY_FIELD_NUMBER: _ClassVar[int] + CLOSE_ADDRESS_FIELD_NUMBER: _ClassVar[int] + PENDING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + COMMITMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + REMOTE_MAX_VALUE_IN_FLIGHT_MSAT_FIELD_NUMBER: _ClassVar[int] + REMOTE_MAX_HTLCS_FIELD_NUMBER: _ClassVar[int] + MAX_LOCAL_CSV_FIELD_NUMBER: _ClassVar[int] + ZERO_CONF_FIELD_NUMBER: _ClassVar[int] + SCID_ALIAS_FIELD_NUMBER: _ClassVar[int] + BASE_FEE_FIELD_NUMBER: _ClassVar[int] + FEE_RATE_FIELD_NUMBER: _ClassVar[int] + USE_BASE_FEE_FIELD_NUMBER: _ClassVar[int] + USE_FEE_RATE_FIELD_NUMBER: _ClassVar[int] + REMOTE_CHAN_RESERVE_SAT_FIELD_NUMBER: _ClassVar[int] + MEMO_FIELD_NUMBER: _ClassVar[int] + node_pubkey: bytes + local_funding_amount: int + push_sat: int + private: bool + min_htlc_msat: int + remote_csv_delay: int + close_address: str + pending_chan_id: bytes + commitment_type: CommitmentType + remote_max_value_in_flight_msat: int + remote_max_htlcs: int + max_local_csv: int + zero_conf: bool + scid_alias: bool + base_fee: int + fee_rate: int + use_base_fee: bool + use_fee_rate: bool + remote_chan_reserve_sat: int + memo: str + def __init__(self, node_pubkey: _Optional[bytes] = ..., local_funding_amount: _Optional[int] = ..., push_sat: _Optional[int] = ..., private: bool = ..., min_htlc_msat: _Optional[int] = ..., remote_csv_delay: _Optional[int] = ..., close_address: _Optional[str] = ..., pending_chan_id: _Optional[bytes] = ..., commitment_type: _Optional[_Union[CommitmentType, str]] = ..., remote_max_value_in_flight_msat: _Optional[int] = ..., remote_max_htlcs: _Optional[int] = ..., max_local_csv: _Optional[int] = ..., zero_conf: bool = ..., scid_alias: bool = ..., base_fee: _Optional[int] = ..., fee_rate: _Optional[int] = ..., use_base_fee: bool = ..., use_fee_rate: bool = ..., remote_chan_reserve_sat: _Optional[int] = ..., memo: _Optional[str] = ...) -> None: ... + +class BatchOpenChannelResponse(_message.Message): + __slots__ = ("pending_channels",) + PENDING_CHANNELS_FIELD_NUMBER: _ClassVar[int] + pending_channels: _containers.RepeatedCompositeFieldContainer[PendingUpdate] + def __init__(self, pending_channels: _Optional[_Iterable[_Union[PendingUpdate, _Mapping]]] = ...) -> None: ... + +class OpenChannelRequest(_message.Message): + __slots__ = ("sat_per_vbyte", "node_pubkey", "node_pubkey_string", "local_funding_amount", "push_sat", "target_conf", "sat_per_byte", "private", "min_htlc_msat", "remote_csv_delay", "min_confs", "spend_unconfirmed", "close_address", "funding_shim", "remote_max_value_in_flight_msat", "remote_max_htlcs", "max_local_csv", "commitment_type", "zero_conf", "scid_alias", "base_fee", "fee_rate", "use_base_fee", "use_fee_rate", "remote_chan_reserve_sat", "fund_max", "memo", "outpoints") + SAT_PER_VBYTE_FIELD_NUMBER: _ClassVar[int] + NODE_PUBKEY_FIELD_NUMBER: _ClassVar[int] + NODE_PUBKEY_STRING_FIELD_NUMBER: _ClassVar[int] + LOCAL_FUNDING_AMOUNT_FIELD_NUMBER: _ClassVar[int] + PUSH_SAT_FIELD_NUMBER: _ClassVar[int] + TARGET_CONF_FIELD_NUMBER: _ClassVar[int] + SAT_PER_BYTE_FIELD_NUMBER: _ClassVar[int] + PRIVATE_FIELD_NUMBER: _ClassVar[int] + MIN_HTLC_MSAT_FIELD_NUMBER: _ClassVar[int] + REMOTE_CSV_DELAY_FIELD_NUMBER: _ClassVar[int] + MIN_CONFS_FIELD_NUMBER: _ClassVar[int] + SPEND_UNCONFIRMED_FIELD_NUMBER: _ClassVar[int] + CLOSE_ADDRESS_FIELD_NUMBER: _ClassVar[int] + FUNDING_SHIM_FIELD_NUMBER: _ClassVar[int] + REMOTE_MAX_VALUE_IN_FLIGHT_MSAT_FIELD_NUMBER: _ClassVar[int] + REMOTE_MAX_HTLCS_FIELD_NUMBER: _ClassVar[int] + MAX_LOCAL_CSV_FIELD_NUMBER: _ClassVar[int] + COMMITMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + ZERO_CONF_FIELD_NUMBER: _ClassVar[int] + SCID_ALIAS_FIELD_NUMBER: _ClassVar[int] + BASE_FEE_FIELD_NUMBER: _ClassVar[int] + FEE_RATE_FIELD_NUMBER: _ClassVar[int] + USE_BASE_FEE_FIELD_NUMBER: _ClassVar[int] + USE_FEE_RATE_FIELD_NUMBER: _ClassVar[int] + REMOTE_CHAN_RESERVE_SAT_FIELD_NUMBER: _ClassVar[int] + FUND_MAX_FIELD_NUMBER: _ClassVar[int] + MEMO_FIELD_NUMBER: _ClassVar[int] + OUTPOINTS_FIELD_NUMBER: _ClassVar[int] + sat_per_vbyte: int + node_pubkey: bytes + node_pubkey_string: str + local_funding_amount: int + push_sat: int + target_conf: int + sat_per_byte: int + private: bool + min_htlc_msat: int + remote_csv_delay: int + min_confs: int + spend_unconfirmed: bool + close_address: str + funding_shim: FundingShim + remote_max_value_in_flight_msat: int + remote_max_htlcs: int + max_local_csv: int + commitment_type: CommitmentType + zero_conf: bool + scid_alias: bool + base_fee: int + fee_rate: int + use_base_fee: bool + use_fee_rate: bool + remote_chan_reserve_sat: int + fund_max: bool + memo: str + outpoints: _containers.RepeatedCompositeFieldContainer[OutPoint] + def __init__(self, sat_per_vbyte: _Optional[int] = ..., node_pubkey: _Optional[bytes] = ..., node_pubkey_string: _Optional[str] = ..., local_funding_amount: _Optional[int] = ..., push_sat: _Optional[int] = ..., target_conf: _Optional[int] = ..., sat_per_byte: _Optional[int] = ..., private: bool = ..., min_htlc_msat: _Optional[int] = ..., remote_csv_delay: _Optional[int] = ..., min_confs: _Optional[int] = ..., spend_unconfirmed: bool = ..., close_address: _Optional[str] = ..., funding_shim: _Optional[_Union[FundingShim, _Mapping]] = ..., remote_max_value_in_flight_msat: _Optional[int] = ..., remote_max_htlcs: _Optional[int] = ..., max_local_csv: _Optional[int] = ..., commitment_type: _Optional[_Union[CommitmentType, str]] = ..., zero_conf: bool = ..., scid_alias: bool = ..., base_fee: _Optional[int] = ..., fee_rate: _Optional[int] = ..., use_base_fee: bool = ..., use_fee_rate: bool = ..., remote_chan_reserve_sat: _Optional[int] = ..., fund_max: bool = ..., memo: _Optional[str] = ..., outpoints: _Optional[_Iterable[_Union[OutPoint, _Mapping]]] = ...) -> None: ... + +class OpenStatusUpdate(_message.Message): + __slots__ = ("chan_pending", "chan_open", "psbt_fund", "pending_chan_id") + CHAN_PENDING_FIELD_NUMBER: _ClassVar[int] + CHAN_OPEN_FIELD_NUMBER: _ClassVar[int] + PSBT_FUND_FIELD_NUMBER: _ClassVar[int] + PENDING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + chan_pending: PendingUpdate + chan_open: ChannelOpenUpdate + psbt_fund: ReadyForPsbtFunding + pending_chan_id: bytes + def __init__(self, chan_pending: _Optional[_Union[PendingUpdate, _Mapping]] = ..., chan_open: _Optional[_Union[ChannelOpenUpdate, _Mapping]] = ..., psbt_fund: _Optional[_Union[ReadyForPsbtFunding, _Mapping]] = ..., pending_chan_id: _Optional[bytes] = ...) -> None: ... + +class KeyLocator(_message.Message): + __slots__ = ("key_family", "key_index") + KEY_FAMILY_FIELD_NUMBER: _ClassVar[int] + KEY_INDEX_FIELD_NUMBER: _ClassVar[int] + key_family: int + key_index: int + def __init__(self, key_family: _Optional[int] = ..., key_index: _Optional[int] = ...) -> None: ... + +class KeyDescriptor(_message.Message): + __slots__ = ("raw_key_bytes", "key_loc") + RAW_KEY_BYTES_FIELD_NUMBER: _ClassVar[int] + KEY_LOC_FIELD_NUMBER: _ClassVar[int] + raw_key_bytes: bytes + key_loc: KeyLocator + def __init__(self, raw_key_bytes: _Optional[bytes] = ..., key_loc: _Optional[_Union[KeyLocator, _Mapping]] = ...) -> None: ... + +class ChanPointShim(_message.Message): + __slots__ = ("amt", "chan_point", "local_key", "remote_key", "pending_chan_id", "thaw_height", "musig2") + AMT_FIELD_NUMBER: _ClassVar[int] + CHAN_POINT_FIELD_NUMBER: _ClassVar[int] + LOCAL_KEY_FIELD_NUMBER: _ClassVar[int] + REMOTE_KEY_FIELD_NUMBER: _ClassVar[int] + PENDING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + THAW_HEIGHT_FIELD_NUMBER: _ClassVar[int] + MUSIG2_FIELD_NUMBER: _ClassVar[int] + amt: int + chan_point: ChannelPoint + local_key: KeyDescriptor + remote_key: bytes + pending_chan_id: bytes + thaw_height: int + musig2: bool + def __init__(self, amt: _Optional[int] = ..., chan_point: _Optional[_Union[ChannelPoint, _Mapping]] = ..., local_key: _Optional[_Union[KeyDescriptor, _Mapping]] = ..., remote_key: _Optional[bytes] = ..., pending_chan_id: _Optional[bytes] = ..., thaw_height: _Optional[int] = ..., musig2: bool = ...) -> None: ... + +class PsbtShim(_message.Message): + __slots__ = ("pending_chan_id", "base_psbt", "no_publish") + PENDING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + BASE_PSBT_FIELD_NUMBER: _ClassVar[int] + NO_PUBLISH_FIELD_NUMBER: _ClassVar[int] + pending_chan_id: bytes + base_psbt: bytes + no_publish: bool + def __init__(self, pending_chan_id: _Optional[bytes] = ..., base_psbt: _Optional[bytes] = ..., no_publish: bool = ...) -> None: ... + +class FundingShim(_message.Message): + __slots__ = ("chan_point_shim", "psbt_shim") + CHAN_POINT_SHIM_FIELD_NUMBER: _ClassVar[int] + PSBT_SHIM_FIELD_NUMBER: _ClassVar[int] + chan_point_shim: ChanPointShim + psbt_shim: PsbtShim + def __init__(self, chan_point_shim: _Optional[_Union[ChanPointShim, _Mapping]] = ..., psbt_shim: _Optional[_Union[PsbtShim, _Mapping]] = ...) -> None: ... + +class FundingShimCancel(_message.Message): + __slots__ = ("pending_chan_id",) + PENDING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + pending_chan_id: bytes + def __init__(self, pending_chan_id: _Optional[bytes] = ...) -> None: ... + +class FundingPsbtVerify(_message.Message): + __slots__ = ("funded_psbt", "pending_chan_id", "skip_finalize") + FUNDED_PSBT_FIELD_NUMBER: _ClassVar[int] + PENDING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + SKIP_FINALIZE_FIELD_NUMBER: _ClassVar[int] + funded_psbt: bytes + pending_chan_id: bytes + skip_finalize: bool + def __init__(self, funded_psbt: _Optional[bytes] = ..., pending_chan_id: _Optional[bytes] = ..., skip_finalize: bool = ...) -> None: ... + +class FundingPsbtFinalize(_message.Message): + __slots__ = ("signed_psbt", "pending_chan_id", "final_raw_tx") + SIGNED_PSBT_FIELD_NUMBER: _ClassVar[int] + PENDING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + FINAL_RAW_TX_FIELD_NUMBER: _ClassVar[int] + signed_psbt: bytes + pending_chan_id: bytes + final_raw_tx: bytes + def __init__(self, signed_psbt: _Optional[bytes] = ..., pending_chan_id: _Optional[bytes] = ..., final_raw_tx: _Optional[bytes] = ...) -> None: ... + +class FundingTransitionMsg(_message.Message): + __slots__ = ("shim_register", "shim_cancel", "psbt_verify", "psbt_finalize") + SHIM_REGISTER_FIELD_NUMBER: _ClassVar[int] + SHIM_CANCEL_FIELD_NUMBER: _ClassVar[int] + PSBT_VERIFY_FIELD_NUMBER: _ClassVar[int] + PSBT_FINALIZE_FIELD_NUMBER: _ClassVar[int] + shim_register: FundingShim + shim_cancel: FundingShimCancel + psbt_verify: FundingPsbtVerify + psbt_finalize: FundingPsbtFinalize + def __init__(self, shim_register: _Optional[_Union[FundingShim, _Mapping]] = ..., shim_cancel: _Optional[_Union[FundingShimCancel, _Mapping]] = ..., psbt_verify: _Optional[_Union[FundingPsbtVerify, _Mapping]] = ..., psbt_finalize: _Optional[_Union[FundingPsbtFinalize, _Mapping]] = ...) -> None: ... + +class FundingStateStepResp(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class PendingHTLC(_message.Message): + __slots__ = ("incoming", "amount", "outpoint", "maturity_height", "blocks_til_maturity", "stage") + INCOMING_FIELD_NUMBER: _ClassVar[int] + AMOUNT_FIELD_NUMBER: _ClassVar[int] + OUTPOINT_FIELD_NUMBER: _ClassVar[int] + MATURITY_HEIGHT_FIELD_NUMBER: _ClassVar[int] + BLOCKS_TIL_MATURITY_FIELD_NUMBER: _ClassVar[int] + STAGE_FIELD_NUMBER: _ClassVar[int] + incoming: bool + amount: int + outpoint: str + maturity_height: int + blocks_til_maturity: int + stage: int + def __init__(self, incoming: bool = ..., amount: _Optional[int] = ..., outpoint: _Optional[str] = ..., maturity_height: _Optional[int] = ..., blocks_til_maturity: _Optional[int] = ..., stage: _Optional[int] = ...) -> None: ... + +class PendingChannelsRequest(_message.Message): + __slots__ = ("include_raw_tx",) + INCLUDE_RAW_TX_FIELD_NUMBER: _ClassVar[int] + include_raw_tx: bool + def __init__(self, include_raw_tx: bool = ...) -> None: ... + +class PendingChannelsResponse(_message.Message): + __slots__ = ("total_limbo_balance", "pending_open_channels", "pending_closing_channels", "pending_force_closing_channels", "waiting_close_channels") + class PendingChannel(_message.Message): + __slots__ = ("remote_node_pub", "channel_point", "capacity", "local_balance", "remote_balance", "local_chan_reserve_sat", "remote_chan_reserve_sat", "initiator", "commitment_type", "num_forwarding_packages", "chan_status_flags", "private", "memo", "custom_channel_data") + REMOTE_NODE_PUB_FIELD_NUMBER: _ClassVar[int] + CHANNEL_POINT_FIELD_NUMBER: _ClassVar[int] + CAPACITY_FIELD_NUMBER: _ClassVar[int] + LOCAL_BALANCE_FIELD_NUMBER: _ClassVar[int] + REMOTE_BALANCE_FIELD_NUMBER: _ClassVar[int] + LOCAL_CHAN_RESERVE_SAT_FIELD_NUMBER: _ClassVar[int] + REMOTE_CHAN_RESERVE_SAT_FIELD_NUMBER: _ClassVar[int] + INITIATOR_FIELD_NUMBER: _ClassVar[int] + COMMITMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + NUM_FORWARDING_PACKAGES_FIELD_NUMBER: _ClassVar[int] + CHAN_STATUS_FLAGS_FIELD_NUMBER: _ClassVar[int] + PRIVATE_FIELD_NUMBER: _ClassVar[int] + MEMO_FIELD_NUMBER: _ClassVar[int] + CUSTOM_CHANNEL_DATA_FIELD_NUMBER: _ClassVar[int] + remote_node_pub: str + channel_point: str + capacity: int + local_balance: int + remote_balance: int + local_chan_reserve_sat: int + remote_chan_reserve_sat: int + initiator: Initiator + commitment_type: CommitmentType + num_forwarding_packages: int + chan_status_flags: str + private: bool + memo: str + custom_channel_data: bytes + def __init__(self, remote_node_pub: _Optional[str] = ..., channel_point: _Optional[str] = ..., capacity: _Optional[int] = ..., local_balance: _Optional[int] = ..., remote_balance: _Optional[int] = ..., local_chan_reserve_sat: _Optional[int] = ..., remote_chan_reserve_sat: _Optional[int] = ..., initiator: _Optional[_Union[Initiator, str]] = ..., commitment_type: _Optional[_Union[CommitmentType, str]] = ..., num_forwarding_packages: _Optional[int] = ..., chan_status_flags: _Optional[str] = ..., private: bool = ..., memo: _Optional[str] = ..., custom_channel_data: _Optional[bytes] = ...) -> None: ... + class PendingOpenChannel(_message.Message): + __slots__ = ("channel", "commit_fee", "commit_weight", "fee_per_kw", "funding_expiry_blocks", "confirmations_until_active", "confirmation_height") + CHANNEL_FIELD_NUMBER: _ClassVar[int] + COMMIT_FEE_FIELD_NUMBER: _ClassVar[int] + COMMIT_WEIGHT_FIELD_NUMBER: _ClassVar[int] + FEE_PER_KW_FIELD_NUMBER: _ClassVar[int] + FUNDING_EXPIRY_BLOCKS_FIELD_NUMBER: _ClassVar[int] + CONFIRMATIONS_UNTIL_ACTIVE_FIELD_NUMBER: _ClassVar[int] + CONFIRMATION_HEIGHT_FIELD_NUMBER: _ClassVar[int] + channel: PendingChannelsResponse.PendingChannel + commit_fee: int + commit_weight: int + fee_per_kw: int + funding_expiry_blocks: int + confirmations_until_active: int + confirmation_height: int + def __init__(self, channel: _Optional[_Union[PendingChannelsResponse.PendingChannel, _Mapping]] = ..., commit_fee: _Optional[int] = ..., commit_weight: _Optional[int] = ..., fee_per_kw: _Optional[int] = ..., funding_expiry_blocks: _Optional[int] = ..., confirmations_until_active: _Optional[int] = ..., confirmation_height: _Optional[int] = ...) -> None: ... + class WaitingCloseChannel(_message.Message): + __slots__ = ("channel", "limbo_balance", "commitments", "closing_txid", "closing_tx_hex") + CHANNEL_FIELD_NUMBER: _ClassVar[int] + LIMBO_BALANCE_FIELD_NUMBER: _ClassVar[int] + COMMITMENTS_FIELD_NUMBER: _ClassVar[int] + CLOSING_TXID_FIELD_NUMBER: _ClassVar[int] + CLOSING_TX_HEX_FIELD_NUMBER: _ClassVar[int] + channel: PendingChannelsResponse.PendingChannel + limbo_balance: int + commitments: PendingChannelsResponse.Commitments + closing_txid: str + closing_tx_hex: str + def __init__(self, channel: _Optional[_Union[PendingChannelsResponse.PendingChannel, _Mapping]] = ..., limbo_balance: _Optional[int] = ..., commitments: _Optional[_Union[PendingChannelsResponse.Commitments, _Mapping]] = ..., closing_txid: _Optional[str] = ..., closing_tx_hex: _Optional[str] = ...) -> None: ... + class Commitments(_message.Message): + __slots__ = ("local_txid", "remote_txid", "remote_pending_txid", "local_commit_fee_sat", "remote_commit_fee_sat", "remote_pending_commit_fee_sat") + LOCAL_TXID_FIELD_NUMBER: _ClassVar[int] + REMOTE_TXID_FIELD_NUMBER: _ClassVar[int] + REMOTE_PENDING_TXID_FIELD_NUMBER: _ClassVar[int] + LOCAL_COMMIT_FEE_SAT_FIELD_NUMBER: _ClassVar[int] + REMOTE_COMMIT_FEE_SAT_FIELD_NUMBER: _ClassVar[int] + REMOTE_PENDING_COMMIT_FEE_SAT_FIELD_NUMBER: _ClassVar[int] + local_txid: str + remote_txid: str + remote_pending_txid: str + local_commit_fee_sat: int + remote_commit_fee_sat: int + remote_pending_commit_fee_sat: int + def __init__(self, local_txid: _Optional[str] = ..., remote_txid: _Optional[str] = ..., remote_pending_txid: _Optional[str] = ..., local_commit_fee_sat: _Optional[int] = ..., remote_commit_fee_sat: _Optional[int] = ..., remote_pending_commit_fee_sat: _Optional[int] = ...) -> None: ... + class ClosedChannel(_message.Message): + __slots__ = ("channel", "closing_txid") + CHANNEL_FIELD_NUMBER: _ClassVar[int] + CLOSING_TXID_FIELD_NUMBER: _ClassVar[int] + channel: PendingChannelsResponse.PendingChannel + closing_txid: str + def __init__(self, channel: _Optional[_Union[PendingChannelsResponse.PendingChannel, _Mapping]] = ..., closing_txid: _Optional[str] = ...) -> None: ... + class ForceClosedChannel(_message.Message): + __slots__ = ("channel", "closing_txid", "limbo_balance", "maturity_height", "blocks_til_maturity", "recovered_balance", "pending_htlcs", "anchor") + class AnchorState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + LIMBO: _ClassVar[PendingChannelsResponse.ForceClosedChannel.AnchorState] + RECOVERED: _ClassVar[PendingChannelsResponse.ForceClosedChannel.AnchorState] + LOST: _ClassVar[PendingChannelsResponse.ForceClosedChannel.AnchorState] + LIMBO: PendingChannelsResponse.ForceClosedChannel.AnchorState + RECOVERED: PendingChannelsResponse.ForceClosedChannel.AnchorState + LOST: PendingChannelsResponse.ForceClosedChannel.AnchorState + CHANNEL_FIELD_NUMBER: _ClassVar[int] + CLOSING_TXID_FIELD_NUMBER: _ClassVar[int] + LIMBO_BALANCE_FIELD_NUMBER: _ClassVar[int] + MATURITY_HEIGHT_FIELD_NUMBER: _ClassVar[int] + BLOCKS_TIL_MATURITY_FIELD_NUMBER: _ClassVar[int] + RECOVERED_BALANCE_FIELD_NUMBER: _ClassVar[int] + PENDING_HTLCS_FIELD_NUMBER: _ClassVar[int] + ANCHOR_FIELD_NUMBER: _ClassVar[int] + channel: PendingChannelsResponse.PendingChannel + closing_txid: str + limbo_balance: int + maturity_height: int + blocks_til_maturity: int + recovered_balance: int + pending_htlcs: _containers.RepeatedCompositeFieldContainer[PendingHTLC] + anchor: PendingChannelsResponse.ForceClosedChannel.AnchorState + def __init__(self, channel: _Optional[_Union[PendingChannelsResponse.PendingChannel, _Mapping]] = ..., closing_txid: _Optional[str] = ..., limbo_balance: _Optional[int] = ..., maturity_height: _Optional[int] = ..., blocks_til_maturity: _Optional[int] = ..., recovered_balance: _Optional[int] = ..., pending_htlcs: _Optional[_Iterable[_Union[PendingHTLC, _Mapping]]] = ..., anchor: _Optional[_Union[PendingChannelsResponse.ForceClosedChannel.AnchorState, str]] = ...) -> None: ... + TOTAL_LIMBO_BALANCE_FIELD_NUMBER: _ClassVar[int] + PENDING_OPEN_CHANNELS_FIELD_NUMBER: _ClassVar[int] + PENDING_CLOSING_CHANNELS_FIELD_NUMBER: _ClassVar[int] + PENDING_FORCE_CLOSING_CHANNELS_FIELD_NUMBER: _ClassVar[int] + WAITING_CLOSE_CHANNELS_FIELD_NUMBER: _ClassVar[int] + total_limbo_balance: int + pending_open_channels: _containers.RepeatedCompositeFieldContainer[PendingChannelsResponse.PendingOpenChannel] + pending_closing_channels: _containers.RepeatedCompositeFieldContainer[PendingChannelsResponse.ClosedChannel] + pending_force_closing_channels: _containers.RepeatedCompositeFieldContainer[PendingChannelsResponse.ForceClosedChannel] + waiting_close_channels: _containers.RepeatedCompositeFieldContainer[PendingChannelsResponse.WaitingCloseChannel] + def __init__(self, total_limbo_balance: _Optional[int] = ..., pending_open_channels: _Optional[_Iterable[_Union[PendingChannelsResponse.PendingOpenChannel, _Mapping]]] = ..., pending_closing_channels: _Optional[_Iterable[_Union[PendingChannelsResponse.ClosedChannel, _Mapping]]] = ..., pending_force_closing_channels: _Optional[_Iterable[_Union[PendingChannelsResponse.ForceClosedChannel, _Mapping]]] = ..., waiting_close_channels: _Optional[_Iterable[_Union[PendingChannelsResponse.WaitingCloseChannel, _Mapping]]] = ...) -> None: ... + +class ChannelEventSubscription(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class ChannelEventUpdate(_message.Message): + __slots__ = ("open_channel", "closed_channel", "active_channel", "inactive_channel", "pending_open_channel", "fully_resolved_channel", "channel_funding_timeout", "type") + class UpdateType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + OPEN_CHANNEL: _ClassVar[ChannelEventUpdate.UpdateType] + CLOSED_CHANNEL: _ClassVar[ChannelEventUpdate.UpdateType] + ACTIVE_CHANNEL: _ClassVar[ChannelEventUpdate.UpdateType] + INACTIVE_CHANNEL: _ClassVar[ChannelEventUpdate.UpdateType] + PENDING_OPEN_CHANNEL: _ClassVar[ChannelEventUpdate.UpdateType] + FULLY_RESOLVED_CHANNEL: _ClassVar[ChannelEventUpdate.UpdateType] + CHANNEL_FUNDING_TIMEOUT: _ClassVar[ChannelEventUpdate.UpdateType] + OPEN_CHANNEL: ChannelEventUpdate.UpdateType + CLOSED_CHANNEL: ChannelEventUpdate.UpdateType + ACTIVE_CHANNEL: ChannelEventUpdate.UpdateType + INACTIVE_CHANNEL: ChannelEventUpdate.UpdateType + PENDING_OPEN_CHANNEL: ChannelEventUpdate.UpdateType + FULLY_RESOLVED_CHANNEL: ChannelEventUpdate.UpdateType + CHANNEL_FUNDING_TIMEOUT: ChannelEventUpdate.UpdateType + OPEN_CHANNEL_FIELD_NUMBER: _ClassVar[int] + CLOSED_CHANNEL_FIELD_NUMBER: _ClassVar[int] + ACTIVE_CHANNEL_FIELD_NUMBER: _ClassVar[int] + INACTIVE_CHANNEL_FIELD_NUMBER: _ClassVar[int] + PENDING_OPEN_CHANNEL_FIELD_NUMBER: _ClassVar[int] + FULLY_RESOLVED_CHANNEL_FIELD_NUMBER: _ClassVar[int] + CHANNEL_FUNDING_TIMEOUT_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + open_channel: Channel + closed_channel: ChannelCloseSummary + active_channel: ChannelPoint + inactive_channel: ChannelPoint + pending_open_channel: PendingUpdate + fully_resolved_channel: ChannelPoint + channel_funding_timeout: ChannelPoint + type: ChannelEventUpdate.UpdateType + def __init__(self, open_channel: _Optional[_Union[Channel, _Mapping]] = ..., closed_channel: _Optional[_Union[ChannelCloseSummary, _Mapping]] = ..., active_channel: _Optional[_Union[ChannelPoint, _Mapping]] = ..., inactive_channel: _Optional[_Union[ChannelPoint, _Mapping]] = ..., pending_open_channel: _Optional[_Union[PendingUpdate, _Mapping]] = ..., fully_resolved_channel: _Optional[_Union[ChannelPoint, _Mapping]] = ..., channel_funding_timeout: _Optional[_Union[ChannelPoint, _Mapping]] = ..., type: _Optional[_Union[ChannelEventUpdate.UpdateType, str]] = ...) -> None: ... + +class WalletAccountBalance(_message.Message): + __slots__ = ("confirmed_balance", "unconfirmed_balance") + CONFIRMED_BALANCE_FIELD_NUMBER: _ClassVar[int] + UNCONFIRMED_BALANCE_FIELD_NUMBER: _ClassVar[int] + confirmed_balance: int + unconfirmed_balance: int + def __init__(self, confirmed_balance: _Optional[int] = ..., unconfirmed_balance: _Optional[int] = ...) -> None: ... + +class WalletBalanceRequest(_message.Message): + __slots__ = ("account", "min_confs") + ACCOUNT_FIELD_NUMBER: _ClassVar[int] + MIN_CONFS_FIELD_NUMBER: _ClassVar[int] + account: str + min_confs: int + def __init__(self, account: _Optional[str] = ..., min_confs: _Optional[int] = ...) -> None: ... + +class WalletBalanceResponse(_message.Message): + __slots__ = ("total_balance", "confirmed_balance", "unconfirmed_balance", "locked_balance", "reserved_balance_anchor_chan", "account_balance") + class AccountBalanceEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: WalletAccountBalance + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[WalletAccountBalance, _Mapping]] = ...) -> None: ... + TOTAL_BALANCE_FIELD_NUMBER: _ClassVar[int] + CONFIRMED_BALANCE_FIELD_NUMBER: _ClassVar[int] + UNCONFIRMED_BALANCE_FIELD_NUMBER: _ClassVar[int] + LOCKED_BALANCE_FIELD_NUMBER: _ClassVar[int] + RESERVED_BALANCE_ANCHOR_CHAN_FIELD_NUMBER: _ClassVar[int] + ACCOUNT_BALANCE_FIELD_NUMBER: _ClassVar[int] + total_balance: int + confirmed_balance: int + unconfirmed_balance: int + locked_balance: int + reserved_balance_anchor_chan: int + account_balance: _containers.MessageMap[str, WalletAccountBalance] + def __init__(self, total_balance: _Optional[int] = ..., confirmed_balance: _Optional[int] = ..., unconfirmed_balance: _Optional[int] = ..., locked_balance: _Optional[int] = ..., reserved_balance_anchor_chan: _Optional[int] = ..., account_balance: _Optional[_Mapping[str, WalletAccountBalance]] = ...) -> None: ... + +class Amount(_message.Message): + __slots__ = ("sat", "msat") + SAT_FIELD_NUMBER: _ClassVar[int] + MSAT_FIELD_NUMBER: _ClassVar[int] + sat: int + msat: int + def __init__(self, sat: _Optional[int] = ..., msat: _Optional[int] = ...) -> None: ... + +class ChannelBalanceRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class ChannelBalanceResponse(_message.Message): + __slots__ = ("balance", "pending_open_balance", "local_balance", "remote_balance", "unsettled_local_balance", "unsettled_remote_balance", "pending_open_local_balance", "pending_open_remote_balance", "custom_channel_data") + BALANCE_FIELD_NUMBER: _ClassVar[int] + PENDING_OPEN_BALANCE_FIELD_NUMBER: _ClassVar[int] + LOCAL_BALANCE_FIELD_NUMBER: _ClassVar[int] + REMOTE_BALANCE_FIELD_NUMBER: _ClassVar[int] + UNSETTLED_LOCAL_BALANCE_FIELD_NUMBER: _ClassVar[int] + UNSETTLED_REMOTE_BALANCE_FIELD_NUMBER: _ClassVar[int] + PENDING_OPEN_LOCAL_BALANCE_FIELD_NUMBER: _ClassVar[int] + PENDING_OPEN_REMOTE_BALANCE_FIELD_NUMBER: _ClassVar[int] + CUSTOM_CHANNEL_DATA_FIELD_NUMBER: _ClassVar[int] + balance: int + pending_open_balance: int + local_balance: Amount + remote_balance: Amount + unsettled_local_balance: Amount + unsettled_remote_balance: Amount + pending_open_local_balance: Amount + pending_open_remote_balance: Amount + custom_channel_data: bytes + def __init__(self, balance: _Optional[int] = ..., pending_open_balance: _Optional[int] = ..., local_balance: _Optional[_Union[Amount, _Mapping]] = ..., remote_balance: _Optional[_Union[Amount, _Mapping]] = ..., unsettled_local_balance: _Optional[_Union[Amount, _Mapping]] = ..., unsettled_remote_balance: _Optional[_Union[Amount, _Mapping]] = ..., pending_open_local_balance: _Optional[_Union[Amount, _Mapping]] = ..., pending_open_remote_balance: _Optional[_Union[Amount, _Mapping]] = ..., custom_channel_data: _Optional[bytes] = ...) -> None: ... + +class QueryRoutesRequest(_message.Message): + __slots__ = ("pub_key", "amt", "amt_msat", "final_cltv_delta", "fee_limit", "ignored_nodes", "ignored_edges", "source_pub_key", "use_mission_control", "ignored_pairs", "cltv_limit", "dest_custom_records", "outgoing_chan_id", "last_hop_pubkey", "route_hints", "blinded_payment_paths", "dest_features", "time_pref", "outgoing_chan_ids") + class DestCustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + PUB_KEY_FIELD_NUMBER: _ClassVar[int] + AMT_FIELD_NUMBER: _ClassVar[int] + AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + FINAL_CLTV_DELTA_FIELD_NUMBER: _ClassVar[int] + FEE_LIMIT_FIELD_NUMBER: _ClassVar[int] + IGNORED_NODES_FIELD_NUMBER: _ClassVar[int] + IGNORED_EDGES_FIELD_NUMBER: _ClassVar[int] + SOURCE_PUB_KEY_FIELD_NUMBER: _ClassVar[int] + USE_MISSION_CONTROL_FIELD_NUMBER: _ClassVar[int] + IGNORED_PAIRS_FIELD_NUMBER: _ClassVar[int] + CLTV_LIMIT_FIELD_NUMBER: _ClassVar[int] + DEST_CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + OUTGOING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + LAST_HOP_PUBKEY_FIELD_NUMBER: _ClassVar[int] + ROUTE_HINTS_FIELD_NUMBER: _ClassVar[int] + BLINDED_PAYMENT_PATHS_FIELD_NUMBER: _ClassVar[int] + DEST_FEATURES_FIELD_NUMBER: _ClassVar[int] + TIME_PREF_FIELD_NUMBER: _ClassVar[int] + OUTGOING_CHAN_IDS_FIELD_NUMBER: _ClassVar[int] + pub_key: str + amt: int + amt_msat: int + final_cltv_delta: int + fee_limit: FeeLimit + ignored_nodes: _containers.RepeatedScalarFieldContainer[bytes] + ignored_edges: _containers.RepeatedCompositeFieldContainer[EdgeLocator] + source_pub_key: str + use_mission_control: bool + ignored_pairs: _containers.RepeatedCompositeFieldContainer[NodePair] + cltv_limit: int + dest_custom_records: _containers.ScalarMap[int, bytes] + outgoing_chan_id: int + last_hop_pubkey: bytes + route_hints: _containers.RepeatedCompositeFieldContainer[RouteHint] + blinded_payment_paths: _containers.RepeatedCompositeFieldContainer[BlindedPaymentPath] + dest_features: _containers.RepeatedScalarFieldContainer[FeatureBit] + time_pref: float + outgoing_chan_ids: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, pub_key: _Optional[str] = ..., amt: _Optional[int] = ..., amt_msat: _Optional[int] = ..., final_cltv_delta: _Optional[int] = ..., fee_limit: _Optional[_Union[FeeLimit, _Mapping]] = ..., ignored_nodes: _Optional[_Iterable[bytes]] = ..., ignored_edges: _Optional[_Iterable[_Union[EdgeLocator, _Mapping]]] = ..., source_pub_key: _Optional[str] = ..., use_mission_control: bool = ..., ignored_pairs: _Optional[_Iterable[_Union[NodePair, _Mapping]]] = ..., cltv_limit: _Optional[int] = ..., dest_custom_records: _Optional[_Mapping[int, bytes]] = ..., outgoing_chan_id: _Optional[int] = ..., last_hop_pubkey: _Optional[bytes] = ..., route_hints: _Optional[_Iterable[_Union[RouteHint, _Mapping]]] = ..., blinded_payment_paths: _Optional[_Iterable[_Union[BlindedPaymentPath, _Mapping]]] = ..., dest_features: _Optional[_Iterable[_Union[FeatureBit, str]]] = ..., time_pref: _Optional[float] = ..., outgoing_chan_ids: _Optional[_Iterable[int]] = ...) -> None: ... + +class NodePair(_message.Message): + __slots__ = ("to",) + FROM_FIELD_NUMBER: _ClassVar[int] + TO_FIELD_NUMBER: _ClassVar[int] + to: bytes + def __init__(self, to: _Optional[bytes] = ..., **kwargs) -> None: ... + +class EdgeLocator(_message.Message): + __slots__ = ("channel_id", "direction_reverse") + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + DIRECTION_REVERSE_FIELD_NUMBER: _ClassVar[int] + channel_id: int + direction_reverse: bool + def __init__(self, channel_id: _Optional[int] = ..., direction_reverse: bool = ...) -> None: ... + +class QueryRoutesResponse(_message.Message): + __slots__ = ("routes", "success_prob") + ROUTES_FIELD_NUMBER: _ClassVar[int] + SUCCESS_PROB_FIELD_NUMBER: _ClassVar[int] + routes: _containers.RepeatedCompositeFieldContainer[Route] + success_prob: float + def __init__(self, routes: _Optional[_Iterable[_Union[Route, _Mapping]]] = ..., success_prob: _Optional[float] = ...) -> None: ... + +class Hop(_message.Message): + __slots__ = ("chan_id", "chan_capacity", "amt_to_forward", "fee", "expiry", "amt_to_forward_msat", "fee_msat", "pub_key", "tlv_payload", "mpp_record", "amp_record", "custom_records", "metadata", "blinding_point", "encrypted_data", "total_amt_msat") + class CustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + CHAN_CAPACITY_FIELD_NUMBER: _ClassVar[int] + AMT_TO_FORWARD_FIELD_NUMBER: _ClassVar[int] + FEE_FIELD_NUMBER: _ClassVar[int] + EXPIRY_FIELD_NUMBER: _ClassVar[int] + AMT_TO_FORWARD_MSAT_FIELD_NUMBER: _ClassVar[int] + FEE_MSAT_FIELD_NUMBER: _ClassVar[int] + PUB_KEY_FIELD_NUMBER: _ClassVar[int] + TLV_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + MPP_RECORD_FIELD_NUMBER: _ClassVar[int] + AMP_RECORD_FIELD_NUMBER: _ClassVar[int] + CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + BLINDING_POINT_FIELD_NUMBER: _ClassVar[int] + ENCRYPTED_DATA_FIELD_NUMBER: _ClassVar[int] + TOTAL_AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + chan_id: int + chan_capacity: int + amt_to_forward: int + fee: int + expiry: int + amt_to_forward_msat: int + fee_msat: int + pub_key: str + tlv_payload: bool + mpp_record: MPPRecord + amp_record: AMPRecord + custom_records: _containers.ScalarMap[int, bytes] + metadata: bytes + blinding_point: bytes + encrypted_data: bytes + total_amt_msat: int + def __init__(self, chan_id: _Optional[int] = ..., chan_capacity: _Optional[int] = ..., amt_to_forward: _Optional[int] = ..., fee: _Optional[int] = ..., expiry: _Optional[int] = ..., amt_to_forward_msat: _Optional[int] = ..., fee_msat: _Optional[int] = ..., pub_key: _Optional[str] = ..., tlv_payload: bool = ..., mpp_record: _Optional[_Union[MPPRecord, _Mapping]] = ..., amp_record: _Optional[_Union[AMPRecord, _Mapping]] = ..., custom_records: _Optional[_Mapping[int, bytes]] = ..., metadata: _Optional[bytes] = ..., blinding_point: _Optional[bytes] = ..., encrypted_data: _Optional[bytes] = ..., total_amt_msat: _Optional[int] = ...) -> None: ... + +class MPPRecord(_message.Message): + __slots__ = ("payment_addr", "total_amt_msat") + PAYMENT_ADDR_FIELD_NUMBER: _ClassVar[int] + TOTAL_AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + payment_addr: bytes + total_amt_msat: int + def __init__(self, payment_addr: _Optional[bytes] = ..., total_amt_msat: _Optional[int] = ...) -> None: ... + +class AMPRecord(_message.Message): + __slots__ = ("root_share", "set_id", "child_index") + ROOT_SHARE_FIELD_NUMBER: _ClassVar[int] + SET_ID_FIELD_NUMBER: _ClassVar[int] + CHILD_INDEX_FIELD_NUMBER: _ClassVar[int] + root_share: bytes + set_id: bytes + child_index: int + def __init__(self, root_share: _Optional[bytes] = ..., set_id: _Optional[bytes] = ..., child_index: _Optional[int] = ...) -> None: ... + +class Route(_message.Message): + __slots__ = ("total_time_lock", "total_fees", "total_amt", "hops", "total_fees_msat", "total_amt_msat", "first_hop_amount_msat", "custom_channel_data") + TOTAL_TIME_LOCK_FIELD_NUMBER: _ClassVar[int] + TOTAL_FEES_FIELD_NUMBER: _ClassVar[int] + TOTAL_AMT_FIELD_NUMBER: _ClassVar[int] + HOPS_FIELD_NUMBER: _ClassVar[int] + TOTAL_FEES_MSAT_FIELD_NUMBER: _ClassVar[int] + TOTAL_AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + FIRST_HOP_AMOUNT_MSAT_FIELD_NUMBER: _ClassVar[int] + CUSTOM_CHANNEL_DATA_FIELD_NUMBER: _ClassVar[int] + total_time_lock: int + total_fees: int + total_amt: int + hops: _containers.RepeatedCompositeFieldContainer[Hop] + total_fees_msat: int + total_amt_msat: int + first_hop_amount_msat: int + custom_channel_data: bytes + def __init__(self, total_time_lock: _Optional[int] = ..., total_fees: _Optional[int] = ..., total_amt: _Optional[int] = ..., hops: _Optional[_Iterable[_Union[Hop, _Mapping]]] = ..., total_fees_msat: _Optional[int] = ..., total_amt_msat: _Optional[int] = ..., first_hop_amount_msat: _Optional[int] = ..., custom_channel_data: _Optional[bytes] = ...) -> None: ... + +class NodeInfoRequest(_message.Message): + __slots__ = ("pub_key", "include_channels", "include_auth_proof") + PUB_KEY_FIELD_NUMBER: _ClassVar[int] + INCLUDE_CHANNELS_FIELD_NUMBER: _ClassVar[int] + INCLUDE_AUTH_PROOF_FIELD_NUMBER: _ClassVar[int] + pub_key: str + include_channels: bool + include_auth_proof: bool + def __init__(self, pub_key: _Optional[str] = ..., include_channels: bool = ..., include_auth_proof: bool = ...) -> None: ... + +class NodeInfo(_message.Message): + __slots__ = ("node", "num_channels", "total_capacity", "channels") + NODE_FIELD_NUMBER: _ClassVar[int] + NUM_CHANNELS_FIELD_NUMBER: _ClassVar[int] + TOTAL_CAPACITY_FIELD_NUMBER: _ClassVar[int] + CHANNELS_FIELD_NUMBER: _ClassVar[int] + node: LightningNode + num_channels: int + total_capacity: int + channels: _containers.RepeatedCompositeFieldContainer[ChannelEdge] + def __init__(self, node: _Optional[_Union[LightningNode, _Mapping]] = ..., num_channels: _Optional[int] = ..., total_capacity: _Optional[int] = ..., channels: _Optional[_Iterable[_Union[ChannelEdge, _Mapping]]] = ...) -> None: ... + +class LightningNode(_message.Message): + __slots__ = ("last_update", "pub_key", "alias", "addresses", "color", "features", "custom_records") + class FeaturesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: Feature + def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[Feature, _Mapping]] = ...) -> None: ... + class CustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + LAST_UPDATE_FIELD_NUMBER: _ClassVar[int] + PUB_KEY_FIELD_NUMBER: _ClassVar[int] + ALIAS_FIELD_NUMBER: _ClassVar[int] + ADDRESSES_FIELD_NUMBER: _ClassVar[int] + COLOR_FIELD_NUMBER: _ClassVar[int] + FEATURES_FIELD_NUMBER: _ClassVar[int] + CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + last_update: int + pub_key: str + alias: str + addresses: _containers.RepeatedCompositeFieldContainer[NodeAddress] + color: str + features: _containers.MessageMap[int, Feature] + custom_records: _containers.ScalarMap[int, bytes] + def __init__(self, last_update: _Optional[int] = ..., pub_key: _Optional[str] = ..., alias: _Optional[str] = ..., addresses: _Optional[_Iterable[_Union[NodeAddress, _Mapping]]] = ..., color: _Optional[str] = ..., features: _Optional[_Mapping[int, Feature]] = ..., custom_records: _Optional[_Mapping[int, bytes]] = ...) -> None: ... + +class NodeAddress(_message.Message): + __slots__ = ("network", "addr") + NETWORK_FIELD_NUMBER: _ClassVar[int] + ADDR_FIELD_NUMBER: _ClassVar[int] + network: str + addr: str + def __init__(self, network: _Optional[str] = ..., addr: _Optional[str] = ...) -> None: ... + +class RoutingPolicy(_message.Message): + __slots__ = ("time_lock_delta", "min_htlc", "fee_base_msat", "fee_rate_milli_msat", "disabled", "max_htlc_msat", "last_update", "custom_records", "inbound_fee_base_msat", "inbound_fee_rate_milli_msat") + class CustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + TIME_LOCK_DELTA_FIELD_NUMBER: _ClassVar[int] + MIN_HTLC_FIELD_NUMBER: _ClassVar[int] + FEE_BASE_MSAT_FIELD_NUMBER: _ClassVar[int] + FEE_RATE_MILLI_MSAT_FIELD_NUMBER: _ClassVar[int] + DISABLED_FIELD_NUMBER: _ClassVar[int] + MAX_HTLC_MSAT_FIELD_NUMBER: _ClassVar[int] + LAST_UPDATE_FIELD_NUMBER: _ClassVar[int] + CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + INBOUND_FEE_BASE_MSAT_FIELD_NUMBER: _ClassVar[int] + INBOUND_FEE_RATE_MILLI_MSAT_FIELD_NUMBER: _ClassVar[int] + time_lock_delta: int + min_htlc: int + fee_base_msat: int + fee_rate_milli_msat: int + disabled: bool + max_htlc_msat: int + last_update: int + custom_records: _containers.ScalarMap[int, bytes] + inbound_fee_base_msat: int + inbound_fee_rate_milli_msat: int + def __init__(self, time_lock_delta: _Optional[int] = ..., min_htlc: _Optional[int] = ..., fee_base_msat: _Optional[int] = ..., fee_rate_milli_msat: _Optional[int] = ..., disabled: bool = ..., max_htlc_msat: _Optional[int] = ..., last_update: _Optional[int] = ..., custom_records: _Optional[_Mapping[int, bytes]] = ..., inbound_fee_base_msat: _Optional[int] = ..., inbound_fee_rate_milli_msat: _Optional[int] = ...) -> None: ... + +class ChannelAuthProof(_message.Message): + __slots__ = ("node_sig1", "bitcoin_sig1", "node_sig2", "bitcoin_sig2") + NODE_SIG1_FIELD_NUMBER: _ClassVar[int] + BITCOIN_SIG1_FIELD_NUMBER: _ClassVar[int] + NODE_SIG2_FIELD_NUMBER: _ClassVar[int] + BITCOIN_SIG2_FIELD_NUMBER: _ClassVar[int] + node_sig1: bytes + bitcoin_sig1: bytes + node_sig2: bytes + bitcoin_sig2: bytes + def __init__(self, node_sig1: _Optional[bytes] = ..., bitcoin_sig1: _Optional[bytes] = ..., node_sig2: _Optional[bytes] = ..., bitcoin_sig2: _Optional[bytes] = ...) -> None: ... + +class ChannelEdge(_message.Message): + __slots__ = ("channel_id", "chan_point", "last_update", "node1_pub", "node2_pub", "capacity", "node1_policy", "node2_policy", "custom_records", "auth_proof") + class CustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + CHAN_POINT_FIELD_NUMBER: _ClassVar[int] + LAST_UPDATE_FIELD_NUMBER: _ClassVar[int] + NODE1_PUB_FIELD_NUMBER: _ClassVar[int] + NODE2_PUB_FIELD_NUMBER: _ClassVar[int] + CAPACITY_FIELD_NUMBER: _ClassVar[int] + NODE1_POLICY_FIELD_NUMBER: _ClassVar[int] + NODE2_POLICY_FIELD_NUMBER: _ClassVar[int] + CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + AUTH_PROOF_FIELD_NUMBER: _ClassVar[int] + channel_id: int + chan_point: str + last_update: int + node1_pub: str + node2_pub: str + capacity: int + node1_policy: RoutingPolicy + node2_policy: RoutingPolicy + custom_records: _containers.ScalarMap[int, bytes] + auth_proof: ChannelAuthProof + def __init__(self, channel_id: _Optional[int] = ..., chan_point: _Optional[str] = ..., last_update: _Optional[int] = ..., node1_pub: _Optional[str] = ..., node2_pub: _Optional[str] = ..., capacity: _Optional[int] = ..., node1_policy: _Optional[_Union[RoutingPolicy, _Mapping]] = ..., node2_policy: _Optional[_Union[RoutingPolicy, _Mapping]] = ..., custom_records: _Optional[_Mapping[int, bytes]] = ..., auth_proof: _Optional[_Union[ChannelAuthProof, _Mapping]] = ...) -> None: ... + +class ChannelGraphRequest(_message.Message): + __slots__ = ("include_unannounced", "include_auth_proof") + INCLUDE_UNANNOUNCED_FIELD_NUMBER: _ClassVar[int] + INCLUDE_AUTH_PROOF_FIELD_NUMBER: _ClassVar[int] + include_unannounced: bool + include_auth_proof: bool + def __init__(self, include_unannounced: bool = ..., include_auth_proof: bool = ...) -> None: ... + +class ChannelGraph(_message.Message): + __slots__ = ("nodes", "edges") + NODES_FIELD_NUMBER: _ClassVar[int] + EDGES_FIELD_NUMBER: _ClassVar[int] + nodes: _containers.RepeatedCompositeFieldContainer[LightningNode] + edges: _containers.RepeatedCompositeFieldContainer[ChannelEdge] + def __init__(self, nodes: _Optional[_Iterable[_Union[LightningNode, _Mapping]]] = ..., edges: _Optional[_Iterable[_Union[ChannelEdge, _Mapping]]] = ...) -> None: ... + +class NodeMetricsRequest(_message.Message): + __slots__ = ("types",) + TYPES_FIELD_NUMBER: _ClassVar[int] + types: _containers.RepeatedScalarFieldContainer[NodeMetricType] + def __init__(self, types: _Optional[_Iterable[_Union[NodeMetricType, str]]] = ...) -> None: ... + +class NodeMetricsResponse(_message.Message): + __slots__ = ("betweenness_centrality",) + class BetweennessCentralityEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: FloatMetric + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[FloatMetric, _Mapping]] = ...) -> None: ... + BETWEENNESS_CENTRALITY_FIELD_NUMBER: _ClassVar[int] + betweenness_centrality: _containers.MessageMap[str, FloatMetric] + def __init__(self, betweenness_centrality: _Optional[_Mapping[str, FloatMetric]] = ...) -> None: ... + +class FloatMetric(_message.Message): + __slots__ = ("value", "normalized_value") + VALUE_FIELD_NUMBER: _ClassVar[int] + NORMALIZED_VALUE_FIELD_NUMBER: _ClassVar[int] + value: float + normalized_value: float + def __init__(self, value: _Optional[float] = ..., normalized_value: _Optional[float] = ...) -> None: ... + +class ChanInfoRequest(_message.Message): + __slots__ = ("chan_id", "chan_point", "include_auth_proof") + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + CHAN_POINT_FIELD_NUMBER: _ClassVar[int] + INCLUDE_AUTH_PROOF_FIELD_NUMBER: _ClassVar[int] + chan_id: int + chan_point: str + include_auth_proof: bool + def __init__(self, chan_id: _Optional[int] = ..., chan_point: _Optional[str] = ..., include_auth_proof: bool = ...) -> None: ... + +class NetworkInfoRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class NetworkInfo(_message.Message): + __slots__ = ("graph_diameter", "avg_out_degree", "max_out_degree", "num_nodes", "num_channels", "total_network_capacity", "avg_channel_size", "min_channel_size", "max_channel_size", "median_channel_size_sat", "num_zombie_chans") + GRAPH_DIAMETER_FIELD_NUMBER: _ClassVar[int] + AVG_OUT_DEGREE_FIELD_NUMBER: _ClassVar[int] + MAX_OUT_DEGREE_FIELD_NUMBER: _ClassVar[int] + NUM_NODES_FIELD_NUMBER: _ClassVar[int] + NUM_CHANNELS_FIELD_NUMBER: _ClassVar[int] + TOTAL_NETWORK_CAPACITY_FIELD_NUMBER: _ClassVar[int] + AVG_CHANNEL_SIZE_FIELD_NUMBER: _ClassVar[int] + MIN_CHANNEL_SIZE_FIELD_NUMBER: _ClassVar[int] + MAX_CHANNEL_SIZE_FIELD_NUMBER: _ClassVar[int] + MEDIAN_CHANNEL_SIZE_SAT_FIELD_NUMBER: _ClassVar[int] + NUM_ZOMBIE_CHANS_FIELD_NUMBER: _ClassVar[int] + graph_diameter: int + avg_out_degree: float + max_out_degree: int + num_nodes: int + num_channels: int + total_network_capacity: int + avg_channel_size: float + min_channel_size: int + max_channel_size: int + median_channel_size_sat: int + num_zombie_chans: int + def __init__(self, graph_diameter: _Optional[int] = ..., avg_out_degree: _Optional[float] = ..., max_out_degree: _Optional[int] = ..., num_nodes: _Optional[int] = ..., num_channels: _Optional[int] = ..., total_network_capacity: _Optional[int] = ..., avg_channel_size: _Optional[float] = ..., min_channel_size: _Optional[int] = ..., max_channel_size: _Optional[int] = ..., median_channel_size_sat: _Optional[int] = ..., num_zombie_chans: _Optional[int] = ...) -> None: ... + +class StopRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class StopResponse(_message.Message): + __slots__ = ("status",) + STATUS_FIELD_NUMBER: _ClassVar[int] + status: str + def __init__(self, status: _Optional[str] = ...) -> None: ... + +class GraphTopologySubscription(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class GraphTopologyUpdate(_message.Message): + __slots__ = ("node_updates", "channel_updates", "closed_chans") + NODE_UPDATES_FIELD_NUMBER: _ClassVar[int] + CHANNEL_UPDATES_FIELD_NUMBER: _ClassVar[int] + CLOSED_CHANS_FIELD_NUMBER: _ClassVar[int] + node_updates: _containers.RepeatedCompositeFieldContainer[NodeUpdate] + channel_updates: _containers.RepeatedCompositeFieldContainer[ChannelEdgeUpdate] + closed_chans: _containers.RepeatedCompositeFieldContainer[ClosedChannelUpdate] + def __init__(self, node_updates: _Optional[_Iterable[_Union[NodeUpdate, _Mapping]]] = ..., channel_updates: _Optional[_Iterable[_Union[ChannelEdgeUpdate, _Mapping]]] = ..., closed_chans: _Optional[_Iterable[_Union[ClosedChannelUpdate, _Mapping]]] = ...) -> None: ... + +class NodeUpdate(_message.Message): + __slots__ = ("addresses", "identity_key", "global_features", "alias", "color", "node_addresses", "features") + class FeaturesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: Feature + def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[Feature, _Mapping]] = ...) -> None: ... + ADDRESSES_FIELD_NUMBER: _ClassVar[int] + IDENTITY_KEY_FIELD_NUMBER: _ClassVar[int] + GLOBAL_FEATURES_FIELD_NUMBER: _ClassVar[int] + ALIAS_FIELD_NUMBER: _ClassVar[int] + COLOR_FIELD_NUMBER: _ClassVar[int] + NODE_ADDRESSES_FIELD_NUMBER: _ClassVar[int] + FEATURES_FIELD_NUMBER: _ClassVar[int] + addresses: _containers.RepeatedScalarFieldContainer[str] + identity_key: str + global_features: bytes + alias: str + color: str + node_addresses: _containers.RepeatedCompositeFieldContainer[NodeAddress] + features: _containers.MessageMap[int, Feature] + def __init__(self, addresses: _Optional[_Iterable[str]] = ..., identity_key: _Optional[str] = ..., global_features: _Optional[bytes] = ..., alias: _Optional[str] = ..., color: _Optional[str] = ..., node_addresses: _Optional[_Iterable[_Union[NodeAddress, _Mapping]]] = ..., features: _Optional[_Mapping[int, Feature]] = ...) -> None: ... + +class ChannelEdgeUpdate(_message.Message): + __slots__ = ("chan_id", "chan_point", "capacity", "routing_policy", "advertising_node", "connecting_node") + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + CHAN_POINT_FIELD_NUMBER: _ClassVar[int] + CAPACITY_FIELD_NUMBER: _ClassVar[int] + ROUTING_POLICY_FIELD_NUMBER: _ClassVar[int] + ADVERTISING_NODE_FIELD_NUMBER: _ClassVar[int] + CONNECTING_NODE_FIELD_NUMBER: _ClassVar[int] + chan_id: int + chan_point: ChannelPoint + capacity: int + routing_policy: RoutingPolicy + advertising_node: str + connecting_node: str + def __init__(self, chan_id: _Optional[int] = ..., chan_point: _Optional[_Union[ChannelPoint, _Mapping]] = ..., capacity: _Optional[int] = ..., routing_policy: _Optional[_Union[RoutingPolicy, _Mapping]] = ..., advertising_node: _Optional[str] = ..., connecting_node: _Optional[str] = ...) -> None: ... + +class ClosedChannelUpdate(_message.Message): + __slots__ = ("chan_id", "capacity", "closed_height", "chan_point") + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + CAPACITY_FIELD_NUMBER: _ClassVar[int] + CLOSED_HEIGHT_FIELD_NUMBER: _ClassVar[int] + CHAN_POINT_FIELD_NUMBER: _ClassVar[int] + chan_id: int + capacity: int + closed_height: int + chan_point: ChannelPoint + def __init__(self, chan_id: _Optional[int] = ..., capacity: _Optional[int] = ..., closed_height: _Optional[int] = ..., chan_point: _Optional[_Union[ChannelPoint, _Mapping]] = ...) -> None: ... + +class HopHint(_message.Message): + __slots__ = ("node_id", "chan_id", "fee_base_msat", "fee_proportional_millionths", "cltv_expiry_delta") + NODE_ID_FIELD_NUMBER: _ClassVar[int] + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + FEE_BASE_MSAT_FIELD_NUMBER: _ClassVar[int] + FEE_PROPORTIONAL_MILLIONTHS_FIELD_NUMBER: _ClassVar[int] + CLTV_EXPIRY_DELTA_FIELD_NUMBER: _ClassVar[int] + node_id: str + chan_id: int + fee_base_msat: int + fee_proportional_millionths: int + cltv_expiry_delta: int + def __init__(self, node_id: _Optional[str] = ..., chan_id: _Optional[int] = ..., fee_base_msat: _Optional[int] = ..., fee_proportional_millionths: _Optional[int] = ..., cltv_expiry_delta: _Optional[int] = ...) -> None: ... + +class SetID(_message.Message): + __slots__ = ("set_id",) + SET_ID_FIELD_NUMBER: _ClassVar[int] + set_id: bytes + def __init__(self, set_id: _Optional[bytes] = ...) -> None: ... + +class RouteHint(_message.Message): + __slots__ = ("hop_hints",) + HOP_HINTS_FIELD_NUMBER: _ClassVar[int] + hop_hints: _containers.RepeatedCompositeFieldContainer[HopHint] + def __init__(self, hop_hints: _Optional[_Iterable[_Union[HopHint, _Mapping]]] = ...) -> None: ... + +class BlindedPaymentPath(_message.Message): + __slots__ = ("blinded_path", "base_fee_msat", "proportional_fee_rate", "total_cltv_delta", "htlc_min_msat", "htlc_max_msat", "features") + BLINDED_PATH_FIELD_NUMBER: _ClassVar[int] + BASE_FEE_MSAT_FIELD_NUMBER: _ClassVar[int] + PROPORTIONAL_FEE_RATE_FIELD_NUMBER: _ClassVar[int] + TOTAL_CLTV_DELTA_FIELD_NUMBER: _ClassVar[int] + HTLC_MIN_MSAT_FIELD_NUMBER: _ClassVar[int] + HTLC_MAX_MSAT_FIELD_NUMBER: _ClassVar[int] + FEATURES_FIELD_NUMBER: _ClassVar[int] + blinded_path: BlindedPath + base_fee_msat: int + proportional_fee_rate: int + total_cltv_delta: int + htlc_min_msat: int + htlc_max_msat: int + features: _containers.RepeatedScalarFieldContainer[FeatureBit] + def __init__(self, blinded_path: _Optional[_Union[BlindedPath, _Mapping]] = ..., base_fee_msat: _Optional[int] = ..., proportional_fee_rate: _Optional[int] = ..., total_cltv_delta: _Optional[int] = ..., htlc_min_msat: _Optional[int] = ..., htlc_max_msat: _Optional[int] = ..., features: _Optional[_Iterable[_Union[FeatureBit, str]]] = ...) -> None: ... + +class BlindedPath(_message.Message): + __slots__ = ("introduction_node", "blinding_point", "blinded_hops") + INTRODUCTION_NODE_FIELD_NUMBER: _ClassVar[int] + BLINDING_POINT_FIELD_NUMBER: _ClassVar[int] + BLINDED_HOPS_FIELD_NUMBER: _ClassVar[int] + introduction_node: bytes + blinding_point: bytes + blinded_hops: _containers.RepeatedCompositeFieldContainer[BlindedHop] + def __init__(self, introduction_node: _Optional[bytes] = ..., blinding_point: _Optional[bytes] = ..., blinded_hops: _Optional[_Iterable[_Union[BlindedHop, _Mapping]]] = ...) -> None: ... + +class BlindedHop(_message.Message): + __slots__ = ("blinded_node", "encrypted_data") + BLINDED_NODE_FIELD_NUMBER: _ClassVar[int] + ENCRYPTED_DATA_FIELD_NUMBER: _ClassVar[int] + blinded_node: bytes + encrypted_data: bytes + def __init__(self, blinded_node: _Optional[bytes] = ..., encrypted_data: _Optional[bytes] = ...) -> None: ... + +class AMPInvoiceState(_message.Message): + __slots__ = ("state", "settle_index", "settle_time", "amt_paid_msat") + STATE_FIELD_NUMBER: _ClassVar[int] + SETTLE_INDEX_FIELD_NUMBER: _ClassVar[int] + SETTLE_TIME_FIELD_NUMBER: _ClassVar[int] + AMT_PAID_MSAT_FIELD_NUMBER: _ClassVar[int] + state: InvoiceHTLCState + settle_index: int + settle_time: int + amt_paid_msat: int + def __init__(self, state: _Optional[_Union[InvoiceHTLCState, str]] = ..., settle_index: _Optional[int] = ..., settle_time: _Optional[int] = ..., amt_paid_msat: _Optional[int] = ...) -> None: ... + +class Invoice(_message.Message): + __slots__ = ("memo", "r_preimage", "r_hash", "value", "value_msat", "settled", "creation_date", "settle_date", "payment_request", "description_hash", "expiry", "fallback_addr", "cltv_expiry", "route_hints", "private", "add_index", "settle_index", "amt_paid", "amt_paid_sat", "amt_paid_msat", "state", "htlcs", "features", "is_keysend", "payment_addr", "is_amp", "amp_invoice_state", "is_blinded", "blinded_path_config") + class InvoiceState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + OPEN: _ClassVar[Invoice.InvoiceState] + SETTLED: _ClassVar[Invoice.InvoiceState] + CANCELED: _ClassVar[Invoice.InvoiceState] + ACCEPTED: _ClassVar[Invoice.InvoiceState] + OPEN: Invoice.InvoiceState + SETTLED: Invoice.InvoiceState + CANCELED: Invoice.InvoiceState + ACCEPTED: Invoice.InvoiceState + class FeaturesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: Feature + def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[Feature, _Mapping]] = ...) -> None: ... + class AmpInvoiceStateEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: AMPInvoiceState + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[AMPInvoiceState, _Mapping]] = ...) -> None: ... + MEMO_FIELD_NUMBER: _ClassVar[int] + R_PREIMAGE_FIELD_NUMBER: _ClassVar[int] + R_HASH_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + VALUE_MSAT_FIELD_NUMBER: _ClassVar[int] + SETTLED_FIELD_NUMBER: _ClassVar[int] + CREATION_DATE_FIELD_NUMBER: _ClassVar[int] + SETTLE_DATE_FIELD_NUMBER: _ClassVar[int] + PAYMENT_REQUEST_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_HASH_FIELD_NUMBER: _ClassVar[int] + EXPIRY_FIELD_NUMBER: _ClassVar[int] + FALLBACK_ADDR_FIELD_NUMBER: _ClassVar[int] + CLTV_EXPIRY_FIELD_NUMBER: _ClassVar[int] + ROUTE_HINTS_FIELD_NUMBER: _ClassVar[int] + PRIVATE_FIELD_NUMBER: _ClassVar[int] + ADD_INDEX_FIELD_NUMBER: _ClassVar[int] + SETTLE_INDEX_FIELD_NUMBER: _ClassVar[int] + AMT_PAID_FIELD_NUMBER: _ClassVar[int] + AMT_PAID_SAT_FIELD_NUMBER: _ClassVar[int] + AMT_PAID_MSAT_FIELD_NUMBER: _ClassVar[int] + STATE_FIELD_NUMBER: _ClassVar[int] + HTLCS_FIELD_NUMBER: _ClassVar[int] + FEATURES_FIELD_NUMBER: _ClassVar[int] + IS_KEYSEND_FIELD_NUMBER: _ClassVar[int] + PAYMENT_ADDR_FIELD_NUMBER: _ClassVar[int] + IS_AMP_FIELD_NUMBER: _ClassVar[int] + AMP_INVOICE_STATE_FIELD_NUMBER: _ClassVar[int] + IS_BLINDED_FIELD_NUMBER: _ClassVar[int] + BLINDED_PATH_CONFIG_FIELD_NUMBER: _ClassVar[int] + memo: str + r_preimage: bytes + r_hash: bytes + value: int + value_msat: int + settled: bool + creation_date: int + settle_date: int + payment_request: str + description_hash: bytes + expiry: int + fallback_addr: str + cltv_expiry: int + route_hints: _containers.RepeatedCompositeFieldContainer[RouteHint] + private: bool + add_index: int + settle_index: int + amt_paid: int + amt_paid_sat: int + amt_paid_msat: int + state: Invoice.InvoiceState + htlcs: _containers.RepeatedCompositeFieldContainer[InvoiceHTLC] + features: _containers.MessageMap[int, Feature] + is_keysend: bool + payment_addr: bytes + is_amp: bool + amp_invoice_state: _containers.MessageMap[str, AMPInvoiceState] + is_blinded: bool + blinded_path_config: BlindedPathConfig + def __init__(self, memo: _Optional[str] = ..., r_preimage: _Optional[bytes] = ..., r_hash: _Optional[bytes] = ..., value: _Optional[int] = ..., value_msat: _Optional[int] = ..., settled: bool = ..., creation_date: _Optional[int] = ..., settle_date: _Optional[int] = ..., payment_request: _Optional[str] = ..., description_hash: _Optional[bytes] = ..., expiry: _Optional[int] = ..., fallback_addr: _Optional[str] = ..., cltv_expiry: _Optional[int] = ..., route_hints: _Optional[_Iterable[_Union[RouteHint, _Mapping]]] = ..., private: bool = ..., add_index: _Optional[int] = ..., settle_index: _Optional[int] = ..., amt_paid: _Optional[int] = ..., amt_paid_sat: _Optional[int] = ..., amt_paid_msat: _Optional[int] = ..., state: _Optional[_Union[Invoice.InvoiceState, str]] = ..., htlcs: _Optional[_Iterable[_Union[InvoiceHTLC, _Mapping]]] = ..., features: _Optional[_Mapping[int, Feature]] = ..., is_keysend: bool = ..., payment_addr: _Optional[bytes] = ..., is_amp: bool = ..., amp_invoice_state: _Optional[_Mapping[str, AMPInvoiceState]] = ..., is_blinded: bool = ..., blinded_path_config: _Optional[_Union[BlindedPathConfig, _Mapping]] = ...) -> None: ... + +class BlindedPathConfig(_message.Message): + __slots__ = ("min_num_real_hops", "num_hops", "max_num_paths", "node_omission_list", "incoming_channel_list") + MIN_NUM_REAL_HOPS_FIELD_NUMBER: _ClassVar[int] + NUM_HOPS_FIELD_NUMBER: _ClassVar[int] + MAX_NUM_PATHS_FIELD_NUMBER: _ClassVar[int] + NODE_OMISSION_LIST_FIELD_NUMBER: _ClassVar[int] + INCOMING_CHANNEL_LIST_FIELD_NUMBER: _ClassVar[int] + min_num_real_hops: int + num_hops: int + max_num_paths: int + node_omission_list: _containers.RepeatedScalarFieldContainer[bytes] + incoming_channel_list: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, min_num_real_hops: _Optional[int] = ..., num_hops: _Optional[int] = ..., max_num_paths: _Optional[int] = ..., node_omission_list: _Optional[_Iterable[bytes]] = ..., incoming_channel_list: _Optional[_Iterable[int]] = ...) -> None: ... + +class InvoiceHTLC(_message.Message): + __slots__ = ("chan_id", "htlc_index", "amt_msat", "accept_height", "accept_time", "resolve_time", "expiry_height", "state", "custom_records", "mpp_total_amt_msat", "amp", "custom_channel_data") + class CustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + HTLC_INDEX_FIELD_NUMBER: _ClassVar[int] + AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + ACCEPT_HEIGHT_FIELD_NUMBER: _ClassVar[int] + ACCEPT_TIME_FIELD_NUMBER: _ClassVar[int] + RESOLVE_TIME_FIELD_NUMBER: _ClassVar[int] + EXPIRY_HEIGHT_FIELD_NUMBER: _ClassVar[int] + STATE_FIELD_NUMBER: _ClassVar[int] + CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + MPP_TOTAL_AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + AMP_FIELD_NUMBER: _ClassVar[int] + CUSTOM_CHANNEL_DATA_FIELD_NUMBER: _ClassVar[int] + chan_id: int + htlc_index: int + amt_msat: int + accept_height: int + accept_time: int + resolve_time: int + expiry_height: int + state: InvoiceHTLCState + custom_records: _containers.ScalarMap[int, bytes] + mpp_total_amt_msat: int + amp: AMP + custom_channel_data: bytes + def __init__(self, chan_id: _Optional[int] = ..., htlc_index: _Optional[int] = ..., amt_msat: _Optional[int] = ..., accept_height: _Optional[int] = ..., accept_time: _Optional[int] = ..., resolve_time: _Optional[int] = ..., expiry_height: _Optional[int] = ..., state: _Optional[_Union[InvoiceHTLCState, str]] = ..., custom_records: _Optional[_Mapping[int, bytes]] = ..., mpp_total_amt_msat: _Optional[int] = ..., amp: _Optional[_Union[AMP, _Mapping]] = ..., custom_channel_data: _Optional[bytes] = ...) -> None: ... + +class AMP(_message.Message): + __slots__ = ("root_share", "set_id", "child_index", "hash", "preimage") + ROOT_SHARE_FIELD_NUMBER: _ClassVar[int] + SET_ID_FIELD_NUMBER: _ClassVar[int] + CHILD_INDEX_FIELD_NUMBER: _ClassVar[int] + HASH_FIELD_NUMBER: _ClassVar[int] + PREIMAGE_FIELD_NUMBER: _ClassVar[int] + root_share: bytes + set_id: bytes + child_index: int + hash: bytes + preimage: bytes + def __init__(self, root_share: _Optional[bytes] = ..., set_id: _Optional[bytes] = ..., child_index: _Optional[int] = ..., hash: _Optional[bytes] = ..., preimage: _Optional[bytes] = ...) -> None: ... + +class AddInvoiceResponse(_message.Message): + __slots__ = ("r_hash", "payment_request", "add_index", "payment_addr") + R_HASH_FIELD_NUMBER: _ClassVar[int] + PAYMENT_REQUEST_FIELD_NUMBER: _ClassVar[int] + ADD_INDEX_FIELD_NUMBER: _ClassVar[int] + PAYMENT_ADDR_FIELD_NUMBER: _ClassVar[int] + r_hash: bytes + payment_request: str + add_index: int + payment_addr: bytes + def __init__(self, r_hash: _Optional[bytes] = ..., payment_request: _Optional[str] = ..., add_index: _Optional[int] = ..., payment_addr: _Optional[bytes] = ...) -> None: ... + +class PaymentHash(_message.Message): + __slots__ = ("r_hash_str", "r_hash") + R_HASH_STR_FIELD_NUMBER: _ClassVar[int] + R_HASH_FIELD_NUMBER: _ClassVar[int] + r_hash_str: str + r_hash: bytes + def __init__(self, r_hash_str: _Optional[str] = ..., r_hash: _Optional[bytes] = ...) -> None: ... + +class ListInvoiceRequest(_message.Message): + __slots__ = ("pending_only", "index_offset", "num_max_invoices", "reversed", "creation_date_start", "creation_date_end") + PENDING_ONLY_FIELD_NUMBER: _ClassVar[int] + INDEX_OFFSET_FIELD_NUMBER: _ClassVar[int] + NUM_MAX_INVOICES_FIELD_NUMBER: _ClassVar[int] + REVERSED_FIELD_NUMBER: _ClassVar[int] + CREATION_DATE_START_FIELD_NUMBER: _ClassVar[int] + CREATION_DATE_END_FIELD_NUMBER: _ClassVar[int] + pending_only: bool + index_offset: int + num_max_invoices: int + reversed: bool + creation_date_start: int + creation_date_end: int + def __init__(self, pending_only: bool = ..., index_offset: _Optional[int] = ..., num_max_invoices: _Optional[int] = ..., reversed: bool = ..., creation_date_start: _Optional[int] = ..., creation_date_end: _Optional[int] = ...) -> None: ... + +class ListInvoiceResponse(_message.Message): + __slots__ = ("invoices", "last_index_offset", "first_index_offset") + INVOICES_FIELD_NUMBER: _ClassVar[int] + LAST_INDEX_OFFSET_FIELD_NUMBER: _ClassVar[int] + FIRST_INDEX_OFFSET_FIELD_NUMBER: _ClassVar[int] + invoices: _containers.RepeatedCompositeFieldContainer[Invoice] + last_index_offset: int + first_index_offset: int + def __init__(self, invoices: _Optional[_Iterable[_Union[Invoice, _Mapping]]] = ..., last_index_offset: _Optional[int] = ..., first_index_offset: _Optional[int] = ...) -> None: ... + +class InvoiceSubscription(_message.Message): + __slots__ = ("add_index", "settle_index") + ADD_INDEX_FIELD_NUMBER: _ClassVar[int] + SETTLE_INDEX_FIELD_NUMBER: _ClassVar[int] + add_index: int + settle_index: int + def __init__(self, add_index: _Optional[int] = ..., settle_index: _Optional[int] = ...) -> None: ... + +class DelCanceledInvoiceReq(_message.Message): + __slots__ = ("invoice_hash",) + INVOICE_HASH_FIELD_NUMBER: _ClassVar[int] + invoice_hash: str + def __init__(self, invoice_hash: _Optional[str] = ...) -> None: ... + +class DelCanceledInvoiceResp(_message.Message): + __slots__ = ("status",) + STATUS_FIELD_NUMBER: _ClassVar[int] + status: str + def __init__(self, status: _Optional[str] = ...) -> None: ... + +class Payment(_message.Message): + __slots__ = ("payment_hash", "value", "creation_date", "fee", "payment_preimage", "value_sat", "value_msat", "payment_request", "status", "fee_sat", "fee_msat", "creation_time_ns", "htlcs", "payment_index", "failure_reason", "first_hop_custom_records") + class PaymentStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + UNKNOWN: _ClassVar[Payment.PaymentStatus] + IN_FLIGHT: _ClassVar[Payment.PaymentStatus] + SUCCEEDED: _ClassVar[Payment.PaymentStatus] + FAILED: _ClassVar[Payment.PaymentStatus] + INITIATED: _ClassVar[Payment.PaymentStatus] + UNKNOWN: Payment.PaymentStatus + IN_FLIGHT: Payment.PaymentStatus + SUCCEEDED: Payment.PaymentStatus + FAILED: Payment.PaymentStatus + INITIATED: Payment.PaymentStatus + class FirstHopCustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + CREATION_DATE_FIELD_NUMBER: _ClassVar[int] + FEE_FIELD_NUMBER: _ClassVar[int] + PAYMENT_PREIMAGE_FIELD_NUMBER: _ClassVar[int] + VALUE_SAT_FIELD_NUMBER: _ClassVar[int] + VALUE_MSAT_FIELD_NUMBER: _ClassVar[int] + PAYMENT_REQUEST_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + FEE_SAT_FIELD_NUMBER: _ClassVar[int] + FEE_MSAT_FIELD_NUMBER: _ClassVar[int] + CREATION_TIME_NS_FIELD_NUMBER: _ClassVar[int] + HTLCS_FIELD_NUMBER: _ClassVar[int] + PAYMENT_INDEX_FIELD_NUMBER: _ClassVar[int] + FAILURE_REASON_FIELD_NUMBER: _ClassVar[int] + FIRST_HOP_CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + payment_hash: str + value: int + creation_date: int + fee: int + payment_preimage: str + value_sat: int + value_msat: int + payment_request: str + status: Payment.PaymentStatus + fee_sat: int + fee_msat: int + creation_time_ns: int + htlcs: _containers.RepeatedCompositeFieldContainer[HTLCAttempt] + payment_index: int + failure_reason: PaymentFailureReason + first_hop_custom_records: _containers.ScalarMap[int, bytes] + def __init__(self, payment_hash: _Optional[str] = ..., value: _Optional[int] = ..., creation_date: _Optional[int] = ..., fee: _Optional[int] = ..., payment_preimage: _Optional[str] = ..., value_sat: _Optional[int] = ..., value_msat: _Optional[int] = ..., payment_request: _Optional[str] = ..., status: _Optional[_Union[Payment.PaymentStatus, str]] = ..., fee_sat: _Optional[int] = ..., fee_msat: _Optional[int] = ..., creation_time_ns: _Optional[int] = ..., htlcs: _Optional[_Iterable[_Union[HTLCAttempt, _Mapping]]] = ..., payment_index: _Optional[int] = ..., failure_reason: _Optional[_Union[PaymentFailureReason, str]] = ..., first_hop_custom_records: _Optional[_Mapping[int, bytes]] = ...) -> None: ... + +class HTLCAttempt(_message.Message): + __slots__ = ("attempt_id", "status", "route", "attempt_time_ns", "resolve_time_ns", "failure", "preimage") + class HTLCStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + IN_FLIGHT: _ClassVar[HTLCAttempt.HTLCStatus] + SUCCEEDED: _ClassVar[HTLCAttempt.HTLCStatus] + FAILED: _ClassVar[HTLCAttempt.HTLCStatus] + IN_FLIGHT: HTLCAttempt.HTLCStatus + SUCCEEDED: HTLCAttempt.HTLCStatus + FAILED: HTLCAttempt.HTLCStatus + ATTEMPT_ID_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + ROUTE_FIELD_NUMBER: _ClassVar[int] + ATTEMPT_TIME_NS_FIELD_NUMBER: _ClassVar[int] + RESOLVE_TIME_NS_FIELD_NUMBER: _ClassVar[int] + FAILURE_FIELD_NUMBER: _ClassVar[int] + PREIMAGE_FIELD_NUMBER: _ClassVar[int] + attempt_id: int + status: HTLCAttempt.HTLCStatus + route: Route + attempt_time_ns: int + resolve_time_ns: int + failure: Failure + preimage: bytes + def __init__(self, attempt_id: _Optional[int] = ..., status: _Optional[_Union[HTLCAttempt.HTLCStatus, str]] = ..., route: _Optional[_Union[Route, _Mapping]] = ..., attempt_time_ns: _Optional[int] = ..., resolve_time_ns: _Optional[int] = ..., failure: _Optional[_Union[Failure, _Mapping]] = ..., preimage: _Optional[bytes] = ...) -> None: ... + +class ListPaymentsRequest(_message.Message): + __slots__ = ("include_incomplete", "index_offset", "max_payments", "reversed", "count_total_payments", "creation_date_start", "creation_date_end") + INCLUDE_INCOMPLETE_FIELD_NUMBER: _ClassVar[int] + INDEX_OFFSET_FIELD_NUMBER: _ClassVar[int] + MAX_PAYMENTS_FIELD_NUMBER: _ClassVar[int] + REVERSED_FIELD_NUMBER: _ClassVar[int] + COUNT_TOTAL_PAYMENTS_FIELD_NUMBER: _ClassVar[int] + CREATION_DATE_START_FIELD_NUMBER: _ClassVar[int] + CREATION_DATE_END_FIELD_NUMBER: _ClassVar[int] + include_incomplete: bool + index_offset: int + max_payments: int + reversed: bool + count_total_payments: bool + creation_date_start: int + creation_date_end: int + def __init__(self, include_incomplete: bool = ..., index_offset: _Optional[int] = ..., max_payments: _Optional[int] = ..., reversed: bool = ..., count_total_payments: bool = ..., creation_date_start: _Optional[int] = ..., creation_date_end: _Optional[int] = ...) -> None: ... + +class ListPaymentsResponse(_message.Message): + __slots__ = ("payments", "first_index_offset", "last_index_offset", "total_num_payments") + PAYMENTS_FIELD_NUMBER: _ClassVar[int] + FIRST_INDEX_OFFSET_FIELD_NUMBER: _ClassVar[int] + LAST_INDEX_OFFSET_FIELD_NUMBER: _ClassVar[int] + TOTAL_NUM_PAYMENTS_FIELD_NUMBER: _ClassVar[int] + payments: _containers.RepeatedCompositeFieldContainer[Payment] + first_index_offset: int + last_index_offset: int + total_num_payments: int + def __init__(self, payments: _Optional[_Iterable[_Union[Payment, _Mapping]]] = ..., first_index_offset: _Optional[int] = ..., last_index_offset: _Optional[int] = ..., total_num_payments: _Optional[int] = ...) -> None: ... + +class DeletePaymentRequest(_message.Message): + __slots__ = ("payment_hash", "failed_htlcs_only") + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + FAILED_HTLCS_ONLY_FIELD_NUMBER: _ClassVar[int] + payment_hash: bytes + failed_htlcs_only: bool + def __init__(self, payment_hash: _Optional[bytes] = ..., failed_htlcs_only: bool = ...) -> None: ... + +class DeleteAllPaymentsRequest(_message.Message): + __slots__ = ("failed_payments_only", "failed_htlcs_only", "all_payments") + FAILED_PAYMENTS_ONLY_FIELD_NUMBER: _ClassVar[int] + FAILED_HTLCS_ONLY_FIELD_NUMBER: _ClassVar[int] + ALL_PAYMENTS_FIELD_NUMBER: _ClassVar[int] + failed_payments_only: bool + failed_htlcs_only: bool + all_payments: bool + def __init__(self, failed_payments_only: bool = ..., failed_htlcs_only: bool = ..., all_payments: bool = ...) -> None: ... + +class DeletePaymentResponse(_message.Message): + __slots__ = ("status",) + STATUS_FIELD_NUMBER: _ClassVar[int] + status: str + def __init__(self, status: _Optional[str] = ...) -> None: ... + +class DeleteAllPaymentsResponse(_message.Message): + __slots__ = ("status",) + STATUS_FIELD_NUMBER: _ClassVar[int] + status: str + def __init__(self, status: _Optional[str] = ...) -> None: ... + +class AbandonChannelRequest(_message.Message): + __slots__ = ("channel_point", "pending_funding_shim_only", "i_know_what_i_am_doing") + CHANNEL_POINT_FIELD_NUMBER: _ClassVar[int] + PENDING_FUNDING_SHIM_ONLY_FIELD_NUMBER: _ClassVar[int] + I_KNOW_WHAT_I_AM_DOING_FIELD_NUMBER: _ClassVar[int] + channel_point: ChannelPoint + pending_funding_shim_only: bool + i_know_what_i_am_doing: bool + def __init__(self, channel_point: _Optional[_Union[ChannelPoint, _Mapping]] = ..., pending_funding_shim_only: bool = ..., i_know_what_i_am_doing: bool = ...) -> None: ... + +class AbandonChannelResponse(_message.Message): + __slots__ = ("status",) + STATUS_FIELD_NUMBER: _ClassVar[int] + status: str + def __init__(self, status: _Optional[str] = ...) -> None: ... + +class DebugLevelRequest(_message.Message): + __slots__ = ("show", "level_spec") + SHOW_FIELD_NUMBER: _ClassVar[int] + LEVEL_SPEC_FIELD_NUMBER: _ClassVar[int] + show: bool + level_spec: str + def __init__(self, show: bool = ..., level_spec: _Optional[str] = ...) -> None: ... + +class DebugLevelResponse(_message.Message): + __slots__ = ("sub_systems",) + SUB_SYSTEMS_FIELD_NUMBER: _ClassVar[int] + sub_systems: str + def __init__(self, sub_systems: _Optional[str] = ...) -> None: ... + +class PayReqString(_message.Message): + __slots__ = ("pay_req",) + PAY_REQ_FIELD_NUMBER: _ClassVar[int] + pay_req: str + def __init__(self, pay_req: _Optional[str] = ...) -> None: ... + +class PayReq(_message.Message): + __slots__ = ("destination", "payment_hash", "num_satoshis", "timestamp", "expiry", "description", "description_hash", "fallback_addr", "cltv_expiry", "route_hints", "payment_addr", "num_msat", "features", "blinded_paths") + class FeaturesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: Feature + def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[Feature, _Mapping]] = ...) -> None: ... + DESTINATION_FIELD_NUMBER: _ClassVar[int] + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + NUM_SATOSHIS_FIELD_NUMBER: _ClassVar[int] + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + EXPIRY_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + DESCRIPTION_HASH_FIELD_NUMBER: _ClassVar[int] + FALLBACK_ADDR_FIELD_NUMBER: _ClassVar[int] + CLTV_EXPIRY_FIELD_NUMBER: _ClassVar[int] + ROUTE_HINTS_FIELD_NUMBER: _ClassVar[int] + PAYMENT_ADDR_FIELD_NUMBER: _ClassVar[int] + NUM_MSAT_FIELD_NUMBER: _ClassVar[int] + FEATURES_FIELD_NUMBER: _ClassVar[int] + BLINDED_PATHS_FIELD_NUMBER: _ClassVar[int] + destination: str + payment_hash: str + num_satoshis: int + timestamp: int + expiry: int + description: str + description_hash: str + fallback_addr: str + cltv_expiry: int + route_hints: _containers.RepeatedCompositeFieldContainer[RouteHint] + payment_addr: bytes + num_msat: int + features: _containers.MessageMap[int, Feature] + blinded_paths: _containers.RepeatedCompositeFieldContainer[BlindedPaymentPath] + def __init__(self, destination: _Optional[str] = ..., payment_hash: _Optional[str] = ..., num_satoshis: _Optional[int] = ..., timestamp: _Optional[int] = ..., expiry: _Optional[int] = ..., description: _Optional[str] = ..., description_hash: _Optional[str] = ..., fallback_addr: _Optional[str] = ..., cltv_expiry: _Optional[int] = ..., route_hints: _Optional[_Iterable[_Union[RouteHint, _Mapping]]] = ..., payment_addr: _Optional[bytes] = ..., num_msat: _Optional[int] = ..., features: _Optional[_Mapping[int, Feature]] = ..., blinded_paths: _Optional[_Iterable[_Union[BlindedPaymentPath, _Mapping]]] = ...) -> None: ... + +class Feature(_message.Message): + __slots__ = ("name", "is_required", "is_known") + NAME_FIELD_NUMBER: _ClassVar[int] + IS_REQUIRED_FIELD_NUMBER: _ClassVar[int] + IS_KNOWN_FIELD_NUMBER: _ClassVar[int] + name: str + is_required: bool + is_known: bool + def __init__(self, name: _Optional[str] = ..., is_required: bool = ..., is_known: bool = ...) -> None: ... + +class FeeReportRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class ChannelFeeReport(_message.Message): + __slots__ = ("chan_id", "channel_point", "base_fee_msat", "fee_per_mil", "fee_rate", "inbound_base_fee_msat", "inbound_fee_per_mil") + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + CHANNEL_POINT_FIELD_NUMBER: _ClassVar[int] + BASE_FEE_MSAT_FIELD_NUMBER: _ClassVar[int] + FEE_PER_MIL_FIELD_NUMBER: _ClassVar[int] + FEE_RATE_FIELD_NUMBER: _ClassVar[int] + INBOUND_BASE_FEE_MSAT_FIELD_NUMBER: _ClassVar[int] + INBOUND_FEE_PER_MIL_FIELD_NUMBER: _ClassVar[int] + chan_id: int + channel_point: str + base_fee_msat: int + fee_per_mil: int + fee_rate: float + inbound_base_fee_msat: int + inbound_fee_per_mil: int + def __init__(self, chan_id: _Optional[int] = ..., channel_point: _Optional[str] = ..., base_fee_msat: _Optional[int] = ..., fee_per_mil: _Optional[int] = ..., fee_rate: _Optional[float] = ..., inbound_base_fee_msat: _Optional[int] = ..., inbound_fee_per_mil: _Optional[int] = ...) -> None: ... + +class FeeReportResponse(_message.Message): + __slots__ = ("channel_fees", "day_fee_sum", "week_fee_sum", "month_fee_sum") + CHANNEL_FEES_FIELD_NUMBER: _ClassVar[int] + DAY_FEE_SUM_FIELD_NUMBER: _ClassVar[int] + WEEK_FEE_SUM_FIELD_NUMBER: _ClassVar[int] + MONTH_FEE_SUM_FIELD_NUMBER: _ClassVar[int] + channel_fees: _containers.RepeatedCompositeFieldContainer[ChannelFeeReport] + day_fee_sum: int + week_fee_sum: int + month_fee_sum: int + def __init__(self, channel_fees: _Optional[_Iterable[_Union[ChannelFeeReport, _Mapping]]] = ..., day_fee_sum: _Optional[int] = ..., week_fee_sum: _Optional[int] = ..., month_fee_sum: _Optional[int] = ...) -> None: ... + +class InboundFee(_message.Message): + __slots__ = ("base_fee_msat", "fee_rate_ppm") + BASE_FEE_MSAT_FIELD_NUMBER: _ClassVar[int] + FEE_RATE_PPM_FIELD_NUMBER: _ClassVar[int] + base_fee_msat: int + fee_rate_ppm: int + def __init__(self, base_fee_msat: _Optional[int] = ..., fee_rate_ppm: _Optional[int] = ...) -> None: ... + +class PolicyUpdateRequest(_message.Message): + __slots__ = ("chan_point", "base_fee_msat", "fee_rate", "fee_rate_ppm", "time_lock_delta", "max_htlc_msat", "min_htlc_msat", "min_htlc_msat_specified", "inbound_fee", "create_missing_edge") + GLOBAL_FIELD_NUMBER: _ClassVar[int] + CHAN_POINT_FIELD_NUMBER: _ClassVar[int] + BASE_FEE_MSAT_FIELD_NUMBER: _ClassVar[int] + FEE_RATE_FIELD_NUMBER: _ClassVar[int] + FEE_RATE_PPM_FIELD_NUMBER: _ClassVar[int] + TIME_LOCK_DELTA_FIELD_NUMBER: _ClassVar[int] + MAX_HTLC_MSAT_FIELD_NUMBER: _ClassVar[int] + MIN_HTLC_MSAT_FIELD_NUMBER: _ClassVar[int] + MIN_HTLC_MSAT_SPECIFIED_FIELD_NUMBER: _ClassVar[int] + INBOUND_FEE_FIELD_NUMBER: _ClassVar[int] + CREATE_MISSING_EDGE_FIELD_NUMBER: _ClassVar[int] + chan_point: ChannelPoint + base_fee_msat: int + fee_rate: float + fee_rate_ppm: int + time_lock_delta: int + max_htlc_msat: int + min_htlc_msat: int + min_htlc_msat_specified: bool + inbound_fee: InboundFee + create_missing_edge: bool + def __init__(self, chan_point: _Optional[_Union[ChannelPoint, _Mapping]] = ..., base_fee_msat: _Optional[int] = ..., fee_rate: _Optional[float] = ..., fee_rate_ppm: _Optional[int] = ..., time_lock_delta: _Optional[int] = ..., max_htlc_msat: _Optional[int] = ..., min_htlc_msat: _Optional[int] = ..., min_htlc_msat_specified: bool = ..., inbound_fee: _Optional[_Union[InboundFee, _Mapping]] = ..., create_missing_edge: bool = ..., **kwargs) -> None: ... + +class FailedUpdate(_message.Message): + __slots__ = ("outpoint", "reason", "update_error") + OUTPOINT_FIELD_NUMBER: _ClassVar[int] + REASON_FIELD_NUMBER: _ClassVar[int] + UPDATE_ERROR_FIELD_NUMBER: _ClassVar[int] + outpoint: OutPoint + reason: UpdateFailure + update_error: str + def __init__(self, outpoint: _Optional[_Union[OutPoint, _Mapping]] = ..., reason: _Optional[_Union[UpdateFailure, str]] = ..., update_error: _Optional[str] = ...) -> None: ... + +class PolicyUpdateResponse(_message.Message): + __slots__ = ("failed_updates",) + FAILED_UPDATES_FIELD_NUMBER: _ClassVar[int] + failed_updates: _containers.RepeatedCompositeFieldContainer[FailedUpdate] + def __init__(self, failed_updates: _Optional[_Iterable[_Union[FailedUpdate, _Mapping]]] = ...) -> None: ... + +class ForwardingHistoryRequest(_message.Message): + __slots__ = ("start_time", "end_time", "index_offset", "num_max_events", "peer_alias_lookup", "incoming_chan_ids", "outgoing_chan_ids") + START_TIME_FIELD_NUMBER: _ClassVar[int] + END_TIME_FIELD_NUMBER: _ClassVar[int] + INDEX_OFFSET_FIELD_NUMBER: _ClassVar[int] + NUM_MAX_EVENTS_FIELD_NUMBER: _ClassVar[int] + PEER_ALIAS_LOOKUP_FIELD_NUMBER: _ClassVar[int] + INCOMING_CHAN_IDS_FIELD_NUMBER: _ClassVar[int] + OUTGOING_CHAN_IDS_FIELD_NUMBER: _ClassVar[int] + start_time: int + end_time: int + index_offset: int + num_max_events: int + peer_alias_lookup: bool + incoming_chan_ids: _containers.RepeatedScalarFieldContainer[int] + outgoing_chan_ids: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, start_time: _Optional[int] = ..., end_time: _Optional[int] = ..., index_offset: _Optional[int] = ..., num_max_events: _Optional[int] = ..., peer_alias_lookup: bool = ..., incoming_chan_ids: _Optional[_Iterable[int]] = ..., outgoing_chan_ids: _Optional[_Iterable[int]] = ...) -> None: ... + +class ForwardingEvent(_message.Message): + __slots__ = ("timestamp", "chan_id_in", "chan_id_out", "amt_in", "amt_out", "fee", "fee_msat", "amt_in_msat", "amt_out_msat", "timestamp_ns", "peer_alias_in", "peer_alias_out", "incoming_htlc_id", "outgoing_htlc_id") + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + CHAN_ID_IN_FIELD_NUMBER: _ClassVar[int] + CHAN_ID_OUT_FIELD_NUMBER: _ClassVar[int] + AMT_IN_FIELD_NUMBER: _ClassVar[int] + AMT_OUT_FIELD_NUMBER: _ClassVar[int] + FEE_FIELD_NUMBER: _ClassVar[int] + FEE_MSAT_FIELD_NUMBER: _ClassVar[int] + AMT_IN_MSAT_FIELD_NUMBER: _ClassVar[int] + AMT_OUT_MSAT_FIELD_NUMBER: _ClassVar[int] + TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int] + PEER_ALIAS_IN_FIELD_NUMBER: _ClassVar[int] + PEER_ALIAS_OUT_FIELD_NUMBER: _ClassVar[int] + INCOMING_HTLC_ID_FIELD_NUMBER: _ClassVar[int] + OUTGOING_HTLC_ID_FIELD_NUMBER: _ClassVar[int] + timestamp: int + chan_id_in: int + chan_id_out: int + amt_in: int + amt_out: int + fee: int + fee_msat: int + amt_in_msat: int + amt_out_msat: int + timestamp_ns: int + peer_alias_in: str + peer_alias_out: str + incoming_htlc_id: int + outgoing_htlc_id: int + def __init__(self, timestamp: _Optional[int] = ..., chan_id_in: _Optional[int] = ..., chan_id_out: _Optional[int] = ..., amt_in: _Optional[int] = ..., amt_out: _Optional[int] = ..., fee: _Optional[int] = ..., fee_msat: _Optional[int] = ..., amt_in_msat: _Optional[int] = ..., amt_out_msat: _Optional[int] = ..., timestamp_ns: _Optional[int] = ..., peer_alias_in: _Optional[str] = ..., peer_alias_out: _Optional[str] = ..., incoming_htlc_id: _Optional[int] = ..., outgoing_htlc_id: _Optional[int] = ...) -> None: ... + +class ForwardingHistoryResponse(_message.Message): + __slots__ = ("forwarding_events", "last_offset_index") + FORWARDING_EVENTS_FIELD_NUMBER: _ClassVar[int] + LAST_OFFSET_INDEX_FIELD_NUMBER: _ClassVar[int] + forwarding_events: _containers.RepeatedCompositeFieldContainer[ForwardingEvent] + last_offset_index: int + def __init__(self, forwarding_events: _Optional[_Iterable[_Union[ForwardingEvent, _Mapping]]] = ..., last_offset_index: _Optional[int] = ...) -> None: ... + +class ExportChannelBackupRequest(_message.Message): + __slots__ = ("chan_point",) + CHAN_POINT_FIELD_NUMBER: _ClassVar[int] + chan_point: ChannelPoint + def __init__(self, chan_point: _Optional[_Union[ChannelPoint, _Mapping]] = ...) -> None: ... + +class ChannelBackup(_message.Message): + __slots__ = ("chan_point", "chan_backup") + CHAN_POINT_FIELD_NUMBER: _ClassVar[int] + CHAN_BACKUP_FIELD_NUMBER: _ClassVar[int] + chan_point: ChannelPoint + chan_backup: bytes + def __init__(self, chan_point: _Optional[_Union[ChannelPoint, _Mapping]] = ..., chan_backup: _Optional[bytes] = ...) -> None: ... + +class MultiChanBackup(_message.Message): + __slots__ = ("chan_points", "multi_chan_backup") + CHAN_POINTS_FIELD_NUMBER: _ClassVar[int] + MULTI_CHAN_BACKUP_FIELD_NUMBER: _ClassVar[int] + chan_points: _containers.RepeatedCompositeFieldContainer[ChannelPoint] + multi_chan_backup: bytes + def __init__(self, chan_points: _Optional[_Iterable[_Union[ChannelPoint, _Mapping]]] = ..., multi_chan_backup: _Optional[bytes] = ...) -> None: ... + +class ChanBackupExportRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class ChanBackupSnapshot(_message.Message): + __slots__ = ("single_chan_backups", "multi_chan_backup") + SINGLE_CHAN_BACKUPS_FIELD_NUMBER: _ClassVar[int] + MULTI_CHAN_BACKUP_FIELD_NUMBER: _ClassVar[int] + single_chan_backups: ChannelBackups + multi_chan_backup: MultiChanBackup + def __init__(self, single_chan_backups: _Optional[_Union[ChannelBackups, _Mapping]] = ..., multi_chan_backup: _Optional[_Union[MultiChanBackup, _Mapping]] = ...) -> None: ... + +class ChannelBackups(_message.Message): + __slots__ = ("chan_backups",) + CHAN_BACKUPS_FIELD_NUMBER: _ClassVar[int] + chan_backups: _containers.RepeatedCompositeFieldContainer[ChannelBackup] + def __init__(self, chan_backups: _Optional[_Iterable[_Union[ChannelBackup, _Mapping]]] = ...) -> None: ... + +class RestoreChanBackupRequest(_message.Message): + __slots__ = ("chan_backups", "multi_chan_backup") + CHAN_BACKUPS_FIELD_NUMBER: _ClassVar[int] + MULTI_CHAN_BACKUP_FIELD_NUMBER: _ClassVar[int] + chan_backups: ChannelBackups + multi_chan_backup: bytes + def __init__(self, chan_backups: _Optional[_Union[ChannelBackups, _Mapping]] = ..., multi_chan_backup: _Optional[bytes] = ...) -> None: ... + +class RestoreBackupResponse(_message.Message): + __slots__ = ("num_restored",) + NUM_RESTORED_FIELD_NUMBER: _ClassVar[int] + num_restored: int + def __init__(self, num_restored: _Optional[int] = ...) -> None: ... + +class ChannelBackupSubscription(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class VerifyChanBackupResponse(_message.Message): + __slots__ = ("chan_points",) + CHAN_POINTS_FIELD_NUMBER: _ClassVar[int] + chan_points: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, chan_points: _Optional[_Iterable[str]] = ...) -> None: ... + +class MacaroonPermission(_message.Message): + __slots__ = ("entity", "action") + ENTITY_FIELD_NUMBER: _ClassVar[int] + ACTION_FIELD_NUMBER: _ClassVar[int] + entity: str + action: str + def __init__(self, entity: _Optional[str] = ..., action: _Optional[str] = ...) -> None: ... + +class BakeMacaroonRequest(_message.Message): + __slots__ = ("permissions", "root_key_id", "allow_external_permissions") + PERMISSIONS_FIELD_NUMBER: _ClassVar[int] + ROOT_KEY_ID_FIELD_NUMBER: _ClassVar[int] + ALLOW_EXTERNAL_PERMISSIONS_FIELD_NUMBER: _ClassVar[int] + permissions: _containers.RepeatedCompositeFieldContainer[MacaroonPermission] + root_key_id: int + allow_external_permissions: bool + def __init__(self, permissions: _Optional[_Iterable[_Union[MacaroonPermission, _Mapping]]] = ..., root_key_id: _Optional[int] = ..., allow_external_permissions: bool = ...) -> None: ... + +class BakeMacaroonResponse(_message.Message): + __slots__ = ("macaroon",) + MACAROON_FIELD_NUMBER: _ClassVar[int] + macaroon: str + def __init__(self, macaroon: _Optional[str] = ...) -> None: ... + +class ListMacaroonIDsRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class ListMacaroonIDsResponse(_message.Message): + __slots__ = ("root_key_ids",) + ROOT_KEY_IDS_FIELD_NUMBER: _ClassVar[int] + root_key_ids: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, root_key_ids: _Optional[_Iterable[int]] = ...) -> None: ... + +class DeleteMacaroonIDRequest(_message.Message): + __slots__ = ("root_key_id",) + ROOT_KEY_ID_FIELD_NUMBER: _ClassVar[int] + root_key_id: int + def __init__(self, root_key_id: _Optional[int] = ...) -> None: ... + +class DeleteMacaroonIDResponse(_message.Message): + __slots__ = ("deleted",) + DELETED_FIELD_NUMBER: _ClassVar[int] + deleted: bool + def __init__(self, deleted: bool = ...) -> None: ... + +class MacaroonPermissionList(_message.Message): + __slots__ = ("permissions",) + PERMISSIONS_FIELD_NUMBER: _ClassVar[int] + permissions: _containers.RepeatedCompositeFieldContainer[MacaroonPermission] + def __init__(self, permissions: _Optional[_Iterable[_Union[MacaroonPermission, _Mapping]]] = ...) -> None: ... + +class ListPermissionsRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class ListPermissionsResponse(_message.Message): + __slots__ = ("method_permissions",) + class MethodPermissionsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: MacaroonPermissionList + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[MacaroonPermissionList, _Mapping]] = ...) -> None: ... + METHOD_PERMISSIONS_FIELD_NUMBER: _ClassVar[int] + method_permissions: _containers.MessageMap[str, MacaroonPermissionList] + def __init__(self, method_permissions: _Optional[_Mapping[str, MacaroonPermissionList]] = ...) -> None: ... + +class Failure(_message.Message): + __slots__ = ("code", "channel_update", "htlc_msat", "onion_sha_256", "cltv_expiry", "flags", "failure_source_index", "height") + class FailureCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + RESERVED: _ClassVar[Failure.FailureCode] + INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS: _ClassVar[Failure.FailureCode] + INCORRECT_PAYMENT_AMOUNT: _ClassVar[Failure.FailureCode] + FINAL_INCORRECT_CLTV_EXPIRY: _ClassVar[Failure.FailureCode] + FINAL_INCORRECT_HTLC_AMOUNT: _ClassVar[Failure.FailureCode] + FINAL_EXPIRY_TOO_SOON: _ClassVar[Failure.FailureCode] + INVALID_REALM: _ClassVar[Failure.FailureCode] + EXPIRY_TOO_SOON: _ClassVar[Failure.FailureCode] + INVALID_ONION_VERSION: _ClassVar[Failure.FailureCode] + INVALID_ONION_HMAC: _ClassVar[Failure.FailureCode] + INVALID_ONION_KEY: _ClassVar[Failure.FailureCode] + AMOUNT_BELOW_MINIMUM: _ClassVar[Failure.FailureCode] + FEE_INSUFFICIENT: _ClassVar[Failure.FailureCode] + INCORRECT_CLTV_EXPIRY: _ClassVar[Failure.FailureCode] + CHANNEL_DISABLED: _ClassVar[Failure.FailureCode] + TEMPORARY_CHANNEL_FAILURE: _ClassVar[Failure.FailureCode] + REQUIRED_NODE_FEATURE_MISSING: _ClassVar[Failure.FailureCode] + REQUIRED_CHANNEL_FEATURE_MISSING: _ClassVar[Failure.FailureCode] + UNKNOWN_NEXT_PEER: _ClassVar[Failure.FailureCode] + TEMPORARY_NODE_FAILURE: _ClassVar[Failure.FailureCode] + PERMANENT_NODE_FAILURE: _ClassVar[Failure.FailureCode] + PERMANENT_CHANNEL_FAILURE: _ClassVar[Failure.FailureCode] + EXPIRY_TOO_FAR: _ClassVar[Failure.FailureCode] + MPP_TIMEOUT: _ClassVar[Failure.FailureCode] + INVALID_ONION_PAYLOAD: _ClassVar[Failure.FailureCode] + INVALID_ONION_BLINDING: _ClassVar[Failure.FailureCode] + INTERNAL_FAILURE: _ClassVar[Failure.FailureCode] + UNKNOWN_FAILURE: _ClassVar[Failure.FailureCode] + UNREADABLE_FAILURE: _ClassVar[Failure.FailureCode] + RESERVED: Failure.FailureCode + INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS: Failure.FailureCode + INCORRECT_PAYMENT_AMOUNT: Failure.FailureCode + FINAL_INCORRECT_CLTV_EXPIRY: Failure.FailureCode + FINAL_INCORRECT_HTLC_AMOUNT: Failure.FailureCode + FINAL_EXPIRY_TOO_SOON: Failure.FailureCode + INVALID_REALM: Failure.FailureCode + EXPIRY_TOO_SOON: Failure.FailureCode + INVALID_ONION_VERSION: Failure.FailureCode + INVALID_ONION_HMAC: Failure.FailureCode + INVALID_ONION_KEY: Failure.FailureCode + AMOUNT_BELOW_MINIMUM: Failure.FailureCode + FEE_INSUFFICIENT: Failure.FailureCode + INCORRECT_CLTV_EXPIRY: Failure.FailureCode + CHANNEL_DISABLED: Failure.FailureCode + TEMPORARY_CHANNEL_FAILURE: Failure.FailureCode + REQUIRED_NODE_FEATURE_MISSING: Failure.FailureCode + REQUIRED_CHANNEL_FEATURE_MISSING: Failure.FailureCode + UNKNOWN_NEXT_PEER: Failure.FailureCode + TEMPORARY_NODE_FAILURE: Failure.FailureCode + PERMANENT_NODE_FAILURE: Failure.FailureCode + PERMANENT_CHANNEL_FAILURE: Failure.FailureCode + EXPIRY_TOO_FAR: Failure.FailureCode + MPP_TIMEOUT: Failure.FailureCode + INVALID_ONION_PAYLOAD: Failure.FailureCode + INVALID_ONION_BLINDING: Failure.FailureCode + INTERNAL_FAILURE: Failure.FailureCode + UNKNOWN_FAILURE: Failure.FailureCode + UNREADABLE_FAILURE: Failure.FailureCode + CODE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_UPDATE_FIELD_NUMBER: _ClassVar[int] + HTLC_MSAT_FIELD_NUMBER: _ClassVar[int] + ONION_SHA_256_FIELD_NUMBER: _ClassVar[int] + CLTV_EXPIRY_FIELD_NUMBER: _ClassVar[int] + FLAGS_FIELD_NUMBER: _ClassVar[int] + FAILURE_SOURCE_INDEX_FIELD_NUMBER: _ClassVar[int] + HEIGHT_FIELD_NUMBER: _ClassVar[int] + code: Failure.FailureCode + channel_update: ChannelUpdate + htlc_msat: int + onion_sha_256: bytes + cltv_expiry: int + flags: int + failure_source_index: int + height: int + def __init__(self, code: _Optional[_Union[Failure.FailureCode, str]] = ..., channel_update: _Optional[_Union[ChannelUpdate, _Mapping]] = ..., htlc_msat: _Optional[int] = ..., onion_sha_256: _Optional[bytes] = ..., cltv_expiry: _Optional[int] = ..., flags: _Optional[int] = ..., failure_source_index: _Optional[int] = ..., height: _Optional[int] = ...) -> None: ... + +class ChannelUpdate(_message.Message): + __slots__ = ("signature", "chain_hash", "chan_id", "timestamp", "message_flags", "channel_flags", "time_lock_delta", "htlc_minimum_msat", "base_fee", "fee_rate", "htlc_maximum_msat", "extra_opaque_data") + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + CHAIN_HASH_FIELD_NUMBER: _ClassVar[int] + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FLAGS_FIELD_NUMBER: _ClassVar[int] + CHANNEL_FLAGS_FIELD_NUMBER: _ClassVar[int] + TIME_LOCK_DELTA_FIELD_NUMBER: _ClassVar[int] + HTLC_MINIMUM_MSAT_FIELD_NUMBER: _ClassVar[int] + BASE_FEE_FIELD_NUMBER: _ClassVar[int] + FEE_RATE_FIELD_NUMBER: _ClassVar[int] + HTLC_MAXIMUM_MSAT_FIELD_NUMBER: _ClassVar[int] + EXTRA_OPAQUE_DATA_FIELD_NUMBER: _ClassVar[int] + signature: bytes + chain_hash: bytes + chan_id: int + timestamp: int + message_flags: int + channel_flags: int + time_lock_delta: int + htlc_minimum_msat: int + base_fee: int + fee_rate: int + htlc_maximum_msat: int + extra_opaque_data: bytes + def __init__(self, signature: _Optional[bytes] = ..., chain_hash: _Optional[bytes] = ..., chan_id: _Optional[int] = ..., timestamp: _Optional[int] = ..., message_flags: _Optional[int] = ..., channel_flags: _Optional[int] = ..., time_lock_delta: _Optional[int] = ..., htlc_minimum_msat: _Optional[int] = ..., base_fee: _Optional[int] = ..., fee_rate: _Optional[int] = ..., htlc_maximum_msat: _Optional[int] = ..., extra_opaque_data: _Optional[bytes] = ...) -> None: ... + +class MacaroonId(_message.Message): + __slots__ = ("nonce", "storageId", "ops") + NONCE_FIELD_NUMBER: _ClassVar[int] + STORAGEID_FIELD_NUMBER: _ClassVar[int] + OPS_FIELD_NUMBER: _ClassVar[int] + nonce: bytes + storageId: bytes + ops: _containers.RepeatedCompositeFieldContainer[Op] + def __init__(self, nonce: _Optional[bytes] = ..., storageId: _Optional[bytes] = ..., ops: _Optional[_Iterable[_Union[Op, _Mapping]]] = ...) -> None: ... + +class Op(_message.Message): + __slots__ = ("entity", "actions") + ENTITY_FIELD_NUMBER: _ClassVar[int] + ACTIONS_FIELD_NUMBER: _ClassVar[int] + entity: str + actions: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, entity: _Optional[str] = ..., actions: _Optional[_Iterable[str]] = ...) -> None: ... + +class CheckMacPermRequest(_message.Message): + __slots__ = ("macaroon", "permissions", "fullMethod", "check_default_perms_from_full_method") + MACAROON_FIELD_NUMBER: _ClassVar[int] + PERMISSIONS_FIELD_NUMBER: _ClassVar[int] + FULLMETHOD_FIELD_NUMBER: _ClassVar[int] + CHECK_DEFAULT_PERMS_FROM_FULL_METHOD_FIELD_NUMBER: _ClassVar[int] + macaroon: bytes + permissions: _containers.RepeatedCompositeFieldContainer[MacaroonPermission] + fullMethod: str + check_default_perms_from_full_method: bool + def __init__(self, macaroon: _Optional[bytes] = ..., permissions: _Optional[_Iterable[_Union[MacaroonPermission, _Mapping]]] = ..., fullMethod: _Optional[str] = ..., check_default_perms_from_full_method: bool = ...) -> None: ... + +class CheckMacPermResponse(_message.Message): + __slots__ = ("valid",) + VALID_FIELD_NUMBER: _ClassVar[int] + valid: bool + def __init__(self, valid: bool = ...) -> None: ... + +class RPCMiddlewareRequest(_message.Message): + __slots__ = ("request_id", "raw_macaroon", "custom_caveat_condition", "stream_auth", "request", "response", "reg_complete", "msg_id", "metadata_pairs") + class MetadataPairsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: MetadataValues + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[MetadataValues, _Mapping]] = ...) -> None: ... + REQUEST_ID_FIELD_NUMBER: _ClassVar[int] + RAW_MACAROON_FIELD_NUMBER: _ClassVar[int] + CUSTOM_CAVEAT_CONDITION_FIELD_NUMBER: _ClassVar[int] + STREAM_AUTH_FIELD_NUMBER: _ClassVar[int] + REQUEST_FIELD_NUMBER: _ClassVar[int] + RESPONSE_FIELD_NUMBER: _ClassVar[int] + REG_COMPLETE_FIELD_NUMBER: _ClassVar[int] + MSG_ID_FIELD_NUMBER: _ClassVar[int] + METADATA_PAIRS_FIELD_NUMBER: _ClassVar[int] + request_id: int + raw_macaroon: bytes + custom_caveat_condition: str + stream_auth: StreamAuth + request: RPCMessage + response: RPCMessage + reg_complete: bool + msg_id: int + metadata_pairs: _containers.MessageMap[str, MetadataValues] + def __init__(self, request_id: _Optional[int] = ..., raw_macaroon: _Optional[bytes] = ..., custom_caveat_condition: _Optional[str] = ..., stream_auth: _Optional[_Union[StreamAuth, _Mapping]] = ..., request: _Optional[_Union[RPCMessage, _Mapping]] = ..., response: _Optional[_Union[RPCMessage, _Mapping]] = ..., reg_complete: bool = ..., msg_id: _Optional[int] = ..., metadata_pairs: _Optional[_Mapping[str, MetadataValues]] = ...) -> None: ... + +class MetadataValues(_message.Message): + __slots__ = ("values",) + VALUES_FIELD_NUMBER: _ClassVar[int] + values: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, values: _Optional[_Iterable[str]] = ...) -> None: ... + +class StreamAuth(_message.Message): + __slots__ = ("method_full_uri",) + METHOD_FULL_URI_FIELD_NUMBER: _ClassVar[int] + method_full_uri: str + def __init__(self, method_full_uri: _Optional[str] = ...) -> None: ... + +class RPCMessage(_message.Message): + __slots__ = ("method_full_uri", "stream_rpc", "type_name", "serialized", "is_error") + METHOD_FULL_URI_FIELD_NUMBER: _ClassVar[int] + STREAM_RPC_FIELD_NUMBER: _ClassVar[int] + TYPE_NAME_FIELD_NUMBER: _ClassVar[int] + SERIALIZED_FIELD_NUMBER: _ClassVar[int] + IS_ERROR_FIELD_NUMBER: _ClassVar[int] + method_full_uri: str + stream_rpc: bool + type_name: str + serialized: bytes + is_error: bool + def __init__(self, method_full_uri: _Optional[str] = ..., stream_rpc: bool = ..., type_name: _Optional[str] = ..., serialized: _Optional[bytes] = ..., is_error: bool = ...) -> None: ... + +class RPCMiddlewareResponse(_message.Message): + __slots__ = ("ref_msg_id", "register", "feedback") + REF_MSG_ID_FIELD_NUMBER: _ClassVar[int] + REGISTER_FIELD_NUMBER: _ClassVar[int] + FEEDBACK_FIELD_NUMBER: _ClassVar[int] + ref_msg_id: int + register: MiddlewareRegistration + feedback: InterceptFeedback + def __init__(self, ref_msg_id: _Optional[int] = ..., register: _Optional[_Union[MiddlewareRegistration, _Mapping]] = ..., feedback: _Optional[_Union[InterceptFeedback, _Mapping]] = ...) -> None: ... + +class MiddlewareRegistration(_message.Message): + __slots__ = ("middleware_name", "custom_macaroon_caveat_name", "read_only_mode") + MIDDLEWARE_NAME_FIELD_NUMBER: _ClassVar[int] + CUSTOM_MACAROON_CAVEAT_NAME_FIELD_NUMBER: _ClassVar[int] + READ_ONLY_MODE_FIELD_NUMBER: _ClassVar[int] + middleware_name: str + custom_macaroon_caveat_name: str + read_only_mode: bool + def __init__(self, middleware_name: _Optional[str] = ..., custom_macaroon_caveat_name: _Optional[str] = ..., read_only_mode: bool = ...) -> None: ... + +class InterceptFeedback(_message.Message): + __slots__ = ("error", "replace_response", "replacement_serialized") + ERROR_FIELD_NUMBER: _ClassVar[int] + REPLACE_RESPONSE_FIELD_NUMBER: _ClassVar[int] + REPLACEMENT_SERIALIZED_FIELD_NUMBER: _ClassVar[int] + error: str + replace_response: bool + replacement_serialized: bytes + def __init__(self, error: _Optional[str] = ..., replace_response: bool = ..., replacement_serialized: _Optional[bytes] = ...) -> None: ... diff --git a/lnbits/wallets/lnd_grpc_files/lightning_pb2_grpc.py b/lnbits/wallets/lnd_grpc_files/lightning_pb2_grpc.py index df91f402..b6d86d33 100644 --- a/lnbits/wallets/lnd_grpc_files/lightning_pb2_grpc.py +++ b/lnbits/wallets/lnd_grpc_files/lightning_pb2_grpc.py @@ -5,7 +5,7 @@ import warnings import lnbits.wallets.lnd_grpc_files.lightning_pb2 as lightning__pb2 -GRPC_GENERATED_VERSION = '1.68.1' +GRPC_GENERATED_VERSION = '1.69.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False @@ -237,6 +237,11 @@ class LightningStub(object): request_serializer=lightning__pb2.InvoiceSubscription.SerializeToString, response_deserializer=lightning__pb2.Invoice.FromString, _registered_method=True) + self.DeleteCanceledInvoice = channel.unary_unary( + '/lnrpc.Lightning/DeleteCanceledInvoice', + request_serializer=lightning__pb2.DelCanceledInvoiceReq.SerializeToString, + response_deserializer=lightning__pb2.DelCanceledInvoiceResp.FromString, + _registered_method=True) self.DecodePayReq = channel.unary_unary( '/lnrpc.Lightning/DecodePayReq', request_serializer=lightning__pb2.PayReqString.SerializeToString, @@ -749,10 +754,10 @@ class LightningServicer(object): def SendPaymentSync(self, request, context): """ - SendPaymentSync is the synchronous non-streaming version of SendPayment. - This RPC is intended to be consumed by clients of the REST proxy. - Additionally, this RPC expects the destination's public key and the payment - hash (if any) to be encoded as hex strings. + Deprecated, use routerrpc.SendPaymentV2. SendPaymentSync is the synchronous + non-streaming version of SendPayment. This RPC is intended to be consumed by + clients of the REST proxy. Additionally, this RPC expects the destination's + public key and the payment hash (if any) to be encoded as hex strings. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -772,8 +777,9 @@ class LightningServicer(object): def SendToRouteSync(self, request, context): """ - SendToRouteSync is a synchronous version of SendToRoute. It Will block - until the payment either fails or succeeds. + Deprecated, use routerrpc.SendToRouteV2. SendToRouteSync is a synchronous + version of SendToRoute. It Will block until the payment either fails or + succeeds. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -829,6 +835,15 @@ class LightningServicer(object): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def DeleteCanceledInvoice(self, request, context): + """lncli: `deletecanceledinvoice` + DeleteCanceledInvoice removes a canceled invoice from the database. If the + invoice is not in the canceled state, an error will be returned. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def DecodePayReq(self, request, context): """lncli: `decodepayreq` DecodePayReq takes an encoded payment request string and attempts to decode @@ -1100,9 +1115,10 @@ class LightningServicer(object): def CheckMacaroonPermissions(self, request, context): """ - CheckMacaroonPermissions checks whether a request follows the constraints - imposed on the macaroon and that the macaroon is authorized to follow the - provided permissions. + CheckMacaroonPermissions checks whether the provided macaroon contains all + the provided permissions. If the macaroon is valid (e.g. all caveats are + satisfied), and all permissions provided in the request are met, then + this RPC returns true. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -1356,6 +1372,11 @@ def add_LightningServicer_to_server(servicer, server): request_deserializer=lightning__pb2.InvoiceSubscription.FromString, response_serializer=lightning__pb2.Invoice.SerializeToString, ), + 'DeleteCanceledInvoice': grpc.unary_unary_rpc_method_handler( + servicer.DeleteCanceledInvoice, + request_deserializer=lightning__pb2.DelCanceledInvoiceReq.FromString, + response_serializer=lightning__pb2.DelCanceledInvoiceResp.SerializeToString, + ), 'DecodePayReq': grpc.unary_unary_rpc_method_handler( servicer.DecodePayReq, request_deserializer=lightning__pb2.PayReqString.FromString, @@ -2539,6 +2560,33 @@ class Lightning(object): metadata, _registered_method=True) + @staticmethod + def DeleteCanceledInvoice(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/lnrpc.Lightning/DeleteCanceledInvoice', + lightning__pb2.DelCanceledInvoiceReq.SerializeToString, + lightning__pb2.DelCanceledInvoiceResp.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + @staticmethod def DecodePayReq(request, target, diff --git a/lnbits/wallets/lnd_grpc_files/router_pb2.py b/lnbits/wallets/lnd_grpc_files/router_pb2.py index ff20b309..363ce986 100644 --- a/lnbits/wallets/lnd_grpc_files/router_pb2.py +++ b/lnbits/wallets/lnd_grpc_files/router_pb2.py @@ -2,7 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # NO CHECKED-IN PROTOBUF GENCODE # source: router.proto -# Protobuf Python Version: 5.28.1 +# Protobuf Python Version: 5.29.0 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -12,8 +12,8 @@ from google.protobuf.internal import builder as _builder _runtime_version.ValidateProtobufRuntimeVersion( _runtime_version.Domain.PUBLIC, 5, - 28, - 1, + 29, + 0, '', 'router.proto' ) @@ -24,7 +24,8 @@ _sym_db = _symbol_database.Default() import lnbits.wallets.lnd_grpc_files.lightning_pb2 as lightning__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0crouter.proto\x12\trouterrpc\x1a\x0flightning.proto\"\xe5\x06\n\x12SendPaymentRequest\x12\x0c\n\x04\x64\x65st\x18\x01 \x01(\x0c\x12\x0b\n\x03\x61mt\x18\x02 \x01(\x03\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x18\n\x10\x66inal_cltv_delta\x18\x04 \x01(\x05\x12\x17\n\x0fpayment_request\x18\x05 \x01(\t\x12\x17\n\x0ftimeout_seconds\x18\x06 \x01(\x05\x12\x15\n\rfee_limit_sat\x18\x07 \x01(\x03\x12\x1e\n\x10outgoing_chan_id\x18\x08 \x01(\x04\x42\x04\x18\x01\x30\x01\x12\x12\n\ncltv_limit\x18\t \x01(\x05\x12%\n\x0broute_hints\x18\n \x03(\x0b\x32\x10.lnrpc.RouteHint\x12Q\n\x13\x64\x65st_custom_records\x18\x0b \x03(\x0b\x32\x34.routerrpc.SendPaymentRequest.DestCustomRecordsEntry\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x16\n\x0e\x66\x65\x65_limit_msat\x18\r \x01(\x03\x12\x17\n\x0flast_hop_pubkey\x18\x0e \x01(\x0c\x12\x1a\n\x12\x61llow_self_payment\x18\x0f \x01(\x08\x12(\n\rdest_features\x18\x10 \x03(\x0e\x32\x11.lnrpc.FeatureBit\x12\x11\n\tmax_parts\x18\x11 \x01(\r\x12\x1b\n\x13no_inflight_updates\x18\x12 \x01(\x08\x12\x19\n\x11outgoing_chan_ids\x18\x13 \x03(\x04\x12\x14\n\x0cpayment_addr\x18\x14 \x01(\x0c\x12\x1b\n\x13max_shard_size_msat\x18\x15 \x01(\x04\x12\x0b\n\x03\x61mp\x18\x16 \x01(\x08\x12\x11\n\ttime_pref\x18\x17 \x01(\x01\x12\x12\n\ncancelable\x18\x18 \x01(\x08\x12Z\n\x18\x66irst_hop_custom_records\x18\x19 \x03(\x0b\x32\x38.routerrpc.SendPaymentRequest.FirstHopCustomRecordsEntry\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a<\n\x1a\x46irstHopCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"H\n\x13TrackPaymentRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x1b\n\x13no_inflight_updates\x18\x02 \x01(\x08\"3\n\x14TrackPaymentsRequest\x12\x1b\n\x13no_inflight_updates\x18\x01 \x01(\x08\"Z\n\x0fRouteFeeRequest\x12\x0c\n\x04\x64\x65st\x18\x01 \x01(\x0c\x12\x0f\n\x07\x61mt_sat\x18\x02 \x01(\x03\x12\x17\n\x0fpayment_request\x18\x03 \x01(\t\x12\x0f\n\x07timeout\x18\x04 \x01(\r\"z\n\x10RouteFeeResponse\x12\x18\n\x10routing_fee_msat\x18\x01 \x01(\x03\x12\x17\n\x0ftime_lock_delay\x18\x02 \x01(\x03\x12\x33\n\x0e\x66\x61ilure_reason\x18\x05 \x01(\x0e\x32\x1b.lnrpc.PaymentFailureReason\"\xf8\x01\n\x12SendToRouteRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x1b\n\x05route\x18\x02 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x15\n\rskip_temp_err\x18\x03 \x01(\x08\x12Z\n\x18\x66irst_hop_custom_records\x18\x04 \x03(\x0b\x32\x38.routerrpc.SendToRouteRequest.FirstHopCustomRecordsEntry\x1a<\n\x1a\x46irstHopCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"H\n\x13SendToRouteResponse\x12\x10\n\x08preimage\x18\x01 \x01(\x0c\x12\x1f\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Failure\"\x1c\n\x1aResetMissionControlRequest\"\x1d\n\x1bResetMissionControlResponse\"\x1c\n\x1aQueryMissionControlRequest\"J\n\x1bQueryMissionControlResponse\x12%\n\x05pairs\x18\x02 \x03(\x0b\x32\x16.routerrpc.PairHistoryJ\x04\x08\x01\x10\x02\"T\n\x1cXImportMissionControlRequest\x12%\n\x05pairs\x18\x01 \x03(\x0b\x32\x16.routerrpc.PairHistory\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"\x1f\n\x1dXImportMissionControlResponse\"o\n\x0bPairHistory\x12\x11\n\tnode_from\x18\x01 \x01(\x0c\x12\x0f\n\x07node_to\x18\x02 \x01(\x0c\x12$\n\x07history\x18\x07 \x01(\x0b\x32\x13.routerrpc.PairDataJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07\"\x99\x01\n\x08PairData\x12\x11\n\tfail_time\x18\x01 \x01(\x03\x12\x14\n\x0c\x66\x61il_amt_sat\x18\x02 \x01(\x03\x12\x15\n\rfail_amt_msat\x18\x04 \x01(\x03\x12\x14\n\x0csuccess_time\x18\x05 \x01(\x03\x12\x17\n\x0fsuccess_amt_sat\x18\x06 \x01(\x03\x12\x18\n\x10success_amt_msat\x18\x07 \x01(\x03J\x04\x08\x03\x10\x04\" \n\x1eGetMissionControlConfigRequest\"R\n\x1fGetMissionControlConfigResponse\x12/\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1f.routerrpc.MissionControlConfig\"Q\n\x1eSetMissionControlConfigRequest\x12/\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1f.routerrpc.MissionControlConfig\"!\n\x1fSetMissionControlConfigResponse\"\x93\x03\n\x14MissionControlConfig\x12\x1d\n\x11half_life_seconds\x18\x01 \x01(\x04\x42\x02\x18\x01\x12\x1b\n\x0fhop_probability\x18\x02 \x01(\x02\x42\x02\x18\x01\x12\x12\n\x06weight\x18\x03 \x01(\x02\x42\x02\x18\x01\x12\x1f\n\x17maximum_payment_results\x18\x04 \x01(\r\x12&\n\x1eminimum_failure_relax_interval\x18\x05 \x01(\x04\x12?\n\x05model\x18\x06 \x01(\x0e\x32\x30.routerrpc.MissionControlConfig.ProbabilityModel\x12/\n\x07\x61priori\x18\x07 \x01(\x0b\x32\x1c.routerrpc.AprioriParametersH\x00\x12/\n\x07\x62imodal\x18\x08 \x01(\x0b\x32\x1c.routerrpc.BimodalParametersH\x00\",\n\x10ProbabilityModel\x12\x0b\n\x07\x41PRIORI\x10\x00\x12\x0b\n\x07\x42IMODAL\x10\x01\x42\x11\n\x0f\x45stimatorConfig\"P\n\x11\x42imodalParameters\x12\x13\n\x0bnode_weight\x18\x01 \x01(\x01\x12\x12\n\nscale_msat\x18\x02 \x01(\x04\x12\x12\n\ndecay_time\x18\x03 \x01(\x04\"r\n\x11\x41prioriParameters\x12\x19\n\x11half_life_seconds\x18\x01 \x01(\x04\x12\x17\n\x0fhop_probability\x18\x02 \x01(\x01\x12\x0e\n\x06weight\x18\x03 \x01(\x01\x12\x19\n\x11\x63\x61pacity_fraction\x18\x04 \x01(\x01\"O\n\x17QueryProbabilityRequest\x12\x11\n\tfrom_node\x18\x01 \x01(\x0c\x12\x0f\n\x07to_node\x18\x02 \x01(\x0c\x12\x10\n\x08\x61mt_msat\x18\x03 \x01(\x03\"U\n\x18QueryProbabilityResponse\x12\x13\n\x0bprobability\x18\x01 \x01(\x01\x12$\n\x07history\x18\x02 \x01(\x0b\x32\x13.routerrpc.PairData\"\xa1\x02\n\x11\x42uildRouteRequest\x12\x10\n\x08\x61mt_msat\x18\x01 \x01(\x03\x12\x18\n\x10\x66inal_cltv_delta\x18\x02 \x01(\x05\x12\x1c\n\x10outgoing_chan_id\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x13\n\x0bhop_pubkeys\x18\x04 \x03(\x0c\x12\x14\n\x0cpayment_addr\x18\x05 \x01(\x0c\x12Y\n\x18\x66irst_hop_custom_records\x18\x06 \x03(\x0b\x32\x37.routerrpc.BuildRouteRequest.FirstHopCustomRecordsEntry\x1a<\n\x1a\x46irstHopCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"1\n\x12\x42uildRouteResponse\x12\x1b\n\x05route\x18\x01 \x01(\x0b\x32\x0c.lnrpc.Route\"\x1c\n\x1aSubscribeHtlcEventsRequest\"\xcb\x04\n\tHtlcEvent\x12\x1b\n\x13incoming_channel_id\x18\x01 \x01(\x04\x12\x1b\n\x13outgoing_channel_id\x18\x02 \x01(\x04\x12\x18\n\x10incoming_htlc_id\x18\x03 \x01(\x04\x12\x18\n\x10outgoing_htlc_id\x18\x04 \x01(\x04\x12\x14\n\x0ctimestamp_ns\x18\x05 \x01(\x04\x12\x32\n\nevent_type\x18\x06 \x01(\x0e\x32\x1e.routerrpc.HtlcEvent.EventType\x12\x30\n\rforward_event\x18\x07 \x01(\x0b\x32\x17.routerrpc.ForwardEventH\x00\x12\x39\n\x12\x66orward_fail_event\x18\x08 \x01(\x0b\x32\x1b.routerrpc.ForwardFailEventH\x00\x12.\n\x0csettle_event\x18\t \x01(\x0b\x32\x16.routerrpc.SettleEventH\x00\x12\x33\n\x0flink_fail_event\x18\n \x01(\x0b\x32\x18.routerrpc.LinkFailEventH\x00\x12\x36\n\x10subscribed_event\x18\x0b \x01(\x0b\x32\x1a.routerrpc.SubscribedEventH\x00\x12\x35\n\x10\x66inal_htlc_event\x18\x0c \x01(\x0b\x32\x19.routerrpc.FinalHtlcEventH\x00\"<\n\tEventType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04SEND\x10\x01\x12\x0b\n\x07RECEIVE\x10\x02\x12\x0b\n\x07\x46ORWARD\x10\x03\x42\x07\n\x05\x65vent\"v\n\x08HtlcInfo\x12\x19\n\x11incoming_timelock\x18\x01 \x01(\r\x12\x19\n\x11outgoing_timelock\x18\x02 \x01(\r\x12\x19\n\x11incoming_amt_msat\x18\x03 \x01(\x04\x12\x19\n\x11outgoing_amt_msat\x18\x04 \x01(\x04\"1\n\x0c\x46orwardEvent\x12!\n\x04info\x18\x01 \x01(\x0b\x32\x13.routerrpc.HtlcInfo\"\x12\n\x10\x46orwardFailEvent\"\x1f\n\x0bSettleEvent\x12\x10\n\x08preimage\x18\x01 \x01(\x0c\"3\n\x0e\x46inalHtlcEvent\x12\x0f\n\x07settled\x18\x01 \x01(\x08\x12\x10\n\x08offchain\x18\x02 \x01(\x08\"\x11\n\x0fSubscribedEvent\"\xae\x01\n\rLinkFailEvent\x12!\n\x04info\x18\x01 \x01(\x0b\x32\x13.routerrpc.HtlcInfo\x12\x30\n\x0cwire_failure\x18\x02 \x01(\x0e\x32\x1a.lnrpc.Failure.FailureCode\x12\x30\n\x0e\x66\x61ilure_detail\x18\x03 \x01(\x0e\x32\x18.routerrpc.FailureDetail\x12\x16\n\x0e\x66\x61ilure_string\x18\x04 \x01(\t\"r\n\rPaymentStatus\x12&\n\x05state\x18\x01 \x01(\x0e\x32\x17.routerrpc.PaymentState\x12\x10\n\x08preimage\x18\x02 \x01(\x0c\x12!\n\x05htlcs\x18\x04 \x03(\x0b\x32\x12.lnrpc.HTLCAttemptJ\x04\x08\x03\x10\x04\".\n\nCircuitKey\x12\x0f\n\x07\x63han_id\x18\x01 \x01(\x04\x12\x0f\n\x07htlc_id\x18\x02 \x01(\x04\"\xce\x04\n\x1b\x46orwardHtlcInterceptRequest\x12\x33\n\x14incoming_circuit_key\x18\x01 \x01(\x0b\x32\x15.routerrpc.CircuitKey\x12\x1c\n\x14incoming_amount_msat\x18\x05 \x01(\x04\x12\x17\n\x0fincoming_expiry\x18\x06 \x01(\r\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\"\n\x1aoutgoing_requested_chan_id\x18\x07 \x01(\x04\x12\x1c\n\x14outgoing_amount_msat\x18\x03 \x01(\x04\x12\x17\n\x0foutgoing_expiry\x18\x04 \x01(\r\x12Q\n\x0e\x63ustom_records\x18\x08 \x03(\x0b\x32\x39.routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntry\x12\x12\n\nonion_blob\x18\t \x01(\x0c\x12\x18\n\x10\x61uto_fail_height\x18\n \x01(\x05\x12_\n\x16in_wire_custom_records\x18\x0b \x03(\x0b\x32?.routerrpc.ForwardHtlcInterceptRequest.InWireCustomRecordsEntry\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a:\n\x18InWireCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\xb7\x03\n\x1c\x46orwardHtlcInterceptResponse\x12\x33\n\x14incoming_circuit_key\x18\x01 \x01(\x0b\x32\x15.routerrpc.CircuitKey\x12\x33\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32#.routerrpc.ResolveHoldForwardAction\x12\x10\n\x08preimage\x18\x03 \x01(\x0c\x12\x17\n\x0f\x66\x61ilure_message\x18\x04 \x01(\x0c\x12\x30\n\x0c\x66\x61ilure_code\x18\x05 \x01(\x0e\x32\x1a.lnrpc.Failure.FailureCode\x12\x16\n\x0ein_amount_msat\x18\x06 \x01(\x04\x12\x17\n\x0fout_amount_msat\x18\x07 \x01(\x04\x12\x62\n\x17out_wire_custom_records\x18\x08 \x03(\x0b\x32\x41.routerrpc.ForwardHtlcInterceptResponse.OutWireCustomRecordsEntry\x1a;\n\x19OutWireCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"o\n\x17UpdateChanStatusRequest\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12+\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\x1b.routerrpc.ChanStatusAction\"\x1a\n\x18UpdateChanStatusResponse\"8\n\x11\x41\x64\x64\x41liasesRequest\x12#\n\nalias_maps\x18\x01 \x03(\x0b\x32\x0f.lnrpc.AliasMap\"9\n\x12\x41\x64\x64\x41liasesResponse\x12#\n\nalias_maps\x18\x01 \x03(\x0b\x32\x0f.lnrpc.AliasMap\";\n\x14\x44\x65leteAliasesRequest\x12#\n\nalias_maps\x18\x01 \x03(\x0b\x32\x0f.lnrpc.AliasMap\"<\n\x15\x44\x65leteAliasesResponse\x12#\n\nalias_maps\x18\x01 \x03(\x0b\x32\x0f.lnrpc.AliasMap*\x81\x04\n\rFailureDetail\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tNO_DETAIL\x10\x01\x12\x10\n\x0cONION_DECODE\x10\x02\x12\x15\n\x11LINK_NOT_ELIGIBLE\x10\x03\x12\x14\n\x10ON_CHAIN_TIMEOUT\x10\x04\x12\x14\n\x10HTLC_EXCEEDS_MAX\x10\x05\x12\x18\n\x14INSUFFICIENT_BALANCE\x10\x06\x12\x16\n\x12INCOMPLETE_FORWARD\x10\x07\x12\x13\n\x0fHTLC_ADD_FAILED\x10\x08\x12\x15\n\x11\x46ORWARDS_DISABLED\x10\t\x12\x14\n\x10INVOICE_CANCELED\x10\n\x12\x15\n\x11INVOICE_UNDERPAID\x10\x0b\x12\x1b\n\x17INVOICE_EXPIRY_TOO_SOON\x10\x0c\x12\x14\n\x10INVOICE_NOT_OPEN\x10\r\x12\x17\n\x13MPP_INVOICE_TIMEOUT\x10\x0e\x12\x14\n\x10\x41\x44\x44RESS_MISMATCH\x10\x0f\x12\x16\n\x12SET_TOTAL_MISMATCH\x10\x10\x12\x15\n\x11SET_TOTAL_TOO_LOW\x10\x11\x12\x10\n\x0cSET_OVERPAID\x10\x12\x12\x13\n\x0fUNKNOWN_INVOICE\x10\x13\x12\x13\n\x0fINVALID_KEYSEND\x10\x14\x12\x13\n\x0fMPP_IN_PROGRESS\x10\x15\x12\x12\n\x0e\x43IRCULAR_ROUTE\x10\x16*\xae\x01\n\x0cPaymentState\x12\r\n\tIN_FLIGHT\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\x12\n\x0e\x46\x41ILED_TIMEOUT\x10\x02\x12\x13\n\x0f\x46\x41ILED_NO_ROUTE\x10\x03\x12\x10\n\x0c\x46\x41ILED_ERROR\x10\x04\x12$\n FAILED_INCORRECT_PAYMENT_DETAILS\x10\x05\x12\x1f\n\x1b\x46\x41ILED_INSUFFICIENT_BALANCE\x10\x06*Q\n\x18ResolveHoldForwardAction\x12\n\n\x06SETTLE\x10\x00\x12\x08\n\x04\x46\x41IL\x10\x01\x12\n\n\x06RESUME\x10\x02\x12\x13\n\x0fRESUME_MODIFIED\x10\x03*5\n\x10\x43hanStatusAction\x12\n\n\x06\x45NABLE\x10\x00\x12\x0b\n\x07\x44ISABLE\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x32\xe8\r\n\x06Router\x12@\n\rSendPaymentV2\x12\x1d.routerrpc.SendPaymentRequest\x1a\x0e.lnrpc.Payment0\x01\x12\x42\n\x0eTrackPaymentV2\x12\x1e.routerrpc.TrackPaymentRequest\x1a\x0e.lnrpc.Payment0\x01\x12\x42\n\rTrackPayments\x12\x1f.routerrpc.TrackPaymentsRequest\x1a\x0e.lnrpc.Payment0\x01\x12K\n\x10\x45stimateRouteFee\x12\x1a.routerrpc.RouteFeeRequest\x1a\x1b.routerrpc.RouteFeeResponse\x12Q\n\x0bSendToRoute\x12\x1d.routerrpc.SendToRouteRequest\x1a\x1e.routerrpc.SendToRouteResponse\"\x03\x88\x02\x01\x12\x42\n\rSendToRouteV2\x12\x1d.routerrpc.SendToRouteRequest\x1a\x12.lnrpc.HTLCAttempt\x12\x64\n\x13ResetMissionControl\x12%.routerrpc.ResetMissionControlRequest\x1a&.routerrpc.ResetMissionControlResponse\x12\x64\n\x13QueryMissionControl\x12%.routerrpc.QueryMissionControlRequest\x1a&.routerrpc.QueryMissionControlResponse\x12j\n\x15XImportMissionControl\x12\'.routerrpc.XImportMissionControlRequest\x1a(.routerrpc.XImportMissionControlResponse\x12p\n\x17GetMissionControlConfig\x12).routerrpc.GetMissionControlConfigRequest\x1a*.routerrpc.GetMissionControlConfigResponse\x12p\n\x17SetMissionControlConfig\x12).routerrpc.SetMissionControlConfigRequest\x1a*.routerrpc.SetMissionControlConfigResponse\x12[\n\x10QueryProbability\x12\".routerrpc.QueryProbabilityRequest\x1a#.routerrpc.QueryProbabilityResponse\x12I\n\nBuildRoute\x12\x1c.routerrpc.BuildRouteRequest\x1a\x1d.routerrpc.BuildRouteResponse\x12T\n\x13SubscribeHtlcEvents\x12%.routerrpc.SubscribeHtlcEventsRequest\x1a\x14.routerrpc.HtlcEvent0\x01\x12M\n\x0bSendPayment\x12\x1d.routerrpc.SendPaymentRequest\x1a\x18.routerrpc.PaymentStatus\"\x03\x88\x02\x01\x30\x01\x12O\n\x0cTrackPayment\x12\x1e.routerrpc.TrackPaymentRequest\x1a\x18.routerrpc.PaymentStatus\"\x03\x88\x02\x01\x30\x01\x12\x66\n\x0fHtlcInterceptor\x12\'.routerrpc.ForwardHtlcInterceptResponse\x1a&.routerrpc.ForwardHtlcInterceptRequest(\x01\x30\x01\x12[\n\x10UpdateChanStatus\x12\".routerrpc.UpdateChanStatusRequest\x1a#.routerrpc.UpdateChanStatusResponse\x12S\n\x14XAddLocalChanAliases\x12\x1c.routerrpc.AddAliasesRequest\x1a\x1d.routerrpc.AddAliasesResponse\x12\\\n\x17XDeleteLocalChanAliases\x12\x1f.routerrpc.DeleteAliasesRequest\x1a .routerrpc.DeleteAliasesResponseB1Z/github.com/lightningnetwork/lnd/lnrpc/routerrpcb\x06proto3') + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0crouter.proto\x12\trouterrpc\x1a\x0flightning.proto\"\xe5\x06\n\x12SendPaymentRequest\x12\x0c\n\x04\x64\x65st\x18\x01 \x01(\x0c\x12\x0b\n\x03\x61mt\x18\x02 \x01(\x03\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x18\n\x10\x66inal_cltv_delta\x18\x04 \x01(\x05\x12\x17\n\x0fpayment_request\x18\x05 \x01(\t\x12\x17\n\x0ftimeout_seconds\x18\x06 \x01(\x05\x12\x15\n\rfee_limit_sat\x18\x07 \x01(\x03\x12\x1e\n\x10outgoing_chan_id\x18\x08 \x01(\x04\x42\x04\x18\x01\x30\x01\x12\x12\n\ncltv_limit\x18\t \x01(\x05\x12%\n\x0broute_hints\x18\n \x03(\x0b\x32\x10.lnrpc.RouteHint\x12Q\n\x13\x64\x65st_custom_records\x18\x0b \x03(\x0b\x32\x34.routerrpc.SendPaymentRequest.DestCustomRecordsEntry\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x16\n\x0e\x66\x65\x65_limit_msat\x18\r \x01(\x03\x12\x17\n\x0flast_hop_pubkey\x18\x0e \x01(\x0c\x12\x1a\n\x12\x61llow_self_payment\x18\x0f \x01(\x08\x12(\n\rdest_features\x18\x10 \x03(\x0e\x32\x11.lnrpc.FeatureBit\x12\x11\n\tmax_parts\x18\x11 \x01(\r\x12\x1b\n\x13no_inflight_updates\x18\x12 \x01(\x08\x12\x19\n\x11outgoing_chan_ids\x18\x13 \x03(\x04\x12\x14\n\x0cpayment_addr\x18\x14 \x01(\x0c\x12\x1b\n\x13max_shard_size_msat\x18\x15 \x01(\x04\x12\x0b\n\x03\x61mp\x18\x16 \x01(\x08\x12\x11\n\ttime_pref\x18\x17 \x01(\x01\x12\x12\n\ncancelable\x18\x18 \x01(\x08\x12Z\n\x18\x66irst_hop_custom_records\x18\x19 \x03(\x0b\x32\x38.routerrpc.SendPaymentRequest.FirstHopCustomRecordsEntry\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a<\n\x1a\x46irstHopCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"H\n\x13TrackPaymentRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x1b\n\x13no_inflight_updates\x18\x02 \x01(\x08\"3\n\x14TrackPaymentsRequest\x12\x1b\n\x13no_inflight_updates\x18\x01 \x01(\x08\"Z\n\x0fRouteFeeRequest\x12\x0c\n\x04\x64\x65st\x18\x01 \x01(\x0c\x12\x0f\n\x07\x61mt_sat\x18\x02 \x01(\x03\x12\x17\n\x0fpayment_request\x18\x03 \x01(\t\x12\x0f\n\x07timeout\x18\x04 \x01(\r\"z\n\x10RouteFeeResponse\x12\x18\n\x10routing_fee_msat\x18\x01 \x01(\x03\x12\x17\n\x0ftime_lock_delay\x18\x02 \x01(\x03\x12\x33\n\x0e\x66\x61ilure_reason\x18\x05 \x01(\x0e\x32\x1b.lnrpc.PaymentFailureReason\"\xf8\x01\n\x12SendToRouteRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x1b\n\x05route\x18\x02 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x15\n\rskip_temp_err\x18\x03 \x01(\x08\x12Z\n\x18\x66irst_hop_custom_records\x18\x04 \x03(\x0b\x32\x38.routerrpc.SendToRouteRequest.FirstHopCustomRecordsEntry\x1a<\n\x1a\x46irstHopCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"H\n\x13SendToRouteResponse\x12\x10\n\x08preimage\x18\x01 \x01(\x0c\x12\x1f\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Failure\"\x1c\n\x1aResetMissionControlRequest\"\x1d\n\x1bResetMissionControlResponse\"\x1c\n\x1aQueryMissionControlRequest\"J\n\x1bQueryMissionControlResponse\x12%\n\x05pairs\x18\x02 \x03(\x0b\x32\x16.routerrpc.PairHistoryJ\x04\x08\x01\x10\x02\"T\n\x1cXImportMissionControlRequest\x12%\n\x05pairs\x18\x01 \x03(\x0b\x32\x16.routerrpc.PairHistory\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"\x1f\n\x1dXImportMissionControlResponse\"o\n\x0bPairHistory\x12\x11\n\tnode_from\x18\x01 \x01(\x0c\x12\x0f\n\x07node_to\x18\x02 \x01(\x0c\x12$\n\x07history\x18\x07 \x01(\x0b\x32\x13.routerrpc.PairDataJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07\"\x99\x01\n\x08PairData\x12\x11\n\tfail_time\x18\x01 \x01(\x03\x12\x14\n\x0c\x66\x61il_amt_sat\x18\x02 \x01(\x03\x12\x15\n\rfail_amt_msat\x18\x04 \x01(\x03\x12\x14\n\x0csuccess_time\x18\x05 \x01(\x03\x12\x17\n\x0fsuccess_amt_sat\x18\x06 \x01(\x03\x12\x18\n\x10success_amt_msat\x18\x07 \x01(\x03J\x04\x08\x03\x10\x04\" \n\x1eGetMissionControlConfigRequest\"R\n\x1fGetMissionControlConfigResponse\x12/\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1f.routerrpc.MissionControlConfig\"Q\n\x1eSetMissionControlConfigRequest\x12/\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1f.routerrpc.MissionControlConfig\"!\n\x1fSetMissionControlConfigResponse\"\x93\x03\n\x14MissionControlConfig\x12\x1d\n\x11half_life_seconds\x18\x01 \x01(\x04\x42\x02\x18\x01\x12\x1b\n\x0fhop_probability\x18\x02 \x01(\x02\x42\x02\x18\x01\x12\x12\n\x06weight\x18\x03 \x01(\x02\x42\x02\x18\x01\x12\x1f\n\x17maximum_payment_results\x18\x04 \x01(\r\x12&\n\x1eminimum_failure_relax_interval\x18\x05 \x01(\x04\x12?\n\x05model\x18\x06 \x01(\x0e\x32\x30.routerrpc.MissionControlConfig.ProbabilityModel\x12/\n\x07\x61priori\x18\x07 \x01(\x0b\x32\x1c.routerrpc.AprioriParametersH\x00\x12/\n\x07\x62imodal\x18\x08 \x01(\x0b\x32\x1c.routerrpc.BimodalParametersH\x00\",\n\x10ProbabilityModel\x12\x0b\n\x07\x41PRIORI\x10\x00\x12\x0b\n\x07\x42IMODAL\x10\x01\x42\x11\n\x0f\x45stimatorConfig\"P\n\x11\x42imodalParameters\x12\x13\n\x0bnode_weight\x18\x01 \x01(\x01\x12\x12\n\nscale_msat\x18\x02 \x01(\x04\x12\x12\n\ndecay_time\x18\x03 \x01(\x04\"r\n\x11\x41prioriParameters\x12\x19\n\x11half_life_seconds\x18\x01 \x01(\x04\x12\x17\n\x0fhop_probability\x18\x02 \x01(\x01\x12\x0e\n\x06weight\x18\x03 \x01(\x01\x12\x19\n\x11\x63\x61pacity_fraction\x18\x04 \x01(\x01\"O\n\x17QueryProbabilityRequest\x12\x11\n\tfrom_node\x18\x01 \x01(\x0c\x12\x0f\n\x07to_node\x18\x02 \x01(\x0c\x12\x10\n\x08\x61mt_msat\x18\x03 \x01(\x03\"U\n\x18QueryProbabilityResponse\x12\x13\n\x0bprobability\x18\x01 \x01(\x01\x12$\n\x07history\x18\x02 \x01(\x0b\x32\x13.routerrpc.PairData\"\xa1\x02\n\x11\x42uildRouteRequest\x12\x10\n\x08\x61mt_msat\x18\x01 \x01(\x03\x12\x18\n\x10\x66inal_cltv_delta\x18\x02 \x01(\x05\x12\x1c\n\x10outgoing_chan_id\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x13\n\x0bhop_pubkeys\x18\x04 \x03(\x0c\x12\x14\n\x0cpayment_addr\x18\x05 \x01(\x0c\x12Y\n\x18\x66irst_hop_custom_records\x18\x06 \x03(\x0b\x32\x37.routerrpc.BuildRouteRequest.FirstHopCustomRecordsEntry\x1a<\n\x1a\x46irstHopCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"1\n\x12\x42uildRouteResponse\x12\x1b\n\x05route\x18\x01 \x01(\x0b\x32\x0c.lnrpc.Route\"\x1c\n\x1aSubscribeHtlcEventsRequest\"\xcb\x04\n\tHtlcEvent\x12\x1b\n\x13incoming_channel_id\x18\x01 \x01(\x04\x12\x1b\n\x13outgoing_channel_id\x18\x02 \x01(\x04\x12\x18\n\x10incoming_htlc_id\x18\x03 \x01(\x04\x12\x18\n\x10outgoing_htlc_id\x18\x04 \x01(\x04\x12\x14\n\x0ctimestamp_ns\x18\x05 \x01(\x04\x12\x32\n\nevent_type\x18\x06 \x01(\x0e\x32\x1e.routerrpc.HtlcEvent.EventType\x12\x30\n\rforward_event\x18\x07 \x01(\x0b\x32\x17.routerrpc.ForwardEventH\x00\x12\x39\n\x12\x66orward_fail_event\x18\x08 \x01(\x0b\x32\x1b.routerrpc.ForwardFailEventH\x00\x12.\n\x0csettle_event\x18\t \x01(\x0b\x32\x16.routerrpc.SettleEventH\x00\x12\x33\n\x0flink_fail_event\x18\n \x01(\x0b\x32\x18.routerrpc.LinkFailEventH\x00\x12\x36\n\x10subscribed_event\x18\x0b \x01(\x0b\x32\x1a.routerrpc.SubscribedEventH\x00\x12\x35\n\x10\x66inal_htlc_event\x18\x0c \x01(\x0b\x32\x19.routerrpc.FinalHtlcEventH\x00\"<\n\tEventType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04SEND\x10\x01\x12\x0b\n\x07RECEIVE\x10\x02\x12\x0b\n\x07\x46ORWARD\x10\x03\x42\x07\n\x05\x65vent\"v\n\x08HtlcInfo\x12\x19\n\x11incoming_timelock\x18\x01 \x01(\r\x12\x19\n\x11outgoing_timelock\x18\x02 \x01(\r\x12\x19\n\x11incoming_amt_msat\x18\x03 \x01(\x04\x12\x19\n\x11outgoing_amt_msat\x18\x04 \x01(\x04\"1\n\x0c\x46orwardEvent\x12!\n\x04info\x18\x01 \x01(\x0b\x32\x13.routerrpc.HtlcInfo\"\x12\n\x10\x46orwardFailEvent\"\x1f\n\x0bSettleEvent\x12\x10\n\x08preimage\x18\x01 \x01(\x0c\"3\n\x0e\x46inalHtlcEvent\x12\x0f\n\x07settled\x18\x01 \x01(\x08\x12\x10\n\x08offchain\x18\x02 \x01(\x08\"\x11\n\x0fSubscribedEvent\"\xae\x01\n\rLinkFailEvent\x12!\n\x04info\x18\x01 \x01(\x0b\x32\x13.routerrpc.HtlcInfo\x12\x30\n\x0cwire_failure\x18\x02 \x01(\x0e\x32\x1a.lnrpc.Failure.FailureCode\x12\x30\n\x0e\x66\x61ilure_detail\x18\x03 \x01(\x0e\x32\x18.routerrpc.FailureDetail\x12\x16\n\x0e\x66\x61ilure_string\x18\x04 \x01(\t\"r\n\rPaymentStatus\x12&\n\x05state\x18\x01 \x01(\x0e\x32\x17.routerrpc.PaymentState\x12\x10\n\x08preimage\x18\x02 \x01(\x0c\x12!\n\x05htlcs\x18\x04 \x03(\x0b\x32\x12.lnrpc.HTLCAttemptJ\x04\x08\x03\x10\x04\".\n\nCircuitKey\x12\x0f\n\x07\x63han_id\x18\x01 \x01(\x04\x12\x0f\n\x07htlc_id\x18\x02 \x01(\x04\"\xce\x04\n\x1b\x46orwardHtlcInterceptRequest\x12\x33\n\x14incoming_circuit_key\x18\x01 \x01(\x0b\x32\x15.routerrpc.CircuitKey\x12\x1c\n\x14incoming_amount_msat\x18\x05 \x01(\x04\x12\x17\n\x0fincoming_expiry\x18\x06 \x01(\r\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12\"\n\x1aoutgoing_requested_chan_id\x18\x07 \x01(\x04\x12\x1c\n\x14outgoing_amount_msat\x18\x03 \x01(\x04\x12\x17\n\x0foutgoing_expiry\x18\x04 \x01(\r\x12Q\n\x0e\x63ustom_records\x18\x08 \x03(\x0b\x32\x39.routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntry\x12\x12\n\nonion_blob\x18\t \x01(\x0c\x12\x18\n\x10\x61uto_fail_height\x18\n \x01(\x05\x12_\n\x16in_wire_custom_records\x18\x0b \x03(\x0b\x32?.routerrpc.ForwardHtlcInterceptRequest.InWireCustomRecordsEntry\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a:\n\x18InWireCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\xb7\x03\n\x1c\x46orwardHtlcInterceptResponse\x12\x33\n\x14incoming_circuit_key\x18\x01 \x01(\x0b\x32\x15.routerrpc.CircuitKey\x12\x33\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32#.routerrpc.ResolveHoldForwardAction\x12\x10\n\x08preimage\x18\x03 \x01(\x0c\x12\x17\n\x0f\x66\x61ilure_message\x18\x04 \x01(\x0c\x12\x30\n\x0c\x66\x61ilure_code\x18\x05 \x01(\x0e\x32\x1a.lnrpc.Failure.FailureCode\x12\x16\n\x0ein_amount_msat\x18\x06 \x01(\x04\x12\x17\n\x0fout_amount_msat\x18\x07 \x01(\x04\x12\x62\n\x17out_wire_custom_records\x18\x08 \x03(\x0b\x32\x41.routerrpc.ForwardHtlcInterceptResponse.OutWireCustomRecordsEntry\x1a;\n\x19OutWireCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"o\n\x17UpdateChanStatusRequest\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12+\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\x1b.routerrpc.ChanStatusAction\"\x1a\n\x18UpdateChanStatusResponse\"8\n\x11\x41\x64\x64\x41liasesRequest\x12#\n\nalias_maps\x18\x01 \x03(\x0b\x32\x0f.lnrpc.AliasMap\"9\n\x12\x41\x64\x64\x41liasesResponse\x12#\n\nalias_maps\x18\x01 \x03(\x0b\x32\x0f.lnrpc.AliasMap\";\n\x14\x44\x65leteAliasesRequest\x12#\n\nalias_maps\x18\x01 \x03(\x0b\x32\x0f.lnrpc.AliasMap\"<\n\x15\x44\x65leteAliasesResponse\x12#\n\nalias_maps\x18\x01 \x03(\x0b\x32\x0f.lnrpc.AliasMap\"%\n\x14\x46indBaseAliasRequest\x12\r\n\x05\x61lias\x18\x01 \x01(\x04\"%\n\x15\x46indBaseAliasResponse\x12\x0c\n\x04\x62\x61se\x18\x01 \x01(\x04*\x81\x04\n\rFailureDetail\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tNO_DETAIL\x10\x01\x12\x10\n\x0cONION_DECODE\x10\x02\x12\x15\n\x11LINK_NOT_ELIGIBLE\x10\x03\x12\x14\n\x10ON_CHAIN_TIMEOUT\x10\x04\x12\x14\n\x10HTLC_EXCEEDS_MAX\x10\x05\x12\x18\n\x14INSUFFICIENT_BALANCE\x10\x06\x12\x16\n\x12INCOMPLETE_FORWARD\x10\x07\x12\x13\n\x0fHTLC_ADD_FAILED\x10\x08\x12\x15\n\x11\x46ORWARDS_DISABLED\x10\t\x12\x14\n\x10INVOICE_CANCELED\x10\n\x12\x15\n\x11INVOICE_UNDERPAID\x10\x0b\x12\x1b\n\x17INVOICE_EXPIRY_TOO_SOON\x10\x0c\x12\x14\n\x10INVOICE_NOT_OPEN\x10\r\x12\x17\n\x13MPP_INVOICE_TIMEOUT\x10\x0e\x12\x14\n\x10\x41\x44\x44RESS_MISMATCH\x10\x0f\x12\x16\n\x12SET_TOTAL_MISMATCH\x10\x10\x12\x15\n\x11SET_TOTAL_TOO_LOW\x10\x11\x12\x10\n\x0cSET_OVERPAID\x10\x12\x12\x13\n\x0fUNKNOWN_INVOICE\x10\x13\x12\x13\n\x0fINVALID_KEYSEND\x10\x14\x12\x13\n\x0fMPP_IN_PROGRESS\x10\x15\x12\x12\n\x0e\x43IRCULAR_ROUTE\x10\x16*\xae\x01\n\x0cPaymentState\x12\r\n\tIN_FLIGHT\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\x12\n\x0e\x46\x41ILED_TIMEOUT\x10\x02\x12\x13\n\x0f\x46\x41ILED_NO_ROUTE\x10\x03\x12\x10\n\x0c\x46\x41ILED_ERROR\x10\x04\x12$\n FAILED_INCORRECT_PAYMENT_DETAILS\x10\x05\x12\x1f\n\x1b\x46\x41ILED_INSUFFICIENT_BALANCE\x10\x06*Q\n\x18ResolveHoldForwardAction\x12\n\n\x06SETTLE\x10\x00\x12\x08\n\x04\x46\x41IL\x10\x01\x12\n\n\x06RESUME\x10\x02\x12\x13\n\x0fRESUME_MODIFIED\x10\x03*5\n\x10\x43hanStatusAction\x12\n\n\x06\x45NABLE\x10\x00\x12\x0b\n\x07\x44ISABLE\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x32\xc6\x0e\n\x06Router\x12@\n\rSendPaymentV2\x12\x1d.routerrpc.SendPaymentRequest\x1a\x0e.lnrpc.Payment0\x01\x12\x42\n\x0eTrackPaymentV2\x12\x1e.routerrpc.TrackPaymentRequest\x1a\x0e.lnrpc.Payment0\x01\x12\x42\n\rTrackPayments\x12\x1f.routerrpc.TrackPaymentsRequest\x1a\x0e.lnrpc.Payment0\x01\x12K\n\x10\x45stimateRouteFee\x12\x1a.routerrpc.RouteFeeRequest\x1a\x1b.routerrpc.RouteFeeResponse\x12Q\n\x0bSendToRoute\x12\x1d.routerrpc.SendToRouteRequest\x1a\x1e.routerrpc.SendToRouteResponse\"\x03\x88\x02\x01\x12\x42\n\rSendToRouteV2\x12\x1d.routerrpc.SendToRouteRequest\x1a\x12.lnrpc.HTLCAttempt\x12\x64\n\x13ResetMissionControl\x12%.routerrpc.ResetMissionControlRequest\x1a&.routerrpc.ResetMissionControlResponse\x12\x64\n\x13QueryMissionControl\x12%.routerrpc.QueryMissionControlRequest\x1a&.routerrpc.QueryMissionControlResponse\x12j\n\x15XImportMissionControl\x12\'.routerrpc.XImportMissionControlRequest\x1a(.routerrpc.XImportMissionControlResponse\x12p\n\x17GetMissionControlConfig\x12).routerrpc.GetMissionControlConfigRequest\x1a*.routerrpc.GetMissionControlConfigResponse\x12p\n\x17SetMissionControlConfig\x12).routerrpc.SetMissionControlConfigRequest\x1a*.routerrpc.SetMissionControlConfigResponse\x12[\n\x10QueryProbability\x12\".routerrpc.QueryProbabilityRequest\x1a#.routerrpc.QueryProbabilityResponse\x12I\n\nBuildRoute\x12\x1c.routerrpc.BuildRouteRequest\x1a\x1d.routerrpc.BuildRouteResponse\x12T\n\x13SubscribeHtlcEvents\x12%.routerrpc.SubscribeHtlcEventsRequest\x1a\x14.routerrpc.HtlcEvent0\x01\x12M\n\x0bSendPayment\x12\x1d.routerrpc.SendPaymentRequest\x1a\x18.routerrpc.PaymentStatus\"\x03\x88\x02\x01\x30\x01\x12O\n\x0cTrackPayment\x12\x1e.routerrpc.TrackPaymentRequest\x1a\x18.routerrpc.PaymentStatus\"\x03\x88\x02\x01\x30\x01\x12\x66\n\x0fHtlcInterceptor\x12\'.routerrpc.ForwardHtlcInterceptResponse\x1a&.routerrpc.ForwardHtlcInterceptRequest(\x01\x30\x01\x12[\n\x10UpdateChanStatus\x12\".routerrpc.UpdateChanStatusRequest\x1a#.routerrpc.UpdateChanStatusResponse\x12S\n\x14XAddLocalChanAliases\x12\x1c.routerrpc.AddAliasesRequest\x1a\x1d.routerrpc.AddAliasesResponse\x12\\\n\x17XDeleteLocalChanAliases\x12\x1f.routerrpc.DeleteAliasesRequest\x1a .routerrpc.DeleteAliasesResponse\x12\\\n\x17XFindBaseLocalChanAlias\x12\x1f.routerrpc.FindBaseAliasRequest\x1a .routerrpc.FindBaseAliasResponseB1Z/github.com/lightningnetwork/lnd/lnrpc/routerrpcb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -62,14 +63,14 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['_ROUTER'].methods_by_name['SendPayment']._serialized_options = b'\210\002\001' _globals['_ROUTER'].methods_by_name['TrackPayment']._loaded_options = None _globals['_ROUTER'].methods_by_name['TrackPayment']._serialized_options = b'\210\002\001' - _globals['_FAILUREDETAIL']._serialized_start=6164 - _globals['_FAILUREDETAIL']._serialized_end=6677 - _globals['_PAYMENTSTATE']._serialized_start=6680 - _globals['_PAYMENTSTATE']._serialized_end=6854 - _globals['_RESOLVEHOLDFORWARDACTION']._serialized_start=6856 - _globals['_RESOLVEHOLDFORWARDACTION']._serialized_end=6937 - _globals['_CHANSTATUSACTION']._serialized_start=6939 - _globals['_CHANSTATUSACTION']._serialized_end=6992 + _globals['_FAILUREDETAIL']._serialized_start=6242 + _globals['_FAILUREDETAIL']._serialized_end=6755 + _globals['_PAYMENTSTATE']._serialized_start=6758 + _globals['_PAYMENTSTATE']._serialized_end=6932 + _globals['_RESOLVEHOLDFORWARDACTION']._serialized_start=6934 + _globals['_RESOLVEHOLDFORWARDACTION']._serialized_end=7015 + _globals['_CHANSTATUSACTION']._serialized_start=7017 + _globals['_CHANSTATUSACTION']._serialized_end=7070 _globals['_SENDPAYMENTREQUEST']._serialized_start=45 _globals['_SENDPAYMENTREQUEST']._serialized_end=914 _globals['_SENDPAYMENTREQUEST_DESTCUSTOMRECORDSENTRY']._serialized_start=796 @@ -178,6 +179,10 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['_DELETEALIASESREQUEST']._serialized_end=6099 _globals['_DELETEALIASESRESPONSE']._serialized_start=6101 _globals['_DELETEALIASESRESPONSE']._serialized_end=6161 - _globals['_ROUTER']._serialized_start=6995 - _globals['_ROUTER']._serialized_end=8763 + _globals['_FINDBASEALIASREQUEST']._serialized_start=6163 + _globals['_FINDBASEALIASREQUEST']._serialized_end=6200 + _globals['_FINDBASEALIASRESPONSE']._serialized_start=6202 + _globals['_FINDBASEALIASRESPONSE']._serialized_end=6239 + _globals['_ROUTER']._serialized_start=7073 + _globals['_ROUTER']._serialized_end=8935 # @@protoc_insertion_point(module_scope) diff --git a/lnbits/wallets/lnd_grpc_files/router_pb2.pyi b/lnbits/wallets/lnd_grpc_files/router_pb2.pyi new file mode 100644 index 00000000..ed428d2e --- /dev/null +++ b/lnbits/wallets/lnd_grpc_files/router_pb2.pyi @@ -0,0 +1,623 @@ +import lnbits.wallets.lnd_grpc_files.lightning_pb2 as _lightning_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class FailureDetail(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + UNKNOWN: _ClassVar[FailureDetail] + NO_DETAIL: _ClassVar[FailureDetail] + ONION_DECODE: _ClassVar[FailureDetail] + LINK_NOT_ELIGIBLE: _ClassVar[FailureDetail] + ON_CHAIN_TIMEOUT: _ClassVar[FailureDetail] + HTLC_EXCEEDS_MAX: _ClassVar[FailureDetail] + INSUFFICIENT_BALANCE: _ClassVar[FailureDetail] + INCOMPLETE_FORWARD: _ClassVar[FailureDetail] + HTLC_ADD_FAILED: _ClassVar[FailureDetail] + FORWARDS_DISABLED: _ClassVar[FailureDetail] + INVOICE_CANCELED: _ClassVar[FailureDetail] + INVOICE_UNDERPAID: _ClassVar[FailureDetail] + INVOICE_EXPIRY_TOO_SOON: _ClassVar[FailureDetail] + INVOICE_NOT_OPEN: _ClassVar[FailureDetail] + MPP_INVOICE_TIMEOUT: _ClassVar[FailureDetail] + ADDRESS_MISMATCH: _ClassVar[FailureDetail] + SET_TOTAL_MISMATCH: _ClassVar[FailureDetail] + SET_TOTAL_TOO_LOW: _ClassVar[FailureDetail] + SET_OVERPAID: _ClassVar[FailureDetail] + UNKNOWN_INVOICE: _ClassVar[FailureDetail] + INVALID_KEYSEND: _ClassVar[FailureDetail] + MPP_IN_PROGRESS: _ClassVar[FailureDetail] + CIRCULAR_ROUTE: _ClassVar[FailureDetail] + +class PaymentState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + IN_FLIGHT: _ClassVar[PaymentState] + SUCCEEDED: _ClassVar[PaymentState] + FAILED_TIMEOUT: _ClassVar[PaymentState] + FAILED_NO_ROUTE: _ClassVar[PaymentState] + FAILED_ERROR: _ClassVar[PaymentState] + FAILED_INCORRECT_PAYMENT_DETAILS: _ClassVar[PaymentState] + FAILED_INSUFFICIENT_BALANCE: _ClassVar[PaymentState] + +class ResolveHoldForwardAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SETTLE: _ClassVar[ResolveHoldForwardAction] + FAIL: _ClassVar[ResolveHoldForwardAction] + RESUME: _ClassVar[ResolveHoldForwardAction] + RESUME_MODIFIED: _ClassVar[ResolveHoldForwardAction] + +class ChanStatusAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + ENABLE: _ClassVar[ChanStatusAction] + DISABLE: _ClassVar[ChanStatusAction] + AUTO: _ClassVar[ChanStatusAction] +UNKNOWN: FailureDetail +NO_DETAIL: FailureDetail +ONION_DECODE: FailureDetail +LINK_NOT_ELIGIBLE: FailureDetail +ON_CHAIN_TIMEOUT: FailureDetail +HTLC_EXCEEDS_MAX: FailureDetail +INSUFFICIENT_BALANCE: FailureDetail +INCOMPLETE_FORWARD: FailureDetail +HTLC_ADD_FAILED: FailureDetail +FORWARDS_DISABLED: FailureDetail +INVOICE_CANCELED: FailureDetail +INVOICE_UNDERPAID: FailureDetail +INVOICE_EXPIRY_TOO_SOON: FailureDetail +INVOICE_NOT_OPEN: FailureDetail +MPP_INVOICE_TIMEOUT: FailureDetail +ADDRESS_MISMATCH: FailureDetail +SET_TOTAL_MISMATCH: FailureDetail +SET_TOTAL_TOO_LOW: FailureDetail +SET_OVERPAID: FailureDetail +UNKNOWN_INVOICE: FailureDetail +INVALID_KEYSEND: FailureDetail +MPP_IN_PROGRESS: FailureDetail +CIRCULAR_ROUTE: FailureDetail +IN_FLIGHT: PaymentState +SUCCEEDED: PaymentState +FAILED_TIMEOUT: PaymentState +FAILED_NO_ROUTE: PaymentState +FAILED_ERROR: PaymentState +FAILED_INCORRECT_PAYMENT_DETAILS: PaymentState +FAILED_INSUFFICIENT_BALANCE: PaymentState +SETTLE: ResolveHoldForwardAction +FAIL: ResolveHoldForwardAction +RESUME: ResolveHoldForwardAction +RESUME_MODIFIED: ResolveHoldForwardAction +ENABLE: ChanStatusAction +DISABLE: ChanStatusAction +AUTO: ChanStatusAction + +class SendPaymentRequest(_message.Message): + __slots__ = ("dest", "amt", "payment_hash", "final_cltv_delta", "payment_request", "timeout_seconds", "fee_limit_sat", "outgoing_chan_id", "cltv_limit", "route_hints", "dest_custom_records", "amt_msat", "fee_limit_msat", "last_hop_pubkey", "allow_self_payment", "dest_features", "max_parts", "no_inflight_updates", "outgoing_chan_ids", "payment_addr", "max_shard_size_msat", "amp", "time_pref", "cancelable", "first_hop_custom_records") + class DestCustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + class FirstHopCustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + DEST_FIELD_NUMBER: _ClassVar[int] + AMT_FIELD_NUMBER: _ClassVar[int] + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + FINAL_CLTV_DELTA_FIELD_NUMBER: _ClassVar[int] + PAYMENT_REQUEST_FIELD_NUMBER: _ClassVar[int] + TIMEOUT_SECONDS_FIELD_NUMBER: _ClassVar[int] + FEE_LIMIT_SAT_FIELD_NUMBER: _ClassVar[int] + OUTGOING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + CLTV_LIMIT_FIELD_NUMBER: _ClassVar[int] + ROUTE_HINTS_FIELD_NUMBER: _ClassVar[int] + DEST_CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + FEE_LIMIT_MSAT_FIELD_NUMBER: _ClassVar[int] + LAST_HOP_PUBKEY_FIELD_NUMBER: _ClassVar[int] + ALLOW_SELF_PAYMENT_FIELD_NUMBER: _ClassVar[int] + DEST_FEATURES_FIELD_NUMBER: _ClassVar[int] + MAX_PARTS_FIELD_NUMBER: _ClassVar[int] + NO_INFLIGHT_UPDATES_FIELD_NUMBER: _ClassVar[int] + OUTGOING_CHAN_IDS_FIELD_NUMBER: _ClassVar[int] + PAYMENT_ADDR_FIELD_NUMBER: _ClassVar[int] + MAX_SHARD_SIZE_MSAT_FIELD_NUMBER: _ClassVar[int] + AMP_FIELD_NUMBER: _ClassVar[int] + TIME_PREF_FIELD_NUMBER: _ClassVar[int] + CANCELABLE_FIELD_NUMBER: _ClassVar[int] + FIRST_HOP_CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + dest: bytes + amt: int + payment_hash: bytes + final_cltv_delta: int + payment_request: str + timeout_seconds: int + fee_limit_sat: int + outgoing_chan_id: int + cltv_limit: int + route_hints: _containers.RepeatedCompositeFieldContainer[_lightning_pb2.RouteHint] + dest_custom_records: _containers.ScalarMap[int, bytes] + amt_msat: int + fee_limit_msat: int + last_hop_pubkey: bytes + allow_self_payment: bool + dest_features: _containers.RepeatedScalarFieldContainer[_lightning_pb2.FeatureBit] + max_parts: int + no_inflight_updates: bool + outgoing_chan_ids: _containers.RepeatedScalarFieldContainer[int] + payment_addr: bytes + max_shard_size_msat: int + amp: bool + time_pref: float + cancelable: bool + first_hop_custom_records: _containers.ScalarMap[int, bytes] + def __init__(self, dest: _Optional[bytes] = ..., amt: _Optional[int] = ..., payment_hash: _Optional[bytes] = ..., final_cltv_delta: _Optional[int] = ..., payment_request: _Optional[str] = ..., timeout_seconds: _Optional[int] = ..., fee_limit_sat: _Optional[int] = ..., outgoing_chan_id: _Optional[int] = ..., cltv_limit: _Optional[int] = ..., route_hints: _Optional[_Iterable[_Union[_lightning_pb2.RouteHint, _Mapping]]] = ..., dest_custom_records: _Optional[_Mapping[int, bytes]] = ..., amt_msat: _Optional[int] = ..., fee_limit_msat: _Optional[int] = ..., last_hop_pubkey: _Optional[bytes] = ..., allow_self_payment: bool = ..., dest_features: _Optional[_Iterable[_Union[_lightning_pb2.FeatureBit, str]]] = ..., max_parts: _Optional[int] = ..., no_inflight_updates: bool = ..., outgoing_chan_ids: _Optional[_Iterable[int]] = ..., payment_addr: _Optional[bytes] = ..., max_shard_size_msat: _Optional[int] = ..., amp: bool = ..., time_pref: _Optional[float] = ..., cancelable: bool = ..., first_hop_custom_records: _Optional[_Mapping[int, bytes]] = ...) -> None: ... + +class TrackPaymentRequest(_message.Message): + __slots__ = ("payment_hash", "no_inflight_updates") + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + NO_INFLIGHT_UPDATES_FIELD_NUMBER: _ClassVar[int] + payment_hash: bytes + no_inflight_updates: bool + def __init__(self, payment_hash: _Optional[bytes] = ..., no_inflight_updates: bool = ...) -> None: ... + +class TrackPaymentsRequest(_message.Message): + __slots__ = ("no_inflight_updates",) + NO_INFLIGHT_UPDATES_FIELD_NUMBER: _ClassVar[int] + no_inflight_updates: bool + def __init__(self, no_inflight_updates: bool = ...) -> None: ... + +class RouteFeeRequest(_message.Message): + __slots__ = ("dest", "amt_sat", "payment_request", "timeout") + DEST_FIELD_NUMBER: _ClassVar[int] + AMT_SAT_FIELD_NUMBER: _ClassVar[int] + PAYMENT_REQUEST_FIELD_NUMBER: _ClassVar[int] + TIMEOUT_FIELD_NUMBER: _ClassVar[int] + dest: bytes + amt_sat: int + payment_request: str + timeout: int + def __init__(self, dest: _Optional[bytes] = ..., amt_sat: _Optional[int] = ..., payment_request: _Optional[str] = ..., timeout: _Optional[int] = ...) -> None: ... + +class RouteFeeResponse(_message.Message): + __slots__ = ("routing_fee_msat", "time_lock_delay", "failure_reason") + ROUTING_FEE_MSAT_FIELD_NUMBER: _ClassVar[int] + TIME_LOCK_DELAY_FIELD_NUMBER: _ClassVar[int] + FAILURE_REASON_FIELD_NUMBER: _ClassVar[int] + routing_fee_msat: int + time_lock_delay: int + failure_reason: _lightning_pb2.PaymentFailureReason + def __init__(self, routing_fee_msat: _Optional[int] = ..., time_lock_delay: _Optional[int] = ..., failure_reason: _Optional[_Union[_lightning_pb2.PaymentFailureReason, str]] = ...) -> None: ... + +class SendToRouteRequest(_message.Message): + __slots__ = ("payment_hash", "route", "skip_temp_err", "first_hop_custom_records") + class FirstHopCustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + ROUTE_FIELD_NUMBER: _ClassVar[int] + SKIP_TEMP_ERR_FIELD_NUMBER: _ClassVar[int] + FIRST_HOP_CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + payment_hash: bytes + route: _lightning_pb2.Route + skip_temp_err: bool + first_hop_custom_records: _containers.ScalarMap[int, bytes] + def __init__(self, payment_hash: _Optional[bytes] = ..., route: _Optional[_Union[_lightning_pb2.Route, _Mapping]] = ..., skip_temp_err: bool = ..., first_hop_custom_records: _Optional[_Mapping[int, bytes]] = ...) -> None: ... + +class SendToRouteResponse(_message.Message): + __slots__ = ("preimage", "failure") + PREIMAGE_FIELD_NUMBER: _ClassVar[int] + FAILURE_FIELD_NUMBER: _ClassVar[int] + preimage: bytes + failure: _lightning_pb2.Failure + def __init__(self, preimage: _Optional[bytes] = ..., failure: _Optional[_Union[_lightning_pb2.Failure, _Mapping]] = ...) -> None: ... + +class ResetMissionControlRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class ResetMissionControlResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class QueryMissionControlRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class QueryMissionControlResponse(_message.Message): + __slots__ = ("pairs",) + PAIRS_FIELD_NUMBER: _ClassVar[int] + pairs: _containers.RepeatedCompositeFieldContainer[PairHistory] + def __init__(self, pairs: _Optional[_Iterable[_Union[PairHistory, _Mapping]]] = ...) -> None: ... + +class XImportMissionControlRequest(_message.Message): + __slots__ = ("pairs", "force") + PAIRS_FIELD_NUMBER: _ClassVar[int] + FORCE_FIELD_NUMBER: _ClassVar[int] + pairs: _containers.RepeatedCompositeFieldContainer[PairHistory] + force: bool + def __init__(self, pairs: _Optional[_Iterable[_Union[PairHistory, _Mapping]]] = ..., force: bool = ...) -> None: ... + +class XImportMissionControlResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class PairHistory(_message.Message): + __slots__ = ("node_from", "node_to", "history") + NODE_FROM_FIELD_NUMBER: _ClassVar[int] + NODE_TO_FIELD_NUMBER: _ClassVar[int] + HISTORY_FIELD_NUMBER: _ClassVar[int] + node_from: bytes + node_to: bytes + history: PairData + def __init__(self, node_from: _Optional[bytes] = ..., node_to: _Optional[bytes] = ..., history: _Optional[_Union[PairData, _Mapping]] = ...) -> None: ... + +class PairData(_message.Message): + __slots__ = ("fail_time", "fail_amt_sat", "fail_amt_msat", "success_time", "success_amt_sat", "success_amt_msat") + FAIL_TIME_FIELD_NUMBER: _ClassVar[int] + FAIL_AMT_SAT_FIELD_NUMBER: _ClassVar[int] + FAIL_AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + SUCCESS_TIME_FIELD_NUMBER: _ClassVar[int] + SUCCESS_AMT_SAT_FIELD_NUMBER: _ClassVar[int] + SUCCESS_AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + fail_time: int + fail_amt_sat: int + fail_amt_msat: int + success_time: int + success_amt_sat: int + success_amt_msat: int + def __init__(self, fail_time: _Optional[int] = ..., fail_amt_sat: _Optional[int] = ..., fail_amt_msat: _Optional[int] = ..., success_time: _Optional[int] = ..., success_amt_sat: _Optional[int] = ..., success_amt_msat: _Optional[int] = ...) -> None: ... + +class GetMissionControlConfigRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class GetMissionControlConfigResponse(_message.Message): + __slots__ = ("config",) + CONFIG_FIELD_NUMBER: _ClassVar[int] + config: MissionControlConfig + def __init__(self, config: _Optional[_Union[MissionControlConfig, _Mapping]] = ...) -> None: ... + +class SetMissionControlConfigRequest(_message.Message): + __slots__ = ("config",) + CONFIG_FIELD_NUMBER: _ClassVar[int] + config: MissionControlConfig + def __init__(self, config: _Optional[_Union[MissionControlConfig, _Mapping]] = ...) -> None: ... + +class SetMissionControlConfigResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class MissionControlConfig(_message.Message): + __slots__ = ("half_life_seconds", "hop_probability", "weight", "maximum_payment_results", "minimum_failure_relax_interval", "model", "apriori", "bimodal") + class ProbabilityModel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + APRIORI: _ClassVar[MissionControlConfig.ProbabilityModel] + BIMODAL: _ClassVar[MissionControlConfig.ProbabilityModel] + APRIORI: MissionControlConfig.ProbabilityModel + BIMODAL: MissionControlConfig.ProbabilityModel + HALF_LIFE_SECONDS_FIELD_NUMBER: _ClassVar[int] + HOP_PROBABILITY_FIELD_NUMBER: _ClassVar[int] + WEIGHT_FIELD_NUMBER: _ClassVar[int] + MAXIMUM_PAYMENT_RESULTS_FIELD_NUMBER: _ClassVar[int] + MINIMUM_FAILURE_RELAX_INTERVAL_FIELD_NUMBER: _ClassVar[int] + MODEL_FIELD_NUMBER: _ClassVar[int] + APRIORI_FIELD_NUMBER: _ClassVar[int] + BIMODAL_FIELD_NUMBER: _ClassVar[int] + half_life_seconds: int + hop_probability: float + weight: float + maximum_payment_results: int + minimum_failure_relax_interval: int + model: MissionControlConfig.ProbabilityModel + apriori: AprioriParameters + bimodal: BimodalParameters + def __init__(self, half_life_seconds: _Optional[int] = ..., hop_probability: _Optional[float] = ..., weight: _Optional[float] = ..., maximum_payment_results: _Optional[int] = ..., minimum_failure_relax_interval: _Optional[int] = ..., model: _Optional[_Union[MissionControlConfig.ProbabilityModel, str]] = ..., apriori: _Optional[_Union[AprioriParameters, _Mapping]] = ..., bimodal: _Optional[_Union[BimodalParameters, _Mapping]] = ...) -> None: ... + +class BimodalParameters(_message.Message): + __slots__ = ("node_weight", "scale_msat", "decay_time") + NODE_WEIGHT_FIELD_NUMBER: _ClassVar[int] + SCALE_MSAT_FIELD_NUMBER: _ClassVar[int] + DECAY_TIME_FIELD_NUMBER: _ClassVar[int] + node_weight: float + scale_msat: int + decay_time: int + def __init__(self, node_weight: _Optional[float] = ..., scale_msat: _Optional[int] = ..., decay_time: _Optional[int] = ...) -> None: ... + +class AprioriParameters(_message.Message): + __slots__ = ("half_life_seconds", "hop_probability", "weight", "capacity_fraction") + HALF_LIFE_SECONDS_FIELD_NUMBER: _ClassVar[int] + HOP_PROBABILITY_FIELD_NUMBER: _ClassVar[int] + WEIGHT_FIELD_NUMBER: _ClassVar[int] + CAPACITY_FRACTION_FIELD_NUMBER: _ClassVar[int] + half_life_seconds: int + hop_probability: float + weight: float + capacity_fraction: float + def __init__(self, half_life_seconds: _Optional[int] = ..., hop_probability: _Optional[float] = ..., weight: _Optional[float] = ..., capacity_fraction: _Optional[float] = ...) -> None: ... + +class QueryProbabilityRequest(_message.Message): + __slots__ = ("from_node", "to_node", "amt_msat") + FROM_NODE_FIELD_NUMBER: _ClassVar[int] + TO_NODE_FIELD_NUMBER: _ClassVar[int] + AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + from_node: bytes + to_node: bytes + amt_msat: int + def __init__(self, from_node: _Optional[bytes] = ..., to_node: _Optional[bytes] = ..., amt_msat: _Optional[int] = ...) -> None: ... + +class QueryProbabilityResponse(_message.Message): + __slots__ = ("probability", "history") + PROBABILITY_FIELD_NUMBER: _ClassVar[int] + HISTORY_FIELD_NUMBER: _ClassVar[int] + probability: float + history: PairData + def __init__(self, probability: _Optional[float] = ..., history: _Optional[_Union[PairData, _Mapping]] = ...) -> None: ... + +class BuildRouteRequest(_message.Message): + __slots__ = ("amt_msat", "final_cltv_delta", "outgoing_chan_id", "hop_pubkeys", "payment_addr", "first_hop_custom_records") + class FirstHopCustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + FINAL_CLTV_DELTA_FIELD_NUMBER: _ClassVar[int] + OUTGOING_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + HOP_PUBKEYS_FIELD_NUMBER: _ClassVar[int] + PAYMENT_ADDR_FIELD_NUMBER: _ClassVar[int] + FIRST_HOP_CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + amt_msat: int + final_cltv_delta: int + outgoing_chan_id: int + hop_pubkeys: _containers.RepeatedScalarFieldContainer[bytes] + payment_addr: bytes + first_hop_custom_records: _containers.ScalarMap[int, bytes] + def __init__(self, amt_msat: _Optional[int] = ..., final_cltv_delta: _Optional[int] = ..., outgoing_chan_id: _Optional[int] = ..., hop_pubkeys: _Optional[_Iterable[bytes]] = ..., payment_addr: _Optional[bytes] = ..., first_hop_custom_records: _Optional[_Mapping[int, bytes]] = ...) -> None: ... + +class BuildRouteResponse(_message.Message): + __slots__ = ("route",) + ROUTE_FIELD_NUMBER: _ClassVar[int] + route: _lightning_pb2.Route + def __init__(self, route: _Optional[_Union[_lightning_pb2.Route, _Mapping]] = ...) -> None: ... + +class SubscribeHtlcEventsRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class HtlcEvent(_message.Message): + __slots__ = ("incoming_channel_id", "outgoing_channel_id", "incoming_htlc_id", "outgoing_htlc_id", "timestamp_ns", "event_type", "forward_event", "forward_fail_event", "settle_event", "link_fail_event", "subscribed_event", "final_htlc_event") + class EventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + UNKNOWN: _ClassVar[HtlcEvent.EventType] + SEND: _ClassVar[HtlcEvent.EventType] + RECEIVE: _ClassVar[HtlcEvent.EventType] + FORWARD: _ClassVar[HtlcEvent.EventType] + UNKNOWN: HtlcEvent.EventType + SEND: HtlcEvent.EventType + RECEIVE: HtlcEvent.EventType + FORWARD: HtlcEvent.EventType + INCOMING_CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + OUTGOING_CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + INCOMING_HTLC_ID_FIELD_NUMBER: _ClassVar[int] + OUTGOING_HTLC_ID_FIELD_NUMBER: _ClassVar[int] + TIMESTAMP_NS_FIELD_NUMBER: _ClassVar[int] + EVENT_TYPE_FIELD_NUMBER: _ClassVar[int] + FORWARD_EVENT_FIELD_NUMBER: _ClassVar[int] + FORWARD_FAIL_EVENT_FIELD_NUMBER: _ClassVar[int] + SETTLE_EVENT_FIELD_NUMBER: _ClassVar[int] + LINK_FAIL_EVENT_FIELD_NUMBER: _ClassVar[int] + SUBSCRIBED_EVENT_FIELD_NUMBER: _ClassVar[int] + FINAL_HTLC_EVENT_FIELD_NUMBER: _ClassVar[int] + incoming_channel_id: int + outgoing_channel_id: int + incoming_htlc_id: int + outgoing_htlc_id: int + timestamp_ns: int + event_type: HtlcEvent.EventType + forward_event: ForwardEvent + forward_fail_event: ForwardFailEvent + settle_event: SettleEvent + link_fail_event: LinkFailEvent + subscribed_event: SubscribedEvent + final_htlc_event: FinalHtlcEvent + def __init__(self, incoming_channel_id: _Optional[int] = ..., outgoing_channel_id: _Optional[int] = ..., incoming_htlc_id: _Optional[int] = ..., outgoing_htlc_id: _Optional[int] = ..., timestamp_ns: _Optional[int] = ..., event_type: _Optional[_Union[HtlcEvent.EventType, str]] = ..., forward_event: _Optional[_Union[ForwardEvent, _Mapping]] = ..., forward_fail_event: _Optional[_Union[ForwardFailEvent, _Mapping]] = ..., settle_event: _Optional[_Union[SettleEvent, _Mapping]] = ..., link_fail_event: _Optional[_Union[LinkFailEvent, _Mapping]] = ..., subscribed_event: _Optional[_Union[SubscribedEvent, _Mapping]] = ..., final_htlc_event: _Optional[_Union[FinalHtlcEvent, _Mapping]] = ...) -> None: ... + +class HtlcInfo(_message.Message): + __slots__ = ("incoming_timelock", "outgoing_timelock", "incoming_amt_msat", "outgoing_amt_msat") + INCOMING_TIMELOCK_FIELD_NUMBER: _ClassVar[int] + OUTGOING_TIMELOCK_FIELD_NUMBER: _ClassVar[int] + INCOMING_AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + OUTGOING_AMT_MSAT_FIELD_NUMBER: _ClassVar[int] + incoming_timelock: int + outgoing_timelock: int + incoming_amt_msat: int + outgoing_amt_msat: int + def __init__(self, incoming_timelock: _Optional[int] = ..., outgoing_timelock: _Optional[int] = ..., incoming_amt_msat: _Optional[int] = ..., outgoing_amt_msat: _Optional[int] = ...) -> None: ... + +class ForwardEvent(_message.Message): + __slots__ = ("info",) + INFO_FIELD_NUMBER: _ClassVar[int] + info: HtlcInfo + def __init__(self, info: _Optional[_Union[HtlcInfo, _Mapping]] = ...) -> None: ... + +class ForwardFailEvent(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class SettleEvent(_message.Message): + __slots__ = ("preimage",) + PREIMAGE_FIELD_NUMBER: _ClassVar[int] + preimage: bytes + def __init__(self, preimage: _Optional[bytes] = ...) -> None: ... + +class FinalHtlcEvent(_message.Message): + __slots__ = ("settled", "offchain") + SETTLED_FIELD_NUMBER: _ClassVar[int] + OFFCHAIN_FIELD_NUMBER: _ClassVar[int] + settled: bool + offchain: bool + def __init__(self, settled: bool = ..., offchain: bool = ...) -> None: ... + +class SubscribedEvent(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class LinkFailEvent(_message.Message): + __slots__ = ("info", "wire_failure", "failure_detail", "failure_string") + INFO_FIELD_NUMBER: _ClassVar[int] + WIRE_FAILURE_FIELD_NUMBER: _ClassVar[int] + FAILURE_DETAIL_FIELD_NUMBER: _ClassVar[int] + FAILURE_STRING_FIELD_NUMBER: _ClassVar[int] + info: HtlcInfo + wire_failure: _lightning_pb2.Failure.FailureCode + failure_detail: FailureDetail + failure_string: str + def __init__(self, info: _Optional[_Union[HtlcInfo, _Mapping]] = ..., wire_failure: _Optional[_Union[_lightning_pb2.Failure.FailureCode, str]] = ..., failure_detail: _Optional[_Union[FailureDetail, str]] = ..., failure_string: _Optional[str] = ...) -> None: ... + +class PaymentStatus(_message.Message): + __slots__ = ("state", "preimage", "htlcs") + STATE_FIELD_NUMBER: _ClassVar[int] + PREIMAGE_FIELD_NUMBER: _ClassVar[int] + HTLCS_FIELD_NUMBER: _ClassVar[int] + state: PaymentState + preimage: bytes + htlcs: _containers.RepeatedCompositeFieldContainer[_lightning_pb2.HTLCAttempt] + def __init__(self, state: _Optional[_Union[PaymentState, str]] = ..., preimage: _Optional[bytes] = ..., htlcs: _Optional[_Iterable[_Union[_lightning_pb2.HTLCAttempt, _Mapping]]] = ...) -> None: ... + +class CircuitKey(_message.Message): + __slots__ = ("chan_id", "htlc_id") + CHAN_ID_FIELD_NUMBER: _ClassVar[int] + HTLC_ID_FIELD_NUMBER: _ClassVar[int] + chan_id: int + htlc_id: int + def __init__(self, chan_id: _Optional[int] = ..., htlc_id: _Optional[int] = ...) -> None: ... + +class ForwardHtlcInterceptRequest(_message.Message): + __slots__ = ("incoming_circuit_key", "incoming_amount_msat", "incoming_expiry", "payment_hash", "outgoing_requested_chan_id", "outgoing_amount_msat", "outgoing_expiry", "custom_records", "onion_blob", "auto_fail_height", "in_wire_custom_records") + class CustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + class InWireCustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + INCOMING_CIRCUIT_KEY_FIELD_NUMBER: _ClassVar[int] + INCOMING_AMOUNT_MSAT_FIELD_NUMBER: _ClassVar[int] + INCOMING_EXPIRY_FIELD_NUMBER: _ClassVar[int] + PAYMENT_HASH_FIELD_NUMBER: _ClassVar[int] + OUTGOING_REQUESTED_CHAN_ID_FIELD_NUMBER: _ClassVar[int] + OUTGOING_AMOUNT_MSAT_FIELD_NUMBER: _ClassVar[int] + OUTGOING_EXPIRY_FIELD_NUMBER: _ClassVar[int] + CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + ONION_BLOB_FIELD_NUMBER: _ClassVar[int] + AUTO_FAIL_HEIGHT_FIELD_NUMBER: _ClassVar[int] + IN_WIRE_CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + incoming_circuit_key: CircuitKey + incoming_amount_msat: int + incoming_expiry: int + payment_hash: bytes + outgoing_requested_chan_id: int + outgoing_amount_msat: int + outgoing_expiry: int + custom_records: _containers.ScalarMap[int, bytes] + onion_blob: bytes + auto_fail_height: int + in_wire_custom_records: _containers.ScalarMap[int, bytes] + def __init__(self, incoming_circuit_key: _Optional[_Union[CircuitKey, _Mapping]] = ..., incoming_amount_msat: _Optional[int] = ..., incoming_expiry: _Optional[int] = ..., payment_hash: _Optional[bytes] = ..., outgoing_requested_chan_id: _Optional[int] = ..., outgoing_amount_msat: _Optional[int] = ..., outgoing_expiry: _Optional[int] = ..., custom_records: _Optional[_Mapping[int, bytes]] = ..., onion_blob: _Optional[bytes] = ..., auto_fail_height: _Optional[int] = ..., in_wire_custom_records: _Optional[_Mapping[int, bytes]] = ...) -> None: ... + +class ForwardHtlcInterceptResponse(_message.Message): + __slots__ = ("incoming_circuit_key", "action", "preimage", "failure_message", "failure_code", "in_amount_msat", "out_amount_msat", "out_wire_custom_records") + class OutWireCustomRecordsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: int + value: bytes + def __init__(self, key: _Optional[int] = ..., value: _Optional[bytes] = ...) -> None: ... + INCOMING_CIRCUIT_KEY_FIELD_NUMBER: _ClassVar[int] + ACTION_FIELD_NUMBER: _ClassVar[int] + PREIMAGE_FIELD_NUMBER: _ClassVar[int] + FAILURE_MESSAGE_FIELD_NUMBER: _ClassVar[int] + FAILURE_CODE_FIELD_NUMBER: _ClassVar[int] + IN_AMOUNT_MSAT_FIELD_NUMBER: _ClassVar[int] + OUT_AMOUNT_MSAT_FIELD_NUMBER: _ClassVar[int] + OUT_WIRE_CUSTOM_RECORDS_FIELD_NUMBER: _ClassVar[int] + incoming_circuit_key: CircuitKey + action: ResolveHoldForwardAction + preimage: bytes + failure_message: bytes + failure_code: _lightning_pb2.Failure.FailureCode + in_amount_msat: int + out_amount_msat: int + out_wire_custom_records: _containers.ScalarMap[int, bytes] + def __init__(self, incoming_circuit_key: _Optional[_Union[CircuitKey, _Mapping]] = ..., action: _Optional[_Union[ResolveHoldForwardAction, str]] = ..., preimage: _Optional[bytes] = ..., failure_message: _Optional[bytes] = ..., failure_code: _Optional[_Union[_lightning_pb2.Failure.FailureCode, str]] = ..., in_amount_msat: _Optional[int] = ..., out_amount_msat: _Optional[int] = ..., out_wire_custom_records: _Optional[_Mapping[int, bytes]] = ...) -> None: ... + +class UpdateChanStatusRequest(_message.Message): + __slots__ = ("chan_point", "action") + CHAN_POINT_FIELD_NUMBER: _ClassVar[int] + ACTION_FIELD_NUMBER: _ClassVar[int] + chan_point: _lightning_pb2.ChannelPoint + action: ChanStatusAction + def __init__(self, chan_point: _Optional[_Union[_lightning_pb2.ChannelPoint, _Mapping]] = ..., action: _Optional[_Union[ChanStatusAction, str]] = ...) -> None: ... + +class UpdateChanStatusResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class AddAliasesRequest(_message.Message): + __slots__ = ("alias_maps",) + ALIAS_MAPS_FIELD_NUMBER: _ClassVar[int] + alias_maps: _containers.RepeatedCompositeFieldContainer[_lightning_pb2.AliasMap] + def __init__(self, alias_maps: _Optional[_Iterable[_Union[_lightning_pb2.AliasMap, _Mapping]]] = ...) -> None: ... + +class AddAliasesResponse(_message.Message): + __slots__ = ("alias_maps",) + ALIAS_MAPS_FIELD_NUMBER: _ClassVar[int] + alias_maps: _containers.RepeatedCompositeFieldContainer[_lightning_pb2.AliasMap] + def __init__(self, alias_maps: _Optional[_Iterable[_Union[_lightning_pb2.AliasMap, _Mapping]]] = ...) -> None: ... + +class DeleteAliasesRequest(_message.Message): + __slots__ = ("alias_maps",) + ALIAS_MAPS_FIELD_NUMBER: _ClassVar[int] + alias_maps: _containers.RepeatedCompositeFieldContainer[_lightning_pb2.AliasMap] + def __init__(self, alias_maps: _Optional[_Iterable[_Union[_lightning_pb2.AliasMap, _Mapping]]] = ...) -> None: ... + +class DeleteAliasesResponse(_message.Message): + __slots__ = ("alias_maps",) + ALIAS_MAPS_FIELD_NUMBER: _ClassVar[int] + alias_maps: _containers.RepeatedCompositeFieldContainer[_lightning_pb2.AliasMap] + def __init__(self, alias_maps: _Optional[_Iterable[_Union[_lightning_pb2.AliasMap, _Mapping]]] = ...) -> None: ... + +class FindBaseAliasRequest(_message.Message): + __slots__ = ("alias",) + ALIAS_FIELD_NUMBER: _ClassVar[int] + alias: int + def __init__(self, alias: _Optional[int] = ...) -> None: ... + +class FindBaseAliasResponse(_message.Message): + __slots__ = ("base",) + BASE_FIELD_NUMBER: _ClassVar[int] + base: int + def __init__(self, base: _Optional[int] = ...) -> None: ... diff --git a/lnbits/wallets/lnd_grpc_files/router_pb2_grpc.py b/lnbits/wallets/lnd_grpc_files/router_pb2_grpc.py index dabd1872..d91f60d0 100644 --- a/lnbits/wallets/lnd_grpc_files/router_pb2_grpc.py +++ b/lnbits/wallets/lnd_grpc_files/router_pb2_grpc.py @@ -6,7 +6,7 @@ import warnings import lnbits.wallets.lnd_grpc_files.lightning_pb2 as lightning__pb2 import lnbits.wallets.lnd_grpc_files.router_pb2 as router__pb2 -GRPC_GENERATED_VERSION = '1.68.1' +GRPC_GENERATED_VERSION = '1.69.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False @@ -154,6 +154,11 @@ class RouterStub(object): request_serializer=router__pb2.DeleteAliasesRequest.SerializeToString, response_deserializer=router__pb2.DeleteAliasesResponse.FromString, _registered_method=True) + self.XFindBaseLocalChanAlias = channel.unary_unary( + '/routerrpc.Router/XFindBaseLocalChanAlias', + request_serializer=router__pb2.FindBaseAliasRequest.SerializeToString, + response_deserializer=router__pb2.FindBaseAliasResponse.FromString, + _registered_method=True) class RouterServicer(object): @@ -391,6 +396,15 @@ class RouterServicer(object): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def XFindBaseLocalChanAlias(self, request, context): + """ + XFindBaseLocalChanAlias is an experimental API that looks up the base scid + for a local chan alias that was registered during the current runtime. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_RouterServicer_to_server(servicer, server): rpc_method_handlers = { @@ -494,6 +508,11 @@ def add_RouterServicer_to_server(servicer, server): request_deserializer=router__pb2.DeleteAliasesRequest.FromString, response_serializer=router__pb2.DeleteAliasesResponse.SerializeToString, ), + 'XFindBaseLocalChanAlias': grpc.unary_unary_rpc_method_handler( + servicer.XFindBaseLocalChanAlias, + request_deserializer=router__pb2.FindBaseAliasRequest.FromString, + response_serializer=router__pb2.FindBaseAliasResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'routerrpc.Router', rpc_method_handlers) @@ -1063,3 +1082,30 @@ class Router(object): timeout, metadata, _registered_method=True) + + @staticmethod + def XFindBaseLocalChanAlias(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/routerrpc.Router/XFindBaseLocalChanAlias', + router__pb2.FindBaseAliasRequest.SerializeToString, + router__pb2.FindBaseAliasResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/lnbits/wallets/lnd_grpc_files/update.sh b/lnbits/wallets/lnd_grpc_files/update.sh new file mode 100755 index 00000000..7ef6499f --- /dev/null +++ b/lnbits/wallets/lnd_grpc_files/update.sh @@ -0,0 +1,12 @@ +wget -q https://raw.githubusercontent.com/lightningnetwork/lnd/refs/heads/master/lnrpc/lightning.proto +wget -q https://raw.githubusercontent.com/lightningnetwork/lnd/refs/heads/master/lnrpc/routerrpc/router.proto +wget -q https://raw.githubusercontent.com/lightningnetwork/lnd/refs/heads/master/lnrpc/invoicesrpc/invoices.proto + +uv run python -m grpc_tools.protoc -I . --python_out=. --grpc_python_out=. --pyi_out=. lightning.proto +echo "generated lightning.proto" +uv run python -m grpc_tools.protoc -I . --python_out=. --grpc_python_out=. --pyi_out=. router.proto +echo "generated router.proto" +uv run python -m grpc_tools.protoc -I . --python_out=. --grpc_python_out=. --pyi_out=. invoices.proto +echo "generated invoices.proto" + +rm lightning.proto router.proto invoices.proto diff --git a/lnbits/wallets/lndgrpc.py b/lnbits/wallets/lndgrpc.py index eadab300..878433e9 100644 --- a/lnbits/wallets/lndgrpc.py +++ b/lnbits/wallets/lndgrpc.py @@ -7,14 +7,33 @@ from os import environ import grpc from loguru import logger -import lnbits.wallets.lnd_grpc_files.invoices_pb2 as invoices -import lnbits.wallets.lnd_grpc_files.invoices_pb2_grpc as invoicesrpc -import lnbits.wallets.lnd_grpc_files.lightning_pb2 as ln -import lnbits.wallets.lnd_grpc_files.lightning_pb2_grpc as lnrpc -import lnbits.wallets.lnd_grpc_files.router_pb2 as router from lnbits.helpers import normalize_endpoint from lnbits.settings import settings from lnbits.utils.crypto import random_secret_and_hash +from lnbits.wallets.lnd_grpc_files.invoices_pb2 import ( + AddHoldInvoiceRequest, + AddHoldInvoiceResp, + CancelInvoiceMsg, + CancelInvoiceResp, + LookupInvoiceMsg, + SettleInvoiceMsg, + SettleInvoiceResp, +) +from lnbits.wallets.lnd_grpc_files.invoices_pb2_grpc import InvoicesStub +from lnbits.wallets.lnd_grpc_files.lightning_pb2 import ( + AddInvoiceResponse, + ChannelBalanceRequest, + ChannelBalanceResponse, + Invoice, + InvoiceSubscription, + Payment, + PaymentFailureReason, +) +from lnbits.wallets.lnd_grpc_files.lightning_pb2_grpc import LightningStub +from lnbits.wallets.lnd_grpc_files.router_pb2 import ( + SendPaymentRequest, + TrackPaymentRequest, +) from lnbits.wallets.lnd_grpc_files.router_pb2_grpc import RouterStub from .base import ( @@ -32,6 +51,7 @@ from .macaroon import load_macaroon def b64_to_bytes(checking_id: str) -> bytes: + return base64.b64decode(checking_id.replace("_", "/")) @@ -64,6 +84,10 @@ environ["GRPC_SSL_CIPHER_SUITES"] = "HIGH+ECDSA" class LndWallet(Wallet): + rpc: LightningStub + router_rpc: RouterStub + invoices_rpc: InvoicesStub + features = [Feature.holdinvoice] def __init__(self): @@ -99,9 +123,9 @@ class LndWallet(Wallet): channel = grpc.aio.secure_channel( f"{self.endpoint}:{self.port}", composite_creds ) - self.rpc = lnrpc.LightningStub(channel) - self.routerpc = RouterStub(channel) - self.invoicesrpc = invoicesrpc.InvoicesStub(channel) + self.rpc = LightningStub(channel) + self.router_rpc = RouterStub(channel) + self.invoices_rpc = InvoicesStub(channel) def metadata_callback(self, _, callback): callback([("macaroon", self.macaroon)], None) @@ -111,11 +135,12 @@ class LndWallet(Wallet): async def status(self) -> StatusResponse: try: - resp = await self.rpc.ChannelBalance(ln.ChannelBalanceRequest()) # type: ignore + req = ChannelBalanceRequest() + res: ChannelBalanceResponse = await self.rpc.ChannelBalance(req) except Exception as exc: return StatusResponse(f"Unable to connect, got: '{exc}'", 0) - return StatusResponse(None, resp.balance * 1000) + return StatusResponse(None, res.balance * 1000) async def create_invoice( self, @@ -125,18 +150,6 @@ class LndWallet(Wallet): unhashed_description: bytes | None = None, **kwargs, ) -> InvoiceResponse: - data: dict = { - "description_hash": b"", - "value": amount, - "private": True, - "memo": memo or "", - } - if kwargs.get("expiry"): - data["expiry"] = kwargs["expiry"] - if description_hash: - data["description_hash"] = description_hash - elif unhashed_description: - data["description_hash"] = sha256(unhashed_description).digest() preimage = kwargs.get("preimage") if preimage: @@ -144,82 +157,71 @@ class LndWallet(Wallet): else: preimage, payment_hash = random_secret_and_hash() - data["r_hash"] = bytes.fromhex(payment_hash) - data["r_preimage"] = bytes.fromhex(preimage) + invoice = Invoice( + value=amount, + private=True, + memo=memo or "", + r_hash=bytes.fromhex(payment_hash), + r_preimage=bytes.fromhex(preimage), + ) + + if kwargs.get("expiry"): + invoice.expiry = kwargs.get("expiry", 3600) + if description_hash: + invoice.description_hash = description_hash + elif unhashed_description: + invoice.description_hash = sha256(unhashed_description).digest() + try: - req = ln.Invoice(**data) # type: ignore - resp = await self.rpc.AddInvoice(req) - # response model - # { - # "r_hash": , - # "payment_request": , - # "add_index": , - # "payment_addr": , - # } + res: AddInvoiceResponse = await self.rpc.AddInvoice(invoice) except Exception as exc: logger.warning(exc) return InvoiceResponse(ok=False, error_message=str(exc)) - checking_id = bytes_to_hex(resp.r_hash) - payment_request = str(resp.payment_request) return InvoiceResponse( ok=True, - checking_id=checking_id, - payment_request=payment_request, + checking_id=bytes_to_hex(res.r_hash), + payment_request=res.payment_request, preimage=preimage, ) async def pay_invoice(self, bolt11: str, fee_limit_msat: int) -> PaymentResponse: # fee_limit_fixed = ln.FeeLimit(fixed=fee_limit_msat // 1000) - req = router.SendPaymentRequest( # type: ignore + req = SendPaymentRequest( payment_request=bolt11, fee_limit_msat=fee_limit_msat, timeout_seconds=30, no_inflight_updates=True, ) try: - resp = await self.routerpc.SendPaymentV2(req).read() + res: Payment = await self.router_rpc.SendPaymentV2(req).read() except Exception as exc: logger.warning(exc) return PaymentResponse(error_message=str(exc)) - # PaymentStatus from https://github.com/lightningnetwork/lnd/blob/master/channeldb/payments.go#L178 - statuses = { - 0: None, # NON_EXISTENT - 1: None, # IN_FLIGHT - 2: True, # SUCCEEDED - 3: False, # FAILED - } - - failure_reasons = { - 0: "Payment failed: No error given.", - 1: "Payment failed: Payment timed out.", - 2: "Payment failed: No route to destination.", - 3: "Payment failed: Error.", - 4: "Payment failed: Incorrect payment details.", - 5: "Payment failed: Insufficient balance.", - } - - fee_msat = None - preimage = None - error_message = None - checking_id = None - - if statuses[resp.status] is True: # SUCCEEDED - fee_msat = -resp.htlcs[-1].route.total_fees_msat - preimage = resp.payment_preimage - checking_id = resp.payment_hash + if res.status == Payment.PaymentStatus.SUCCEEDED: return PaymentResponse( - ok=True, checking_id=checking_id, fee_msat=fee_msat, preimage=preimage + ok=True, + checking_id=res.payment_hash, + fee_msat=abs(res.fee_msat), + preimage=res.payment_preimage, + ) + elif res.status == Payment.PaymentStatus.FAILED: + error_message = PaymentFailureReason.Name(res.failure_reason) + return PaymentResponse( + ok=False, error_message=f"Payment failed: {error_message}" + ) + elif res.status == Payment.PaymentStatus.IN_FLIGHT: + return PaymentResponse( + ok=None, + checking_id=res.payment_hash, + error_message="Payment is IN_FLIGHT.", ) - elif statuses[resp.status] is False: - error_message = failure_reasons[resp.failure_reason] - return PaymentResponse(ok=False, error_message=error_message) else: return PaymentResponse( ok=None, - checking_id=checking_id, - error_message="Payment in flight or non-existant.", + checking_id=res.payment_hash, + error_message="Payment is non-existant.", ) async def get_invoice_status(self, checking_id: str) -> PaymentStatus: @@ -229,73 +231,80 @@ class LndWallet(Wallet): # this may happen if we switch between backend wallets # that use different checking_id formats raise ValueError - - resp = await self.rpc.LookupInvoice(ln.PaymentHash(r_hash=r_hash)) # type: ignore - if resp.settled: - return PaymentSuccessStatus(preimage=resp.r_preimage.hex()) - - if resp.state == "CANCELED": - return PaymentFailedStatus() - - return PaymentPendingStatus() - except grpc.RpcError as exc: - logger.warning(exc) + req = LookupInvoiceMsg(payment_hash=r_hash) + res: Invoice = await self.invoices_rpc.LookupInvoiceV2(req) + except grpc.aio.AioRpcError as exc: + logger.warning( + f"LndWallet.get_invoice_status grpc exception: {exc.details()}" + ) return PaymentPendingStatus() except Exception as exc: - logger.warning(exc) + logger.warning(f"LndWallet.get_invoice_status exception: {exc}") return PaymentPendingStatus() + if res.settled: + return PaymentSuccessStatus(preimage=res.r_preimage.hex()) + + if res.state == Invoice.InvoiceState.CANCELED: + return PaymentFailedStatus() + + return PaymentPendingStatus() + async def get_payment_status(self, checking_id: str) -> PaymentStatus: """ - This routine checks the payment status using routerpc.TrackPaymentV2. + This routine checks the payment status using router_rpc.TrackPaymentV2. + https://lightning.engineering/api-docs/api/lnd/router/track-payment-v2/#lnrpcpayment """ try: r_hash = hex_to_bytes(checking_id) - if len(r_hash) != 32: - raise ValueError except ValueError: - # this may happen if we switch between backend wallets - # that use different checking_id formats + logger.error( + f"LndWallet: Invalid checking_id ({checking_id})," + " was the fundingsource changed? Returning pending status." + ) return PaymentPendingStatus() - # # HTLCAttempt.HTLCStatus: - # # https://github.com/lightningnetwork/lnd/blob/master/lnrpc/lightning.proto#L3641 - # htlc_statuses = { - # 0: None, # IN_FLIGHT - # 1: True, # "SUCCEEDED" - # 2: False, # "FAILED" - # } - statuses = { - 0: None, # NON_EXISTENT - 1: None, # IN_FLIGHT - 2: True, # SUCCEEDED - 3: False, # FAILED - } - try: - resp = self.routerpc.TrackPaymentV2( - router.TrackPaymentRequest(payment_hash=r_hash) # type: ignore + req = TrackPaymentRequest(payment_hash=r_hash) + res = self.router_rpc.TrackPaymentV2(req) + except grpc.aio.AioRpcError as exc: + logger.error( + f"Payment Status grpc exception: {exc.details() or exc.code()}" ) - async for payment in resp: - if len(payment.htlcs) and statuses[payment.status]: - return PaymentSuccessStatus( - fee_msat=-payment.htlcs[-1].route.total_fees_msat, - preimage=bytes_to_hex(payment.htlcs[-1].preimage), - ) - return PaymentStatus(statuses[payment.status]) - except Exception: # most likely the payment wasn't found + return PaymentPendingStatus() + except Exception as exc: # most likely the payment wasn't found + logger.error(f"Payment Status exception: {exc}") return PaymentPendingStatus() + try: + async for payment in res: + if payment.status == Payment.PaymentStatus.SUCCEEDED: + return PaymentSuccessStatus( + fee_msat=abs(payment.fee_msat), + preimage=payment.payment_preimage, + ) + elif payment.status == Payment.PaymentStatus.FAILED: + logger.info(f"LND Payment failed: {payment.failure_reason}") + return PaymentFailedStatus() + elif payment.status == Payment.PaymentStatus.IN_FLIGHT: + logger.info(f"LND Payment in flight: {checking_id}") + return PaymentPendingStatus() + except grpc.aio.AioRpcError as exc: + logger.error( + f"Payment Status grpc exception: {exc.details() or exc.code()}" + ) + return PaymentPendingStatus() + + logger.info(f"LND Payment non-existent: {checking_id}") return PaymentPendingStatus() async def paid_invoices_stream(self) -> AsyncGenerator[str, None]: while settings.lnbits_running: try: - request = ln.InvoiceSubscription() # type: ignore - async for i in self.rpc.SubscribeInvoices(request): + req = InvoiceSubscription() + async for i in self.rpc.SubscribeInvoices(req): if not i.settled: continue - checking_id = bytes_to_hex(i.r_hash) yield checking_id except Exception as exc: @@ -314,35 +323,35 @@ class LndWallet(Wallet): unhashed_description: bytes | None = None, **kwargs, ) -> InvoiceResponse: - data: dict = { - "description_hash": b"", - "value": amount, - "hash": hex_to_bytes(payment_hash), - "private": True, - "memo": memo or "", - } + hold_invoice = AddHoldInvoiceRequest( + value=amount, + hash=hex_to_bytes(payment_hash), + private=True, + memo=memo or "", + ) if kwargs.get("expiry"): - data["expiry"] = kwargs["expiry"] + hold_invoice.expiry = kwargs.get("expiry", 3600) if description_hash: - data["description_hash"] = description_hash + hold_invoice.description_hash = description_hash elif unhashed_description: - data["description_hash"] = sha256(unhashed_description).digest() + hold_invoice.description_hash = sha256(unhashed_description).digest() try: - req = invoices.AddHoldInvoiceRequest(**data) # type: ignore - res = await self.invoicesrpc.AddHoldInvoice(req) + res: AddHoldInvoiceResp = await self.invoices_rpc.AddHoldInvoice( + hold_invoice + ) logger.debug(f"AddHoldInvoice response: {res}") except Exception as exc: logger.warning(exc) - error_message = str(exc) - return InvoiceResponse(ok=False, error_message=error_message) + return InvoiceResponse(ok=False, error_message=str(exc)) return InvoiceResponse( - ok=True, checking_id=payment_hash, payment_request=str(res.payment_request) + ok=True, checking_id=payment_hash, payment_request=res.payment_request ) async def settle_hold_invoice(self, preimage: str) -> InvoiceResponse: try: - req = invoices.SettleInvoiceMsg(preimage=hex_to_bytes(preimage)) # type: ignore - await self.invoicesrpc.SettleInvoice(req) + req = SettleInvoiceMsg(preimage=hex_to_bytes(preimage)) + res: SettleInvoiceResp = await self.invoices_rpc.SettleInvoice(req) + logger.debug(f"SettleInvoice response: {res}") except grpc.aio.AioRpcError as exc: return InvoiceResponse( ok=False, error_message=exc.details() or "unknown grpc exception" @@ -354,8 +363,8 @@ class LndWallet(Wallet): async def cancel_hold_invoice(self, payment_hash: str) -> InvoiceResponse: try: - req = invoices.CancelInvoiceMsg(payment_hash=hex_to_bytes(payment_hash)) # type: ignore - res = await self.invoicesrpc.CancelInvoice(req) + req = CancelInvoiceMsg(payment_hash=hex_to_bytes(payment_hash)) + res: CancelInvoiceResp = await self.invoices_rpc.CancelInvoice(req) logger.debug(f"CancelInvoice response: {res}") except Exception as exc: logger.warning(exc) diff --git a/tests/wallets/fixtures/json/fixtures_rpc.json b/tests/wallets/fixtures/json/fixtures_rpc.json index 684ed2ff..58f729a3 100644 --- a/tests/wallets/fixtures/json/fixtures_rpc.json +++ b/tests/wallets/fixtures/json/fixtures_rpc.json @@ -684,7 +684,7 @@ "response_type": "data", "response": {} }, - "routerpc": { + "router_rpc": { "method": "lnbits.wallets.lnd_grpc_files.router_pb2_grpc.RouterStub.__new__", "request_type": "function", "response_type": "data", @@ -766,7 +766,7 @@ "response": {} } ], - "routerpc": [ + "router_rpc": [ { "description": "one HTLCs", "response": { @@ -779,6 +779,7 @@ "response_type": "data", "response": { "status": 2, + "fee_msat": 50, "htlcs": [ { "route": { @@ -806,6 +807,7 @@ "response_type": "data", "response": { "status": 2, + "fee_msat": 50, "htlcs": [ { "route": { @@ -892,7 +894,7 @@ "response": {} } ], - "routerpc": [ + "router_rpc": [ { "description": "No error given.", "response": { @@ -1076,7 +1078,7 @@ "response": {} } ], - "routerpc": [ + "router_rpc": [ { "description": "RPC error.", "response": { @@ -1144,7 +1146,7 @@ }, "lndrpc": { "rpc": [], - "routerpc": [] + "router_rpc": [] } } }, @@ -1238,11 +1240,17 @@ "response_type": "data", "response": {} }, - "routerpc": { + "router_rpc": { "method": "lnbits.wallets.lnd_grpc_files.router_pb2_grpc.RouterStub.__new__", "request_type": "function", "response_type": "data", "response": {} + }, + "invoices_rpc": { + "method": "lnbits.wallets.lnd_grpc_files.invoices_pb2_grpc.InvoicesStub.__new__", + "request_type": "function", + "response_type": "data", + "response": {} } } }, @@ -1315,20 +1323,25 @@ ] }, "lndrpc": { - "routerpc": [ + "rpc": [ { "response": {} } ], - "rpc": [ + "router_rpc": [ + { + "response": {} + } + ], + "invoices_rpc": [ { "response": { - "LookupInvoice": { + "LookupInvoiceV2": { "request_type": "async-function", "request_data": { - "klass": "lnbits.wallets.lnd_grpc_files.lightning_pb2.PaymentHash", + "klass": "lnbits.wallets.lnd_grpc_files.invoices_pb2.LookupInvoiceMsg", "kwargs": { - "__eval__:r_hash": "bytes.fromhex(\"c386d8e8d07342f2e39e189c8e6c57bb205bb373fe4e3a6f69404a8bb767b417\")" + "__eval__:payment_hash": "bytes.fromhex(\"c386d8e8d07342f2e39e189c8e6c57bb205bb373fe4e3a6f69404a8bb767b417\")" } }, "response_type": "data", @@ -1573,25 +1586,31 @@ ] }, "lndrpc": { - "routerpc": [ + "rpc": [ { "response": {} } ], - "rpc": [ + "router_rpc": [ + { + "response": {} + } + ], + "invoices_rpc": [ { "description": "not settled", "response": { - "LookupInvoice": { + "LookupInvoiceV2": { "request_type": "async-function", "request_data": { - "klass": "lnbits.wallets.lnd_grpc_files.lightning_pb2.PaymentHash", + "klass": "lnbits.wallets.lnd_grpc_files.invoices_pb2.LookupInvoiceMsg", "kwargs": { - "__eval__:r_hash": "bytes.fromhex(\"c386d8e8d07342f2e39e189c8e6c57bb205bb373fe4e3a6f69404a8bb767b417\")" + "__eval__:payment_hash": "bytes.fromhex(\"c386d8e8d07342f2e39e189c8e6c57bb205bb373fe4e3a6f69404a8bb767b417\")" } }, "response_type": "data", "response": { + "state": 0, "settled": false } } @@ -1600,12 +1619,12 @@ { "description": "rpc error", "response": { - "LookupInvoice": { + "LookupInvoiceV2": { "request_type": "async-function", "request_data": { - "klass": "lnbits.wallets.lnd_grpc_files.lightning_pb2.PaymentHash", + "klass": "lnbits.wallets.lnd_grpc_files.invoices_pb2.LookupInvoiceMsg", "kwargs": { - "__eval__:r_hash": "bytes.fromhex(\"c386d8e8d07342f2e39e189c8e6c57bb205bb373fe4e3a6f69404a8bb767b417\")" + "__eval__:payment_hash": "bytes.fromhex(\"c386d8e8d07342f2e39e189c8e6c57bb205bb373fe4e3a6f69404a8bb767b417\")" } }, "response_type": "exception", @@ -1620,12 +1639,12 @@ { "description": "rpc error", "response": { - "LookupInvoice": { + "LookupInvoiceV2": { "request_type": "async-function", "request_data": { - "klass": "lnbits.wallets.lnd_grpc_files.lightning_pb2.PaymentHash", + "klass": "lnbits.wallets.lnd_grpc_files.invoices_pb2.LookupInvoiceMsg", "kwargs": { - "__eval__:r_hash": "bytes.fromhex(\"c386d8e8d07342f2e39e189c8e6c57bb205bb373fe4e3a6f69404a8bb767b417\")" + "__eval__:payment_hash": "bytes.fromhex(\"c386d8e8d07342f2e39e189c8e6c57bb205bb373fe4e3a6f69404a8bb767b417\")" } }, "response_type": "exception", @@ -1688,7 +1707,7 @@ ] }, "lndrpc": { - "routerpc": [ + "router_rpc": [ { "response": {} } @@ -1776,7 +1795,7 @@ ] }, "lndrpc": { - "routerpc": [], + "router_rpc": [], "rpc": [] } } @@ -1825,11 +1844,17 @@ "response_type": "data", "response": {} }, - "routerpc": { + "router_rpc": { "method": "lnbits.wallets.lnd_grpc_files.router_pb2_grpc.RouterStub.__new__", "request_type": "function", "response_type": "data", "response": {} + }, + "invoices_rpc": { + "method": "lnbits.wallets.lnd_grpc_files.invoices_pb2_grpc.InvoicesStub.__new__", + "request_type": "function", + "response_type": "data", + "response": {} } } }, @@ -1905,7 +1930,7 @@ "response": {} } ], - "routerpc": [ + "router_rpc": [ { "description": "two HTLC", "response": { @@ -1921,6 +1946,8 @@ "response": [ { "status": 2, + "fee_msat": 50, + "payment_preimage": "0000000000000000000000000000000000000000000000000000000000000000", "htlcs": [ { "route": { @@ -1953,7 +1980,7 @@ "success": true, "failed": false, "pending": false, - "fee_msat": null, + "fee_msat": 50, "preimage": null }, "mocks": { @@ -1965,7 +1992,7 @@ "response": {} } ], - "routerpc": [ + "router_rpc": [ { "description": "two HTLC", "response": { @@ -1981,6 +2008,9 @@ "response": [ { "status": 2, + "failure_reason": 1, + "fee_msat": 50, + "payment_preimage": null, "htlcs": [] } ] @@ -2122,7 +2152,7 @@ "response": {} } ], - "routerpc": [ + "router_rpc": [ { "description": "no HTLC", "response": { @@ -2138,6 +2168,7 @@ "response": [ { "status": 0, + "failure_reason": 1, "htlcs": [] } ] @@ -2160,22 +2191,6 @@ } } }, - { - "description": "no status", - "response": { - "TrackPaymentV2": { - "request_type": "function", - "request_data": { - "klass": "lnbits.wallets.lnd_grpc_files.router_pb2.TrackPaymentRequest", - "kwargs": { - "__eval__:payment_hash": "bytes.fromhex(\"c386d8e8d07342f2e39e189c8e6c57bb205bb373fe4e3a6f69404a8bb767b417\")" - } - }, - "response_type": "__aiter__", - "response": [{}] - } - } - }, { "description": "status: non-existend", "response": { @@ -2317,7 +2332,7 @@ "response": {} } ], - "routerpc": [ + "router_rpc": [ { "description": "no HTLC", "response": {} @@ -2390,7 +2405,7 @@ "response": {} } ], - "routerpc": [ + "router_rpc": [ { "description": "two HTLC", "response": { @@ -2406,6 +2421,7 @@ "response": [ { "status": 3, + "failure_reason": 1, "htlcs": [] } ]