@@ -8572,7 +8572,8 @@ macro_rules! create_offer_builder { ($self: ident, $builder: ty) => {
8572
8572
let entropy = &*$self.entropy_source;
8573
8573
let secp_ctx = &$self.secp_ctx;
8574
8574
8575
- let path = $self.create_blinded_path().map_err(|_| Bolt12SemanticError::MissingPaths)?;
8575
+ let path = $self.create_compact_blinded_path()
8576
+ .map_err(|_| Bolt12SemanticError::MissingPaths)?;
8576
8577
let builder = OfferBuilder::deriving_signing_pubkey(
8577
8578
node_id, expanded_key, entropy, secp_ctx
8578
8579
)
@@ -8639,7 +8640,8 @@ macro_rules! create_refund_builder { ($self: ident, $builder: ty) => {
8639
8640
let entropy = &*$self.entropy_source;
8640
8641
let secp_ctx = &$self.secp_ctx;
8641
8642
8642
- let path = $self.create_blinded_path().map_err(|_| Bolt12SemanticError::MissingPaths)?;
8643
+ let path = $self.create_compact_blinded_path()
8644
+ .map_err(|_| Bolt12SemanticError::MissingPaths)?;
8643
8645
let builder = RefundBuilder::deriving_payer_id(
8644
8646
node_id, expanded_key, entropy, secp_ctx, amount_msats, payment_id
8645
8647
)?
@@ -8988,13 +8990,31 @@ where
8988
8990
inbound_payment::get_payment_preimage(payment_hash, payment_secret, &self.inbound_payment_key)
8989
8991
}
8990
8992
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 `].
8992
8994
///
8993
8995
/// Errors if the `MessageRouter` errors or returns an empty `Vec`.
8994
8996
fn create_blinded_path(&self) -> Result<BlindedPath, ()> {
8995
8997
let recipient = self.get_our_node_id();
8996
8998
let secp_ctx = &self.secp_ctx;
8997
8999
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
+
8998
9018
let peers = self.per_peer_state.read().unwrap()
8999
9019
.iter()
9000
9020
.map(|(node_id, peer_state)| (node_id, peer_state.lock().unwrap()))
0 commit comments