@@ -53,7 +53,7 @@ use crate::routing::scoring::{ProbabilisticScorer, ProbabilisticScoringFeeParame
5353use crate::ln::onion_payment::{check_incoming_htlc_cltv, create_recv_pending_htlc_info, create_fwd_pending_htlc_info, decode_incoming_update_add_htlc_onion, InboundOnionErr, NextPacketDetails};
5454use crate::ln::msgs;
5555use crate::ln::onion_utils;
56- use crate::ln::onion_utils::HTLCFailReason;
56+ use crate::ln::onion_utils::{ HTLCFailReason, INVALID_ONION_BLINDING} ;
5757use crate::ln::msgs::{ChannelMessageHandler, DecodeError, LightningError};
5858#[cfg(test)]
5959use crate::ln::outbound_payment;
@@ -4262,9 +4262,17 @@ where
42624262 phantom_shared_secret: None,
42634263 blinded_failure: blinded.map(|_| BlindedFailure::FromIntroductionNode),
42644264 });
4265+ let next_blinding_point = blinded.and_then(|b| {
4266+ let encrypted_tlvs_ss = self.node_signer.ecdh(
4267+ Recipient::Node, &b.inbound_blinding_point, None
4268+ ).unwrap().secret_bytes();
4269+ onion_utils::next_hop_pubkey(
4270+ &self.secp_ctx, b.inbound_blinding_point, &encrypted_tlvs_ss
4271+ ).ok()
4272+ });
42654273 if let Err(e) = chan.queue_add_htlc(outgoing_amt_msat,
42664274 payment_hash, outgoing_cltv_value, htlc_source.clone(),
4267- onion_packet, skimmed_fee_msat, None , &self.fee_estimator,
4275+ onion_packet, skimmed_fee_msat, next_blinding_point , &self.fee_estimator,
42684276 &self.logger)
42694277 {
42704278 if let ChannelError::Ignore(msg) = e {
0 commit comments