From a3ec3f32286f169c1761d92147b01f345e9f1295 Mon Sep 17 00:00:00 2001 From: bitromortac Date: Tue, 20 Jul 2021 17:54:49 +0200 Subject: [PATCH] trampoline: forwarding, use correct secret for legacy case --- electrum/lnpeer.py | 7 ++++++- electrum/trampoline.py | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/electrum/lnpeer.py b/electrum/lnpeer.py index 4de547064..8be82c3c1 100644 --- a/electrum/lnpeer.py +++ b/electrum/lnpeer.py @@ -1443,7 +1443,12 @@ class Peer(Logger): payload = trampoline_onion.hop_data.payload payment_hash = htlc.payment_hash - payment_secret = os.urandom(32) + payment_data = payload.get('payment_data') + if payment_data: # legacy case + payment_secret = payment_data['payment_secret'] + else: + payment_secret = os.urandom(32) + try: outgoing_node_id = payload["outgoing_node_id"]["outgoing_node_id"] amt_to_forward = payload["amt_to_forward"]["amt_to_forward"] diff --git a/electrum/trampoline.py b/electrum/trampoline.py index b5408520a..b9a9127d9 100644 --- a/electrum/trampoline.py +++ b/electrum/trampoline.py @@ -247,7 +247,7 @@ def create_trampoline_onion(*, route, amount_msat, final_cltv, total_msat, payme # only for final if i == num_hops - 1: payload["payment_data"] = { - "payment_secret":payment_secret, + "payment_secret": payment_secret, "total_msat": total_msat } # legacy @@ -255,7 +255,7 @@ def create_trampoline_onion(*, route, amount_msat, final_cltv, total_msat, payme payload["invoice_features"] = {"invoice_features":route_edge.invoice_features} payload["invoice_routing_info"] = {"invoice_routing_info":route_edge.invoice_routing_info} payload["payment_data"] = { - "payment_secret":payment_secret, + "payment_secret": payment_secret, "total_msat": total_msat } _logger.info(f'payload {i} {payload}')