1
0

lnworker.check_mpp_status: add docstring

This explains why stopping_soon behaves sanely with hold-invoice-htlcs.
This commit is contained in:
SomberNight
2024-03-12 15:28:31 +00:00
parent af6a1f3d01
commit 58a1bdfec7

View File

@@ -2269,11 +2269,20 @@ class LNWallet(LNWorker):
htlc: UpdateAddHtlc,
expected_msat: int,
) -> RecvMPPResolution:
"""Returns the status of the incoming htlc set the given *htlc* belongs to.
ACCEPTED simply means the mpp set is complete, and we can proceed with further
checks before fulfilling (or failing) the htlcs.
In particular, note that hold-invoice-htlcs typically remain in the ACCEPTED state
for quite some time -- not in the "WAITING" state (which would refer to the mpp set
not yet being complete!).
"""
payment_hash = htlc.payment_hash
payment_key = payment_hash + payment_secret
self.update_mpp_with_received_htlc(
payment_key=payment_key, scid=short_channel_id, htlc=htlc, expected_msat=expected_msat)
mpp_resolution = self.received_mpp_htlcs[payment_key].resolution
# if still waiting, calc resolution now:
if mpp_resolution == RecvMPPResolution.WAITING:
bundle = self.get_payment_bundle(payment_key)
if bundle:
@@ -2290,7 +2299,7 @@ class LNWallet(LNWorker):
mpp_resolution = RecvMPPResolution.ACCEPTED
elif time.time() - first_timestamp > self.MPP_EXPIRY:
mpp_resolution = RecvMPPResolution.EXPIRED
# save resolution, if any.
if mpp_resolution != RecvMPPResolution.WAITING:
for pkey in payment_keys:
if pkey in self.received_mpp_htlcs: