From: Wilmer Paulino Date: Fri, 8 Mar 2024 08:05:14 +0000 (-0800) Subject: Add is_intro_node_blinded_forward helper for onion_utils::Hop X-Git-Tag: v0.0.123-beta~21^2~8 X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=3f940d35ea7558f8b0d3a14082ce23f02c25bfcd;p=rust-lightning Add is_intro_node_blinded_forward helper for onion_utils::Hop --- diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs index 3afc6109..685caba7 100644 --- a/lightning/src/ln/channelmanager.rs +++ b/lightning/src/ln/channelmanager.rs @@ -3103,15 +3103,6 @@ where msg, &self.node_signer, &self.logger, &self.secp_ctx )?; - let is_intro_node_forward = match next_hop { - onion_utils::Hop::Forward { - next_hop_data: msgs::InboundOnionPayload::BlindedForward { - intro_node_blinding_point: Some(_), .. - }, .. - } => true, - _ => false, - }; - macro_rules! return_err { ($msg: expr, $err_code: expr, $data: expr) => { { @@ -3129,7 +3120,7 @@ where })); } - let (err_code, err_data) = if is_intro_node_forward { + let (err_code, err_data) = if next_hop.is_intro_node_blinded_forward() { (INVALID_ONION_BLINDING, &[0; 32][..]) } else { ($err_code, $data) }; return Err(HTLCFailureMsg::Relay(msgs::UpdateFailHTLC { diff --git a/lightning/src/ln/onion_utils.rs b/lightning/src/ln/onion_utils.rs index 53ef0729..4bb77bb4 100644 --- a/lightning/src/ln/onion_utils.rs +++ b/lightning/src/ln/onion_utils.rs @@ -1054,6 +1054,21 @@ pub(crate) enum Hop { }, } +impl Hop { + pub(crate) fn is_intro_node_blinded_forward(&self) -> bool { + match self { + Self::Forward { + next_hop_data: + msgs::InboundOnionPayload::BlindedForward { + intro_node_blinding_point: Some(_), .. + }, + .. + } => true, + _ => false, + } + } +} + /// Error returned when we fail to decode the onion packet. #[derive(Debug)] pub(crate) enum OnionDecodeErr {