@@ -53,7 +53,7 @@ use crate::routing::scoring::{ProbabilisticScorer, ProbabilisticScoringFeeParame
53
53
use 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};
54
54
use crate::ln::msgs;
55
55
use crate::ln::onion_utils;
56
- use crate::ln::onion_utils::HTLCFailReason;
56
+ use crate::ln::onion_utils::{ HTLCFailReason, INVALID_ONION_BLINDING} ;
57
57
use crate::ln::msgs::{ChannelMessageHandler, DecodeError, LightningError};
58
58
#[cfg(test)]
59
59
use crate::ln::outbound_payment;
@@ -4262,9 +4262,17 @@ where
4262
4262
phantom_shared_secret: None,
4263
4263
blinded_failure: blinded.map(|_| BlindedFailure::FromIntroductionNode),
4264
4264
});
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
+ });
4265
4273
if let Err(e) = chan.queue_add_htlc(outgoing_amt_msat,
4266
4274
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,
4268
4276
&self.logger)
4269
4277
{
4270
4278
if let ChannelError::Ignore(msg) = e {
0 commit comments