Refactor payment forwarding:
- all forwarding types use the same flow - forwarding callback returns a htlc_key or None - forwarding info is persisted in lnworker: - ongoing_forwardings - downstream to upstream htlc_key - htlc_key -> error_bytes
This commit is contained in:
@@ -30,6 +30,7 @@ from .bitcoin import construct_script
|
||||
from .crypto import ripemd
|
||||
from .invoices import Invoice
|
||||
from .network import TxBroadcastServerReturnedError
|
||||
from .lnonion import OnionRoutingFailure, OnionFailureCode
|
||||
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -234,7 +235,8 @@ class SwapManager(Logger):
|
||||
self.lnworker.unregister_hold_invoice(swap.payment_hash)
|
||||
payment_secret = self.lnworker.get_payment_secret(swap.payment_hash)
|
||||
payment_key = swap.payment_hash + payment_secret
|
||||
self.lnworker.fail_final_onion_forwarding(payment_key)
|
||||
e = OnionRoutingFailure(code=OnionFailureCode.UNKNOWN_NEXT_PEER, data=b'')
|
||||
self.lnworker.save_forwarding_failure(payment_key.hex(), failure_message=e)
|
||||
self.lnwatcher.remove_callback(swap.lockup_address)
|
||||
if swap.funding_txid is None:
|
||||
self.swaps.pop(swap.payment_hash.hex())
|
||||
|
||||
Reference in New Issue
Block a user