From: Elias Rohrer Date: Mon, 28 Aug 2023 11:57:29 +0000 (+0200) Subject: Set `payment_secret` when sending probes X-Git-Tag: v0.0.117-alpha1~6^2~5 X-Git-Url: http://git.bitcoin.ninja/?a=commitdiff_plain;h=758679af8401ce4a4f0a8964b6916be4a034b441;p=rust-lightning Set `payment_secret` when sending probes Previously, we'd leave the payment secret field empty while sending probes, which resulted in having them rejected with `(PERM|invalid_onion_payload)` by Eclair nodes. In order to mitigate the issue, we just set a random payment secret. --- diff --git a/lightning/src/ln/outbound_payment.rs b/lightning/src/ln/outbound_payment.rs index 0cc9e7e05..127e73c20 100644 --- a/lightning/src/ln/outbound_payment.rs +++ b/lightning/src/ln/outbound_payment.rs @@ -1103,6 +1103,7 @@ impl OutboundPayments { F: Fn(SendAlongPathArgs) -> Result<(), APIError>, { let payment_id = PaymentId(entropy_source.get_secure_random_bytes()); + let payment_secret = PaymentSecret(entropy_source.get_secure_random_bytes()); let payment_hash = probing_cookie_from_id(&payment_id, probing_cookie_secret); @@ -1114,7 +1115,7 @@ impl OutboundPayments { let route = Route { paths: vec![path], route_params: None }; let onion_session_privs = self.add_new_pending_payment(payment_hash, - RecipientOnionFields::spontaneous_empty(), payment_id, None, &route, None, None, + RecipientOnionFields::secret_only(payment_secret), payment_id, None, &route, None, None, entropy_source, best_block_height)?; match self.pay_route_internal(&route, payment_hash, RecipientOnionFields::spontaneous_empty(),