@@ -31,7 +31,7 @@ use bitcoin::secp256k1::{SecretKey,PublicKey};
3131use bitcoin::secp256k1::Secp256k1;
3232use bitcoin::{secp256k1, Sequence};
3333
34- use crate::blinded_path::message::OffersContext;
34+ use crate::blinded_path::message::{MessageContext, OffersContext} ;
3535use crate::blinded_path::{BlindedPath, NodeIdLookUp};
3636use crate::blinded_path::message::ForwardNode;
3737use crate::blinded_path::payment::{Bolt12OfferContext, Bolt12RefundContext, PaymentConstraints, PaymentContext, ReceiveTlvs};
@@ -8377,7 +8377,7 @@ macro_rules! create_offer_builder { ($self: ident, $builder: ty) => {
83778377 let entropy = &*$self.entropy_source;
83788378 let secp_ctx = &$self.secp_ctx;
83798379
8380- let path = $self.create_blinded_path_using_absolute_expiry(absolute_expiry)
8380+ let path = $self.create_blinded_path_using_absolute_expiry(OffersContext::Unknown {}, absolute_expiry)
83818381 .map_err(|_| Bolt12SemanticError::MissingPaths)?;
83828382 let builder = OfferBuilder::deriving_signing_pubkey(
83838383 node_id, expanded_key, entropy, secp_ctx
@@ -8449,7 +8449,8 @@ macro_rules! create_refund_builder { ($self: ident, $builder: ty) => {
84498449 let entropy = &*$self.entropy_source;
84508450 let secp_ctx = &$self.secp_ctx;
84518451
8452- let path = $self.create_blinded_path_using_absolute_expiry(Some(absolute_expiry))
8452+ let context = OffersContext::OutboundPayment { payment_id };
8453+ let path = $self.create_blinded_path_using_absolute_expiry(context, Some(absolute_expiry))
84538454 .map_err(|_| Bolt12SemanticError::MissingPaths)?;
84548455 let builder = RefundBuilder::deriving_payer_id(
84558456 node_id, expanded_key, entropy, secp_ctx, amount_msats, payment_id
@@ -8572,7 +8573,9 @@ where
85728573 Some(payer_note) => builder.payer_note(payer_note),
85738574 };
85748575 let invoice_request = builder.build_and_sign()?;
8575- let reply_path = self.create_blinded_path().map_err(|_| Bolt12SemanticError::MissingPaths)?;
8576+
8577+ let context = OffersContext::OutboundPayment { payment_id };
8578+ let reply_path = self.create_blinded_path(context).map_err(|_| Bolt12SemanticError::MissingPaths)?;
85768579
85778580 let _persistence_guard = PersistenceNotifierGuard::notify_on_drop(self);
85788581
@@ -8672,7 +8675,7 @@ where
86728675 )?;
86738676 let builder: InvoiceBuilder<DerivedSigningPubkey> = builder.into();
86748677 let invoice = builder.allow_mpp().build_and_sign(secp_ctx)?;
8675- let reply_path = self.create_blinded_path()
8678+ let reply_path = self.create_blinded_path(OffersContext::Unknown {} )
86768679 .map_err(|_| Bolt12SemanticError::MissingPaths)?;
86778680
86788681 let mut pending_offers_messages = self.pending_offers_messages.lock().unwrap();
@@ -8805,15 +8808,15 @@ where
88058808 /// respectively, based on the given `absolute_expiry` as seconds since the Unix epoch. See
88068809 /// [`MAX_SHORT_LIVED_RELATIVE_EXPIRY`].
88078810 fn create_blinded_path_using_absolute_expiry(
8808- &self, absolute_expiry: Option<Duration>
8811+ &self, context: OffersContext, absolute_expiry: Option<Duration>,
88098812 ) -> Result<BlindedPath, ()> {
88108813 let now = self.duration_since_epoch();
88118814 let max_short_lived_absolute_expiry = now.saturating_add(MAX_SHORT_LIVED_RELATIVE_EXPIRY);
88128815
88138816 if absolute_expiry.unwrap_or(Duration::MAX) <= max_short_lived_absolute_expiry {
8814- self.create_compact_blinded_path()
8817+ self.create_compact_blinded_path(context )
88158818 } else {
8816- self.create_blinded_path()
8819+ self.create_blinded_path(context )
88178820 }
88188821 }
88198822
@@ -8833,7 +8836,7 @@ where
88338836 /// Creates a blinded path by delegating to [`MessageRouter::create_blinded_paths`].
88348837 ///
88358838 /// Errors if the `MessageRouter` errors or returns an empty `Vec`.
8836- fn create_blinded_path(&self) -> Result<BlindedPath, ()> {
8839+ fn create_blinded_path(&self, context: OffersContext ) -> Result<BlindedPath, ()> {
88378840 let recipient = self.get_our_node_id();
88388841 let secp_ctx = &self.secp_ctx;
88398842
@@ -8846,14 +8849,14 @@ where
88468849 .collect::<Vec<_>>();
88478850
88488851 self.router
8849- .create_blinded_paths(recipient, peers, secp_ctx)
8852+ .create_blinded_paths(recipient, MessageContext::Offers(context), peers, secp_ctx)
88508853 .and_then(|paths| paths.into_iter().next().ok_or(()))
88518854 }
88528855
88538856 /// Creates a blinded path by delegating to [`MessageRouter::create_compact_blinded_paths`].
88548857 ///
88558858 /// Errors if the `MessageRouter` errors or returns an empty `Vec`.
8856- fn create_compact_blinded_path(&self) -> Result<BlindedPath, ()> {
8859+ fn create_compact_blinded_path(&self, context: OffersContext ) -> Result<BlindedPath, ()> {
88578860 let recipient = self.get_our_node_id();
88588861 let secp_ctx = &self.secp_ctx;
88598862
@@ -8873,7 +8876,7 @@ where
88738876 .collect::<Vec<_>>();
88748877
88758878 self.router
8876- .create_compact_blinded_paths(recipient, peers, secp_ctx)
8879+ .create_compact_blinded_paths(recipient, MessageContext::Offers(context), peers, secp_ctx)
88778880 .and_then(|paths| paths.into_iter().next().ok_or(()))
88788881 }
88798882
0 commit comments