@@ -32,7 +32,7 @@ use bitcoin::secp256k1::Secp256k1;
32
32
use bitcoin::{secp256k1, Sequence};
33
33
34
34
use crate::blinded_path::{BlindedPath, NodeIdLookUp};
35
- use crate::blinded_path::message::ForwardNode;
35
+ use crate::blinded_path::message::{ ForwardNode, OffersContext} ;
36
36
use crate::blinded_path::payment::{Bolt12OfferContext, Bolt12RefundContext, PaymentConstraints, PaymentContext, ReceiveTlvs};
37
37
use crate::chain;
38
38
use crate::chain::{Confirm, ChannelMonitorUpdateStatus, Watch, BestBlock};
@@ -8377,7 +8377,8 @@ macro_rules! create_offer_builder { ($self: ident, $builder: ty) => {
8377
8377
let secp_ctx = &$self.secp_ctx;
8378
8378
8379
8379
let nonce = Nonce::from_entropy_source(entropy);
8380
- let path = $self.create_blinded_path_using_absolute_expiry(absolute_expiry)
8380
+ let context = OffersContext::InvoiceRequest { nonce };
8381
+ let path = $self.create_blinded_path_using_absolute_expiry(context, absolute_expiry)
8381
8382
.map_err(|_| Bolt12SemanticError::MissingPaths)?;
8382
8383
let builder = OfferBuilder::deriving_signing_pubkey(node_id, expanded_key, nonce, secp_ctx)
8383
8384
.chain_hash($self.chain_hash)
@@ -8447,7 +8448,8 @@ macro_rules! create_refund_builder { ($self: ident, $builder: ty) => {
8447
8448
let entropy = &*$self.entropy_source;
8448
8449
let secp_ctx = &$self.secp_ctx;
8449
8450
8450
- let path = $self.create_blinded_path_using_absolute_expiry(Some(absolute_expiry))
8451
+ let context = OffersContext::OutboundPayment { payment_id };
8452
+ let path = $self.create_blinded_path_using_absolute_expiry(context, Some(absolute_expiry))
8451
8453
.map_err(|_| Bolt12SemanticError::MissingPaths)?;
8452
8454
let builder = RefundBuilder::deriving_payer_id(
8453
8455
node_id, expanded_key, entropy, secp_ctx, amount_msats, payment_id
@@ -8570,7 +8572,9 @@ where
8570
8572
Some(payer_note) => builder.payer_note(payer_note),
8571
8573
};
8572
8574
let invoice_request = builder.build_and_sign()?;
8573
- let reply_path = self.create_blinded_path().map_err(|_| Bolt12SemanticError::MissingPaths)?;
8575
+ let context = OffersContext::OutboundPayment { payment_id };
8576
+ let reply_path = self.create_blinded_path(context)
8577
+ .map_err(|_| Bolt12SemanticError::MissingPaths)?;
8574
8578
8575
8579
let _persistence_guard = PersistenceNotifierGuard::notify_on_drop(self);
8576
8580
@@ -8670,7 +8674,8 @@ where
8670
8674
)?;
8671
8675
let builder: InvoiceBuilder<DerivedSigningPubkey> = builder.into();
8672
8676
let invoice = builder.allow_mpp().build_and_sign(secp_ctx)?;
8673
- let reply_path = self.create_blinded_path()
8677
+ let context = OffersContext::InboundPayment { payment_hash };
8678
+ let reply_path = self.create_blinded_path(context)
8674
8679
.map_err(|_| Bolt12SemanticError::MissingPaths)?;
8675
8680
8676
8681
let mut pending_offers_messages = self.pending_offers_messages.lock().unwrap();
@@ -8803,15 +8808,15 @@ where
8803
8808
/// respectively, based on the given `absolute_expiry` as seconds since the Unix epoch. See
8804
8809
/// [`MAX_SHORT_LIVED_RELATIVE_EXPIRY`].
8805
8810
fn create_blinded_path_using_absolute_expiry(
8806
- &self, absolute_expiry: Option<Duration>
8811
+ &self, context: OffersContext, absolute_expiry: Option<Duration>
8807
8812
) -> Result<BlindedPath, ()> {
8808
8813
let now = self.duration_since_epoch();
8809
8814
let max_short_lived_absolute_expiry = now.saturating_add(MAX_SHORT_LIVED_RELATIVE_EXPIRY);
8810
8815
8811
8816
if absolute_expiry.unwrap_or(Duration::MAX) <= max_short_lived_absolute_expiry {
8812
8817
self.create_compact_blinded_path()
8813
8818
} else {
8814
- self.create_blinded_path()
8819
+ self.create_blinded_path(context )
8815
8820
}
8816
8821
}
8817
8822
@@ -8831,7 +8836,7 @@ where
8831
8836
/// Creates a blinded path by delegating to [`MessageRouter::create_blinded_paths`].
8832
8837
///
8833
8838
/// Errors if the `MessageRouter` errors or returns an empty `Vec`.
8834
- fn create_blinded_path(&self) -> Result<BlindedPath, ()> {
8839
+ fn create_blinded_path(&self, _context: OffersContext ) -> Result<BlindedPath, ()> {
8835
8840
let recipient = self.get_our_node_id();
8836
8841
let secp_ctx = &self.secp_ctx;
8837
8842
0 commit comments