@@ -8270,7 +8270,8 @@ macro_rules! create_offer_builder { ($self: ident, $builder: ty) => {
8270
8270
let entropy = &*$self.entropy_source;
8271
8271
let secp_ctx = &$self.secp_ctx;
8272
8272
8273
- let path = $self.create_blinded_path().map_err(|_| Bolt12SemanticError::MissingPaths)?;
8273
+ let path = $self.create_compact_blinded_path()
8274
+ .map_err(|_| Bolt12SemanticError::MissingPaths)?;
8274
8275
let builder = OfferBuilder::deriving_signing_pubkey(
8275
8276
node_id, expanded_key, entropy, secp_ctx
8276
8277
)
@@ -8337,7 +8338,8 @@ macro_rules! create_refund_builder { ($self: ident, $builder: ty) => {
8337
8338
let entropy = &*$self.entropy_source;
8338
8339
let secp_ctx = &$self.secp_ctx;
8339
8340
8340
- let path = $self.create_blinded_path().map_err(|_| Bolt12SemanticError::MissingPaths)?;
8341
+ let path = $self.create_compact_blinded_path()
8342
+ .map_err(|_| Bolt12SemanticError::MissingPaths)?;
8341
8343
let builder = RefundBuilder::deriving_payer_id(
8342
8344
node_id, expanded_key, entropy, secp_ctx, amount_msats, payment_id
8343
8345
)?
@@ -8686,13 +8688,31 @@ where
8686
8688
inbound_payment::get_payment_preimage(payment_hash, payment_secret, &self.inbound_payment_key)
8687
8689
}
8688
8690
8689
- /// Creates a blinded path by delegating to [`MessageRouter::create_compact_blinded_paths `].
8691
+ /// Creates a blinded path by delegating to [`MessageRouter::create_blinded_paths `].
8690
8692
///
8691
8693
/// Errors if the `MessageRouter` errors or returns an empty `Vec`.
8692
8694
fn create_blinded_path(&self) -> Result<BlindedPath, ()> {
8693
8695
let recipient = self.get_our_node_id();
8694
8696
let secp_ctx = &self.secp_ctx;
8695
8697
8698
+ let peers = self.per_peer_state.read().unwrap()
8699
+ .iter()
8700
+ .filter(|(_, peer)| peer.lock().unwrap().latest_features.supports_onion_messages())
8701
+ .map(|(node_id, _)| *node_id)
8702
+ .collect::<Vec<_>>();
8703
+
8704
+ self.router
8705
+ .create_blinded_paths(recipient, peers, secp_ctx)
8706
+ .and_then(|paths| paths.into_iter().next().ok_or(()))
8707
+ }
8708
+
8709
+ /// Creates a blinded path by delegating to [`MessageRouter::create_compact_blinded_paths`].
8710
+ ///
8711
+ /// Errors if the `MessageRouter` errors or returns an empty `Vec`.
8712
+ fn create_compact_blinded_path(&self) -> Result<BlindedPath, ()> {
8713
+ let recipient = self.get_our_node_id();
8714
+ let secp_ctx = &self.secp_ctx;
8715
+
8696
8716
let peers = self.per_peer_state.read().unwrap()
8697
8717
.iter()
8698
8718
.map(|(node_id, peer_state)| (node_id, peer_state.lock().unwrap()))
0 commit comments