mirror of
https://github.com/aljazceru/nutshell.git
synced 2025-12-21 11:04:19 +01:00
* protos + lnd_grpc.py + __init__ + status method * `create_invoice` * `pay_invoice`, `pay_partial_invoice` and router pb2 * `get_invoice_status` * channel keep-alive options * Update lnd_grpc.py * `get_payment_status` + make format * `get_payment_quote` and `paid_invoices_stream`. This was suspiciously easy... * download_and_build script modified to fix the imports on generated code * pyproject with new dependencies * update poetry.lock * fixed errors in `pay_partial_invoice` * update .env.example * make format * enable regtest * update .env.example * suggested fixes * suggested changes pt.2 * Update cashu/core/settings.py Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com> --------- Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
1573 lines
63 KiB
Python
1573 lines
63 KiB
Python
"""
|
|
@generated by mypy-protobuf. Do not edit manually!
|
|
isort:skip_file
|
|
"""
|
|
|
|
import builtins
|
|
import collections.abc
|
|
import sys
|
|
import typing
|
|
|
|
import google.protobuf.descriptor
|
|
import google.protobuf.internal.containers
|
|
import google.protobuf.internal.enum_type_wrapper
|
|
import google.protobuf.message
|
|
|
|
import cashu.lightning.lnd_grpc.protos.lightning_pb2
|
|
|
|
if sys.version_info >= (3, 10):
|
|
import typing as typing_extensions
|
|
else:
|
|
import typing_extensions
|
|
|
|
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
|
|
class _FailureDetail:
|
|
ValueType = typing.NewType("ValueType", builtins.int)
|
|
V: typing_extensions.TypeAlias = ValueType
|
|
|
|
class _FailureDetailEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FailureDetail.ValueType], builtins.type):
|
|
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
UNKNOWN: _FailureDetail.ValueType # 0
|
|
NO_DETAIL: _FailureDetail.ValueType # 1
|
|
ONION_DECODE: _FailureDetail.ValueType # 2
|
|
LINK_NOT_ELIGIBLE: _FailureDetail.ValueType # 3
|
|
ON_CHAIN_TIMEOUT: _FailureDetail.ValueType # 4
|
|
HTLC_EXCEEDS_MAX: _FailureDetail.ValueType # 5
|
|
INSUFFICIENT_BALANCE: _FailureDetail.ValueType # 6
|
|
INCOMPLETE_FORWARD: _FailureDetail.ValueType # 7
|
|
HTLC_ADD_FAILED: _FailureDetail.ValueType # 8
|
|
FORWARDS_DISABLED: _FailureDetail.ValueType # 9
|
|
INVOICE_CANCELED: _FailureDetail.ValueType # 10
|
|
INVOICE_UNDERPAID: _FailureDetail.ValueType # 11
|
|
INVOICE_EXPIRY_TOO_SOON: _FailureDetail.ValueType # 12
|
|
INVOICE_NOT_OPEN: _FailureDetail.ValueType # 13
|
|
MPP_INVOICE_TIMEOUT: _FailureDetail.ValueType # 14
|
|
ADDRESS_MISMATCH: _FailureDetail.ValueType # 15
|
|
SET_TOTAL_MISMATCH: _FailureDetail.ValueType # 16
|
|
SET_TOTAL_TOO_LOW: _FailureDetail.ValueType # 17
|
|
SET_OVERPAID: _FailureDetail.ValueType # 18
|
|
UNKNOWN_INVOICE: _FailureDetail.ValueType # 19
|
|
INVALID_KEYSEND: _FailureDetail.ValueType # 20
|
|
MPP_IN_PROGRESS: _FailureDetail.ValueType # 21
|
|
CIRCULAR_ROUTE: _FailureDetail.ValueType # 22
|
|
|
|
class FailureDetail(_FailureDetail, metaclass=_FailureDetailEnumTypeWrapper): ...
|
|
|
|
UNKNOWN: FailureDetail.ValueType # 0
|
|
NO_DETAIL: FailureDetail.ValueType # 1
|
|
ONION_DECODE: FailureDetail.ValueType # 2
|
|
LINK_NOT_ELIGIBLE: FailureDetail.ValueType # 3
|
|
ON_CHAIN_TIMEOUT: FailureDetail.ValueType # 4
|
|
HTLC_EXCEEDS_MAX: FailureDetail.ValueType # 5
|
|
INSUFFICIENT_BALANCE: FailureDetail.ValueType # 6
|
|
INCOMPLETE_FORWARD: FailureDetail.ValueType # 7
|
|
HTLC_ADD_FAILED: FailureDetail.ValueType # 8
|
|
FORWARDS_DISABLED: FailureDetail.ValueType # 9
|
|
INVOICE_CANCELED: FailureDetail.ValueType # 10
|
|
INVOICE_UNDERPAID: FailureDetail.ValueType # 11
|
|
INVOICE_EXPIRY_TOO_SOON: FailureDetail.ValueType # 12
|
|
INVOICE_NOT_OPEN: FailureDetail.ValueType # 13
|
|
MPP_INVOICE_TIMEOUT: FailureDetail.ValueType # 14
|
|
ADDRESS_MISMATCH: FailureDetail.ValueType # 15
|
|
SET_TOTAL_MISMATCH: FailureDetail.ValueType # 16
|
|
SET_TOTAL_TOO_LOW: FailureDetail.ValueType # 17
|
|
SET_OVERPAID: FailureDetail.ValueType # 18
|
|
UNKNOWN_INVOICE: FailureDetail.ValueType # 19
|
|
INVALID_KEYSEND: FailureDetail.ValueType # 20
|
|
MPP_IN_PROGRESS: FailureDetail.ValueType # 21
|
|
CIRCULAR_ROUTE: FailureDetail.ValueType # 22
|
|
global___FailureDetail = FailureDetail
|
|
|
|
class _PaymentState:
|
|
ValueType = typing.NewType("ValueType", builtins.int)
|
|
V: typing_extensions.TypeAlias = ValueType
|
|
|
|
class _PaymentStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PaymentState.ValueType], builtins.type):
|
|
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
IN_FLIGHT: _PaymentState.ValueType # 0
|
|
"""
|
|
Payment is still in flight.
|
|
"""
|
|
SUCCEEDED: _PaymentState.ValueType # 1
|
|
"""
|
|
Payment completed successfully.
|
|
"""
|
|
FAILED_TIMEOUT: _PaymentState.ValueType # 2
|
|
"""
|
|
There are more routes to try, but the payment timeout was exceeded.
|
|
"""
|
|
FAILED_NO_ROUTE: _PaymentState.ValueType # 3
|
|
"""
|
|
All possible routes were tried and failed permanently. Or were no
|
|
routes to the destination at all.
|
|
"""
|
|
FAILED_ERROR: _PaymentState.ValueType # 4
|
|
"""
|
|
A non-recoverable error has occurred.
|
|
"""
|
|
FAILED_INCORRECT_PAYMENT_DETAILS: _PaymentState.ValueType # 5
|
|
"""
|
|
Payment details incorrect (unknown hash, invalid amt or
|
|
invalid final cltv delta)
|
|
"""
|
|
FAILED_INSUFFICIENT_BALANCE: _PaymentState.ValueType # 6
|
|
"""
|
|
Insufficient local balance.
|
|
"""
|
|
|
|
class PaymentState(_PaymentState, metaclass=_PaymentStateEnumTypeWrapper): ...
|
|
|
|
IN_FLIGHT: PaymentState.ValueType # 0
|
|
"""
|
|
Payment is still in flight.
|
|
"""
|
|
SUCCEEDED: PaymentState.ValueType # 1
|
|
"""
|
|
Payment completed successfully.
|
|
"""
|
|
FAILED_TIMEOUT: PaymentState.ValueType # 2
|
|
"""
|
|
There are more routes to try, but the payment timeout was exceeded.
|
|
"""
|
|
FAILED_NO_ROUTE: PaymentState.ValueType # 3
|
|
"""
|
|
All possible routes were tried and failed permanently. Or were no
|
|
routes to the destination at all.
|
|
"""
|
|
FAILED_ERROR: PaymentState.ValueType # 4
|
|
"""
|
|
A non-recoverable error has occurred.
|
|
"""
|
|
FAILED_INCORRECT_PAYMENT_DETAILS: PaymentState.ValueType # 5
|
|
"""
|
|
Payment details incorrect (unknown hash, invalid amt or
|
|
invalid final cltv delta)
|
|
"""
|
|
FAILED_INSUFFICIENT_BALANCE: PaymentState.ValueType # 6
|
|
"""
|
|
Insufficient local balance.
|
|
"""
|
|
global___PaymentState = PaymentState
|
|
|
|
class _ResolveHoldForwardAction:
|
|
ValueType = typing.NewType("ValueType", builtins.int)
|
|
V: typing_extensions.TypeAlias = ValueType
|
|
|
|
class _ResolveHoldForwardActionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ResolveHoldForwardAction.ValueType], builtins.type):
|
|
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
SETTLE: _ResolveHoldForwardAction.ValueType # 0
|
|
FAIL: _ResolveHoldForwardAction.ValueType # 1
|
|
RESUME: _ResolveHoldForwardAction.ValueType # 2
|
|
|
|
class ResolveHoldForwardAction(_ResolveHoldForwardAction, metaclass=_ResolveHoldForwardActionEnumTypeWrapper): ...
|
|
|
|
SETTLE: ResolveHoldForwardAction.ValueType # 0
|
|
FAIL: ResolveHoldForwardAction.ValueType # 1
|
|
RESUME: ResolveHoldForwardAction.ValueType # 2
|
|
global___ResolveHoldForwardAction = ResolveHoldForwardAction
|
|
|
|
class _ChanStatusAction:
|
|
ValueType = typing.NewType("ValueType", builtins.int)
|
|
V: typing_extensions.TypeAlias = ValueType
|
|
|
|
class _ChanStatusActionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ChanStatusAction.ValueType], builtins.type):
|
|
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
ENABLE: _ChanStatusAction.ValueType # 0
|
|
DISABLE: _ChanStatusAction.ValueType # 1
|
|
AUTO: _ChanStatusAction.ValueType # 2
|
|
|
|
class ChanStatusAction(_ChanStatusAction, metaclass=_ChanStatusActionEnumTypeWrapper): ...
|
|
|
|
ENABLE: ChanStatusAction.ValueType # 0
|
|
DISABLE: ChanStatusAction.ValueType # 1
|
|
AUTO: ChanStatusAction.ValueType # 2
|
|
global___ChanStatusAction = ChanStatusAction
|
|
|
|
@typing.final
|
|
class SendPaymentRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
@typing.final
|
|
class DestCustomRecordsEntry(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
KEY_FIELD_NUMBER: builtins.int
|
|
VALUE_FIELD_NUMBER: builtins.int
|
|
key: builtins.int
|
|
value: builtins.bytes
|
|
def __init__(
|
|
self,
|
|
*,
|
|
key: builtins.int = ...,
|
|
value: builtins.bytes = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
|
|
|
|
DEST_FIELD_NUMBER: builtins.int
|
|
AMT_FIELD_NUMBER: builtins.int
|
|
PAYMENT_HASH_FIELD_NUMBER: builtins.int
|
|
FINAL_CLTV_DELTA_FIELD_NUMBER: builtins.int
|
|
PAYMENT_REQUEST_FIELD_NUMBER: builtins.int
|
|
TIMEOUT_SECONDS_FIELD_NUMBER: builtins.int
|
|
FEE_LIMIT_SAT_FIELD_NUMBER: builtins.int
|
|
OUTGOING_CHAN_ID_FIELD_NUMBER: builtins.int
|
|
CLTV_LIMIT_FIELD_NUMBER: builtins.int
|
|
ROUTE_HINTS_FIELD_NUMBER: builtins.int
|
|
DEST_CUSTOM_RECORDS_FIELD_NUMBER: builtins.int
|
|
AMT_MSAT_FIELD_NUMBER: builtins.int
|
|
FEE_LIMIT_MSAT_FIELD_NUMBER: builtins.int
|
|
LAST_HOP_PUBKEY_FIELD_NUMBER: builtins.int
|
|
ALLOW_SELF_PAYMENT_FIELD_NUMBER: builtins.int
|
|
DEST_FEATURES_FIELD_NUMBER: builtins.int
|
|
MAX_PARTS_FIELD_NUMBER: builtins.int
|
|
NO_INFLIGHT_UPDATES_FIELD_NUMBER: builtins.int
|
|
OUTGOING_CHAN_IDS_FIELD_NUMBER: builtins.int
|
|
PAYMENT_ADDR_FIELD_NUMBER: builtins.int
|
|
MAX_SHARD_SIZE_MSAT_FIELD_NUMBER: builtins.int
|
|
AMP_FIELD_NUMBER: builtins.int
|
|
TIME_PREF_FIELD_NUMBER: builtins.int
|
|
CANCELABLE_FIELD_NUMBER: builtins.int
|
|
dest: builtins.bytes
|
|
"""The identity pubkey of the payment recipient"""
|
|
amt: builtins.int
|
|
"""
|
|
Number of satoshis to send.
|
|
|
|
The fields amt and amt_msat are mutually exclusive.
|
|
"""
|
|
payment_hash: builtins.bytes
|
|
"""The hash to use within the payment's HTLC"""
|
|
final_cltv_delta: builtins.int
|
|
"""
|
|
The CLTV delta from the current height that should be used to set the
|
|
timelock for the final hop.
|
|
"""
|
|
payment_request: builtins.str
|
|
"""
|
|
A bare-bones invoice for a payment within the Lightning Network. With the
|
|
details of the invoice, the sender has all the data necessary to send a
|
|
payment to the recipient. The amount in the payment request may be zero. In
|
|
that case it is required to set the amt field as well. If no payment request
|
|
is specified, the following fields are required: dest, amt and payment_hash.
|
|
"""
|
|
timeout_seconds: builtins.int
|
|
"""
|
|
An upper limit on the amount of time we should spend when attempting to
|
|
fulfill the payment. This is expressed in seconds. If we cannot make a
|
|
successful payment within this time frame, an error will be returned.
|
|
This field must be non-zero.
|
|
"""
|
|
fee_limit_sat: builtins.int
|
|
"""
|
|
The maximum number of satoshis that will be paid as a fee of the payment.
|
|
If this field is left to the default value of 0, only zero-fee routes will
|
|
be considered. This usually means single hop routes connecting directly to
|
|
the destination. To send the payment without a fee limit, use max int here.
|
|
|
|
The fields fee_limit_sat and fee_limit_msat are mutually exclusive.
|
|
"""
|
|
outgoing_chan_id: builtins.int
|
|
"""
|
|
Deprecated, use outgoing_chan_ids. The channel id of the channel that must
|
|
be taken to the first hop. If zero, any channel may be used (unless
|
|
outgoing_chan_ids are set).
|
|
"""
|
|
cltv_limit: builtins.int
|
|
"""
|
|
An optional maximum total time lock for the route. This should not
|
|
exceed lnd's `--max-cltv-expiry` setting. If zero, then the value of
|
|
`--max-cltv-expiry` is enforced.
|
|
"""
|
|
amt_msat: builtins.int
|
|
"""
|
|
Number of millisatoshis to send.
|
|
|
|
The fields amt and amt_msat are mutually exclusive.
|
|
"""
|
|
fee_limit_msat: builtins.int
|
|
"""
|
|
The maximum number of millisatoshis that will be paid as a fee of the
|
|
payment. If this field is left to the default value of 0, only zero-fee
|
|
routes will be considered. This usually means single hop routes connecting
|
|
directly to the destination. To send the payment without a fee limit, use
|
|
max int here.
|
|
|
|
The fields fee_limit_sat and fee_limit_msat are mutually exclusive.
|
|
"""
|
|
last_hop_pubkey: builtins.bytes
|
|
"""
|
|
The pubkey of the last hop of the route. If empty, any hop may be used.
|
|
"""
|
|
allow_self_payment: builtins.bool
|
|
"""If set, circular payments to self are permitted."""
|
|
max_parts: builtins.int
|
|
"""
|
|
The maximum number of partial payments that may be use to complete the full
|
|
amount.
|
|
"""
|
|
no_inflight_updates: builtins.bool
|
|
"""
|
|
If set, only the final payment update is streamed back. Intermediate updates
|
|
that show which htlcs are still in flight are suppressed.
|
|
"""
|
|
payment_addr: builtins.bytes
|
|
"""
|
|
An optional payment addr to be included within the last hop of the route.
|
|
This is also called payment secret in specifications (e.g. BOLT 11).
|
|
"""
|
|
max_shard_size_msat: builtins.int
|
|
"""
|
|
The largest payment split that should be attempted when making a payment if
|
|
splitting is necessary. Setting this value will effectively cause lnd to
|
|
split more aggressively, vs only when it thinks it needs to. Note that this
|
|
value is in milli-satoshis.
|
|
"""
|
|
amp: builtins.bool
|
|
"""
|
|
If set, an AMP-payment will be attempted.
|
|
"""
|
|
time_pref: builtins.float
|
|
"""
|
|
The time preference for this payment. Set to -1 to optimize for fees
|
|
only, to 1 to optimize for reliability only or a value inbetween for a mix.
|
|
"""
|
|
cancelable: builtins.bool
|
|
"""
|
|
If set, the payment loop can be interrupted by manually canceling the
|
|
payment context, even before the payment timeout is reached. Note that the
|
|
payment may still succeed after cancellation, as in-flight attempts can
|
|
still settle afterwards. Canceling will only prevent further attempts from
|
|
being sent.
|
|
"""
|
|
@property
|
|
def route_hints(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cashu.lightning.lnd_grpc.protos.lightning_pb2.RouteHint]:
|
|
"""
|
|
Optional route hints to reach the destination through private channels.
|
|
"""
|
|
|
|
@property
|
|
def dest_custom_records(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.bytes]:
|
|
"""
|
|
An optional field that can be used to pass an arbitrary set of TLV records
|
|
to a peer which understands the new records. This can be used to pass
|
|
application specific data during the payment attempt. Record types are
|
|
required to be in the custom range >= 65536. When using REST, the values
|
|
must be encoded as base64.
|
|
"""
|
|
|
|
@property
|
|
def dest_features(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[cashu.lightning.lnd_grpc.protos.lightning_pb2.FeatureBit.ValueType]:
|
|
"""
|
|
Features assumed to be supported by the final node. All transitive feature
|
|
dependencies must also be set properly. For a given feature bit pair, either
|
|
optional or remote may be set, but not both. If this field is nil or empty,
|
|
the router will try to load destination features from the graph as a
|
|
fallback.
|
|
"""
|
|
|
|
@property
|
|
def outgoing_chan_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
|
|
"""
|
|
The channel ids of the channels are allowed for the first hop. If empty,
|
|
any channel may be used.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
dest: builtins.bytes = ...,
|
|
amt: builtins.int = ...,
|
|
payment_hash: builtins.bytes = ...,
|
|
final_cltv_delta: builtins.int = ...,
|
|
payment_request: builtins.str = ...,
|
|
timeout_seconds: builtins.int = ...,
|
|
fee_limit_sat: builtins.int = ...,
|
|
outgoing_chan_id: builtins.int = ...,
|
|
cltv_limit: builtins.int = ...,
|
|
route_hints: collections.abc.Iterable[cashu.lightning.lnd_grpc.protos.lightning_pb2.RouteHint] | None = ...,
|
|
dest_custom_records: collections.abc.Mapping[builtins.int, builtins.bytes] | None = ...,
|
|
amt_msat: builtins.int = ...,
|
|
fee_limit_msat: builtins.int = ...,
|
|
last_hop_pubkey: builtins.bytes = ...,
|
|
allow_self_payment: builtins.bool = ...,
|
|
dest_features: collections.abc.Iterable[cashu.lightning.lnd_grpc.protos.lightning_pb2.FeatureBit.ValueType] | None = ...,
|
|
max_parts: builtins.int = ...,
|
|
no_inflight_updates: builtins.bool = ...,
|
|
outgoing_chan_ids: collections.abc.Iterable[builtins.int] | None = ...,
|
|
payment_addr: builtins.bytes = ...,
|
|
max_shard_size_msat: builtins.int = ...,
|
|
amp: builtins.bool = ...,
|
|
time_pref: builtins.float = ...,
|
|
cancelable: builtins.bool = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["allow_self_payment", b"allow_self_payment", "amp", b"amp", "amt", b"amt", "amt_msat", b"amt_msat", "cancelable", b"cancelable", "cltv_limit", b"cltv_limit", "dest", b"dest", "dest_custom_records", b"dest_custom_records", "dest_features", b"dest_features", "fee_limit_msat", b"fee_limit_msat", "fee_limit_sat", b"fee_limit_sat", "final_cltv_delta", b"final_cltv_delta", "last_hop_pubkey", b"last_hop_pubkey", "max_parts", b"max_parts", "max_shard_size_msat", b"max_shard_size_msat", "no_inflight_updates", b"no_inflight_updates", "outgoing_chan_id", b"outgoing_chan_id", "outgoing_chan_ids", b"outgoing_chan_ids", "payment_addr", b"payment_addr", "payment_hash", b"payment_hash", "payment_request", b"payment_request", "route_hints", b"route_hints", "time_pref", b"time_pref", "timeout_seconds", b"timeout_seconds"]) -> None: ...
|
|
|
|
global___SendPaymentRequest = SendPaymentRequest
|
|
|
|
@typing.final
|
|
class TrackPaymentRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
PAYMENT_HASH_FIELD_NUMBER: builtins.int
|
|
NO_INFLIGHT_UPDATES_FIELD_NUMBER: builtins.int
|
|
payment_hash: builtins.bytes
|
|
"""The hash of the payment to look up."""
|
|
no_inflight_updates: builtins.bool
|
|
"""
|
|
If set, only the final payment update is streamed back. Intermediate updates
|
|
that show which htlcs are still in flight are suppressed.
|
|
"""
|
|
def __init__(
|
|
self,
|
|
*,
|
|
payment_hash: builtins.bytes = ...,
|
|
no_inflight_updates: builtins.bool = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["no_inflight_updates", b"no_inflight_updates", "payment_hash", b"payment_hash"]) -> None: ...
|
|
|
|
global___TrackPaymentRequest = TrackPaymentRequest
|
|
|
|
@typing.final
|
|
class TrackPaymentsRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
NO_INFLIGHT_UPDATES_FIELD_NUMBER: builtins.int
|
|
no_inflight_updates: builtins.bool
|
|
"""
|
|
If set, only the final payment updates are streamed back. Intermediate
|
|
updates that show which htlcs are still in flight are suppressed.
|
|
"""
|
|
def __init__(
|
|
self,
|
|
*,
|
|
no_inflight_updates: builtins.bool = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["no_inflight_updates", b"no_inflight_updates"]) -> None: ...
|
|
|
|
global___TrackPaymentsRequest = TrackPaymentsRequest
|
|
|
|
@typing.final
|
|
class RouteFeeRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
DEST_FIELD_NUMBER: builtins.int
|
|
AMT_SAT_FIELD_NUMBER: builtins.int
|
|
PAYMENT_REQUEST_FIELD_NUMBER: builtins.int
|
|
TIMEOUT_FIELD_NUMBER: builtins.int
|
|
dest: builtins.bytes
|
|
"""
|
|
The destination one wishes to obtain a routing fee quote to. If set, this
|
|
parameter requires the amt_sat parameter also to be set. This parameter
|
|
combination triggers a graph based routing fee estimation as opposed to a
|
|
payment probe based estimate in case a payment request is provided. The
|
|
graph based estimation is an algorithm that is executed on the in memory
|
|
graph. Hence its runtime is significantly shorter than a payment probe
|
|
estimation that sends out actual payments to the network.
|
|
"""
|
|
amt_sat: builtins.int
|
|
"""
|
|
The amount one wishes to send to the target destination. It is only to be
|
|
used in combination with the dest parameter.
|
|
"""
|
|
payment_request: builtins.str
|
|
"""
|
|
A payment request of the target node that the route fee request is intended
|
|
for. Its parameters are input to probe payments that estimate routing fees.
|
|
The timeout parameter can be specified to set a maximum time on the probing
|
|
attempt. Cannot be used in combination with dest and amt_sat.
|
|
"""
|
|
timeout: builtins.int
|
|
"""
|
|
A user preference of how long a probe payment should maximally be allowed to
|
|
take, denoted in seconds. The probing payment loop is aborted if this
|
|
timeout is reached. Note that the probing process itself can take longer
|
|
than the timeout if the HTLC becomes delayed or stuck. Canceling the context
|
|
of this call will not cancel the payment loop, the duration is only
|
|
controlled by the timeout parameter.
|
|
"""
|
|
def __init__(
|
|
self,
|
|
*,
|
|
dest: builtins.bytes = ...,
|
|
amt_sat: builtins.int = ...,
|
|
payment_request: builtins.str = ...,
|
|
timeout: builtins.int = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["amt_sat", b"amt_sat", "dest", b"dest", "payment_request", b"payment_request", "timeout", b"timeout"]) -> None: ...
|
|
|
|
global___RouteFeeRequest = RouteFeeRequest
|
|
|
|
@typing.final
|
|
class RouteFeeResponse(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
ROUTING_FEE_MSAT_FIELD_NUMBER: builtins.int
|
|
TIME_LOCK_DELAY_FIELD_NUMBER: builtins.int
|
|
FAILURE_REASON_FIELD_NUMBER: builtins.int
|
|
routing_fee_msat: builtins.int
|
|
"""
|
|
A lower bound of the estimated fee to the target destination within the
|
|
network, expressed in milli-satoshis.
|
|
"""
|
|
time_lock_delay: builtins.int
|
|
"""
|
|
An estimate of the worst case time delay that can occur. Note that callers
|
|
will still need to factor in the final CLTV delta of the last hop into this
|
|
value.
|
|
"""
|
|
failure_reason: cashu.lightning.lnd_grpc.protos.lightning_pb2.PaymentFailureReason.ValueType
|
|
"""
|
|
An indication whether a probing payment succeeded or whether and why it
|
|
failed. FAILURE_REASON_NONE indicates success.
|
|
"""
|
|
def __init__(
|
|
self,
|
|
*,
|
|
routing_fee_msat: builtins.int = ...,
|
|
time_lock_delay: builtins.int = ...,
|
|
failure_reason: cashu.lightning.lnd_grpc.protos.lightning_pb2.PaymentFailureReason.ValueType = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["failure_reason", b"failure_reason", "routing_fee_msat", b"routing_fee_msat", "time_lock_delay", b"time_lock_delay"]) -> None: ...
|
|
|
|
global___RouteFeeResponse = RouteFeeResponse
|
|
|
|
@typing.final
|
|
class SendToRouteRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
PAYMENT_HASH_FIELD_NUMBER: builtins.int
|
|
ROUTE_FIELD_NUMBER: builtins.int
|
|
SKIP_TEMP_ERR_FIELD_NUMBER: builtins.int
|
|
payment_hash: builtins.bytes
|
|
"""The payment hash to use for the HTLC."""
|
|
skip_temp_err: builtins.bool
|
|
"""
|
|
Whether the payment should be marked as failed when a temporary error is
|
|
returned from the given route. Set it to true so the payment won't be
|
|
failed unless a terminal error is occurred, such as payment timeout, no
|
|
routes, incorrect payment details, or insufficient funds.
|
|
"""
|
|
@property
|
|
def route(self) -> cashu.lightning.lnd_grpc.protos.lightning_pb2.Route:
|
|
"""Route that should be used to attempt to complete the payment."""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
payment_hash: builtins.bytes = ...,
|
|
route: cashu.lightning.lnd_grpc.protos.lightning_pb2.Route | None = ...,
|
|
skip_temp_err: builtins.bool = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["route", b"route"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["payment_hash", b"payment_hash", "route", b"route", "skip_temp_err", b"skip_temp_err"]) -> None: ...
|
|
|
|
global___SendToRouteRequest = SendToRouteRequest
|
|
|
|
@typing.final
|
|
class SendToRouteResponse(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
PREIMAGE_FIELD_NUMBER: builtins.int
|
|
FAILURE_FIELD_NUMBER: builtins.int
|
|
preimage: builtins.bytes
|
|
"""The preimage obtained by making the payment."""
|
|
@property
|
|
def failure(self) -> cashu.lightning.lnd_grpc.protos.lightning_pb2.Failure:
|
|
"""The failure message in case the payment failed."""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
preimage: builtins.bytes = ...,
|
|
failure: cashu.lightning.lnd_grpc.protos.lightning_pb2.Failure | None = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["failure", b"failure"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["failure", b"failure", "preimage", b"preimage"]) -> None: ...
|
|
|
|
global___SendToRouteResponse = SendToRouteResponse
|
|
|
|
@typing.final
|
|
class ResetMissionControlRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
def __init__(
|
|
self,
|
|
) -> None: ...
|
|
|
|
global___ResetMissionControlRequest = ResetMissionControlRequest
|
|
|
|
@typing.final
|
|
class ResetMissionControlResponse(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
def __init__(
|
|
self,
|
|
) -> None: ...
|
|
|
|
global___ResetMissionControlResponse = ResetMissionControlResponse
|
|
|
|
@typing.final
|
|
class QueryMissionControlRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
def __init__(
|
|
self,
|
|
) -> None: ...
|
|
|
|
global___QueryMissionControlRequest = QueryMissionControlRequest
|
|
|
|
@typing.final
|
|
class QueryMissionControlResponse(google.protobuf.message.Message):
|
|
"""QueryMissionControlResponse contains mission control state."""
|
|
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
PAIRS_FIELD_NUMBER: builtins.int
|
|
@property
|
|
def pairs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PairHistory]:
|
|
"""Node pair-level mission control state."""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
pairs: collections.abc.Iterable[global___PairHistory] | None = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["pairs", b"pairs"]) -> None: ...
|
|
|
|
global___QueryMissionControlResponse = QueryMissionControlResponse
|
|
|
|
@typing.final
|
|
class XImportMissionControlRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
PAIRS_FIELD_NUMBER: builtins.int
|
|
FORCE_FIELD_NUMBER: builtins.int
|
|
force: builtins.bool
|
|
"""Whether to force override MC pair history. Note that even with force
|
|
override the failure pair is imported before the success pair and both
|
|
still clamp existing failure/success amounts.
|
|
"""
|
|
@property
|
|
def pairs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PairHistory]:
|
|
"""Node pair-level mission control state to be imported."""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
pairs: collections.abc.Iterable[global___PairHistory] | None = ...,
|
|
force: builtins.bool = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["force", b"force", "pairs", b"pairs"]) -> None: ...
|
|
|
|
global___XImportMissionControlRequest = XImportMissionControlRequest
|
|
|
|
@typing.final
|
|
class XImportMissionControlResponse(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
def __init__(
|
|
self,
|
|
) -> None: ...
|
|
|
|
global___XImportMissionControlResponse = XImportMissionControlResponse
|
|
|
|
@typing.final
|
|
class PairHistory(google.protobuf.message.Message):
|
|
"""PairHistory contains the mission control state for a particular node pair."""
|
|
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
NODE_FROM_FIELD_NUMBER: builtins.int
|
|
NODE_TO_FIELD_NUMBER: builtins.int
|
|
HISTORY_FIELD_NUMBER: builtins.int
|
|
node_from: builtins.bytes
|
|
"""The source node pubkey of the pair."""
|
|
node_to: builtins.bytes
|
|
"""The destination node pubkey of the pair."""
|
|
@property
|
|
def history(self) -> global___PairData: ...
|
|
def __init__(
|
|
self,
|
|
*,
|
|
node_from: builtins.bytes = ...,
|
|
node_to: builtins.bytes = ...,
|
|
history: global___PairData | None = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["history", b"history"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["history", b"history", "node_from", b"node_from", "node_to", b"node_to"]) -> None: ...
|
|
|
|
global___PairHistory = PairHistory
|
|
|
|
@typing.final
|
|
class PairData(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
FAIL_TIME_FIELD_NUMBER: builtins.int
|
|
FAIL_AMT_SAT_FIELD_NUMBER: builtins.int
|
|
FAIL_AMT_MSAT_FIELD_NUMBER: builtins.int
|
|
SUCCESS_TIME_FIELD_NUMBER: builtins.int
|
|
SUCCESS_AMT_SAT_FIELD_NUMBER: builtins.int
|
|
SUCCESS_AMT_MSAT_FIELD_NUMBER: builtins.int
|
|
fail_time: builtins.int
|
|
"""Time of last failure."""
|
|
fail_amt_sat: builtins.int
|
|
"""
|
|
Lowest amount that failed to forward rounded to whole sats. This may be
|
|
set to zero if the failure is independent of amount.
|
|
"""
|
|
fail_amt_msat: builtins.int
|
|
"""
|
|
Lowest amount that failed to forward in millisats. This may be
|
|
set to zero if the failure is independent of amount.
|
|
"""
|
|
success_time: builtins.int
|
|
"""Time of last success."""
|
|
success_amt_sat: builtins.int
|
|
"""Highest amount that we could successfully forward rounded to whole sats."""
|
|
success_amt_msat: builtins.int
|
|
"""Highest amount that we could successfully forward in millisats."""
|
|
def __init__(
|
|
self,
|
|
*,
|
|
fail_time: builtins.int = ...,
|
|
fail_amt_sat: builtins.int = ...,
|
|
fail_amt_msat: builtins.int = ...,
|
|
success_time: builtins.int = ...,
|
|
success_amt_sat: builtins.int = ...,
|
|
success_amt_msat: builtins.int = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["fail_amt_msat", b"fail_amt_msat", "fail_amt_sat", b"fail_amt_sat", "fail_time", b"fail_time", "success_amt_msat", b"success_amt_msat", "success_amt_sat", b"success_amt_sat", "success_time", b"success_time"]) -> None: ...
|
|
|
|
global___PairData = PairData
|
|
|
|
@typing.final
|
|
class GetMissionControlConfigRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
def __init__(
|
|
self,
|
|
) -> None: ...
|
|
|
|
global___GetMissionControlConfigRequest = GetMissionControlConfigRequest
|
|
|
|
@typing.final
|
|
class GetMissionControlConfigResponse(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
CONFIG_FIELD_NUMBER: builtins.int
|
|
@property
|
|
def config(self) -> global___MissionControlConfig:
|
|
"""
|
|
Mission control's currently active config.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
config: global___MissionControlConfig | None = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["config", b"config"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["config", b"config"]) -> None: ...
|
|
|
|
global___GetMissionControlConfigResponse = GetMissionControlConfigResponse
|
|
|
|
@typing.final
|
|
class SetMissionControlConfigRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
CONFIG_FIELD_NUMBER: builtins.int
|
|
@property
|
|
def config(self) -> global___MissionControlConfig:
|
|
"""
|
|
The config to set for mission control. Note that all values *must* be set,
|
|
because the full config will be applied.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
config: global___MissionControlConfig | None = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["config", b"config"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["config", b"config"]) -> None: ...
|
|
|
|
global___SetMissionControlConfigRequest = SetMissionControlConfigRequest
|
|
|
|
@typing.final
|
|
class SetMissionControlConfigResponse(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
def __init__(
|
|
self,
|
|
) -> None: ...
|
|
|
|
global___SetMissionControlConfigResponse = SetMissionControlConfigResponse
|
|
|
|
@typing.final
|
|
class MissionControlConfig(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
class _ProbabilityModel:
|
|
ValueType = typing.NewType("ValueType", builtins.int)
|
|
V: typing_extensions.TypeAlias = ValueType
|
|
|
|
class _ProbabilityModelEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[MissionControlConfig._ProbabilityModel.ValueType], builtins.type): # noqa: F821
|
|
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
APRIORI: MissionControlConfig._ProbabilityModel.ValueType # 0
|
|
BIMODAL: MissionControlConfig._ProbabilityModel.ValueType # 1
|
|
|
|
class ProbabilityModel(_ProbabilityModel, metaclass=_ProbabilityModelEnumTypeWrapper): ...
|
|
APRIORI: MissionControlConfig.ProbabilityModel.ValueType # 0
|
|
BIMODAL: MissionControlConfig.ProbabilityModel.ValueType # 1
|
|
|
|
HALF_LIFE_SECONDS_FIELD_NUMBER: builtins.int
|
|
HOP_PROBABILITY_FIELD_NUMBER: builtins.int
|
|
WEIGHT_FIELD_NUMBER: builtins.int
|
|
MAXIMUM_PAYMENT_RESULTS_FIELD_NUMBER: builtins.int
|
|
MINIMUM_FAILURE_RELAX_INTERVAL_FIELD_NUMBER: builtins.int
|
|
MODEL_FIELD_NUMBER: builtins.int
|
|
APRIORI_FIELD_NUMBER: builtins.int
|
|
BIMODAL_FIELD_NUMBER: builtins.int
|
|
half_life_seconds: builtins.int
|
|
"""
|
|
Deprecated, use AprioriParameters. The amount of time mission control will
|
|
take to restore a penalized node or channel back to 50% success probability,
|
|
expressed in seconds. Setting this value to a higher value will penalize
|
|
failures for longer, making mission control less likely to route through
|
|
nodes and channels that we have previously recorded failures for.
|
|
"""
|
|
hop_probability: builtins.float
|
|
"""
|
|
Deprecated, use AprioriParameters. The probability of success mission
|
|
control should assign to hop in a route where it has no other information
|
|
available. Higher values will make mission control more willing to try hops
|
|
that we have no information about, lower values will discourage trying these
|
|
hops.
|
|
"""
|
|
weight: builtins.float
|
|
"""
|
|
Deprecated, use AprioriParameters. The importance that mission control
|
|
should place on historical results, expressed as a value in [0;1]. Setting
|
|
this value to 1 will ignore all historical payments and just use the hop
|
|
probability to assess the probability of success for each hop. A zero value
|
|
ignores hop probability completely and relies entirely on historical
|
|
results, unless none are available.
|
|
"""
|
|
maximum_payment_results: builtins.int
|
|
"""
|
|
The maximum number of payment results that mission control will store.
|
|
"""
|
|
minimum_failure_relax_interval: builtins.int
|
|
"""
|
|
The minimum time that must have passed since the previously recorded failure
|
|
before we raise the failure amount.
|
|
"""
|
|
model: global___MissionControlConfig.ProbabilityModel.ValueType
|
|
"""
|
|
ProbabilityModel defines which probability estimator should be used in
|
|
pathfinding. Note that the bimodal estimator is experimental.
|
|
"""
|
|
@property
|
|
def apriori(self) -> global___AprioriParameters: ...
|
|
@property
|
|
def bimodal(self) -> global___BimodalParameters: ...
|
|
def __init__(
|
|
self,
|
|
*,
|
|
half_life_seconds: builtins.int = ...,
|
|
hop_probability: builtins.float = ...,
|
|
weight: builtins.float = ...,
|
|
maximum_payment_results: builtins.int = ...,
|
|
minimum_failure_relax_interval: builtins.int = ...,
|
|
model: global___MissionControlConfig.ProbabilityModel.ValueType = ...,
|
|
apriori: global___AprioriParameters | None = ...,
|
|
bimodal: global___BimodalParameters | None = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["EstimatorConfig", b"EstimatorConfig", "apriori", b"apriori", "bimodal", b"bimodal"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["EstimatorConfig", b"EstimatorConfig", "apriori", b"apriori", "bimodal", b"bimodal", "half_life_seconds", b"half_life_seconds", "hop_probability", b"hop_probability", "maximum_payment_results", b"maximum_payment_results", "minimum_failure_relax_interval", b"minimum_failure_relax_interval", "model", b"model", "weight", b"weight"]) -> None: ...
|
|
def WhichOneof(self, oneof_group: typing.Literal["EstimatorConfig", b"EstimatorConfig"]) -> typing.Literal["apriori", "bimodal"] | None: ...
|
|
|
|
global___MissionControlConfig = MissionControlConfig
|
|
|
|
@typing.final
|
|
class BimodalParameters(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
NODE_WEIGHT_FIELD_NUMBER: builtins.int
|
|
SCALE_MSAT_FIELD_NUMBER: builtins.int
|
|
DECAY_TIME_FIELD_NUMBER: builtins.int
|
|
node_weight: builtins.float
|
|
"""
|
|
NodeWeight defines how strongly other previous forwardings on channels of a
|
|
router should be taken into account when computing a channel's probability
|
|
to route. The allowed values are in the range [0, 1], where a value of 0
|
|
means that only direct information about a channel is taken into account.
|
|
"""
|
|
scale_msat: builtins.int
|
|
"""
|
|
ScaleMsat describes the scale over which channels statistically have some
|
|
liquidity left. The value determines how quickly the bimodal distribution
|
|
drops off from the edges of a channel. A larger value (compared to typical
|
|
channel capacities) means that the drop off is slow and that channel
|
|
balances are distributed more uniformly. A small value leads to the
|
|
assumption of very unbalanced channels.
|
|
"""
|
|
decay_time: builtins.int
|
|
"""
|
|
DecayTime describes the information decay of knowledge about previous
|
|
successes and failures in channels. The smaller the decay time, the quicker
|
|
we forget about past forwardings.
|
|
"""
|
|
def __init__(
|
|
self,
|
|
*,
|
|
node_weight: builtins.float = ...,
|
|
scale_msat: builtins.int = ...,
|
|
decay_time: builtins.int = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["decay_time", b"decay_time", "node_weight", b"node_weight", "scale_msat", b"scale_msat"]) -> None: ...
|
|
|
|
global___BimodalParameters = BimodalParameters
|
|
|
|
@typing.final
|
|
class AprioriParameters(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
HALF_LIFE_SECONDS_FIELD_NUMBER: builtins.int
|
|
HOP_PROBABILITY_FIELD_NUMBER: builtins.int
|
|
WEIGHT_FIELD_NUMBER: builtins.int
|
|
CAPACITY_FRACTION_FIELD_NUMBER: builtins.int
|
|
half_life_seconds: builtins.int
|
|
"""
|
|
The amount of time mission control will take to restore a penalized node
|
|
or channel back to 50% success probability, expressed in seconds. Setting
|
|
this value to a higher value will penalize failures for longer, making
|
|
mission control less likely to route through nodes and channels that we
|
|
have previously recorded failures for.
|
|
"""
|
|
hop_probability: builtins.float
|
|
"""
|
|
The probability of success mission control should assign to hop in a route
|
|
where it has no other information available. Higher values will make mission
|
|
control more willing to try hops that we have no information about, lower
|
|
values will discourage trying these hops.
|
|
"""
|
|
weight: builtins.float
|
|
"""
|
|
The importance that mission control should place on historical results,
|
|
expressed as a value in [0;1]. Setting this value to 1 will ignore all
|
|
historical payments and just use the hop probability to assess the
|
|
probability of success for each hop. A zero value ignores hop probability
|
|
completely and relies entirely on historical results, unless none are
|
|
available.
|
|
"""
|
|
capacity_fraction: builtins.float
|
|
"""
|
|
The fraction of a channel's capacity that we consider to have liquidity. For
|
|
amounts that come close to or exceed the fraction, an additional penalty is
|
|
applied. A value of 1.0 disables the capacity factor. Allowed values are in
|
|
[0.75, 1.0].
|
|
"""
|
|
def __init__(
|
|
self,
|
|
*,
|
|
half_life_seconds: builtins.int = ...,
|
|
hop_probability: builtins.float = ...,
|
|
weight: builtins.float = ...,
|
|
capacity_fraction: builtins.float = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["capacity_fraction", b"capacity_fraction", "half_life_seconds", b"half_life_seconds", "hop_probability", b"hop_probability", "weight", b"weight"]) -> None: ...
|
|
|
|
global___AprioriParameters = AprioriParameters
|
|
|
|
@typing.final
|
|
class QueryProbabilityRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
FROM_NODE_FIELD_NUMBER: builtins.int
|
|
TO_NODE_FIELD_NUMBER: builtins.int
|
|
AMT_MSAT_FIELD_NUMBER: builtins.int
|
|
from_node: builtins.bytes
|
|
"""The source node pubkey of the pair."""
|
|
to_node: builtins.bytes
|
|
"""The destination node pubkey of the pair."""
|
|
amt_msat: builtins.int
|
|
"""The amount for which to calculate a probability."""
|
|
def __init__(
|
|
self,
|
|
*,
|
|
from_node: builtins.bytes = ...,
|
|
to_node: builtins.bytes = ...,
|
|
amt_msat: builtins.int = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["amt_msat", b"amt_msat", "from_node", b"from_node", "to_node", b"to_node"]) -> None: ...
|
|
|
|
global___QueryProbabilityRequest = QueryProbabilityRequest
|
|
|
|
@typing.final
|
|
class QueryProbabilityResponse(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
PROBABILITY_FIELD_NUMBER: builtins.int
|
|
HISTORY_FIELD_NUMBER: builtins.int
|
|
probability: builtins.float
|
|
"""The success probability for the requested pair."""
|
|
@property
|
|
def history(self) -> global___PairData:
|
|
"""The historical data for the requested pair."""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
probability: builtins.float = ...,
|
|
history: global___PairData | None = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["history", b"history"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["history", b"history", "probability", b"probability"]) -> None: ...
|
|
|
|
global___QueryProbabilityResponse = QueryProbabilityResponse
|
|
|
|
@typing.final
|
|
class BuildRouteRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
AMT_MSAT_FIELD_NUMBER: builtins.int
|
|
FINAL_CLTV_DELTA_FIELD_NUMBER: builtins.int
|
|
OUTGOING_CHAN_ID_FIELD_NUMBER: builtins.int
|
|
HOP_PUBKEYS_FIELD_NUMBER: builtins.int
|
|
PAYMENT_ADDR_FIELD_NUMBER: builtins.int
|
|
amt_msat: builtins.int
|
|
"""
|
|
The amount to send expressed in msat. If set to zero, the minimum routable
|
|
amount is used.
|
|
"""
|
|
final_cltv_delta: builtins.int
|
|
"""
|
|
CLTV delta from the current height that should be used for the timelock
|
|
of the final hop
|
|
"""
|
|
outgoing_chan_id: builtins.int
|
|
"""
|
|
The channel id of the channel that must be taken to the first hop. If zero,
|
|
any channel may be used.
|
|
"""
|
|
payment_addr: builtins.bytes
|
|
"""
|
|
An optional payment addr to be included within the last hop of the route.
|
|
This is also called payment secret in specifications (e.g. BOLT 11).
|
|
"""
|
|
@property
|
|
def hop_pubkeys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]:
|
|
"""
|
|
A list of hops that defines the route. This does not include the source hop
|
|
pubkey.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
amt_msat: builtins.int = ...,
|
|
final_cltv_delta: builtins.int = ...,
|
|
outgoing_chan_id: builtins.int = ...,
|
|
hop_pubkeys: collections.abc.Iterable[builtins.bytes] | None = ...,
|
|
payment_addr: builtins.bytes = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["amt_msat", b"amt_msat", "final_cltv_delta", b"final_cltv_delta", "hop_pubkeys", b"hop_pubkeys", "outgoing_chan_id", b"outgoing_chan_id", "payment_addr", b"payment_addr"]) -> None: ...
|
|
|
|
global___BuildRouteRequest = BuildRouteRequest
|
|
|
|
@typing.final
|
|
class BuildRouteResponse(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
ROUTE_FIELD_NUMBER: builtins.int
|
|
@property
|
|
def route(self) -> cashu.lightning.lnd_grpc.protos.lightning_pb2.Route:
|
|
"""
|
|
Fully specified route that can be used to execute the payment.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
route: cashu.lightning.lnd_grpc.protos.lightning_pb2.Route | None = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["route", b"route"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["route", b"route"]) -> None: ...
|
|
|
|
global___BuildRouteResponse = BuildRouteResponse
|
|
|
|
@typing.final
|
|
class SubscribeHtlcEventsRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
def __init__(
|
|
self,
|
|
) -> None: ...
|
|
|
|
global___SubscribeHtlcEventsRequest = SubscribeHtlcEventsRequest
|
|
|
|
@typing.final
|
|
class HtlcEvent(google.protobuf.message.Message):
|
|
"""
|
|
HtlcEvent contains the htlc event that was processed. These are served on a
|
|
best-effort basis; events are not persisted, delivery is not guaranteed
|
|
(in the event of a crash in the switch, forward events may be lost) and
|
|
some events may be replayed upon restart. Events consumed from this package
|
|
should be de-duplicated by the htlc's unique combination of incoming and
|
|
outgoing channel id and htlc id. [EXPERIMENTAL]
|
|
"""
|
|
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
class _EventType:
|
|
ValueType = typing.NewType("ValueType", builtins.int)
|
|
V: typing_extensions.TypeAlias = ValueType
|
|
|
|
class _EventTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[HtlcEvent._EventType.ValueType], builtins.type): # noqa: F821
|
|
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
UNKNOWN: HtlcEvent._EventType.ValueType # 0
|
|
SEND: HtlcEvent._EventType.ValueType # 1
|
|
RECEIVE: HtlcEvent._EventType.ValueType # 2
|
|
FORWARD: HtlcEvent._EventType.ValueType # 3
|
|
|
|
class EventType(_EventType, metaclass=_EventTypeEnumTypeWrapper): ...
|
|
UNKNOWN: HtlcEvent.EventType.ValueType # 0
|
|
SEND: HtlcEvent.EventType.ValueType # 1
|
|
RECEIVE: HtlcEvent.EventType.ValueType # 2
|
|
FORWARD: HtlcEvent.EventType.ValueType # 3
|
|
|
|
INCOMING_CHANNEL_ID_FIELD_NUMBER: builtins.int
|
|
OUTGOING_CHANNEL_ID_FIELD_NUMBER: builtins.int
|
|
INCOMING_HTLC_ID_FIELD_NUMBER: builtins.int
|
|
OUTGOING_HTLC_ID_FIELD_NUMBER: builtins.int
|
|
TIMESTAMP_NS_FIELD_NUMBER: builtins.int
|
|
EVENT_TYPE_FIELD_NUMBER: builtins.int
|
|
FORWARD_EVENT_FIELD_NUMBER: builtins.int
|
|
FORWARD_FAIL_EVENT_FIELD_NUMBER: builtins.int
|
|
SETTLE_EVENT_FIELD_NUMBER: builtins.int
|
|
LINK_FAIL_EVENT_FIELD_NUMBER: builtins.int
|
|
SUBSCRIBED_EVENT_FIELD_NUMBER: builtins.int
|
|
FINAL_HTLC_EVENT_FIELD_NUMBER: builtins.int
|
|
incoming_channel_id: builtins.int
|
|
"""
|
|
The short channel id that the incoming htlc arrived at our node on. This
|
|
value is zero for sends.
|
|
"""
|
|
outgoing_channel_id: builtins.int
|
|
"""
|
|
The short channel id that the outgoing htlc left our node on. This value
|
|
is zero for receives.
|
|
"""
|
|
incoming_htlc_id: builtins.int
|
|
"""
|
|
Incoming id is the index of the incoming htlc in the incoming channel.
|
|
This value is zero for sends.
|
|
"""
|
|
outgoing_htlc_id: builtins.int
|
|
"""
|
|
Outgoing id is the index of the outgoing htlc in the outgoing channel.
|
|
This value is zero for receives.
|
|
"""
|
|
timestamp_ns: builtins.int
|
|
"""
|
|
The time in unix nanoseconds that the event occurred.
|
|
"""
|
|
event_type: global___HtlcEvent.EventType.ValueType
|
|
"""
|
|
The event type indicates whether the htlc was part of a send, receive or
|
|
forward.
|
|
"""
|
|
@property
|
|
def forward_event(self) -> global___ForwardEvent: ...
|
|
@property
|
|
def forward_fail_event(self) -> global___ForwardFailEvent: ...
|
|
@property
|
|
def settle_event(self) -> global___SettleEvent: ...
|
|
@property
|
|
def link_fail_event(self) -> global___LinkFailEvent: ...
|
|
@property
|
|
def subscribed_event(self) -> global___SubscribedEvent: ...
|
|
@property
|
|
def final_htlc_event(self) -> global___FinalHtlcEvent: ...
|
|
def __init__(
|
|
self,
|
|
*,
|
|
incoming_channel_id: builtins.int = ...,
|
|
outgoing_channel_id: builtins.int = ...,
|
|
incoming_htlc_id: builtins.int = ...,
|
|
outgoing_htlc_id: builtins.int = ...,
|
|
timestamp_ns: builtins.int = ...,
|
|
event_type: global___HtlcEvent.EventType.ValueType = ...,
|
|
forward_event: global___ForwardEvent | None = ...,
|
|
forward_fail_event: global___ForwardFailEvent | None = ...,
|
|
settle_event: global___SettleEvent | None = ...,
|
|
link_fail_event: global___LinkFailEvent | None = ...,
|
|
subscribed_event: global___SubscribedEvent | None = ...,
|
|
final_htlc_event: global___FinalHtlcEvent | None = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["event", b"event", "final_htlc_event", b"final_htlc_event", "forward_event", b"forward_event", "forward_fail_event", b"forward_fail_event", "link_fail_event", b"link_fail_event", "settle_event", b"settle_event", "subscribed_event", b"subscribed_event"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["event", b"event", "event_type", b"event_type", "final_htlc_event", b"final_htlc_event", "forward_event", b"forward_event", "forward_fail_event", b"forward_fail_event", "incoming_channel_id", b"incoming_channel_id", "incoming_htlc_id", b"incoming_htlc_id", "link_fail_event", b"link_fail_event", "outgoing_channel_id", b"outgoing_channel_id", "outgoing_htlc_id", b"outgoing_htlc_id", "settle_event", b"settle_event", "subscribed_event", b"subscribed_event", "timestamp_ns", b"timestamp_ns"]) -> None: ...
|
|
def WhichOneof(self, oneof_group: typing.Literal["event", b"event"]) -> typing.Literal["forward_event", "forward_fail_event", "settle_event", "link_fail_event", "subscribed_event", "final_htlc_event"] | None: ...
|
|
|
|
global___HtlcEvent = HtlcEvent
|
|
|
|
@typing.final
|
|
class HtlcInfo(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
INCOMING_TIMELOCK_FIELD_NUMBER: builtins.int
|
|
OUTGOING_TIMELOCK_FIELD_NUMBER: builtins.int
|
|
INCOMING_AMT_MSAT_FIELD_NUMBER: builtins.int
|
|
OUTGOING_AMT_MSAT_FIELD_NUMBER: builtins.int
|
|
incoming_timelock: builtins.int
|
|
"""The timelock on the incoming htlc."""
|
|
outgoing_timelock: builtins.int
|
|
"""The timelock on the outgoing htlc."""
|
|
incoming_amt_msat: builtins.int
|
|
"""The amount of the incoming htlc."""
|
|
outgoing_amt_msat: builtins.int
|
|
"""The amount of the outgoing htlc."""
|
|
def __init__(
|
|
self,
|
|
*,
|
|
incoming_timelock: builtins.int = ...,
|
|
outgoing_timelock: builtins.int = ...,
|
|
incoming_amt_msat: builtins.int = ...,
|
|
outgoing_amt_msat: builtins.int = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["incoming_amt_msat", b"incoming_amt_msat", "incoming_timelock", b"incoming_timelock", "outgoing_amt_msat", b"outgoing_amt_msat", "outgoing_timelock", b"outgoing_timelock"]) -> None: ...
|
|
|
|
global___HtlcInfo = HtlcInfo
|
|
|
|
@typing.final
|
|
class ForwardEvent(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
INFO_FIELD_NUMBER: builtins.int
|
|
@property
|
|
def info(self) -> global___HtlcInfo:
|
|
"""Info contains details about the htlc that was forwarded."""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
info: global___HtlcInfo | None = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["info", b"info"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["info", b"info"]) -> None: ...
|
|
|
|
global___ForwardEvent = ForwardEvent
|
|
|
|
@typing.final
|
|
class ForwardFailEvent(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
def __init__(
|
|
self,
|
|
) -> None: ...
|
|
|
|
global___ForwardFailEvent = ForwardFailEvent
|
|
|
|
@typing.final
|
|
class SettleEvent(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
PREIMAGE_FIELD_NUMBER: builtins.int
|
|
preimage: builtins.bytes
|
|
"""The revealed preimage."""
|
|
def __init__(
|
|
self,
|
|
*,
|
|
preimage: builtins.bytes = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["preimage", b"preimage"]) -> None: ...
|
|
|
|
global___SettleEvent = SettleEvent
|
|
|
|
@typing.final
|
|
class FinalHtlcEvent(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
SETTLED_FIELD_NUMBER: builtins.int
|
|
OFFCHAIN_FIELD_NUMBER: builtins.int
|
|
settled: builtins.bool
|
|
offchain: builtins.bool
|
|
def __init__(
|
|
self,
|
|
*,
|
|
settled: builtins.bool = ...,
|
|
offchain: builtins.bool = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["offchain", b"offchain", "settled", b"settled"]) -> None: ...
|
|
|
|
global___FinalHtlcEvent = FinalHtlcEvent
|
|
|
|
@typing.final
|
|
class SubscribedEvent(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
def __init__(
|
|
self,
|
|
) -> None: ...
|
|
|
|
global___SubscribedEvent = SubscribedEvent
|
|
|
|
@typing.final
|
|
class LinkFailEvent(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
INFO_FIELD_NUMBER: builtins.int
|
|
WIRE_FAILURE_FIELD_NUMBER: builtins.int
|
|
FAILURE_DETAIL_FIELD_NUMBER: builtins.int
|
|
FAILURE_STRING_FIELD_NUMBER: builtins.int
|
|
wire_failure: cashu.lightning.lnd_grpc.protos.lightning_pb2.Failure.FailureCode.ValueType
|
|
"""FailureCode is the BOLT error code for the failure."""
|
|
failure_detail: global___FailureDetail.ValueType
|
|
"""
|
|
FailureDetail provides additional information about the reason for the
|
|
failure. This detail enriches the information provided by the wire message
|
|
and may be 'no detail' if the wire message requires no additional metadata.
|
|
"""
|
|
failure_string: builtins.str
|
|
"""A string representation of the link failure."""
|
|
@property
|
|
def info(self) -> global___HtlcInfo:
|
|
"""Info contains details about the htlc that we failed."""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
info: global___HtlcInfo | None = ...,
|
|
wire_failure: cashu.lightning.lnd_grpc.protos.lightning_pb2.Failure.FailureCode.ValueType = ...,
|
|
failure_detail: global___FailureDetail.ValueType = ...,
|
|
failure_string: builtins.str = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["info", b"info"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["failure_detail", b"failure_detail", "failure_string", b"failure_string", "info", b"info", "wire_failure", b"wire_failure"]) -> None: ...
|
|
|
|
global___LinkFailEvent = LinkFailEvent
|
|
|
|
@typing.final
|
|
class PaymentStatus(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
STATE_FIELD_NUMBER: builtins.int
|
|
PREIMAGE_FIELD_NUMBER: builtins.int
|
|
HTLCS_FIELD_NUMBER: builtins.int
|
|
state: global___PaymentState.ValueType
|
|
"""Current state the payment is in."""
|
|
preimage: builtins.bytes
|
|
"""
|
|
The pre-image of the payment when state is SUCCEEDED.
|
|
"""
|
|
@property
|
|
def htlcs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cashu.lightning.lnd_grpc.protos.lightning_pb2.HTLCAttempt]:
|
|
"""
|
|
The HTLCs made in attempt to settle the payment [EXPERIMENTAL].
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
state: global___PaymentState.ValueType = ...,
|
|
preimage: builtins.bytes = ...,
|
|
htlcs: collections.abc.Iterable[cashu.lightning.lnd_grpc.protos.lightning_pb2.HTLCAttempt] | None = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["htlcs", b"htlcs", "preimage", b"preimage", "state", b"state"]) -> None: ...
|
|
|
|
global___PaymentStatus = PaymentStatus
|
|
|
|
@typing.final
|
|
class CircuitKey(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
CHAN_ID_FIELD_NUMBER: builtins.int
|
|
HTLC_ID_FIELD_NUMBER: builtins.int
|
|
chan_id: builtins.int
|
|
"""/ The id of the channel that the is part of this circuit."""
|
|
htlc_id: builtins.int
|
|
"""/ The index of the incoming htlc in the incoming channel."""
|
|
def __init__(
|
|
self,
|
|
*,
|
|
chan_id: builtins.int = ...,
|
|
htlc_id: builtins.int = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["chan_id", b"chan_id", "htlc_id", b"htlc_id"]) -> None: ...
|
|
|
|
global___CircuitKey = CircuitKey
|
|
|
|
@typing.final
|
|
class ForwardHtlcInterceptRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
@typing.final
|
|
class CustomRecordsEntry(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
KEY_FIELD_NUMBER: builtins.int
|
|
VALUE_FIELD_NUMBER: builtins.int
|
|
key: builtins.int
|
|
value: builtins.bytes
|
|
def __init__(
|
|
self,
|
|
*,
|
|
key: builtins.int = ...,
|
|
value: builtins.bytes = ...,
|
|
) -> None: ...
|
|
def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
|
|
|
|
INCOMING_CIRCUIT_KEY_FIELD_NUMBER: builtins.int
|
|
INCOMING_AMOUNT_MSAT_FIELD_NUMBER: builtins.int
|
|
INCOMING_EXPIRY_FIELD_NUMBER: builtins.int
|
|
PAYMENT_HASH_FIELD_NUMBER: builtins.int
|
|
OUTGOING_REQUESTED_CHAN_ID_FIELD_NUMBER: builtins.int
|
|
OUTGOING_AMOUNT_MSAT_FIELD_NUMBER: builtins.int
|
|
OUTGOING_EXPIRY_FIELD_NUMBER: builtins.int
|
|
CUSTOM_RECORDS_FIELD_NUMBER: builtins.int
|
|
ONION_BLOB_FIELD_NUMBER: builtins.int
|
|
AUTO_FAIL_HEIGHT_FIELD_NUMBER: builtins.int
|
|
incoming_amount_msat: builtins.int
|
|
"""The incoming htlc amount."""
|
|
incoming_expiry: builtins.int
|
|
"""The incoming htlc expiry."""
|
|
payment_hash: builtins.bytes
|
|
"""
|
|
The htlc payment hash. This value is not guaranteed to be unique per
|
|
request.
|
|
"""
|
|
outgoing_requested_chan_id: builtins.int
|
|
"""The requested outgoing channel id for this forwarded htlc. Because of
|
|
non-strict forwarding, this isn't necessarily the channel over which the
|
|
packet will be forwarded eventually. A different channel to the same peer
|
|
may be selected as well.
|
|
"""
|
|
outgoing_amount_msat: builtins.int
|
|
"""The outgoing htlc amount."""
|
|
outgoing_expiry: builtins.int
|
|
"""The outgoing htlc expiry."""
|
|
onion_blob: builtins.bytes
|
|
"""The onion blob for the next hop"""
|
|
auto_fail_height: builtins.int
|
|
"""The block height at which this htlc will be auto-failed to prevent the
|
|
channel from force-closing.
|
|
"""
|
|
@property
|
|
def incoming_circuit_key(self) -> global___CircuitKey:
|
|
"""
|
|
The key of this forwarded htlc. It defines the incoming channel id and
|
|
the index in this channel.
|
|
"""
|
|
|
|
@property
|
|
def custom_records(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, builtins.bytes]:
|
|
"""Any custom records that were present in the payload."""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
incoming_circuit_key: global___CircuitKey | None = ...,
|
|
incoming_amount_msat: builtins.int = ...,
|
|
incoming_expiry: builtins.int = ...,
|
|
payment_hash: builtins.bytes = ...,
|
|
outgoing_requested_chan_id: builtins.int = ...,
|
|
outgoing_amount_msat: builtins.int = ...,
|
|
outgoing_expiry: builtins.int = ...,
|
|
custom_records: collections.abc.Mapping[builtins.int, builtins.bytes] | None = ...,
|
|
onion_blob: builtins.bytes = ...,
|
|
auto_fail_height: builtins.int = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["incoming_circuit_key", b"incoming_circuit_key"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["auto_fail_height", b"auto_fail_height", "custom_records", b"custom_records", "incoming_amount_msat", b"incoming_amount_msat", "incoming_circuit_key", b"incoming_circuit_key", "incoming_expiry", b"incoming_expiry", "onion_blob", b"onion_blob", "outgoing_amount_msat", b"outgoing_amount_msat", "outgoing_expiry", b"outgoing_expiry", "outgoing_requested_chan_id", b"outgoing_requested_chan_id", "payment_hash", b"payment_hash"]) -> None: ...
|
|
|
|
global___ForwardHtlcInterceptRequest = ForwardHtlcInterceptRequest
|
|
|
|
@typing.final
|
|
class ForwardHtlcInterceptResponse(google.protobuf.message.Message):
|
|
"""*
|
|
ForwardHtlcInterceptResponse enables the caller to resolve a previously hold
|
|
forward. The caller can choose either to:
|
|
- `Resume`: Execute the default behavior (usually forward).
|
|
- `Reject`: Fail the htlc backwards.
|
|
- `Settle`: Settle this htlc with a given preimage.
|
|
"""
|
|
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
INCOMING_CIRCUIT_KEY_FIELD_NUMBER: builtins.int
|
|
ACTION_FIELD_NUMBER: builtins.int
|
|
PREIMAGE_FIELD_NUMBER: builtins.int
|
|
FAILURE_MESSAGE_FIELD_NUMBER: builtins.int
|
|
FAILURE_CODE_FIELD_NUMBER: builtins.int
|
|
action: global___ResolveHoldForwardAction.ValueType
|
|
"""The resolve action for this intercepted htlc."""
|
|
preimage: builtins.bytes
|
|
"""The preimage in case the resolve action is Settle."""
|
|
failure_message: builtins.bytes
|
|
"""Encrypted failure message in case the resolve action is Fail.
|
|
|
|
If failure_message is specified, the failure_code field must be set
|
|
to zero.
|
|
"""
|
|
failure_code: cashu.lightning.lnd_grpc.protos.lightning_pb2.Failure.FailureCode.ValueType
|
|
"""Return the specified failure code in case the resolve action is Fail. The
|
|
message data fields are populated automatically.
|
|
|
|
If a non-zero failure_code is specified, failure_message must not be set.
|
|
|
|
For backwards-compatibility reasons, TEMPORARY_CHANNEL_FAILURE is the
|
|
default value for this field.
|
|
"""
|
|
@property
|
|
def incoming_circuit_key(self) -> global___CircuitKey:
|
|
"""*
|
|
The key of this forwarded htlc. It defines the incoming channel id and
|
|
the index in this channel.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
incoming_circuit_key: global___CircuitKey | None = ...,
|
|
action: global___ResolveHoldForwardAction.ValueType = ...,
|
|
preimage: builtins.bytes = ...,
|
|
failure_message: builtins.bytes = ...,
|
|
failure_code: cashu.lightning.lnd_grpc.protos.lightning_pb2.Failure.FailureCode.ValueType = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["incoming_circuit_key", b"incoming_circuit_key"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["action", b"action", "failure_code", b"failure_code", "failure_message", b"failure_message", "incoming_circuit_key", b"incoming_circuit_key", "preimage", b"preimage"]) -> None: ...
|
|
|
|
global___ForwardHtlcInterceptResponse = ForwardHtlcInterceptResponse
|
|
|
|
@typing.final
|
|
class UpdateChanStatusRequest(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
CHAN_POINT_FIELD_NUMBER: builtins.int
|
|
ACTION_FIELD_NUMBER: builtins.int
|
|
action: global___ChanStatusAction.ValueType
|
|
@property
|
|
def chan_point(self) -> cashu.lightning.lnd_grpc.protos.lightning_pb2.ChannelPoint: ...
|
|
def __init__(
|
|
self,
|
|
*,
|
|
chan_point: cashu.lightning.lnd_grpc.protos.lightning_pb2.ChannelPoint | None = ...,
|
|
action: global___ChanStatusAction.ValueType = ...,
|
|
) -> None: ...
|
|
def HasField(self, field_name: typing.Literal["chan_point", b"chan_point"]) -> builtins.bool: ...
|
|
def ClearField(self, field_name: typing.Literal["action", b"action", "chan_point", b"chan_point"]) -> None: ...
|
|
|
|
global___UpdateChanStatusRequest = UpdateChanStatusRequest
|
|
|
|
@typing.final
|
|
class UpdateChanStatusResponse(google.protobuf.message.Message):
|
|
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
|
|
def __init__(
|
|
self,
|
|
) -> None: ...
|
|
|
|
global___UpdateChanStatusResponse = UpdateChanStatusResponse
|