@@ -8572,7 +8572,8 @@ macro_rules! create_offer_builder { ($self: ident, $builder: ty) => {
85728572 let entropy = &*$self.entropy_source;
85738573 let secp_ctx = &$self.secp_ctx;
85748574
8575- let path = $self.create_blinded_path().map_err(|_| Bolt12SemanticError::MissingPaths)?;
8575+ let path = $self.create_compact_blinded_path()
8576+ .map_err(|_| Bolt12SemanticError::MissingPaths)?;
85768577 let builder = OfferBuilder::deriving_signing_pubkey(
85778578 node_id, expanded_key, entropy, secp_ctx
85788579 )
@@ -8639,7 +8640,8 @@ macro_rules! create_refund_builder { ($self: ident, $builder: ty) => {
86398640 let entropy = &*$self.entropy_source;
86408641 let secp_ctx = &$self.secp_ctx;
86418642
8642- let path = $self.create_blinded_path().map_err(|_| Bolt12SemanticError::MissingPaths)?;
8643+ let path = $self.create_compact_blinded_path()
8644+ .map_err(|_| Bolt12SemanticError::MissingPaths)?;
86438645 let builder = RefundBuilder::deriving_payer_id(
86448646 node_id, expanded_key, entropy, secp_ctx, amount_msats, payment_id
86458647 )?
@@ -8988,13 +8990,31 @@ where
89888990 inbound_payment::get_payment_preimage(payment_hash, payment_secret, &self.inbound_payment_key)
89898991 }
89908992
8991- /// Creates a blinded path by delegating to [`MessageRouter::create_compact_blinded_paths `].
8993+ /// Creates a blinded path by delegating to [`MessageRouter::create_blinded_paths `].
89928994 ///
89938995 /// Errors if the `MessageRouter` errors or returns an empty `Vec`.
89948996 fn create_blinded_path(&self) -> Result<BlindedPath, ()> {
89958997 let recipient = self.get_our_node_id();
89968998 let secp_ctx = &self.secp_ctx;
89978999
9000+ let peers = self.per_peer_state.read().unwrap()
9001+ .iter()
9002+ .filter(|(_, peer)| peer.lock().unwrap().latest_features.supports_onion_messages())
9003+ .map(|(node_id, _)| *node_id)
9004+ .collect::<Vec<_>>();
9005+
9006+ self.router
9007+ .create_blinded_paths(recipient, peers, secp_ctx)
9008+ .and_then(|paths| paths.into_iter().next().ok_or(()))
9009+ }
9010+
9011+ /// Creates a blinded path by delegating to [`MessageRouter::create_compact_blinded_paths`].
9012+ ///
9013+ /// Errors if the `MessageRouter` errors or returns an empty `Vec`.
9014+ fn create_compact_blinded_path(&self) -> Result<BlindedPath, ()> {
9015+ let recipient = self.get_our_node_id();
9016+ let secp_ctx = &self.secp_ctx;
9017+
89989018 let peers = self.per_peer_state.read().unwrap()
89999019 .iter()
90009020 .map(|(node_id, peer_state)| (node_id, peer_state.lock().unwrap()))
0 commit comments