@@ -31,7 +31,7 @@ use bitcoin::secp256k1::{SecretKey,PublicKey};
31
31
use bitcoin::secp256k1::Secp256k1;
32
32
use bitcoin::{secp256k1, Sequence};
33
33
34
- use crate::blinded_path::message::OffersContext;
34
+ use crate::blinded_path::message::{MessageContext, OffersContext} ;
35
35
use crate::blinded_path::{BlindedPath, NodeIdLookUp};
36
36
use crate::blinded_path::message::ForwardNode;
37
37
use crate::blinded_path::payment::{Bolt12OfferContext, Bolt12RefundContext, PaymentConstraints, PaymentContext, ReceiveTlvs};
@@ -8375,7 +8375,7 @@ macro_rules! create_offer_builder { ($self: ident, $builder: ty) => {
8375
8375
let entropy = &*$self.entropy_source;
8376
8376
let secp_ctx = &$self.secp_ctx;
8377
8377
8378
- let path = $self.create_blinded_path_using_absolute_expiry(absolute_expiry)
8378
+ let path = $self.create_blinded_path_using_absolute_expiry(OffersContext::Unknown {}, absolute_expiry)
8379
8379
.map_err(|_| Bolt12SemanticError::MissingPaths)?;
8380
8380
let builder = OfferBuilder::deriving_signing_pubkey(
8381
8381
node_id, expanded_key, entropy, secp_ctx
@@ -8447,7 +8447,8 @@ macro_rules! create_refund_builder { ($self: ident, $builder: ty) => {
8447
8447
let entropy = &*$self.entropy_source;
8448
8448
let secp_ctx = &$self.secp_ctx;
8449
8449
8450
- let path = $self.create_blinded_path_using_absolute_expiry(Some(absolute_expiry))
8450
+ let context = OffersContext::OutboundPayment { payment_id };
8451
+ let path = $self.create_blinded_path_using_absolute_expiry(context, Some(absolute_expiry))
8451
8452
.map_err(|_| Bolt12SemanticError::MissingPaths)?;
8452
8453
let builder = RefundBuilder::deriving_payer_id(
8453
8454
node_id, expanded_key, entropy, secp_ctx, amount_msats, payment_id
@@ -8570,7 +8571,9 @@ where
8570
8571
Some(payer_note) => builder.payer_note(payer_note),
8571
8572
};
8572
8573
let invoice_request = builder.build_and_sign()?;
8573
- let reply_path = self.create_blinded_path().map_err(|_| Bolt12SemanticError::MissingPaths)?;
8574
+
8575
+ let context = OffersContext::OutboundPayment { payment_id };
8576
+ let reply_path = self.create_blinded_path(context).map_err(|_| Bolt12SemanticError::MissingPaths)?;
8574
8577
8575
8578
let _persistence_guard = PersistenceNotifierGuard::notify_on_drop(self);
8576
8579
@@ -8670,7 +8673,7 @@ where
8670
8673
)?;
8671
8674
let builder: InvoiceBuilder<DerivedSigningPubkey> = builder.into();
8672
8675
let invoice = builder.allow_mpp().build_and_sign(secp_ctx)?;
8673
- let reply_path = self.create_blinded_path()
8676
+ let reply_path = self.create_blinded_path(OffersContext::Unknown {} )
8674
8677
.map_err(|_| Bolt12SemanticError::MissingPaths)?;
8675
8678
8676
8679
let mut pending_offers_messages = self.pending_offers_messages.lock().unwrap();
@@ -8803,15 +8806,15 @@ where
8803
8806
/// respectively, based on the given `absolute_expiry` as seconds since the Unix epoch. See
8804
8807
/// [`MAX_SHORT_LIVED_RELATIVE_EXPIRY`].
8805
8808
fn create_blinded_path_using_absolute_expiry(
8806
- &self, absolute_expiry: Option<Duration>
8809
+ &self, context: OffersContext, absolute_expiry: Option<Duration>,
8807
8810
) -> Result<BlindedPath, ()> {
8808
8811
let now = self.duration_since_epoch();
8809
8812
let max_short_lived_absolute_expiry = now.saturating_add(MAX_SHORT_LIVED_RELATIVE_EXPIRY);
8810
8813
8811
8814
if absolute_expiry.unwrap_or(Duration::MAX) <= max_short_lived_absolute_expiry {
8812
- self.create_compact_blinded_path()
8815
+ self.create_compact_blinded_path(context )
8813
8816
} else {
8814
- self.create_blinded_path()
8817
+ self.create_blinded_path(context )
8815
8818
}
8816
8819
}
8817
8820
@@ -8831,7 +8834,7 @@ where
8831
8834
/// Creates a blinded path by delegating to [`MessageRouter::create_blinded_paths`].
8832
8835
///
8833
8836
/// Errors if the `MessageRouter` errors or returns an empty `Vec`.
8834
- fn create_blinded_path(&self) -> Result<BlindedPath, ()> {
8837
+ fn create_blinded_path(&self, context: OffersContext ) -> Result<BlindedPath, ()> {
8835
8838
let recipient = self.get_our_node_id();
8836
8839
let secp_ctx = &self.secp_ctx;
8837
8840
@@ -8844,14 +8847,14 @@ where
8844
8847
.collect::<Vec<_>>();
8845
8848
8846
8849
self.router
8847
- .create_blinded_paths(recipient, peers, secp_ctx)
8850
+ .create_blinded_paths(recipient, MessageContext::Offers(context), peers, secp_ctx)
8848
8851
.and_then(|paths| paths.into_iter().next().ok_or(()))
8849
8852
}
8850
8853
8851
8854
/// Creates a blinded path by delegating to [`MessageRouter::create_compact_blinded_paths`].
8852
8855
///
8853
8856
/// Errors if the `MessageRouter` errors or returns an empty `Vec`.
8854
- fn create_compact_blinded_path(&self) -> Result<BlindedPath, ()> {
8857
+ fn create_compact_blinded_path(&self, context: OffersContext ) -> Result<BlindedPath, ()> {
8855
8858
let recipient = self.get_our_node_id();
8856
8859
let secp_ctx = &self.secp_ctx;
8857
8860
@@ -8871,7 +8874,7 @@ where
8871
8874
.collect::<Vec<_>>();
8872
8875
8873
8876
self.router
8874
- .create_compact_blinded_paths(recipient, peers, secp_ctx)
8877
+ .create_compact_blinded_paths(recipient, MessageContext::Offers(context), peers, secp_ctx)
8875
8878
.and_then(|paths| paths.into_iter().next().ok_or(()))
8876
8879
}
8877
8880
0 commit comments