1
0
(todo: move these methods into lnworker)
This commit is contained in:
ThomasV
2025-06-01 13:57:41 +02:00
parent 40de52e829
commit a23f370a43
2 changed files with 8 additions and 9 deletions

View File

@@ -1378,8 +1378,7 @@ class Commands(Logger):
"""
assert len(preimage) == 64, f"Invalid preimage length: {len(preimage)} != 64"
payment_hash: str = crypto.sha256(bfh(preimage)).hex()
assert preimage not in wallet.lnworker.preimages, "Preimage has been used as payment hash already!"
assert payment_hash not in wallet.lnworker.preimages, "Preimage already in use!"
assert payment_hash not in wallet.lnworker._preimages, "Preimage already in use!"
assert payment_hash not in wallet.lnworker.payment_info, "Payment hash already used!"
assert payment_hash not in wallet.lnworker.dont_settle_htlcs, "Payment hash already used!"
assert MIN_FINAL_CLTV_DELTA_FOR_INVOICE < min_final_cltv_expiry_delta < 576, "Use a sane min_final_cltv_expiry_delta value"
@@ -1417,7 +1416,7 @@ class Commands(Logger):
arg:str:payment_hash:Hex encoded payment hash of the invoice to be settled
"""
assert len(payment_hash) == 64, f"Invalid payment_hash length: {len(payment_hash)} != 64"
assert payment_hash in wallet.lnworker.preimages, f"Couldn't find preimage for {payment_hash}"
assert payment_hash in wallet.lnworker._preimages, f"Couldn't find preimage for {payment_hash}"
assert payment_hash in wallet.lnworker.dont_settle_htlcs, "Is already settled!"
assert payment_hash in wallet.lnworker.payment_info, \
f"Couldn't find lightning invoice for payment hash {payment_hash}"
@@ -1439,9 +1438,9 @@ class Commands(Logger):
"""
assert payment_hash in wallet.lnworker.payment_info, \
f"Couldn't find lightning invoice for payment hash {payment_hash}"
assert payment_hash in wallet.lnworker.preimages, "Nothing to cancel, no known preimage."
assert payment_hash in wallet.lnworker._preimages, "Nothing to cancel, no known preimage."
assert payment_hash in wallet.lnworker.dont_settle_htlcs, "Is already settled!"
del wallet.lnworker.preimages[payment_hash]
del wallet.lnworker._preimages[payment_hash]
# set to PR_UNPAID so it can get deleted
wallet.lnworker.set_payment_status(bfh(payment_hash), PR_UNPAID)
wallet.lnworker.delete_payment_info(payment_hash)
@@ -1474,7 +1473,7 @@ class Commands(Logger):
status = "unpaid"
elif is_accepted_mpp and payment_hash in wallet.lnworker.dont_settle_htlcs:
status = "paid"
elif (payment_hash in wallet.lnworker.preimages
elif (payment_hash in wallet.lnworker._preimages
and payment_hash not in wallet.lnworker.dont_settle_htlcs
and is_accepted_mpp):
status = "settled"

View File

@@ -430,7 +430,7 @@ class TestCommandsTestnet(ElectrumTestCase):
)
invoice = lndecode(invoice=result['invoice'])
assert invoice.paymenthash.hex() == payment_hash
assert payment_hash in wallet.lnworker.preimages
assert payment_hash in wallet.lnworker._preimages
assert payment_hash in wallet.lnworker.payment_info
assert payment_hash in wallet.lnworker.dont_settle_htlcs
assert invoice.get_amount_sat() == 10000
@@ -441,7 +441,7 @@ class TestCommandsTestnet(ElectrumTestCase):
)
assert payment_hash not in wallet.lnworker.payment_info
assert payment_hash not in wallet.lnworker.dont_settle_htlcs
assert payment_hash not in wallet.lnworker.preimages
assert payment_hash not in wallet.lnworker._preimages
assert cancel_result['cancelled'] == payment_hash
with self.assertRaises(AssertionError):
@@ -477,7 +477,7 @@ class TestCommandsTestnet(ElectrumTestCase):
wallet=wallet,
)
assert settle_result['settled'] == payment_hash
assert wallet.lnworker.preimages[payment_hash] == preimage.hex()
assert wallet.lnworker._preimages[payment_hash] == preimage.hex()
assert payment_hash not in wallet.lnworker.dont_settle_htlcs
with self.assertRaises(AssertionError):